Bug 1499003 - Update Fennec wpt expectations r=jgraham
authorWes Kocher <wkocher@mozilla.com>
Tue, 27 Nov 2018 13:23:51 +0000
changeset 507479 268c6832d2bebe890b737c14755b3785366cf829
parent 507478 ad28397dfa43589ea5bd814391c26386c5bf751f
child 507480 cda49d66b3ccef746f0f077b80173cf0ae3a2899
push id1905
push userffxbld-merge
push dateMon, 21 Jan 2019 12:33:13 +0000
treeherdermozilla-release@c2fca1944d8c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjgraham
bugs1499003
milestone65.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1499003 - Update Fennec wpt expectations r=jgraham Differential Revision: https://phabricator.services.mozilla.com/D13012
testing/web-platform/meta/async-local-storage/storage-smoke-test.tentative.https.html.ini
testing/web-platform/meta/css/css-exclusions/wrap-flow-002.html.ini
testing/web-platform/meta/css/css-exclusions/wrap-flow-003.html.ini
testing/web-platform/meta/css/css-exclusions/wrap-flow-004.html.ini
testing/web-platform/meta/css/css-exclusions/wrap-flow-005.html.ini
testing/web-platform/meta/css/css-exclusions/wrap-flow-006.html.ini
testing/web-platform/meta/css/css-exclusions/wrap-through-001.html.ini
testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-margin-001.html.ini
testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-circle-005.html.ini
testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-ellipse-004.html.ini
testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-ellipse-005.html.ini
testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-inset-003.html.ini
testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-polygon-004.html.ini
testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html.ini
testing/web-platform/meta/css/css-tables/html5-table-formatting-1.html.ini
testing/web-platform/meta/css/css-tables/table-model-fixup-2.html.ini
testing/web-platform/meta/css/cssom-view/CaretPosition-001.html.ini
testing/web-platform/meta/css/cssom-view/elementFromPoint-002.html.ini
testing/web-platform/meta/css/cssom-view/elementFromPoint-003.html.ini
testing/web-platform/meta/css/cssom-view/scrollIntoView-smooth.html.ini
testing/web-platform/meta/dom/events/Event-timestamp-safe-resolution.html.ini
testing/web-platform/meta/encrypted-media/clearkey-events-session-closed-event.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-events.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-generate-request-disallowed-input.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-invalid-license.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-keystatuses-multiple-sessions.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-keystatuses.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted-segmented.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-update-disallowed-input.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-not-callable-after-createsession.https.html.ini
testing/web-platform/meta/encrypted-media/clearkey-update-non-ascii-input.https.html.ini
testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-playduration-keystatus.html.ini
testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-playduration.html.ini
testing/web-platform/meta/encrypted-media/encrypted-media-default-feature-policy.https.sub.html.ini
testing/web-platform/meta/entries-api/interfaces.html.ini
testing/web-platform/meta/feature-policy/reporting/encrypted-media-report-only.https.html.ini
testing/web-platform/meta/fetch/api/abort/general.any.js.ini
testing/web-platform/meta/fetch/api/abort/keepalive.html.ini
testing/web-platform/meta/fetch/api/redirect/redirect-location.any.js.ini
testing/web-platform/meta/html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html.ini
testing/web-platform/meta/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html.ini
testing/web-platform/meta/html/dom/interfaces.https.html.ini
testing/web-platform/meta/html/semantics/embedded-content/the-img-element/decode/image-decode-iframe.html.ini
testing/web-platform/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-immediate.window.js.ini
testing/web-platform/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-header.window.js.ini
testing/web-platform/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window.js.ini
testing/web-platform/meta/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html.ini
testing/web-platform/meta/infrastructure/testdriver/actions/elementTiming.html.ini
testing/web-platform/meta/intersection-observer/display-none.html.ini
testing/web-platform/meta/intersection-observer/iframe-no-root.html.ini
testing/web-platform/meta/intersection-observer/inline-client-rect.html.ini
testing/web-platform/meta/intersection-observer/multiple-thresholds.html.ini
testing/web-platform/meta/intersection-observer/root-margin.html.ini
testing/web-platform/meta/intersection-observer/same-document-no-root.html.ini
testing/web-platform/meta/intersection-observer/same-document-root.html.ini
testing/web-platform/meta/intersection-observer/same-document-zero-size-target.html.ini
testing/web-platform/meta/intersection-observer/shadow-content.html.ini
testing/web-platform/meta/intersection-observer/text-target.html.ini
testing/web-platform/meta/intersection-observer/zero-area-element-hidden.html.ini
testing/web-platform/meta/navigation-timing/nav2_test_redirect_server.html.ini
testing/web-platform/meta/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirects.html.ini
testing/web-platform/meta/payment-method-basic-card/historical.https.html.ini
testing/web-platform/meta/payment-request/payment-request-canmakepayment-method-protection.https.html.ini
testing/web-platform/meta/payment-request/payment-request-canmakepayment-method.https.html.ini
testing/web-platform/meta/pointerevents/pointerevent_pointermove.html.ini
testing/web-platform/meta/resource-timing/resource_initiator_types.html.ini
testing/web-platform/meta/resource-timing/resource_timing.worker.js.ini
testing/web-platform/meta/service-workers/service-worker/clients-matchall-order.https.html.ini
testing/web-platform/meta/service-workers/service-worker/update-registration-with-type.https.html.ini
testing/web-platform/meta/shadow-dom/scroll-to-the-fragment-in-shadow-tree.html.ini
testing/web-platform/meta/storage/opaque-origin.https.window.js.ini
testing/web-platform/meta/storage/storagemanager-persist.https.window.js.ini
testing/web-platform/meta/trusted-types/block-string-assignment-to-Location-assign.tentative.html.ini
testing/web-platform/meta/trusted-types/block-string-assignment-to-Location-href.tentative.html.ini
testing/web-platform/meta/trusted-types/block-string-assignment-to-Location-replace.tentative.html.ini
testing/web-platform/meta/user-timing/measure_associated_with_navigation_timing.html.ini
testing/web-platform/meta/webauthn/createcredential-badargs-authnrselection.https.html.ini
testing/web-platform/meta/webauthn/createcredential-badargs-challenge.https.html.ini
testing/web-platform/meta/webauthn/createcredential-badargs-rp.https.html.ini
testing/web-platform/meta/webauthn/createcredential-badargs-user.https.html.ini
testing/web-platform/meta/webauthn/createcredential-excludecredentials.https.html.ini
testing/web-platform/meta/webauthn/createcredential-extensions.https.html.ini
testing/web-platform/meta/webauthn/createcredential-passing.https.html.ini
testing/web-platform/meta/webauthn/getcredential-badargs-rpid.https.html.ini
testing/web-platform/meta/webauthn/getcredential-badargs-userverification.https.html.ini
testing/web-platform/meta/webauthn/getcredential-extensions.https.html.ini
testing/web-platform/meta/webauthn/getcredential-passing.https.html.ini
testing/web-platform/meta/webauthn/getcredential-timeout.https.html.ini
testing/web-platform/meta/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js.ini
testing/web-platform/meta/workers/constructors/SharedWorker/same-origin.html.ini
testing/web-platform/meta/workers/constructors/Worker/same-origin.html.ini
testing/web-platform/tests/dom/events/Event-timestamp-safe-resolution.html
testing/web-platform/tests/resource-timing/resource_timing.worker.js
--- a/testing/web-platform/meta/async-local-storage/storage-smoke-test.tentative.https.html.ini
+++ b/testing/web-platform/meta/async-local-storage/storage-smoke-test.tentative.https.html.ini
@@ -1,2 +1,3 @@
 [storage-smoke-test.tentative.https.html]
-  expected: TIMEOUT
+  expected:
+    TIMEOUT
--- a/testing/web-platform/meta/css/css-exclusions/wrap-flow-002.html.ini
+++ b/testing/web-platform/meta/css/css-exclusions/wrap-flow-002.html.ini
@@ -1,13 +1,14 @@
 [wrap-flow-002.html]
   [Verify top of the 'lineLeft1' span is positioned correctly]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [Verify top of the 'lineLeft2' span is positioned correctly]
     expected: FAIL
 
   [Verify right of the 'lineLeft2' span is positioned correctly]
     expected: FAIL
 
--- a/testing/web-platform/meta/css/css-exclusions/wrap-flow-003.html.ini
+++ b/testing/web-platform/meta/css/css-exclusions/wrap-flow-003.html.ini
@@ -1,7 +1,8 @@
 [wrap-flow-003.html]
   [Verify top of the 'line4' span is positioned correctly]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
--- a/testing/web-platform/meta/css/css-exclusions/wrap-flow-004.html.ini
+++ b/testing/web-platform/meta/css/css-exclusions/wrap-flow-004.html.ini
@@ -1,31 +1,36 @@
 [wrap-flow-004.html]
   [Verify left of the 'line2' span is positioned correctly]
     expected: FAIL
 
   [Verify top of the 'line3' span is positioned correctly]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [Verify left of the 'line3' span is positioned correctly]
     expected: FAIL
 
   [Verify top of the 'line4' span is positioned correctly]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [Verify left of the 'line4' span is positioned correctly]
     expected: FAIL
 
   [Verify top of the 'line5' span is positioned correctly]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Verify top of the 'line2' span is positioned correctly]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
--- a/testing/web-platform/meta/css/css-exclusions/wrap-flow-005.html.ini
+++ b/testing/web-platform/meta/css/css-exclusions/wrap-flow-005.html.ini
@@ -1,31 +1,36 @@
 [wrap-flow-005.html]
   [Verify left of the 'line2' span is positioned correctly]
     expected: FAIL
 
   [Verify top of the 'line3' span is positioned correctly]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [Verify left of the 'line3' span is positioned correctly]
     expected: FAIL
 
   [Verify top of the 'line4' span is positioned correctly]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [Verify left of the 'line4' span is positioned correctly]
     expected: FAIL
 
   [Verify top of the 'line5' span is positioned correctly]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Verify top of the 'line2' span is positioned correctly]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
--- a/testing/web-platform/meta/css/css-exclusions/wrap-flow-006.html.ini
+++ b/testing/web-platform/meta/css/css-exclusions/wrap-flow-006.html.ini
@@ -1,13 +1,14 @@
 [wrap-flow-006.html]
   [Verify top of the 'line2' span is positioned correctly]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [Verify left of the 'line2' span is positioned correctly]
     expected: FAIL
 
   [Verify top of the 'line3' span is positioned correctly]
     expected: FAIL
 
--- a/testing/web-platform/meta/css/css-exclusions/wrap-through-001.html.ini
+++ b/testing/web-platform/meta/css/css-exclusions/wrap-through-001.html.ini
@@ -1,25 +1,28 @@
 [wrap-through-001.html]
   [Verify left of the second line on the right of the exclusion]
     expected: FAIL
 
   [Verify top of the third line on the left of the exclusion]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [Verify left of the third line on the right of the exclusion]
     expected: FAIL
 
   [Verify top of the fourth line with no wrapping-through = none]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [Verify top of the second line on the left of the exclusion]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
--- a/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-margin-001.html.ini
+++ b/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-margin-001.html.ini
@@ -8,10 +8,27 @@
   [10ex - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
+  [10vh - computed]
+    expected:
+      if os == "android": FAIL
+
+  [10vmin - computed]
+    expected:
+      if os == "android": FAIL
+
+  [10vw - computed]
+    expected:
+      if os == "android": FAIL
+
+  [10vmax - computed]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-circle-005.html.ini
+++ b/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-circle-005.html.ini
@@ -8,16 +8,17 @@
   [test unit: ex - circle(50ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit: cm - circle(50cm) - inline]
     expected: FAIL
 
   [test unit: mm - circle(50mm) - inline]
     expected: FAIL
 
@@ -49,8 +50,24 @@
     expected: FAIL
 
   [test unit: vmin - circle(50vmin) - inline]
     expected: FAIL
 
   [test unit: vmax - circle(50vmax) - inline]
     expected: FAIL
 
+  [test unit: vw - circle(50vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmax - circle(50vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmin - circle(50vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vh - circle(50vh) - computed]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-ellipse-004.html.ini
+++ b/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-ellipse-004.html.ini
@@ -128,29 +128,31 @@
   [test unit (computed): ex - ellipse(at right 80ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): em - ellipse(at top 50em right 80em)]
     expected: FAIL
 
   [test unit (computed): ex - ellipse(at 50% 50ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): vw - ellipse(at bottom 70vw left 50%)]
     expected: FAIL
 
   [test unit (computed): cm - ellipse(at 50cm)]
     expected: FAIL
 
@@ -166,16 +168,17 @@
   [test unit (computed): ex - ellipse(at left 50ex top 50%)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): cm - ellipse(at left 50cm bottom 70cm)]
     expected: FAIL
 
   [test unit (computed): pt - ellipse(at right 80% bottom 70pt)]
     expected: FAIL
 
@@ -185,26 +188,28 @@
   [test unit (computed): ex - ellipse(at 70ex bottom)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): ex - ellipse(at right 80% top 50ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): pc - ellipse(at left 50% bottom 70pc)]
     expected: FAIL
 
   [test unit (computed): em - ellipse(at right 80em bottom 70em)]
     expected: FAIL
 
@@ -280,16 +285,17 @@
   [test unit (computed): ex - ellipse(at 50ex 50%)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): em - ellipse(at top 50% right 80em)]
     expected: FAIL
 
   [test unit (computed): pt - ellipse(at right 80pt bottom 70%)]
     expected: FAIL
 
@@ -308,16 +314,17 @@
   [test unit (computed): ex - ellipse(at 60ex center)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): ch - ellipse(at bottom 70ch right 80%)]
     expected: FAIL
 
   [test unit (computed): mm - ellipse(at right 80mm top 50mm)]
     expected: FAIL
 
@@ -402,29 +409,31 @@
   [test unit (computed): ex - ellipse(at bottom 70% left 50ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): pt - ellipse(at bottom 70pt left 50pt)]
     expected: FAIL
 
   [test unit (computed): ex - ellipse(at top 50ex left 50%)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): cm - ellipse(at bottom 70cm left 50%)]
     expected: FAIL
 
   [test unit (computed): vw - ellipse(at top 50vw right 80vw)]
     expected: FAIL
 
@@ -512,16 +521,17 @@
   [test unit (computed): ex - ellipse(at top 50ex left 50ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): ex - ellipse(at bottom 70ex left 50ex)]
     expected: FAIL
 
   [test unit (computed): mm - ellipse(at 50mm top)]
     expected: FAIL
 
@@ -564,45 +574,48 @@
   [test unit (computed): ex - ellipse(at center 60ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): pc - ellipse(at bottom 70pc right 80%)]
     expected: FAIL
 
   [test unit (computed): ex - ellipse(at 50ex top)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): ch - ellipse(at right 80ch top 50ch)]
     expected: FAIL
 
   [test unit (computed): vw - ellipse(at bottom 70vw right 80vw)]
     expected: FAIL
 
   [test unit (computed): ex - ellipse(at 50ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): pt - ellipse(at bottom 70% right 80pt)]
     expected: FAIL
 
   [test unit (computed): rem - ellipse(at top 50% right 80rem)]
     expected: FAIL
 
@@ -633,16 +646,17 @@
   [test unit (computed): ex - ellipse(at left 50ex bottom 70%)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): vh - ellipse(at bottom 70vh right 80vh)]
     expected: FAIL
 
   [test unit (computed): vmax - ellipse(at right 80vmax bottom 70%)]
     expected: FAIL
 
@@ -673,16 +687,17 @@
   [test unit (computed): ex - ellipse(at top 50% left 50ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): ex - ellipse(at right 80ex top 50%)]
     expected: FAIL
 
   [test unit (computed): vmin - ellipse(at bottom 70vmin left 50%)]
     expected: FAIL
 
@@ -713,16 +728,17 @@
   [test unit (computed): ex - ellipse(at top 50ex right 80%)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): ch - ellipse(at bottom 70ch left 50%)]
     expected: FAIL
 
   [test unit (computed): ex - ellipse(at right 80ex top 50ex)]
     expected: FAIL
 
@@ -762,16 +778,17 @@
   [test unit (computed): ex - ellipse(at left 50ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): cm - ellipse(at top 50cm right 80cm)]
     expected: FAIL
 
   [test unit (computed): rem - ellipse(at bottom 70rem right 80%)]
     expected: FAIL
 
@@ -790,16 +807,17 @@
   [test unit (computed): ex - ellipse(at 50ex 50ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): rem - ellipse(at bottom 70rem left 50rem)]
     expected: FAIL
 
   [test unit (computed): ex - ellipse(at bottom 70% right 80ex)]
     expected: FAIL
 
@@ -809,26 +827,28 @@
   [test unit (computed): ex - ellipse(at left 50% top 50ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): ex - ellipse(at left 50ex top 50ex)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit (computed): vh - ellipse(at right 80vh top 50%)]
     expected: FAIL
 
   [test unit (computed): pc - ellipse(at bottom 70% right 80pc)]
     expected: FAIL
 
@@ -1676,8 +1696,328 @@
     expected: FAIL
 
   [test unit (inline): ch - ellipse(at bottom 70% right 80ch)]
     expected: FAIL
 
   [test unit (inline): em - ellipse(at left 50% top 50em)]
     expected: FAIL
 
+  [test unit (computed): vw - ellipse(at top 50vw right 80%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at 50vmax 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at center 60vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at top 50vh left 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at 50% 50vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at left 50vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at left 50vw top 50vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at right 80vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at 60vmax center)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at top 50vh right 80%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at left 50% top 50vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at 50vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at 50vw 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at right 80% top 50vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at top 50vmin left 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at top 50vmax right 80%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at left 50% top 50vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at left 50vh bottom 70%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at 50% 50vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at left 50vmin bottom 70%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at right 80vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at right 80vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at top 50vmin left 50vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at 50vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at center 60vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at left 50% top 50vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at right 80% top 50vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at right 80% top 50vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at 50vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at left 50vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at bottom 70% left 50vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at 50vh 50vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at right 80% top 50vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at 50% 50vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at 70vw bottom)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at left 50vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at left 50vh top 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at 50vh top)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at top 50% left 50vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at left 50vmax top 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at 50vw 50vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at 50vmin 50vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at 50vmin top)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at 50vh 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at left 50vw top 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at 50% 50vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at 60vh center)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at left 50vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at top 50vw left 50vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at top 50vmax left 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at left 50vmin top 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at 50vw top)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at top 50% left 50vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at left 50% top 50vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at center 60vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at 50vmin 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at top 50vh left 50vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at right 80vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at 70vmax bottom)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at top 50vmin right 80%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at left 50vw bottom 70%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at center 60vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at top 50vmax left 50vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at 60vmin center)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at bottom 70% left 50vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at 50vmax top)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at top 50% left 50vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at left 50vmax bottom 70%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at top 50% left 50vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at left 50vmax top 50vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at left 50vh top 50vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at 70vmin bottom)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at 70vh bottom)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at bottom 70% left 50vw)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at 50vmax 50vmax)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vh - ellipse(at bottom 70% left 50vh)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at top 50vw left 50%)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmin - ellipse(at left 50vmin top 50vmin)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vw - ellipse(at 60vw center)]
+    expected:
+      if os == "android": FAIL
+
+  [test unit (computed): vmax - ellipse(at 50vmax)]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-ellipse-005.html.ini
+++ b/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-ellipse-005.html.ini
@@ -161,79 +161,86 @@
   [test unit: ex - ellipse(50ex 100ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit: ex - ellipse(100ex 100px) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit: ex - ellipse(50ex 25%) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit: ex - ellipse(25% 50ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit: ex - ellipse(25ex closest-side) - computed]
     expected: FAIL
 
   [test unit: ex - ellipse(closest-side 75ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit: ex - ellipse(25ex farthest-side) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit: ex - ellipse(farthest-side 75ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [test unit: ch - ellipse(50ch) - computed]
     expected: FAIL
 
   [test unit: ch - ellipse(25ch closest-side) - computed]
     expected: FAIL
 
@@ -535,8 +542,120 @@
     expected: FAIL
 
   [test unit: vmin - ellipse(farthest-side 75vmin) - inline]
     expected: FAIL
 
   [test unit: vh - ellipse(closest-side 75vh) - inline]
     expected: FAIL
 
+  [test unit: vw - ellipse(25vw farthest-side) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vh - ellipse(50vh 25%) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmax - ellipse(25% 50vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmin - ellipse(50vmin 25%) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vh - ellipse(closest-side 75vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmin - ellipse(25% 50vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vh - ellipse(25vh farthest-side) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmin - ellipse(closest-side 75vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmin - ellipse(25vmin farthest-side) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vw - ellipse(25% 50vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmax - ellipse(closest-side 75vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmin - ellipse(farthest-side 75vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vh - ellipse(25% 50vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vw - ellipse(50vw 25%) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vw - ellipse(closest-side 75vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vh - ellipse(50vh 100vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vw - ellipse(50vw 100vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmax - ellipse(farthest-side 75vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vh - ellipse(100vh 100px) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmin - ellipse(50vmin 100vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmax - ellipse(50vmax 25%) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vw - ellipse(100vw 100px) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmax - ellipse(100vmax 100px) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmax - ellipse(25vmax farthest-side) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vh - ellipse(farthest-side 75vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vw - ellipse(farthest-side 75vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmin - ellipse(100vmin 100px) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [test unit: vmax - ellipse(50vmax 100vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-inset-003.html.ini
+++ b/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-inset-003.html.ini
@@ -122,200 +122,540 @@
   [inset(10ex round 10ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex / 10ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex / 10ex 20ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex / 10ex 20ex 30ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex / 10ex 20ex 30ex 40ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex / 10ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex / 10ex 20ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex / 10ex 20ex 30ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex / 10ex 20ex 30ex 40ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex 30ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex 30ex / 10ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex 30ex / 10ex 20ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex 30ex / 10ex 20ex 30ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex 30ex / 10ex 20ex 30ex 40ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex 30ex 40ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex 30ex 40ex / 10ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex 30ex 40ex / 10ex 20ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex 30ex 40ex / 10ex 20ex 30ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [inset(10ex round 10ex 20ex 30ex 40ex / 10ex 20ex 30ex 40ex) - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
+  [inset(10vmin round 10vmin 20vmin 30vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax 30vmax 40vmax / 10vmax 20vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax / 10vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin 30vmin 40vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin / 10vmin 20vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin 30vmin 40vmin / 10vmin 20vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax 30vmax 40vmax / 10vmax 20vmax 30vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw 30vw / 10vw 20vw 30vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin 30vmin 40vmin / 10vmin 20vmin 30vmin 40vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax 30vmax / 10vmax 20vmax 30vmax 40vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin / 10vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax 30vmax / 10vmax 20vmax 30vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw 30vw / 10vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin / 10vmin 20vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw 30vw / 10vw 20vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax / 10vmax 20vmax 30vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh / 10vh 20vh 30vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw / 10vw 20vw 30vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh 30vh 40vh / 10vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh / 10vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh / 10vh 20vh 30vh 40vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh / 10vh 20vh 30vh 40vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax / 10vmax 20vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh 30vh / 10vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh 30vh 40vh / 10vh 20vh 30vh 40vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh 30vh / 10vh 20vh 30vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh / 10vh 20vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin / 10vmin 20vmin 30vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw / 10vw 20vw 30vw 40vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax 30vmax / 10vmax 20vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax / 10vmax 20vmax 30vmax 40vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw / 10vw 20vw 30vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax 30vmax 40vmax / 10vmax 20vmax 30vmax 40vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin 30vmin / 10vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin / 10vmin 20vmin 30vmin 40vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax 30vmax 40vmax / 10vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw 30vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin 30vmin / 10vmin 20vmin 30vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin 30vmin 40vmin / 10vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw 30vw 40vw / 10vw 20vw 30vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin / 10vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin 30vmin / 10vmin 20vmin 30vmin 40vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax / 10vmax 20vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax 30vmax 40vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh 30vh / 10vh 20vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh / 10vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw 30vw 40vw / 10vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin / 10vmin 20vmin 30vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax 30vmax / 10vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw / 10vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax / 10vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin / 10vmin 20vmin 30vmin 40vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax / 10vmax 20vmax 30vmax 40vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax 30vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw 30vw 40vw / 10vw 20vw 30vw 40vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin 30vmin 40vmin / 10vmin 20vmin 30vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh 30vh 40vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh / 10vh 20vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh 30vh / 10vh 20vh 30vh 40vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw / 10vw 20vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw / 10vw 20vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw 30vw 40vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw 30vw / 10vw 20vw 30vw 40vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh 30vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh 30vh 40vh / 10vh 20vh 30vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh 30vh 40vh / 10vh 20vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw 30vw 40vw / 10vw 20vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vh round 10vh 20vh / 10vh 20vh 30vh) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw / 10vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmax round 10vmax 20vmax / 10vmax 20vmax 30vmax) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vw round 10vw 20vw / 10vw 20vw 30vw 40vw) - computed]
+    expected:
+      if os == "android": FAIL
+
+  [inset(10vmin round 10vmin 20vmin 30vmin / 10vmin 20vmin) - computed]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-polygon-004.html.ini
+++ b/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-polygon-004.html.ini
@@ -2,36 +2,39 @@
   [Three vertices - ex ex, ex ex, ex ex - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [Three vertices - em em, em em, ex ex - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [Three vertices - ex ex, em, em, em em - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [One vertex - cm cm - computed]
     expected: FAIL
 
   [One vertex - cm mm - computed]
     expected: FAIL
 
@@ -54,8 +57,72 @@
     expected: FAIL
 
   [Three vertices - cm cm, mm mm, pc pc - computed]
     expected: FAIL
 
   [Three vertices - pc pc, cm, cm, mm mm - computed]
     expected: FAIL
 
+  [Two vertices - vw vw, vh vh - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Two vertices - vmin vmin, vmin vmin - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Three vertices - vw vw, vh vh, % % - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Three vertices - % %, vw, vw, vh vh - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Three vertices - vw vw, vw vw, vw vw - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Three vertices - vmax vmax, vmin, vmin, vmin vmin - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Three vertices - vmin vmin, vmin vmin, vmin vmin - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Three vertices - vh vh, vh vh, vh vh - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Three vertices - vmin vmin, vmin vmin, vmax vmax - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Two vertices - vw vh, vh vw - computed]
+    expected:
+      if os == "android": FAIL
+
+  [One vertex - vw vh - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Three vertices - vmax vmax, vmax vmax, vmax vmax - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Two vertices - vh vh, vw vw - computed]
+    expected:
+      if os == "android": FAIL
+
+  [One vertex - vmin vmin - computed]
+    expected:
+      if os == "android": FAIL
+
+  [Two vertices - vw vw, vw vw - computed]
+    expected:
+      if os == "android": FAIL
+
+  [One vertex - vw vw - computed]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html.ini
+++ b/testing/web-platform/meta/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html.ini
@@ -2,16 +2,17 @@
   [Font relative units - computed]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if os == "android": PASS
       FAIL
 
   [View relative units - computed]
     expected:
       if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
       FAIL
 
--- a/testing/web-platform/meta/css/css-tables/html5-table-formatting-1.html.ini
+++ b/testing/web-platform/meta/css/css-tables/html5-table-formatting-1.html.ini
@@ -1,4 +1,16 @@
 [html5-table-formatting-1.html]
   [Empty tables do not take table-columns into account]
     expected: FAIL
 
+  [Table-columns are taken into account after missing cells are generated (non-empty line)]
+    expected:
+      if os == "android": FAIL
+
+  [Table-columns are taken into account after missing cells are generated (partially empty line)]
+    expected:
+      if os == "android": FAIL
+
+  [Table-columns are taken into account after missing cells are generated (empty line)]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/css/css-tables/table-model-fixup-2.html.ini
+++ b/testing/web-platform/meta/css/css-tables/table-model-fixup-2.html.ini
@@ -1,30 +1,78 @@
 [table-model-fixup-2.html]
   disabled:
     if os == "linux": https://bugzilla.mozilla.org/show_bug.cgi?id=1445164
   [Replaced elements outside a table cannot be table-row and are considered block -- input=text elements]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Replaced elements outside a table cannot be table-row and are considered block -- input=button elements]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Replaced elements outside a table cannot be table-row and are considered block -- input=file elements]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Replaced elements outside a table cannot be table-row and are considered block -- img elements]
     expected: FAIL
 
   [Replaced elements outside a table cannot be table-row-group and are considered block -- input=text elements]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Replaced elements outside a table cannot be table-row-group and are considered block -- input=button elements]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Replaced elements outside a table cannot be table-row-group and are considered block -- input=file elements]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Replaced elements outside a table cannot be table-row-group and are considered block -- img elements]
     expected: FAIL
 
   [Replaced elements outside a table cannot be table and are considered block -- img elements]
     disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1445164
 
+  [Replaced elements outside a table cannot be table-column and are considered inline -- input=text elements]
+    expected:
+      if os == "android": FAIL
+
+  [Replaced elements outside a table cannot be inline-table and are considered inline -- input=text elements]
+    expected:
+      if os == "android": FAIL
+
+  [Replaced elements outside a table cannot be table-cell and are considered inline -- input=button elements]
+    expected:
+      if os == "android": FAIL
+
+  [Replaced elements outside a table cannot be table-cell and are considered inline -- input=text elements]
+    expected:
+      if os == "android": FAIL
+
+  [Replaced elements outside a table cannot be inline-table and are considered inline -- input=file elements]
+    expected:
+      if os == "android": FAIL
+
+  [Replaced elements outside a table cannot be inline-table and are considered inline -- input=button elements]
+    expected:
+      if os == "android": FAIL
+
+  [Replaced elements outside a table cannot be table-column and are considered inline -- input=button elements]
+    expected:
+      if os == "android": FAIL
+
+  [Replaced elements outside a table cannot be table-cell and are considered inline -- input=file elements]
+    expected:
+      if os == "android": FAIL
+
+  [Replaced elements outside a table cannot be table-column and are considered inline -- input=file elements]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/css/cssom-view/CaretPosition-001.html.ini
+++ b/testing/web-platform/meta/css/cssom-view/CaretPosition-001.html.ini
@@ -1,4 +1,10 @@
 [CaretPosition-001.html]
   [Element at (400, 900)]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
+  [Element at (400, 100)]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/css/cssom-view/elementFromPoint-002.html.ini
@@ -0,0 +1,4 @@
+[elementFromPoint-002.html]
+  [Checking whether dynamic changes to visibility interact correctly with\n  table anonymous boxes]
+    expected:
+      if os == "android": FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/css/cssom-view/elementFromPoint-003.html.ini
@@ -0,0 +1,4 @@
+[elementFromPoint-003.html]
+  [Checking whether dynamic changes to visibility interact correctly with\n  table anonymous boxes]
+    expected:
+      if os == "android": FAIL
--- a/testing/web-platform/meta/css/cssom-view/scrollIntoView-smooth.html.ini
+++ b/testing/web-platform/meta/css/cssom-view/scrollIntoView-smooth.html.ini
@@ -1,5 +1,19 @@
 [scrollIntoView-smooth.html]
   [Smooth scrollIntoView should scroll the element to the 'end' position]
     disabled:
       if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): wpt-sync Bug 1461151
+    expected:
+      if os == "android": FAIL
 
+  [Smooth scrollIntoView should scroll the element to the 'center' position]
+    expected:
+      if os == "android": FAIL
+
+  [Smooth scrollIntoView should scroll the element to the 'nearest' position]
+    expected:
+      if os == "android": FAIL
+
+  [Smooth scrollIntoView should scroll the element to the 'start' position]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/dom/events/Event-timestamp-safe-resolution.html.ini
+++ b/testing/web-platform/meta/dom/events/Event-timestamp-safe-resolution.html.ini
@@ -1,4 +1,6 @@
 [Event-timestamp-safe-resolution.html]
-  [Event timestamp should not have a resolution better that 5 microseconds]
-    expected: FAIL
+  [Event timestamp should not have a resolution better than 5 microseconds]
+    expected:
+      if os == "android": PASS
+      FAIL
 
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-events-session-closed-event.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-events-session-closed-event.https.html]
+  [org.w3.clearkey test MediaKeySession closed event.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-events.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-events.https.html]
+  expected:
+    if os == "android": TIMEOUT
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-generate-request-disallowed-input.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-generate-request-disallowed-input.https.html]
+  expected:
+    if os == "android": TIMEOUT
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-invalid-license.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-invalid-license.https.html]
+  [Update with invalid Clear Key license]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-keystatuses-multiple-sessions.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-keystatuses-multiple-sessions.https.html]
+  expected:
+    if os == "android": TIMEOUT
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-keystatuses.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-keystatuses.https.html]
+  expected:
+    if os == "android": TIMEOUT
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted-segmented.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-clear-encrypted-segmented.https.html]
+  [org.w3.clearkey, temporary, mp4, playback, encrypted and clear sources in separate segments]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-clear-encrypted.https.html]
+  [org.w3.clearkey, temporary, mp4, playback, single key, clear then encrypted content]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html]
+  [org.w3.clearkey, temporary, mp4, playback, encrypted and clear sources]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html.ini
@@ -1,3 +1,7 @@
 [clearkey-mp4-playback-temporary-encrypted-clear.https.html]
   disabled:
     if os == "linux": https://bugzilla.mozilla.org/show_bug.cgi?id=1301418
+  [org.w3.clearkey, temporary, mp4, playback, single key, encrypted then clear content]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html]
+  [org.w3.clearkey, successful playback, temporary, mp4, multiple keys, sequential, readyState]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-multikey-sequential.https.html]
+  [org.w3.clearkey, successful playback, temporary, mp4, multiple keys, sequential]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-multikey.https.html]
+  [org.w3.clearkey, temporary, mp4, playback, multikey audio/video]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-multisession.https.html]
+  [org.w3.clearkey, temporary, mp4, playback with multiple sessions, multikey video]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html]
+  [org.w3.clearkey, temporary, mp4, playback, setMediaKeys after setting video.src]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html]
+  [org.w3.clearkey, temporary, mp4, playback, setMediaKeys after updating session]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html]
+  [org.w3.clearkey, temporary, mp4, playback, setMediaKeys first]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html]
+  [org.w3.clearkey, temporary, mp4, playback, setMediaKeys in encrypted event]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-two-videos.https.html]
+  [org.w3.clearkey, temporary, mp4, playback two videos]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary-waitingforkey.https.html]
+  [org.w3.clearkey, successful playback, temporary, mp4, waitingforkey event, 1 key]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-playback-temporary.https.html]
+  [org.w3.clearkey, temporary, mp4, playback, single key]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html.ini
@@ -1,4 +1,66 @@
 [clearkey-mp4-requestmediakeysystemaccess.https.html]
   [org.w3.clearkey, requestMediaKeySystemAccess: Empty configuration should result in NotSupportedError]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
+
+  [Space before ; in contentType]
+    expected:
+      if os == "android": FAIL
+
+  [Space at start of codecs parameter]
+    expected:
+      if os == "android": FAIL
+
+  [Trailing space in contentType]
+    expected:
+      if os == "android": FAIL
+
+  [Leading space in contentType]
+    expected:
+      if os == "android": FAIL
+
+  [ContentType formatting must be preserved]
+    expected:
+      if os == "android": FAIL
+
+  [Two configurations, both supported]
+    expected:
+      if os == "android": FAIL
+
+  [Space at end of codecs parameter]
+    expected:
+      if os == "android": FAIL
 
+  [Supported audio codec]
+    expected:
+      if os == "android": FAIL
+
+  [Video/]
+    expected:
+      if os == "android": FAIL
+
+  [Basic supported configuration]
+    expected:
+      if os == "android": FAIL
+
+  [Upper case MIME type]
+    expected:
+      if os == "android": FAIL
+
+  [Partially supported configuration]
+    expected:
+      if os == "android": FAIL
+
+  [Two configurations, one supported]
+    expected:
+      if os == "android": FAIL
+
+  [Codecs=]
+    expected:
+      if os == "android": FAIL
+
+  [CODECS=]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-reset-src-after-setmediakeys.https.html]
+  [Reset src after setMediaKeys().]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-setmediakeys-again-after-resetting-src.https.html]
+  [org.w3.clearkey, setmediakeys again after resetting src]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-setmediakeys-at-same-time.https.html]
+  expected:
+    if os == "android": TIMEOUT
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html]
+  [org.w3.clearkey, setmediakeys multiple times with different mediakeys]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html]
+  [org.w3.clearkey, setmediakeys multiple times with the same mediakeys]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html]
+  expected:
+    if os == "android": TIMEOUT
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-setmediakeys.https.html]
+  expected:
+    if os == "android": TIMEOUT
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html.ini
@@ -0,0 +1,13 @@
+[clearkey-mp4-syntax-mediakeys.https.html]
+  [org.w3.clearkey test MediaKeys attribute syntax]
+    expected:
+      if os == "android": FAIL
+
+  [org.w3.clearkey test MediaKeys setServerCertificate() exceptions.]
+    expected:
+      if os == "android": FAIL
+
+  [org.w3.clearkey test MediaKeys setServerCertificate() syntax with non-empty certificate.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html.ini
@@ -0,0 +1,29 @@
+[clearkey-mp4-syntax-mediakeysession.https.html]
+  [org.w3.clearkey test MediaKeySession remove() exceptions.]
+    expected:
+      if os == "android": FAIL
+
+  [org.w3.clearkey test MediaKeySession generateRequest() exceptions.]
+    expected:
+      if os == "android": FAIL
+
+  [org.w3.clearkey test MediaKeySession update() exceptions.]
+    expected:
+      if os == "android": FAIL
+
+  [org.w3.clearkey test MediaKeySession attribute syntax.]
+    expected:
+      if os == "android": FAIL
+
+  [org.w3.clearkey test if MediaKeySession generateRequest() resolves for various sessions]
+    expected:
+      if os == "android": FAIL
+
+  [org.w3.clearkey test MediaKeySession close() exceptions.]
+    expected:
+      if os == "android": FAIL
+
+  [org.w3.clearkey test MediaKeySession load() exceptions.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-syntax-mediakeysystemaccess.https.html]
+  [org.w3.clearkey test MediaKeySystemAccess attribute syntax.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-update-disallowed-input.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-update-disallowed-input.https.html]
+  [update() with invalid response (longer than 64Kb characters) should fail.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-mp4-waiting-for-a-key.https.html]
+  [Waiting for a key.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-not-callable-after-createsession.https.html.ini
@@ -0,0 +1,13 @@
+[clearkey-not-callable-after-createsession.https.html]
+  [org.w3.clearkey, temporary, update() immediately after createSession()]
+    expected:
+      if os == "android": FAIL
+
+  [org.w3.clearkey, temporary, close() immediately after createSession()]
+    expected:
+      if os == "android": FAIL
+
+  [org.w3.clearkey, temporary, remove() immediately after createSession()]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-update-non-ascii-input.https.html.ini
@@ -0,0 +1,5 @@
+[clearkey-update-non-ascii-input.https.html]
+  [org.w3.clearkey test handling of non-ASCII responses for update()]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-playduration-keystatus.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-playduration-keystatus.html.ini
@@ -1,5 +1,9 @@
 [drm-mp4-playback-temporary-playduration-keystatus.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [drm, temporary, mp4, playback with limited playduration, check keystatus, single key]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-playduration.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-playduration.html.ini
@@ -1,5 +1,9 @@
 [drm-mp4-playback-temporary-playduration.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [drm, temporary, mp4, playback with limited playduration, single key]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
--- a/testing/web-platform/meta/encrypted-media/encrypted-media-default-feature-policy.https.sub.html.ini
+++ b/testing/web-platform/meta/encrypted-media/encrypted-media-default-feature-policy.https.sub.html.ini
@@ -1,3 +1,16 @@
 [encrypted-media-default-feature-policy.https.sub.html]
   [Default "encrypted-media" feature policy ["self"\] disallows cross-origin iframes.]
     expected: FAIL
+
+  [Default "encrypted-media" feature policy ["self"\] allows the top-level document.]
+    expected:
+      if os == "android": FAIL
+
+  [Feature policy "encrypted-media" can be enabled in cross-origin iframes using "allow" attribute.]
+    expected:
+      if os == "android": FAIL
+
+  [Default "encrypted-media" feature policy ["self"\] allows same-origin iframes.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/entries-api/interfaces.html.ini
@@ -0,0 +1,29 @@
+[interfaces.html]
+  [HTMLInputElement interface: attribute webkitdirectory]
+    expected:
+      if os == "android": FAIL
+
+  [HTMLInputElement interface: document.createElement("input") must inherit property "webkitdirectory" with the proper type]
+    expected:
+      if os == "android": FAIL
+
+  [HTMLInputElement interface: attribute webkitEntries]
+    expected:
+      if os == "android": FAIL
+
+  [File interface: new File([\], "example.txt") must inherit property "webkitRelativePath" with the proper type]
+    expected:
+      if os == "android": FAIL
+
+  [File interface: attribute webkitRelativePath]
+    expected:
+      if os == "android": FAIL
+
+  [DataTransferItem interface: operation webkitGetAsEntry()]
+    expected:
+      if os == "android": FAIL
+
+  [HTMLInputElement interface: document.createElement("input") must inherit property "webkitEntries" with the proper type]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/feature-policy/reporting/encrypted-media-report-only.https.html.ini
+++ b/testing/web-platform/meta/feature-policy/reporting/encrypted-media-report-only.https.html.ini
@@ -1,5 +1,9 @@
 [encrypted-media-report-only.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [Encrypted Media report only mode]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
--- a/testing/web-platform/meta/fetch/api/abort/general.any.js.ini
+++ b/testing/web-platform/meta/fetch/api/abort/general.any.js.ini
@@ -1,34 +1,202 @@
 [general.any.worker.html]
+  expected:
+    if os == "android": TIMEOUT
   [Stream will not error if body is empty. It's closed with an empty queue before it errors.]
-    expected: FAIL
+    expected:
+      if os == "android": NOTRUN
+      FAIL
 
   [Readable stream synchronously cancels with AbortError if aborted before reading]
-    expected: FAIL
+    expected:
+      if os == "android": NOTRUN
+      FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.arrayBuffer()]
+    expected:
+      if os == "android": FAIL
+
+  [Stream errors once aborted. Underlying connection closed.]
+    expected:
+      if os == "android": NOTRUN
+
+  [Fetch aborted & connection closed when aborted after calling response.text()]
+    expected:
+      if os == "android": NOTRUN
+
+  [Stream errors once aborted, after reading. Underlying connection closed.]
+    expected:
+      if os == "android": NOTRUN
+
+  [Underlying connection is closed when aborting after receiving response - no-cors]
+    expected:
+      if os == "android": FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.blob()]
+    expected:
+      if os == "android": TIMEOUT
+
+  [Fetch aborted & connection closed when aborted after calling response.formData()]
+    expected:
+      if os == "android": NOTRUN
+
+  [Underlying connection is closed when aborting after receiving response]
+    expected:
+      if os == "android": FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.json()]
+    expected:
+      if os == "android": NOTRUN
 
 
 [general.any.html]
+  expected:
+    if os == "android": TIMEOUT
   [Stream will not error if body is empty. It's closed with an empty queue before it errors.]
-    expected: FAIL
+    expected:
+      if os == "android": NOTRUN
+      FAIL
 
   [Readable stream synchronously cancels with AbortError if aborted before reading]
-    expected: FAIL
+    expected:
+      if os == "android": NOTRUN
+      FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.arrayBuffer()]
+    expected:
+      if os == "android": FAIL
+
+  [Stream errors once aborted. Underlying connection closed.]
+    expected:
+      if os == "android": NOTRUN
+
+  [Fetch aborted & connection closed when aborted after calling response.text()]
+    expected:
+      if os == "android": NOTRUN
+
+  [Stream errors once aborted, after reading. Underlying connection closed.]
+    expected:
+      if os == "android": NOTRUN
+
+  [Underlying connection is closed when aborting after receiving response - no-cors]
+    expected:
+      if os == "android": FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.blob()]
+    expected:
+      if os == "android": TIMEOUT
+
+  [Fetch aborted & connection closed when aborted after calling response.formData()]
+    expected:
+      if os == "android": NOTRUN
+
+  [Underlying connection is closed when aborting after receiving response]
+    expected:
+      if os == "android": FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.json()]
+    expected:
+      if os == "android": NOTRUN
 
 
 [general.any.sharedworker.html]
+  expected:
+    if os == "android": TIMEOUT
   [Stream will not error if body is empty. It's closed with an empty queue before it errors.]
-    expected: FAIL
+    expected:
+      if os == "android": NOTRUN
+      FAIL
 
   [Readable stream synchronously cancels with AbortError if aborted before reading]
-    expected: FAIL
+    expected:
+      if os == "android": NOTRUN
+      FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.arrayBuffer()]
+    expected:
+      if os == "android": FAIL
+
+  [Stream errors once aborted. Underlying connection closed.]
+    expected:
+      if os == "android": NOTRUN
+
+  [Fetch aborted & connection closed when aborted after calling response.text()]
+    expected:
+      if os == "android": NOTRUN
+
+  [Stream errors once aborted, after reading. Underlying connection closed.]
+    expected:
+      if os == "android": NOTRUN
+
+  [Underlying connection is closed when aborting after receiving response - no-cors]
+    expected:
+      if os == "android": FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.blob()]
+    expected:
+      if os == "android": TIMEOUT
+
+  [Fetch aborted & connection closed when aborted after calling response.formData()]
+    expected:
+      if os == "android": NOTRUN
+
+  [Underlying connection is closed when aborting after receiving response]
+    expected:
+      if os == "android": FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.json()]
+    expected:
+      if os == "android": NOTRUN
 
 
 [general.https.any.serviceworker.html]
   expected: TIMEOUT
 
 [general.any.serviceworker.html]
+  expected:
+    if os == "android": TIMEOUT
   [Readable stream synchronously cancels with AbortError if aborted before reading]
-    expected: FAIL
+    expected:
+      if os == "android": NOTRUN
+      FAIL
 
   [Stream will not error if body is empty. It's closed with an empty queue before it errors.]
-    expected: FAIL
+    expected:
+      if os == "android": NOTRUN
+      FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.arrayBuffer()]
+    expected:
+      if os == "android": TIMEOUT
+
+  [Stream errors once aborted. Underlying connection closed.]
+    expected:
+      if os == "android": NOTRUN
+
+  [Fetch aborted & connection closed when aborted after calling response.text()]
+    expected:
+      if os == "android": NOTRUN
+
+  [Stream errors once aborted, after reading. Underlying connection closed.]
+    expected:
+      if os == "android": NOTRUN
 
+  [Underlying connection is closed when aborting after receiving response - no-cors]
+    expected:
+      if os == "android": FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.blob()]
+    expected:
+      if os == "android": NOTRUN
+
+  [Fetch aborted & connection closed when aborted after calling response.formData()]
+    expected:
+      if os == "android": NOTRUN
+
+  [Underlying connection is closed when aborting after receiving response]
+    expected:
+      if os == "android": FAIL
+
+  [Fetch aborted & connection closed when aborted after calling response.json()]
+    expected:
+      if os == "android": NOTRUN
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/fetch/api/abort/keepalive.html.ini
@@ -0,0 +1,11 @@
+[keepalive.html]
+  expected:
+    if os == "android": TIMEOUT
+  [aborting a detached keepalive fetch should not do anything]
+    expected:
+      if os == "android": NOTRUN
+
+  [aborting a keepalive fetch should work]
+    expected:
+      if os == "android": TIMEOUT
+
--- a/testing/web-platform/meta/fetch/api/redirect/redirect-location.any.js.ini
+++ b/testing/web-platform/meta/fetch/api/redirect/redirect-location.any.js.ini
@@ -1,33 +1,53 @@
 [redirect-location.any.worker.html]
   [Redirect 301 in "manual" mode with invalid location]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Redirect 302 in "manual" mode with invalid location]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Redirect 303 in "manual" mode with invalid location]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Redirect 307 in "manual" mode with invalid location]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Redirect 308 in "manual" mode with invalid location]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
 
 [redirect-location.any.html]
   [Redirect 301 in "manual" mode with invalid location]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Redirect 302 in "manual" mode with invalid location]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Redirect 303 in "manual" mode with invalid location]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Redirect 307 in "manual" mode with invalid location]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
   [Redirect 308 in "manual" mode with invalid location]
-    expected: FAIL
+    expected:
+      if os == "android": PASS
+      FAIL
 
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html.ini
@@ -0,0 +1,5 @@
+[scroll-restoration-order.html]
+  [Traversing history should restore scroll position after dispatching popstate and before dispatching hashchange]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html.ini
+++ b/testing/web-platform/meta/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html.ini
@@ -1,2 +1,4 @@
 [prompt-and-unload-script-closeable.html]
-  expected: ERROR
+  expected:
+    if os == "android": CRASH
+    ERROR
--- a/testing/web-platform/meta/html/dom/interfaces.https.html.ini
+++ b/testing/web-platform/meta/html/dom/interfaces.https.html.ini
@@ -348,16 +348,24 @@
     expected: FAIL
 
   [html interfaces]
     expected: FAIL
 
   [Window interface: window must inherit property "onunload" with the proper type]
     disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1505149
 
+  [Window interface: window must inherit property "print()" with the proper type]
+    expected:
+      if os == "android": FAIL
+
+  [Window interface: operation print()]
+    expected:
+      if os == "android": FAIL
+
 [interfaces.https.html?include=HTML.*]
   [HTMLAllCollection must be primary interface of document.all]
     expected: FAIL
 
   [Stringification of document.all]
     expected: FAIL
 
   [HTMLAllCollection interface: document.all must inherit property "length" with the proper type]
@@ -634,16 +642,17 @@
     expected: FAIL
 
   [HTMLBodyElement interface: document.createElement("body") must inherit property "onunload" with the proper type]
     disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1505149
 
   [HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onunload" with the proper type]
     disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1505149
 
+
 [interfaces.https.html?exclude=(Document|Window|HTML.*)]
   [AudioTrackList interface: existence and properties of interface object]
     expected: FAIL
 
   [AudioTrackList interface object length]
     expected: FAIL
 
   [AudioTrackList interface object name]
--- a/testing/web-platform/meta/html/semantics/embedded-content/the-img-element/decode/image-decode-iframe.html.ini
+++ b/testing/web-platform/meta/html/semantics/embedded-content/the-img-element/decode/image-decode-iframe.html.ini
@@ -1,10 +1,11 @@
 [image-decode-iframe.html]
-  expected: ERROR
+  expected:
+    ERROR
   [(misc) Decode from removed iframe fails (loaded img)]
     expected: TIMEOUT
 
   [(misc) Decode from removed iframe fails (img not loaded)]
     expected: NOTRUN
 
   [(misc) Decode from iframe, later removed, fails (img not loaded)]
     expected: NOTRUN
--- a/testing/web-platform/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-immediate.window.js.ini
+++ b/testing/web-platform/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-immediate.window.js.ini
@@ -1,31 +1,35 @@
 [abort-refresh-immediate.window.html]
   expected:
     if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): OK
     if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): OK
     if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): OK
     if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): OK
+    if os == "android": OK
     TIMEOUT
   [document.open() aborts documents that are queued for navigation through Refresh header with timeout 0 (fetch())]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
+      if os == "android": PASS
       TIMEOUT
 
   [document.open() aborts documents that are queued for navigation through Refresh header with timeout 0 (image loading)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
+      if os == "android": PASS
       TIMEOUT
 
   [document.open() aborts documents that are queued for navigation through Refresh header with timeout 0 (XMLHttpRequest)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): PASS
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): PASS
+      if os == "android": PASS
       TIMEOUT
 
--- a/testing/web-platform/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-header.window.js.ini
+++ b/testing/web-platform/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-header.window.js.ini
@@ -1,21 +1,23 @@
 [abort-refresh-multisecond-header.window.html]
   expected: TIMEOUT
   [document.open() does NOT abort documents that are queued for navigation through Refresh header with 1-sec timeout (fetch())]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+      if os == "android": FAIL
       TIMEOUT
 
   [document.open() does NOT abort documents that are queued for navigation through Refresh header with 4-sec timeout (image loading)]
     expected: TIMEOUT
 
   [document.open() does NOT abort documents that are queued for navigation through Refresh header with 1-sec timeout (XMLHttpRequest)]
     expected:
       if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
       if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
       if not debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): FAIL
       if not debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
+      if os == "android": FAIL
       TIMEOUT
 
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window.js.ini
@@ -0,0 +1,5 @@
+[url.window.html]
+  [document.open() does not change document's URL (active but not fully active document)]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html.ini
+++ b/testing/web-platform/meta/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html.ini
@@ -1,4 +1,180 @@
 [protocol.https.html]
   [a url argument pointing to a different domain name, without %s should throw SYNTAX_ERR]
     expected: FAIL
 
+  [a protocol argument containing non-alphanumeric characters (like a cyrillic “а”) should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the mocha protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the res protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the view-source protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the blob protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [%s instead of domain name should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a protocol argument containing :// should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the opera protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the cid protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a url argument pointing to a non-http[s\] scheme should throw SECURITY_ERR due to not being of the same origin]
+    expected:
+      if os == "android": FAIL
+
+  [a protocol argument containing an unrecognized scheme should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a url argument pointing to a different domain name should throw SECURITY_ERR (2)]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the javascript protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the operamail protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a url argument without %s (but with %) should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a protocol argument containing : should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the http protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [an empty url argument should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the wyciwyg protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a protocol argument containing a backspace character should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the tcl protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a url argument without %s should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the about protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the chrome protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a protocol argument containing http:// should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the wss protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a protocol argument containing a LF character should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the mid protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a url argument pointing to a different domain name should throw SECURITY_ERR (3)]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the ftp protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [%s instead of subdomain name should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the file protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the vbscript protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [looping handlers should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a url argument without %s (but with %a) should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the attachment protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the shttp protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a protocol argument containing a null character should throw SYNTAX_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the livescript protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the https protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [a url argument pointing to a different domain name should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the data protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the resource protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
+  [attempting to override the ws protocol should throw SECURITY_ERR]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/infrastructure/testdriver/actions/elementTiming.html.ini
@@ -0,0 +1,6 @@
+[elementTiming.html]
+  [TestDriver actions: element timing]
+    expected:
+      if os == "android": FAIL
+    bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1499957
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/intersection-observer/display-none.html.ini
@@ -0,0 +1,13 @@
+[display-none.html]
+  [Intersecting notification after removing display:none on target.]
+    expected:
+      if os == "android": FAIL
+
+  [Not-intersecting notification after setting display:none on target.]
+    expected:
+      if os == "android": FAIL
+
+  [Intersecting notification after first rAF.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/intersection-observer/iframe-no-root.html.ini
@@ -0,0 +1,13 @@
+[iframe-no-root.html]
+  [document.scrollingElement.scrollTop = 100]
+    expected:
+      if os == "android": FAIL
+
+  [iframe.contentDocument.scrollingElement.scrollTop = 250]
+    expected:
+      if os == "android": FAIL
+
+  [First rAF.]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/intersection-observer/inline-client-rect.html.ini
+++ b/testing/web-platform/meta/intersection-observer/inline-client-rect.html.ini
@@ -1,9 +1,11 @@
 [inline-client-rect.html]
   [First rAF]
     expected:
       if os == "mac": FAIL
+      if os == "android": FAIL
 
   [scroller.scrollLeft = 90]
     expected:
       if os == "mac": FAIL
+      if os == "android": FAIL
 
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/intersection-observer/multiple-thresholds.html.ini
@@ -0,0 +1,33 @@
+[multiple-thresholds.html]
+  [document.scrollingElement.scrollTop = 120]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = window.innerHeight + 160]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = window.innerHeight + 200]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = 200]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = window.innerHeight + 140]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = 240]
+    expected:
+      if os == "android": FAIL
+
+  [First rAF.]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = 160]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/intersection-observer/root-margin.html.ini
@@ -0,0 +1,13 @@
+[root-margin.html]
+  [document.scrollingElement.scrollLeft = 100]
+    expected:
+      if os == "android": FAIL
+
+  [First rAF.]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = document.documentElement.clientHeight + 300]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/intersection-observer/same-document-no-root.html.ini
@@ -0,0 +1,13 @@
+[same-document-no-root.html]
+  [First rAF.]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = 300]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = 100]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/intersection-observer/same-document-root.html.ini
@@ -0,0 +1,17 @@
+[same-document-root.html]
+  [root.scrollTop = 0]
+    expected:
+      if os == "android": FAIL
+
+  [root.scrollTop = 150 with root scrolled into view.]
+    expected:
+      if os == "android": FAIL
+
+  [First rAF]
+    expected:
+      if os == "android": FAIL
+
+  [root.scrollTop = 150 with root scrolled out of view.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/intersection-observer/same-document-zero-size-target.html.ini
@@ -0,0 +1,13 @@
+[same-document-zero-size-target.html]
+  [First rAF]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = 300]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = 100]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/intersection-observer/shadow-content.html.ini
@@ -0,0 +1,5 @@
+[shadow-content.html]
+  [First rAF after creating shadow DOM.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/intersection-observer/text-target.html.ini
@@ -0,0 +1,13 @@
+[text-target.html]
+  [document.scrollingElement.scrollTop = 100]
+    expected:
+      if os == "android": FAIL
+
+  [First rAF.]
+    expected:
+      if os == "android": FAIL
+
+  [document.scrollingElement.scrollTop = 300]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/intersection-observer/zero-area-element-hidden.html.ini
@@ -0,0 +1,5 @@
+[zero-area-element-hidden.html]
+  [First rAF.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/navigation-timing/nav2_test_redirect_server.html.ini
@@ -0,0 +1,5 @@
+[nav2_test_redirect_server.html]
+  [Navigation Timing 2 WPT]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirects.html.ini
+++ b/testing/web-platform/meta/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirects.html.ini
@@ -1,4 +1,5 @@
 [nav2_test_unloadEvents_with_cross_origin_redirects.html]
   [Navigation Timing 2 WPT]
-    expected: FAIL
+    expected:
+      FAIL
 
--- a/testing/web-platform/meta/payment-method-basic-card/historical.https.html.ini
+++ b/testing/web-platform/meta/payment-method-basic-card/historical.https.html.ini
@@ -1,5 +1,6 @@
 [historical.https.html]
   [supportedTypes and BasicCardType enum were removed from the spec]
     expected:
       if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if os == "android": FAIL
 
--- a/testing/web-platform/meta/payment-request/payment-request-canmakepayment-method-protection.https.html.ini
+++ b/testing/web-platform/meta/payment-request/payment-request-canmakepayment-method-protection.https.html.ini
@@ -1,5 +1,6 @@
 [payment-request-canmakepayment-method-protection.https.html]
   [Optionally, at the user agent's discretion, return a promise rejected with a "NotAllowedError" DOMException.]
     expected:
       if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if os == "android": FAIL
 
--- a/testing/web-platform/meta/payment-request/payment-request-canmakepayment-method.https.html.ini
+++ b/testing/web-platform/meta/payment-request/payment-request-canmakepayment-method.https.html.ini
@@ -23,17 +23,20 @@
 
   [Calling canMakePayment() multiple times is always a new object.]
     expected:
       if not e10s: FAIL
 
   [If payment method identifier are supported, resolve promise with true.]
     expected:
       if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if os == "android": FAIL
 
   [Mix of supported and unsupported methods, at least one method is supported.]
     expected:
       if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if os == "android": FAIL
 
   [All methods are unsupported]
     expected:
       if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if os == "android": FAIL
 
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/pointerevent_pointermove.html.ini
@@ -0,0 +1,7 @@
+[pointerevent_pointermove.html]
+  expected:
+    if os == "android": TIMEOUT
+  [pointermove event received]
+    expected:
+      if os == "android": NOTRUN
+
--- a/testing/web-platform/meta/resource-timing/resource_initiator_types.html.ini
+++ b/testing/web-platform/meta/resource-timing/resource_initiator_types.html.ini
@@ -59,8 +59,11 @@
     expected: FAIL
 
   [http://web-platform.test:8000/resource-timing/resources/empty.py?id=audio-source-ogg is expected to have initiatorType audio]
     expected: FAIL
 
   [http://web-platform.test:8000/resource-timing/resources/empty.py?id=audio-source-wav is expected to have initiatorType audio]
     expected: FAIL
 
+  [http://web-platform.test:8000/resource-timing/resources/blue.png?id=picture-99x-img-srcset is not expected to be in the Resource Timing buffer]
+    expected:
+      if os == "android": FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/resource-timing/resource_timing.worker.js.ini
@@ -0,0 +1,7 @@
+[resource_timing.worker.html]
+  expected:
+    if os == "android": TIMEOUT
+  [Performance Resource Entries in workers]
+    expected:
+      if os == "android": TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/service-workers/service-worker/clients-matchall-order.https.html.ini
@@ -0,0 +1,13 @@
+[clients-matchall-order.https.html]
+  [Clients.matchAll() returns uncontrolled windows in focus order.  Case 1.]
+    expected:
+      if os == "android": FAIL
+
+  [Clients.matchAll() returns controlled windows in focus order.  Case 1.]
+    expected:
+      if os == "android": FAIL
+
+  [Clients.matchAll() returns controlled windows and frames in focus order.]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/service-workers/service-worker/update-registration-with-type.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/update-registration-with-type.https.html.ini
@@ -6,8 +6,12 @@
     expected: FAIL
 
   [Update the registration with a different script type (classic => module) and with a same main script. Expect evaluation failed.]
     expected: FAIL
 
   [Update the registration with a different script type (module => classic) and with a same main script. Expect evaluation failed.]
     expected: FAIL
 
+  [Does not update the registration with the same script type and the same main script.]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/shadow-dom/scroll-to-the-fragment-in-shadow-tree.html.ini
@@ -0,0 +1,6 @@
+[scroll-to-the-fragment-in-shadow-tree.html]
+  [The user agent scroll to the fragment when there is an element with an ID exactly equal to the decoded fragid]
+    expected:
+      if os == "android": FAIL
+      
+
--- a/testing/web-platform/meta/storage/opaque-origin.https.window.js.ini
+++ b/testing/web-platform/meta/storage/opaque-origin.https.window.js.ini
@@ -1,20 +1,34 @@
 [opaque-origin.https.window.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [navigator.storage.estimate() in non-sandboxed iframe should not reject]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [navigator.storage.estimate() in sandboxed iframe should reject with TypeError]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [navigator.storage.persist() in non-sandboxed iframe should not reject]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [navigator.storage.persisted() in sandboxed iframe should reject with TypeError]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [navigator.storage.persisted() in non-sandboxed iframe should not reject]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [navigator.storage.persist() in sandboxed iframe should reject with TypeError]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
--- a/testing/web-platform/meta/storage/storagemanager-persist.https.window.js.ini
+++ b/testing/web-platform/meta/storage/storagemanager-persist.https.window.js.ini
@@ -1,5 +1,9 @@
 [storagemanager-persist.https.window.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [navigator.storage.persist() returns a promise that resolves.]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
--- a/testing/web-platform/meta/trusted-types/block-string-assignment-to-Location-assign.tentative.html.ini
+++ b/testing/web-platform/meta/trusted-types/block-string-assignment-to-Location-assign.tentative.html.ini
@@ -1,2 +1,4 @@
 [block-string-assignment-to-Location-assign.tentative.html]
-  expected: ERROR
+  expected:
+    if os == "android": TIMEOUT
+    ERROR
--- a/testing/web-platform/meta/trusted-types/block-string-assignment-to-Location-href.tentative.html.ini
+++ b/testing/web-platform/meta/trusted-types/block-string-assignment-to-Location-href.tentative.html.ini
@@ -1,2 +1,4 @@
 [block-string-assignment-to-Location-href.tentative.html]
-  expected: ERROR
+  expected:
+    if os == "android": TIMEOUT
+    ERROR
--- a/testing/web-platform/meta/trusted-types/block-string-assignment-to-Location-replace.tentative.html.ini
+++ b/testing/web-platform/meta/trusted-types/block-string-assignment-to-Location-replace.tentative.html.ini
@@ -1,2 +1,4 @@
 [block-string-assignment-to-Location-replace.tentative.html]
-  expected: ERROR
+  expected:
+    if os == "android": TIMEOUT
+    ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/user-timing/measure_associated_with_navigation_timing.html.ini
@@ -0,0 +1,13 @@
+[measure_associated_with_navigation_timing.html]
+  [Measure from domComplete event to most recent mark "a" should have longer duration.]
+    expected:
+      if os == "android": FAIL
+
+  [Measure from most recent mark to navigationStart should have longer duration.]
+    expected:
+      if os == "android": FAIL
+
+  [Second measure of current mark to navigationStart should be negative value.]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/meta/webauthn/createcredential-badargs-authnrselection.https.html.ini
+++ b/testing/web-platform/meta/webauthn/createcredential-badargs-authnrselection.https.html.ini
@@ -1,47 +1,79 @@
 [createcredential-badargs-authnrselection.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection is empty array]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection is null]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection is empty string]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection is string]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment is empty string]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment is empty object]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment is null]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment platform]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey true]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey is string]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification empty string]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification empty object]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification bad value]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification null]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification required]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
--- a/testing/web-platform/meta/webauthn/createcredential-badargs-challenge.https.html.ini
+++ b/testing/web-platform/meta/webauthn/createcredential-badargs-challenge.https.html.ini
@@ -1,5 +1,9 @@
 [createcredential-badargs-challenge.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [Bad challenge: challenge is empty ArrayBuffer]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
--- a/testing/web-platform/meta/webauthn/createcredential-badargs-rp.https.html.ini
+++ b/testing/web-platform/meta/webauthn/createcredential-badargs-rp.https.html.ini
@@ -1,23 +1,37 @@
 [createcredential-badargs-rp.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [Bad rp: id is object]
     expected: FAIL
 
   [Bad rp: name is object]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [Bad rp: name is null]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad rp: name is empty String]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad rp: icon is object]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad rp: icon is null]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad rp: icon is empty String]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
--- a/testing/web-platform/meta/webauthn/createcredential-badargs-user.https.html.ini
+++ b/testing/web-platform/meta/webauthn/createcredential-badargs-user.https.html.ini
@@ -1,56 +1,94 @@
 [createcredential-badargs-user.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [Bad user: id is empty ArrayBuffer]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [Bad user: ArrayBuffer id is too long (65 bytes)]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad user: Int16Array id is too long (66 bytes)]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad user: Int32Array id is too long (68 bytes)]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad user: Float32Array id is too long (68 bytes)]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad user: Float64Array id is too long (72 bytes)]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad user: id is too long (65 bytes)]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [user missing name]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad user: name is object]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad user: name is null]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad user: name is empty String]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad user: icon is object]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad user: icon is null]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad user: icon is empty String]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad user: displayName is undefined]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [Bad user: displayName is object]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad user: displayName is null]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad user: displayName is empty String]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
--- a/testing/web-platform/meta/webauthn/createcredential-excludecredentials.https.html.ini
+++ b/testing/web-platform/meta/webauthn/createcredential-excludecredentials.https.html.ini
@@ -1,14 +1,24 @@
 [createcredential-excludecredentials.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [excludeCredentials missing]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [excludeCredentials empty array]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [exclude existing credential]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [exclude random (non-existing) credential]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
--- a/testing/web-platform/meta/webauthn/createcredential-extensions.https.html.ini
+++ b/testing/web-platform/meta/webauthn/createcredential-extensions.https.html.ini
@@ -1,32 +1,54 @@
 [createcredential-extensions.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [Bad extensions: extensions is null]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [Bad extensions: extensions is empty Array]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad extensions: extensions is empty ArrayBuffer]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad extensions: malformatted JSON]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad extensions: JavaScript object]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad extensions: extension ID too long]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [extensions is a nonsensical JSON string]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [empty appid in create request]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [null appid in create request]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
   [appid in create request]
-    expected: NOTRUN
+    expected:
+      if os == "android": PASS
+      NOTRUN
 
--- a/testing/web-platform/meta/webauthn/createcredential-passing.https.html.ini
+++ b/testing/web-platform/meta/webauthn/createcredential-passing.https.html.ini
@@ -1,114 +1,182 @@
 [createcredential-passing.https.html]
   expected: TIMEOUT
   [WebAuthn credential.create() Passing Tests]
     expected: TIMEOUT
 
   [passing credentials.create() with default arguments]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [passing credentials.create() with rpId (host and port)]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [passing credentials.create() with rpId (hostname)]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [passing credentials.create() without rp.icon]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [very short user id]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [max length user id]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Uint8Array user id]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Int8Array user id]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Int16Array user id]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Int32Array user id]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Float32Array user id]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [DataView user id]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [passing credentials.create() without user.icon]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Int16Array challenge]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Int32Array challenge]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Float32Array challenge]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Float64Array challenge]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [DataView challenge]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Absurdly large challenge]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad pubKeyCredParams: pubKeyCredParams is empty Array]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [EC256 pubKeyCredParams]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [SelectEC256 pubKeyCredParams from a list]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [passing credentials.create() with no timeout]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection is undefined]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection is empty object]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection default values]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection attachment undefined]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection residentKey undefined]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection residentKey false]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection userVerification undefined]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection userVerification discouraged]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [attestation parameter: attestation is "none"]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [attestation parameter: attestation is "indirect"]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [attestation parameter: attestation is "direct"]
-    expected: NOTRUN
+    expected:
+      if os == "android": TIMEOUT
+      NOTRUN
 
   [attestation parameter: attestation is undefined]
     expected: NOTRUN
 
   [extensions undefined]
     expected: NOTRUN
 
   [extensions are empty object]
--- a/testing/web-platform/meta/webauthn/getcredential-badargs-rpid.https.html.ini
+++ b/testing/web-platform/meta/webauthn/getcredential-badargs-rpid.https.html.ini
@@ -1,17 +1,29 @@
 [getcredential-badargs-rpid.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [Bad rpId: empty string]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [Bad rpId: null]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad rpId: invalid domain (has space)]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad rpId: invalid domain (starts with dash)]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad rpId: invalid domain (starts with number)]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
--- a/testing/web-platform/meta/webauthn/getcredential-badargs-userverification.https.html.ini
+++ b/testing/web-platform/meta/webauthn/getcredential-badargs-userverification.https.html.ini
@@ -1,17 +1,29 @@
 [getcredential-badargs-userverification.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [Bad userVerification: empty string]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [Bad userVerification: empty object]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad userVerification: bad value]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad userVerification: null]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad userVerification: "required"]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
--- a/testing/web-platform/meta/webauthn/getcredential-extensions.https.html.ini
+++ b/testing/web-platform/meta/webauthn/getcredential-extensions.https.html.ini
@@ -1,26 +1,44 @@
 [getcredential-extensions.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [Bad extensions: extensions is string]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [Bad extensions: extensions is null]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad extensions: extensions is empty Array]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad extensions: extensions is empty ArrayBuffer]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad extensions: malformatted JSON]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad extensions: JavaScript object]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [Bad extensions: extension ID too long]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [extensions is a nonsensical JSON string]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
--- a/testing/web-platform/meta/webauthn/getcredential-passing.https.html.ini
+++ b/testing/web-platform/meta/webauthn/getcredential-passing.https.html.ini
@@ -1,38 +1,64 @@
 [getcredential-passing.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [passing credentials.get() with default args]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
   [passing credentials.create() with no timeout]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [rpId undefined]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [passing credentials.get() with rpId (host and port)]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [passing credentials.get() with rpId (hostname)]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [no credential specified]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection userVerification undefined]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection userVerification preferred]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [authenticatorSelection userVerification discouraged]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [extensions undefined]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [extensions are empty object]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
   [extensions are dict of empty strings]
-    expected: NOTRUN
+    expected:
+      if os == "android": FAIL
+      NOTRUN
 
--- a/testing/web-platform/meta/webauthn/getcredential-timeout.https.html.ini
+++ b/testing/web-platform/meta/webauthn/getcredential-timeout.https.html.ini
@@ -1,5 +1,9 @@
 [getcredential-timeout.https.html]
-  expected: TIMEOUT
+  expected:
+    if os == "android": OK
+    TIMEOUT
   [ensure create credential times out]
-    expected: TIMEOUT
+    expected:
+      if os == "android": FAIL
+      TIMEOUT
 
--- a/testing/web-platform/meta/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js.ini
+++ b/testing/web-platform/meta/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js.ini
@@ -1,9 +1,10 @@
 [bufferedAmount-unchanged-by-sync-xhr.any.sharedworker.html]
 
 [bufferedAmount-unchanged-by-sync-xhr.any.html]
   [bufferedAmount should not be updated during a sync XHR]
     expected:
       if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if os == "android": FAIL
 
 
 [bufferedAmount-unchanged-by-sync-xhr.any.worker.html]
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/workers/constructors/SharedWorker/same-origin.html.ini
@@ -0,0 +1,5 @@
+[same-origin.html]
+  [unsupported_scheme]
+    expected:
+      if os == "android": FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/workers/constructors/Worker/same-origin.html.ini
@@ -0,0 +1,5 @@
+[same-origin.html]
+  [unsupported_scheme]
+    expected:
+      if os == "android": FAIL
+
--- a/testing/web-platform/tests/dom/events/Event-timestamp-safe-resolution.html
+++ b/testing/web-platform/tests/dom/events/Event-timestamp-safe-resolution.html
@@ -40,10 +40,10 @@ test(function() {
       deltaInMicroSeconds = Math.round((e2.timeStamp - e1.timeStamp) * 1000);
     } while (deltaInMicroSeconds == 0) // only collect non-zero samples
 
     samples.push(deltaInMicroSeconds);
   }
 
   const minResolution = estimateMinimumResolution(samples);
   assert_greater_than_equal(minResolution, 5);
-}, 'Event timestamp should not have a resolution better that 5 microseconds');
+}, 'Event timestamp should not have a resolution better than 5 microseconds');
 </script>
\ No newline at end of file
--- a/testing/web-platform/tests/resource-timing/resource_timing.worker.js
+++ b/testing/web-platform/tests/resource-timing/resource_timing.worker.js
@@ -54,11 +54,11 @@ async_test(t => {
     importScripts(["resources/empty.js"]);
     check("other", "http/1.1");
   })
 
   // All done.
   .then(() => {
     t.done();
   });
-}, "Performance Resouce Entries in workers");
+}, "Performance Resource Entries in workers");
 
 done();