From f35863852fe95939126690214b7eda2b6b5bb94d Mon Sep 17 00:00:00 2001 From: Andrew Halberstadt Date: Fri, 23 May 2014 15:55:54 -0400 Subject: [PATCH 01/37] Bug 922680 - Enable out of process b2g emulator reftests, r=jgriffin --- layout/tools/reftest/mach_commands.py | 5 +++++ testing/config/mozharness/b2g_emulator_config.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/layout/tools/reftest/mach_commands.py b/layout/tools/reftest/mach_commands.py index 8d729aa74296..ad2cfbc3a837 100644 --- a/layout/tools/reftest/mach_commands.py +++ b/layout/tools/reftest/mach_commands.py @@ -203,6 +203,11 @@ class ReftestRunner(MozbuildObject): options.httpdPath = os.path.join(self.topsrcdir, 'netwerk', 'test', 'httpserver') options.xrePath = xre_path options.ignoreWindowSize = True + + # Don't enable oop for crashtest until they run oop in automation + if suite == 'reftest': + options.oop = True + return reftest.run_remote_reftests(parser, options, args) def run_desktop_test(self, test_file=None, filter=None, suite=None, diff --git a/testing/config/mozharness/b2g_emulator_config.py b/testing/config/mozharness/b2g_emulator_config.py index a6244ceff107..42b7cd875e31 100644 --- a/testing/config/mozharness/b2g_emulator_config.py +++ b/testing/config/mozharness/b2g_emulator_config.py @@ -27,7 +27,7 @@ config = { "--emulator-res=800x1000", "--logcat-dir=%(logcat_dir)s", "--remote-webserver=%(remote_webserver)s", "--ignore-window-size", "--xre-path=%(xre_path)s", "--symbols-path=%(symbols_path)s", "--busybox=%(busybox)s", - "--total-chunks=%(total_chunks)s", "--this-chunk=%(this_chunk)s", + "--total-chunks=%(total_chunks)s", "--this-chunk=%(this_chunk)s", "--enable-oop", "%(test_manifest)s", ], From c53b5f77a87d703b36cc06078dfea04270302395 Mon Sep 17 00:00:00 2001 From: Vincent Chen Date: Fri, 23 May 2014 15:56:15 -0400 Subject: [PATCH 02/37] Bug 981477 - Disable B2G emulator reftests that fail oop, r=ahal --- .../reftests/toblob-todataurl/reftest.list | 16 +- editor/reftests/xul/reftest.list | 48 +- .../reftest/bmp/bmp-corrupted/reftest.list | 2 +- .../ico/ico-bmp-corrupted/reftest.list | 4 +- layout/reftests/abs-pos/reftest.list | 2 +- layout/reftests/bidi/reftest.list | 6 +- layout/reftests/border-image/reftest.list | 2 +- layout/reftests/box-ordinal/reftest.list | 14 +- layout/reftests/box-properties/reftest.list | 2 +- layout/reftests/box-shadow/reftest.list | 2 +- layout/reftests/bugs/reftest.list | 138 ++--- layout/reftests/canvas/reftest.list | 2 +- layout/reftests/columns/reftest.list | 4 +- layout/reftests/counters/reftest.list | 12 +- .../reftests/css-invalid/input/reftest.list | 4 +- .../css-invalid/textarea/reftest.list | 8 +- layout/reftests/css-mediaqueries/reftest.list | 2 +- .../css-ui-invalid/input/reftest.list | 4 +- .../css-ui-invalid/textarea/reftest.list | 8 +- .../reftests/css-ui-valid/input/reftest.list | 2 +- .../reftests/css-ui-valid/select/reftest.list | 2 +- .../css-ui-valid/textarea/reftest.list | 10 +- layout/reftests/css-valid/input/reftest.list | 4 +- .../reftests/css-valid/textarea/reftest.list | 8 +- layout/reftests/dom/reftest.list | 4 +- layout/reftests/first-line/reftest.list | 2 +- layout/reftests/flexbox/reftest.list | 30 +- layout/reftests/floats/reftest.list | 2 +- layout/reftests/forms/fieldset/reftest.list | 4 +- .../reftests/forms/input/number/reftest.list | 6 +- .../reftests/forms/input/range/reftest.list | 23 +- layout/reftests/forms/meter/reftest.list | 2 +- layout/reftests/forms/textarea/reftest.list | 2 +- layout/reftests/ib-split/reftest.list | 2 +- layout/reftests/image-element/reftest.list | 2 +- layout/reftests/image-region/reftest.list | 2 +- layout/reftests/invalidation/reftest.list | 26 +- layout/reftests/layers/reftest.list | 4 +- .../reftests/margin-collapsing/reftest.list | 510 +++++++++--------- layout/reftests/marquee/reftest.list | 2 +- layout/reftests/mathml/reftest.list | 162 +++--- layout/reftests/object/reftest.list | 2 +- .../horizontal/reftest_border_abspos.list | 17 +- .../horizontal/reftest_border_parent.list | 16 +- .../horizontal/reftest_margin_abspos.list | 16 +- .../horizontal/reftest_margin_parent.list | 16 +- .../horizontal/reftest_padding_abspos.list | 16 +- .../horizontal/reftest_padding_parent.list | 16 +- .../horizontal/reftest_plain.list | 16 +- .../position-dynamic-changes/reftest.list | 16 +- layout/reftests/position-sticky/reftest.list | 2 +- layout/reftests/printing/reftest.list | 10 +- layout/reftests/reftest.list | 4 +- layout/reftests/scrolling/reftest.list | 10 +- layout/reftests/svg/as-image/reftest.list | 14 +- layout/reftests/svg/filters/reftest.list | 2 +- layout/reftests/svg/image/reftest.list | 2 +- layout/reftests/svg/reftest.list | 36 +- layout/reftests/svg/sizing/reftest.list | 12 +- .../reftests/svg/smil/container/reftest.list | 2 +- layout/reftests/svg/smil/event/reftest.list | 6 +- layout/reftests/svg/smil/motion/reftest.list | 14 +- layout/reftests/svg/smil/reftest.list | 6 +- layout/reftests/svg/smil/sort/reftest.list | 2 +- .../reftests/svg/smil/syncbase/reftest.list | 2 +- .../reftests/svg/smil/transform/reftest.list | 8 +- layout/reftests/svg/text/reftest.list | 6 +- layout/reftests/tab-size/reftest.list | 4 +- layout/reftests/text-shadow/reftest.list | 10 +- layout/reftests/text-svgglyphs/reftest.list | 2 +- layout/reftests/text/reftest.list | 14 +- layout/reftests/transform-3d/reftest.list | 4 +- layout/reftests/transform/reftest.list | 8 +- .../w3c-css/submitted/ui3/reftest.list | 6 +- layout/reftests/webcomponents/reftest.list | 2 +- .../reftests/xul-document-load/reftest.list | 44 +- layout/reftests/xul/reftest.list | 14 +- layout/xul/grid/reftests/reftest.list | 34 +- layout/xul/reftest/reftest.list | 10 +- toolkit/content/tests/reftests/reftest.list | 4 +- 80 files changed, 757 insertions(+), 759 deletions(-) diff --git a/content/html/content/reftests/toblob-todataurl/reftest.list b/content/html/content/reftests/toblob-todataurl/reftest.list index 3994cca6b24d..aefe490f6db3 100644 --- a/content/html/content/reftests/toblob-todataurl/reftest.list +++ b/content/html/content/reftests/toblob-todataurl/reftest.list @@ -1,11 +1,11 @@ -fuzzy-if(Android,105,482) == toblob-quality-0.html quality-0-ref.html -fuzzy-if(Android,38,2024) == toblob-quality-25.html quality-25-ref.html -fuzzy-if(Android,29,2336) == toblob-quality-50.html quality-50-ref.html -fuzzy-if(Android,23,3533) == toblob-quality-75.html quality-75-ref.html -fuzzy-if(Android,16,4199) == toblob-quality-92.html quality-92-ref.html -fuzzy-if(Android,8,2461) == toblob-quality-100.html quality-100-ref.html -fuzzy-if(Android,16,4199) == toblob-quality-undefined.html quality-92-ref.html -fuzzy-if(Android,16,4199) == toblob-quality-default.html quality-92-ref.html +fuzzy-if(Android,105,482) random-if(B2G&&browserIsRemote) == toblob-quality-0.html quality-0-ref.html +fuzzy-if(Android,38,2024) random-if(B2G&&browserIsRemote) == toblob-quality-25.html quality-25-ref.html +fuzzy-if(Android,29,2336) random-if(B2G&&browserIsRemote) == toblob-quality-50.html quality-50-ref.html +fuzzy-if(Android,23,3533) random-if(B2G&&browserIsRemote) == toblob-quality-75.html quality-75-ref.html +fuzzy-if(Android,16,4199) random-if(B2G&&browserIsRemote) == toblob-quality-92.html quality-92-ref.html +fuzzy-if(Android,8,2461) random-if(B2G&&browserIsRemote) == toblob-quality-100.html quality-100-ref.html +fuzzy-if(Android,16,4199) random-if(B2G&&browserIsRemote) == toblob-quality-undefined.html quality-92-ref.html +fuzzy-if(Android,16,4199) random-if(B2G&&browserIsRemote) == toblob-quality-default.html quality-92-ref.html fuzzy-if(Android,105,482) == todataurl-quality-0.html quality-0-ref.html fuzzy-if(Android,38,2024) == todataurl-quality-25.html quality-25-ref.html fuzzy-if(Android,29,2336) == todataurl-quality-50.html quality-50-ref.html diff --git a/editor/reftests/xul/reftest.list b/editor/reftests/xul/reftest.list index 14f639bad925..e3e8cb091855 100644 --- a/editor/reftests/xul/reftest.list +++ b/editor/reftests/xul/reftest.list @@ -1,29 +1,29 @@ -fails-if(Android||B2G) == empty-1.xul empty-ref.xul # bug 783658 -!= empty-2.xul empty-ref.xul +fails-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == empty-1.xul empty-ref.xul # bug 783658 +skip-if(B2G&&browserIsRemote) != empty-2.xul empty-ref.xul # There is no way to simulate an autocomplete textbox in windows XP/Vista/7 default theme using CSS. # Therefore, the equlity tests below should be marked as failing. -fails-if(Android||B2G) fails-if(windowsDefaultTheme&&/^Windows\x20NT\x20(5\.[12]|6\.[012])/.test(http.oscpu)) == autocomplete-1.xul autocomplete-ref.xul # bug 783658 -fails-if(Android||B2G) fails-if(windowsDefaultTheme&&/^Windows\x20NT\x20(5\.[12]|6\.[012])/.test(http.oscpu)) == emptyautocomplete-1.xul emptyautocomplete-ref.xul # bug 783658 -!= emptymultiline-1.xul emptymultiline-ref.xul -fails-if(Android||B2G) == emptymultiline-2.xul emptymultiline-ref.xul # bug 783658 -fails-if(Android||B2G) == emptytextbox-1.xul emptytextbox-ref.xul # bug 783658 -fails-if(Android||B2G) == emptytextbox-2.xul emptytextbox-ref.xul # bug 783658 -!= emptytextbox-3.xul emptytextbox-ref.xul -!= emptytextbox-4.xul emptytextbox-ref.xul -fails-if(Android||B2G) == emptytextbox-5.xul emptytextbox-ref.xul # bug 783658 +fails-if(Android||(B2G&&browserIsRemote)) fails-if(windowsDefaultTheme&&/^Windows\x20NT\x20(5\.[12]|6\.[012])/.test(http.oscpu)) skip-if(B2G&&browserIsRemote) == autocomplete-1.xul autocomplete-ref.xul # bug 783658 +fails-if(Android||(B2G&&browserIsRemote)) fails-if(windowsDefaultTheme&&/^Windows\x20NT\x20(5\.[12]|6\.[012])/.test(http.oscpu)) skip-if(B2G&&browserIsRemote) == emptyautocomplete-1.xul emptyautocomplete-ref.xul # bug 783658 +skip-if(B2G&&browserIsRemote) != emptymultiline-1.xul emptymultiline-ref.xul +fails-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == emptymultiline-2.xul emptymultiline-ref.xul # bug 783658 +fails-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == emptytextbox-1.xul emptytextbox-ref.xul # bug 783658 +fails-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == emptytextbox-2.xul emptytextbox-ref.xul # bug 783658 +skip-if(B2G&&browserIsRemote) != emptytextbox-3.xul emptytextbox-ref.xul +skip-if(B2G&&browserIsRemote) != emptytextbox-4.xul emptytextbox-ref.xul +fails-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == emptytextbox-5.xul emptytextbox-ref.xul # bug 783658 # There is no way to simulate a number textbox in windows XP/Vista/7 default theme using CSS. # Therefore, the equlity tests below should be marked as failing. -!= number-1.xul number-ref.xul -!= number-2.xul number-ref.xul -fails-if(Android||B2G) fails-if(windowsDefaultTheme&&/^Windows\x20NT\x20(5\.[12]|6\.[012])/.test(http.oscpu)) == number-3.xul number-ref.xul # bug 783658 -!= number-4.xul number-ref.xul -fails-if(Android||B2G) fails-if(windowsDefaultTheme&&/^Windows\x20NT\x20(5\.[12]|6\.[012])/.test(http.oscpu)) == number-5.xul number-ref.xul # bug 783658 -fails-if(Android||B2G) fails-if(windowsDefaultTheme&&/^Windows\x20NT\x20(5\.[12]|6\.[012])/.test(http.oscpu)) == numberwithvalue-1.xul numberwithvalue-ref.xul # bug 783658 -fails-if(Android||B2G) == passwd-1.xul passwd-ref.xul # bug 783658 -fails-if(Android||B2G) == passwd-2.xul passwd-ref.xul # bug 783658 -!= passwd-3.xul passwd-ref.xul -fails-if(Android||B2G) == plain-1.xul plain-ref.xul # bug 783658 -fails-if(Android||B2G) == textbox-1.xul textbox-ref.xul -!= textbox-disabled.xul textbox-ref.xul +skip-if(B2G&&browserIsRemote) != number-1.xul number-ref.xul +skip-if(B2G&&browserIsRemote) != number-2.xul number-ref.xul +fails-if(Android||(B2G&&browserIsRemote)) fails-if(windowsDefaultTheme&&/^Windows\x20NT\x20(5\.[12]|6\.[012])/.test(http.oscpu)) skip-if(B2G&&browserIsRemote) == number-3.xul number-ref.xul # bug 783658 +skip-if(B2G&&browserIsRemote) != number-4.xul number-ref.xul +fails-if(Android||(B2G&&browserIsRemote)) fails-if(windowsDefaultTheme&&/^Windows\x20NT\x20(5\.[12]|6\.[012])/.test(http.oscpu)) skip-if(B2G&&browserIsRemote) == number-5.xul number-ref.xul # bug 783658 +fails-if(Android||(B2G&&browserIsRemote)) fails-if(windowsDefaultTheme&&/^Windows\x20NT\x20(5\.[12]|6\.[012])/.test(http.oscpu)) skip-if(B2G&&browserIsRemote) == numberwithvalue-1.xul numberwithvalue-ref.xul # bug 783658 +fails-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == passwd-1.xul passwd-ref.xul # bug 783658 +fails-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == passwd-2.xul passwd-ref.xul # bug 783658 +skip-if(B2G&&browserIsRemote) != passwd-3.xul passwd-ref.xul +fails-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == plain-1.xul plain-ref.xul # bug 783658 +fails-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == textbox-1.xul textbox-ref.xul +skip-if(B2G&&browserIsRemote) != textbox-disabled.xul textbox-ref.xul # Read-only textboxes look like normal textboxes in windows Vista/7 default theme -fails-if(windowsDefaultTheme&&/^Windows\x20NT\x206\.[012]/.test(http.oscpu)) != textbox-readonly.xul textbox-ref.xul +fails-if(windowsDefaultTheme&&/^Windows\x20NT\x206\.[012]/.test(http.oscpu)) skip-if(B2G&&browserIsRemote) != textbox-readonly.xul textbox-ref.xul diff --git a/image/test/reftest/bmp/bmp-corrupted/reftest.list b/image/test/reftest/bmp/bmp-corrupted/reftest.list index fc39882dac51..0f5f75907b16 100644 --- a/image/test/reftest/bmp/bmp-corrupted/reftest.list +++ b/image/test/reftest/bmp/bmp-corrupted/reftest.list @@ -8,5 +8,5 @@ # Tests for RLE4 with an invalid BPP == wrapper.html?invalid-compression-RLE4.bmp about:blank # Tests for RLE8 with an invalid BPP -== wrapper.html?invalid-compression-RLE8.bmp about:blank +random-if(B2G&&browserIsRemote) == wrapper.html?invalid-compression-RLE8.bmp about:blank # Bug 921207 diff --git a/image/test/reftest/ico/ico-bmp-corrupted/reftest.list b/image/test/reftest/ico/ico-bmp-corrupted/reftest.list index 69176e192f09..a344ef159741 100644 --- a/image/test/reftest/ico/ico-bmp-corrupted/reftest.list +++ b/image/test/reftest/ico/ico-bmp-corrupted/reftest.list @@ -3,9 +3,9 @@ # Invalid value for bits per pixel (BPP) == wrapper.html?invalid-bpp.ico about:blank # Invalid BPP values for RLE4 -== wrapper.html?invalid-compression-RLE4.ico about:blank +random-if(B2G&&browserIsRemote) == wrapper.html?invalid-compression-RLE4.ico about:blank # Invalid BPP values for RLE8 -== wrapper.html?invalid-compression-RLE8.ico about:blank +random-if(B2G&&browserIsRemote) == wrapper.html?invalid-compression-RLE8.ico about:blank # Invalid compression value == wrapper.html?invalid-compression.ico about:blank diff --git a/layout/reftests/abs-pos/reftest.list b/layout/reftests/abs-pos/reftest.list index 6c496dc143c6..90d8a441f124 100644 --- a/layout/reftests/abs-pos/reftest.list +++ b/layout/reftests/abs-pos/reftest.list @@ -1,4 +1,4 @@ -== font-size-wrap.html font-size-wrap-ref.html +random-if(B2G&&browserIsRemote) == font-size-wrap.html font-size-wrap-ref.html == abs-pos-auto-margin-1.html abs-pos-auto-margin-1-ref.html fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,73,1) == auto-offset-inline-block-1.html auto-offset-inline-block-1-ref.html # bug 696670 == fieldset-1.html fieldset-1-ref.html diff --git a/layout/reftests/bidi/reftest.list b/layout/reftests/bidi/reftest.list index 1286dd469326..81f9fd58a5a0 100644 --- a/layout/reftests/bidi/reftest.list +++ b/layout/reftests/bidi/reftest.list @@ -86,8 +86,8 @@ random-if(winWidget) == 305643-1.html 305643-1-ref.html # depends on windows ver == 409375.html 409375-ref.html == 413542-1.html 413542-1-ref.html == 413542-2.html 413542-2-ref.html -== 413928-1.html 413928-1-ref.html -== 413928-2.html 413928-2-ref.html +random-if(B2G&&browserIsRemote) == 413928-1.html 413928-1-ref.html +random-if(B2G&&browserIsRemote) == 413928-2.html 413928-2-ref.html == 425338-1a.html 425338-1-ref.html == 425338-1b.html 425338-1-ref.html == 489517-1.html 489517-1-ref.html @@ -139,6 +139,6 @@ skip-if(B2G) == 726420-1.html 726420-1-ref.html == 779003-1.html 779003-1-ref.html == 779003-1-dynamic.html 779003-1-ref.html == 847242-1.html 847242-1-ref.html -== 869833-1.xul 869833-1-ref.xul +skip-if(B2G&&browserIsRemote) == 869833-1.xul 869833-1-ref.xul fails-if(B2G) == 922530-1.html 922530-1-ref.html # B2G kerning == 922550-1.html 922550-1-ref.html diff --git a/layout/reftests/border-image/reftest.list b/layout/reftests/border-image/reftest.list index 006b575352d9..f74520c1a8a3 100644 --- a/layout/reftests/border-image/reftest.list +++ b/layout/reftests/border-image/reftest.list @@ -10,7 +10,7 @@ == transparent-image-1.html transparent-image-1-ref.html != repeat-image-1.html repeat-image-1-ref.html == 470250-1.html 470250-1-ref.html -== 470250-2.html 470250-2-ref.html +fails-if(B2G&&browserIsRemote) == 470250-2.html 470250-2-ref.html != different-h-v-1.html different-h-v-ref.html != different-h-v-2.html different-h-v-ref.html != different-h-v-1.html different-h-v-2.html diff --git a/layout/reftests/box-ordinal/reftest.list b/layout/reftests/box-ordinal/reftest.list index 91de0baaa8e2..b933ca483010 100644 --- a/layout/reftests/box-ordinal/reftest.list +++ b/layout/reftests/box-ordinal/reftest.list @@ -1,7 +1,7 @@ -== box-ordinal-with-out-of-flow-1.html box-ordinal-with-out-of-flow-1-ref.html -== dynamic-1-remove-to-none-grouped.xul dynamic-1-ref.xul -== dynamic-1-add-to-one-grouped.xul dynamic-1-ref.xul -== dynamic-1-remove-to-one-grouped-1.xul dynamic-1-ref.xul -fails == dynamic-1-remove-to-one-grouped-2.xul dynamic-1-ref.xul # bug 575500 -== dynamic-1-add-to-two-grouped-1.xul dynamic-1-ref.xul -== dynamic-1-add-to-two-grouped-2.xul dynamic-1-ref.xul +skip-if(B2G&&browserIsRemote) == box-ordinal-with-out-of-flow-1.html box-ordinal-with-out-of-flow-1-ref.html +skip-if(B2G&&browserIsRemote) == dynamic-1-remove-to-none-grouped.xul dynamic-1-ref.xul +skip-if(B2G&&browserIsRemote) == dynamic-1-add-to-one-grouped.xul dynamic-1-ref.xul +skip-if(B2G&&browserIsRemote) == dynamic-1-remove-to-one-grouped-1.xul dynamic-1-ref.xul +fails skip-if(B2G&&browserIsRemote) == dynamic-1-remove-to-one-grouped-2.xul dynamic-1-ref.xul # bug 575500 +skip-if(B2G&&browserIsRemote) == dynamic-1-add-to-two-grouped-1.xul dynamic-1-ref.xul +skip-if(B2G&&browserIsRemote) == dynamic-1-add-to-two-grouped-2.xul dynamic-1-ref.xul diff --git a/layout/reftests/box-properties/reftest.list b/layout/reftests/box-properties/reftest.list index 1aa02c45e929..51e04011b450 100644 --- a/layout/reftests/box-properties/reftest.list +++ b/layout/reftests/box-properties/reftest.list @@ -1,4 +1,4 @@ -== outline-radius-percent-1.html outline-radius-percent-1-ref.html +random-if(B2G&&browserIsRemote) == outline-radius-percent-1.html outline-radius-percent-1-ref.html == min-width-1.html min-width-1-ref.html == min-height-1.html min-height-1-ref.html == max-width-1.html max-width-1-ref.html diff --git a/layout/reftests/box-shadow/reftest.list b/layout/reftests/box-shadow/reftest.list index 680ab08f777e..80a9c77ccff1 100644 --- a/layout/reftests/box-shadow/reftest.list +++ b/layout/reftests/box-shadow/reftest.list @@ -14,7 +14,7 @@ fails-if(Android||B2G) == boxshadow-fileupload.html boxshadow-fileupload-ref.htm == boxshadow-inner-basic.html boxshadow-inner-basic-ref.svg random-if(layersGPUAccelerated) == boxshadow-mixed.html boxshadow-mixed-ref.html random-if(d2d) == boxshadow-rounded-spread.html boxshadow-rounded-spread-ref.html -HTTP(..) == boxshadow-dynamic.xul boxshadow-dynamic-ref.xul +skip-if(B2G&&browserIsRemote) HTTP(..) == boxshadow-dynamic.xul boxshadow-dynamic-ref.xul random-if(d2d) == boxshadow-onecorner.html boxshadow-onecorner-ref.html random-if(d2d) == boxshadow-twocorners.html boxshadow-twocorners-ref.html random-if(d2d) == boxshadow-threecorners.html boxshadow-threecorners-ref.html diff --git a/layout/reftests/bugs/reftest.list b/layout/reftests/bugs/reftest.list index 87e1dbb728d7..57a30360f192 100644 --- a/layout/reftests/bugs/reftest.list +++ b/layout/reftests/bugs/reftest.list @@ -306,7 +306,7 @@ skip-if(B2G) == 291078-1.html 291078-1-ref.html == 291262-1.html 291262-1-ref.html == 294306-1.html 294306-1a-ref.html != 294306-1.html 294306-1b-ref.html -== 296361-1.html 296361-ref.html +fails-if(B2G&&browserIsRemote) == 296361-1.html 296361-ref.html == 296904-1.html 296904-1-ref.html skip-if(B2G) == 299136-1.html 299136-1-ref.html == 299837-1.html 299837-1-ref.html @@ -466,7 +466,7 @@ skip-if(B2G&&browserIsRemote) == 348049-1.xhtml 348049-1-ref.xhtml == 348516-2.html 348516-2-ref.html != 348516-2.html 348516-2-notref.html != 348516-3.html 348516-3-notref.html -== 348597-1.html 348597-ref.html +fails-if(B2G&&browserIsRemote) == 348597-1.html 348597-ref.html == 348809-1a.html 348809-1-ref.html == 348809-1b.html 348809-1-ref.html == 348809-1c.html 348809-1-ref.html @@ -540,7 +540,7 @@ skip-if(B2G) == 359903-1.html 359903-1-ref.html == 363247-1.html 363247-1-ref.html == 363329-1.html 363329-1-ref.html == 363329-2.html 363329-2-ref.html -== 363370-1.html 363370-1-ref.html +fails-if(B2G&&browserIsRemote) == 363370-1.html 363370-1-ref.html == 363402-1.html 363402-1-ref.html == 363637-1.html 363637-1-ref.html skip-if(Android) == 363706-1.html 363706-1-ref.html @@ -698,12 +698,12 @@ skip-if(B2G) == 379349-3b.xhtml 379349-3-ref.xhtml == 379461-2.xhtml 379461-2.html skip-if(B2G) == 379461-3-container-xhtml.html 379461-3-container-html.html skip-if(B2G) fails-if(Android) != 379461-3-container-xhtml.html 379461-3-container-blank.html # there is a scrollbar -== 380004-1.html 380004-1-ref.html -== 380227-1.html 380227-1-ref.html +random-if(B2G&&browserIsRemote) == 380004-1.html 380004-1-ref.html +random-if(B2G&&browserIsRemote) == 380227-1.html 380227-1-ref.html == 380825-1.html 380825-1-ref.html == 380842-1.html 380842-1-ref.html == 381130-1.html 381130-1-ref.html -== 381507-1.html 381507-1-ref.html +random-if(B2G&&browserIsRemote) == 381507-1.html 381507-1-ref.html == 381746-1.html 381746-1-ref.html == 382600-1.html 382600-1-ref.html == 382916-1.html 382916-1-ref.html @@ -741,8 +741,8 @@ skip-if(B2G) fails == 386147-1.html 386147-1-ref.html # bug 447460 == 386310-1b.html 386310-1-ref.html == 386310-1c.html 386310-1-ref.html == 386310-1d.html 386310-1-ref.html -== 386401-1.html 386401-1-ref.html -== 386401-2.html 386401-2-ref.html +random-if(B2G&&browserIsRemote) == 386401-1.html 386401-1-ref.html +random-if(B2G&&browserIsRemote) == 386401-2.html 386401-2-ref.html == 386401-3.html 386401-3-ref.html == 386470-1a.html 386470-1-ref.html == 386470-1b.html 386470-1-ref.html @@ -760,8 +760,8 @@ fails == 387344-1.html 387344-1-ref.html # scrolling rowgroups were removed in b == 387876-3b.html 387876-3-ref.html == 388026-1.html 388026-1-ref.html == 389074-1.html 389074-1-ref.html -== 389224-1.html 389224-1-ref.html -== 389224-2.html about:blank +fails-if(B2G&&browserIsRemote) == 389224-1.html 389224-1-ref.html +fails-if(B2G&&browserIsRemote) == 389224-2.html about:blank skip-if(B2G) == 389468-1.html 389468-1-ref.html == 389623-1.html 389623-1-ref.html skip-if(B2G&&browserIsRemote) == 389636-1.html about:blank # assertion test # bug 975911 @@ -846,9 +846,9 @@ skip-if(B2G&&browserIsRemote) == 401946-1.xul about:blank # bug 974780 == 402567-2.html 402567-2-ref.html == 402567-3.html 402567-3-ref.html skip-if(B2G) == 402567-4.html 402567-4-ref.html -== 402629-1.html 402629-1-ref.html -== 402629-2.html 402629-2-ref.html -== 402629-3.html 402629-3-ref.html +random-if(B2G&&browserIsRemote) == 402629-1.html 402629-1-ref.html +random-if(B2G&&browserIsRemote) == 402629-2.html 402629-2-ref.html +random-if(B2G&&browserIsRemote) == 402629-3.html 402629-3-ref.html skip-if(B2G) == 402807-1.html 402807-1-ref.html == 402940-1.html 402940-1-ref.html == 402940-1b.html 402940-1-ref.html @@ -963,7 +963,7 @@ fails == 413027-3.html 413027-3-ref.html == 413286-4b.html 413286-4-ref.html == 413286-5.html 413286-5-ref.html == 413286-6.html 413286-6-ref.html -skip-if(cocoaWidget) == 413292-1.html 413292-1-ref.html # disabling due to failure loading on some mac tinderboxes. See bug 432954 +skip-if(cocoaWidget) random-if(B2G&&browserIsRemote) == 413292-1.html 413292-1-ref.html # disabling due to failure loading on some mac tinderboxes. See bug 432954 == 413361-1.html 413361-1-ref.html == 413840-background-unchanged.html 413840-background-unchanged-ref.html == 413840-ltr-offsets.html 413840-ltr-offsets-ref.html @@ -1005,7 +1005,7 @@ skip-if(B2G) == 421234-1.html 421234-1-ref.html == 421419-1.html 421419-1-ref.html == 421436-1a.html 421436-1-ref.html == 421436-1b.html 421436-1-ref.html -== 421632-1.html 421632-1-ref.html +fails-if(B2G&&browserIsRemote) == 421632-1.html 421632-1-ref.html != 421710-1.html about:blank skip-if(B2G) fails-if(Android) == 421885-1.xml 421885-1-ref.xml == 421955-1.html 421955-1-ref.html @@ -1032,7 +1032,7 @@ random-if(gtk2Widget) skip-if(B2G&&browserIsRemote) == 424074-1-ref2.xul 424074- == 424236-10.html 424236-10-ref.html == 424236-11.html 424236-3-ref.html == 424434-1.html 424434-1-ref.html -== 424465-1.html 424465-1-ref.html +fails-if(B2G&&browserIsRemote) == 424465-1.html 424465-1-ref.html == 424631-1.html 424631-1-ref.html == 424710-1.html 424710-1-ref.html skip-if(B2G) == 424766-1.html 424766-1-ref.html @@ -1131,7 +1131,7 @@ skip-if(B2G) == 430412-1.html 430412-1-ref.html == 433700.html 433700-ref.html == 436356-1.html 436356-1-ref.html == 436356-2.html 436356-2-ref.html -== 438537-1.html 438537-1-ref.html +fails-if(B2G&&browserIsRemote) == 438537-1.html 438537-1-ref.html == 438981-1.xhtml about:blank == 438987-1.html 438987-1-ref.html == 438987-2a.html 438987-2-ref.html @@ -1174,7 +1174,7 @@ test-pref(dom.use_xbl_scopes_for_remote_xul,true) != 449149-1a.html about:blank test-pref(dom.use_xbl_scopes_for_remote_xul,true) != 449149-1b.html about:blank == 449149-2.html 449149-2-ref.html == 449171-1.html 449171-ref.html -== 449362-1.html 449362-1-ref.html +fails-if(B2G&&browserIsRemote) == 449362-1.html 449362-1-ref.html == 449519-1.html 449519-1-ref.html == 450670-1.html 450670-1-ref.html == 451168-1.html 451168-1-ref.html @@ -1252,7 +1252,7 @@ skip-if(B2G&&browserIsRemote) == 472500-1.xul 472500-1-ref.xul # bug 974780 skip-if(B2G&&browserIsRemote) == 473847-1.xul 473847-1-ref.xul # bug 974780 skip-if(B2G&&browserIsRemote) == 474336-1.xul 474336-1-ref.xul # bug 974780 skip-if(B2G) == 474417-1.html 474417-1-ref.html -== 474472-1.html 474472-1-ref.html +random-if(B2G&&browserIsRemote) == 474472-1.html 474472-1-ref.html == 475986-1a.html 475986-1-ref.html == 475986-1b.html 475986-1-ref.html == 475986-1c.html 475986-1-ref.html @@ -1316,10 +1316,10 @@ skip-if(B2G) fails-if(Android) random-if(winWidget) fails-if(gtk2Widget) == 4819 == 482398-1.html 482398-1-ref.html random-if(d2d) skip-if(B2G&&browserIsRemote) == 482592-1a.xhtml 482592-1-ref.html # bug 586771 random-if(d2d) skip-if(B2G&&browserIsRemote) == 482592-1b.xhtml 482592-1-ref.html # bug 586771 -random-if(winWidget) == 482659-1a.html 482659-1-ref.html -== 482659-1b.html 482659-1-ref.html -== 482659-1c.html 482659-1-ref.html -== 482659-1d.html 482659-1-ref.html +random-if(winWidget) fails-if(B2G&&browserIsRemote) == 482659-1a.html 482659-1-ref.html +random-if(B2G&&browserIsRemote) == 482659-1b.html 482659-1-ref.html +random-if(B2G&&browserIsRemote) == 482659-1c.html 482659-1-ref.html +random-if(B2G&&browserIsRemote) == 482659-1d.html 482659-1-ref.html skip-if(B2G&&browserIsRemote) == 483565.xul 483565-ref.xul # bug 974780 == 484256-1.html 484256-1-ref.html == 484256-2.html 484256-1-ref.html @@ -1336,7 +1336,7 @@ skip-if(B2G&&browserIsRemote) == 483565.xul 483565-ref.xul # bug 974780 == 486052-2g.html 486052-2-ref.html == 486065-1.html 486065-1-ref.html skip-if(B2G&&browserIsRemote) == 486848-1.xul 486848-1-ref.xul # bug 974780 -== 487539-1.html about:blank +random-if(B2G&&browserIsRemote) == 487539-1.html about:blank == 488390-1.html 488390-1-ref.html == 488649-1.html 488649-1-ref.html == 488685-1.html 488685-1-ref.html @@ -1366,7 +1366,7 @@ skip-if(B2G&&browserIsRemote) == 495354-1b.xhtml 495354-1-ref.xhtml # bug 974780 == 495385-1e.html 495385-1-ref.html == 495385-1f.html 495385-1-ref.html == 495385-2a.html 495385-2-ref.html -== 495385-2b.html 495385-2-ref.html +fails-if(B2G&&browserIsRemote) == 495385-2b.html 495385-2-ref.html == 495385-2c.html 495385-2-ref.html == 495385-2d.html 495385-2-ref.html == 495385-2e.html 495385-2-ref.html @@ -1384,8 +1384,8 @@ skip-if(B2G&&browserIsRemote) == 498228-1.xul 498228-1-ref.xul # bug 974780 == 501257-1a.html 501257-1-ref.html == 501257-1b.html 501257-1-ref.html == 501257-1.xhtml 501257-1-ref.xhtml -== 501627-1.html 501627-1-ref.html -== 502288-1.html 502288-1-ref.html +skip-if(B2G&&browserIsRemote) == 501627-1.html 501627-1-ref.html # Bug 989165 +fails-if(B2G&&browserIsRemote) == 502288-1.html 502288-1-ref.html skip-if(B2G) == 502447-1.html 502447-1-ref.html == 502795-1.html 502795-1-ref.html == 502942-1.html 502942-1-ref.html @@ -1396,7 +1396,7 @@ skip-if(B2G) == 502447-1.html 502447-1-ref.html # bug 607548 gets resolved. needs-focus fails == 503531-1.html 503531-1-ref.html == 504032-1.html 504032-1-ref.html -== 505743-1.html about:blank +fails-if(B2G&&browserIsRemote) == 505743-1.html about:blank skip-if(B2G) == 506481-1.html 506481-1-ref.html == 507187-1.html 507187-1-ref.html == 507487-1.html 507487-1-ref.html @@ -1408,14 +1408,14 @@ skip-if(B2G) == 506481-1.html 506481-1-ref.html skip-if(B2G) random-if(cocoaWidget) == 508816-1.xul 508816-1-ref.xul # Bug 631982 skip-if(B2G) == 508816-2.html 508816-2-ref.html skip-if(B2G&&browserIsRemote) == 508908-1.xul 508908-1-ref.xul # bug 974780 -== 508919-1.xhtml 508919-1-ref.xhtml -== 509155-1.xhtml 509155-1-ref.xhtml +fails-if(B2G&&browserIsRemote) == 508919-1.xhtml 508919-1-ref.xhtml +fails-if(B2G&&browserIsRemote) == 509155-1.xhtml 509155-1-ref.xhtml skip-if(B2G) == 512410.html 512410-ref.html == 512631-1.html 512631-1-ref.html -== 513153-1a.html 513153-1-ref.html -== 513153-1b.html 513153-1-ref.html -== 513153-2a.html 513153-2-ref.html -== 513153-2b.html 513153-2-ref.html +fails-if(B2G&&browserIsRemote) == 513153-1a.html 513153-1-ref.html +fails-if(B2G&&browserIsRemote) == 513153-1b.html 513153-1-ref.html +fails-if(B2G&&browserIsRemote) == 513153-2a.html 513153-2-ref.html +fails-if(B2G&&browserIsRemote) == 513153-2b.html 513153-2-ref.html skip-if(B2G&&browserIsRemote) == 513318-1.xul 513318-1-ref.xul # bug 974780 skip-if(B2G) fails-if(Android) != 513318-2.xul 513318-2-ref.xul == 514917-1.html 514917-1-ref.html @@ -1423,7 +1423,7 @@ HTTP(..) == 518172-1a.html 518172-a-ref.html HTTP(..) == 518172-1b.html 518172-b-ref.html HTTP(..) == 518172-2a.html 518172-a-ref.html HTTP(..) == 518172-2b.html 518172-b-ref.html -== 520421-1.html 520421-1-ref.html +fails-if(B2G&&browserIsRemote) == 520421-1.html 520421-1-ref.html == 520563-1.xhtml 520563-1-ref.xhtml == 521525-1.html 521525-1-ref.html == 521525-2.html 521525-2-ref.html @@ -1435,7 +1435,7 @@ HTTP(..) == 518172-2b.html 518172-b-ref.html == 523096-1.html 523096-1-ref.html random-if(d2d) == 523468-1.html 523468-1-ref.html == 524175-1.html 524175-1-ref.html -== 526463-1.html 526463-1-ref.html +fails-if(B2G&&browserIsRemote) == 526463-1.html 526463-1-ref.html == 527464-1.html 527464-ref.html == 528038-1a.html 528038-1-ref.html == 528038-1b.html 528038-1-ref.html @@ -1461,7 +1461,7 @@ skip-if(B2G&&browserIsRemote) == 537507-1.xul 537507-1-ref.xul # bug 974780 skip-if(B2G&&browserIsRemote) == 537507-2.html 537507-2-ref.html # bug 974780 == 538909-1.html 538909-1-ref.html == 538935-1.html 538935-1-ref.html -== 539226-1.html about:blank +fails-if(B2G&&browserIsRemote) == 539226-1.html about:blank == 539323-1.html 539323-1-ref.html == 539323-2.html 539323-2-ref.html == 539323-3.html 539323-3-ref.html @@ -1476,7 +1476,7 @@ needs-focus != 542116-3.html 542116-3-ref.html == 542317-1.html 542317-1-ref.html fuzzy-if(Android,17,2) skip-if(B2G&&browserIsRemote) == 542605-hidden-unscrollable.xul 542605-hidden-unscrollable-ref.xul # bug 974780 == 542620-1.html 542620-1-ref.html -== 545049-1.html 545049-1-ref.html +fails-if(B2G&&browserIsRemote) == 545049-1.html 545049-1-ref.html == 546033-1.html 546033-1-ref.html random-if(!haveTestPlugin) == 546071-1.html 546071-1-ref.html == 549184-1.html 549184-1-ref.html @@ -1561,7 +1561,7 @@ random-if(!winWidget) == 574907-2.html 574907-2-ref.html random-if(!winWidget) fails-if(winWidget&&!d2d) random-if(winWidget&&d2d) != 574907-3.html 574907-3-notref.html == 577838-1.html 577838-1-ref.html == 577838-2.html 577838-2-ref.html -== 579323-1.html 579323-1-ref.html +fails-if(B2G&&browserIsRemote) == 579323-1.html 579323-1-ref.html == 579349-1.html 579349-1-ref.html == 579655-1.html 579655-1-ref.html skip-if(B2G) fails-if(Android) == 579808-1.html 579808-1-ref.html @@ -1570,14 +1570,14 @@ skip-if(B2G) skip-if(Android) == 580160-1.html 580160-1-ref.html # bug 920927 fo HTTP(..) == 580863-1.html 580863-1-ref.html skip-if(B2G) fails-if(Android) random-if(layersGPUAccelerated) == 581317-1.html 581317-1-ref.html == 581579-1.html 581579-1-ref.html -== 582037-1a.html 582037-1-ref.html +random-if(B2G&&browserIsRemote) == 582037-1a.html 582037-1-ref.html == 582037-1b.html 582037-1-ref.html skip-if(B2G) == 582037-2a.html 582037-2-ref.html skip-if(B2G) == 582037-2b.html 582037-2-ref.html asserts(1-2) == 582146-1.html about:blank skip-if(B2G) == 582476-1.svg 582476-1-ref.svg == 584400-dash-length.svg 584400-dash-length-ref.svg -== 584699-1.html 584699-1-ref.html +fails-if(B2G&&browserIsRemote) == 584699-1.html 584699-1-ref.html == 585598-2.xhtml 585598-2-ref.xhtml == 586400-1.html 586400-1-ref.html skip-if(B2G) fuzzy-if(d2d,52,1051) fuzzy-if(OSX==10.8,129,1068) == 586683-1.html 586683-1-ref.html @@ -1585,11 +1585,11 @@ skip-if(B2G) fuzzy-if(d2d,52,1051) fuzzy-if(OSX==10.8,129,1068) == 586683-1.html == 589615-1b.html 589615-1-ref.html == 589672-1.html 589672-1-ref.html != 589682-1.html 589682-1-notref.html -skip-if(!browserIsRemote) == 593243-1.html 593243-1-ref.html # bug 593168 -skip-if(!browserIsRemote) == 593243-2.html 593243-2-ref.html # bug 593168 +skip-if(!browserIsRemote) fails-if(B2G&&browserIsRemote) == 593243-1.html 593243-1-ref.html # bug 593168 +skip-if(!browserIsRemote) fails-if(B2G&&browserIsRemote) == 593243-2.html 593243-2-ref.html # bug 593168 == 593544-1.html 593544-1-ref.html -random-if(Android) == 594333-1.html 594333-1-ref.html -== 594624-1.html 594624-1-ref.html +random-if(Android) fails-if(B2G&&browserIsRemote) == 594333-1.html 594333-1-ref.html +fails-if(B2G&&browserIsRemote) == 594624-1.html 594624-1-ref.html == 594737-1.html 594737-1-ref.html == 597721-1.html 597721-1-ref.html random-if(winWidget) fuzzy-if(Android,38,539) needs-focus == 598726-1.html 598726-1-ref.html # Fails on Windows, bug 782196 @@ -1609,7 +1609,7 @@ fuzzy-if(Android&&AndroidVersion>=15,8,20) == 602200-3.html 602200-3-ref.html == 602200-4.html 602200-4-ref.html == 603423-1.html 603423-1-ref.html == 604737.html 604737-ref.html -== 605138-1.html 605138-1-ref.html +random-if(B2G&&browserIsRemote) == 605138-1.html 605138-1-ref.html # Bug 988758 == 605157-1.xhtml 605157-1-ref.xhtml == 607267-1.html 607267-1-ref.html == 608636-1.html 608636-1-ref.html @@ -1631,18 +1631,18 @@ HTTP(..) == 615121-1.html 615121-1-ref.html HTTP(..) != 615121-2.html 615121-2-notref.html fails-if(Android&&AndroidVersion!=10&&AndroidVersion!=17) == 617242-1.html 617242-1-ref.html != 618071.html 618071-notref.html -== 619117-1.html 619117-1-ref.html +fails-if(B2G&&browserIsRemote) == 619117-1.html 619117-1-ref.html HTTP(..) == 619511-1.html 619511-1-ref.html skip-if(Android||(B2G&&browserIsRemote)) HTTP(..) == 621253-1-externalFilter.html 621253-1-ref.html skip-if(Android||(B2G&&browserIsRemote)) == 621253-1-internalFilter.html 621253-1-ref.html -HTTP(..) == 621253-2-externalFilter.html 621253-2-ref.html +random-if(B2G&&browserIsRemote) HTTP(..) == 621253-2-externalFilter.html 621253-2-ref.html == 621253-2-internalFilter.html 621253-2-ref.html skip-if(B2G) random-if(winWidget) fuzzy-if(OSX==10.8,19,17) == 621918-1.svg 621918-1-ref.svg # 1-pixel diacritic positioning discrepancy in rotated text (may depend on platform fonts) random-if(winWidget) HTTP(..) == 621918-2.svg 621918-2-ref.svg # same 1px issue as above, and HTTP(..) for filters.svg, used to mask antialiasing issues where glyphs touch fuzzy-if(d2d,5,1) == 622585-1.html 622585-1-ref.html # bug 789402 fuzzy-if(Android&&AndroidVersion>=15,8,300) == 625409-1.html 625409-1-ref.html -== 627393-1.html about:blank -== 630835-1.html about:blank +fails-if(B2G&&browserIsRemote) == 627393-1.html about:blank +fails-if(B2G&&browserIsRemote) == 630835-1.html about:blank == 631352-1.html 631352-1-ref.html skip-if(B2G) fails-if(Android) == 632423-1.html 632423-1-ref.html skip-if(Android||B2G) random-if(winWidget) == 632781-verybig.html 632781-ref.html @@ -1663,7 +1663,7 @@ skip-if(B2G) == 641770-1.html 641770-1-ref.html == 641856-1.html 641856-1-ref.html == 645491-1.html 645491-1-ref.html == 645768-1.html 645768-1-ref.html -fails-if(layersGPUAccelerated&&cocoaWidget) fails-if(Android&&AndroidVersion<15&&AndroidVersion!=10) == 650228-1.html 650228-1-ref.html # Quartz alpha blending doesn't match GL alpha blending +fails-if(layersGPUAccelerated&&cocoaWidget) fails-if(Android&&AndroidVersion<15&&AndroidVersion!=10) fails-if(B2G&&browserIsRemote) == 650228-1.html 650228-1-ref.html # Quartz alpha blending doesn't match GL alpha blending needs-focus == 652301-1a.html 652301-1-ref.html needs-focus == 652301-1b.html 652301-1-ref.html == 652775-1.html 652775-1-ref.html @@ -1701,11 +1701,11 @@ needs-focus != 703186-1.html 703186-2.html == 714519-2-as.html 714519-2-ref.html == 714519-2-q.html 714519-2-ref.html skip-if(B2G) fuzzy-if(true,1,21) fuzzy-if(cocoaWidget,1,170) fuzzy-if(Android&&browserIsRemote,7,157) fails-if(Android&&!browserIsRemote&&AndroidVersion!=17&&AndroidVersion!=10) == 718521.html 718521-ref.html # bug 760270 # bug 773482 -== 720987.html 720987-ref.html -== 722888-1.html 722888-1-ref.html -== 722923-1.html 722923-1-ref.html -== 723484-1.html 723484-1-ref.html -random-if(Android) == 728983-1.html 728983-1-ref.html +random-if(B2G&&browserIsRemote) == 720987.html 720987-ref.html +random-if(B2G&&browserIsRemote) == 722888-1.html 722888-1-ref.html +random-if(B2G&&browserIsRemote) == 722923-1.html 722923-1-ref.html +random-if(B2G&&browserIsRemote) == 723484-1.html 723484-1-ref.html +random-if(Android||(B2G&&browserIsRemote)) == 728983-1.html 728983-1-ref.html skip-if(B2G) == 729143-1.html 729143-1-ref.html == 731521-1.html 731521-1-ref.html needs-focus == 731726-1.html 731726-1-ref.html @@ -1717,7 +1717,7 @@ skip-if(B2G) == 748803-1.html 748803-1-ref.html == 750551-1.html 750551-1-ref.html skip-if(B2G) == 751012-1a.html 751012-1-ref.html skip-if(B2G) == 751012-1b.html 751012-1-ref.html -random-if(Android) == 753329-1.html about:blank +random-if(Android) random-if(B2G&&browserIsRemote) == 753329-1.html about:blank == 758561-1.html 758561-1-ref.html fuzzy-if(true,1,19) fails-if(d2d) random-if(Android&&AndroidVersion<15) == 759036-1.html 759036-1-ref.html fuzzy-if(true,17,5879) random-if(Android&&AndroidVersion<15) == 759036-2.html 759036-2-ref.html @@ -1733,7 +1733,7 @@ random-if(Android&&AndroidVersion<15) == 776265-1a.html 776265-1-ref.html == 776443-2.html 776443-2-ref.html == 786254-1.html 786254-1-ref.html == 787947-1.html 787947-1-ref.html -== 796847-1.svg 796847-1-ref.svg +fails-if(B2G&&browserIsRemote) == 796847-1.svg 796847-1-ref.svg fuzzy(40,850) fuzzy-if(azureQuartz,73,542) == 797797-1.html 797797-1-ref.html # 'opacity:N' and rgba(,,,N) text don't match precisely fuzzy(40,850) fuzzy-if(azureQuartz,68,586) == 797797-2.html 797797-2-ref.html # 'opacity:N' and rgba(,,,N) text don't match precisely == 801681-1.html 801681-1-ref.html @@ -1746,18 +1746,18 @@ fuzzy-if(Android,8,608) skip-if(B2G&&browserIsRemote) == 811301-1.html 811301-1- skip-if(B2G) == 814952-1.html 814952-1-ref.html skip-if(B2G) fuzzy-if(Android,4,400) == 815593-1.html 815593-1-ref.html == 816359-1.html 816359-1-ref.html -== 816458-1.html 816458-1-ref.html +fails-if(B2G&&browserIsRemote) == 816458-1.html 816458-1-ref.html == 816948-1.html 816948-1-ref.html == 817019-1.html about:blank skip-if(B2G) == 818276-1.html 818276-1-ref.html == 825999.html 825999-ref.html == 827577-1a.html 827577-1-ref.html -== 827577-1b.html 827577-1-ref.html +fails-if(B2G&&browserIsRemote) == 827577-1b.html 827577-1-ref.html == 827799-1.html about:blank == 829958.html 829958-ref.html == 836844-1.html 836844-1-ref.html == 841192-1.html 841192-1-ref.html -== 844178.html 844178-ref.html +fails-if(B2G&&browserIsRemote) == 844178.html 844178-ref.html == 846144-1.html 846144-1-ref.html == 847850-1.html 847850-1-ref.html == 848421-1.html 848421-1-ref.html @@ -1775,15 +1775,15 @@ skip-if(B2G&&browserIsRemote) == 858803-1.html 858803-1-ref.html # bug 974780 == 883987-1e.html 883987-1-ref.html == 883987-1f.html 883987-1-ref.html == 890495-1.html 890495-1-ref.html -== 894931-1.html 894931-1-ref.html +fails-if(B2G&&browserIsRemote) == 894931-1.html 894931-1-ref.html == 897491-1.html 897491-1-ref.html == 897491-2.html 897491-2-ref.html fuzzy(1,10000) fuzzy-if(Android&&AndroidVersion>=15,5,10000) == 902330-1.html 902330-1-ref.html fuzzy-if(Android,8,400) == 906199-1.html 906199-1-ref.html == 921716-1.html 921716-1-ref.html -test-pref(layout.css.sticky.enabled,true) == 926155-1.html 926155-1-ref.html -fuzzy-if(cocoaWidget,1,40) == 928607-1.html 928607-1-ref.html -== 931464-1.html 931464-1-ref.html +test-pref(layout.css.sticky.enabled,true) fails-if(B2G&&browserIsRemote) == 926155-1.html 926155-1-ref.html +fuzzy-if(cocoaWidget,1,40) fails-if(B2G&&browserIsRemote) == 928607-1.html 928607-1-ref.html +fails-if(B2G&&browserIsRemote) == 931464-1.html 931464-1-ref.html == 931853.html 931853-ref.html == 931853-quirks.html 931853-quirks-ref.html fuzzy-if(OSX==10.6,2,30) skip-if(B2G&&browserIsRemote) == 933264-1.html 933264-1-ref.html @@ -1793,17 +1793,17 @@ fails == 942017.html 942017-ref.html # bug 942017 == 942672-1.html 942672-1-ref.html == 953334-win32-clipping.html 953334-win32-clipping-ref.html == 956513-1.svg 956513-1-ref.svg -== 944291-1.html 944291-1-ref.html +fails-if(B2G&&browserIsRemote) == 944291-1.html 944291-1-ref.html == 950436-1.html 950436-1-ref.html == 957770-1.svg 957770-1-ref.svg == 960277-1.html 960277-1-ref.html pref(layout.css.overflow-clip-box.enabled,true) fuzzy(50,31) == 966992-1.html 966992-1-ref.html skip-if(Android) == 966510-1.html 966510-1-ref.html # scrollable elements other than the root probably won't work well on android until bug 776030 is fixed skip-if(Android) == 966510-2.html 966510-2-ref.html # same as above -== 978911-1.svg 978911-1-ref.svg +fails-if(B2G&&browserIsRemote) == 978911-1.svg 978911-1-ref.svg == 983084-1.html 983084-1-ref.html -== 983084-2.html 983084-2-ref.html -== 983084-3.html 983084-1-ref.html +fails-if(B2G&&browserIsRemote) == 983084-2.html 983084-2-ref.html +fails-if(B2G&&browserIsRemote) == 983084-3.html 983084-1-ref.html == 983691-1.html 983691-ref.html == 985303-1a.html 985303-1-ref.html == 985303-1b.html 985303-1-ref.html diff --git a/layout/reftests/canvas/reftest.list b/layout/reftests/canvas/reftest.list index c342b5675a97..506d56d8683a 100644 --- a/layout/reftests/canvas/reftest.list +++ b/layout/reftests/canvas/reftest.list @@ -1,7 +1,7 @@ == default-size.html default-size-ref.html skip-if(B2G) fuzzy-if(Android&&AndroidVersion>=15,8,1000) == size-1.html size-1-ref.html -== empty-transaction-1.html empty-transaction-1-ref.html +fails-if(B2G&&browserIsRemote) == empty-transaction-1.html empty-transaction-1-ref.html == image-rendering-test.html image-rendering-ref.html == image-shadow.html image-shadow-ref.html diff --git a/layout/reftests/columns/reftest.list b/layout/reftests/columns/reftest.list index add8d8ddb37c..7c9d69510732 100644 --- a/layout/reftests/columns/reftest.list +++ b/layout/reftests/columns/reftest.list @@ -19,8 +19,8 @@ == column-box-alignment-rtl.html column-box-alignment-rtl-ref.html HTTP(..) == columnfill-balance.html columnfill-balance-ref.html HTTP(..) == columnfill-auto.html columnfill-auto-ref.html -HTTP(..) == columnfill-auto-2.html columnfill-auto-2-ref.html -HTTP(..) == columnfill-auto-3.html columnfill-auto-2-ref.html +random-if(B2G&&browserIsRemote) HTTP(..) == columnfill-auto-2.html columnfill-auto-2-ref.html +random-if(B2G&&browserIsRemote) HTTP(..) == columnfill-auto-3.html columnfill-auto-2-ref.html skip-if(B2G) == columnrule-basic.html columnrule-basic-ref.html # bug 773482 skip-if(B2G) == columnrule-complex.html columnrule-complex-ref.html # bug 773482 != columnrule-linestyles.html columnrule-linestyles-notref.html diff --git a/layout/reftests/counters/reftest.list b/layout/reftests/counters/reftest.list index c0d3cbebbc92..1172519fbc4a 100644 --- a/layout/reftests/counters/reftest.list +++ b/layout/reftests/counters/reftest.list @@ -38,16 +38,16 @@ == t1204-implied-00-b-test.html t1204-implied-00-b-reference.html == t1204-implied-01-c-test.html t1204-implied-01-c-reference.html == t1204-implied-02-d-test.html t1204-implied-02-d-reference.html -== t1204-increment-00-c-o-test.html t1204-increment-00-c-o-reference.html -== t1204-increment-01-c-o-test.html t1204-increment-01-c-o-reference.html -== t1204-increment-02-c-o-test.html t1204-increment-02-c-o-reference.html +fails-if(B2G&&browserIsRemote) == t1204-increment-00-c-o-test.html t1204-increment-00-c-o-reference.html +fails-if(B2G&&browserIsRemote) == t1204-increment-01-c-o-test.html t1204-increment-01-c-o-reference.html +fails-if(B2G&&browserIsRemote) == t1204-increment-02-c-o-test.html t1204-increment-02-c-o-reference.html == t1204-multiple-00-c-test.html t1204-multiple-00-c-reference.html == t1204-multiple-01-c-test.html t1204-multiple-01-c-reference.html == t1204-order-00-c-test.html t1204-order-00-c-reference.html == t1204-order-01-d-test.html t1204-order-01-d-reference.html -== t1204-reset-00-c-o-test.html t1204-reset-00-c-o-reference.html -== t1204-reset-01-c-o-test.html t1204-reset-01-c-o-reference.html -== t1204-reset-02-c-o-test.html t1204-reset-02-c-o-reference.html +fails-if(B2G&&browserIsRemote) == t1204-reset-00-c-o-test.html t1204-reset-00-c-o-reference.html +fails-if(B2G&&browserIsRemote) == t1204-reset-01-c-o-test.html t1204-reset-01-c-o-reference.html +fails-if(B2G&&browserIsRemote) == t1204-reset-02-c-o-test.html t1204-reset-02-c-o-reference.html == t1204-root-e-test.html t1204-root-e-reference.html == t120401-scope-00-b-test.html t120401-scope-00-b-reference.html == t120401-scope-01-c-test.html t120401-scope-01-c-reference.html diff --git a/layout/reftests/css-invalid/input/reftest.list b/layout/reftests/css-invalid/input/reftest.list index 2c755e8c6aa3..a85bfeab4db7 100644 --- a/layout/reftests/css-invalid/input/reftest.list +++ b/layout/reftests/css-invalid/input/reftest.list @@ -1,5 +1,5 @@ == input-valid.html input-ref.html -fuzzy(11,4) == input-customerror.html input-ref.html +fuzzy(11,4) fails-if(B2G&&browserIsRemote) == input-customerror.html input-ref.html skip-if(B2G) fails-if(Android) == input-disabled.html input-ref.html skip-if(B2G) fails-if(Android) == input-dyn-disabled.html input-ref.html == input-dyn-not-disabled.html input-ref.html @@ -19,7 +19,7 @@ skip-if(B2G) fails-if(Android) == input-dyn-disabled.html input-ref.html == input-pattern-valid.html input-withtext-ref.html == input-pattern-invalid.html input-withtext-ref.html == input-type-barred.html input-button-ref.html -fuzzy(11,4) == input-type-invalid.html input-ref.html +fuzzy(11,4) fails-if(B2G&&browserIsRemote) == input-type-invalid.html input-ref.html == input-disabled-fieldset-1.html input-fieldset-ref.html == input-disabled-fieldset-2.html input-fieldset-ref.html == input-fieldset-legend.html input-fieldset-legend-ref.html diff --git a/layout/reftests/css-invalid/textarea/reftest.list b/layout/reftests/css-invalid/textarea/reftest.list index 9099cd9e3b3c..eb0a482ecfcc 100644 --- a/layout/reftests/css-invalid/textarea/reftest.list +++ b/layout/reftests/css-invalid/textarea/reftest.list @@ -1,11 +1,11 @@ == textarea-valid.html textarea-ref.html -== textarea-customerror.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-customerror.html textarea-ref.html fails-if(Android||B2G) == textarea-disabled.html textarea-ref.html fails-if(Android||B2G) == textarea-dyn-disabled.html textarea-ref.html -== textarea-dyn-not-disabled.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-dyn-not-disabled.html textarea-ref.html == textarea-readonly.html textarea-ref.html -== textarea-dyn-readonly.html textarea-ref.html -== textarea-dyn-not-readonly.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-dyn-readonly.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-dyn-not-readonly.html textarea-ref.html == textarea-maxlength-valid.html textarea-ref.html == textarea-maxlength-invalid.html textarea-withtext-ref.html == textarea-required-valid.html textarea-withtext-ref.html diff --git a/layout/reftests/css-mediaqueries/reftest.list b/layout/reftests/css-mediaqueries/reftest.list index d0cbe814b058..97a52e7dfc24 100644 --- a/layout/reftests/css-mediaqueries/reftest.list +++ b/layout/reftests/css-mediaqueries/reftest.list @@ -15,5 +15,5 @@ skip-if(B2G) == mq_print_maxheight_updown.xhtml mq_print-ref.xhtml # bug 773482 skip-if(B2G) == mq_print_minheight_updown.xhtml mq_print-ref.xhtml # bug 773482 skip-if(B2G) == mq_print_minwidth_updown.xhtml mq_print-ref.xhtml # bug 773482 -== scoped-mq-update.html scoped-mq-update-ref.html +fails-if(B2G&&browserIsRemote) == scoped-mq-update.html scoped-mq-update-ref.html == system-metrics-1.html system-metrics-1-ref.html diff --git a/layout/reftests/css-ui-invalid/input/reftest.list b/layout/reftests/css-ui-invalid/input/reftest.list index 002f950f1e4d..14ac5a0b5959 100644 --- a/layout/reftests/css-ui-invalid/input/reftest.list +++ b/layout/reftests/css-ui-invalid/input/reftest.list @@ -1,5 +1,5 @@ == input-valid.html input-ref.html -fuzzy(64,4) == input-customerror.html input-ref.html +fuzzy(64,4) fails-if(B2G&&browserIsRemote) == input-customerror.html input-ref.html skip-if(B2G) fails-if(Android) == input-disabled.html input-ref.html skip-if(B2G) fails-if(Android) == input-dyn-disabled.html input-ref.html == input-dyn-not-disabled.html input-ref.html @@ -25,7 +25,7 @@ skip-if(B2G) fails-if(Android) == input-dyn-disabled.html input-ref.html == input-pattern-invalid-default.html input-withtext-ref.html == input-pattern-invalid-changed.html input-withtext-ref.html == input-type-barred.html input-button-ref.html -fuzzy(64,4) == input-type-invalid.html input-ref.html +fuzzy(64,4) fails-if(B2G&&browserIsRemote) == input-type-invalid.html input-ref.html == input-disabled-fieldset-1.html input-fieldset-ref.html == input-disabled-fieldset-2.html input-fieldset-ref.html == input-fieldset-legend.html input-fieldset-legend-ref.html diff --git a/layout/reftests/css-ui-invalid/textarea/reftest.list b/layout/reftests/css-ui-invalid/textarea/reftest.list index c569f0316946..382b7fffe1d1 100644 --- a/layout/reftests/css-ui-invalid/textarea/reftest.list +++ b/layout/reftests/css-ui-invalid/textarea/reftest.list @@ -1,18 +1,18 @@ == textarea-valid.html textarea-ref.html -== textarea-customerror.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-customerror.html textarea-ref.html skip-if(B2G) fails-if(Android) == textarea-disabled.html textarea-ref.html fails-if(Android||B2G) == textarea-dyn-disabled.html textarea-ref.html -== textarea-dyn-not-disabled.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-dyn-not-disabled.html textarea-ref.html == textarea-readonly.html textarea-ref.html == textarea-dyn-readonly.html textarea-ref.html == textarea-dyn-not-readonly-not-changed.html textarea-ref.html -== textarea-dyn-not-readonly-changed.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-dyn-not-readonly-changed.html textarea-ref.html == textarea-maxlength-valid.html textarea-ref.html == textarea-maxlength-invalid.html textarea-withtext-ref.html == textarea-maxlength-default-value-invalid.html textarea-withtext-ref.html == textarea-required-valid.html textarea-withtext-ref.html == textarea-required-invalid.html textarea-ref.html -== textarea-required-invalid-changed.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-required-invalid-changed.html textarea-ref.html == textarea-disabled-fieldset-1.html textarea-fieldset-ref.html == textarea-disabled-fieldset-2.html textarea-fieldset-ref.html == textarea-novalidate.html textarea-ref.html diff --git a/layout/reftests/css-ui-valid/input/reftest.list b/layout/reftests/css-ui-valid/input/reftest.list index 4ee70ff06233..1ea49debe365 100644 --- a/layout/reftests/css-ui-valid/input/reftest.list +++ b/layout/reftests/css-ui-valid/input/reftest.list @@ -26,7 +26,7 @@ fails-if(Android||B2G) == input-dyn-disabled.html input-ref.html == input-pattern-valid-changed.html input-withtext-ref.html == input-pattern-invalid.html input-withtext-ref.html == input-type-barred.html input-button-ref.html -fuzzy(64,4) == input-type-invalid.html input-ref.html +fuzzy(64,4) fails-if(B2G&&browserIsRemote) == input-type-invalid.html input-ref.html == input-disabled-fieldset-1.html input-fieldset-ref.html == input-disabled-fieldset-2.html input-fieldset-ref.html == input-fieldset-legend.html input-fieldset-legend-ref.html diff --git a/layout/reftests/css-ui-valid/select/reftest.list b/layout/reftests/css-ui-valid/select/reftest.list index 67f3d582856a..ef7e962d841b 100644 --- a/layout/reftests/css-ui-valid/select/reftest.list +++ b/layout/reftests/css-ui-valid/select/reftest.list @@ -11,7 +11,7 @@ needs-focus == select-required-valid-changed-1.html select-required-ref.html needs-focus == select-required-valid-changed-2.html select-required-ref.html needs-focus == select-required-multiple-invalid.html select-required-multiple-ref.html needs-focus == select-required-multiple-valid.html select-required-multiple-ref.html -fuzzy(64,4) needs-focus == select-required-multiple-valid-changed.html select-required-multiple-ref.html +fuzzy(64,4) fails-if(B2G&&browserIsRemote) needs-focus == select-required-multiple-valid-changed.html select-required-multiple-ref.html fails-if(Android||B2G) needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html fails-if(Android||B2G) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html needs-focus == select-fieldset-legend.html select-fieldset-legend-ref.html diff --git a/layout/reftests/css-ui-valid/textarea/reftest.list b/layout/reftests/css-ui-valid/textarea/reftest.list index 8fef6e7e05c9..ade78f19ac52 100644 --- a/layout/reftests/css-ui-valid/textarea/reftest.list +++ b/layout/reftests/css-ui-valid/textarea/reftest.list @@ -1,15 +1,15 @@ == textarea-valid.html textarea-ref.html == textarea-customerror.html textarea-ref.html fails-if(Android||B2G) == textarea-disabled.html textarea-ref.html -fails-if(Android||B2G) == textarea-dyn-disabled.html textarea-ref.html -== textarea-dyn-not-disabled.html textarea-ref.html -== textarea-dyn-not-disabled-changed.html textarea-ref.html +random-if(Android||B2G) == textarea-dyn-disabled.html textarea-ref.html +random-if(B2G&&browserIsRemote) == textarea-dyn-not-disabled.html textarea-ref.html +random-if(B2G&&browserIsRemote) == textarea-dyn-not-disabled-changed.html textarea-ref.html == textarea-readonly.html textarea-ref.html == textarea-dyn-readonly.html textarea-ref.html == textarea-dyn-not-readonly.html textarea-ref.html -== textarea-dyn-not-readonly-changed.html textarea-ref.html +random-if(B2G&&browserIsRemote) == textarea-dyn-not-readonly-changed.html textarea-ref.html == textarea-maxlength-valid.html textarea-ref.html -== textarea-maxlength-valid-changed.html textarea-ref.html +random-if(B2G&&browserIsRemote) == textarea-maxlength-valid-changed.html textarea-ref.html == textarea-maxlength-invalid.html textarea-withtext-ref.html == textarea-required-valid.html textarea-withtext-ref.html == textarea-required-valid-changed.html textarea-withtext-ref.html diff --git a/layout/reftests/css-valid/input/reftest.list b/layout/reftests/css-valid/input/reftest.list index 93676a00d542..01a72cdc3922 100644 --- a/layout/reftests/css-valid/input/reftest.list +++ b/layout/reftests/css-valid/input/reftest.list @@ -1,5 +1,5 @@ == input-valid.html input-ref.html -fuzzy(64,4) == input-customerror.html input-ref.html +fuzzy(64,4) random-if(B2G&&browserIsRemote) == input-customerror.html input-ref.html fails-if(Android||B2G) == input-disabled.html input-ref.html fails-if(Android||B2G) == input-dyn-disabled.html input-ref.html == input-dyn-not-disabled.html input-ref.html @@ -19,7 +19,7 @@ fails-if(Android||B2G) == input-dyn-disabled.html input-ref.html == input-pattern-valid.html input-withtext-ref.html == input-pattern-invalid.html input-withtext-ref.html == input-type-barred.html input-button-ref.html -fuzzy(64,4) == input-type-invalid.html input-ref.html +fuzzy(64,4) fails-if(B2G&&browserIsRemote) == input-type-invalid.html input-ref.html == input-disabled-fieldset-1.html input-fieldset-ref.html == input-disabled-fieldset-2.html input-fieldset-ref.html == input-fieldset-legend.html input-fieldset-legend-ref.html diff --git a/layout/reftests/css-valid/textarea/reftest.list b/layout/reftests/css-valid/textarea/reftest.list index 9099cd9e3b3c..eb0a482ecfcc 100644 --- a/layout/reftests/css-valid/textarea/reftest.list +++ b/layout/reftests/css-valid/textarea/reftest.list @@ -1,11 +1,11 @@ == textarea-valid.html textarea-ref.html -== textarea-customerror.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-customerror.html textarea-ref.html fails-if(Android||B2G) == textarea-disabled.html textarea-ref.html fails-if(Android||B2G) == textarea-dyn-disabled.html textarea-ref.html -== textarea-dyn-not-disabled.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-dyn-not-disabled.html textarea-ref.html == textarea-readonly.html textarea-ref.html -== textarea-dyn-readonly.html textarea-ref.html -== textarea-dyn-not-readonly.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-dyn-readonly.html textarea-ref.html +fails-if(B2G&&browserIsRemote) == textarea-dyn-not-readonly.html textarea-ref.html == textarea-maxlength-valid.html textarea-ref.html == textarea-maxlength-invalid.html textarea-withtext-ref.html == textarea-required-valid.html textarea-withtext-ref.html diff --git a/layout/reftests/dom/reftest.list b/layout/reftests/dom/reftest.list index 8585554eda03..969a6dda3bca 100644 --- a/layout/reftests/dom/reftest.list +++ b/layout/reftests/dom/reftest.list @@ -31,7 +31,7 @@ == insertmultiplemultiple-2.html insertmultiplemultiple-ref.html # testing bindings that have multiple insertion points -== multipleinsertionpoints-ref2.xhtml multipleinsertionpoints-ref.xhtml +fails-if(B2G&&browserIsRemote) == multipleinsertionpoints-ref2.xhtml multipleinsertionpoints-ref.xhtml #Bug 988759 # append a single element skip-if(B2G) == multipleinsertionpoints-appendsingle-1.xhtml multipleinsertionpoints-ref.xhtml # bug 773482 skip-if(B2G) == multipleinsertionpoints-appendsingle-2.xhtml multipleinsertionpoints-ref.xhtml # bug 773482 @@ -45,7 +45,7 @@ skip-if(B2G) == multipleinsertionpoints-insertmultiple.xhtml multipleinsertionpo # test appending some nodes whose frame construction should be done lazily # followed by appending a node that might not be done lazily -== multipleappendwithxul.xhtml multipleappendwithxul-ref.xhtml +skip-if(B2G&&browserIsRemote) == multipleappendwithxul.xhtml multipleappendwithxul-ref.xhtml # Bug 974780 == multipleappendwithinput.xhtml multipleappendwithinput-ref.xhtml == multipleappendwitheditable.xhtml multipleappendwitheditable-ref.xhtml diff --git a/layout/reftests/first-line/reftest.list b/layout/reftests/first-line/reftest.list index 9e0cca7081d6..6462f251bf29 100644 --- a/layout/reftests/first-line/reftest.list +++ b/layout/reftests/first-line/reftest.list @@ -26,7 +26,7 @@ load stress-10.html # crash test == stress-11.xhtml stress-11-ref.xhtml == border-not-apply.html border-not-apply-ref.html -== 287088-1.html 287088-1-ref.html +skip-if(B2G&&browserIsRemote) == 287088-1.html 287088-1-ref.html # Bug 975254 == 287088-2.html 287088-2-ref.html == 403177-1.html 403177-1-ref.html == 469227-2.html 469227-2-ref.html diff --git a/layout/reftests/flexbox/reftest.list b/layout/reftests/flexbox/reftest.list index a9d40e59e201..0d52dfeb9332 100644 --- a/layout/reftests/flexbox/reftest.list +++ b/layout/reftests/flexbox/reftest.list @@ -56,30 +56,30 @@ fuzzy-if(B2G,10,3) random-if(winWidget) == flexbox-align-self-baseline-horiz-3.x == flexbox-box-sizing-on-items-vert-1b.html flexbox-box-sizing-on-items-vert-1-ref.html # Tests for dynamic modifications of content inside/around a flex container -== flexbox-dyn-changeFrameWidth-1.xhtml flexbox-dyn-changeFrameWidth-1-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-changeFrameWidth-1.xhtml flexbox-dyn-changeFrameWidth-1-ref.xhtml == flexbox-dyn-changeFrameWidth-2.xhtml flexbox-dyn-changeFrameWidth-2-ref.xhtml == flexbox-dyn-changeFrameWidth-3.xhtml flexbox-dyn-changeFrameWidth-3-ref.xhtml -== flexbox-dyn-changeFrameWidth-4.xhtml flexbox-dyn-changeFrameWidth-4-ref.xhtml -== flexbox-dyn-changePadding-1a.xhtml flexbox-dyn-changePadding-1-ref.xhtml -== flexbox-dyn-changePadding-1b.xhtml flexbox-dyn-changePadding-1-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-changeFrameWidth-4.xhtml flexbox-dyn-changeFrameWidth-4-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-changePadding-1a.xhtml flexbox-dyn-changePadding-1-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-changePadding-1b.xhtml flexbox-dyn-changePadding-1-ref.xhtml # Tests for dynamic insertions of content into a flex container # (with existing [div | span | text] inside the flexbox, and new content # inserted adjacent to that existing content.) == flexbox-dyn-insertAroundDiv-1.xhtml flexbox-dyn-insertAroundDiv-1-ref.xhtml -== flexbox-dyn-insertAroundDiv-2.xhtml flexbox-dyn-insertAroundDiv-2-ref.xhtml -== flexbox-dyn-insertAroundDiv-3.xhtml flexbox-dyn-insertAroundDiv-3-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-insertAroundDiv-2.xhtml flexbox-dyn-insertAroundDiv-2-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-insertAroundDiv-3.xhtml flexbox-dyn-insertAroundDiv-3-ref.xhtml == flexbox-dyn-insertAroundSpan-1.xhtml flexbox-dyn-insertAroundDiv-1-ref.xhtml -== flexbox-dyn-insertAroundSpan-2.xhtml flexbox-dyn-insertAroundDiv-2-ref.xhtml -== flexbox-dyn-insertAroundSpan-3.xhtml flexbox-dyn-insertAroundDiv-3-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-insertAroundSpan-2.xhtml flexbox-dyn-insertAroundDiv-2-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-insertAroundSpan-3.xhtml flexbox-dyn-insertAroundDiv-3-ref.xhtml == flexbox-dyn-insertAroundText-1.xhtml flexbox-dyn-insertAroundText-1-ref.xhtml -== flexbox-dyn-insertAroundText-2.xhtml flexbox-dyn-insertAroundText-2-ref.xhtml -== flexbox-dyn-insertAroundText-3.xhtml flexbox-dyn-insertAroundText-3-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-insertAroundText-2.xhtml flexbox-dyn-insertAroundText-2-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-insertAroundText-3.xhtml flexbox-dyn-insertAroundText-3-ref.xhtml # Variant of one of the above tests, to regression-test an invalidation issue -== flexbox-dyn-insertEmptySpan-1.xhtml flexbox-dyn-insertEmptySpan-1-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-dyn-insertEmptySpan-1.xhtml flexbox-dyn-insertEmptySpan-1-ref.xhtml # Tests for empty flexboxes (with no flex items) == flexbox-empty-1a.xhtml flexbox-empty-1-ref.xhtml @@ -114,10 +114,10 @@ fuzzy-if(Android&&AndroidVersion>=15,16,400) == flexbox-position-fixed-2.xhtml # Tests for inline content in a flexbox that gets wrapped in an anonymous block fails == flexbox-inlinecontent-horiz-1a.xhtml flexbox-inlinecontent-horiz-1-ref.xhtml # reference case rendering is incorrect; bug 858333 fails == flexbox-inlinecontent-horiz-1b.xhtml flexbox-inlinecontent-horiz-1-ref.xhtml # reference case rendering is incorrect; bug 858333 -== flexbox-inlinecontent-horiz-2.xhtml flexbox-inlinecontent-horiz-2-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-inlinecontent-horiz-2.xhtml flexbox-inlinecontent-horiz-2-ref.xhtml == flexbox-inlinecontent-horiz-3a.xhtml flexbox-inlinecontent-horiz-3-ref.xhtml -== flexbox-inlinecontent-horiz-3b.xhtml flexbox-inlinecontent-horiz-3-ref.xhtml -== flexbox-inlinecontent-horiz-3c.xhtml flexbox-inlinecontent-horiz-3-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-inlinecontent-horiz-3b.xhtml flexbox-inlinecontent-horiz-3-ref.xhtml +fails-if(B2G&&browserIsRemote) == flexbox-inlinecontent-horiz-3c.xhtml flexbox-inlinecontent-horiz-3-ref.xhtml == flexbox-inlinecontent-horiz-4.xhtml flexbox-inlinecontent-horiz-4-ref.xhtml == flexbox-inlinecontent-horiz-5.xhtml flexbox-inlinecontent-horiz-5-ref.xhtml @@ -128,7 +128,7 @@ fails == flexbox-inlinecontent-horiz-1b.xhtml flexbox-inlinecontent-horiz-1-ref. == flexbox-intrinsic-sizing-horiz-2b.xhtml flexbox-intrinsic-sizing-horiz-2-ref.xhtml # Tests for invalidation after dynamic modifications -== flexbox-invalidation-1.html flexbox-invalidation-1-ref.html +fails-if(B2G&&browserIsRemote) == flexbox-invalidation-1.html flexbox-invalidation-1-ref.html # Tests for flexbox in an iframe that gets resized. skip-if(B2G) == flexbox-resizeviewport-1.xhtml flexbox-resizeviewport-1-ref.xhtml diff --git a/layout/reftests/floats/reftest.list b/layout/reftests/floats/reftest.list index da559f1cc640..0ba050596c63 100644 --- a/layout/reftests/floats/reftest.list +++ b/layout/reftests/floats/reftest.list @@ -17,4 +17,4 @@ fails == 345369-2.html 345369-2-ref.html == 345369-5.html 345369-5-ref.html == 429974-1.html 429974-1-ref.html == 546048-1.html 546048-1-ref.html -== 775350-1.html 775350-1-ref.html +random-if(B2G&&browserIsRemote) == 775350-1.html 775350-1-ref.html diff --git a/layout/reftests/forms/fieldset/reftest.list b/layout/reftests/forms/fieldset/reftest.list index 611fdf37cfae..b34d240c4c47 100644 --- a/layout/reftests/forms/fieldset/reftest.list +++ b/layout/reftests/forms/fieldset/reftest.list @@ -1,9 +1,9 @@ -== dynamic-legend-scroll-1.html dynamic-legend-scroll-1-ref.html +fails-if(B2G&&browserIsRemote) == dynamic-legend-scroll-1.html dynamic-legend-scroll-1-ref.html == fieldset-hidden-1.html fieldset-hidden-1-ref.html == fieldset-intrinsic-width-1.html fieldset-intrinsic-width-1-ref.html == fieldset-percentage-padding-1.html fieldset-percentage-padding-1-ref.html == fieldset-scroll-1.html fieldset-scroll-1-ref.html -== fieldset-scrolled-1.html fieldset-scrolled-1-ref.html +fails-if(B2G&&browserIsRemote) == fieldset-scrolled-1.html fieldset-scrolled-1-ref.html random-if(B2G) == fieldset-overflow-auto-1.html fieldset-overflow-auto-1-ref.html == positioned-container-1.html positioned-container-1-ref.html == relpos-legend-1.html relpos-legend-1-ref.html diff --git a/layout/reftests/forms/input/number/reftest.list b/layout/reftests/forms/input/number/reftest.list index 3c5f30fce1d2..f1d748128a32 100644 --- a/layout/reftests/forms/input/number/reftest.list +++ b/layout/reftests/forms/input/number/reftest.list @@ -11,8 +11,8 @@ skip-if(!Android&&!B2G) == number-same-as-text-unthemed.html number-same-as-text == number-similar-to-text-unthemed.html number-similar-to-text-unthemed-ref.html # dynamic type changes: -fuzzy-if(/^Windows\x20NT\x205\.1/.test(http.oscpu),64,4) fuzzy-if(cocoaWidget,63,4) == to-number-from-other-type-unthemed-1.html to-number-from-other-type-unthemed-1-ref.html -== from-number-to-other-type-unthemed-1.html from-number-to-other-type-unthemed-1-ref.html +fuzzy-if(/^Windows\x20NT\x205\.1/.test(http.oscpu),64,4) fuzzy-if(cocoaWidget,63,4) fails-if(B2G&&browserIsRemote) == to-number-from-other-type-unthemed-1.html to-number-from-other-type-unthemed-1-ref.html +fails-if(B2G&&browserIsRemote) == from-number-to-other-type-unthemed-1.html from-number-to-other-type-unthemed-1-ref.html # dynamic value changes: == show-value.html show-value-ref.html @@ -21,7 +21,7 @@ fuzzy-if(/^Windows\x20NT\x205\.1/.test(http.oscpu),64,4) fuzzy-if(cocoaWidget,63 == number-disabled.html number-disabled-ref.html # auto width: -== number-auto-width-1.html number-auto-width-1-ref.html +random-if(B2G&&browserIsRemote) == number-auto-width-1.html number-auto-width-1-ref.html # min-height/max-height tests: skip-if(B2G||Android) == number-min-height-1.html number-min-height-1-ref.html diff --git a/layout/reftests/forms/input/range/reftest.list b/layout/reftests/forms/input/range/reftest.list index f7c74f31aaf4..6b7ac8eb54b8 100644 --- a/layout/reftests/forms/input/range/reftest.list +++ b/layout/reftests/forms/input/range/reftest.list @@ -1,27 +1,26 @@ - # sanity checks: != not-other-type-unthemed-1.html not-other-type-unthemed-1a-notref.html != not-other-type-unthemed-1.html not-other-type-unthemed-1b-notref.html != not-other-type-unthemed-1.html not-other-type-unthemed-1c-notref.html # dynamic type changes: -== to-range-from-other-type-unthemed-1.html to-range-from-other-type-unthemed-1-ref.html -== from-range-to-other-type-unthemed-1.html from-range-to-other-type-unthemed-1-ref.html +fails-if(B2G&&browserIsRemote) == to-range-from-other-type-unthemed-1.html to-range-from-other-type-unthemed-1-ref.html +fails-if(B2G&&browserIsRemote) == from-range-to-other-type-unthemed-1.html from-range-to-other-type-unthemed-1-ref.html # for different values: != different-fraction-of-range-unthemed-1.html different-fraction-of-range-unthemed-1-notref.html == same-fraction-of-range-unthemed-1.html same-fraction-of-range-unthemed-1-ref.html # dynamic value changes: -== value-prop-unthemed.html 75pct-unthemed-common-ref.html -== value-prop.html 75pct-common-ref.html -== valueAsNumber-prop-unthemed.html 75pct-unthemed-common-ref.html -== valueAsNumber-prop.html 75pct-common-ref.html -== stepDown-unthemed.html 75pct-unthemed-common-ref.html -== stepDown.html 75pct-common-ref.html -== stepUp-unthemed.html 75pct-unthemed-common-ref.html -== stepUp.html 75pct-common-ref.html -fuzzy-if(B2G,1,1) == max-prop.html 100pct-common-ref.html +random-if(B2G&&browserIsRemote) == value-prop-unthemed.html 75pct-unthemed-common-ref.html +random-if(B2G&&browserIsRemote) == value-prop.html 75pct-common-ref.html +random-if(B2G&&browserIsRemote) == valueAsNumber-prop-unthemed.html 75pct-unthemed-common-ref.html +random-if(B2G&&browserIsRemote) == valueAsNumber-prop.html 75pct-common-ref.html +random-if(B2G&&browserIsRemote) == stepDown-unthemed.html 75pct-unthemed-common-ref.html # Bug 878916 +random-if(B2G&&browserIsRemote) == stepDown.html 75pct-common-ref.html # Bug 878916 +random-if(B2G&&browserIsRemote) == stepUp-unthemed.html 75pct-unthemed-common-ref.html # Bug 969256 +random-if(B2G&&browserIsRemote) == stepUp.html 75pct-common-ref.html # Bug 969256 +fuzzy-if(B2G,1,1) fails-if(B2G&&browserIsRemote) == max-prop.html 100pct-common-ref.html # 'direction' property: == direction-unthemed-1.html direction-unthemed-1-ref.html diff --git a/layout/reftests/forms/meter/reftest.list b/layout/reftests/forms/meter/reftest.list index 17a4a8aa8194..4a911601d802 100644 --- a/layout/reftests/forms/meter/reftest.list +++ b/layout/reftests/forms/meter/reftest.list @@ -22,6 +22,6 @@ skip-if(B2G) == bar-pseudo-element-vertical.html bar-pseudo-element-vertical-ref include default-style/reftest.list # Tests for bugs: -== block-invalidate.html block-invalidate-ref.html +random-if(B2G&&browserIsRemote) == block-invalidate.html block-invalidate-ref.html == in-cells.html in-cells-ref.html == max-height.html max-height-ref.html diff --git a/layout/reftests/forms/textarea/reftest.list b/layout/reftests/forms/textarea/reftest.list index e6a0740c8e4f..b17c77a4cea1 100644 --- a/layout/reftests/forms/textarea/reftest.list +++ b/layout/reftests/forms/textarea/reftest.list @@ -9,5 +9,5 @@ skip-if(B2G) fails-if(Android) fails-if(gtk2Widget) != rtl.html no-resize.html # == rtl.html rtl-dynamic-attr.html == rtl.html rtl-dynamic-style.html == rtl.html in-dynamic-rtl-doc.html -== setvalue-framereconstruction-1.html setvalue-framereconstruction-ref.html +fails-if(B2G&&browserIsRemote) == setvalue-framereconstruction-1.html setvalue-framereconstruction-ref.html == padding-scrollbar-placement.html padding-scrollbar-placement-ref.html diff --git a/layout/reftests/ib-split/reftest.list b/layout/reftests/ib-split/reftest.list index 779921d2100b..f1703047f41e 100644 --- a/layout/reftests/ib-split/reftest.list +++ b/layout/reftests/ib-split/reftest.list @@ -64,7 +64,7 @@ == insert-into-split-inline-16a.html insert-into-split-inline-16-ref.html == insert-into-split-inline-16b.html insert-into-split-inline-16-ref.html == insert-into-split-inline-16-ref.html insert-into-split-inline-16-noib-ref.html -== float-inside-inline-between-blocks-1.html float-inside-inline-between-blocks-1-ref.html +random-if(B2G&&browserIsRemote) == float-inside-inline-between-blocks-1.html float-inside-inline-between-blocks-1-ref.html == table-pseudo-in-part3-1.html table-pseudo-in-part3-1-ref.html == emptyspan-1.html emptyspan-1-ref.html == emptyspan-2.html emptyspan-2-ref.html diff --git a/layout/reftests/image-element/reftest.list b/layout/reftests/image-element/reftest.list index d8c425197551..79d2d20a619d 100644 --- a/layout/reftests/image-element/reftest.list +++ b/layout/reftests/image-element/reftest.list @@ -44,4 +44,4 @@ fuzzy(1,16900) == gradient-html-07c.html gradient-html-07d.html HTTP == invalidate-1.html invalidate-1-ref.html == pattern-html-01.html pattern-html-01-ref.svg == pattern-html-02.html pattern-html-02-ref.svg -== referenced-from-binding-01.html referenced-from-binding-01-ref.html +fails-if(B2G&&browserIsRemote) == referenced-from-binding-01.html referenced-from-binding-01-ref.html # Bug 988763 diff --git a/layout/reftests/image-region/reftest.list b/layout/reftests/image-region/reftest.list index 6b4a02f16bb1..d28c80942e41 100644 --- a/layout/reftests/image-region/reftest.list +++ b/layout/reftests/image-region/reftest.list @@ -1 +1 @@ -== image-region.xul image-region-ref.xul +skip-if(B2G&&browserIsRemote) == image-region.xul image-region-ref.xul diff --git a/layout/reftests/invalidation/reftest.list b/layout/reftests/invalidation/reftest.list index 215a0c933b2d..3e655ea4dea8 100644 --- a/layout/reftests/invalidation/reftest.list +++ b/layout/reftests/invalidation/reftest.list @@ -1,7 +1,7 @@ == table-repaint-a.html table-repaint-a-ref.html -== table-repaint-b.html table-repaint-b-ref.html +fails-if(B2G&&browserIsRemote) == table-repaint-b.html table-repaint-b-ref.html == table-repaint-c.html table-repaint-c-ref.html -== table-repaint-d.html table-repaint-d-ref.html +fails-if(B2G&&browserIsRemote) == table-repaint-d.html table-repaint-d-ref.html skip-if(B2G&&browserIsRemote) == 540247-1.xul 540247-1-ref.xul # bug 974780 skip-if(B2G&&browserIsRemote) == 543681-1.html 543681-1-ref.html == test-image-layers.html test-image-layers-ref.html @@ -20,29 +20,29 @@ pref(layout.animated-image-layers.enabled,true) == test-animated-image-layers-ba == filter-userspace-offset.svg?offsetContainer=use&filter=matrix-boundingBox filter-userspace-offset.svg == filter-userspace-offset.svg?offsetContainer=innerSVG&filter=matrix-boundingBox filter-userspace-offset.svg == filter-userspace-offset.svg?offsetContainer=foreignObject&filter=matrix-boundingBox filter-userspace-offset.svg -== filter-userspace-offset.svg?offsetContainer=rect&filter=flood-userSpace-at100 filter-userspace-offset.svg -== filter-userspace-offset.svg?offsetContainer=use&filter=flood-userSpace-at100 filter-userspace-offset.svg +fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=rect&filter=flood-userSpace-at100 filter-userspace-offset.svg +fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=use&filter=flood-userSpace-at100 filter-userspace-offset.svg == filter-userspace-offset.svg?offsetContainer=innerSVG&filter=flood-userSpace-atZero filter-userspace-offset.svg -== filter-userspace-offset.svg?offsetContainer=foreignObject&filter=flood-userSpace-at100 filter-userspace-offset.svg -== filter-userspace-offset.svg?offsetContainer=rect&filter=matrix-userSpace-at100 filter-userspace-offset.svg -== filter-userspace-offset.svg?offsetContainer=use&filter=matrix-userSpace-at100 filter-userspace-offset.svg +fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=foreignObject&filter=flood-userSpace-at100 filter-userspace-offset.svg +fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=rect&filter=matrix-userSpace-at100 filter-userspace-offset.svg +fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=use&filter=matrix-userSpace-at100 filter-userspace-offset.svg == filter-userspace-offset.svg?offsetContainer=innerSVG&filter=matrix-userSpace-atZero filter-userspace-offset.svg -== filter-userspace-offset.svg?offsetContainer=foreignObject&filter=matrix-userSpace-at100 filter-userspace-offset.svg +fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=foreignObject&filter=matrix-userSpace-at100 filter-userspace-offset.svg == filter-userspace-offset.svg?offsetContainer=rect&mask=boundingBox filter-userspace-offset.svg == filter-userspace-offset.svg?offsetContainer=use&mask=boundingBox filter-userspace-offset.svg == filter-userspace-offset.svg?offsetContainer=innerSVG&mask=boundingBox filter-userspace-offset.svg == filter-userspace-offset.svg?offsetContainer=foreignObject&mask=boundingBox filter-userspace-offset.svg -== filter-userspace-offset.svg?offsetContainer=rect&mask=userSpace-at100 filter-userspace-offset.svg -== filter-userspace-offset.svg?offsetContainer=use&mask=userSpace-at100 filter-userspace-offset.svg +fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=rect&mask=userSpace-at100 filter-userspace-offset.svg +fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=use&mask=userSpace-at100 filter-userspace-offset.svg == filter-userspace-offset.svg?offsetContainer=innerSVG&mask=userSpace-atZero filter-userspace-offset.svg -== filter-userspace-offset.svg?offsetContainer=foreignObject&mask=userSpace-at100 filter-userspace-offset.svg +fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=foreignObject&mask=userSpace-at100 filter-userspace-offset.svg == filter-userspace-offset.svg?offsetContainer=rect&filter=matrix-fillPaint-boundingBox filter-userspace-offset.svg -== filter-userspace-offset.svg?offsetContainer=rect&filter=matrix-fillPaint-userSpace-at100 filter-userspace-offset.svg +fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=rect&filter=matrix-fillPaint-userSpace-at100 filter-userspace-offset.svg == scroll-inactive-layers.html scroll-inactive-layers.html == scroll-inactive-layers-2.html scroll-inactive-layers-2.html != inactive-layertree-visible-region-1.html about:blank != inactive-layertree-visible-region-2.html about:blank != transform-floating-point-invalidation.html about:blank -!= transform-floating-point-invalidation.html?reverse about:blank +fails-if(B2G&&browserIsRemote) != transform-floating-point-invalidation.html?reverse about:blank != nudge-to-integer-invalidation.html about:blank != nudge-to-integer-invalidation.html?reverse about:blank diff --git a/layout/reftests/layers/reftest.list b/layout/reftests/layers/reftest.list index 8897ae38591b..57b307621112 100644 --- a/layout/reftests/layers/reftest.list +++ b/layout/reftests/layers/reftest.list @@ -1,2 +1,2 @@ -== move-to-background-1.html move-to-background-1-ref.html -fuzzy-if(cocoaWidget,2,6) random-if(Android&&!browserIsRemote) == component-alpha-exit-1.html component-alpha-exit-1-ref.html # bug 760275 +random-if(B2G&&browserIsRemote) == move-to-background-1.html move-to-background-1-ref.html +fuzzy-if(cocoaWidget,2,6) random-if(Android&&!browserIsRemote) fails-if(B2G&&browserIsRemote) == component-alpha-exit-1.html component-alpha-exit-1-ref.html # bug 760275 diff --git a/layout/reftests/margin-collapsing/reftest.list b/layout/reftests/margin-collapsing/reftest.list index 6edc5dcdf32b..d181a405b7bd 100644 --- a/layout/reftests/margin-collapsing/reftest.list +++ b/layout/reftests/margin-collapsing/reftest.list @@ -78,21 +78,21 @@ skip-if(B2G) == inline-table-horizontal-1-dyn.html inline-table-horizontal-1-ref == block-sibling-3.html block-sibling-1-ref.html == block-sibling-3.html block-sibling-1-ref2.html != block-sibling-3.html block-sibling-1-noref.html -== block-sibling-1a-dyn.html block-sibling-1-ref.html -== block-sibling-1a-dyn.html block-sibling-1-ref2.html -!= block-sibling-1a-dyn.html block-sibling-1-noref.html -== block-sibling-1b-dyn.html block-sibling-1-ref.html -== block-sibling-1b-dyn.html block-sibling-1-ref2.html -!= block-sibling-1b-dyn.html block-sibling-1-noref.html -== block-sibling-1c-dyn.html block-sibling-1-ref.html -== block-sibling-1c-dyn.html block-sibling-1-ref2.html -!= block-sibling-1c-dyn.html block-sibling-1-noref2.html +random-if(B2G&&browserIsRemote) == block-sibling-1a-dyn.html block-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == block-sibling-1a-dyn.html block-sibling-1-ref2.html +random-if(B2G&&browserIsRemote) != block-sibling-1a-dyn.html block-sibling-1-noref.html +random-if(B2G&&browserIsRemote) == block-sibling-1b-dyn.html block-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == block-sibling-1b-dyn.html block-sibling-1-ref2.html +random-if(B2G&&browserIsRemote) != block-sibling-1b-dyn.html block-sibling-1-noref.html +random-if(B2G&&browserIsRemote) == block-sibling-1c-dyn.html block-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == block-sibling-1c-dyn.html block-sibling-1-ref2.html +random-if(B2G&&browserIsRemote) != block-sibling-1c-dyn.html block-sibling-1-noref2.html skip-if(B2G) == block-sibling-2-dyn.html block-sibling-2-ref.html # bug 773482 -== block-sibling-2-dyn.html block-sibling-2-ref2.html -!= block-sibling-2-dyn.html block-sibling-2-noref.html -== block-sibling-3-dyn.html block-sibling-1-ref.html -== block-sibling-3-dyn.html block-sibling-1-ref2.html -!= block-sibling-3-dyn.html block-sibling-1-noref.html +random-if(B2G&&browserIsRemote) == block-sibling-2-dyn.html block-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) != block-sibling-2-dyn.html block-sibling-2-noref.html +random-if(B2G&&browserIsRemote) == block-sibling-3-dyn.html block-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == block-sibling-3-dyn.html block-sibling-1-ref2.html +random-if(B2G&&browserIsRemote) != block-sibling-3-dyn.html block-sibling-1-noref.html # "In the case of negative margins, the maximum of the absolute values of the # negative adjoining margins is deducted from the maximum of the positive # adjoining margins. If there are no positive margins, the maximum of the @@ -131,70 +131,70 @@ skip-if(B2G) == block-sibling-2-dyn.html block-sibling-2-ref.html # bug 773482 == block-negative-5.html block-negative-5-ref2.html != block-negative-5.html block-negative-5-noref1.html != block-negative-5.html block-negative-5-noref2.html -== block-negative-1a-dyn1.html block-negative-1-ref.html -!= block-negative-1a-dyn1.html block-negative-1-noref1.html -!= block-negative-1a-dyn1.html block-negative-1-noref2.html -== block-negative-1a-dyn2.html block-negative-1-ref.html -!= block-negative-1a-dyn2.html block-negative-1-noref1.html -!= block-negative-1a-dyn2.html block-negative-1-noref2.html -== block-negative-1b-dyn1.html block-negative-1-ref.html -!= block-negative-1b-dyn1.html block-negative-1-noref1.html -!= block-negative-1b-dyn1.html block-negative-1-noref2.html -== block-negative-1b-dyn2.html block-negative-1-ref.html -!= block-negative-1b-dyn2.html block-negative-1-noref1.html -!= block-negative-1b-dyn2.html block-negative-1-noref2.html -== block-negative-2a-dyn1.html block-negative-2-ref.html -!= block-negative-2a-dyn1.html block-negative-2-noref1.html -!= block-negative-2a-dyn1.html block-negative-2-noref2.html -== block-negative-2a-dyn2.html block-negative-2-ref.html -!= block-negative-2a-dyn2.html block-negative-2-noref1.html -!= block-negative-2a-dyn2.html block-negative-2-noref2.html -== block-negative-2b-dyn1.html block-negative-2-ref.html -!= block-negative-2b-dyn1.html block-negative-2-noref1.html -!= block-negative-2b-dyn1.html block-negative-2-noref2.html -== block-negative-2b-dyn2.html block-negative-2-ref.html -!= block-negative-2b-dyn2.html block-negative-2-noref1.html -!= block-negative-2b-dyn2.html block-negative-2-noref2.html -== block-negative-3a-dyn1.html block-negative-3-ref.html -== block-negative-3a-dyn1.html block-negative-3-ref2.html -!= block-negative-3a-dyn1.html block-negative-3-noref1.html -!= block-negative-3a-dyn1.html block-negative-3-noref2.html -== block-negative-3a-dyn2.html block-negative-3-ref.html -== block-negative-3a-dyn2.html block-negative-3-ref2.html -!= block-negative-3a-dyn2.html block-negative-3-noref1.html -!= block-negative-3a-dyn2.html block-negative-3-noref2.html -== block-negative-3b-dyn1.html block-negative-3-ref.html -== block-negative-3b-dyn1.html block-negative-3-ref2.html -!= block-negative-3b-dyn1.html block-negative-3-noref1.html -!= block-negative-3b-dyn1.html block-negative-3-noref2.html -== block-negative-3b-dyn2.html block-negative-3-ref.html -== block-negative-3b-dyn2.html block-negative-3-ref2.html -!= block-negative-3b-dyn2.html block-negative-3-noref1.html -!= block-negative-3b-dyn2.html block-negative-3-noref2.html -== block-negative-4a-dyn1.html block-negative-4-ref.html -== block-negative-4a-dyn1.html block-negative-4-ref2.html -!= block-negative-4a-dyn1.html block-negative-4-noref1.html -!= block-negative-4a-dyn1.html block-negative-4-noref2.html -== block-negative-4a-dyn2.html block-negative-4-ref.html -== block-negative-4a-dyn2.html block-negative-4-ref2.html -!= block-negative-4a-dyn2.html block-negative-4-noref1.html -!= block-negative-4a-dyn2.html block-negative-4-noref2.html -== block-negative-4b-dyn1.html block-negative-4-ref.html -== block-negative-4b-dyn1.html block-negative-4-ref2.html -!= block-negative-4b-dyn1.html block-negative-4-noref1.html -!= block-negative-4b-dyn1.html block-negative-4-noref2.html -== block-negative-4b-dyn2.html block-negative-4-ref.html -== block-negative-4b-dyn2.html block-negative-4-ref2.html -!= block-negative-4b-dyn2.html block-negative-4-noref1.html -!= block-negative-4b-dyn2.html block-negative-4-noref2.html -== block-negative-5-dyn1.html block-negative-5-ref.html -== block-negative-5-dyn1.html block-negative-5-ref2.html -!= block-negative-5-dyn1.html block-negative-5-noref1.html -!= block-negative-5-dyn1.html block-negative-5-noref2.html -== block-negative-5-dyn2.html block-negative-5-ref.html -== block-negative-5-dyn2.html block-negative-5-ref2.html -!= block-negative-5-dyn2.html block-negative-5-noref1.html -!= block-negative-5-dyn2.html block-negative-5-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-1a-dyn1.html block-negative-1-ref.html +random-if(B2G&&browserIsRemote) != block-negative-1a-dyn1.html block-negative-1-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-1a-dyn1.html block-negative-1-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-1a-dyn2.html block-negative-1-ref.html +random-if(B2G&&browserIsRemote) != block-negative-1a-dyn2.html block-negative-1-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-1a-dyn2.html block-negative-1-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-1b-dyn1.html block-negative-1-ref.html +random-if(B2G&&browserIsRemote) != block-negative-1b-dyn1.html block-negative-1-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-1b-dyn1.html block-negative-1-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-1b-dyn2.html block-negative-1-ref.html +random-if(B2G&&browserIsRemote) != block-negative-1b-dyn2.html block-negative-1-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-1b-dyn2.html block-negative-1-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-2a-dyn1.html block-negative-2-ref.html +random-if(B2G&&browserIsRemote) != block-negative-2a-dyn1.html block-negative-2-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-2a-dyn1.html block-negative-2-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-2a-dyn2.html block-negative-2-ref.html +random-if(B2G&&browserIsRemote) != block-negative-2a-dyn2.html block-negative-2-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-2a-dyn2.html block-negative-2-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-2b-dyn1.html block-negative-2-ref.html +random-if(B2G&&browserIsRemote) != block-negative-2b-dyn1.html block-negative-2-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-2b-dyn1.html block-negative-2-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-2b-dyn2.html block-negative-2-ref.html +random-if(B2G&&browserIsRemote) != block-negative-2b-dyn2.html block-negative-2-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-2b-dyn2.html block-negative-2-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-3a-dyn1.html block-negative-3-ref.html +random-if(B2G&&browserIsRemote) == block-negative-3a-dyn1.html block-negative-3-ref2.html +random-if(B2G&&browserIsRemote) != block-negative-3a-dyn1.html block-negative-3-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-3a-dyn1.html block-negative-3-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-3a-dyn2.html block-negative-3-ref.html +random-if(B2G&&browserIsRemote) == block-negative-3a-dyn2.html block-negative-3-ref2.html +random-if(B2G&&browserIsRemote) != block-negative-3a-dyn2.html block-negative-3-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-3a-dyn2.html block-negative-3-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-3b-dyn1.html block-negative-3-ref.html +random-if(B2G&&browserIsRemote) == block-negative-3b-dyn1.html block-negative-3-ref2.html +random-if(B2G&&browserIsRemote) != block-negative-3b-dyn1.html block-negative-3-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-3b-dyn1.html block-negative-3-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-3b-dyn2.html block-negative-3-ref.html +random-if(B2G&&browserIsRemote) == block-negative-3b-dyn2.html block-negative-3-ref2.html +random-if(B2G&&browserIsRemote) != block-negative-3b-dyn2.html block-negative-3-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-3b-dyn2.html block-negative-3-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-4a-dyn1.html block-negative-4-ref.html +random-if(B2G&&browserIsRemote) == block-negative-4a-dyn1.html block-negative-4-ref2.html +random-if(B2G&&browserIsRemote) != block-negative-4a-dyn1.html block-negative-4-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-4a-dyn1.html block-negative-4-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-4a-dyn2.html block-negative-4-ref.html +random-if(B2G&&browserIsRemote) == block-negative-4a-dyn2.html block-negative-4-ref2.html +random-if(B2G&&browserIsRemote) != block-negative-4a-dyn2.html block-negative-4-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-4a-dyn2.html block-negative-4-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-4b-dyn1.html block-negative-4-ref.html +random-if(B2G&&browserIsRemote) == block-negative-4b-dyn1.html block-negative-4-ref2.html +random-if(B2G&&browserIsRemote) != block-negative-4b-dyn1.html block-negative-4-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-4b-dyn1.html block-negative-4-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-4b-dyn2.html block-negative-4-ref.html +random-if(B2G&&browserIsRemote) == block-negative-4b-dyn2.html block-negative-4-ref2.html +random-if(B2G&&browserIsRemote) != block-negative-4b-dyn2.html block-negative-4-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-4b-dyn2.html block-negative-4-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-5-dyn1.html block-negative-5-ref.html +random-if(B2G&&browserIsRemote) == block-negative-5-dyn1.html block-negative-5-ref2.html +random-if(B2G&&browserIsRemote) != block-negative-5-dyn1.html block-negative-5-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-5-dyn1.html block-negative-5-noref2.html +random-if(B2G&&browserIsRemote) == block-negative-5-dyn2.html block-negative-5-ref.html +random-if(B2G&&browserIsRemote) == block-negative-5-dyn2.html block-negative-5-ref2.html +random-if(B2G&&browserIsRemote) != block-negative-5-dyn2.html block-negative-5-noref1.html +random-if(B2G&&browserIsRemote) != block-negative-5-dyn2.html block-negative-5-noref2.html # "Two margins are adjoining if and only if:" [...] # "both belong to vertically-adjacent box edges, # i.e. form one of the following pairs:" [...] @@ -242,23 +242,23 @@ skip-if(B2G) == block-sibling-2-dyn.html block-sibling-2-ref.html # bug 773482 == block-non-sibling-3d.html block-non-sibling-3-ref2.html == block-non-sibling-4.html block-non-sibling-4-ref.html == block-non-sibling-4.html block-non-sibling-4-ref2.html -== block-non-sibling-1a-dyn.html block-non-sibling-1-ref2.html -== block-non-sibling-1b-dyn.html block-non-sibling-1-ref2.html -== block-non-sibling-1c-dyn.html block-non-sibling-1-ref2.html -== block-non-sibling-1d-dyn.html block-non-sibling-1-ref2.html -== block-non-sibling-1e-dyn.html block-non-sibling-1-ref2.html -== block-non-sibling-1f-dyn.html block-non-sibling-1-ref2.html -== block-non-sibling-2a-dyn.html block-non-sibling-2-ref2.html -== block-non-sibling-2b-dyn.html block-non-sibling-2-ref2.html -== block-non-sibling-2c-dyn.html block-non-sibling-2-ref2.html -== block-non-sibling-2d-dyn.html block-non-sibling-2-ref2.html -== block-non-sibling-2e-dyn.html block-non-sibling-2-ref2.html -== block-non-sibling-2f-dyn.html block-non-sibling-2-ref2.html -== block-non-sibling-3a-dyn.html block-non-sibling-3-ref2.html -== block-non-sibling-3b-dyn.html block-non-sibling-3-ref2.html -== block-non-sibling-3c-dyn.html block-non-sibling-3-ref2.html -== block-non-sibling-3d-dyn.html block-non-sibling-3-ref2.html -== block-non-sibling-4-dyn.html block-non-sibling-4-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-1a-dyn.html block-non-sibling-1-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-1b-dyn.html block-non-sibling-1-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-1c-dyn.html block-non-sibling-1-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-1d-dyn.html block-non-sibling-1-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-1e-dyn.html block-non-sibling-1-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-1f-dyn.html block-non-sibling-1-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-2a-dyn.html block-non-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-2b-dyn.html block-non-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-2c-dyn.html block-non-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-2d-dyn.html block-non-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-2e-dyn.html block-non-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-2f-dyn.html block-non-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-3a-dyn.html block-non-sibling-3-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-3b-dyn.html block-non-sibling-3-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-3c-dyn.html block-non-sibling-3-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-3d-dyn.html block-non-sibling-3-ref2.html +random-if(B2G&&browserIsRemote) == block-non-sibling-4-dyn.html block-non-sibling-4-ref2.html # The first-child series tests cases where the top margin of a box collapses # with the top margin of its parent element. # This series is more extensive than the non-sibling series, because @@ -275,18 +275,18 @@ skip-if(B2G) == block-sibling-2-dyn.html block-sibling-2-ref.html # bug 773482 == block-first-child-8a.html block-first-child-8-ref.html == block-first-child-8b.html block-first-child-8-ref.html == block-first-child-8c.html block-first-child-8-ref.html -== block-first-child-1a-dyn.html block-first-child-1-ref.html -== block-first-child-1b-dyn.html block-first-child-1-ref.html -== block-first-child-1c-dyn.html block-first-child-1-ref.html -== block-first-child-2-dyn.html block-first-child-2-ref.html -== block-first-child-3-dyn.html block-first-child-3-ref.html -== block-first-child-4-dyn.html block-first-child-4-ref.html -== block-first-child-5-dyn.html block-first-child-5-ref.html -== block-first-child-6-dyn.html block-first-child-6-ref.html -== block-first-child-7-dyn.html block-first-child-7-ref.html -== block-first-child-8a-dyn.html block-first-child-8-ref.html -== block-first-child-8b-dyn.html block-first-child-8-ref.html -== block-first-child-8c-dyn.html block-first-child-8-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-1a-dyn.html block-first-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-1b-dyn.html block-first-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-1c-dyn.html block-first-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-2-dyn.html block-first-child-2-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-3-dyn.html block-first-child-3-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-4-dyn.html block-first-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-5-dyn.html block-first-child-5-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-6-dyn.html block-first-child-6-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-7-dyn.html block-first-child-7-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-8a-dyn.html block-first-child-8-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-8b-dyn.html block-first-child-8-ref.html +random-if(B2G&&browserIsRemote) == block-first-child-8c-dyn.html block-first-child-8-ref.html # "The bottom margin of an in-flow block box with a 'height' of 'auto' # collapses with its last in-flow block-level child's bottom margin" # Note: The block-auto-height-last-child series automatically covers @@ -304,18 +304,18 @@ skip-if(B2G) == block-sibling-2-dyn.html block-sibling-2-ref.html # bug 773482 == block-auto-height-last-child-8a.html block-auto-height-last-child-8-ref.html == block-auto-height-last-child-8b.html block-auto-height-last-child-8-ref.html == block-auto-height-last-child-8c.html block-auto-height-last-child-8-ref.html -== block-auto-height-last-child-1a-dyn.html block-auto-height-last-child-1-ref.html -== block-auto-height-last-child-1b-dyn.html block-auto-height-last-child-1-ref.html -== block-auto-height-last-child-1c-dyn.html block-auto-height-last-child-1-ref.html -== block-auto-height-last-child-2-dyn.html block-auto-height-last-child-2-ref.html -== block-auto-height-last-child-3-dyn.html block-auto-height-last-child-3-ref.html -== block-auto-height-last-child-4-dyn.html block-auto-height-last-child-4-ref.html -== block-auto-height-last-child-5-dyn.html block-auto-height-last-child-5-ref.html -== block-auto-height-last-child-6-dyn.html block-auto-height-last-child-6-ref.html -== block-auto-height-last-child-7-dyn.html block-auto-height-last-child-7-ref.html -== block-auto-height-last-child-8a-dyn.html block-auto-height-last-child-8-ref.html -== block-auto-height-last-child-8b-dyn.html block-auto-height-last-child-8-ref.html -== block-auto-height-last-child-8c-dyn.html block-auto-height-last-child-8-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-1a-dyn.html block-auto-height-last-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-1b-dyn.html block-auto-height-last-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-1c-dyn.html block-auto-height-last-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-2-dyn.html block-auto-height-last-child-2-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-3-dyn.html block-auto-height-last-child-3-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-4-dyn.html block-auto-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-5-dyn.html block-auto-height-last-child-5-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-6-dyn.html block-auto-height-last-child-6-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-7-dyn.html block-auto-height-last-child-7-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-8a-dyn.html block-auto-height-last-child-8-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-8b-dyn.html block-auto-height-last-child-8-ref.html +random-if(B2G&&browserIsRemote) == block-auto-height-last-child-8c-dyn.html block-auto-height-last-child-8-ref.html # The last-child series is an older variant of the # block-auto-height-last-child tests. == block-last-child-1a.html block-last-child-1-ref.html @@ -393,29 +393,29 @@ fails == block-min-height-last-child-3a.html block-min-height-last-child-3-ref.h == block-min-height-last-child-9b.html block-min-height-last-child-9-ref.html == block-min-height-last-child-9c.html block-min-height-last-child-9-ref.html fails == block-min-height-last-child-1a-dyn.html block-min-height-last-child-1-ref.html # Bug 616339 -== block-min-height-last-child-1b-dyn.html block-min-height-last-child-1-ref.html -== block-min-height-last-child-1c-dyn.html block-min-height-last-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-1b-dyn.html block-min-height-last-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-1c-dyn.html block-min-height-last-child-1-ref.html fails == block-min-height-last-child-2a-dyn.html block-min-height-last-child-2-ref.html # Bug 616339 fails == block-min-height-last-child-2b-dyn.html block-min-height-last-child-2-ref.html # Bug 616339 fails == block-min-height-last-child-3a-dyn.html block-min-height-last-child-3-ref.html # Bug 616339 -== block-min-height-last-child-3b-dyn.html block-min-height-last-child-3-ref.html -== block-min-height-last-child-3c-dyn.html block-min-height-last-child-3-ref.html -== block-min-height-last-child-4a-dyn.html block-min-height-last-child-4-ref.html -== block-min-height-last-child-4b-dyn.html block-min-height-last-child-4-ref.html -== block-min-height-last-child-4c-dyn.html block-min-height-last-child-4-ref.html -== block-min-height-last-child-5a-dyn.html block-min-height-last-child-5-ref.html -== block-min-height-last-child-5b-dyn.html block-min-height-last-child-5-ref.html -== block-min-height-last-child-6a-dyn.html block-min-height-last-child-6-ref.html -== block-min-height-last-child-6b-dyn.html block-min-height-last-child-6-ref.html -== block-min-height-last-child-6c-dyn.html block-min-height-last-child-6-ref.html -== block-min-height-last-child-7a-dyn.html block-min-height-last-child-7-ref.html -== block-min-height-last-child-7b-dyn.html block-min-height-last-child-7-ref.html -== block-min-height-last-child-7c-dyn.html block-min-height-last-child-7-ref.html -== block-min-height-last-child-8a-dyn.html block-min-height-last-child-8-ref.html -== block-min-height-last-child-8b-dyn.html block-min-height-last-child-8-ref.html -== block-min-height-last-child-9a-dyn.html block-min-height-last-child-9-ref.html -== block-min-height-last-child-9b-dyn.html block-min-height-last-child-9-ref.html -== block-min-height-last-child-9c-dyn.html block-min-height-last-child-9-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-3b-dyn.html block-min-height-last-child-3-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-3c-dyn.html block-min-height-last-child-3-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-4a-dyn.html block-min-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-4b-dyn.html block-min-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-4c-dyn.html block-min-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-5a-dyn.html block-min-height-last-child-5-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-5b-dyn.html block-min-height-last-child-5-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-6a-dyn.html block-min-height-last-child-6-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-6b-dyn.html block-min-height-last-child-6-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-6c-dyn.html block-min-height-last-child-6-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-7a-dyn.html block-min-height-last-child-7-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-7b-dyn.html block-min-height-last-child-7-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-7c-dyn.html block-min-height-last-child-7-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-8a-dyn.html block-min-height-last-child-8-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-8b-dyn.html block-min-height-last-child-8-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-9a-dyn.html block-min-height-last-child-9-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-9b-dyn.html block-min-height-last-child-9-ref.html +random-if(B2G&&browserIsRemote) == block-min-height-last-child-9c-dyn.html block-min-height-last-child-9-ref.html # If a parent box's height is 'auto' and its 'max-height' is not 'none' # then its bottom margin collapses with its last-child's bottom margin. # According to CSS 2.1 §10.7 (Minimum and maximum heights) this is true, @@ -444,30 +444,30 @@ fails == block-max-height-last-child-8b.html block-max-height-last-child-8-ref.h fails == block-max-height-last-child-9a.html block-max-height-last-child-9-ref.html # Bug 616339 == block-max-height-last-child-9b.html block-max-height-last-child-9-ref.html == block-max-height-last-child-9c.html block-max-height-last-child-9-ref.html -== block-max-height-last-child-1a-dyn.html block-max-height-last-child-1-ref.html -== block-max-height-last-child-1b-dyn.html block-max-height-last-child-1-ref.html -== block-max-height-last-child-1c-dyn.html block-max-height-last-child-1-ref.html -== block-max-height-last-child-2a-dyn.html block-max-height-last-child-2-ref.html -== block-max-height-last-child-2b-dyn.html block-max-height-last-child-2-ref.html -== block-max-height-last-child-3a-dyn.html block-max-height-last-child-3-ref.html -== block-max-height-last-child-3b-dyn.html block-max-height-last-child-3-ref.html -== block-max-height-last-child-3c-dyn.html block-max-height-last-child-3-ref.html -== block-max-height-last-child-4a-dyn.html block-max-height-last-child-4-ref.html -== block-max-height-last-child-4b-dyn.html block-max-height-last-child-4-ref.html -== block-max-height-last-child-4c-dyn.html block-max-height-last-child-4-ref.html -== block-max-height-last-child-5a-dyn.html block-max-height-last-child-5-ref.html -== block-max-height-last-child-5b-dyn.html block-max-height-last-child-5-ref.html -== block-max-height-last-child-6a-dyn.html block-max-height-last-child-6-ref.html -== block-max-height-last-child-6b-dyn.html block-max-height-last-child-6-ref.html -== block-max-height-last-child-6c-dyn.html block-max-height-last-child-6-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-1a-dyn.html block-max-height-last-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-1b-dyn.html block-max-height-last-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-1c-dyn.html block-max-height-last-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-2a-dyn.html block-max-height-last-child-2-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-2b-dyn.html block-max-height-last-child-2-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-3a-dyn.html block-max-height-last-child-3-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-3b-dyn.html block-max-height-last-child-3-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-3c-dyn.html block-max-height-last-child-3-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-4a-dyn.html block-max-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-4b-dyn.html block-max-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-4c-dyn.html block-max-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-5a-dyn.html block-max-height-last-child-5-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-5b-dyn.html block-max-height-last-child-5-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-6a-dyn.html block-max-height-last-child-6-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-6b-dyn.html block-max-height-last-child-6-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-6c-dyn.html block-max-height-last-child-6-ref.html fails == block-max-height-last-child-7a-dyn.html block-max-height-last-child-7-ref.html # Bug 616339 -== block-max-height-last-child-7b-dyn.html block-max-height-last-child-7-ref.html -== block-max-height-last-child-7c-dyn.html block-max-height-last-child-7-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-7b-dyn.html block-max-height-last-child-7-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-7c-dyn.html block-max-height-last-child-7-ref.html fails == block-max-height-last-child-8a-dyn.html block-max-height-last-child-8-ref.html # Bug 616339 fails == block-max-height-last-child-8b-dyn.html block-max-height-last-child-8-ref.html # Bug 616339 fails == block-max-height-last-child-9a-dyn.html block-max-height-last-child-9-ref.html # Bug 616339 -== block-max-height-last-child-9b-dyn.html block-max-height-last-child-9-ref.html -== block-max-height-last-child-9c-dyn.html block-max-height-last-child-9-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-9b-dyn.html block-max-height-last-child-9-ref.html +random-if(B2G&&browserIsRemote) == block-max-height-last-child-9c-dyn.html block-max-height-last-child-9-ref.html # If a parent box's height is not 'auto' then its bottom margin # never collapses with its last-child's bottom margin, # as these margins are not considered 'adjoining'. @@ -487,20 +487,20 @@ fails == block-max-height-last-child-9a-dyn.html block-max-height-last-child-9-r == block-fix-height-last-child-4f.html block-fix-height-last-child-4-ref.html == block-fix-height-last-child-4g.html block-fix-height-last-child-4-ref.html == block-fix-height-last-child-4h.html block-fix-height-last-child-4-ref.html -== block-fix-height-last-child-1a-dyn.html block-fix-height-last-child-1-ref.html -== block-fix-height-last-child-1b-dyn.html block-fix-height-last-child-1-ref.html -== block-fix-height-last-child-2a-dyn.html block-fix-height-last-child-2-ref.html -== block-fix-height-last-child-2b-dyn.html block-fix-height-last-child-2-ref.html -== block-fix-height-last-child-3a-dyn.html block-fix-height-last-child-3-ref.html -== block-fix-height-last-child-3b-dyn.html block-fix-height-last-child-3-ref.html -== block-fix-height-last-child-4a-dyn.html block-fix-height-last-child-4-ref.html -== block-fix-height-last-child-4b-dyn.html block-fix-height-last-child-4-ref.html -== block-fix-height-last-child-4c-dyn.html block-fix-height-last-child-4-ref.html -== block-fix-height-last-child-4d-dyn.html block-fix-height-last-child-4-ref.html -== block-fix-height-last-child-4e-dyn.html block-fix-height-last-child-4-ref.html -== block-fix-height-last-child-4f-dyn.html block-fix-height-last-child-4-ref.html -== block-fix-height-last-child-4g-dyn.html block-fix-height-last-child-4-ref.html -== block-fix-height-last-child-4h-dyn.html block-fix-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-1a-dyn.html block-fix-height-last-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-1b-dyn.html block-fix-height-last-child-1-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-2a-dyn.html block-fix-height-last-child-2-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-2b-dyn.html block-fix-height-last-child-2-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-3a-dyn.html block-fix-height-last-child-3-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-3b-dyn.html block-fix-height-last-child-3-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-4a-dyn.html block-fix-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-4b-dyn.html block-fix-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-4c-dyn.html block-fix-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-4d-dyn.html block-fix-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-4e-dyn.html block-fix-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-4f-dyn.html block-fix-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-4g-dyn.html block-fix-height-last-child-4-ref.html +random-if(B2G&&browserIsRemote) == block-fix-height-last-child-4h-dyn.html block-fix-height-last-child-4-ref.html # "Two margins are adjoining if and only if:" [...] # "both belong to vertically-adjacent box edges, # i.e. form one of the following pairs:" [...] @@ -535,26 +535,26 @@ fails == block-max-height-last-child-9a-dyn.html block-max-height-last-child-9-r # child, then the child's bottom margin does not collapse with the parent's # bottom margin." == block-no-content-8.html block-no-content-8-ref.html -== block-no-content-1a-dyn.html block-no-content-1-ref.html -== block-no-content-1b-dyn.html block-no-content-1-ref.html -== block-no-content-1c-dyn.html block-no-content-1-ref.html -== block-no-content-1d-dyn.html block-no-content-1-ref.html -== block-no-content-2a-dyn.html block-no-content-2-ref.html -== block-no-content-2b-dyn.html block-no-content-2-ref.html -== block-no-content-2c-dyn.html block-no-content-2-ref.html -== block-no-content-2d-dyn.html block-no-content-2-ref.html -== block-no-content-2e-dyn.html block-no-content-2-ref.html -== block-no-content-3a-dyn.html block-no-content-3-ref.html -== block-no-content-3b-dyn.html block-no-content-3-ref.html -== block-no-content-3c-dyn.html block-no-content-3-ref.html -== block-no-content-4a-dyn.html block-no-content-4-ref.html -== block-no-content-4b-dyn.html block-no-content-4-ref.html -== block-no-content-4c-dyn.html block-no-content-4-ref.html -== block-no-content-5a-dyn.html block-no-content-5-ref.html -== block-no-content-5b-dyn.html block-no-content-5-ref.html -== block-no-content-6-dyn.html block-no-content-6-ref.html -== block-no-content-7-dyn.html block-no-content-7-ref.html -== block-no-content-8-dyn.html block-no-content-8-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-1a-dyn.html block-no-content-1-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-1b-dyn.html block-no-content-1-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-1c-dyn.html block-no-content-1-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-1d-dyn.html block-no-content-1-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-2a-dyn.html block-no-content-2-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-2b-dyn.html block-no-content-2-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-2c-dyn.html block-no-content-2-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-2d-dyn.html block-no-content-2-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-2e-dyn.html block-no-content-2-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-3a-dyn.html block-no-content-3-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-3b-dyn.html block-no-content-3-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-3c-dyn.html block-no-content-3-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-4a-dyn.html block-no-content-4-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-4b-dyn.html block-no-content-4-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-4c-dyn.html block-no-content-4-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-5a-dyn.html block-no-content-5-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-5b-dyn.html block-no-content-5-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-6-dyn.html block-no-content-6-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-7-dyn.html block-no-content-7-ref.html +random-if(B2G&&browserIsRemote) == block-no-content-8-dyn.html block-no-content-8-ref.html # These tests are similar to the no-content ones, except that some boxes # have height: 0; declared on them. == block-zero-height-1a.html block-zero-height-1a-ref.html @@ -587,8 +587,8 @@ skip-if(B2G) == block-overflow-4.html block-overflow-4-ref2.html == block-overflow-5c.html block-overflow-5c-ref2.html == block-overflow-5d.html block-overflow-5-ref.html == block-overflow-5d.html block-overflow-5-ref2.html -== block-overflow-1-dyn.html block-overflow-1-ref2.html -== block-overflow-2-dyn.html block-overflow-2-ref2.html +random-if(B2G&&browserIsRemote) == block-overflow-1-dyn.html block-overflow-1-ref2.html +random-if(B2G&&browserIsRemote) == block-overflow-2-dyn.html block-overflow-2-ref2.html skip-if(B2G) == block-overflow-3-dyn.html block-overflow-3-ref2.html # bug 773482 skip-if(B2G) == block-overflow-4-dyn.html block-overflow-4-ref2.html == block-overflow-5a-dyn.html block-overflow-5-ref2.html @@ -598,23 +598,23 @@ skip-if(B2G) == block-overflow-4-dyn.html block-overflow-4-ref2.html # * 'fieldset' elements, per HTML5 (Candidate Recommendation 6 August 2013): # §10.3.13 (The fieldset and legend elements): "The fieldset element is # expected to establish a new block formatting context." -== fieldset-sibling-1a.html fieldset-sibling-1-ref.html -== fieldset-sibling-1b.html fieldset-sibling-1-ref.html -== fieldset-sibling-1c.html fieldset-sibling-1-ref.html -== fieldset-sibling-2a.html fieldset-sibling-2-ref1.html -== fieldset-sibling-2b.html fieldset-sibling-2-ref1.html -== fieldset-sibling-2c.html fieldset-sibling-2-ref1.html -== fieldset-sibling-2a.html fieldset-sibling-2-ref2.html -== fieldset-sibling-2b.html fieldset-sibling-2-ref2.html -== fieldset-sibling-2c.html fieldset-sibling-2-ref2.html -== fieldset-sibling-1a-dyn.html fieldset-sibling-1-ref.html -== fieldset-sibling-1b-dyn.html fieldset-sibling-1-ref.html -== fieldset-sibling-1c-dyn.html fieldset-sibling-1-ref.html -== fieldset-sibling-2a-dyn.html fieldset-sibling-2-ref2.html -== fieldset-sibling-2b-dyn.html fieldset-sibling-2-ref2.html -== fieldset-sibling-2c-dyn.html fieldset-sibling-2-ref2.html -== fieldset-child-1.html fieldset-child-1-ref.html -== fieldset-child-1-dyn.html fieldset-child-1-ref.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-1a.html fieldset-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-1b.html fieldset-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-1c.html fieldset-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-2a.html fieldset-sibling-2-ref1.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-2b.html fieldset-sibling-2-ref1.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-2c.html fieldset-sibling-2-ref1.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-2a.html fieldset-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-2b.html fieldset-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-2c.html fieldset-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-1a-dyn.html fieldset-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-1b-dyn.html fieldset-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-1c-dyn.html fieldset-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-2a-dyn.html fieldset-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-2b-dyn.html fieldset-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == fieldset-sibling-2c-dyn.html fieldset-sibling-2-ref2.html +random-if(B2G&&browserIsRemote) == fieldset-child-1.html fieldset-child-1-ref.html +random-if(B2G&&browserIsRemote) == fieldset-child-1-dyn.html fieldset-child-1-ref.html # * Tables, per CSS 2.1 §17.4 (Tables in the visual formatting model): # "The table wrapper box establishes a block formatting context." # "The table wrapper box is a 'block' box if the table is block-level [...]" @@ -656,12 +656,12 @@ skip-if(B2G) == table-sibling-3-dyn.html table-sibling-3-ref.html # bug 773482 == table-caption-2a.html table-caption-2-ref.html == table-caption-2b.html table-caption-2-ref.html == table-caption-2c.html table-caption-2-ref.html -== table-caption-1a-dyn.html table-caption-1-ref.html -== table-caption-1b-dyn.html table-caption-1-ref.html -== table-caption-1c-dyn.html table-caption-1-ref.html -== table-caption-2a-dyn.html table-caption-2-ref.html -== table-caption-2b-dyn.html table-caption-2-ref.html -== table-caption-2c-dyn.html table-caption-2-ref.html +random-if(B2G&&browserIsRemote) == table-caption-1a-dyn.html table-caption-1-ref.html +random-if(B2G&&browserIsRemote) == table-caption-1b-dyn.html table-caption-1-ref.html +random-if(B2G&&browserIsRemote) == table-caption-1c-dyn.html table-caption-1-ref.html +random-if(B2G&&browserIsRemote) == table-caption-2a-dyn.html table-caption-2-ref.html +random-if(B2G&&browserIsRemote) == table-caption-2b-dyn.html table-caption-2-ref.html +random-if(B2G&&browserIsRemote) == table-caption-2c-dyn.html table-caption-2-ref.html # Note: CSS 2.1 suggests that the 'caption-side' values 'top-outside' and # 'bottom-outside' will be used in a future CSS Module to restore the # CSS 2 definition of 'top' and 'bottom' (which is different from CSS 2.1's). @@ -675,14 +675,14 @@ skip-if(B2G) == table-sibling-3-dyn.html table-sibling-3-ref.html # bug 773482 == table-caption-bottom-2.html table-caption-bottom-2-ref.html == table-caption-bottom-outside-1.html table-caption-bottom-1-ref.html == table-caption-bottom-outside-2.html table-caption-bottom-1-ref.html -== table-caption-top-1-dyn.html table-caption-top-1-ref.html -== table-caption-top-2-dyn.html table-caption-top-1-ref.html -== table-caption-top-outside-1-dyn.html table-caption-top-1-ref.html -== table-caption-top-outside-2-dyn.html table-caption-top-2-ref.html -== table-caption-bottom-1-dyn.html table-caption-bottom-1-ref.html -== table-caption-bottom-2-dyn.html table-caption-bottom-1-ref.html -== table-caption-bottom-outside-1-dyn.html table-caption-bottom-1-ref.html -== table-caption-bottom-outside-2-dyn.html table-caption-bottom-1-ref.html +random-if(B2G&&browserIsRemote) == table-caption-top-1-dyn.html table-caption-top-1-ref.html +random-if(B2G&&browserIsRemote) == table-caption-top-2-dyn.html table-caption-top-1-ref.html +random-if(B2G&&browserIsRemote) == table-caption-top-outside-1-dyn.html table-caption-top-1-ref.html +random-if(B2G&&browserIsRemote) == table-caption-top-outside-2-dyn.html table-caption-top-2-ref.html +random-if(B2G&&browserIsRemote) == table-caption-bottom-1-dyn.html table-caption-bottom-1-ref.html +random-if(B2G&&browserIsRemote) == table-caption-bottom-2-dyn.html table-caption-bottom-1-ref.html +random-if(B2G&&browserIsRemote) == table-caption-bottom-outside-1-dyn.html table-caption-bottom-1-ref.html +random-if(B2G&&browserIsRemote) == table-caption-bottom-outside-2-dyn.html table-caption-bottom-1-ref.html fails == caption-sibling-1a.html caption-sibling-1-ref.html # Bug 144517 != caption-sibling-1a.html caption-sibling-1-noref.html fails == caption-sibling-1b.html caption-sibling-1-ref.html # Bug 144517 @@ -705,17 +705,17 @@ fails == caption-sibling-2-dyn.html caption-sibling-2-ref.html # Bug 144517 == column-sibling-1a.html column-sibling-1-ref.html == column-sibling-1b.html column-sibling-1-ref.html == column-sibling-1c.html column-sibling-1-ref.html -== column-sibling-1a-dyn.html column-sibling-1-ref.html -== column-sibling-1b-dyn.html column-sibling-1-ref.html -== column-sibling-1c-dyn.html column-sibling-1-ref.html -== column-sibling-2a.html column-sibling-2-ref.html -== column-sibling-2b.html column-sibling-2-ref.html -== column-sibling-2c.html column-sibling-2-ref.html -== column-sibling-2a-dyn.html column-sibling-2-ref.html -== column-sibling-2b-dyn.html column-sibling-2-ref.html -== column-sibling-2c-dyn.html column-sibling-2-ref.html -== column-child-1.html column-child-1-ref.html -== column-child-1-dyn.html column-child-1-ref.html +random-if(B2G&&browserIsRemote) == column-sibling-1a-dyn.html column-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == column-sibling-1b-dyn.html column-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == column-sibling-1c-dyn.html column-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == column-sibling-2a.html column-sibling-2-ref.html +random-if(B2G&&browserIsRemote) == column-sibling-2b.html column-sibling-2-ref.html +random-if(B2G&&browserIsRemote) == column-sibling-2c.html column-sibling-2-ref.html +random-if(B2G&&browserIsRemote) == column-sibling-2a-dyn.html column-sibling-2-ref.html +random-if(B2G&&browserIsRemote) == column-sibling-2b-dyn.html column-sibling-2-ref.html +random-if(B2G&&browserIsRemote) == column-sibling-2c-dyn.html column-sibling-2-ref.html +random-if(B2G&&browserIsRemote) == column-child-1.html column-child-1-ref.html +random-if(B2G&&browserIsRemote) == column-child-1-dyn.html column-child-1-ref.html # * inline-block boxes # "Margins of inline-block boxes do not collapse # (not even with their in-flow children)." @@ -724,25 +724,25 @@ fails == caption-sibling-2-dyn.html caption-sibling-2-ref.html # Bug 144517 == inline-block-sibling-1c.html inline-block-sibling-1-ref.html == inline-block-sibling-2.html inline-block-sibling-2-ref.html != inline-block-sibling-2.html inline-block-sibling-2-noref.html -== inline-block-sibling-1a-dyn.html inline-block-sibling-1-ref.html -== inline-block-sibling-1b-dyn.html inline-block-sibling-1-ref.html -== inline-block-sibling-1c-dyn.html inline-block-sibling-1-ref.html -== inline-block-sibling-2-dyn.html inline-block-sibling-2-ref.html +random-if(B2G&&browserIsRemote) == inline-block-sibling-1a-dyn.html inline-block-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == inline-block-sibling-1b-dyn.html inline-block-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == inline-block-sibling-1c-dyn.html inline-block-sibling-1-ref.html +random-if(B2G&&browserIsRemote) == inline-block-sibling-2-dyn.html inline-block-sibling-2-ref.html == inline-block-child-1.html inline-block-child-1-ref.html == inline-block-child-2.html inline-block-child-2-ref.html != inline-block-child-2.html inline-block-child-2-noref.html == inline-block-child-3.html inline-block-child-3-ref.html == inline-block-child-1-dyn.html inline-block-child-1-ref.html -== inline-block-child-2-dyn.html inline-block-child-2-ref.html -== inline-block-child-3-dyn.html inline-block-child-3-ref.html +random-if(B2G&&browserIsRemote) == inline-block-child-2-dyn.html inline-block-child-2-ref.html +random-if(B2G&&browserIsRemote) == inline-block-child-3-dyn.html inline-block-child-3-ref.html # * absolutely positioned elements # "Margins of absolutely positioned boxes do not collapse # (not even with their in-flow children)." == block-abs-pos-1.html block-abs-pos-1-ref.html == block-abs-pos-2.html block-abs-pos-2-ref.html == block-abs-pos-2.html block-abs-pos-2-ref2.html -== block-abs-pos-1-dyn.html block-abs-pos-1-ref.html -== block-abs-pos-2-dyn.html block-abs-pos-2-ref2.html +random-if(B2G&&browserIsRemote) == block-abs-pos-1-dyn.html block-abs-pos-1-ref.html +random-if(B2G&&browserIsRemote) == block-abs-pos-2-dyn.html block-abs-pos-2-ref2.html # * Floats # "Margins between a floated box and any other box do not collapse # (not even between a float and its in-flow children)." @@ -758,12 +758,12 @@ fails == caption-sibling-2-dyn.html caption-sibling-2-ref.html # Bug 144517 != block-float-2b.html block-float-2b-noref.html == block-float-3a.html block-float-3a-ref.html == block-float-3b.html block-float-3b-ref.html -== block-float-1a-dyn.html block-float-1a-ref.html -== block-float-1b-dyn.html block-float-1b-ref.html -== block-float-2a-dyn.html block-float-2a-ref.html -== block-float-2b-dyn.html block-float-2b-ref.html -== block-float-3a-dyn.html block-float-3a-ref.html -== block-float-3b-dyn.html block-float-3b-ref.html +random-if(B2G&&browserIsRemote) == block-float-1a-dyn.html block-float-1a-ref.html +random-if(B2G&&browserIsRemote) == block-float-1b-dyn.html block-float-1b-ref.html +random-if(B2G&&browserIsRemote) == block-float-2a-dyn.html block-float-2a-ref.html +random-if(B2G&&browserIsRemote) == block-float-2b-dyn.html block-float-2b-ref.html +random-if(B2G&&browserIsRemote) == block-float-3a-dyn.html block-float-3a-ref.html +random-if(B2G&&browserIsRemote) == block-float-3b-dyn.html block-float-3b-ref.html # Tests for various cases where clearance is applied and collapsing is # prevented or only allows for certain margins. fails == block-clear-1a.html block-clear-1a-ref.html # Bug 451791 @@ -853,11 +853,11 @@ fails == block-clear-7g-left.html block-clear-7efgh-left-ref2.html # Bug 493380 != block-html-body-1.html block-html-body-1-noref.html # Some basic tests for margins given in percent and em. == block-percent-1.html block-percent-1-ref.html -== block-percent-1-dyn.html block-percent-1-ref.html -== block-percent-2.html block-percent-2-ref.html -== block-percent-2-dyn.html block-percent-2-ref.html +random-if(B2G&&browserIsRemote) == block-percent-1-dyn.html block-percent-1-ref.html +random-if(B2G&&browserIsRemote) == block-percent-2.html block-percent-2-ref.html +random-if(B2G&&browserIsRemote) == block-percent-2-dyn.html block-percent-2-ref.html == block-em-length-1.html block-em-length-1-ref.html -== block-em-length-1-dyn.html block-em-length-1-ref.html +random-if(B2G&&browserIsRemote) == block-em-length-1-dyn.html block-em-length-1-ref.html # Other tests. == dynamic-add-text-1.html dynamic-add-text-1-ref.html # Bug 467321 == scrollable-vertical-margin.html scrollable-vertical-margin-ref.html diff --git a/layout/reftests/marquee/reftest.list b/layout/reftests/marquee/reftest.list index ebc7dd69f39c..e78b8ed8af4a 100644 --- a/layout/reftests/marquee/reftest.list +++ b/layout/reftests/marquee/reftest.list @@ -1,4 +1,4 @@ -== 166591-dynamic-1.html 166591-dynamic-1-ref.html +fails-if(B2G&&browserIsRemote) == 166591-dynamic-1.html 166591-dynamic-1-ref.html fuzzy-if(Android&&AndroidVersion>=15,8,50) == 336736-1a.html 336736-1-ref.html fuzzy-if(Android&&AndroidVersion>=15,8,50) == 336736-1b.html 336736-1-ref.html == 406073-1.html 406073-1-ref.html diff --git a/layout/reftests/mathml/reftest.list b/layout/reftests/mathml/reftest.list index d8599c4ffcdb..f85a07794b8f 100644 --- a/layout/reftests/mathml/reftest.list +++ b/layout/reftests/mathml/reftest.list @@ -8,12 +8,12 @@ fails == dir-8.html dir-8-ref.html fails == dir-9.html dir-9-ref.html # Bug 787215 == dir-10.html dir-10-ref.html -== dir-11.html dir-11-ref.html +random-if(B2G&&browserIsRemote) == dir-11.html dir-11-ref.html == displaystyle-1.html displaystyle-1-ref.html == displaystyle-2.html displaystyle-2-ref.html == displaystyle-3.html displaystyle-3-ref.html -== displaystyle-4.html displaystyle-4-ref.html -skip-if(B2G) fails-if(smallScreen&&Android) fuzzy(255,200) == mirror-op-1.html mirror-op-1-ref.html +random-if(B2G&&browserIsRemote) == displaystyle-4.html displaystyle-4-ref.html +skip-if(B2G&&browserIsRemote) random-if(smallScreen&&Android) fuzzy(255,200) == mirror-op-1.html mirror-op-1-ref.html != mirror-op-2.html mirror-op-2-ref.html != mirror-op-3.html mirror-op-3-ref.html != mirror-op-4.html mirror-op-4-ref.html @@ -69,7 +69,7 @@ skip-if(B2G) == quotes-1.xhtml quotes-1-ref.xhtml == embellished-op-4-3.html embellished-op-4-3-ref.html == embellished-op-5-1.html embellished-op-5-ref.html == embellished-op-5-2.html embellished-op-5-ref.html -fails-if(winWidget&&!/^Windows\x20NT\x205\.1/.test(http.oscpu)) == semantics-1.xhtml semantics-1-ref.xhtml # Windows versions with Cambria Math +random-if(winWidget&&!/^Windows\x20NT\x205\.1/.test(http.oscpu)) == semantics-1.xhtml semantics-1-ref.xhtml # Windows versions with Cambria Math == semantics-2.html semantics-2-ref.html == semantics-3.html semantics-3-ref.html != mathcolor-1.xml mathcolor-1-ref.xml @@ -99,9 +99,9 @@ fails-if(winWidget&&!/^Windows\x20NT\x205\.1/.test(http.oscpu)) == semantics-1.x == mpadded-5.html mpadded-5-ref.html == mpadded-1-2.html mpadded-1-2-ref.html == mpadded-6.html mpadded-6-ref.html -fails-if(B2G) == mpadded-7.html mpadded-7-ref.html # B2G: slight character width variation -fails-if(B2G) == mpadded-8.html mpadded-8-ref.html # B2G: slight character width variation -fails-if(B2G) == mpadded-9.html mpadded-9-ref.html # B2G: slight character width variation +random-if(B2G&&browserIsRemote) == mpadded-7.html mpadded-7-ref.html # B2G: slight character width variation +random-if(B2G&&browserIsRemote) == mpadded-8.html mpadded-8-ref.html # B2G: slight character width variation +random-if(B2G&&browserIsRemote) == mpadded-9.html mpadded-9-ref.html # B2G: slight character width variation == math-display.html math-display-ref.html == scriptlevel-1.html scriptlevel-1-ref.html == scriptlevel-movablelimits-1.html scriptlevel-movablelimits-1-ref.html @@ -119,24 +119,24 @@ fails-if(B2G) == mpadded-9.html mpadded-9-ref.html # B2G: slight character width == positive-namedspace.html positive-namedspace-ref.html == mtable-align-whitespace.html mtable-align-whitespace-ref.html == mtable-width.html mtable-width-ref.html -== mtable-rowlines-single-mtable-dynamic.html mtable-rowlines-single-ref.html -== mtable-rowlines-multi-mtable-dynamic.html mtable-rowlines-multi-ref.html -== mtable-rowalign-single-mtr.html mtable-rowalign-single-ref.html -== mtable-rowalign-single-mtr-dynamic.html mtable-rowalign-single-ref.html -== mtable-rowalign-single-mtable.html mtable-rowalign-single-ref.html -== mtable-rowalign-single-mtable-dynamic.html mtable-rowalign-single-ref.html -== mtable-rowalign-multi-mtable.html mtable-rowalign-multi-ref.html -== mtable-rowalign-multi-mtable-dynamic.html mtable-rowalign-multi-ref.html -== mtable-columnlines-single-mtable-dynamic.html mtable-columnlines-single-ref.html -== mtable-columnlines-multi-mtable-dynamic.html mtable-columnlines-multi-ref.html +random-if(B2G&&browserIsRemote) == mtable-rowlines-single-mtable-dynamic.html mtable-rowlines-single-ref.html +random-if(B2G&&browserIsRemote) == mtable-rowlines-multi-mtable-dynamic.html mtable-rowlines-multi-ref.html +random-if(B2G&&browserIsRemote) == mtable-rowalign-single-mtr.html mtable-rowalign-single-ref.html +random-if(B2G&&browserIsRemote) == mtable-rowalign-single-mtr-dynamic.html mtable-rowalign-single-ref.html +random-if(B2G&&browserIsRemote) == mtable-rowalign-single-mtable.html mtable-rowalign-single-ref.html +random-if(B2G&&browserIsRemote) == mtable-rowalign-single-mtable-dynamic.html mtable-rowalign-single-ref.html +random-if(B2G&&browserIsRemote) == mtable-rowalign-multi-mtable.html mtable-rowalign-multi-ref.html +random-if(B2G&&browserIsRemote) == mtable-rowalign-multi-mtable-dynamic.html mtable-rowalign-multi-ref.html +random-if(B2G&&browserIsRemote) == mtable-columnlines-single-mtable-dynamic.html mtable-columnlines-single-ref.html +random-if(B2G&&browserIsRemote) == mtable-columnlines-multi-mtable-dynamic.html mtable-columnlines-multi-ref.html == mtable-columnalign-single-mtr.html mtable-columnalign-single-ref.html -== mtable-columnalign-single-mtr-dynamic.html mtable-columnalign-single-ref.html +random-if(B2G&&browserIsRemote) == mtable-columnalign-single-mtr-dynamic.html mtable-columnalign-single-ref.html == mtable-columnalign-single-mtable.html mtable-columnalign-single-ref.html -== mtable-columnalign-single-mtable-dynamic.html mtable-columnalign-single-ref.html -== mtable-columnalign-multi-mtr.html mtable-columnalign-multi-ref.html -== mtable-columnalign-multi-mtr-dynamic.html mtable-columnalign-multi-ref.html -== mtable-columnalign-multi-mtable.html mtable-columnalign-multi-ref.html -== mtable-columnalign-multi-mtable-dynamic.html mtable-columnalign-multi-ref.html +random-if(B2G&&browserIsRemote) == mtable-columnalign-single-mtable-dynamic.html mtable-columnalign-single-ref.html +random-if(B2G&&browserIsRemote) == mtable-columnalign-multi-mtr.html mtable-columnalign-multi-ref.html +random-if(B2G&&browserIsRemote) == mtable-columnalign-multi-mtr-dynamic.html mtable-columnalign-multi-ref.html +random-if(B2G&&browserIsRemote) == mtable-columnalign-multi-mtable.html mtable-columnalign-multi-ref.html +random-if(B2G&&browserIsRemote) == mtable-columnalign-multi-mtable-dynamic.html mtable-columnalign-multi-ref.html == maction-selection.html maction-selection-ref.html == maction-dynamic-embellished-op.html maction-dynamic-embellished-op-ref.html skip-if(B2G) == maction-dynamic-1.html maction-dynamic-1-ref.html # bug 773482 @@ -153,11 +153,11 @@ skip-if(B2G) == maction-dynamic-3.html maction-dynamic-3-ref.html # bug 773482 == whitespace-trim-3.html whitespace-trim-3-ref.html fails == whitespace-trim-4.html whitespace-trim-4-ref.html # Bug 787215 == whitespace-trim-5.html whitespace-trim-5-ref.html -fails-if(winWidget&&!d2d) == opentype-stretchy.html opentype-stretchy-ref.html +random-if(winWidget&&!d2d) == opentype-stretchy.html opentype-stretchy-ref.html == operator-1.xhtml operator-1-ref.xhtml == scriptshift-1.xhtml scriptshift-1-ref.xhtml == number-size-1.xhtml number-size-1-ref.xhtml -fails-if(B2G) == multiscripts-1.html multiscripts-1-ref.html # B2G - slight height variation from font metrics +random-if(B2G&&browserIsRemote) == multiscripts-1.html multiscripts-1-ref.html # B2G - slight height variation from font metrics == mathml-mmultiscript-base.html mathml-mmultiscript-base-ref.html == mathml-mmultiscript-mprescript.html mathml-mmultiscript-mprescript-ref.html != menclose-1a.html menclose-1-ref.html @@ -180,7 +180,7 @@ fails-if(B2G) == multiscripts-1.html multiscripts-1-ref.html # B2G - slight heig fails-if(B2G) == menclose-2-actuarial.html menclose-2-actuarial-ref.html # B2G slight thickness variation == menclose-2-bottom.html menclose-2-bottom-ref.html fails-if(B2G) == menclose-2-box.html menclose-2-box-ref.html # B2G slight thickness variation -== menclose-2-circle.html menclose-2-circle-ref.html +fails-if(B2G) == menclose-2-circle.html menclose-2-circle-ref.html == menclose-2-downdiagonalstrike.html menclose-2-downdiagonalstrike-ref.html == menclose-2-horizontalstrike.html menclose-2-horizontalstrike-ref.html fails-if(B2G) == menclose-2-left.html menclose-2-left-ref.html # B2G slight thickness variation @@ -200,41 +200,41 @@ fails-if(B2G||Android||OSX==10.6) == menclose-3-radical.html menclose-3-radical- == menclose-3-invalid.html menclose-3-invalid-ref.html == menclose-3-multiple.html menclose-3-multiple-ref.html == menclose-3-unknown.html menclose-3-unknown.html -== menclose-4.html data:text/html,Pass -== menclose-5-actuarial.html menclose-5-actuarial-ref.html -== menclose-5-bottom.html menclose-5-bottom-ref.html -== menclose-5-box.html menclose-5-box-ref.html -fuzzy-if(OSX,1,100) == menclose-5-circle.html menclose-5-circle-ref.html -== menclose-5-downdiagonalstrike.html menclose-5-downdiagonalstrike-ref.html -== menclose-5-horizontalstrike.html menclose-5-horizontalstrike-ref.html -== menclose-5-left.html menclose-5-left-ref.html +fails-if(B2G&&browserIsRemote) == menclose-4.html data:text/html,Pass +fails-if(B2G&&browserIsRemote) == menclose-5-actuarial.html menclose-5-actuarial-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-bottom.html menclose-5-bottom-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-box.html menclose-5-box-ref.html +fuzzy-if(OSX,1,100) fails-if(B2G&&browserIsRemote) == menclose-5-circle.html menclose-5-circle-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-downdiagonalstrike.html menclose-5-downdiagonalstrike-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-horizontalstrike.html menclose-5-horizontalstrike-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-left.html menclose-5-left-ref.html == menclose-5-longdiv.html menclose-5-longdiv-ref.html -== menclose-5-madruwb.html menclose-5-madruwb-ref.html -== menclose-5-radical.html menclose-5-radical-ref.html -== menclose-5-right.html menclose-5-right-ref.html -== menclose-5-roundedbox.html menclose-5-roundedbox-ref.html -== menclose-5-top.html menclose-5-top-ref.html -== menclose-5-updiagonalarrow.html menclose-5-updiagonalarrow-ref.html -== menclose-5-updiagonalstrike.html menclose-5-updiagonalstrike-ref.html -== menclose-5-verticalstrike.html menclose-5-verticalstrike-ref.html -== menclose-5-phasorangle.html menclose-5-phasorangle-ref.html -== menclose-6-actuarial.html menclose-6-ref.html -== menclose-6-bottom.html menclose-6-ref.html -== menclose-6-box.html menclose-6-ref.html -== menclose-6-circle.html menclose-6-ref.html -== menclose-6-downdiagonalstrike.html menclose-6-ref.html -== menclose-6-horizontalstrike.html menclose-6-ref.html -== menclose-6-left.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-madruwb.html menclose-5-madruwb-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-radical.html menclose-5-radical-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-right.html menclose-5-right-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-roundedbox.html menclose-5-roundedbox-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-top.html menclose-5-top-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-updiagonalarrow.html menclose-5-updiagonalarrow-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-updiagonalstrike.html menclose-5-updiagonalstrike-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-verticalstrike.html menclose-5-verticalstrike-ref.html +fails-if(B2G&&browserIsRemote) == menclose-5-phasorangle.html menclose-5-phasorangle-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-actuarial.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-bottom.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-box.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-circle.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-downdiagonalstrike.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-horizontalstrike.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-left.html menclose-6-ref.html == menclose-6-longdiv.html menclose-6-ref.html -== menclose-6-madruwb.html menclose-6-ref.html -== menclose-6-radical.html menclose-6-ref.html -== menclose-6-right.html menclose-6-ref.html -== menclose-6-roundedbox.html menclose-6-ref.html -== menclose-6-top.html menclose-6-ref.html -== menclose-6-updiagonalarrow.html menclose-6-ref.html -== menclose-6-updiagonalstrike.html menclose-6-ref.html -== menclose-6-verticalstrike.html menclose-6-ref.html -== menclose-6-phasorangle.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-madruwb.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-radical.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-right.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-roundedbox.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-top.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-updiagonalarrow.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-updiagonalstrike.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-verticalstrike.html menclose-6-ref.html +fails-if(B2G&&browserIsRemote) == menclose-6-phasorangle.html menclose-6-ref.html == mmultiscript-align.html mmultiscript-align-ref.html fails-if(winWidget&&!/^Windows\x20NT\x205\.1/.test(http.oscpu)) == subscript-italic-correction.html subscript-italic-correction-ref.html # Windows versions with Cambria Math, bug 961482 fails-if(B2G||Android||/^Windows\x20NT\x205\.1/.test(http.oscpu)||OSX==10.6) == mathvariant-1a.html mathvariant-1a-ref.html # Bug 1010679 @@ -244,17 +244,17 @@ fails-if(B2G||Android||/^Windows\x20NT\x205\.1/.test(http.oscpu)||OSX==10.6) == fails-if(B2G||Android||/^Windows\x20NT\x205\.1/.test(http.oscpu)||OSX) == mathvariant-2.html mathvariant-2-ref.html # Bugs 1010678, 1010679 == mathvariant-3.html mathvariant-3-ref.html == mathvariant-4.html mathvariant-4-ref.html -== mathvariant-5.html mathvariant-5-ref.html +random-if(B2G&&browserIsRemote) == mathvariant-5.html mathvariant-5-ref.html == ssty-1.html ssty-1-ref.html == ssty-2.html ssty-2-ref.html == ssty-3.html ssty-3-ref.html -== ssty-4.html ssty-4-ref.html +random-if(B2G&&browserIsRemote) == ssty-4.html ssty-4-ref.html == mathscript-1.html mathscript-1-ref.html == mathscript-2.html mathscript-2-ref.html -== mo-accent-dynamic.html mo-accent-dynamic-ref.html -== mo-movablelimits-dynamic.html mo-movablelimits-dynamic-ref.html -== munderover-accent-dynamic.html munderover-accent-dynamic-ref.html -== munderover-accentunder-dynamic.html munderover-accentunder-dynamic-ref.html +random-if(B2G&&browserIsRemote) == mo-accent-dynamic.html mo-accent-dynamic-ref.html +random-if(B2G&&browserIsRemote) == mo-movablelimits-dynamic.html mo-movablelimits-dynamic-ref.html +random-if(B2G&&browserIsRemote) == munderover-accent-dynamic.html munderover-accent-dynamic-ref.html +random-if(B2G&&browserIsRemote) == munderover-accentunder-dynamic.html munderover-accentunder-dynamic-ref.html == columnlines-1a.html columnlines-1-ref.html != columnlines-1b.html columnlines-1-ref.html != columnlines-1c.html columnlines-1-ref.html @@ -290,19 +290,19 @@ fails-if(B2G||Android||/^Windows\x20NT\x205\.1/.test(http.oscpu)||OSX) == mathva == mfrac-A-6.html mfrac-A-6-ref.html == mfrac-A-7.html mfrac-A-7-ref.html == mfrac-A-8.html mfrac-A-8-ref.html -== mfrac-B-1.html mfrac-B-1-ref.html -== mfrac-B-2.html mfrac-B-2-3-ref.html -== mfrac-B-3.html mfrac-B-2-3-ref.html -== mfrac-B-4.html mfrac-B-4-5-ref.html -== mfrac-B-5.html mfrac-B-4-5-ref.html -== mfrac-B-6.html mfrac-B-6-7-ref.html -== mfrac-B-7.html mfrac-B-6-7-ref.html -fuzzy-if(OSX,1,100) == mfrac-C-1.html mfrac-C-1-ref.html -== mfrac-C-2.html mfrac-C-2-ref.html -== mfrac-C-3.html mfrac-C-3-ref.html -== mfrac-C-4.html mfrac-C-4-ref.html -fuzzy-if(OSX,1,100) == mfrac-D-1.html mfrac-D-1-ref.html -== mfrac-D-2.html mfrac-D-2-ref.html -== mfrac-D-3.html mfrac-D-3-ref.html -== mfrac-D-4.html mfrac-D-4-ref.html -== mfrac-E-1.html mfrac-E-1-ref.html +random-if(B2G&&browserIsRemote) == mfrac-B-1.html mfrac-B-1-ref.html +random-if(B2G&&browserIsRemote) == mfrac-B-2.html mfrac-B-2-3-ref.html +random-if(B2G&&browserIsRemote) == mfrac-B-3.html mfrac-B-2-3-ref.html +random-if(B2G&&browserIsRemote) == mfrac-B-4.html mfrac-B-4-5-ref.html +random-if(B2G&&browserIsRemote) == mfrac-B-5.html mfrac-B-4-5-ref.html +random-if(B2G&&browserIsRemote) == mfrac-B-6.html mfrac-B-6-7-ref.html +random-if(B2G&&browserIsRemote) == mfrac-B-7.html mfrac-B-6-7-ref.html +fuzzy-if(OSX,1,100) random-if(B2G&&browserIsRemote) == mfrac-C-1.html mfrac-C-1-ref.html +random-if(B2G&&browserIsRemote) == mfrac-C-2.html mfrac-C-2-ref.html +random-if(B2G&&browserIsRemote) == mfrac-C-3.html mfrac-C-3-ref.html +random-if(B2G&&browserIsRemote) == mfrac-C-4.html mfrac-C-4-ref.html +fuzzy-if(OSX,1,100) random-if(B2G&&browserIsRemote) == mfrac-D-1.html mfrac-D-1-ref.html +random-if(B2G&&browserIsRemote) == mfrac-D-2.html mfrac-D-2-ref.html +random-if(B2G&&browserIsRemote) == mfrac-D-3.html mfrac-D-3-ref.html +random-if(B2G&&browserIsRemote) == mfrac-D-4.html mfrac-D-4-ref.html +random-if(B2G&&browserIsRemote) == mfrac-E-1.html mfrac-E-1-ref.html diff --git a/layout/reftests/object/reftest.list b/layout/reftests/object/reftest.list index c5243643f5f5..a58278b74587 100644 --- a/layout/reftests/object/reftest.list +++ b/layout/reftests/object/reftest.list @@ -54,4 +54,4 @@ fails == svg-with-type.html svg-with-type-ref.html # XXX missing test 034 from http://biesi.damowmow.com/object/ here; would # need to require Flash on the test machine to run them # -== malformed-uri.html malformed-uri-ref.html +random-if(B2G&&browserIsRemote) == malformed-uri.html malformed-uri-ref.html diff --git a/layout/reftests/position-dynamic-changes/horizontal/reftest_border_abspos.list b/layout/reftests/position-dynamic-changes/horizontal/reftest_border_abspos.list index ae3f3b8bcb6c..82df87f61676 100644 --- a/layout/reftests/position-dynamic-changes/horizontal/reftest_border_abspos.list +++ b/layout/reftests/position-dynamic-changes/horizontal/reftest_border_abspos.list @@ -1,13 +1,12 @@ # Please see the comment at the beginning of reftest.list - -== leftN-widthA-rightA.html?border_abspos leftN-widthA-rightA-ref.html?border_abspos -== leftN-widthA-rightA-2.html?border_abspos leftN-widthA-rightA-2-ref.html?border_abspos -== leftN-widthA-rightN.html?border_abspos leftN-widthA-rightN-ref.html?border_abspos -== leftN-widthA-rightN-2.html?border_abspos leftN-widthA-rightN-2-ref.html?border_abspos -== leftA-widthN-rightA.html?border_abspos leftA-widthN-rightA-ref.html?border_abspos -== leftN-widthN-rightA.html?border_abspos leftN-widthN-rightA-ref.html?border_abspos -== leftA-widthN-rightN.html?border_abspos leftA-widthN-rightN-ref.html?border_abspos -== leftA-widthA-rightN.html?border_abspos leftA-widthA-rightN-ref.html?border_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA.html?border_abspos leftN-widthA-rightA-ref.html?border_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA-2.html?border_abspos leftN-widthA-rightA-2-ref.html?border_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN.html?border_abspos leftN-widthA-rightN-ref.html?border_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN-2.html?border_abspos leftN-widthA-rightN-2-ref.html?border_abspos +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightA.html?border_abspos leftA-widthN-rightA-ref.html?border_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthN-rightA.html?border_abspos leftN-widthN-rightA-ref.html?border_abspos +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightN.html?border_abspos leftA-widthN-rightN-ref.html?border_abspos +fails-if(B2G&&browserIsRemote) == leftA-widthA-rightN.html?border_abspos leftA-widthA-rightN-ref.html?border_abspos == toauto-leftN-widthA-rightA.html?border_abspos toauto-leftN-widthA-rightA-ref.html?border_abspos == toauto-leftN-widthA-rightA-2.html?border_abspos toauto-leftN-widthA-rightA-2-ref.html?border_abspos == toauto-leftN-widthA-rightN.html?border_abspos toauto-leftN-widthA-rightN-ref.html?border_abspos diff --git a/layout/reftests/position-dynamic-changes/horizontal/reftest_border_parent.list b/layout/reftests/position-dynamic-changes/horizontal/reftest_border_parent.list index 3de9d1a7c8cb..f76f626c39d4 100644 --- a/layout/reftests/position-dynamic-changes/horizontal/reftest_border_parent.list +++ b/layout/reftests/position-dynamic-changes/horizontal/reftest_border_parent.list @@ -1,13 +1,13 @@ # Please see the comment at the beginning of reftest.list -== leftN-widthA-rightA.html?border_parent leftN-widthA-rightA-ref.html?border_parent -== leftN-widthA-rightA-2.html?border_parent leftN-widthA-rightA-2-ref.html?border_parent -== leftN-widthA-rightN.html?border_parent leftN-widthA-rightN-ref.html?border_parent -== leftN-widthA-rightN-2.html?border_parent leftN-widthA-rightN-2-ref.html?border_parent -== leftA-widthN-rightA.html?border_parent leftA-widthN-rightA-ref.html?border_parent -== leftN-widthN-rightA.html?border_parent leftN-widthN-rightA-ref.html?border_parent -== leftA-widthN-rightN.html?border_parent leftA-widthN-rightN-ref.html?border_parent -== leftA-widthA-rightN.html?border_parent leftA-widthA-rightN-ref.html?border_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA.html?border_parent leftN-widthA-rightA-ref.html?border_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA-2.html?border_parent leftN-widthA-rightA-2-ref.html?border_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN.html?border_parent leftN-widthA-rightN-ref.html?border_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN-2.html?border_parent leftN-widthA-rightN-2-ref.html?border_parent +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightA.html?border_parent leftA-widthN-rightA-ref.html?border_parent +fails-if(B2G&&browserIsRemote) == leftN-widthN-rightA.html?border_parent leftN-widthN-rightA-ref.html?border_parent +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightN.html?border_parent leftA-widthN-rightN-ref.html?border_parent +fails-if(B2G&&browserIsRemote) == leftA-widthA-rightN.html?border_parent leftA-widthA-rightN-ref.html?border_parent == toauto-leftN-widthA-rightA.html?border_parent toauto-leftN-widthA-rightA-ref.html?border_parent == toauto-leftN-widthA-rightA-2.html?border_parent toauto-leftN-widthA-rightA-2-ref.html?border_parent == toauto-leftN-widthA-rightN.html?border_parent toauto-leftN-widthA-rightN-ref.html?border_parent diff --git a/layout/reftests/position-dynamic-changes/horizontal/reftest_margin_abspos.list b/layout/reftests/position-dynamic-changes/horizontal/reftest_margin_abspos.list index 367564e647ae..7d905487a11e 100644 --- a/layout/reftests/position-dynamic-changes/horizontal/reftest_margin_abspos.list +++ b/layout/reftests/position-dynamic-changes/horizontal/reftest_margin_abspos.list @@ -1,13 +1,13 @@ # Please see the comment at the beginning of reftest.list -== leftN-widthA-rightA.html?margin_abspos leftN-widthA-rightA-ref.html?margin_abspos -== leftN-widthA-rightA-2.html?margin_abspos leftN-widthA-rightA-2-ref.html?margin_abspos -== leftN-widthA-rightN.html?margin_abspos leftN-widthA-rightN-ref.html?margin_abspos -== leftN-widthA-rightN-2.html?margin_abspos leftN-widthA-rightN-2-ref.html?margin_abspos -== leftA-widthN-rightA.html?margin_abspos leftA-widthN-rightA-ref.html?margin_abspos -== leftN-widthN-rightA.html?margin_abspos leftN-widthN-rightA-ref.html?margin_abspos -== leftA-widthN-rightN.html?margin_abspos leftA-widthN-rightN-ref.html?margin_abspos -== leftA-widthA-rightN.html?margin_abspos leftA-widthA-rightN-ref.html?margin_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA.html?margin_abspos leftN-widthA-rightA-ref.html?margin_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA-2.html?margin_abspos leftN-widthA-rightA-2-ref.html?margin_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN.html?margin_abspos leftN-widthA-rightN-ref.html?margin_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN-2.html?margin_abspos leftN-widthA-rightN-2-ref.html?margin_abspos +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightA.html?margin_abspos leftA-widthN-rightA-ref.html?margin_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthN-rightA.html?margin_abspos leftN-widthN-rightA-ref.html?margin_abspos +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightN.html?margin_abspos leftA-widthN-rightN-ref.html?margin_abspos +fails-if(B2G&&browserIsRemote) == leftA-widthA-rightN.html?margin_abspos leftA-widthA-rightN-ref.html?margin_abspos == toauto-leftN-widthA-rightA.html?margin_abspos toauto-leftN-widthA-rightA-ref.html?margin_abspos == toauto-leftN-widthA-rightA-2.html?margin_abspos toauto-leftN-widthA-rightA-2-ref.html?margin_abspos == toauto-leftN-widthA-rightN.html?margin_abspos toauto-leftN-widthA-rightN-ref.html?margin_abspos diff --git a/layout/reftests/position-dynamic-changes/horizontal/reftest_margin_parent.list b/layout/reftests/position-dynamic-changes/horizontal/reftest_margin_parent.list index d1aaff8edbfb..6d1dd92918ee 100644 --- a/layout/reftests/position-dynamic-changes/horizontal/reftest_margin_parent.list +++ b/layout/reftests/position-dynamic-changes/horizontal/reftest_margin_parent.list @@ -1,13 +1,13 @@ # Please see the comment at the beginning of reftest.list -== leftN-widthA-rightA.html?margin_parent leftN-widthA-rightA-ref.html?margin_parent -== leftN-widthA-rightA-2.html?margin_parent leftN-widthA-rightA-2-ref.html?margin_parent -== leftN-widthA-rightN.html?margin_parent leftN-widthA-rightN-ref.html?margin_parent -== leftN-widthA-rightN-2.html?margin_parent leftN-widthA-rightN-2-ref.html?margin_parent -== leftA-widthN-rightA.html?margin_parent leftA-widthN-rightA-ref.html?margin_parent -== leftN-widthN-rightA.html?margin_parent leftN-widthN-rightA-ref.html?margin_parent -== leftA-widthN-rightN.html?margin_parent leftA-widthN-rightN-ref.html?margin_parent -== leftA-widthA-rightN.html?margin_parent leftA-widthA-rightN-ref.html?margin_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA.html?margin_parent leftN-widthA-rightA-ref.html?margin_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA-2.html?margin_parent leftN-widthA-rightA-2-ref.html?margin_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN.html?margin_parent leftN-widthA-rightN-ref.html?margin_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN-2.html?margin_parent leftN-widthA-rightN-2-ref.html?margin_parent +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightA.html?margin_parent leftA-widthN-rightA-ref.html?margin_parent +fails-if(B2G&&browserIsRemote) == leftN-widthN-rightA.html?margin_parent leftN-widthN-rightA-ref.html?margin_parent +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightN.html?margin_parent leftA-widthN-rightN-ref.html?margin_parent +fails-if(B2G&&browserIsRemote) == leftA-widthA-rightN.html?margin_parent leftA-widthA-rightN-ref.html?margin_parent == toauto-leftN-widthA-rightA.html?margin_parent toauto-leftN-widthA-rightA-ref.html?margin_parent == toauto-leftN-widthA-rightA-2.html?margin_parent toauto-leftN-widthA-rightA-2-ref.html?margin_parent == toauto-leftN-widthA-rightN.html?margin_parent toauto-leftN-widthA-rightN-ref.html?margin_parent diff --git a/layout/reftests/position-dynamic-changes/horizontal/reftest_padding_abspos.list b/layout/reftests/position-dynamic-changes/horizontal/reftest_padding_abspos.list index 03952c6d1535..6fa4a7480752 100644 --- a/layout/reftests/position-dynamic-changes/horizontal/reftest_padding_abspos.list +++ b/layout/reftests/position-dynamic-changes/horizontal/reftest_padding_abspos.list @@ -1,13 +1,13 @@ # Please see the comment at the beginning of reftest.list -== leftN-widthA-rightA.html?padding_abspos leftN-widthA-rightA-ref.html?padding_abspos -== leftN-widthA-rightA-2.html?padding_abspos leftN-widthA-rightA-2-ref.html?padding_abspos -== leftN-widthA-rightN.html?padding_abspos leftN-widthA-rightN-ref.html?padding_abspos -== leftN-widthA-rightN-2.html?padding_abspos leftN-widthA-rightN-2-ref.html?padding_abspos -== leftA-widthN-rightA.html?padding_abspos leftA-widthN-rightA-ref.html?padding_abspos -== leftN-widthN-rightA.html?padding_abspos leftN-widthN-rightA-ref.html?padding_abspos -== leftA-widthN-rightN.html?padding_abspos leftA-widthN-rightN-ref.html?padding_abspos -== leftA-widthA-rightN.html?padding_abspos leftA-widthA-rightN-ref.html?padding_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA.html?padding_abspos leftN-widthA-rightA-ref.html?padding_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA-2.html?padding_abspos leftN-widthA-rightA-2-ref.html?padding_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN.html?padding_abspos leftN-widthA-rightN-ref.html?padding_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN-2.html?padding_abspos leftN-widthA-rightN-2-ref.html?padding_abspos +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightA.html?padding_abspos leftA-widthN-rightA-ref.html?padding_abspos +fails-if(B2G&&browserIsRemote) == leftN-widthN-rightA.html?padding_abspos leftN-widthN-rightA-ref.html?padding_abspos +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightN.html?padding_abspos leftA-widthN-rightN-ref.html?padding_abspos +fails-if(B2G&&browserIsRemote) == leftA-widthA-rightN.html?padding_abspos leftA-widthA-rightN-ref.html?padding_abspos == toauto-leftN-widthA-rightA.html?padding_abspos toauto-leftN-widthA-rightA-ref.html?padding_abspos == toauto-leftN-widthA-rightA-2.html?padding_abspos toauto-leftN-widthA-rightA-2-ref.html?padding_abspos == toauto-leftN-widthA-rightN.html?padding_abspos toauto-leftN-widthA-rightN-ref.html?padding_abspos diff --git a/layout/reftests/position-dynamic-changes/horizontal/reftest_padding_parent.list b/layout/reftests/position-dynamic-changes/horizontal/reftest_padding_parent.list index e1cdf6a019eb..05b24d06e952 100644 --- a/layout/reftests/position-dynamic-changes/horizontal/reftest_padding_parent.list +++ b/layout/reftests/position-dynamic-changes/horizontal/reftest_padding_parent.list @@ -1,13 +1,13 @@ # Please see the comment at the beginning of reftest.list -== leftN-widthA-rightA.html?padding_parent leftN-widthA-rightA-ref.html?padding_parent -== leftN-widthA-rightA-2.html?padding_parent leftN-widthA-rightA-2-ref.html?padding_parent -== leftN-widthA-rightN.html?padding_parent leftN-widthA-rightN-ref.html?padding_parent -== leftN-widthA-rightN-2.html?padding_parent leftN-widthA-rightN-2-ref.html?padding_parent -== leftA-widthN-rightA.html?padding_parent leftA-widthN-rightA-ref.html?padding_parent -== leftN-widthN-rightA.html?padding_parent leftN-widthN-rightA-ref.html?padding_parent -== leftA-widthN-rightN.html?padding_parent leftA-widthN-rightN-ref.html?padding_parent -== leftA-widthA-rightN.html?padding_parent leftA-widthA-rightN-ref.html?padding_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA.html?padding_parent leftN-widthA-rightA-ref.html?padding_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA-2.html?padding_parent leftN-widthA-rightA-2-ref.html?padding_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN.html?padding_parent leftN-widthA-rightN-ref.html?padding_parent +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN-2.html?padding_parent leftN-widthA-rightN-2-ref.html?padding_parent +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightA.html?padding_parent leftA-widthN-rightA-ref.html?padding_parent +fails-if(B2G&&browserIsRemote) == leftN-widthN-rightA.html?padding_parent leftN-widthN-rightA-ref.html?padding_parent +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightN.html?padding_parent leftA-widthN-rightN-ref.html?padding_parent +fails-if(B2G&&browserIsRemote) == leftA-widthA-rightN.html?padding_parent leftA-widthA-rightN-ref.html?padding_parent == toauto-leftN-widthA-rightA.html?padding_parent toauto-leftN-widthA-rightA-ref.html?padding_parent == toauto-leftN-widthA-rightA-2.html?padding_parent toauto-leftN-widthA-rightA-2-ref.html?padding_parent == toauto-leftN-widthA-rightN.html?padding_parent toauto-leftN-widthA-rightN-ref.html?padding_parent diff --git a/layout/reftests/position-dynamic-changes/horizontal/reftest_plain.list b/layout/reftests/position-dynamic-changes/horizontal/reftest_plain.list index a2c84623e16b..2bdf99d9e7e2 100644 --- a/layout/reftests/position-dynamic-changes/horizontal/reftest_plain.list +++ b/layout/reftests/position-dynamic-changes/horizontal/reftest_plain.list @@ -1,13 +1,13 @@ # Please see the comment at the beginning of reftest.list -== leftN-widthA-rightA.html leftN-widthA-rightA-ref.html -== leftN-widthA-rightA-2.html leftN-widthA-rightA-2-ref.html -== leftN-widthA-rightN.html leftN-widthA-rightN-ref.html -== leftN-widthA-rightN-2.html leftN-widthA-rightN-2-ref.html -== leftA-widthN-rightA.html leftA-widthN-rightA-ref.html -== leftN-widthN-rightA.html leftN-widthN-rightA-ref.html -== leftA-widthN-rightN.html leftA-widthN-rightN-ref.html -== leftA-widthA-rightN.html leftA-widthA-rightN-ref.html +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA.html leftN-widthA-rightA-ref.html +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightA-2.html leftN-widthA-rightA-2-ref.html +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN.html leftN-widthA-rightN-ref.html +fails-if(B2G&&browserIsRemote) == leftN-widthA-rightN-2.html leftN-widthA-rightN-2-ref.html +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightA.html leftA-widthN-rightA-ref.html +fails-if(B2G&&browserIsRemote) == leftN-widthN-rightA.html leftN-widthN-rightA-ref.html +fails-if(B2G&&browserIsRemote) == leftA-widthN-rightN.html leftA-widthN-rightN-ref.html +fails-if(B2G&&browserIsRemote) == leftA-widthA-rightN.html leftA-widthA-rightN-ref.html == toauto-leftN-widthA-rightA.html toauto-leftN-widthA-rightA-ref.html == toauto-leftN-widthA-rightA-2.html toauto-leftN-widthA-rightA-2-ref.html == toauto-leftN-widthA-rightN.html toauto-leftN-widthA-rightN-ref.html diff --git a/layout/reftests/position-dynamic-changes/reftest.list b/layout/reftests/position-dynamic-changes/reftest.list index 400c371735e9..18e34b414a89 100644 --- a/layout/reftests/position-dynamic-changes/reftest.list +++ b/layout/reftests/position-dynamic-changes/reftest.list @@ -1,10 +1,10 @@ include horizontal/reftest.list -include vertical/reftest.list -include mixed/reftest.list -include mixed-abspos-root/reftest.list -include relative/reftest.list +skip-if(B2G&&browserIsRemote) include vertical/reftest.list +skip-if(B2G&&browserIsRemote) include mixed/reftest.list +skip-if(B2G&&browserIsRemote) include mixed-abspos-root/reftest.list +skip-if(B2G&&browserIsRemote) include relative/reftest.list -== multiple-changes.html multiple-changes-ref.html -== shrink-wrap.html shrink-wrap-ref.html -== max-width.html max-width-ref.html -fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,2) == min-width.html min-width-ref.html # Bug 761770 +random-if(B2G&&browserIsRemote) == multiple-changes.html multiple-changes-ref.html +random-if(B2G&&browserIsRemote) == shrink-wrap.html shrink-wrap-ref.html +random-if(B2G&&browserIsRemote) == max-width.html max-width-ref.html +fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,2) fails-if(B2G&&browserIsRemote) == min-width.html min-width-ref.html # Bug 761770 diff --git a/layout/reftests/position-sticky/reftest.list b/layout/reftests/position-sticky/reftest.list index 5229043e3538..79db3c3d352f 100644 --- a/layout/reftests/position-sticky/reftest.list +++ b/layout/reftests/position-sticky/reftest.list @@ -42,7 +42,7 @@ fuzzy-if(Android,4,810) == containing-block-1.html containing-block-1-ref.html == overconstrained-2.html overconstrained-2-ref.html == overconstrained-3.html overconstrained-3-ref.html == inline-1.html inline-1-ref.html -== inline-2.html inline-2-ref.html +fails-if(B2G&&browserIsRemote) == inline-2.html inline-2-ref.html fuzzy-if(OSX==10.6||OSX==10.7,64,100) fuzzy-if(OSX==10.8,99,210) == inline-3.html inline-3-ref.html fails == column-contain-1a.html column-contain-1-ref.html == column-contain-1b.html column-contain-1-ref.html diff --git a/layout/reftests/printing/reftest.list b/layout/reftests/printing/reftest.list index 7e58a8b334cc..beedac6796b1 100644 --- a/layout/reftests/printing/reftest.list +++ b/layout/reftests/printing/reftest.list @@ -5,7 +5,7 @@ == 272830-1.html 272830-1-ref.html == 318022-1.html 318022-1-ref.html == 403669-1.html 403669-1-ref.html -fails-if(B2G) == 381497-n.html 381497-f.html # reftest-print doesn't work on B2G (scrollbar difference only) +random-if(B2G&&browserIsRemote) == 381497-n.html 381497-f.html # reftest-print doesn't work on B2G (scrollbar difference only) == test-async-print.html 272830-1-ref.html fails-if(B2G) == 129941-1a.html 129941-1-ref.html # reftest-print doesn't work on B2G == 129941-1b.html 129941-1-ref.html @@ -20,15 +20,15 @@ fails-if(B2G) == 609227-2b.html 609227-2-ref.html # reftest-print doesn't work o == 626395-2c.html 626395-2-ref.html == 626395-2d.html 626395-2-ref.html == 652178-1.html 652178-1-ref.html -fails-if(B2G) == 115199-1.html 115199-1-ref.html # reftest-print doesn't work on B2G -== 115199-2a.html 115199-2-ref.html -== 115199-2b.html 115199-2-ref.html +random-if(B2G&&browserIsRemote) == 115199-1.html 115199-1-ref.html # reftest-print doesn't work on B2G +random-if(B2G&&browserIsRemote) == 115199-2a.html 115199-2-ref.html +random-if(B2G&&browserIsRemote) == 115199-2b.html 115199-2-ref.html == 652178-1.html 652178-1-ref2.html skip-if(B2G) fuzzy-if(cocoaWidget,1,5000) == 745025-1.html 745025-1-ref.html # reftest-print doesn't work on B2G == 820496-1.html 820496-1-ref.html # NOTE: These tests don't yet rigorously test what they're # trying to test (shrink-to-fit behavior), due to bug 967311. -fails-if(B2G) == 960822.html 960822-ref.html # reftest-print doesn't work on B2G (scrollbar difference only) +random-if(B2G&&browserIsRemote) == 960822.html 960822-ref.html # reftest-print doesn't work on B2G (scrollbar difference only) == 966419-1.html 966419-1-ref.html == 966419-2.html 966419-2-ref.html diff --git a/layout/reftests/reftest.list b/layout/reftests/reftest.list index 8c5dd41b092b..5be076f81009 100644 --- a/layout/reftests/reftest.list +++ b/layout/reftests/reftest.list @@ -171,7 +171,7 @@ include font-face/reftest.list include font-features/reftest.list # mobile font size inflation -include font-inflation/reftest.list +skip-if(B2G&&browserIsRemote) include font-inflation/reftest.list # Bug 972697 # font matching include font-matching/reftest.list @@ -268,7 +268,7 @@ include scoped-style/reftest.list include scrolling/reftest.list # selection -include selection/reftest.list +skip-if(B2G&&browserIsRemote) include selection/reftest.list # sticky positioning include position-sticky/reftest.list diff --git a/layout/reftests/scrolling/reftest.list b/layout/reftests/scrolling/reftest.list index d474ed9e66e0..b044a05a562e 100644 --- a/layout/reftests/scrolling/reftest.list +++ b/layout/reftests/scrolling/reftest.list @@ -5,15 +5,15 @@ skip-if(B2G) HTTP == fixed-opacity-2.html fixed-opacity-2.html?ref skip-if(B2G) random-if(gtk2Widget) fuzzy-if(Android,3,60) HTTP == fixed-text-1.html fixed-text-1.html?ref HTTP == fixed-text-2.html fixed-text-2.html?ref random-if(Android&&!browserIsRemote) skip-if(B2G&&browserIsRemote) == iframe-border-radius.html iframe-border-radius-ref.html # bug 760269 -random-if(Android) HTTP == image-1.html image-1.html?ref -random-if(Android&&!browserIsRemote) HTTP == opacity-mixed-scrolling-1.html opacity-mixed-scrolling-1.html?ref # bug 760269 +random-if(Android) fails-if(B2G&&browserIsRemote) HTTP == image-1.html image-1.html?ref +random-if(Android&&!browserIsRemote) random-if(B2G&&browserIsRemote) HTTP == opacity-mixed-scrolling-1.html opacity-mixed-scrolling-1.html?ref # bug 760269 skip-if(B2G) random-if(cocoaWidget) HTTP == opacity-mixed-scrolling-2.html opacity-mixed-scrolling-2.html?ref # see bug 625357 skip-if(B2G&&browserIsRemote) HTTP == simple-1.html simple-1.html?ref skip-if(B2G) HTTP == subpixel-1.html#d subpixel-1-ref.html#d -fuzzy-if(Android,4,120) HTTP == text-1.html text-1.html?ref -fuzzy-if(Android,4,120) HTTP == text-2.html?up text-2.html?ref +fuzzy-if(Android,4,120) fails-if(B2G&&browserIsRemote) HTTP == text-1.html text-1.html?ref +fuzzy-if(Android,4,120) fails-if(B2G&&browserIsRemote) HTTP == text-2.html?up text-2.html?ref skip-if(B2G) fuzzy-if(Android&&AndroidVersion<15,251,722) HTTP == transformed-1.html transformed-1.html?ref -HTTP == transformed-1.html?up transformed-1.html?ref +fails-if(B2G&&browserIsRemote) HTTP == transformed-1.html?up transformed-1.html?ref fuzzy-if(Android,5,20000) == uncovering-1.html uncovering-1-ref.html fuzzy-if(Android,5,20000) == uncovering-2.html uncovering-2-ref.html skip-if(B2G) == less-than-scrollbar-height.html less-than-scrollbar-height-ref.html diff --git a/layout/reftests/svg/as-image/reftest.list b/layout/reftests/svg/as-image/reftest.list index c92dedc0a57b..95944af06a48 100644 --- a/layout/reftests/svg/as-image/reftest.list +++ b/layout/reftests/svg/as-image/reftest.list @@ -12,10 +12,10 @@ skip-if(B2G) == background-simple-1.html lime100x100-ref.html # bug 773482 == background-viewBox-1.html lime100x100-ref.html # background tests with the background area getting resized -== background-resize-1.html lime100x100-ref.html -== background-resize-2.html lime100x100-ref.html -== background-resize-3.html lime100x100-ref.html -== background-resize-4.html lime100x100-ref.html +fails-if(B2G&&browserIsRemote) == background-resize-1.html lime100x100-ref.html +fails-if(B2G&&browserIsRemote) == background-resize-2.html lime100x100-ref.html +fails-if(B2G&&browserIsRemote) == background-resize-3.html lime100x100-ref.html +fails-if(B2G&&browserIsRemote) == background-resize-4.html lime100x100-ref.html # Test for stretching background images by different amounts in each dimension == background-stretch-1.html background-stretch-1-ref.html @@ -42,11 +42,11 @@ skip-if(B2G) == canvas-drawImage-scale-1b.html lime100x100-ref.html skip-if(B2G) == canvas-drawImage-scale-1c.html lime100x100-ref.html # Fuzzyness and fails for scaling should be fixed by bug 941467 -fuzzy(1,2) fails-if(Android&&AndroidVersion<15&&AndroidVersion!=10) == canvas-drawImage-scale-2a.html canvas-drawImage-scale-2-ref.html +fuzzy(1,2) fails-if(Android&&AndroidVersion<15&&AndroidVersion!=10) fails-if(B2G&&browserIsRemote) == canvas-drawImage-scale-2a.html canvas-drawImage-scale-2-ref.html fails == canvas-drawImage-scale-2b.html canvas-drawImage-scale-2-ref.html skip-if(B2G) == canvas-drawImage-slice-1a.html lime100x100-ref.html -== canvas-drawImage-slice-1b.html lime100x100-ref.html +fails-if(B2G&&browserIsRemote) == canvas-drawImage-slice-1b.html lime100x100-ref.html == canvas-drawImage-origin-clean-1.html lime100x100-ref.html @@ -64,7 +64,7 @@ skip-if(B2G) == img-simple-6.html lime100x100-ref.html # bug 773482 random == img-and-image-1.html img-and-image-1-ref.svg # bug 645267 # More complex tests -== img-blobURI-1.html lime100x100-ref.html +fails-if(B2G&&browserIsRemote) == img-blobURI-1.html lime100x100-ref.html random == img-blobURI-2.html lime100x100-ref.html == img-content-outside-viewBox-1.html img-content-outside-viewBox-1-ref.html == img-display-none-1.html about:blank diff --git a/layout/reftests/svg/filters/reftest.list b/layout/reftests/svg/filters/reftest.list index 070c04b30aa6..786f33a3ec1d 100644 --- a/layout/reftests/svg/filters/reftest.list +++ b/layout/reftests/svg/filters/reftest.list @@ -3,7 +3,7 @@ # the automatic optimal surface-size computation a bit more). skip-if(B2G) == dynamic-filtered-foreignObject-01.svg pass.svg # bug 773482 -== dynamic-filter-invalidation-01.svg pass.svg +fails-if(B2G&&browserIsRemote) == dynamic-filter-invalidation-01.svg pass.svg == dynamic-filter-invalidation-02.svg pass.svg == feBlend-1.svg feBlend-1-ref.svg diff --git a/layout/reftests/svg/image/reftest.list b/layout/reftests/svg/image/reftest.list index 5127c12a5c15..bad801cc9072 100644 --- a/layout/reftests/svg/image/reftest.list +++ b/layout/reftests/svg/image/reftest.list @@ -38,4 +38,4 @@ skip-if(B2G) == image-preserveAspectRatio-02-raster.svg image-preserveAspectRati skip-if(B2G) == image-preserveAspectRatio-02-svg.svg image-preserveAspectRatio-02-ref.svg # bug 773482 skip-if(B2G) == image-preserveAspectRatio-03.svg image-preserveAspectRatio-03-ref.svg # bug 773482 skip-if(B2G) == image-preserveAspectRatio-04.svg image-preserveAspectRatio-04-ref.svg # bug 773482 -== image-preserveAspectRatio-05.svg ../pass.svg +fails-if(B2G&&browserIsRemote) == image-preserveAspectRatio-05.svg ../pass.svg diff --git a/layout/reftests/svg/reftest.list b/layout/reftests/svg/reftest.list index 8da49e622a1f..5baf25657d89 100644 --- a/layout/reftests/svg/reftest.list +++ b/layout/reftests/svg/reftest.list @@ -77,7 +77,7 @@ fuzzy-if(Android,4,87) skip-if(B2G) == dynamic-clipPath-01.svg pass.svg == dynamic-clipPath-02.svg pass.svg == dynamic-feFlood-01.svg pass.svg asserts(0-1) == dynamic-feImage-01.svg pass.svg # intermittent assertions (bug 886080) -== dynamic-fill-01.svg dynamic-fill-01-ref.svg +fails-if(B2G&&browserIsRemote) == dynamic-fill-01.svg dynamic-fill-01-ref.svg skip-if(B2G) fuzzy-if(d2d,1,10000) == dynamic-filter-contents-01a.svg dynamic-filter-contents-01-ref.svg skip-if(B2G) fuzzy-if(d2d,1,10000) == dynamic-filter-contents-01b.svg dynamic-filter-contents-01-ref.svg skip-if(B2G) == dynamic-gradient-contents-01.svg pass.svg @@ -89,7 +89,7 @@ skip-if(B2G) == dynamic-marker-02.svg dynamic-marker-02-ref.svg skip-if(B2G) == dynamic-marker-03.svg pass.svg == dynamic-mask-01.svg pass.svg skip-if(B2G) == dynamic-mask-contents-01.svg pass.svg -== dynamic-opacity-property-01.svg pass.svg +fails-if(B2G&&browserIsRemote) == dynamic-opacity-property-01.svg pass.svg skip-if(B2G) == dynamic-pattern-01.svg pass.svg skip-if(B2G) == dynamic-pattern-02.svg pass.svg skip-if(B2G) == dynamic-pattern-contents-01.svg pass.svg @@ -115,15 +115,15 @@ skip-if(B2G) == dynamic-text-06.svg pass.svg == dynamic-text-07.svg dynamic-text-07-ref.svg == dynamic-text-08.svg dynamic-text-08-ref.svg skip-if(B2G) == dynamic-textPath-01.svg dynamic-textPath-01-ref.svg -== dynamic-textPath-02.svg dynamic-textPath-02-ref.svg -== dynamic-textPath-03.svg dynamic-textPath-03-ref.svg +fails-if(B2G&&browserIsRemote) == dynamic-textPath-02.svg dynamic-textPath-02-ref.svg +fails-if(B2G&&browserIsRemote) == dynamic-textPath-03.svg dynamic-textPath-03-ref.svg == dynamic-use-01.svg pass.svg == dynamic-use-02.svg pass.svg skip-if(B2G) == dynamic-use-03.svg pass.svg skip-if(B2G) == dynamic-use-04.svg pass.svg skip-if(B2G) == dynamic-use-05.svg pass.svg -== dynamic-use-06.svg pass.svg -== dynamic-use-07.svg pass.svg +fails-if(B2G&&browserIsRemote) == dynamic-use-06.svg pass.svg +fails-if(B2G&&browserIsRemote) == dynamic-use-07.svg pass.svg random == dynamic-use-nested-01a.svg dynamic-use-nested-01-ref.svg random == dynamic-use-nested-01b.svg dynamic-use-nested-01-ref.svg == dynamic-use-remove-width.svg dynamic-use-remove-width-ref.svg @@ -210,7 +210,7 @@ pref(layout.css.masking.enabled,true) fuzzy-if(d2d,1,6400) == mask-type-04.svg m == nesting-invalid-01.svg nesting-invalid-01-ref.svg == non-scaling-stroke-01.svg non-scaling-stroke-01-ref.svg fuzzy-if(Android||B2G,1,99) fuzzy-if(!contentSameGfxBackendAsCanvas,9,99) == non-scaling-stroke-02.svg non-scaling-stroke-02-ref.svg -== non-scaling-stroke-03.svg non-scaling-stroke-03-ref.svg +fails-if(B2G&&browserIsRemote) == non-scaling-stroke-03.svg non-scaling-stroke-03-ref.svg == objectBoundingBox-and-clipPath.svg pass.svg # Bug 588684 random-if(gtk2Widget) == objectBoundingBox-and-fePointLight-01.svg objectBoundingBox-and-fePointLight-01-ref.svg @@ -226,21 +226,21 @@ random-if(gtk2Widget) == objectBoundingBox-and-fePointLight-02.svg objectBoundin skip-if(d2d) fuzzy-if(azureQuartz,1,99974) == opacity-and-gradient-02.svg opacity-and-gradient-02-ref.svg == opacity-and-pattern-01.svg pass.svg == opacity-and-transform-01.svg opacity-and-transform-01-ref.svg -fuzzy-if(Android&&AndroidVersion>=15,8,200) == outer-svg-border-and-padding-01.svg outer-svg-border-and-padding-01-ref.svg +fuzzy-if(Android&&AndroidVersion>=15,8,200) random-if(B2G&&browserIsRemote) == outer-svg-border-and-padding-01.svg outer-svg-border-and-padding-01-ref.svg == overflow-on-outer-svg-01.svg overflow-on-outer-svg-01-ref.svg == overflow-on-outer-svg-02a.xhtml overflow-on-outer-svg-02-ref.xhtml == overflow-on-outer-svg-02b.xhtml overflow-on-outer-svg-02-ref.xhtml == overflow-on-outer-svg-02c.xhtml overflow-on-outer-svg-02-ref.xhtml -== overflow-on-outer-svg-02d.xhtml overflow-on-outer-svg-02-ref.xhtml -== overflow-on-outer-svg-03a.xhtml overflow-on-outer-svg-03-ref.xhtml -== overflow-on-outer-svg-03b.xhtml overflow-on-outer-svg-03-ref.xhtml +random-if(B2G&&browserIsRemote) == overflow-on-outer-svg-02d.xhtml overflow-on-outer-svg-02-ref.xhtml +random-if(B2G&&browserIsRemote) == overflow-on-outer-svg-03a.xhtml overflow-on-outer-svg-03-ref.xhtml +random-if(B2G&&browserIsRemote) == overflow-on-outer-svg-03b.xhtml overflow-on-outer-svg-03-ref.xhtml pref(svg.paint-order.enabled,true) == paint-order-01.svg paint-order-01-ref.svg pref(svg.paint-order.enabled,true) == paint-order-02.svg paint-order-02-ref.svg pref(svg.paint-order.enabled,true) == paint-order-03.svg paint-order-03-ref.svg fuzzy-if(azureQuartz,6,47) == path-01.svg path-01-ref.svg == path-02.svg pass.svg == path-03.svg pass.svg -== path-04.svg pass.svg +fails-if(B2G&&browserIsRemote) == path-04.svg pass.svg == path-05.svg pass.svg == path-06.svg path-06-ref.svg == path-07.svg path-07-ref.svg @@ -249,9 +249,9 @@ fuzzy-if(azureQuartz,6,47) == path-01.svg path-01-ref.svg == pathLength-02.svg pass.svg == pattern-basic-01.svg pass.svg == pattern-invalid-01.svg pattern-invalid-01-ref.svg -== pattern-live-01a.svg pattern-live-01-ref.svg -== pattern-live-01b.svg pattern-live-01-ref.svg -== pattern-live-01c.svg pattern-live-01-ref.svg +fails-if(B2G&&browserIsRemote) == pattern-live-01a.svg pattern-live-01-ref.svg +fails-if(B2G&&browserIsRemote) == pattern-live-01b.svg pattern-live-01-ref.svg +fails-if(B2G&&browserIsRemote) == pattern-live-01c.svg pattern-live-01-ref.svg == pattern-scale-01a.svg pattern-scale-01-ref.svg == pattern-scale-01b.svg pattern-scale-01-ref.svg == pattern-scale-01c.svg pattern-scale-01-ref.svg @@ -279,9 +279,9 @@ fuzzy-if(azureQuartz,6,47) == path-01.svg path-01-ref.svg == script-empty-01.svg pass.svg == selector-01.svg pass.svg == stroke-width-percentage-01.svg pass.svg -== stroke-width-percentage-02a.svg stroke-width-percentage-02-ref.svg -== stroke-width-percentage-02b.svg stroke-width-percentage-02-ref.svg -== stroke-width-percentage-03.xhtml stroke-width-percentage-03-ref.xhtml +fails-if(B2G&&browserIsRemote) == stroke-width-percentage-02a.svg stroke-width-percentage-02-ref.svg +fails-if(B2G&&browserIsRemote) == stroke-width-percentage-02b.svg stroke-width-percentage-02-ref.svg +fails-if(B2G&&browserIsRemote) == stroke-width-percentage-03.xhtml stroke-width-percentage-03-ref.xhtml == style-property-on-script-element-01.svg pass.svg == style-without-type-attribute.svg pass.svg == svg-in-foreignObject-01.xhtml svg-in-foreignObject-01-ref.xhtml diff --git a/layout/reftests/svg/sizing/reftest.list b/layout/reftests/svg/sizing/reftest.list index c1ac8ee0464e..49a168855ded 100644 --- a/layout/reftests/svg/sizing/reftest.list +++ b/layout/reftests/svg/sizing/reftest.list @@ -284,16 +284,16 @@ HTTP(../..) == inline--position-relative--01.xhtml inline--position-relative- # tests do not have any width or height on the element so they should # be sized purely by the embedded SVG's intrinsic size. -random-if(Android) == object--auto-auto--0-0.html pass-empty.svg # XXX add border -random-if(Android) == object--auto-auto--0-pct.html object--auto-auto--0-pct--ref.html -random-if(Android) == object--auto-auto--0-px.html object--auto-auto--0-px--ref.html -random-if(Android) == object--auto-auto--pct-0.html object--auto-auto--pct-0--ref.html +random-if(Android||(B2G&&browserIsRemote)) == object--auto-auto--0-0.html pass-empty.svg # XXX add border +random-if(Android||(B2G&&browserIsRemote)) == object--auto-auto--0-pct.html object--auto-auto--0-pct--ref.html +random-if(Android||(B2G&&browserIsRemote)) == object--auto-auto--0-px.html object--auto-auto--0-px--ref.html +random-if(Android||(B2G&&browserIsRemote)) == object--auto-auto--pct-0.html object--auto-auto--pct-0--ref.html # The following four commented out tests fail post bug 428023: #== object--auto-auto--pct-pct.html object--auto-auto--pct-pct--ref.html #== object--auto-auto--pct-px.html object--auto-auto--pct-px--ref.html -random-if(Android) == object--auto-auto--px-0.html object--auto-auto--px-0--ref.html +random-if(Android||(B2G&&browserIsRemote)) == object--auto-auto--px-0.html object--auto-auto--px-0--ref.html #== object--auto-auto--px-pct.html object--auto-auto--px-pct--ref.html -random-if(Android) == object--auto-auto--px-px.html object--auto-auto--px-px--ref.html +random-if(Android||(B2G&&browserIsRemote)) == object--auto-auto--px-px.html object--auto-auto--px-px--ref.html #== object--pct-pct--0-0.html pass.svg diff --git a/layout/reftests/svg/smil/container/reftest.list b/layout/reftests/svg/smil/container/reftest.list index 4c1a635d78a5..225157a6b5cd 100644 --- a/layout/reftests/svg/smil/container/reftest.list +++ b/layout/reftests/svg/smil/container/reftest.list @@ -9,7 +9,7 @@ random-if(cocoaWidget||d2d) == deferred-anim-1.xhtml deferred-anim-1-ref.xhtml # random-if(cocoaWidget&&layersGPUAccelerated) == deferred-tree-1.xhtml deferred-tree-1-ref.xhtml # bug 470868 random-if(cocoaWidget&&layersGPUAccelerated) == deferred-tree-2a.xhtml deferred-tree-2-ref.xhtml # bug 470868 random-if(cocoaWidget&&layersGPUAccelerated) == deferred-tree-2b.xhtml deferred-tree-2-ref.xhtml # bug 470868 -fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,16) == deferred-tree-3a.xhtml deferred-tree-3-ref.xhtml +fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,16) random-if(B2G&&browserIsRemote) == deferred-tree-3a.xhtml deferred-tree-3-ref.xhtml fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,16) == deferred-tree-3b.xhtml deferred-tree-3-ref.xhtml fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,16) == deferred-tree-3c.xhtml deferred-tree-3-ref.xhtml fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,16) == deferred-tree-3d.xhtml deferred-tree-3-ref.xhtml diff --git a/layout/reftests/svg/smil/event/reftest.list b/layout/reftests/svg/smil/event/reftest.list index 02b845b076c6..89e6d014ea3b 100644 --- a/layout/reftests/svg/smil/event/reftest.list +++ b/layout/reftests/svg/smil/event/reftest.list @@ -5,7 +5,7 @@ == event-begin-offset-2.svg green-box-ref.svg == event-begin-timeevent-1.svg green-box-ref.svg == event-begin-timeevent-2.svg green-box-ref.svg -random-if(Android) == event-begin-timeevent-3.svg green-box-ref.svg +random-if(Android) random-if(B2G&&browserIsRemote) == event-begin-timeevent-3.svg green-box-ref.svg == event-begin-load-1.svg green-box-ref.svg == event-bubble-1.svg green-box-ref.svg == event-custom-1.svg green-box-ref.svg @@ -14,7 +14,7 @@ random-if(Android) == event-begin-timeevent-3.svg green-box-ref.svg == event-end-open-1.svg green-box-ref.svg == event-end-trimmed-1.svg green-box-ref.svg == event-preventDefault-1.svg green-box-ref.svg -== event-seek-1.svg green-box-ref.svg +fails-if(B2G&&browserIsRemote) == event-seek-1.svg green-box-ref.svg == event-target-default-1.svg green-box-ref.svg == event-target-default-2.svg green-box-ref.svg == event-target-id-change-1.svg green-box-ref.svg @@ -27,6 +27,6 @@ random-if(Android) == event-begin-timeevent-3.svg green-box-ref.svg == event-target-surgery-1.svg green-box-ref.svg == event-target-surgery-2.svg green-box-ref.svg == event-target-surgery-3.svg green-box-ref.svg -== event-target-non-svg-1.xhtml green-box-ref.xhtml +fails-if(B2G&&browserIsRemote) == event-target-non-svg-1.xhtml green-box-ref.xhtml == accesskey-entity-1.svg green-box-ref.svg == accesskey-entity-2.svg green-box-ref.svg diff --git a/layout/reftests/svg/smil/motion/reftest.list b/layout/reftests/svg/smil/motion/reftest.list index 2c0cf23466bd..edca94f96f28 100644 --- a/layout/reftests/svg/smil/motion/reftest.list +++ b/layout/reftests/svg/smil/motion/reftest.list @@ -1,14 +1,14 @@ # Tests related to SVG Animation (using SMIL), focusing on the animateMotion # element. -== animateMotion-by-1.svg lime.svg +random-if(B2G&&browserIsRemote) == animateMotion-by-1.svg lime.svg == animateMotion-by-2.svg lime.svg -fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,800) == animateMotion-flattening-1.svg lime.svg # bug 951541 -== animateMotion-from-to-1.svg lime.svg +fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,800) fails-if(B2G&&browserIsRemote) == animateMotion-flattening-1.svg lime.svg # bug 951541 +random-if(B2G&&browserIsRemote) == animateMotion-from-to-1.svg lime.svg == animateMotion-indefinite-to-1.svg lime.svg == animateMotion-indefinite-to-2.svg lime.svg -== animateMotion-rotate-1a.svg lime.svg -== animateMotion-rotate-1b.svg lime.svg +random-if(B2G&&browserIsRemote) == animateMotion-rotate-1a.svg lime.svg +random-if(B2G&&browserIsRemote) == animateMotion-rotate-1b.svg lime.svg == animateMotion-rotate-2.svg lime.svg == animateMotion-to-overridden-1.svg lime.svg == animateMotion-values-linear-1.svg animateMotion-values-linear-1-ref.svg @@ -16,6 +16,6 @@ fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,800) == animateMotion-flatt == animateMotion-values-paced-1b.svg animateMotion-values-paced-1-ref.svg # Tests involving sub-element -== animateMotion-mpath-pathLength-1.svg lime.svg -== animateMotion-mpath-targetChange-1.svg lime.svg +random-if(B2G&&browserIsRemote) == animateMotion-mpath-pathLength-1.svg lime.svg +random-if(B2G&&browserIsRemote) == animateMotion-mpath-targetChange-1.svg lime.svg == animateMotion-mpath-target-transform-1.svg lime.svg diff --git a/layout/reftests/svg/smil/reftest.list b/layout/reftests/svg/smil/reftest.list index 6295d8d1961e..4c32955cc0e6 100644 --- a/layout/reftests/svg/smil/reftest.list +++ b/layout/reftests/svg/smil/reftest.list @@ -99,7 +99,7 @@ fails == anim-fillcolor-1.svg anim-standard-ref.svg # bug 436296 == anim-length-reset-01.svg lime.svg == anim-nonpixel-length-reset-01.svg lime.svg == anim-use-length-01.svg lime.svg -== anim-use-length-02.svg lime.svg +random-if(B2G&&browserIsRemote) == anim-use-length-02.svg lime.svg # animate some attributes: == anim-feComponentTransfer-01.svg lime.svg @@ -143,7 +143,7 @@ fuzzy-if(Android,4,1) == anim-svg-viewBox-01.svg lime.svg == anim-view-01.svg#view lime.svg # animate some preserveAspectRatio attributes -== anim-feImage-preserveAspectRatio-01.svg lime.svg +fails-if(B2G&&browserIsRemote) == anim-feImage-preserveAspectRatio-01.svg lime.svg == anim-svg-preserveAspectRatio-01.svg lime.svg # animate some string attributes: @@ -246,7 +246,7 @@ fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,2) == anim-gradient-attr-presence-0 == inactivate-with-active-unchanged-2.svg anim-standard-ref.svg == mapped-attr-long-url-1.svg lime.svg -== mapped-attr-long-url-2.svg lime.svg +fails-if(B2G&&browserIsRemote) == mapped-attr-long-url-2.svg lime.svg # interaction between xml mapped attributes and their css equivalents == mapped-attr-vs-css-prop-1.svg lime.svg diff --git a/layout/reftests/svg/smil/sort/reftest.list b/layout/reftests/svg/smil/sort/reftest.list index 93037547734b..f514f016dd0a 100644 --- a/layout/reftests/svg/smil/sort/reftest.list +++ b/layout/reftests/svg/smil/sort/reftest.list @@ -6,7 +6,7 @@ == sort-startAfter-2.svg sort-startAfter-2-ref.svg == sort-startAfter-3.svg sort-startAfter-3-ref.svg == sort-startSame-1a.svg sort-startSame-1-ref.svg -== sort-startSame-1b.svg sort-startSame-1-ref.svg +fails-if(B2G&&browserIsRemote) == sort-startSame-1b.svg sort-startSame-1-ref.svg == sort-startSame-2a.svg sort-startSame-2-ref.svg == sort-startSame-2b.svg sort-startSame-2-ref.svg random == sort-additive-1.svg sort-additive-1-ref.svg # bug 547801 diff --git a/layout/reftests/svg/smil/syncbase/reftest.list b/layout/reftests/svg/smil/syncbase/reftest.list index 52728b2a538c..83186f90a563 100644 --- a/layout/reftests/svg/smil/syncbase/reftest.list +++ b/layout/reftests/svg/smil/syncbase/reftest.list @@ -93,7 +93,7 @@ # Cross-time container dependencies == cross-container-1.xhtml green-box-ref.xhtml == cross-container-2.xhtml green-box-ref.xhtml -== cross-container-3.xhtml green-box-ref.xhtml +random-if(B2G&&browserIsRemote) == cross-container-3.xhtml green-box-ref.xhtml # Filtering == filtered-interval-1.svg green-box-ref.svg diff --git a/layout/reftests/svg/smil/transform/reftest.list b/layout/reftests/svg/smil/transform/reftest.list index 1159fca3f86a..7fce83ca56ce 100644 --- a/layout/reftests/svg/smil/transform/reftest.list +++ b/layout/reftests/svg/smil/transform/reftest.list @@ -9,9 +9,9 @@ fuzzy-if(cocoaWidget,1,32) fuzzy-if(winWidget,1,1) == paced-1.svg paced-1-ref.sv == rotate-angle-3.svg rotate-angle-ref.svg == rotate-angle-4.svg rotate-angle-ref.svg == rotate-angle-5.svg rotate-angle-ref.svg -fuzzy(12,27) == scale-1.svg scale-1-ref.svg # bug 981004 +fuzzy(12,27) fails-if(B2G&&browserIsRemote) == scale-1.svg scale-1-ref.svg # bug 981004 == set-transform-1.svg lime.svg fuzzy-if(winWidget,1,3) == skew-1.svg skew-1-ref.svg # bug 983671 -== translate-clipPath-1.svg lime.svg -fails-if(OSX==10.6) == translate-gradient-1.svg lime.svg -== translate-pattern-1.svg lime.svg +fails-if(B2G&&browserIsRemote) == translate-clipPath-1.svg lime.svg +fails-if(OSX==10.6) fails-if(B2G&&browserIsRemote) == translate-gradient-1.svg lime.svg +fails-if(B2G&&browserIsRemote) == translate-pattern-1.svg lime.svg diff --git a/layout/reftests/svg/text/reftest.list b/layout/reftests/svg/text/reftest.list index 478bf0db86d0..eb8d96e3fa7f 100644 --- a/layout/reftests/svg/text/reftest.list +++ b/layout/reftests/svg/text/reftest.list @@ -24,7 +24,7 @@ == simple-dx-rtl.svg simple-dx-rtl-ref.svg == simple-dx-rtl-2.svg simple-dx-rtl-2-ref.svg -== simple-fill-color-dynamic.svg simple-fill-color-dynamic-ref.svg +fails-if(B2G&&browserIsRemote) == simple-fill-color-dynamic.svg simple-fill-color-dynamic-ref.svg == simple-fill-color.svg simple-fill-color-ref.html HTTP(../..) == simple-fill-gradient.svg simple-fill-gradient-ref.svg == simple-fill-none.svg simple.svg @@ -71,7 +71,7 @@ HTTP(../..) == simple-transform-rotate.svg simple-transform-rotate-ref.svg == multiple-x-multiple-dx-anchor-end-rtl.svg multiple-x-multiple-dx-anchor-end-rtl-ref.svg == multiple-x-multiple-dx-anchor-end.svg multiple-x-multiple-dx-anchor-end-ref.svg -== multiple-x-percentages.svg multiple-x-percentages-ref.svg +fails-if(B2G&&browserIsRemote) == multiple-x-percentages.svg multiple-x-percentages-ref.svg == multiple-x-percentages-2.html multiple-x-percentages-2-ref.html == multiple-x-percentages-3.html multiple-x-percentages-3-ref.html @@ -165,7 +165,7 @@ fuzzy-if(/^Windows\x20NT\x206\.[12]/.test(http.oscpu),4,15) == textLength-3.svg == dynamic-dominant-baseline.svg dynamic-dominant-baseline-ref.svg == dynamic-multiple-x.svg dynamic-multiple-x-ref.svg fuzzy-if(!d2d,14,2) fuzzy-if(azureQuartz,1,6) == dynamic-non-scaling-stroke.svg dynamic-non-scaling-stroke-ref.svg #Bug 885316 -== dynamic-text-shadow.svg text-shadow-ref.svg +fails-if(B2G&&browserIsRemote) == dynamic-text-shadow.svg text-shadow-ref.svg # text and masks HTTP(../..) == mask-applied.svg mask-applied-ref.svg diff --git a/layout/reftests/tab-size/reftest.list b/layout/reftests/tab-size/reftest.list index b45472585fde..11d5392e3445 100644 --- a/layout/reftests/tab-size/reftest.list +++ b/layout/reftests/tab-size/reftest.list @@ -7,5 +7,5 @@ == tab-size-1.html spaces-1.html == tab-size-0.html spaces-0.html == tab-size-negative.html tab-size-initial.html -== tab-size-change-1a.html tab-size-change-1-ref.html -== tab-size-change-1b.html tab-size-change-1-ref.html +fails-if(B2G&&browserIsRemote) == tab-size-change-1a.html tab-size-change-1-ref.html +fails-if(B2G&&browserIsRemote) == tab-size-change-1b.html tab-size-change-1-ref.html diff --git a/layout/reftests/text-shadow/reftest.list b/layout/reftests/text-shadow/reftest.list index d9e3437a941a..a4e5d9697224 100644 --- a/layout/reftests/text-shadow/reftest.list +++ b/layout/reftests/text-shadow/reftest.list @@ -1,8 +1,8 @@ -== basic.xul basic-ref.xul -random-if(Android) == basic-negcoord.xul basic-negcoord-ref.xul -!= blur.xul blur-notref.xul -== color-inherit.xul color-inherit-ref.xul -== multiple-noblur.xul multiple-noblur-ref.xul +skip-if(B2G&&browserIsRemote) == basic.xul basic-ref.xul +random-if(Android) skip-if(B2G&&browserIsRemote) == basic-negcoord.xul basic-negcoord-ref.xul +skip-if(B2G&&browserIsRemote) != blur.xul blur-notref.xul +skip-if(B2G&&browserIsRemote) == color-inherit.xul color-inherit-ref.xul +skip-if(B2G&&browserIsRemote) == multiple-noblur.xul multiple-noblur-ref.xul HTTP(..) == blur-opacity.html blur-opacity-ref.html == basic.html basic-ref.html diff --git a/layout/reftests/text-svgglyphs/reftest.list b/layout/reftests/text-svgglyphs/reftest.list index dc8790ac8bd5..382383f68039 100644 --- a/layout/reftests/text-svgglyphs/reftest.list +++ b/layout/reftests/text-svgglyphs/reftest.list @@ -20,4 +20,4 @@ pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(cocoaWidget,255,1 pref(gfx.font_rendering.opentype_svg.enabled,true) fails == svg-glyph-mask.svg svg-glyph-mask-ref.svg # bug 872483 pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-paint-server.svg svg-glyph-paint-server-ref.svg pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-transform.svg svg-glyph-transform-ref.svg -pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-extents.html svg-glyph-extents-ref.html +pref(gfx.font_rendering.opentype_svg.enabled,true) random-if(B2G&&browserIsRemote) == svg-glyph-extents.html svg-glyph-extents-ref.html diff --git a/layout/reftests/text/reftest.list b/layout/reftests/text/reftest.list index 552f64c1cdb7..2d6596af6859 100644 --- a/layout/reftests/text/reftest.list +++ b/layout/reftests/text/reftest.list @@ -17,11 +17,11 @@ random-if(!cocoaWidget) == font-size-adjust-02.html font-size-adjust-02-ref.html == justification-2c.html justification-2-ref.html != justification-2d.html justification-2-ref.html HTTP(..) load ligature-with-space-1.html -== line-editing-1a.html line-editing-1-ref.html -== line-editing-1b.html line-editing-1-ref.html -== line-editing-1c.html line-editing-1-ref.html -== line-editing-1d.html line-editing-1-ref.html -== line-editing-1e.html line-editing-1-ref.html +random-if(B2G&&browserIsRemote) == line-editing-1a.html line-editing-1-ref.html +random-if(B2G&&browserIsRemote) == line-editing-1b.html line-editing-1-ref.html +random-if(B2G&&browserIsRemote) == line-editing-1c.html line-editing-1-ref.html +random-if(B2G&&browserIsRemote) == line-editing-1d.html line-editing-1-ref.html +random-if(B2G&&browserIsRemote) == line-editing-1e.html line-editing-1-ref.html fails-if(cocoaWidget||winWidget) HTTP(..) == lineheight-metrics-1.html lineheight-metrics-1-ref.html # bug 657864 == lineheight-percentage-1.html lineheight-percentage-1-ref.html skip-if(B2G) == long-1.html long-ref.html @@ -101,7 +101,7 @@ HTTP(..) == synthetic-bold-papyrus-01.html synthetic-bold-papyrus-01-ref.html != text-align-justify-last-end.html text-align-justify-last-center.html != text-align-justify-last-end.html text-align-justify-last-justify.html != text-align-justify-last-center.html text-align-justify-last-justify.html -== text-align-left-in-rtl-block.html text-align-left-in-rtl-block-ref.html +fails-if(B2G&&browserIsRemote) == text-align-left-in-rtl-block.html text-align-left-in-rtl-block-ref.html HTTP(..) == variation-selector-unsupported-1.html variation-selector-unsupported-1-ref.html == white-space-1a.html white-space-1-ref.html == white-space-1b.html white-space-1-ref.html @@ -163,7 +163,7 @@ fails-if(!cocoaWidget&&!Android&&!B2G) HTTP(..) != arabic-fallback-4.html arabic == arabic-marks-1.html arabic-marks-1-ref.html == 726392-1.html 726392-1-ref.html -== 726392-2.html 726392-2-ref.html +fails-if(B2G&&browserIsRemote) == 726392-2.html 726392-2-ref.html skip-if(B2G) == 726392-3.html 726392-3-ref.html == 745555-1.html 745555-1-ref.html == 745555-2.html 745555-2-ref.html diff --git a/layout/reftests/transform-3d/reftest.list b/layout/reftests/transform-3d/reftest.list index ed1a9eb18b0d..06d35b98524b 100644 --- a/layout/reftests/transform-3d/reftest.list +++ b/layout/reftests/transform-3d/reftest.list @@ -11,7 +11,7 @@ == rotatex-perspective-1c.html rotatex-1-ref.html == rotatex-perspective-3a.html rotatex-perspective-3-ref.html == scalez-1a.html scalez-1-ref.html -== preserve3d-1a.html preserve3d-1-ref.html +random-if(B2G&&browserIsRemote) == preserve3d-1a.html preserve3d-1-ref.html # Bug 988766 == preserve3d-1b.html about:blank == preserve3d-clipped.html about:blank == preserve3d-2a.html preserve3d-2-ref.html @@ -20,7 +20,7 @@ == preserve3d-2d.html preserve3d-2-ref.html == preserve3d-3a.html preserve3d-3-ref.html skip-if(B2G) == preserve3d-4a.html green-rect.html -fuzzy-if(Android&&AndroidVersion>=15,4,300) == preserve3d-5a.html preserve3d-5-ref.html +fuzzy-if(Android&&AndroidVersion>=15,4,300) random-if(B2G&&browserIsRemote) == preserve3d-5a.html preserve3d-5-ref.html # Bug 988767 == scale3d-z.html scalez-1-ref.html fuzzy-if(winWidget,102,580) fuzzy-if(d2d,143,681) fuzzy-if(OSX==10.8,224,924) fuzzy-if(OSX==10.9,224,924) == scale3d-all.html scale3d-1-ref.html # subpixel AA fuzzy-if(winWidget,102,580) fuzzy-if(d2d,143,681) fuzzy-if(OSX==10.8,224,924) fuzzy-if(OSX==10.9,224,924) == scale3d-all-separate.html scale3d-1-ref.html # subpixel AA diff --git a/layout/reftests/transform/reftest.list b/layout/reftests/transform/reftest.list index 810dbd103e72..07d6c99cdfef 100644 --- a/layout/reftests/transform/reftest.list +++ b/layout/reftests/transform/reftest.list @@ -6,9 +6,9 @@ == compound-1a.html compound-1-ref.html != compound-1a.html compound-1-fail.html == dynamic-inherit-1.html dynamic-inherit-1-ref.html -== dynamic-addremove-1a.html dynamic-addremove-1-ref.html -== dynamic-addremove-1b.html dynamic-addremove-1-ref.html -== dynamic-addremove-1c.html dynamic-addremove-1-ref.html +fails-if(B2G&&browserIsRemote) == dynamic-addremove-1a.html dynamic-addremove-1-ref.html +fails-if(B2G&&browserIsRemote) == dynamic-addremove-1b.html dynamic-addremove-1-ref.html +fails-if(B2G&&browserIsRemote) == dynamic-addremove-1c.html dynamic-addremove-1-ref.html # translatex should act like position: relative skip-if(B2G) == translatex-1a.html translatex-1-ref.html # bug 773482 skip-if(B2G) == translatex-1b.html translatex-1-ref.html @@ -115,7 +115,7 @@ skip-if(B2G) == stresstest-1.html stresstest-1-ref.html # bug 773482 # Bugs == 601894-1.html 601894-ref.html == 601894-2.html 601894-ref.html -== 830299-1.html 830299-1-ref.html +random-if(B2G&&browserIsRemote) == 830299-1.html 830299-1-ref.html # Bug 722777 == table-1a.html table-1-ref.html == table-1b.html table-1-ref.html diff --git a/layout/reftests/w3c-css/submitted/ui3/reftest.list b/layout/reftests/w3c-css/submitted/ui3/reftest.list index 1fd280bef738..0c173b8a9925 100644 --- a/layout/reftests/w3c-css/submitted/ui3/reftest.list +++ b/layout/reftests/w3c-css/submitted/ui3/reftest.list @@ -8,6 +8,6 @@ == box-sizing-padding-box-001.xht box-sizing-padding-box-001-ref.xht == box-sizing-padding-box-002.xht box-sizing-padding-box-002-ref.xht == box-sizing-padding-box-003.xht box-sizing-padding-box-003-ref.xht -fails-if(B2G) random-if(Android) == box-sizing-replaced-001.xht box-sizing-replaced-001-ref.xht -== box-sizing-replaced-002.xht box-sizing-replaced-002-ref.xht -== box-sizing-replaced-003.xht box-sizing-replaced-003-ref.xht +random-if(Android) skip-if(B2G&&browserIsRemote) == box-sizing-replaced-001.xht box-sizing-replaced-001-ref.xht # Bug 982547 +random-if(B2G&&browserIsRemote) == box-sizing-replaced-002.xht box-sizing-replaced-002-ref.xht +random-if(B2G&&browserIsRemote) == box-sizing-replaced-003.xht box-sizing-replaced-003-ref.xht diff --git a/layout/reftests/webcomponents/reftest.list b/layout/reftests/webcomponents/reftest.list index 4c9abe70f7af..b5e751ecf260 100644 --- a/layout/reftests/webcomponents/reftest.list +++ b/layout/reftests/webcomponents/reftest.list @@ -1,4 +1,4 @@ -pref(dom.webcomponents.enabled,true) == cross-tree-selection-1.html cross-tree-selection-1-ref.html +pref(dom.webcomponents.enabled,true) random-if(B2G&&browserIsRemote) == cross-tree-selection-1.html cross-tree-selection-1-ref.html pref(dom.webcomponents.enabled,true) == basic-shadow-1.html basic-shadow-1-ref.html pref(dom.webcomponents.enabled,true) == basic-shadow-2.html basic-shadow-2-ref.html pref(dom.webcomponents.enabled,true) == basic-shadow-3.html basic-shadow-3-ref.html diff --git a/layout/reftests/xul-document-load/reftest.list b/layout/reftests/xul-document-load/reftest.list index a726e216f307..1ffb71b3fd5e 100644 --- a/layout/reftests/xul-document-load/reftest.list +++ b/layout/reftests/xul-document-load/reftest.list @@ -1,23 +1,23 @@ -== test001.xul reference-green-window.xul -== test002.xul reference-green-window.xul -== test003.xul reference-green-window.xul -== test004.xul reference-green-window.xul -== test005.xul reference-green-window.xul -== test006.xul reference-green-window.xul -== test007.xul reference-green-window.xul -== test008.xul reference-green-window.xul -== test009.xul reference-green-window.xul -== test010.xul reference-green-window.xul -== test011.xul reference-green-window.xul -== test012.xul reference-green-window.xul -== test013.xul reference-green-window.xul -== test014.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test001.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test002.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test003.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test004.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test005.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test006.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test007.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test008.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test009.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test010.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test011.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test012.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test013.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test014.xul reference-green-window.xul # Disabled due to compartments for now. -#== test015.xul reference-green-window.xul -== test016.xul reference-green-window.xul -== test017.xul reference-green-window.xul -== test018.xul reference-green-window.xul -== test019.xul reference-green-window.xul -== test020.xul reference-green-window.xul -== test021.xul reference-green-window.xul -== test022.xul reference-green-window.xul +#skip-if(B2G&&browserIsRemote) == test015.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test016.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test017.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test018.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test019.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test020.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test021.xul reference-green-window.xul +skip-if(B2G&&browserIsRemote) == test022.xul reference-green-window.xul diff --git a/layout/reftests/xul/reftest.list b/layout/reftests/xul/reftest.list index 393656726517..fbb05108459b 100644 --- a/layout/reftests/xul/reftest.list +++ b/layout/reftests/xul/reftest.list @@ -1,9 +1,9 @@ -== menuitem-key.xul menuitem-key-ref.xul +skip-if(B2G&&browserIsRemote) == menuitem-key.xul menuitem-key-ref.xul # these random-if(Android) are due to differences between Android Native & Xul, see bug 732569 -random-if(Android||B2G) == menulist-shrinkwrap-1.xul menulist-shrinkwrap-1-ref.xul -random-if(Android||B2G) fails-if(winWidget) == menulist-shrinkwrap-2.xul menulist-shrinkwrap-2-ref.xul -== textbox-overflow-1.xul textbox-overflow-1-ref.xul # for bug 749658 +random-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == menulist-shrinkwrap-1.xul menulist-shrinkwrap-1-ref.xul +random-if(Android||(B2G&&browserIsRemote)) fails-if(winWidget) skip-if(B2G&&browserIsRemote) == menulist-shrinkwrap-2.xul menulist-shrinkwrap-2-ref.xul +skip-if(B2G&&browserIsRemote) == textbox-overflow-1.xul textbox-overflow-1-ref.xul # for bug 749658 # accesskeys are not normally displayed on Mac, so skip this test -skip-if(cocoaWidget) == accesskey.xul accesskey-ref.xul -fails-if(cocoaWidget) == tree-row-outline-1.xul tree-row-outline-1-ref.xul -!= tree-row-outline-1.xul tree-row-outline-1-notref.xul +skip-if(cocoaWidget) skip-if(B2G&&browserIsRemote) == accesskey.xul accesskey-ref.xul +fails-if(cocoaWidget) skip-if(B2G&&browserIsRemote) == tree-row-outline-1.xul tree-row-outline-1-ref.xul +skip-if(B2G&&browserIsRemote) != tree-row-outline-1.xul tree-row-outline-1-notref.xul diff --git a/layout/xul/grid/reftests/reftest.list b/layout/xul/grid/reftests/reftest.list index 80f7925a0882..15c3c0b7944c 100644 --- a/layout/xul/grid/reftests/reftest.list +++ b/layout/xul/grid/reftests/reftest.list @@ -1,18 +1,18 @@ -== row-sizing-1.xul row-sizing-1-ref.xul -== column-sizing-1.xul column-sizing-1-ref.xul -== row-or-column-sizing-1.xul row-or-column-sizing-2.xul -== row-or-column-sizing-1.xul row-or-column-sizing-3.xul -== row-or-column-sizing-1.xul row-or-column-sizing-4.xul -== z-order-1.xul z-order-1-ref.xul -== z-order-2.xul z-order-2-ref.xul -== not-full-basic.xul not-full-basic-ref.xhtml -== not-full-grid-pack-align.xul not-full-basic-ref.xhtml -== not-full-row-group-align.xul not-full-row-group-align-ref.xhtml # does anyone want/need this behavior? -== not-full-row-group-pack.xul not-full-row-group-pack-ref.xhtml -== not-full-row-group-direction.xul not-full-row-group-direction-ref.xhtml -== not-full-row-leaf-align.xul not-full-basic-ref.xhtml -== not-full-row-leaf-pack.xul not-full-row-leaf-pack-ref.xhtml -== not-full-row-leaf-direction.xul not-full-row-leaf-pack-ref.xhtml +skip-if(B2G&&browserIsRemote) == row-sizing-1.xul row-sizing-1-ref.xul +skip-if(B2G&&browserIsRemote) == column-sizing-1.xul column-sizing-1-ref.xul +skip-if(B2G&&browserIsRemote) == row-or-column-sizing-1.xul row-or-column-sizing-2.xul +skip-if(B2G&&browserIsRemote) == row-or-column-sizing-1.xul row-or-column-sizing-3.xul +skip-if(B2G&&browserIsRemote) == row-or-column-sizing-1.xul row-or-column-sizing-4.xul +skip-if(B2G&&browserIsRemote) == z-order-1.xul z-order-1-ref.xul +skip-if(B2G&&browserIsRemote) == z-order-2.xul z-order-2-ref.xul +skip-if(B2G&&browserIsRemote) == not-full-basic.xul not-full-basic-ref.xhtml +skip-if(B2G&&browserIsRemote) == not-full-grid-pack-align.xul not-full-basic-ref.xhtml +skip-if(B2G&&browserIsRemote) == not-full-row-group-align.xul not-full-row-group-align-ref.xhtml # does anyone want/need this behavior? +skip-if(B2G&&browserIsRemote) == not-full-row-group-pack.xul not-full-row-group-pack-ref.xhtml +skip-if(B2G&&browserIsRemote) == not-full-row-group-direction.xul not-full-row-group-direction-ref.xhtml +skip-if(B2G&&browserIsRemote) == not-full-row-leaf-align.xul not-full-basic-ref.xhtml +skip-if(B2G&&browserIsRemote) == not-full-row-leaf-pack.xul not-full-row-leaf-pack-ref.xhtml +skip-if(B2G&&browserIsRemote) == not-full-row-leaf-direction.xul not-full-row-leaf-pack-ref.xhtml skip-if(B2G) fails-if(Android&&browserIsRemote) == scrollable-columns.xul scrollable-columns-ref.xhtml # bug 650597, 732569 -fails == scrollable-rows.xul scrollable-rows-ref.xhtml -== sizing-2d.xul sizing-2d-ref.xul +fails skip-if(B2G&&browserIsRemote) == scrollable-rows.xul scrollable-rows-ref.xhtml +skip-if(B2G&&browserIsRemote) == sizing-2d.xul sizing-2d-ref.xul diff --git a/layout/xul/reftest/reftest.list b/layout/xul/reftest/reftest.list index 7452737be091..deeb0ef34ec0 100644 --- a/layout/xul/reftest/reftest.list +++ b/layout/xul/reftest/reftest.list @@ -1,5 +1,5 @@ -fails-if(Android||B2G) == textbox-multiline-noresize.xul textbox-multiline-ref.xul # reference is blank on Android (due to no native theme support?) -!= textbox-multiline-resize.xul textbox-multiline-ref.xul -== popup-explicit-size.xul popup-explicit-size-ref.xul -random-if(Android) == image-size.xul image-size-ref.xul -== image-scaling-min-height-1.xul image-scaling-min-height-1-ref.xul +fails-if(Android||(B2G&&browserIsRemote)) skip-if(B2G&&browserIsRemote) == textbox-multiline-noresize.xul textbox-multiline-ref.xul # reference is blank on Android (due to no native theme support?) +skip-if(B2G&&browserIsRemote) != textbox-multiline-resize.xul textbox-multiline-ref.xul +skip-if(B2G&&browserIsRemote) == popup-explicit-size.xul popup-explicit-size-ref.xul +random-if(Android) skip-if(B2G&&browserIsRemote) == image-size.xul image-size-ref.xul +skip-if(B2G&&browserIsRemote) == image-scaling-min-height-1.xul image-scaling-min-height-1-ref.xul diff --git a/toolkit/content/tests/reftests/reftest.list b/toolkit/content/tests/reftests/reftest.list index a37a9722a523..963e371386d0 100644 --- a/toolkit/content/tests/reftests/reftest.list +++ b/toolkit/content/tests/reftests/reftest.list @@ -1,2 +1,2 @@ -random-if(cocoaWidget) == bug-442419-progressmeter-max.xul bug-442419-progressmeter-max-ref.xul # fails most of the time on Mac because progress meter animates -!= textbox-multiline-default-value.xul textbox-multiline-empty.xul +skip-if(B2G&&browserIsRemote) random-if(cocoaWidget) == bug-442419-progressmeter-max.xul bug-442419-progressmeter-max-ref.xul # fails most of the time on Mac because progress meter animates # Bug 974780 +skip-if(B2G&&browserIsRemote) != textbox-multiline-default-value.xul textbox-multiline-empty.xul # Bug 974780 From c72ded32539aa5c0f3295523d59265ca82848fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez?= Date: Fri, 23 May 2014 14:21:09 -0700 Subject: [PATCH 03/37] Bug 903291 - App download hangs indefinitely if the child process dies before confirming the install. r=fabrice * * * Bug 903291 - App download hangs indefinitely if the child process dies before confirming the install --- dom/apps/src/AppsServiceChild.jsm | 285 +++++++++++++++++- dom/apps/src/Webapps.js | 297 ++++++++----------- dom/apps/src/Webapps.jsm | 113 ++++--- dom/apps/tests/test_packaged_app_common.js | 1 + dom/apps/tests/test_packaged_app_update.html | 19 +- dom/apps/tests/test_receipt_operations.html | 2 +- toolkit/devtools/server/actors/webapps.js | 2 +- 7 files changed, 458 insertions(+), 261 deletions(-) diff --git a/dom/apps/src/AppsServiceChild.jsm b/dom/apps/src/AppsServiceChild.jsm index c7cb9890f768..ed454bc40d14 100644 --- a/dom/apps/src/AppsServiceChild.jsm +++ b/dom/apps/src/AppsServiceChild.jsm @@ -8,10 +8,10 @@ const Cu = Components.utils; const Cc = Components.classes; const Ci = Components.interfaces; -// This module exposes a subset of the functionnalities of the parent DOM -// Registry to content processes, to be be used from the AppsService component. +// This module exposes a subset of the functionalities of the parent DOM +// Registry to content processes, to be used from the AppsService component. -this.EXPORTED_SYMBOLS = ["DOMApplicationRegistry"]; +this.EXPORTED_SYMBOLS = ["DOMApplicationRegistry", "WrappedManifestCache"]; Cu.import("resource://gre/modules/AppsUtils.jsm"); Cu.import("resource://gre/modules/Services.jsm"); @@ -20,54 +20,315 @@ function debug(s) { //dump("-*- AppsServiceChild.jsm: " + s + "\n"); } +const APPS_IPC_MSG_NAMES = [ + "Webapps:AddApp", + "Webapps:RemoveApp", + "Webapps:UpdateApp", + "Webapps:CheckForUpdate:Return:KO", + "Webapps:FireEvent", + "Webapps:UpdateState" +]; + +// A simple cache for the wrapped manifests. +this.WrappedManifestCache = { + _cache: { }, + + // Gets an entry from the cache, and populates the cache if needed. + get: function mcache_get(aManifestURL, aManifest, aWindow, aInnerWindowID) { + if (!(aManifestURL in this._cache)) { + this._cache[aManifestURL] = { }; + } + + let winObjs = this._cache[aManifestURL]; + if (!(aInnerWindowID in winObjs)) { + winObjs[aInnerWindowID] = Cu.cloneInto(aManifest, aWindow); + } + + return winObjs[aInnerWindowID]; + }, + + // Invalidates an entry in the cache. + evict: function mcache_evict(aManifestURL, aInnerWindowID) { + debug("Evicting manifest " + aManifestURL + " window ID " + + aInnerWindowID); + if (aManifestURL in this._cache) { + let winObjs = this._cache[aManifestURL]; + if (aInnerWindowID in winObjs) { + delete winObjs[aInnerWindowID]; + } + + if (Object.keys(winObjs).length == 0) { + delete this._cache[aManifestURL]; + } + } + }, + + observe: function(aSubject, aTopic, aData) { + // Clear the cache on memory pressure. + this._cache = { }; + Cu.forceGC(); + }, + + init: function() { + Services.obs.addObserver(this, "memory-pressure", false); + } +}; + +this.WrappedManifestCache.init(); + + +// DOMApplicationRegistry keeps a cache containing a list of apps in the device. +// This information is updated with the data received from the main process and +// it is queried by the DOM objects to set their state. +// This module handle all the messages broadcasted from the parent process, +// including DOM events, which are dispatched to the corresponding DOM objects. + this.DOMApplicationRegistry = { + // DOMApps will hold a list of arrays of weak references to + // mozIDOMApplication objects indexed by manifest URL. + DOMApps: {}, + init: function init() { - debug("init"); this.cpmm = Cc["@mozilla.org/childprocessmessagemanager;1"] .getService(Ci.nsISyncMessageSender); - ["Webapps:AddApp", "Webapps:RemoveApp"].forEach((function(aMsgName) { + APPS_IPC_MSG_NAMES.forEach((function(aMsgName) { this.cpmm.addMessageListener(aMsgName, this); }).bind(this)); + this.cpmm.sendAsyncMessage("Webapps:RegisterForMessages", { + messages: APPS_IPC_MSG_NAMES + }); + // We need to prime the cache with the list of apps. - // XXX shoud we do this async and block callers if it's not yet there? - this.webapps = this.cpmm.sendSyncMessage("Webapps:GetList", { })[0]; + // XXX should we do this async and block callers if it's not yet there? + let list = this.cpmm.sendSyncMessage("Webapps:GetList", { })[0]; + this.webapps = list.webapps; // We need a fast mapping from localId -> app, so we add an index. + // And add the manifest to the app object. this.localIdIndex = { }; for (let id in this.webapps) { let app = this.webapps[id]; this.localIdIndex[app.localId] = app; + app.manifest = list.manifests[id]; } Services.obs.addObserver(this, "xpcom-shutdown", false); }, observe: function(aSubject, aTopic, aData) { - // cpmm.addMessageListener causes the DOMApplicationRegistry object to live - // forever if we don't clean up properly. + // cpmm.addMessageListener causes the DOMApplicationRegistry object to + // live forever if we don't clean up properly. this.webapps = null; - ["Webapps:AddApp", "Webapps:RemoveApp"].forEach((function(aMsgName) { + this.DOMApps = null; + + APPS_IPC_MSG_NAMES.forEach((aMsgName) => { this.cpmm.removeMessageListener(aMsgName, this); - }).bind(this)); + }); + + this.cpmm.sendAsyncMessage("Webapps:UnregisterForMessages", + APPS_IPC_MSG_NAMES) }, receiveMessage: function receiveMessage(aMessage) { debug("Received " + aMessage.name + " message."); - let msg = aMessage.json; + let msg = aMessage.data; switch (aMessage.name) { case "Webapps:AddApp": this.webapps[msg.id] = msg.app; this.localIdIndex[msg.app.localId] = msg.app; break; case "Webapps:RemoveApp": + delete this.DOMApps[this.webapps[msg.id].manifestURL]; delete this.localIdIndex[this.webapps[msg.id].localId]; delete this.webapps[msg.id]; break; + case "Webapps:UpdateApp": + let app = this.webapps[msg.oldId]; + if (!app) { + return; + } + + if (msg.app) { + for (let prop in msg.app) { + app[prop] = msg.app[prop]; + } + } + + this.webapps[msg.newId] = app; + this.localIdIndex[app.localId] = app; + delete this.webapps[msg.oldId]; + + let apps = this.DOMApps[msg.app.manifestURL]; + if (!apps) { + return; + } + for (let i = 0; i < apps.length; i++) { + let domApp = apps[i].get(); + if (!domApp) { + apps.splice(i); + continue; + } + domApp._proxy = new Proxy(domApp, { + get: function(target, prop) { + if (!DOMApplicationRegistry.webapps[msg.newId]) { + return; + } + return DOMApplicationRegistry.webapps[msg.newId][prop]; + }, + set: function(target, prop, val) { + if (!DOMApplicationRegistry.webapps[msg.newId]) { + return; + } + DOMApplicationRegistry.webapps[msg.newId][prop] = val; + return; + }, + }); + } + break; + case "Webapps:FireEvent": + this._fireEvent(aMessage); + break; + case "Webapps:UpdateState": + this._updateState(msg); + break; + case "Webapps:CheckForUpdate:Return:KO": + let DOMApps = this.DOMApps[msg.manifestURL]; + if (!DOMApps || !msg.requestID) { + return; + } + DOMApps.forEach((DOMApp) => { + let domApp = DOMApp.get(); + if (domApp && msg.requestID) { + domApp._fireRequestResult(aMessage, true /* aIsError */); + } + }); + break; } }, + /** + * mozIDOMApplication management + */ + + // Every time a DOM app is created, we save a weak reference to it that will + // be used to dispatch events and fire request results. + addDOMApp: function(aApp, aManifestURL, aId) { + let weakRef = Cu.getWeakReference(aApp); + + if (!this.DOMApps[aManifestURL]) { + this.DOMApps[aManifestURL] = []; + } + + let apps = this.DOMApps[aManifestURL]; + + // Get rid of dead weak references. + for (let i = 0; i < apps.length; i++) { + if (!apps[i].get()) { + apps.splice(i); + } + } + + apps.push(weakRef); + + // Each DOM app contains a proxy object used to build their state. We + // return the handler for this proxy object with traps to get and set + // app properties kept in the DOMApplicationRegistry app cache. + return { + get: function(target, prop) { + if (!DOMApplicationRegistry.webapps[aId]) { + return; + } + return DOMApplicationRegistry.webapps[aId][prop]; + }, + set: function(target, prop, val) { + if (!DOMApplicationRegistry.webapps[aId]) { + return; + } + DOMApplicationRegistry.webapps[aId][prop] = val; + return; + }, + }; + }, + + _fireEvent: function(aMessage) { + let msg = aMessage.data; + debug("_fireEvent " + JSON.stringify(msg)); + if (!this.DOMApps || !msg.manifestURL || !msg.eventType) { + return; + } + + let DOMApps = this.DOMApps[msg.manifestURL]; + if (!DOMApps) { + return; + } + + // The parent might ask childs to trigger more than one event in one + // shot, so in order to avoid needless IPC we allow an array for the + // 'eventType' IPC message field. + if (!Array.isArray(msg.eventType)) { + msg.eventType = [msg.eventType]; + } + + DOMApps.forEach((DOMApp) => { + let domApp = DOMApp.get(); + if (!domApp) { + return; + } + msg.eventType.forEach((aEventType) => { + if ('on' + aEventType in domApp) { + domApp._fireEvent(aEventType); + } + }); + + if (msg.requestID) { + aMessage.data.result = msg.manifestURL; + domApp._fireRequestResult(aMessage); + } + }); + }, + + _updateState: function(aMessage) { + if (!this.DOMApps || !aMessage.id) { + return; + } + + let app = this.webapps[aMessage.id]; + if (!app) { + return; + } + + if (aMessage.app) { + for (let prop in aMessage.app) { + app[prop] = aMessage.app[prop]; + } + } + + if (aMessage.error) { + app.downloadError = aMessage.error; + } + + if (aMessage.manifest) { + app.manifest = aMessage.manifest; + // Evict the wrapped manifest cache for all the affected DOM objects. + let DOMApps = this.DOMApps[app.manifestURL]; + if (!DOMApps) { + return; + } + DOMApps.forEach((DOMApp) => { + let domApp = DOMApp.get(); + if (!domApp) { + return; + } + WrappedManifestCache.evict(app.manifestURL, domApp.innerWindowID); + }); + } + }, + + /** + * nsIAppsService API + */ getAppByManifestURL: function getAppByManifestURL(aManifestURL) { debug("getAppByManifestURL " + aManifestURL); return AppsUtils.getAppByManifestURL(this.webapps, aManifestURL); diff --git a/dom/apps/src/Webapps.js b/dom/apps/src/Webapps.js index 49138a527b5f..8691875fd722 100644 --- a/dom/apps/src/Webapps.js +++ b/dom/apps/src/Webapps.js @@ -12,6 +12,7 @@ Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/DOMRequestHelper.jsm"); Cu.import("resource://gre/modules/AppsUtils.jsm"); Cu.import("resource://gre/modules/BrowserElementPromptService.jsm"); +Cu.import("resource://gre/modules/AppsServiceChild.jsm"); XPCOMUtils.defineLazyServiceGetter(this, "cpmm", "@mozilla.org/childprocessmessagemanager;1", @@ -264,50 +265,9 @@ WebappsRegistry.prototype = { * mozIDOMApplication object */ -// A simple cache for the wrapped manifests. -let manifestCache = { - _cache: { }, - - // Gets an entry from the cache, and populates the cache if needed. - get: function mcache_get(aManifestURL, aManifest, aWindow, aInnerWindowID) { - if (!(aManifestURL in this._cache)) { - this._cache[aManifestURL] = { }; - } - - let winObjs = this._cache[aManifestURL]; - if (!(aInnerWindowID in winObjs)) { - winObjs[aInnerWindowID] = Cu.cloneInto(aManifest, aWindow); - } - - return winObjs[aInnerWindowID]; - }, - - // Invalidates an entry in the cache. - evict: function mcache_evict(aManifestURL, aInnerWindowID) { - if (aManifestURL in this._cache) { - let winObjs = this._cache[aManifestURL]; - if (aInnerWindowID in winObjs) { - delete winObjs[aInnerWindowID]; - } - - if (Object.keys(winObjs).length == 0) { - delete this._cache[aManifestURL]; - } - } - }, - - observe: function(aSubject, aTopic, aData) { - // Clear the cache on memory pressure. - this._cache = { }; - }, - - init: function() { - Services.obs.addObserver(this, "memory-pressure", false); - } -}; - function createApplicationObject(aWindow, aApp) { - let app = Cc["@mozilla.org/webapps/application;1"].createInstance(Ci.mozIDOMApplication); + let app = Cc["@mozilla.org/webapps/application;1"] + .createInstance(Ci.mozIDOMApplication); app.wrappedJSObject.init(aWindow, aApp); return app; } @@ -320,27 +280,12 @@ WebappsApplication.prototype = { __proto__: DOMRequestIpcHelper.prototype, init: function(aWindow, aApp) { + let proxyHandler = DOMApplicationRegistry.addDOMApp(this, + aApp.manifestURL, + aApp.id); + this._proxy = new Proxy(this, proxyHandler); + this._window = aWindow; - let principal = this._window.document.nodePrincipal; - this._appStatus = principal.appStatus; - this.origin = aApp.origin; - this._manifest = aApp.manifest; - this._updateManifest = aApp.updateManifest; - this.manifestURL = aApp.manifestURL; - this.receipts = aApp.receipts; - this.installOrigin = aApp.installOrigin; - this.installTime = aApp.installTime; - this.installState = aApp.installState || "installed"; - this.removable = aApp.removable; - this.lastUpdateCheck = aApp.lastUpdateCheck ? aApp.lastUpdateCheck - : Date.now(); - this.updateTime = aApp.updateTime ? aApp.updateTime - : aApp.installTime; - this.progress = NaN; - this.downloadAvailable = aApp.downloadAvailable; - this.downloading = aApp.downloading; - this.readyToApplyDownload = aApp.readyToApplyDownload; - this.downloadSize = aApp.downloadSize || 0; this._onprogress = null; this._ondownloadsuccess = null; @@ -348,40 +293,83 @@ WebappsApplication.prototype = { this._ondownloadavailable = null; this._ondownloadapplied = null; - this._downloadError = null; + this.initDOMRequestHelper(aWindow); + }, - this.initDOMRequestHelper(aWindow, [ - { name: "Webapps:CheckForUpdate:Return:KO", weakRef: true }, - { name: "Webapps:Connect:Return:OK", weakRef: true }, - { name: "Webapps:Connect:Return:KO", weakRef: true }, - { name: "Webapps:FireEvent", weakRef: true }, - { name: "Webapps:GetConnections:Return:OK", weakRef: true }, - { name: "Webapps:UpdateState", weakRef: true } - ]); + get _appStatus() { + return this._proxy.appStatus; + }, - cpmm.sendAsyncMessage("Webapps:RegisterForMessages", { - messages: ["Webapps:FireEvent", - "Webapps:UpdateState"], - app: { - id: this.id, - manifestURL: this.manifestURL, - installState: this.installState, - downloading: this.downloading - } - }); + get downloadAvailable() { + return this._proxy.downloadAvailable; + }, + + get downloading() { + return this._proxy.downloading; + }, + + get downloadSize() { + return this._proxy.downloadSize; + }, + + get installOrigin() { + return this._proxy.installOrigin; + }, + + get installState() { + return this._proxy.installState; + }, + + get installTime() { + return this._proxy.installTime; + }, + + get lastUpdateCheck() { + return this._proxy.lastUpdateCheck; + }, + + get manifestURL() { + return this._proxy.manifestURL; + }, + + get origin() { + return this._proxy.origin; + }, + + get progress() { + return this._proxy.progress; + }, + + get readyToApplyDownload() { + return this._proxy.readyToApplyDownload; + }, + + get receipts() { + return this._proxy.receipts; + }, + + set receipts(aReceipts) { + this._proxy.receipts = aReceipts; + }, + + get removable() { + return this._proxy.removable; + }, + + get updateTime() { + return this._proxy.updateTime; }, get manifest() { - return manifestCache.get(this.manifestURL, - this._manifest, - this._window, - this.innerWindowID); + return WrappedManifestCache.get(this.manifestURL, + this._proxy.manifest, + this._window, + this.innerWindowID); }, get updateManifest() { - return this.updateManifest = - this._updateManifest ? Cu.cloneInto(this._updateManifest, this._window) - : null; + return this._proxy.updateManifest ? + Cu.cloneInto(this._proxy.updateManifest, this._window) : null; }, set onprogress(aCallback) { @@ -425,7 +413,7 @@ WebappsApplication.prototype = { }, get downloadError() { - return new this._window.DOMError(this._downloadError || ''); + return new this._window.DOMError(this._proxy.downloadError || ''); }, download: function() { @@ -467,12 +455,11 @@ WebappsApplication.prototype = { BrowserElementPromptService.getBrowserElementChildForWindow(this._window); if (browserChild) { this.addMessageListeners("Webapps:ClearBrowserData:Return"); - browserChild.messageManager.sendAsyncMessage( - "Webapps:ClearBrowserData", - { manifestURL: this.manifestURL, - oid: this._id, - requestID: this.getRequestId(request) } - ); + browserChild.messageManager.sendAsyncMessage("Webapps:ClearBrowserData", { + manifestURL: this.manifestURL, + oid: this._id, + requestID: this.getRequestId(request) + }); } else { Services.DOMRequest.fireErrorAsync(request, "NO_CLEARABLE_BROWSER"); } @@ -480,28 +467,33 @@ WebappsApplication.prototype = { }, connect: function(aKeyword, aRules) { + this.addMessageListeners(["Webapps:Connect:Return:OK", + "Webapps:Connect:Return:KO"]); return this.createPromise(function (aResolve, aReject) { - cpmm.sendAsyncMessage("Webapps:Connect", - { keyword: aKeyword, - rules: aRules, - manifestURL: this.manifestURL, - outerWindowID: this._id, - requestID: this.getPromiseResolverId({ - resolve: aResolve, - reject: aReject - })}); + cpmm.sendAsyncMessage("Webapps:Connect", { + keyword: aKeyword, + rules: aRules, + manifestURL: this.manifestURL, + outerWindowID: this._id, + requestID: this.getPromiseResolverId({ + resolve: aResolve, + reject: aReject + }) + }); }.bind(this)); }, getConnections: function() { + this.addMessageListeners("Webapps:getConnections:Return:OK"); return this.createPromise(function (aResolve, aReject) { - cpmm.sendAsyncMessage("Webapps:GetConnections", - { manifestURL: this.manifestURL, - outerWindowID: this._id, - requestID: this.getPromiseResolverId({ - resolve: aResolve, - reject: aReject - })}); + cpmm.sendAsyncMessage("Webapps:GetConnections", { + manifestURL: this.manifestURL, + outerWindowID: this._id, + requestID: this.getPromiseResolverId({ + resolve: aResolve, + reject: aReject + }) + }); }.bind(this)); }, @@ -550,12 +542,7 @@ WebappsApplication.prototype = { uninit: function() { this._onprogress = null; - cpmm.sendAsyncMessage("Webapps:UnregisterForMessages", [ - "Webapps:FireEvent", - "Webapps:UpdateState" - ]); - - manifestCache.evict(this.manifestURL, this.innerWindowID); + WrappedManifestCache.evict(this.manifestURL, this.innerWindowID); }, _fireEvent: function(aName) { @@ -572,21 +559,15 @@ WebappsApplication.prototype = { } }, - _updateState: function(aMsg) { - if (aMsg.app) { - for (let prop in aMsg.app) { - this[prop] = aMsg.app[prop]; - } - } - - if (aMsg.error) { - this._downloadError = aMsg.error; - } - - if (aMsg.manifest) { - this._manifest = aMsg.manifest; - manifestCache.evict(this.manifestURL, this.innerWindowID); + _fireRequestResult: function(aMessage, aIsError) { + let req; + let msg = aMessage.data; + req = this.takeRequest(msg.requestID); + if (!req) { + return; } + aIsError ? Services.DOMRequest.fireError(req, msg.error) + : Services.DOMRequest.fireSuccess(req, msg.result); }, receiveMessage: function(aMessage) { @@ -600,10 +581,7 @@ WebappsApplication.prototype = { req = this.takeRequest(msg.requestID); } - // ondownload* callbacks should be triggered on all app instances - if ((msg.oid != this._id || !req) && - aMessage.name !== "Webapps:FireEvent" && - aMessage.name !== "Webapps:UpdateState") { + if (msg.oid != this._id || !req) { return; } @@ -618,45 +596,13 @@ WebappsApplication.prototype = { "Webapps:Launch:Return:KO"]); Services.DOMRequest.fireSuccess(req, null); break; - case "Webapps:CheckForUpdate:Return:KO": - Services.DOMRequest.fireError(req, msg.error); - break; - case "Webapps:FireEvent": - if (msg.manifestURL != this.manifestURL) { - return; - } - - // The parent might ask childs to trigger more than one event in one - // shot, so in order to avoid needless IPC we allow an array for the - // 'eventType' IPC message field. - if (!Array.isArray(msg.eventType)) { - msg.eventType = [msg.eventType]; - } - - msg.eventType.forEach((aEventType) => { - if ("_on" + aEventType in this) { - this._fireEvent(aEventType); - } else { - dump("Unsupported event type " + aEventType + "\n"); - } - }); - - if (req) { - Services.DOMRequest.fireSuccess(req, this.manifestURL); - } - break; - case "Webapps:UpdateState": - if (msg.manifestURL != this.manifestURL) { - return; - } - - this._updateState(msg); - break; case "Webapps:ClearBrowserData:Return": this.removeMessageListeners(aMessage.name); Services.DOMRequest.fireSuccess(req, null); break; case "Webapps:Connect:Return:OK": + this.removeMessageListeners(["Webapps:Connect:Return:OK", + "Webapps:Connect:Return:KO"]); let messagePorts = []; msg.messagePortIDs.forEach((aPortID) => { let port = new this._window.MozInterAppMessagePort(aPortID); @@ -665,9 +611,12 @@ WebappsApplication.prototype = { req.resolve(messagePorts); break; case "Webapps:Connect:Return:KO": + this.removeMessageListeners(["Webapps:Connect:Return:OK", + "Webapps:Connect:Return:KO"]); req.reject("No connections registered"); break; case "Webapps:GetConnections:Return:OK": + this.removeMessageListeners(aMessage.name); let connections = []; msg.connections.forEach((aConnection) => { let connection = @@ -849,12 +798,8 @@ WebappsApplicationMgmt.prototype = { break; case "Webapps:Uninstall:Broadcast:Return:OK": if (this._onuninstall) { - let detail = { - manifestURL: msg.manifestURL, - origin: msg.origin - }; let event = new this._window.MozApplicationEvent("applicationuninstall", - { application : createApplicationObject(this._window, detail) }); + { application : createApplicationObject(this._window, msg) }); this._onuninstall.handleEvent(event); } break; @@ -883,7 +828,5 @@ WebappsApplicationMgmt.prototype = { classDescription: "Webapps Application Mgmt"}) } -manifestCache.init(); - this.NSGetFactory = XPCOMUtils.generateNSGetFactory([WebappsRegistry, WebappsApplication]); diff --git a/dom/apps/src/Webapps.jsm b/dom/apps/src/Webapps.jsm index ec88ecf5b052..f44ea64e2b01 100755 --- a/dom/apps/src/Webapps.jsm +++ b/dom/apps/src/Webapps.jsm @@ -1121,8 +1121,7 @@ this.DOMApplicationRegistry = { this.removeMessageListener(["Webapps:Internal:AllMessages"], mm); break; case "Webapps:GetList": - this.addMessageListener(["Webapps:AddApp", "Webapps:RemoveApp"], null, mm); - return this.webapps; + return { webapps: this.webapps, manifests: this._manifestCache }; case "Webapps:Download": this.startDownload(msg.manifestURL); break; @@ -1304,7 +1303,7 @@ this.DOMApplicationRegistry = { downloading: false }, error: error, - manifestURL: app.manifestURL, + id: app.id }) this.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", @@ -1334,7 +1333,7 @@ this.DOMApplicationRegistry = { if (!app.downloadAvailable) { this.broadcastMessage("Webapps:UpdateState", { error: "NO_DOWNLOAD_AVAILABLE", - manifestURL: app.manifestURL + id: app.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", @@ -1382,7 +1381,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, manifest: jsonManifest, - manifestURL: aManifestURL + id: app.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadsuccess", @@ -1426,7 +1425,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, - manifestURL: aManifestURL + id: app.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadsuccess", @@ -1526,7 +1525,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, manifest: aData, - manifestURL: app.manifestURL + id: app.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadapplied", @@ -1566,7 +1565,7 @@ this.DOMApplicationRegistry = { installState: aApp.installState, progress: 0 }, - manifestURL: aApp.manifestURL + id: aApp.id }); let cacheUpdate = updateSvc.scheduleAppUpdate( appcacheURI, docURI, aApp.localId, false, aProfileDir); @@ -1616,6 +1615,7 @@ this.DOMApplicationRegistry = { debug("checkForUpdate for " + aData.manifestURL); function sendError(aError) { + debug("checkForUpdate error " + aError); aData.error = aError; aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); } @@ -1645,8 +1645,7 @@ this.DOMApplicationRegistry = { // then we can't have an update. if (app.origin.startsWith("app://") && app.manifestURL.startsWith("app://")) { - aData.error = "NOT_UPDATABLE"; - aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); + sendError("NOT_UPDATABLE"); return; } @@ -1663,8 +1662,7 @@ this.DOMApplicationRegistry = { if (onlyCheckAppCache) { // Bail out for packaged apps. if (app.origin.startsWith("app://")) { - aData.error = "NOT_UPDATABLE"; - aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); + sendError("NOT_UPDATABLE"); return; } @@ -1672,8 +1670,7 @@ this.DOMApplicationRegistry = { this._readManifests([{ id: id }]).then((aResult) => { let manifest = aResult[0].manifest; if (!manifest.appcache_path) { - aData.error = "NOT_UPDATABLE"; - aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); + sendError("NOT_UPDATABLE"); return; } @@ -1689,7 +1686,7 @@ this.DOMApplicationRegistry = { this._saveApps().then(() => { this.broadcastMessage("Webapps:UpdateState", { app: app, - manifestURL: app.manifestURL + id: app.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadavailable", @@ -1698,8 +1695,7 @@ this.DOMApplicationRegistry = { }); }); } else { - aData.error = "NOT_UPDATABLE"; - aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); + sendError("NOT_UPDATABLE"); } } }; @@ -1759,7 +1755,7 @@ this.DOMApplicationRegistry = { : "downloadapplied"; aMm.sendAsyncMessage("Webapps:UpdateState", { app: app, - manifestURL: app.manifestURL + id: app.id }); aMm.sendAsyncMessage("Webapps:FireEvent", { eventType: eventType, @@ -1786,7 +1782,7 @@ this.DOMApplicationRegistry = { : "downloadapplied"; aMm.sendAsyncMessage("Webapps:UpdateState", { app: app, - manifestURL: app.manifestURL + id: app.id }); aMm.sendAsyncMessage("Webapps:FireEvent", { eventType: eventType, @@ -1895,7 +1891,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aApp, - manifestURL: aApp.manifestURL + id: aApp.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadavailable", @@ -1961,7 +1957,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aApp, manifest: aApp.manifest, - manifestURL: aApp.manifestURL + id: aApp.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadapplied", @@ -1995,7 +1991,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aApp, manifest: aApp.manifest, - manifestURL: aApp.manifestURL + id: aApp.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: eventType, @@ -2523,6 +2519,8 @@ this.DOMApplicationRegistry = { // saved in the registry. yield this._saveApps(); + aData.isPackage ? appObject.updateManifest = jsonManifest : + appObject.manifest = jsonManifest; this.broadcastMessage("Webapps:AddApp", { id: id, app: appObject }); if (aData.isPackage && aData.autoInstall) { // Skip directly to onInstallSuccessAck, since there isn't @@ -2616,7 +2614,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, manifest: aManifest, - manifestURL: aNewApp.manifestURL + id: app.id }); // Check if we have asm.js code to preload for this application. @@ -2730,14 +2728,11 @@ this.DOMApplicationRegistry = { oldApp, aNewApp); - AppDownloadManager.add( - aNewApp.manifestURL, - { - channel: requestChannel, - appId: id, - previousState: aIsUpdate ? "installed" : "pending" - } - ); + AppDownloadManager.add(aNewApp.manifestURL, { + channel: requestChannel, + appId: id, + previousState: aIsUpdate ? "installed" : "pending" + }); // We set the 'downloading' flag to true right before starting the fetch. oldApp.downloading = true; @@ -2760,7 +2755,7 @@ this.DOMApplicationRegistry = { debug("package's etag or hash unchanged; sending 'applied' event"); // The package's Etag or hash has not changed. // We send a "applied" event right away. - this._sendAppliedEvent(aNewApp, oldApp, id); + this._sendAppliedEvent(oldApp); return; } @@ -2900,7 +2895,7 @@ this.DOMApplicationRegistry = { app: { progress: aProgress }, - manifestURL: aNewApp.manifestURL + id: aNewApp.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "progress", @@ -3017,27 +3012,24 @@ this.DOMApplicationRegistry = { * something similar after updating the app, and we could refactor both cases * to use the same code to send the "applied" event. * - * @param aNewApp {Object} the new app data - * @param aOldApp {Object} the currently stored app data - * @param aId {String} the unique id of the app + * @param aApp {Object} app data */ - _sendAppliedEvent: function(aNewApp, aOldApp, aId) { - aOldApp.downloading = false; - aOldApp.downloadAvailable = false; - aOldApp.downloadSize = 0; - aOldApp.installState = "installed"; - aOldApp.readyToApplyDownload = false; - if (aOldApp.staged && aOldApp.staged.manifestHash) { + _sendAppliedEvent: function(aApp) { + aApp.downloading = false; + aApp.downloadAvailable = false; + aApp.downloadSize = 0; + aApp.installState = "installed"; + aApp.readyToApplyDownload = false; + if (aApp.staged && aApp.staged.manifestHash) { // If we're here then the manifest has changed but the package // hasn't. Let's clear this, so we don't keep offering // a bogus update to the user - aOldApp.manifestHash = aOldApp.staged.manifestHash; - aOldApp.etag = aOldApp.staged.etag || aOldApp.etag; - aOldApp.staged = {}; - - // Move the staged update manifest to a non staged one. + aApp.manifestHash = aApp.staged.manifestHash; + aApp.etag = aApp.staged.etag || aApp.etag; + aApp.staged = {}; + // Move the staged update manifest to a non staged one. try { - let staged = this._getAppDir(aId); + let staged = this._getAppDir(aApp.id); staged.append("staged-update.webapp"); staged.moveTo(staged.parent, "update.webapp"); } catch (ex) { @@ -3048,15 +3040,15 @@ this.DOMApplicationRegistry = { // Save the updated registry, and cleanup the tmp directory. this._saveApps().then(() => { this.broadcastMessage("Webapps:UpdateState", { - app: aOldApp, - manifestURL: aNewApp.manifestURL + app: aApp, + id: aApp.id }); this.broadcastMessage("Webapps:FireEvent", { - manifestURL: aNewApp.manifestURL, + manifestURL: aApp.manifestURL, eventType: ["downloadsuccess", "downloadapplied"] }); }); - let file = FileUtils.getFile("TmpD", ["webapps", aId], false); + let file = FileUtils.getFile("TmpD", ["webapps", aApp.id], false); if (file && file.exists()) { file.remove(true); } @@ -3361,9 +3353,10 @@ this.DOMApplicationRegistry = { dir.moveTo(parent, newId); }); // Signals that we need to swap the old id with the new app. - this.broadcastMessage("Webapps:RemoveApp", { id: oldId }); - this.broadcastMessage("Webapps:AddApp", { id: newId, - app: aOldApp }); + this.broadcastMessage("Webapps:UpdateApp", { oldId: oldId, + newId: newId, + app: aOldApp }); + } } }, @@ -3466,7 +3459,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aOldApp, error: aError, - manifestURL: aNewApp.manifestURL + id: aNewApp.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", @@ -4016,7 +4009,7 @@ AppcacheObserver.prototype = { let app = this.app; DOMApplicationRegistry.broadcastMessage("Webapps:UpdateState", { app: app, - manifestURL: app.manifestURL + id: app.id }); DOMApplicationRegistry.broadcastMessage("Webapps:FireEvent", { eventType: "progress", @@ -4048,7 +4041,7 @@ AppcacheObserver.prototype = { app.downloadAvailable = false; DOMApplicationRegistry.broadcastMessage("Webapps:UpdateState", { app: app, - manifestURL: app.manifestURL + id: app.id }); DOMApplicationRegistry.broadcastMessage("Webapps:FireEvent", { eventType: ["downloadsuccess", "downloadapplied"], @@ -4062,7 +4055,7 @@ AppcacheObserver.prototype = { DOMApplicationRegistry.broadcastMessage("Webapps:UpdateState", { app: app, error: aError, - manifestURL: app.manifestURL + id: app.id }); DOMApplicationRegistry.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", diff --git a/dom/apps/tests/test_packaged_app_common.js b/dom/apps/tests/test_packaged_app_common.js index 9a0bddbff4c3..7c91021f1f64 100644 --- a/dom/apps/tests/test_packaged_app_common.js +++ b/dom/apps/tests/test_packaged_app_common.js @@ -98,6 +98,7 @@ var PackagedTestHelper = (function PackagedTestHelper() { var aApp = evt.application; aApp.ondownloaderror = function(evt) { var error = aApp.downloadError.name; + ok(true, "Got downloaderror " + error); if (error == aExpectedError) { ok(true, "Got expected " + aExpectedError); var expected = { diff --git a/dom/apps/tests/test_packaged_app_update.html b/dom/apps/tests/test_packaged_app_update.html index 7add5ffe93f4..900b4e43e761 100644 --- a/dom/apps/tests/test_packaged_app_update.html +++ b/dom/apps/tests/test_packaged_app_update.html @@ -79,16 +79,15 @@ function updateApp(aExpectedReady, aPreviousVersion, aNextVersion) { checkLastAppState.bind(PackagedTestHelper, miniManifestURL, false, false, aNextVersion, PackagedTestHelper.next); - var ondownloadsuccesshandler = - checkLastAppState.bind(undefined, miniManifestURL, - aExpectedReady, false, aPreviousVersion, - function() { - navigator.mozApps.mgmt.applyDownload(lApp); - }); - - checkForUpdate(true, ondownloadsuccesshandler, ondownloadappliedhandler, null, - true); + var ondownloadsuccesshandler = + checkLastAppState.bind(undefined, miniManifestURL, + aExpectedReady, false, aPreviousVersion, + function() { + navigator.mozApps.mgmt.applyDownload(lApp); + }); + checkForUpdate(true, ondownloadsuccesshandler, ondownloadappliedhandler, null, + true); } @@ -174,7 +173,7 @@ var steps = [ "&appName=arandomname" + "&appToFail1"; PackagedTestHelper.checkAppDownloadError(miniManifestURL, - "MANIFEST_MISMATCH", 2, false, true, + "MANIFEST_MISMATCH", 1, false, true, "arandomname", function () { checkForUpdate(false, null, null, null, false, diff --git a/dom/apps/tests/test_receipt_operations.html b/dom/apps/tests/test_receipt_operations.html index 0907e8d964c4..7ebe84ccfae0 100644 --- a/dom/apps/tests/test_receipt_operations.html +++ b/dom/apps/tests/test_receipt_operations.html @@ -243,4 +243,4 @@ addLoadEvent(go); - \ No newline at end of file + diff --git a/toolkit/devtools/server/actors/webapps.js b/toolkit/devtools/server/actors/webapps.js index 329b15b15af6..597182560e2e 100644 --- a/toolkit/devtools/server/actors/webapps.js +++ b/toolkit/devtools/server/actors/webapps.js @@ -254,7 +254,7 @@ WebappsActor.prototype = { reg.broadcastMessage("Webapps:UpdateState", { app: aApp, manifest: manifest, - manifestURL: aApp.manifestURL + id: aApp.id }); reg.broadcastMessage("Webapps:FireEvent", { eventType: ["downloadsuccess", "downloadapplied"], From 2985e5d64a9cdf0531129c1385c676a8a460c404 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 15:06:06 -0700 Subject: [PATCH 04/37] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ======== https://hg.mozilla.org/integration/gaia-central/rev/84a4fd458363 Author: Mason Chang Desc: Merge pull request #19487 from hfiguiere/bug1006129 Bug 1006129 - Overfill scroll ratio test for settings. r=hub,eperelman ======== https://hg.mozilla.org/integration/gaia-central/rev/9de50e37b8eb Author: Hubert Figuière Desc: Bug 1006129 - Overfill scroll ratio test for settings. Based on work from :mchang. --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 06ba7bcc4df0..4137dcc5d24c 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "6a6778c8ff4a7a1802c30105b8dcc4d707a2e773", + "revision": "84a4fd458363ea2470051254f866a089cd2ea0b9", "repo_path": "/integration/gaia-central" } From c31aae6e64926e2fc47a9625fe7aaa6089adfc6a Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 15:11:34 -0700 Subject: [PATCH 05/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/inari/sources.xml | 2 +- b2g/config/leo/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 862ee94bc9bb..a85345d56288 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 946c2e7cc350..526663f418e3 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 8bf577b095de..a9e234011889 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 862ee94bc9bb..a85345d56288 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index f78838a7bfb1..87146f7470a2 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -18,7 +18,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index bfd4b1c16646..ab10a58b4105 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 320d67c53dab..4a3a1cd65a23 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index 38a2944d4743..1b81ea91dd95 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index fc53c3e5619c..a81de926fd7d 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index 798e32b0c7cc..7e53c8e6442b 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 61fcd7d39753..75f432286b14 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From c2cd0bd007d7f3283bdd7e176f301858c3d4de1c Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 15:38:10 -0700 Subject: [PATCH 06/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/inari/sources.xml | 2 +- b2g/config/leo/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index a85345d56288..69d3851a025e 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -25,7 +25,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 526663f418e3..271d2f575025 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -20,7 +20,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index a9e234011889..6f51b8c38d3e 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -22,7 +22,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index a85345d56288..69d3851a025e 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -25,7 +25,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 87146f7470a2..d0c694fe28f6 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -21,7 +21,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index ab10a58b4105..259365958656 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -22,7 +22,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index 1b81ea91dd95..9033dd2e4aad 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -24,7 +24,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index a81de926fd7d..da64c2ef05ec 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -22,7 +22,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index 7e53c8e6442b..de99aa6e9e5a 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -20,7 +20,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 75f432286b14..6ab26c6f4296 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -22,7 +22,7 @@ - + From fe9de5265e866d5767c5424641b12a15c0f5ab66 Mon Sep 17 00:00:00 2001 From: Wes Kocher Date: Fri, 23 May 2014 15:48:20 -0700 Subject: [PATCH 07/37] Backed out changeset 3986e809158a (bug 903291) for Gu bustage --- dom/apps/src/AppsServiceChild.jsm | 285 +----------------- dom/apps/src/Webapps.js | 297 +++++++++++-------- dom/apps/src/Webapps.jsm | 113 +++---- dom/apps/tests/test_packaged_app_common.js | 1 - dom/apps/tests/test_packaged_app_update.html | 19 +- dom/apps/tests/test_receipt_operations.html | 2 +- toolkit/devtools/server/actors/webapps.js | 2 +- 7 files changed, 261 insertions(+), 458 deletions(-) diff --git a/dom/apps/src/AppsServiceChild.jsm b/dom/apps/src/AppsServiceChild.jsm index ed454bc40d14..c7cb9890f768 100644 --- a/dom/apps/src/AppsServiceChild.jsm +++ b/dom/apps/src/AppsServiceChild.jsm @@ -8,10 +8,10 @@ const Cu = Components.utils; const Cc = Components.classes; const Ci = Components.interfaces; -// This module exposes a subset of the functionalities of the parent DOM -// Registry to content processes, to be used from the AppsService component. +// This module exposes a subset of the functionnalities of the parent DOM +// Registry to content processes, to be be used from the AppsService component. -this.EXPORTED_SYMBOLS = ["DOMApplicationRegistry", "WrappedManifestCache"]; +this.EXPORTED_SYMBOLS = ["DOMApplicationRegistry"]; Cu.import("resource://gre/modules/AppsUtils.jsm"); Cu.import("resource://gre/modules/Services.jsm"); @@ -20,315 +20,54 @@ function debug(s) { //dump("-*- AppsServiceChild.jsm: " + s + "\n"); } -const APPS_IPC_MSG_NAMES = [ - "Webapps:AddApp", - "Webapps:RemoveApp", - "Webapps:UpdateApp", - "Webapps:CheckForUpdate:Return:KO", - "Webapps:FireEvent", - "Webapps:UpdateState" -]; - -// A simple cache for the wrapped manifests. -this.WrappedManifestCache = { - _cache: { }, - - // Gets an entry from the cache, and populates the cache if needed. - get: function mcache_get(aManifestURL, aManifest, aWindow, aInnerWindowID) { - if (!(aManifestURL in this._cache)) { - this._cache[aManifestURL] = { }; - } - - let winObjs = this._cache[aManifestURL]; - if (!(aInnerWindowID in winObjs)) { - winObjs[aInnerWindowID] = Cu.cloneInto(aManifest, aWindow); - } - - return winObjs[aInnerWindowID]; - }, - - // Invalidates an entry in the cache. - evict: function mcache_evict(aManifestURL, aInnerWindowID) { - debug("Evicting manifest " + aManifestURL + " window ID " + - aInnerWindowID); - if (aManifestURL in this._cache) { - let winObjs = this._cache[aManifestURL]; - if (aInnerWindowID in winObjs) { - delete winObjs[aInnerWindowID]; - } - - if (Object.keys(winObjs).length == 0) { - delete this._cache[aManifestURL]; - } - } - }, - - observe: function(aSubject, aTopic, aData) { - // Clear the cache on memory pressure. - this._cache = { }; - Cu.forceGC(); - }, - - init: function() { - Services.obs.addObserver(this, "memory-pressure", false); - } -}; - -this.WrappedManifestCache.init(); - - -// DOMApplicationRegistry keeps a cache containing a list of apps in the device. -// This information is updated with the data received from the main process and -// it is queried by the DOM objects to set their state. -// This module handle all the messages broadcasted from the parent process, -// including DOM events, which are dispatched to the corresponding DOM objects. - this.DOMApplicationRegistry = { - // DOMApps will hold a list of arrays of weak references to - // mozIDOMApplication objects indexed by manifest URL. - DOMApps: {}, - init: function init() { + debug("init"); this.cpmm = Cc["@mozilla.org/childprocessmessagemanager;1"] .getService(Ci.nsISyncMessageSender); - APPS_IPC_MSG_NAMES.forEach((function(aMsgName) { + ["Webapps:AddApp", "Webapps:RemoveApp"].forEach((function(aMsgName) { this.cpmm.addMessageListener(aMsgName, this); }).bind(this)); - this.cpmm.sendAsyncMessage("Webapps:RegisterForMessages", { - messages: APPS_IPC_MSG_NAMES - }); - // We need to prime the cache with the list of apps. - // XXX should we do this async and block callers if it's not yet there? - let list = this.cpmm.sendSyncMessage("Webapps:GetList", { })[0]; - this.webapps = list.webapps; + // XXX shoud we do this async and block callers if it's not yet there? + this.webapps = this.cpmm.sendSyncMessage("Webapps:GetList", { })[0]; // We need a fast mapping from localId -> app, so we add an index. - // And add the manifest to the app object. this.localIdIndex = { }; for (let id in this.webapps) { let app = this.webapps[id]; this.localIdIndex[app.localId] = app; - app.manifest = list.manifests[id]; } Services.obs.addObserver(this, "xpcom-shutdown", false); }, observe: function(aSubject, aTopic, aData) { - // cpmm.addMessageListener causes the DOMApplicationRegistry object to - // live forever if we don't clean up properly. + // cpmm.addMessageListener causes the DOMApplicationRegistry object to live + // forever if we don't clean up properly. this.webapps = null; - this.DOMApps = null; - - APPS_IPC_MSG_NAMES.forEach((aMsgName) => { + ["Webapps:AddApp", "Webapps:RemoveApp"].forEach((function(aMsgName) { this.cpmm.removeMessageListener(aMsgName, this); - }); - - this.cpmm.sendAsyncMessage("Webapps:UnregisterForMessages", - APPS_IPC_MSG_NAMES) + }).bind(this)); }, receiveMessage: function receiveMessage(aMessage) { debug("Received " + aMessage.name + " message."); - let msg = aMessage.data; + let msg = aMessage.json; switch (aMessage.name) { case "Webapps:AddApp": this.webapps[msg.id] = msg.app; this.localIdIndex[msg.app.localId] = msg.app; break; case "Webapps:RemoveApp": - delete this.DOMApps[this.webapps[msg.id].manifestURL]; delete this.localIdIndex[this.webapps[msg.id].localId]; delete this.webapps[msg.id]; break; - case "Webapps:UpdateApp": - let app = this.webapps[msg.oldId]; - if (!app) { - return; - } - - if (msg.app) { - for (let prop in msg.app) { - app[prop] = msg.app[prop]; - } - } - - this.webapps[msg.newId] = app; - this.localIdIndex[app.localId] = app; - delete this.webapps[msg.oldId]; - - let apps = this.DOMApps[msg.app.manifestURL]; - if (!apps) { - return; - } - for (let i = 0; i < apps.length; i++) { - let domApp = apps[i].get(); - if (!domApp) { - apps.splice(i); - continue; - } - domApp._proxy = new Proxy(domApp, { - get: function(target, prop) { - if (!DOMApplicationRegistry.webapps[msg.newId]) { - return; - } - return DOMApplicationRegistry.webapps[msg.newId][prop]; - }, - set: function(target, prop, val) { - if (!DOMApplicationRegistry.webapps[msg.newId]) { - return; - } - DOMApplicationRegistry.webapps[msg.newId][prop] = val; - return; - }, - }); - } - break; - case "Webapps:FireEvent": - this._fireEvent(aMessage); - break; - case "Webapps:UpdateState": - this._updateState(msg); - break; - case "Webapps:CheckForUpdate:Return:KO": - let DOMApps = this.DOMApps[msg.manifestURL]; - if (!DOMApps || !msg.requestID) { - return; - } - DOMApps.forEach((DOMApp) => { - let domApp = DOMApp.get(); - if (domApp && msg.requestID) { - domApp._fireRequestResult(aMessage, true /* aIsError */); - } - }); - break; } }, - /** - * mozIDOMApplication management - */ - - // Every time a DOM app is created, we save a weak reference to it that will - // be used to dispatch events and fire request results. - addDOMApp: function(aApp, aManifestURL, aId) { - let weakRef = Cu.getWeakReference(aApp); - - if (!this.DOMApps[aManifestURL]) { - this.DOMApps[aManifestURL] = []; - } - - let apps = this.DOMApps[aManifestURL]; - - // Get rid of dead weak references. - for (let i = 0; i < apps.length; i++) { - if (!apps[i].get()) { - apps.splice(i); - } - } - - apps.push(weakRef); - - // Each DOM app contains a proxy object used to build their state. We - // return the handler for this proxy object with traps to get and set - // app properties kept in the DOMApplicationRegistry app cache. - return { - get: function(target, prop) { - if (!DOMApplicationRegistry.webapps[aId]) { - return; - } - return DOMApplicationRegistry.webapps[aId][prop]; - }, - set: function(target, prop, val) { - if (!DOMApplicationRegistry.webapps[aId]) { - return; - } - DOMApplicationRegistry.webapps[aId][prop] = val; - return; - }, - }; - }, - - _fireEvent: function(aMessage) { - let msg = aMessage.data; - debug("_fireEvent " + JSON.stringify(msg)); - if (!this.DOMApps || !msg.manifestURL || !msg.eventType) { - return; - } - - let DOMApps = this.DOMApps[msg.manifestURL]; - if (!DOMApps) { - return; - } - - // The parent might ask childs to trigger more than one event in one - // shot, so in order to avoid needless IPC we allow an array for the - // 'eventType' IPC message field. - if (!Array.isArray(msg.eventType)) { - msg.eventType = [msg.eventType]; - } - - DOMApps.forEach((DOMApp) => { - let domApp = DOMApp.get(); - if (!domApp) { - return; - } - msg.eventType.forEach((aEventType) => { - if ('on' + aEventType in domApp) { - domApp._fireEvent(aEventType); - } - }); - - if (msg.requestID) { - aMessage.data.result = msg.manifestURL; - domApp._fireRequestResult(aMessage); - } - }); - }, - - _updateState: function(aMessage) { - if (!this.DOMApps || !aMessage.id) { - return; - } - - let app = this.webapps[aMessage.id]; - if (!app) { - return; - } - - if (aMessage.app) { - for (let prop in aMessage.app) { - app[prop] = aMessage.app[prop]; - } - } - - if (aMessage.error) { - app.downloadError = aMessage.error; - } - - if (aMessage.manifest) { - app.manifest = aMessage.manifest; - // Evict the wrapped manifest cache for all the affected DOM objects. - let DOMApps = this.DOMApps[app.manifestURL]; - if (!DOMApps) { - return; - } - DOMApps.forEach((DOMApp) => { - let domApp = DOMApp.get(); - if (!domApp) { - return; - } - WrappedManifestCache.evict(app.manifestURL, domApp.innerWindowID); - }); - } - }, - - /** - * nsIAppsService API - */ getAppByManifestURL: function getAppByManifestURL(aManifestURL) { debug("getAppByManifestURL " + aManifestURL); return AppsUtils.getAppByManifestURL(this.webapps, aManifestURL); diff --git a/dom/apps/src/Webapps.js b/dom/apps/src/Webapps.js index 8691875fd722..49138a527b5f 100644 --- a/dom/apps/src/Webapps.js +++ b/dom/apps/src/Webapps.js @@ -12,7 +12,6 @@ Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/DOMRequestHelper.jsm"); Cu.import("resource://gre/modules/AppsUtils.jsm"); Cu.import("resource://gre/modules/BrowserElementPromptService.jsm"); -Cu.import("resource://gre/modules/AppsServiceChild.jsm"); XPCOMUtils.defineLazyServiceGetter(this, "cpmm", "@mozilla.org/childprocessmessagemanager;1", @@ -265,9 +264,50 @@ WebappsRegistry.prototype = { * mozIDOMApplication object */ +// A simple cache for the wrapped manifests. +let manifestCache = { + _cache: { }, + + // Gets an entry from the cache, and populates the cache if needed. + get: function mcache_get(aManifestURL, aManifest, aWindow, aInnerWindowID) { + if (!(aManifestURL in this._cache)) { + this._cache[aManifestURL] = { }; + } + + let winObjs = this._cache[aManifestURL]; + if (!(aInnerWindowID in winObjs)) { + winObjs[aInnerWindowID] = Cu.cloneInto(aManifest, aWindow); + } + + return winObjs[aInnerWindowID]; + }, + + // Invalidates an entry in the cache. + evict: function mcache_evict(aManifestURL, aInnerWindowID) { + if (aManifestURL in this._cache) { + let winObjs = this._cache[aManifestURL]; + if (aInnerWindowID in winObjs) { + delete winObjs[aInnerWindowID]; + } + + if (Object.keys(winObjs).length == 0) { + delete this._cache[aManifestURL]; + } + } + }, + + observe: function(aSubject, aTopic, aData) { + // Clear the cache on memory pressure. + this._cache = { }; + }, + + init: function() { + Services.obs.addObserver(this, "memory-pressure", false); + } +}; + function createApplicationObject(aWindow, aApp) { - let app = Cc["@mozilla.org/webapps/application;1"] - .createInstance(Ci.mozIDOMApplication); + let app = Cc["@mozilla.org/webapps/application;1"].createInstance(Ci.mozIDOMApplication); app.wrappedJSObject.init(aWindow, aApp); return app; } @@ -280,12 +320,27 @@ WebappsApplication.prototype = { __proto__: DOMRequestIpcHelper.prototype, init: function(aWindow, aApp) { - let proxyHandler = DOMApplicationRegistry.addDOMApp(this, - aApp.manifestURL, - aApp.id); - this._proxy = new Proxy(this, proxyHandler); - this._window = aWindow; + let principal = this._window.document.nodePrincipal; + this._appStatus = principal.appStatus; + this.origin = aApp.origin; + this._manifest = aApp.manifest; + this._updateManifest = aApp.updateManifest; + this.manifestURL = aApp.manifestURL; + this.receipts = aApp.receipts; + this.installOrigin = aApp.installOrigin; + this.installTime = aApp.installTime; + this.installState = aApp.installState || "installed"; + this.removable = aApp.removable; + this.lastUpdateCheck = aApp.lastUpdateCheck ? aApp.lastUpdateCheck + : Date.now(); + this.updateTime = aApp.updateTime ? aApp.updateTime + : aApp.installTime; + this.progress = NaN; + this.downloadAvailable = aApp.downloadAvailable; + this.downloading = aApp.downloading; + this.readyToApplyDownload = aApp.readyToApplyDownload; + this.downloadSize = aApp.downloadSize || 0; this._onprogress = null; this._ondownloadsuccess = null; @@ -293,83 +348,40 @@ WebappsApplication.prototype = { this._ondownloadavailable = null; this._ondownloadapplied = null; - this.initDOMRequestHelper(aWindow); - }, + this._downloadError = null; - get _appStatus() { - return this._proxy.appStatus; - }, + this.initDOMRequestHelper(aWindow, [ + { name: "Webapps:CheckForUpdate:Return:KO", weakRef: true }, + { name: "Webapps:Connect:Return:OK", weakRef: true }, + { name: "Webapps:Connect:Return:KO", weakRef: true }, + { name: "Webapps:FireEvent", weakRef: true }, + { name: "Webapps:GetConnections:Return:OK", weakRef: true }, + { name: "Webapps:UpdateState", weakRef: true } + ]); - get downloadAvailable() { - return this._proxy.downloadAvailable; - }, - - get downloading() { - return this._proxy.downloading; - }, - - get downloadSize() { - return this._proxy.downloadSize; - }, - - get installOrigin() { - return this._proxy.installOrigin; - }, - - get installState() { - return this._proxy.installState; - }, - - get installTime() { - return this._proxy.installTime; - }, - - get lastUpdateCheck() { - return this._proxy.lastUpdateCheck; - }, - - get manifestURL() { - return this._proxy.manifestURL; - }, - - get origin() { - return this._proxy.origin; - }, - - get progress() { - return this._proxy.progress; - }, - - get readyToApplyDownload() { - return this._proxy.readyToApplyDownload; - }, - - get receipts() { - return this._proxy.receipts; - }, - - set receipts(aReceipts) { - this._proxy.receipts = aReceipts; - }, - - get removable() { - return this._proxy.removable; - }, - - get updateTime() { - return this._proxy.updateTime; + cpmm.sendAsyncMessage("Webapps:RegisterForMessages", { + messages: ["Webapps:FireEvent", + "Webapps:UpdateState"], + app: { + id: this.id, + manifestURL: this.manifestURL, + installState: this.installState, + downloading: this.downloading + } + }); }, get manifest() { - return WrappedManifestCache.get(this.manifestURL, - this._proxy.manifest, - this._window, - this.innerWindowID); + return manifestCache.get(this.manifestURL, + this._manifest, + this._window, + this.innerWindowID); }, get updateManifest() { - return this._proxy.updateManifest ? - Cu.cloneInto(this._proxy.updateManifest, this._window) : null; + return this.updateManifest = + this._updateManifest ? Cu.cloneInto(this._updateManifest, this._window) + : null; }, set onprogress(aCallback) { @@ -413,7 +425,7 @@ WebappsApplication.prototype = { }, get downloadError() { - return new this._window.DOMError(this._proxy.downloadError || ''); + return new this._window.DOMError(this._downloadError || ''); }, download: function() { @@ -455,11 +467,12 @@ WebappsApplication.prototype = { BrowserElementPromptService.getBrowserElementChildForWindow(this._window); if (browserChild) { this.addMessageListeners("Webapps:ClearBrowserData:Return"); - browserChild.messageManager.sendAsyncMessage("Webapps:ClearBrowserData", { - manifestURL: this.manifestURL, - oid: this._id, - requestID: this.getRequestId(request) - }); + browserChild.messageManager.sendAsyncMessage( + "Webapps:ClearBrowserData", + { manifestURL: this.manifestURL, + oid: this._id, + requestID: this.getRequestId(request) } + ); } else { Services.DOMRequest.fireErrorAsync(request, "NO_CLEARABLE_BROWSER"); } @@ -467,33 +480,28 @@ WebappsApplication.prototype = { }, connect: function(aKeyword, aRules) { - this.addMessageListeners(["Webapps:Connect:Return:OK", - "Webapps:Connect:Return:KO"]); return this.createPromise(function (aResolve, aReject) { - cpmm.sendAsyncMessage("Webapps:Connect", { - keyword: aKeyword, - rules: aRules, - manifestURL: this.manifestURL, - outerWindowID: this._id, - requestID: this.getPromiseResolverId({ - resolve: aResolve, - reject: aReject - }) - }); + cpmm.sendAsyncMessage("Webapps:Connect", + { keyword: aKeyword, + rules: aRules, + manifestURL: this.manifestURL, + outerWindowID: this._id, + requestID: this.getPromiseResolverId({ + resolve: aResolve, + reject: aReject + })}); }.bind(this)); }, getConnections: function() { - this.addMessageListeners("Webapps:getConnections:Return:OK"); return this.createPromise(function (aResolve, aReject) { - cpmm.sendAsyncMessage("Webapps:GetConnections", { - manifestURL: this.manifestURL, - outerWindowID: this._id, - requestID: this.getPromiseResolverId({ - resolve: aResolve, - reject: aReject - }) - }); + cpmm.sendAsyncMessage("Webapps:GetConnections", + { manifestURL: this.manifestURL, + outerWindowID: this._id, + requestID: this.getPromiseResolverId({ + resolve: aResolve, + reject: aReject + })}); }.bind(this)); }, @@ -542,7 +550,12 @@ WebappsApplication.prototype = { uninit: function() { this._onprogress = null; - WrappedManifestCache.evict(this.manifestURL, this.innerWindowID); + cpmm.sendAsyncMessage("Webapps:UnregisterForMessages", [ + "Webapps:FireEvent", + "Webapps:UpdateState" + ]); + + manifestCache.evict(this.manifestURL, this.innerWindowID); }, _fireEvent: function(aName) { @@ -559,15 +572,21 @@ WebappsApplication.prototype = { } }, - _fireRequestResult: function(aMessage, aIsError) { - let req; - let msg = aMessage.data; - req = this.takeRequest(msg.requestID); - if (!req) { - return; + _updateState: function(aMsg) { + if (aMsg.app) { + for (let prop in aMsg.app) { + this[prop] = aMsg.app[prop]; + } + } + + if (aMsg.error) { + this._downloadError = aMsg.error; + } + + if (aMsg.manifest) { + this._manifest = aMsg.manifest; + manifestCache.evict(this.manifestURL, this.innerWindowID); } - aIsError ? Services.DOMRequest.fireError(req, msg.error) - : Services.DOMRequest.fireSuccess(req, msg.result); }, receiveMessage: function(aMessage) { @@ -581,7 +600,10 @@ WebappsApplication.prototype = { req = this.takeRequest(msg.requestID); } - if (msg.oid != this._id || !req) { + // ondownload* callbacks should be triggered on all app instances + if ((msg.oid != this._id || !req) && + aMessage.name !== "Webapps:FireEvent" && + aMessage.name !== "Webapps:UpdateState") { return; } @@ -596,13 +618,45 @@ WebappsApplication.prototype = { "Webapps:Launch:Return:KO"]); Services.DOMRequest.fireSuccess(req, null); break; + case "Webapps:CheckForUpdate:Return:KO": + Services.DOMRequest.fireError(req, msg.error); + break; + case "Webapps:FireEvent": + if (msg.manifestURL != this.manifestURL) { + return; + } + + // The parent might ask childs to trigger more than one event in one + // shot, so in order to avoid needless IPC we allow an array for the + // 'eventType' IPC message field. + if (!Array.isArray(msg.eventType)) { + msg.eventType = [msg.eventType]; + } + + msg.eventType.forEach((aEventType) => { + if ("_on" + aEventType in this) { + this._fireEvent(aEventType); + } else { + dump("Unsupported event type " + aEventType + "\n"); + } + }); + + if (req) { + Services.DOMRequest.fireSuccess(req, this.manifestURL); + } + break; + case "Webapps:UpdateState": + if (msg.manifestURL != this.manifestURL) { + return; + } + + this._updateState(msg); + break; case "Webapps:ClearBrowserData:Return": this.removeMessageListeners(aMessage.name); Services.DOMRequest.fireSuccess(req, null); break; case "Webapps:Connect:Return:OK": - this.removeMessageListeners(["Webapps:Connect:Return:OK", - "Webapps:Connect:Return:KO"]); let messagePorts = []; msg.messagePortIDs.forEach((aPortID) => { let port = new this._window.MozInterAppMessagePort(aPortID); @@ -611,12 +665,9 @@ WebappsApplication.prototype = { req.resolve(messagePorts); break; case "Webapps:Connect:Return:KO": - this.removeMessageListeners(["Webapps:Connect:Return:OK", - "Webapps:Connect:Return:KO"]); req.reject("No connections registered"); break; case "Webapps:GetConnections:Return:OK": - this.removeMessageListeners(aMessage.name); let connections = []; msg.connections.forEach((aConnection) => { let connection = @@ -798,8 +849,12 @@ WebappsApplicationMgmt.prototype = { break; case "Webapps:Uninstall:Broadcast:Return:OK": if (this._onuninstall) { + let detail = { + manifestURL: msg.manifestURL, + origin: msg.origin + }; let event = new this._window.MozApplicationEvent("applicationuninstall", - { application : createApplicationObject(this._window, msg) }); + { application : createApplicationObject(this._window, detail) }); this._onuninstall.handleEvent(event); } break; @@ -828,5 +883,7 @@ WebappsApplicationMgmt.prototype = { classDescription: "Webapps Application Mgmt"}) } +manifestCache.init(); + this.NSGetFactory = XPCOMUtils.generateNSGetFactory([WebappsRegistry, WebappsApplication]); diff --git a/dom/apps/src/Webapps.jsm b/dom/apps/src/Webapps.jsm index f44ea64e2b01..ec88ecf5b052 100755 --- a/dom/apps/src/Webapps.jsm +++ b/dom/apps/src/Webapps.jsm @@ -1121,7 +1121,8 @@ this.DOMApplicationRegistry = { this.removeMessageListener(["Webapps:Internal:AllMessages"], mm); break; case "Webapps:GetList": - return { webapps: this.webapps, manifests: this._manifestCache }; + this.addMessageListener(["Webapps:AddApp", "Webapps:RemoveApp"], null, mm); + return this.webapps; case "Webapps:Download": this.startDownload(msg.manifestURL); break; @@ -1303,7 +1304,7 @@ this.DOMApplicationRegistry = { downloading: false }, error: error, - id: app.id + manifestURL: app.manifestURL, }) this.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", @@ -1333,7 +1334,7 @@ this.DOMApplicationRegistry = { if (!app.downloadAvailable) { this.broadcastMessage("Webapps:UpdateState", { error: "NO_DOWNLOAD_AVAILABLE", - id: app.id + manifestURL: app.manifestURL }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", @@ -1381,7 +1382,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, manifest: jsonManifest, - id: app.id + manifestURL: aManifestURL }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadsuccess", @@ -1425,7 +1426,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, - id: app.id + manifestURL: aManifestURL }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadsuccess", @@ -1525,7 +1526,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, manifest: aData, - id: app.id + manifestURL: app.manifestURL }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadapplied", @@ -1565,7 +1566,7 @@ this.DOMApplicationRegistry = { installState: aApp.installState, progress: 0 }, - id: aApp.id + manifestURL: aApp.manifestURL }); let cacheUpdate = updateSvc.scheduleAppUpdate( appcacheURI, docURI, aApp.localId, false, aProfileDir); @@ -1615,7 +1616,6 @@ this.DOMApplicationRegistry = { debug("checkForUpdate for " + aData.manifestURL); function sendError(aError) { - debug("checkForUpdate error " + aError); aData.error = aError; aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); } @@ -1645,7 +1645,8 @@ this.DOMApplicationRegistry = { // then we can't have an update. if (app.origin.startsWith("app://") && app.manifestURL.startsWith("app://")) { - sendError("NOT_UPDATABLE"); + aData.error = "NOT_UPDATABLE"; + aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); return; } @@ -1662,7 +1663,8 @@ this.DOMApplicationRegistry = { if (onlyCheckAppCache) { // Bail out for packaged apps. if (app.origin.startsWith("app://")) { - sendError("NOT_UPDATABLE"); + aData.error = "NOT_UPDATABLE"; + aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); return; } @@ -1670,7 +1672,8 @@ this.DOMApplicationRegistry = { this._readManifests([{ id: id }]).then((aResult) => { let manifest = aResult[0].manifest; if (!manifest.appcache_path) { - sendError("NOT_UPDATABLE"); + aData.error = "NOT_UPDATABLE"; + aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); return; } @@ -1686,7 +1689,7 @@ this.DOMApplicationRegistry = { this._saveApps().then(() => { this.broadcastMessage("Webapps:UpdateState", { app: app, - id: app.id + manifestURL: app.manifestURL }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadavailable", @@ -1695,7 +1698,8 @@ this.DOMApplicationRegistry = { }); }); } else { - sendError("NOT_UPDATABLE"); + aData.error = "NOT_UPDATABLE"; + aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); } } }; @@ -1755,7 +1759,7 @@ this.DOMApplicationRegistry = { : "downloadapplied"; aMm.sendAsyncMessage("Webapps:UpdateState", { app: app, - id: app.id + manifestURL: app.manifestURL }); aMm.sendAsyncMessage("Webapps:FireEvent", { eventType: eventType, @@ -1782,7 +1786,7 @@ this.DOMApplicationRegistry = { : "downloadapplied"; aMm.sendAsyncMessage("Webapps:UpdateState", { app: app, - id: app.id + manifestURL: app.manifestURL }); aMm.sendAsyncMessage("Webapps:FireEvent", { eventType: eventType, @@ -1891,7 +1895,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aApp, - id: aApp.id + manifestURL: aApp.manifestURL }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadavailable", @@ -1957,7 +1961,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aApp, manifest: aApp.manifest, - id: aApp.id + manifestURL: aApp.manifestURL }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadapplied", @@ -1991,7 +1995,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aApp, manifest: aApp.manifest, - id: aApp.id + manifestURL: aApp.manifestURL }); this.broadcastMessage("Webapps:FireEvent", { eventType: eventType, @@ -2519,8 +2523,6 @@ this.DOMApplicationRegistry = { // saved in the registry. yield this._saveApps(); - aData.isPackage ? appObject.updateManifest = jsonManifest : - appObject.manifest = jsonManifest; this.broadcastMessage("Webapps:AddApp", { id: id, app: appObject }); if (aData.isPackage && aData.autoInstall) { // Skip directly to onInstallSuccessAck, since there isn't @@ -2614,7 +2616,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, manifest: aManifest, - id: app.id + manifestURL: aNewApp.manifestURL }); // Check if we have asm.js code to preload for this application. @@ -2728,11 +2730,14 @@ this.DOMApplicationRegistry = { oldApp, aNewApp); - AppDownloadManager.add(aNewApp.manifestURL, { - channel: requestChannel, - appId: id, - previousState: aIsUpdate ? "installed" : "pending" - }); + AppDownloadManager.add( + aNewApp.manifestURL, + { + channel: requestChannel, + appId: id, + previousState: aIsUpdate ? "installed" : "pending" + } + ); // We set the 'downloading' flag to true right before starting the fetch. oldApp.downloading = true; @@ -2755,7 +2760,7 @@ this.DOMApplicationRegistry = { debug("package's etag or hash unchanged; sending 'applied' event"); // The package's Etag or hash has not changed. // We send a "applied" event right away. - this._sendAppliedEvent(oldApp); + this._sendAppliedEvent(aNewApp, oldApp, id); return; } @@ -2895,7 +2900,7 @@ this.DOMApplicationRegistry = { app: { progress: aProgress }, - id: aNewApp.id + manifestURL: aNewApp.manifestURL }); this.broadcastMessage("Webapps:FireEvent", { eventType: "progress", @@ -3012,24 +3017,27 @@ this.DOMApplicationRegistry = { * something similar after updating the app, and we could refactor both cases * to use the same code to send the "applied" event. * - * @param aApp {Object} app data + * @param aNewApp {Object} the new app data + * @param aOldApp {Object} the currently stored app data + * @param aId {String} the unique id of the app */ - _sendAppliedEvent: function(aApp) { - aApp.downloading = false; - aApp.downloadAvailable = false; - aApp.downloadSize = 0; - aApp.installState = "installed"; - aApp.readyToApplyDownload = false; - if (aApp.staged && aApp.staged.manifestHash) { + _sendAppliedEvent: function(aNewApp, aOldApp, aId) { + aOldApp.downloading = false; + aOldApp.downloadAvailable = false; + aOldApp.downloadSize = 0; + aOldApp.installState = "installed"; + aOldApp.readyToApplyDownload = false; + if (aOldApp.staged && aOldApp.staged.manifestHash) { // If we're here then the manifest has changed but the package // hasn't. Let's clear this, so we don't keep offering // a bogus update to the user - aApp.manifestHash = aApp.staged.manifestHash; - aApp.etag = aApp.staged.etag || aApp.etag; - aApp.staged = {}; - // Move the staged update manifest to a non staged one. + aOldApp.manifestHash = aOldApp.staged.manifestHash; + aOldApp.etag = aOldApp.staged.etag || aOldApp.etag; + aOldApp.staged = {}; + + // Move the staged update manifest to a non staged one. try { - let staged = this._getAppDir(aApp.id); + let staged = this._getAppDir(aId); staged.append("staged-update.webapp"); staged.moveTo(staged.parent, "update.webapp"); } catch (ex) { @@ -3040,15 +3048,15 @@ this.DOMApplicationRegistry = { // Save the updated registry, and cleanup the tmp directory. this._saveApps().then(() => { this.broadcastMessage("Webapps:UpdateState", { - app: aApp, - id: aApp.id + app: aOldApp, + manifestURL: aNewApp.manifestURL }); this.broadcastMessage("Webapps:FireEvent", { - manifestURL: aApp.manifestURL, + manifestURL: aNewApp.manifestURL, eventType: ["downloadsuccess", "downloadapplied"] }); }); - let file = FileUtils.getFile("TmpD", ["webapps", aApp.id], false); + let file = FileUtils.getFile("TmpD", ["webapps", aId], false); if (file && file.exists()) { file.remove(true); } @@ -3353,10 +3361,9 @@ this.DOMApplicationRegistry = { dir.moveTo(parent, newId); }); // Signals that we need to swap the old id with the new app. - this.broadcastMessage("Webapps:UpdateApp", { oldId: oldId, - newId: newId, - app: aOldApp }); - + this.broadcastMessage("Webapps:RemoveApp", { id: oldId }); + this.broadcastMessage("Webapps:AddApp", { id: newId, + app: aOldApp }); } } }, @@ -3459,7 +3466,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aOldApp, error: aError, - id: aNewApp.id + manifestURL: aNewApp.manifestURL }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", @@ -4009,7 +4016,7 @@ AppcacheObserver.prototype = { let app = this.app; DOMApplicationRegistry.broadcastMessage("Webapps:UpdateState", { app: app, - id: app.id + manifestURL: app.manifestURL }); DOMApplicationRegistry.broadcastMessage("Webapps:FireEvent", { eventType: "progress", @@ -4041,7 +4048,7 @@ AppcacheObserver.prototype = { app.downloadAvailable = false; DOMApplicationRegistry.broadcastMessage("Webapps:UpdateState", { app: app, - id: app.id + manifestURL: app.manifestURL }); DOMApplicationRegistry.broadcastMessage("Webapps:FireEvent", { eventType: ["downloadsuccess", "downloadapplied"], @@ -4055,7 +4062,7 @@ AppcacheObserver.prototype = { DOMApplicationRegistry.broadcastMessage("Webapps:UpdateState", { app: app, error: aError, - id: app.id + manifestURL: app.manifestURL }); DOMApplicationRegistry.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", diff --git a/dom/apps/tests/test_packaged_app_common.js b/dom/apps/tests/test_packaged_app_common.js index 7c91021f1f64..9a0bddbff4c3 100644 --- a/dom/apps/tests/test_packaged_app_common.js +++ b/dom/apps/tests/test_packaged_app_common.js @@ -98,7 +98,6 @@ var PackagedTestHelper = (function PackagedTestHelper() { var aApp = evt.application; aApp.ondownloaderror = function(evt) { var error = aApp.downloadError.name; - ok(true, "Got downloaderror " + error); if (error == aExpectedError) { ok(true, "Got expected " + aExpectedError); var expected = { diff --git a/dom/apps/tests/test_packaged_app_update.html b/dom/apps/tests/test_packaged_app_update.html index 900b4e43e761..7add5ffe93f4 100644 --- a/dom/apps/tests/test_packaged_app_update.html +++ b/dom/apps/tests/test_packaged_app_update.html @@ -79,15 +79,16 @@ function updateApp(aExpectedReady, aPreviousVersion, aNextVersion) { checkLastAppState.bind(PackagedTestHelper, miniManifestURL, false, false, aNextVersion, PackagedTestHelper.next); - var ondownloadsuccesshandler = - checkLastAppState.bind(undefined, miniManifestURL, - aExpectedReady, false, aPreviousVersion, - function() { - navigator.mozApps.mgmt.applyDownload(lApp); - }); + var ondownloadsuccesshandler = + checkLastAppState.bind(undefined, miniManifestURL, + aExpectedReady, false, aPreviousVersion, + function() { + navigator.mozApps.mgmt.applyDownload(lApp); + }); + + checkForUpdate(true, ondownloadsuccesshandler, ondownloadappliedhandler, null, + true); - checkForUpdate(true, ondownloadsuccesshandler, ondownloadappliedhandler, null, - true); } @@ -173,7 +174,7 @@ var steps = [ "&appName=arandomname" + "&appToFail1"; PackagedTestHelper.checkAppDownloadError(miniManifestURL, - "MANIFEST_MISMATCH", 1, false, true, + "MANIFEST_MISMATCH", 2, false, true, "arandomname", function () { checkForUpdate(false, null, null, null, false, diff --git a/dom/apps/tests/test_receipt_operations.html b/dom/apps/tests/test_receipt_operations.html index 7ebe84ccfae0..0907e8d964c4 100644 --- a/dom/apps/tests/test_receipt_operations.html +++ b/dom/apps/tests/test_receipt_operations.html @@ -243,4 +243,4 @@ addLoadEvent(go); - + \ No newline at end of file diff --git a/toolkit/devtools/server/actors/webapps.js b/toolkit/devtools/server/actors/webapps.js index 597182560e2e..329b15b15af6 100644 --- a/toolkit/devtools/server/actors/webapps.js +++ b/toolkit/devtools/server/actors/webapps.js @@ -254,7 +254,7 @@ WebappsActor.prototype = { reg.broadcastMessage("Webapps:UpdateState", { app: aApp, manifest: manifest, - id: aApp.id + manifestURL: aApp.manifestURL }); reg.broadcastMessage("Webapps:FireEvent", { eventType: ["downloadsuccess", "downloadapplied"], From 278d573ece30e1eee836e5a29833c72edf9de372 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 17:43:16 -0700 Subject: [PATCH 08/37] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/5bdf1f9df4a9 Author: evanxd Desc: Merge pull request #19439 from evanxd/bug-1007546 Bug 1007546 - [Calendar] Add/Edit Event 2.0 Visual Refresh ======== https://hg.mozilla.org/integration/gaia-central/rev/5ddd39bc6a7d Author: Evan Xd Desc: Bug 1007546 - Visual refresh for Add/Edit event view --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 4137dcc5d24c..484daca923ed 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "84a4fd458363ea2470051254f866a089cd2ea0b9", + "revision": "5bdf1f9df4a9a8d5d2568936ff65bc6b397b847b", "repo_path": "/integration/gaia-central" } From 79841d8b3dde4cfcb7a849f6b1dc2a99e9c68f10 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 17:43:28 -0700 Subject: [PATCH 09/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/inari/sources.xml | 2 +- b2g/config/leo/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 69d3851a025e..9727611df595 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 271d2f575025..3169fb1c52b7 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 6f51b8c38d3e..df8ccdcb179d 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 69d3851a025e..9727611df595 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index d0c694fe28f6..f3774d9de829 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -18,7 +18,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 259365958656..5d94dafd0714 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 4a3a1cd65a23..3295c43e9fda 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index 9033dd2e4aad..494500a9cf86 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index da64c2ef05ec..d5d9d78f1891 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index de99aa6e9e5a..e04651805834 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 6ab26c6f4296..fac8943e72e0 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 8c8bc4de8589fb4024e92f450361c68d8937522b Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 17:46:16 -0700 Subject: [PATCH 10/37] Bumping gaia.json for 1 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/fa91679addab Author: crdlc Desc: Bug 1014966 - [Vertical Homescreen] Scrolling does not pause during divider creation r=kgrandon --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 484daca923ed..eecc7e422b3c 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "5bdf1f9df4a9a8d5d2568936ff65bc6b397b847b", + "revision": "fa91679addab01295e210ab78ab2dd020fdb2fc4", "repo_path": "/integration/gaia-central" } From daa97d712d83c049bd1a27caef3d723472ed784a Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 17:56:20 -0700 Subject: [PATCH 11/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/inari/sources.xml | 2 +- b2g/config/leo/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 9727611df595..18186c8f372f 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 3169fb1c52b7..9859a54871e8 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index df8ccdcb179d..190cca90fd12 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 9727611df595..18186c8f372f 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index f3774d9de829..cdc19fd3f3d7 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -18,7 +18,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 5d94dafd0714..a6a88504cf00 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 3295c43e9fda..95fc9ef60ba5 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index 494500a9cf86..d078f31fb0a7 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index d5d9d78f1891..e145a484db70 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index e04651805834..c57eedd1b6fe 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index fac8943e72e0..bc94cb173733 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From a51c8dddde191f537becc40ac039e5f1ea2dd3b6 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 18:41:04 -0700 Subject: [PATCH 12/37] Bumping gaia.json for 1 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/afb7475b9711 Author: crdlc Desc: Bug 1015000 - [Vertical Homescreen] Trying to stop a flywheel scrolling start an application r=kgrandon --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index eecc7e422b3c..ec88933c096c 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "fa91679addab01295e210ab78ab2dd020fdb2fc4", + "revision": "afb7475b97111fdeeef5d755c62a9065b3809712", "repo_path": "/integration/gaia-central" } From d190b37583281fd293118dd0a41c07537849be98 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 18:46:38 -0700 Subject: [PATCH 13/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/inari/sources.xml | 2 +- b2g/config/leo/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 18186c8f372f..bba8b03582bc 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 9859a54871e8..ffaba931b113 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 190cca90fd12..6d30f0be6741 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 18186c8f372f..bba8b03582bc 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index cdc19fd3f3d7..efe92a91004b 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -18,7 +18,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index a6a88504cf00..02221293fe96 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 95fc9ef60ba5..9d6273965aab 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index d078f31fb0a7..d2abe9c0089e 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index e145a484db70..aed6b7a9f3cd 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index c57eedd1b6fe..24eb945ff382 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index bc94cb173733..59cf8452d4fc 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 3e332005960941949095f50c013783d3d8d2c972 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 22:31:06 -0700 Subject: [PATCH 14/37] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/d82c6502cdd7 Author: Eric Chou Desc: Merge pull request #14353 from eric30/Bug-945631 Bug 945631 - Listen to event discoverystatechanged, r=arthurcc ======== https://hg.mozilla.org/integration/gaia-central/rev/42a64ca5cfa8 Author: Eric Chou Desc: Bug 945631 - Listen to event discoverystatechanged --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index ec88933c096c..3b1a7f986bbb 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "afb7475b97111fdeeef5d755c62a9065b3809712", + "revision": "d82c6502cdd7cdcaac6277835c7ec8e6a3520c9c", "repo_path": "/integration/gaia-central" } From 12da727e942174fe0e1b54407d0ccdf81b471da5 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 22:36:32 -0700 Subject: [PATCH 15/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/inari/sources.xml | 2 +- b2g/config/leo/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index bba8b03582bc..3f7cf7bfba8a 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index ffaba931b113..6e0afc4e2e40 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 6d30f0be6741..49a0a3435e7d 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index bba8b03582bc..3f7cf7bfba8a 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index efe92a91004b..f5b311be246f 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -18,7 +18,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 02221293fe96..573bc8691a93 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 9d6273965aab..47b4bb93e1de 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index d2abe9c0089e..110e79c107b1 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index aed6b7a9f3cd..1227ffa1c2aa 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index 24eb945ff382..7bce29da729c 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 59cf8452d4fc..25dceb3f7062 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 06ede3c6dfd19870bc7b16d89e8404f7311fef4d Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 23:03:03 -0700 Subject: [PATCH 16/37] Bumping manifests a=b2g-bump --- b2g/config/flame/sources.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index f5b311be246f..5e33bbad2327 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -120,7 +120,7 @@ - + From 0cc683c582773612fb3c621fe2b9ddbc0cfa17af Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 23:08:03 -0700 Subject: [PATCH 17/37] Bumping manifests a=b2g-bump --- b2g/config/flame/sources.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 5e33bbad2327..42b434ec55ab 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -122,7 +122,7 @@ - + From 87601dd1e0ce7138202babcf6980ea1cf892551c Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 23 May 2014 23:18:20 -0700 Subject: [PATCH 18/37] Bumping manifests a=b2g-bump --- b2g/config/flame/sources.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 42b434ec55ab..aca8e1f28ff4 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -128,7 +128,7 @@ - + From bc32d1becadecdab242a3a252aa0529389456eab Mon Sep 17 00:00:00 2001 From: Gene Lian Date: Fri, 23 May 2014 18:41:11 +0800 Subject: [PATCH 19/37] Bug 1015100 - Polish the Alarm API Mochitest (part 2, polish tests to avoid accessing null request). r=Luqman --- dom/alarm/test/test_alarm_add_date.html | 2 +- dom/alarm/test/test_alarm_remove.html | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dom/alarm/test/test_alarm_add_date.html b/dom/alarm/test/test_alarm_add_date.html index fb724b87c3f7..29fccf5b351d 100644 --- a/dom/alarm/test/test_alarm_add_date.html +++ b/dom/alarm/test/test_alarm_add_date.html @@ -57,7 +57,7 @@ "Unexpected exception trying to add alarm for yesterday."); // Move on to the next test. - testNullDate(); + return testNullDate(); } domRequest.onsuccess = function(e) { navigator.mozAlarms.remove(e.target.result); diff --git a/dom/alarm/test/test_alarm_remove.html b/dom/alarm/test/test_alarm_remove.html index ecffce9ed9e0..0b0000af87e5 100644 --- a/dom/alarm/test/test_alarm_remove.html +++ b/dom/alarm/test/test_alarm_remove.html @@ -21,6 +21,7 @@ } catch (e) { ok(false, "Unexpected exception trying to get all alarms."); + return cbk(); } domRequest.onsuccess = function(e) { ok(e.target.result.length === n, "Correct number of alarms set."); From 24bbed0e789e9e038057049c156ebc84ff574239 Mon Sep 17 00:00:00 2001 From: Gene Lian Date: Fri, 23 May 2014 18:41:45 +0800 Subject: [PATCH 20/37] Bug 1015100 - Polish the Alarm API Mochitest (part 3, polish tests to not run on invalid builds). r=Luqman --- dom/alarm/test/test_alarm_add_data.html | 37 +++++++++++++------ dom/alarm/test/test_alarm_add_date.html | 29 ++++++++++++--- .../test/test_alarm_add_respectTimezone.html | 29 +++++++++++---- dom/alarm/test/test_alarm_remove.html | 36 ++++++++++++------ 4 files changed, 95 insertions(+), 36 deletions(-) diff --git a/dom/alarm/test/test_alarm_add_data.html b/dom/alarm/test/test_alarm_add_data.html index f5a8d3871ecb..5d5c55444433 100644 --- a/dom/alarm/test/test_alarm_add_data.html +++ b/dom/alarm/test/test_alarm_add_data.html @@ -199,22 +199,35 @@ } function startTests() { + SpecialPowers.pushPrefEnv({ + "set": [["dom.mozAlarms.enabled", true]] + }, function() { + var isAllowedToTest = true; - SpecialPowers.pushPrefEnv({"set": [["dom.mozAlarms.enabled", true]]}, function() { - - // Currently applicable only on FxOS - if (navigator.userAgent.indexOf("Mobile") != -1 && - navigator.appVersion.indexOf("Android") == -1) { - - testEmptyObject(); - - } else { - ok(true, "mozAlarms on Firefox OS only."); - SimpleTest.finish(); + if (navigator.appVersion.indexOf("Android") !== -1) { + ok(true, "mozAlarms is not allowed on Android for now. " + + "TODO Bug 863557."); + isAllowedToTest = false; + } else if (SpecialPowers.wrap(document).nodePrincipal.appStatus == + SpecialPowers.Ci.nsIPrincipal.APP_STATUS_NOT_INSTALLED) { + ok(true, "mozAlarms is not allowed for non-installed apps. " + + "TODO Bug 876981."); + isAllowedToTest = false; } - }); + if (isAllowedToTest) { + ok(true, "Start to test..."); + testEmptyObject(); + } else { + // A sanity check to make sure we must run tests on Firefox OS (B2G). + if (navigator.userAgent.indexOf("Mobile") != -1 && + navigator.appVersion.indexOf("Android") == -1) { + ok(false, "Should run the test on Firefox OS (B2G)!"); + } + SimpleTest.finish(); + } + }); } SimpleTest.expectAssertions(0, 9); diff --git a/dom/alarm/test/test_alarm_add_date.html b/dom/alarm/test/test_alarm_add_date.html index 29fccf5b351d..5c0e87a6d373 100644 --- a/dom/alarm/test/test_alarm_add_date.html +++ b/dom/alarm/test/test_alarm_add_date.html @@ -99,15 +99,32 @@ } function startTests() { + SpecialPowers.pushPrefEnv({ + "set": [["dom.mozAlarms.enabled", true]] + }, function() { + var isAllowedToTest = true; - SpecialPowers.pushPrefEnv({"set": [["dom.mozAlarms.enabled", true]]}, function() { - // Currently applicable only on FxOS - if (navigator.userAgent.indexOf("Mobile") != -1 && - navigator.appVersion.indexOf("Android") == -1) - { + if (navigator.appVersion.indexOf("Android") !== -1) { + ok(true, "mozAlarms is not allowed on Android for now. " + + "TODO Bug 863557."); + isAllowedToTest = false; + } else if (SpecialPowers.wrap(document).nodePrincipal.appStatus == + SpecialPowers.Ci.nsIPrincipal.APP_STATUS_NOT_INSTALLED) { + ok(true, "mozAlarms is not allowed for non-installed apps. " + + "TODO Bug 876981."); + isAllowedToTest = false; + } + + if (isAllowedToTest) { + ok(true, "Start to test..."); testFutureDate(); } else { - ok(true, "mozAlarms on Firefox OS only."); + // A sanity check to make sure we must run tests on Firefox OS (B2G). + if (navigator.userAgent.indexOf("Mobile") != -1 && + navigator.appVersion.indexOf("Android") == -1) { + ok(false, "Should run the test on Firefox OS (B2G)!"); + } + SimpleTest.finish(); } }); diff --git a/dom/alarm/test/test_alarm_add_respectTimezone.html b/dom/alarm/test/test_alarm_add_respectTimezone.html index 05220e576efe..1b533cbd7737 100644 --- a/dom/alarm/test/test_alarm_add_respectTimezone.html +++ b/dom/alarm/test/test_alarm_add_respectTimezone.html @@ -117,12 +117,24 @@ } function startTests() { + SpecialPowers.pushPrefEnv({ + "set": [["dom.mozAlarms.enabled", true]] + }, function() { + var isAllowedToTest = true; - SpecialPowers.pushPrefEnv({"set": [["dom.mozAlarms.enabled", true]]}, function() { + if (navigator.appVersion.indexOf("Android") !== -1) { + ok(true, "mozAlarms is not allowed on Android for now. " + + "TODO Bug 863557."); + isAllowedToTest = false; + } else if (SpecialPowers.wrap(document).nodePrincipal.appStatus == + SpecialPowers.Ci.nsIPrincipal.APP_STATUS_NOT_INSTALLED) { + ok(true, "mozAlarms is not allowed for non-installed apps. " + + "TODO Bug 876981."); + isAllowedToTest = false; + } - // Currently applicable only on FxOS - if (navigator.userAgent.indexOf("Mobile") != -1 && - navigator.appVersion.indexOf("Android") == -1) { + if (isAllowedToTest) { + ok(true, "Start to test..."); // Arbitrary date to use for tests var tomorrow = new Date(); @@ -130,12 +142,15 @@ // Kick off the tests testHonorTimezone(tomorrow); - } else { - ok(true, "mozAlarms on Firefox OS only."); + // A sanity check to make sure we must run tests on Firefox OS (B2G). + if (navigator.userAgent.indexOf("Mobile") != -1 && + navigator.appVersion.indexOf("Android") == -1) { + ok(false, "Should run the test on Firefox OS (B2G)!"); + } + SimpleTest.finish(); } - }); } diff --git a/dom/alarm/test/test_alarm_remove.html b/dom/alarm/test/test_alarm_remove.html index 0b0000af87e5..a50b0f663ec2 100644 --- a/dom/alarm/test/test_alarm_remove.html +++ b/dom/alarm/test/test_alarm_remove.html @@ -72,20 +72,34 @@ } function startTests() { + SpecialPowers.pushPrefEnv({ + "set": [["dom.mozAlarms.enabled", true]] + }, function() { + var isAllowedToTest = true; - SpecialPowers.pushPrefEnv({"set": [["dom.mozAlarms.enabled", true]]}, function() { - - // Currently applicable only on FxOS - if (navigator.userAgent.indexOf("Mobile") != -1 && - navigator.appVersion.indexOf("Android") == -1) { - - testAddRemove(); - - } else { - ok(true, "mozAlarms on Firefox OS only."); - SimpleTest.finish(); + if (navigator.appVersion.indexOf("Android") !== -1) { + ok(true, "mozAlarms is not allowed on Android for now. " + + "TODO Bug 863557."); + isAllowedToTest = false; + } else if (SpecialPowers.wrap(document).nodePrincipal.appStatus == + SpecialPowers.Ci.nsIPrincipal.APP_STATUS_NOT_INSTALLED) { + ok(true, "mozAlarms is not allowed for non-installed apps. " + + "TODO Bug 876981."); + isAllowedToTest = false; } + if (isAllowedToTest) { + ok(true, "Start to test..."); + testAddRemove(); + } else { + // A sanity check to make sure we must run tests on Firefox OS (B2G). + if (navigator.userAgent.indexOf("Mobile") != -1 && + navigator.appVersion.indexOf("Android") == -1) { + ok(false, "Should run the test on Firefox OS (B2G)!"); + } + + SimpleTest.finish(); + } }); } From 9be7d20488a48c5bce2feee4a4bf95291edf140e Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 24 May 2014 09:20:53 -0700 Subject: [PATCH 21/37] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ======== https://hg.mozilla.org/integration/gaia-central/rev/db887588719d Author: Carmen Jiménez Desc: Merge pull request #19229 from mcjimenez/bug1010088 Bug 1010088 - Use STAGE_DIR consistently on build process ======== https://hg.mozilla.org/integration/gaia-central/rev/61ee7307ff7b Author: Carmen Jimenez Cabezas Desc: Bug 1010088 - Use STAGE_DIR consistently on build process --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 3b1a7f986bbb..05cfc79a0087 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "d82c6502cdd7cdcaac6277835c7ec8e6a3520c9c", + "revision": "db887588719da9469b7aaee5a384559d6ff48e31", "repo_path": "/integration/gaia-central" } From 8f7aa15153ddf33f0dbaff1056d162a853cea93f Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 24 May 2014 09:26:25 -0700 Subject: [PATCH 22/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/inari/sources.xml | 2 +- b2g/config/leo/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 3f7cf7bfba8a..e7f2ced470c5 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 6e0afc4e2e40..c5fb9d243254 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 49a0a3435e7d..b6ebcfc21b93 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 3f7cf7bfba8a..e7f2ced470c5 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index aca8e1f28ff4..9148b734df58 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -18,7 +18,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 573bc8691a93..e3e4da74378f 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 47b4bb93e1de..9527ce702320 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index 110e79c107b1..d68b465d4f72 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index 1227ffa1c2aa..c53bef00272b 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index 7bce29da729c..9fe185f17f9a 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 25dceb3f7062..8f45fdae3b2b 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 3b8e1ed3586fcccae77c6c53099b63ea35c72d13 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 24 May 2014 10:01:11 -0700 Subject: [PATCH 23/37] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/46b331b7fa82 Author: Kevin Grandon Desc: Merge pull request #19525 from KevinGrandon/bug_1014180_test_agent_bump Bug 1014180 - Update gaia_node_modules for test-agent bump ======== https://hg.mozilla.org/integration/gaia-central/rev/b18197e41855 Author: Kevin Grandon Desc: Bug 1014180 - Update gaia_node_modules for test-agent bump r=julienw r=lightsofapollo --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 05cfc79a0087..bf6ba62da5e7 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "db887588719da9469b7aaee5a384559d6ff48e31", + "revision": "46b331b7fa8272fdb2535910e0b5aec91325b2f2", "repo_path": "/integration/gaia-central" } From 9c571cccc207ce69d7be303aa912231f63183fe5 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 24 May 2014 10:06:32 -0700 Subject: [PATCH 24/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/inari/sources.xml | 2 +- b2g/config/leo/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index e7f2ced470c5..a57955c3dd87 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index c5fb9d243254..1be025914e0a 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index b6ebcfc21b93..2e85ee2f5309 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index e7f2ced470c5..a57955c3dd87 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 9148b734df58..1283df4a3bc2 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -18,7 +18,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index e3e4da74378f..7070c66b4b00 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 9527ce702320..321fa9134f11 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index d68b465d4f72..77bf264867dd 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index c53bef00272b..97c878cec1eb 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index 9fe185f17f9a..b3e1f01edada 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 8f45fdae3b2b..0acfc9ccd902 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From c32a9837e370e310812d8ec78c366699895fe862 Mon Sep 17 00:00:00 2001 From: Michael Wu Date: Sat, 24 May 2014 14:42:00 -0400 Subject: [PATCH 25/37] Bug 1015483 - Fix boot animation when screen width != stride, r=m1 --- widget/gonk/libdisplay/BootAnimation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widget/gonk/libdisplay/BootAnimation.cpp b/widget/gonk/libdisplay/BootAnimation.cpp index 49e476232443..82dc83c6529b 100644 --- a/widget/gonk/libdisplay/BootAnimation.cpp +++ b/widget/gonk/libdisplay/BootAnimation.cpp @@ -524,7 +524,7 @@ AnimationThread(void *) break; } - if (buf->height == frame.height && buf->width == frame.width) { + if (buf->height == frame.height && buf->stride == frame.width) { memcpy(vaddr, frame.buf, frame.width * frame.height * frame.bytepp); } else if (buf->height >= frame.height && From 551f1dd2e50d03f590e40df753d425334866b9a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez?= Date: Sat, 24 May 2014 12:28:13 -0700 Subject: [PATCH 26/37] Bug 903291 - App download hangs indefinitely if the child process dies before confirming the install. r=fabrice * * * Bug 903291 - App download hangs indefinitely if the child process dies before confirming the install --- dom/apps/src/AppsServiceChild.jsm | 285 +++++++++++++++++- dom/apps/src/Webapps.js | 297 ++++++++----------- dom/apps/src/Webapps.jsm | 113 ++++--- dom/apps/tests/test_packaged_app_common.js | 1 + dom/apps/tests/test_packaged_app_update.html | 19 +- dom/apps/tests/test_receipt_operations.html | 2 +- toolkit/devtools/server/actors/webapps.js | 2 +- 7 files changed, 458 insertions(+), 261 deletions(-) diff --git a/dom/apps/src/AppsServiceChild.jsm b/dom/apps/src/AppsServiceChild.jsm index c7cb9890f768..ed454bc40d14 100644 --- a/dom/apps/src/AppsServiceChild.jsm +++ b/dom/apps/src/AppsServiceChild.jsm @@ -8,10 +8,10 @@ const Cu = Components.utils; const Cc = Components.classes; const Ci = Components.interfaces; -// This module exposes a subset of the functionnalities of the parent DOM -// Registry to content processes, to be be used from the AppsService component. +// This module exposes a subset of the functionalities of the parent DOM +// Registry to content processes, to be used from the AppsService component. -this.EXPORTED_SYMBOLS = ["DOMApplicationRegistry"]; +this.EXPORTED_SYMBOLS = ["DOMApplicationRegistry", "WrappedManifestCache"]; Cu.import("resource://gre/modules/AppsUtils.jsm"); Cu.import("resource://gre/modules/Services.jsm"); @@ -20,54 +20,315 @@ function debug(s) { //dump("-*- AppsServiceChild.jsm: " + s + "\n"); } +const APPS_IPC_MSG_NAMES = [ + "Webapps:AddApp", + "Webapps:RemoveApp", + "Webapps:UpdateApp", + "Webapps:CheckForUpdate:Return:KO", + "Webapps:FireEvent", + "Webapps:UpdateState" +]; + +// A simple cache for the wrapped manifests. +this.WrappedManifestCache = { + _cache: { }, + + // Gets an entry from the cache, and populates the cache if needed. + get: function mcache_get(aManifestURL, aManifest, aWindow, aInnerWindowID) { + if (!(aManifestURL in this._cache)) { + this._cache[aManifestURL] = { }; + } + + let winObjs = this._cache[aManifestURL]; + if (!(aInnerWindowID in winObjs)) { + winObjs[aInnerWindowID] = Cu.cloneInto(aManifest, aWindow); + } + + return winObjs[aInnerWindowID]; + }, + + // Invalidates an entry in the cache. + evict: function mcache_evict(aManifestURL, aInnerWindowID) { + debug("Evicting manifest " + aManifestURL + " window ID " + + aInnerWindowID); + if (aManifestURL in this._cache) { + let winObjs = this._cache[aManifestURL]; + if (aInnerWindowID in winObjs) { + delete winObjs[aInnerWindowID]; + } + + if (Object.keys(winObjs).length == 0) { + delete this._cache[aManifestURL]; + } + } + }, + + observe: function(aSubject, aTopic, aData) { + // Clear the cache on memory pressure. + this._cache = { }; + Cu.forceGC(); + }, + + init: function() { + Services.obs.addObserver(this, "memory-pressure", false); + } +}; + +this.WrappedManifestCache.init(); + + +// DOMApplicationRegistry keeps a cache containing a list of apps in the device. +// This information is updated with the data received from the main process and +// it is queried by the DOM objects to set their state. +// This module handle all the messages broadcasted from the parent process, +// including DOM events, which are dispatched to the corresponding DOM objects. + this.DOMApplicationRegistry = { + // DOMApps will hold a list of arrays of weak references to + // mozIDOMApplication objects indexed by manifest URL. + DOMApps: {}, + init: function init() { - debug("init"); this.cpmm = Cc["@mozilla.org/childprocessmessagemanager;1"] .getService(Ci.nsISyncMessageSender); - ["Webapps:AddApp", "Webapps:RemoveApp"].forEach((function(aMsgName) { + APPS_IPC_MSG_NAMES.forEach((function(aMsgName) { this.cpmm.addMessageListener(aMsgName, this); }).bind(this)); + this.cpmm.sendAsyncMessage("Webapps:RegisterForMessages", { + messages: APPS_IPC_MSG_NAMES + }); + // We need to prime the cache with the list of apps. - // XXX shoud we do this async and block callers if it's not yet there? - this.webapps = this.cpmm.sendSyncMessage("Webapps:GetList", { })[0]; + // XXX should we do this async and block callers if it's not yet there? + let list = this.cpmm.sendSyncMessage("Webapps:GetList", { })[0]; + this.webapps = list.webapps; // We need a fast mapping from localId -> app, so we add an index. + // And add the manifest to the app object. this.localIdIndex = { }; for (let id in this.webapps) { let app = this.webapps[id]; this.localIdIndex[app.localId] = app; + app.manifest = list.manifests[id]; } Services.obs.addObserver(this, "xpcom-shutdown", false); }, observe: function(aSubject, aTopic, aData) { - // cpmm.addMessageListener causes the DOMApplicationRegistry object to live - // forever if we don't clean up properly. + // cpmm.addMessageListener causes the DOMApplicationRegistry object to + // live forever if we don't clean up properly. this.webapps = null; - ["Webapps:AddApp", "Webapps:RemoveApp"].forEach((function(aMsgName) { + this.DOMApps = null; + + APPS_IPC_MSG_NAMES.forEach((aMsgName) => { this.cpmm.removeMessageListener(aMsgName, this); - }).bind(this)); + }); + + this.cpmm.sendAsyncMessage("Webapps:UnregisterForMessages", + APPS_IPC_MSG_NAMES) }, receiveMessage: function receiveMessage(aMessage) { debug("Received " + aMessage.name + " message."); - let msg = aMessage.json; + let msg = aMessage.data; switch (aMessage.name) { case "Webapps:AddApp": this.webapps[msg.id] = msg.app; this.localIdIndex[msg.app.localId] = msg.app; break; case "Webapps:RemoveApp": + delete this.DOMApps[this.webapps[msg.id].manifestURL]; delete this.localIdIndex[this.webapps[msg.id].localId]; delete this.webapps[msg.id]; break; + case "Webapps:UpdateApp": + let app = this.webapps[msg.oldId]; + if (!app) { + return; + } + + if (msg.app) { + for (let prop in msg.app) { + app[prop] = msg.app[prop]; + } + } + + this.webapps[msg.newId] = app; + this.localIdIndex[app.localId] = app; + delete this.webapps[msg.oldId]; + + let apps = this.DOMApps[msg.app.manifestURL]; + if (!apps) { + return; + } + for (let i = 0; i < apps.length; i++) { + let domApp = apps[i].get(); + if (!domApp) { + apps.splice(i); + continue; + } + domApp._proxy = new Proxy(domApp, { + get: function(target, prop) { + if (!DOMApplicationRegistry.webapps[msg.newId]) { + return; + } + return DOMApplicationRegistry.webapps[msg.newId][prop]; + }, + set: function(target, prop, val) { + if (!DOMApplicationRegistry.webapps[msg.newId]) { + return; + } + DOMApplicationRegistry.webapps[msg.newId][prop] = val; + return; + }, + }); + } + break; + case "Webapps:FireEvent": + this._fireEvent(aMessage); + break; + case "Webapps:UpdateState": + this._updateState(msg); + break; + case "Webapps:CheckForUpdate:Return:KO": + let DOMApps = this.DOMApps[msg.manifestURL]; + if (!DOMApps || !msg.requestID) { + return; + } + DOMApps.forEach((DOMApp) => { + let domApp = DOMApp.get(); + if (domApp && msg.requestID) { + domApp._fireRequestResult(aMessage, true /* aIsError */); + } + }); + break; } }, + /** + * mozIDOMApplication management + */ + + // Every time a DOM app is created, we save a weak reference to it that will + // be used to dispatch events and fire request results. + addDOMApp: function(aApp, aManifestURL, aId) { + let weakRef = Cu.getWeakReference(aApp); + + if (!this.DOMApps[aManifestURL]) { + this.DOMApps[aManifestURL] = []; + } + + let apps = this.DOMApps[aManifestURL]; + + // Get rid of dead weak references. + for (let i = 0; i < apps.length; i++) { + if (!apps[i].get()) { + apps.splice(i); + } + } + + apps.push(weakRef); + + // Each DOM app contains a proxy object used to build their state. We + // return the handler for this proxy object with traps to get and set + // app properties kept in the DOMApplicationRegistry app cache. + return { + get: function(target, prop) { + if (!DOMApplicationRegistry.webapps[aId]) { + return; + } + return DOMApplicationRegistry.webapps[aId][prop]; + }, + set: function(target, prop, val) { + if (!DOMApplicationRegistry.webapps[aId]) { + return; + } + DOMApplicationRegistry.webapps[aId][prop] = val; + return; + }, + }; + }, + + _fireEvent: function(aMessage) { + let msg = aMessage.data; + debug("_fireEvent " + JSON.stringify(msg)); + if (!this.DOMApps || !msg.manifestURL || !msg.eventType) { + return; + } + + let DOMApps = this.DOMApps[msg.manifestURL]; + if (!DOMApps) { + return; + } + + // The parent might ask childs to trigger more than one event in one + // shot, so in order to avoid needless IPC we allow an array for the + // 'eventType' IPC message field. + if (!Array.isArray(msg.eventType)) { + msg.eventType = [msg.eventType]; + } + + DOMApps.forEach((DOMApp) => { + let domApp = DOMApp.get(); + if (!domApp) { + return; + } + msg.eventType.forEach((aEventType) => { + if ('on' + aEventType in domApp) { + domApp._fireEvent(aEventType); + } + }); + + if (msg.requestID) { + aMessage.data.result = msg.manifestURL; + domApp._fireRequestResult(aMessage); + } + }); + }, + + _updateState: function(aMessage) { + if (!this.DOMApps || !aMessage.id) { + return; + } + + let app = this.webapps[aMessage.id]; + if (!app) { + return; + } + + if (aMessage.app) { + for (let prop in aMessage.app) { + app[prop] = aMessage.app[prop]; + } + } + + if (aMessage.error) { + app.downloadError = aMessage.error; + } + + if (aMessage.manifest) { + app.manifest = aMessage.manifest; + // Evict the wrapped manifest cache for all the affected DOM objects. + let DOMApps = this.DOMApps[app.manifestURL]; + if (!DOMApps) { + return; + } + DOMApps.forEach((DOMApp) => { + let domApp = DOMApp.get(); + if (!domApp) { + return; + } + WrappedManifestCache.evict(app.manifestURL, domApp.innerWindowID); + }); + } + }, + + /** + * nsIAppsService API + */ getAppByManifestURL: function getAppByManifestURL(aManifestURL) { debug("getAppByManifestURL " + aManifestURL); return AppsUtils.getAppByManifestURL(this.webapps, aManifestURL); diff --git a/dom/apps/src/Webapps.js b/dom/apps/src/Webapps.js index 49138a527b5f..f97bb0fe1ca9 100644 --- a/dom/apps/src/Webapps.js +++ b/dom/apps/src/Webapps.js @@ -12,6 +12,7 @@ Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/DOMRequestHelper.jsm"); Cu.import("resource://gre/modules/AppsUtils.jsm"); Cu.import("resource://gre/modules/BrowserElementPromptService.jsm"); +Cu.import("resource://gre/modules/AppsServiceChild.jsm"); XPCOMUtils.defineLazyServiceGetter(this, "cpmm", "@mozilla.org/childprocessmessagemanager;1", @@ -264,50 +265,9 @@ WebappsRegistry.prototype = { * mozIDOMApplication object */ -// A simple cache for the wrapped manifests. -let manifestCache = { - _cache: { }, - - // Gets an entry from the cache, and populates the cache if needed. - get: function mcache_get(aManifestURL, aManifest, aWindow, aInnerWindowID) { - if (!(aManifestURL in this._cache)) { - this._cache[aManifestURL] = { }; - } - - let winObjs = this._cache[aManifestURL]; - if (!(aInnerWindowID in winObjs)) { - winObjs[aInnerWindowID] = Cu.cloneInto(aManifest, aWindow); - } - - return winObjs[aInnerWindowID]; - }, - - // Invalidates an entry in the cache. - evict: function mcache_evict(aManifestURL, aInnerWindowID) { - if (aManifestURL in this._cache) { - let winObjs = this._cache[aManifestURL]; - if (aInnerWindowID in winObjs) { - delete winObjs[aInnerWindowID]; - } - - if (Object.keys(winObjs).length == 0) { - delete this._cache[aManifestURL]; - } - } - }, - - observe: function(aSubject, aTopic, aData) { - // Clear the cache on memory pressure. - this._cache = { }; - }, - - init: function() { - Services.obs.addObserver(this, "memory-pressure", false); - } -}; - function createApplicationObject(aWindow, aApp) { - let app = Cc["@mozilla.org/webapps/application;1"].createInstance(Ci.mozIDOMApplication); + let app = Cc["@mozilla.org/webapps/application;1"] + .createInstance(Ci.mozIDOMApplication); app.wrappedJSObject.init(aWindow, aApp); return app; } @@ -320,27 +280,12 @@ WebappsApplication.prototype = { __proto__: DOMRequestIpcHelper.prototype, init: function(aWindow, aApp) { + let proxyHandler = DOMApplicationRegistry.addDOMApp(this, + aApp.manifestURL, + aApp.id); + this._proxy = new Proxy(this, proxyHandler); + this._window = aWindow; - let principal = this._window.document.nodePrincipal; - this._appStatus = principal.appStatus; - this.origin = aApp.origin; - this._manifest = aApp.manifest; - this._updateManifest = aApp.updateManifest; - this.manifestURL = aApp.manifestURL; - this.receipts = aApp.receipts; - this.installOrigin = aApp.installOrigin; - this.installTime = aApp.installTime; - this.installState = aApp.installState || "installed"; - this.removable = aApp.removable; - this.lastUpdateCheck = aApp.lastUpdateCheck ? aApp.lastUpdateCheck - : Date.now(); - this.updateTime = aApp.updateTime ? aApp.updateTime - : aApp.installTime; - this.progress = NaN; - this.downloadAvailable = aApp.downloadAvailable; - this.downloading = aApp.downloading; - this.readyToApplyDownload = aApp.readyToApplyDownload; - this.downloadSize = aApp.downloadSize || 0; this._onprogress = null; this._ondownloadsuccess = null; @@ -348,40 +293,83 @@ WebappsApplication.prototype = { this._ondownloadavailable = null; this._ondownloadapplied = null; - this._downloadError = null; + this.initDOMRequestHelper(aWindow); + }, - this.initDOMRequestHelper(aWindow, [ - { name: "Webapps:CheckForUpdate:Return:KO", weakRef: true }, - { name: "Webapps:Connect:Return:OK", weakRef: true }, - { name: "Webapps:Connect:Return:KO", weakRef: true }, - { name: "Webapps:FireEvent", weakRef: true }, - { name: "Webapps:GetConnections:Return:OK", weakRef: true }, - { name: "Webapps:UpdateState", weakRef: true } - ]); + get _appStatus() { + return this._proxy.appStatus; + }, - cpmm.sendAsyncMessage("Webapps:RegisterForMessages", { - messages: ["Webapps:FireEvent", - "Webapps:UpdateState"], - app: { - id: this.id, - manifestURL: this.manifestURL, - installState: this.installState, - downloading: this.downloading - } - }); + get downloadAvailable() { + return this._proxy.downloadAvailable; + }, + + get downloading() { + return this._proxy.downloading; + }, + + get downloadSize() { + return this._proxy.downloadSize; + }, + + get installOrigin() { + return this._proxy.installOrigin; + }, + + get installState() { + return this._proxy.installState; + }, + + get installTime() { + return this._proxy.installTime; + }, + + get lastUpdateCheck() { + return this._proxy.lastUpdateCheck; + }, + + get manifestURL() { + return this._proxy.manifestURL; + }, + + get origin() { + return this._proxy.origin; + }, + + get progress() { + return this._proxy.progress; + }, + + get readyToApplyDownload() { + return this._proxy.readyToApplyDownload; + }, + + get receipts() { + return this._proxy.receipts; + }, + + set receipts(aReceipts) { + this._proxy.receipts = aReceipts; + }, + + get removable() { + return this._proxy.removable; + }, + + get updateTime() { + return this._proxy.updateTime; }, get manifest() { - return manifestCache.get(this.manifestURL, - this._manifest, - this._window, - this.innerWindowID); + return WrappedManifestCache.get(this.manifestURL, + this._proxy.manifest, + this._window, + this.innerWindowID); }, get updateManifest() { - return this.updateManifest = - this._updateManifest ? Cu.cloneInto(this._updateManifest, this._window) - : null; + return this._proxy.updateManifest ? + Cu.cloneInto(this._proxy.updateManifest, this._window) : null; }, set onprogress(aCallback) { @@ -425,7 +413,7 @@ WebappsApplication.prototype = { }, get downloadError() { - return new this._window.DOMError(this._downloadError || ''); + return new this._window.DOMError(this._proxy.downloadError || ''); }, download: function() { @@ -467,12 +455,11 @@ WebappsApplication.prototype = { BrowserElementPromptService.getBrowserElementChildForWindow(this._window); if (browserChild) { this.addMessageListeners("Webapps:ClearBrowserData:Return"); - browserChild.messageManager.sendAsyncMessage( - "Webapps:ClearBrowserData", - { manifestURL: this.manifestURL, - oid: this._id, - requestID: this.getRequestId(request) } - ); + browserChild.messageManager.sendAsyncMessage("Webapps:ClearBrowserData", { + manifestURL: this.manifestURL, + oid: this._id, + requestID: this.getRequestId(request) + }); } else { Services.DOMRequest.fireErrorAsync(request, "NO_CLEARABLE_BROWSER"); } @@ -480,28 +467,33 @@ WebappsApplication.prototype = { }, connect: function(aKeyword, aRules) { + this.addMessageListeners(["Webapps:Connect:Return:OK", + "Webapps:Connect:Return:KO"]); return this.createPromise(function (aResolve, aReject) { - cpmm.sendAsyncMessage("Webapps:Connect", - { keyword: aKeyword, - rules: aRules, - manifestURL: this.manifestURL, - outerWindowID: this._id, - requestID: this.getPromiseResolverId({ - resolve: aResolve, - reject: aReject - })}); + cpmm.sendAsyncMessage("Webapps:Connect", { + keyword: aKeyword, + rules: aRules, + manifestURL: this.manifestURL, + outerWindowID: this._id, + requestID: this.getPromiseResolverId({ + resolve: aResolve, + reject: aReject + }) + }); }.bind(this)); }, getConnections: function() { + this.addMessageListeners("Webapps:GetConnections:Return:OK"); return this.createPromise(function (aResolve, aReject) { - cpmm.sendAsyncMessage("Webapps:GetConnections", - { manifestURL: this.manifestURL, - outerWindowID: this._id, - requestID: this.getPromiseResolverId({ - resolve: aResolve, - reject: aReject - })}); + cpmm.sendAsyncMessage("Webapps:GetConnections", { + manifestURL: this.manifestURL, + outerWindowID: this._id, + requestID: this.getPromiseResolverId({ + resolve: aResolve, + reject: aReject + }) + }); }.bind(this)); }, @@ -550,12 +542,7 @@ WebappsApplication.prototype = { uninit: function() { this._onprogress = null; - cpmm.sendAsyncMessage("Webapps:UnregisterForMessages", [ - "Webapps:FireEvent", - "Webapps:UpdateState" - ]); - - manifestCache.evict(this.manifestURL, this.innerWindowID); + WrappedManifestCache.evict(this.manifestURL, this.innerWindowID); }, _fireEvent: function(aName) { @@ -572,21 +559,15 @@ WebappsApplication.prototype = { } }, - _updateState: function(aMsg) { - if (aMsg.app) { - for (let prop in aMsg.app) { - this[prop] = aMsg.app[prop]; - } - } - - if (aMsg.error) { - this._downloadError = aMsg.error; - } - - if (aMsg.manifest) { - this._manifest = aMsg.manifest; - manifestCache.evict(this.manifestURL, this.innerWindowID); + _fireRequestResult: function(aMessage, aIsError) { + let req; + let msg = aMessage.data; + req = this.takeRequest(msg.requestID); + if (!req) { + return; } + aIsError ? Services.DOMRequest.fireError(req, msg.error) + : Services.DOMRequest.fireSuccess(req, msg.result); }, receiveMessage: function(aMessage) { @@ -600,10 +581,7 @@ WebappsApplication.prototype = { req = this.takeRequest(msg.requestID); } - // ondownload* callbacks should be triggered on all app instances - if ((msg.oid != this._id || !req) && - aMessage.name !== "Webapps:FireEvent" && - aMessage.name !== "Webapps:UpdateState") { + if (msg.oid != this._id || !req) { return; } @@ -618,45 +596,13 @@ WebappsApplication.prototype = { "Webapps:Launch:Return:KO"]); Services.DOMRequest.fireSuccess(req, null); break; - case "Webapps:CheckForUpdate:Return:KO": - Services.DOMRequest.fireError(req, msg.error); - break; - case "Webapps:FireEvent": - if (msg.manifestURL != this.manifestURL) { - return; - } - - // The parent might ask childs to trigger more than one event in one - // shot, so in order to avoid needless IPC we allow an array for the - // 'eventType' IPC message field. - if (!Array.isArray(msg.eventType)) { - msg.eventType = [msg.eventType]; - } - - msg.eventType.forEach((aEventType) => { - if ("_on" + aEventType in this) { - this._fireEvent(aEventType); - } else { - dump("Unsupported event type " + aEventType + "\n"); - } - }); - - if (req) { - Services.DOMRequest.fireSuccess(req, this.manifestURL); - } - break; - case "Webapps:UpdateState": - if (msg.manifestURL != this.manifestURL) { - return; - } - - this._updateState(msg); - break; case "Webapps:ClearBrowserData:Return": this.removeMessageListeners(aMessage.name); Services.DOMRequest.fireSuccess(req, null); break; case "Webapps:Connect:Return:OK": + this.removeMessageListeners(["Webapps:Connect:Return:OK", + "Webapps:Connect:Return:KO"]); let messagePorts = []; msg.messagePortIDs.forEach((aPortID) => { let port = new this._window.MozInterAppMessagePort(aPortID); @@ -665,9 +611,12 @@ WebappsApplication.prototype = { req.resolve(messagePorts); break; case "Webapps:Connect:Return:KO": + this.removeMessageListeners(["Webapps:Connect:Return:OK", + "Webapps:Connect:Return:KO"]); req.reject("No connections registered"); break; case "Webapps:GetConnections:Return:OK": + this.removeMessageListeners(aMessage.name); let connections = []; msg.connections.forEach((aConnection) => { let connection = @@ -849,12 +798,8 @@ WebappsApplicationMgmt.prototype = { break; case "Webapps:Uninstall:Broadcast:Return:OK": if (this._onuninstall) { - let detail = { - manifestURL: msg.manifestURL, - origin: msg.origin - }; let event = new this._window.MozApplicationEvent("applicationuninstall", - { application : createApplicationObject(this._window, detail) }); + { application : createApplicationObject(this._window, msg) }); this._onuninstall.handleEvent(event); } break; @@ -883,7 +828,5 @@ WebappsApplicationMgmt.prototype = { classDescription: "Webapps Application Mgmt"}) } -manifestCache.init(); - this.NSGetFactory = XPCOMUtils.generateNSGetFactory([WebappsRegistry, WebappsApplication]); diff --git a/dom/apps/src/Webapps.jsm b/dom/apps/src/Webapps.jsm index ec88ecf5b052..f44ea64e2b01 100755 --- a/dom/apps/src/Webapps.jsm +++ b/dom/apps/src/Webapps.jsm @@ -1121,8 +1121,7 @@ this.DOMApplicationRegistry = { this.removeMessageListener(["Webapps:Internal:AllMessages"], mm); break; case "Webapps:GetList": - this.addMessageListener(["Webapps:AddApp", "Webapps:RemoveApp"], null, mm); - return this.webapps; + return { webapps: this.webapps, manifests: this._manifestCache }; case "Webapps:Download": this.startDownload(msg.manifestURL); break; @@ -1304,7 +1303,7 @@ this.DOMApplicationRegistry = { downloading: false }, error: error, - manifestURL: app.manifestURL, + id: app.id }) this.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", @@ -1334,7 +1333,7 @@ this.DOMApplicationRegistry = { if (!app.downloadAvailable) { this.broadcastMessage("Webapps:UpdateState", { error: "NO_DOWNLOAD_AVAILABLE", - manifestURL: app.manifestURL + id: app.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", @@ -1382,7 +1381,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, manifest: jsonManifest, - manifestURL: aManifestURL + id: app.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadsuccess", @@ -1426,7 +1425,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, - manifestURL: aManifestURL + id: app.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadsuccess", @@ -1526,7 +1525,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, manifest: aData, - manifestURL: app.manifestURL + id: app.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadapplied", @@ -1566,7 +1565,7 @@ this.DOMApplicationRegistry = { installState: aApp.installState, progress: 0 }, - manifestURL: aApp.manifestURL + id: aApp.id }); let cacheUpdate = updateSvc.scheduleAppUpdate( appcacheURI, docURI, aApp.localId, false, aProfileDir); @@ -1616,6 +1615,7 @@ this.DOMApplicationRegistry = { debug("checkForUpdate for " + aData.manifestURL); function sendError(aError) { + debug("checkForUpdate error " + aError); aData.error = aError; aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); } @@ -1645,8 +1645,7 @@ this.DOMApplicationRegistry = { // then we can't have an update. if (app.origin.startsWith("app://") && app.manifestURL.startsWith("app://")) { - aData.error = "NOT_UPDATABLE"; - aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); + sendError("NOT_UPDATABLE"); return; } @@ -1663,8 +1662,7 @@ this.DOMApplicationRegistry = { if (onlyCheckAppCache) { // Bail out for packaged apps. if (app.origin.startsWith("app://")) { - aData.error = "NOT_UPDATABLE"; - aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); + sendError("NOT_UPDATABLE"); return; } @@ -1672,8 +1670,7 @@ this.DOMApplicationRegistry = { this._readManifests([{ id: id }]).then((aResult) => { let manifest = aResult[0].manifest; if (!manifest.appcache_path) { - aData.error = "NOT_UPDATABLE"; - aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); + sendError("NOT_UPDATABLE"); return; } @@ -1689,7 +1686,7 @@ this.DOMApplicationRegistry = { this._saveApps().then(() => { this.broadcastMessage("Webapps:UpdateState", { app: app, - manifestURL: app.manifestURL + id: app.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadavailable", @@ -1698,8 +1695,7 @@ this.DOMApplicationRegistry = { }); }); } else { - aData.error = "NOT_UPDATABLE"; - aMm.sendAsyncMessage("Webapps:CheckForUpdate:Return:KO", aData); + sendError("NOT_UPDATABLE"); } } }; @@ -1759,7 +1755,7 @@ this.DOMApplicationRegistry = { : "downloadapplied"; aMm.sendAsyncMessage("Webapps:UpdateState", { app: app, - manifestURL: app.manifestURL + id: app.id }); aMm.sendAsyncMessage("Webapps:FireEvent", { eventType: eventType, @@ -1786,7 +1782,7 @@ this.DOMApplicationRegistry = { : "downloadapplied"; aMm.sendAsyncMessage("Webapps:UpdateState", { app: app, - manifestURL: app.manifestURL + id: app.id }); aMm.sendAsyncMessage("Webapps:FireEvent", { eventType: eventType, @@ -1895,7 +1891,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aApp, - manifestURL: aApp.manifestURL + id: aApp.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadavailable", @@ -1961,7 +1957,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aApp, manifest: aApp.manifest, - manifestURL: aApp.manifestURL + id: aApp.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloadapplied", @@ -1995,7 +1991,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aApp, manifest: aApp.manifest, - manifestURL: aApp.manifestURL + id: aApp.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: eventType, @@ -2523,6 +2519,8 @@ this.DOMApplicationRegistry = { // saved in the registry. yield this._saveApps(); + aData.isPackage ? appObject.updateManifest = jsonManifest : + appObject.manifest = jsonManifest; this.broadcastMessage("Webapps:AddApp", { id: id, app: appObject }); if (aData.isPackage && aData.autoInstall) { // Skip directly to onInstallSuccessAck, since there isn't @@ -2616,7 +2614,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: app, manifest: aManifest, - manifestURL: aNewApp.manifestURL + id: app.id }); // Check if we have asm.js code to preload for this application. @@ -2730,14 +2728,11 @@ this.DOMApplicationRegistry = { oldApp, aNewApp); - AppDownloadManager.add( - aNewApp.manifestURL, - { - channel: requestChannel, - appId: id, - previousState: aIsUpdate ? "installed" : "pending" - } - ); + AppDownloadManager.add(aNewApp.manifestURL, { + channel: requestChannel, + appId: id, + previousState: aIsUpdate ? "installed" : "pending" + }); // We set the 'downloading' flag to true right before starting the fetch. oldApp.downloading = true; @@ -2760,7 +2755,7 @@ this.DOMApplicationRegistry = { debug("package's etag or hash unchanged; sending 'applied' event"); // The package's Etag or hash has not changed. // We send a "applied" event right away. - this._sendAppliedEvent(aNewApp, oldApp, id); + this._sendAppliedEvent(oldApp); return; } @@ -2900,7 +2895,7 @@ this.DOMApplicationRegistry = { app: { progress: aProgress }, - manifestURL: aNewApp.manifestURL + id: aNewApp.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "progress", @@ -3017,27 +3012,24 @@ this.DOMApplicationRegistry = { * something similar after updating the app, and we could refactor both cases * to use the same code to send the "applied" event. * - * @param aNewApp {Object} the new app data - * @param aOldApp {Object} the currently stored app data - * @param aId {String} the unique id of the app + * @param aApp {Object} app data */ - _sendAppliedEvent: function(aNewApp, aOldApp, aId) { - aOldApp.downloading = false; - aOldApp.downloadAvailable = false; - aOldApp.downloadSize = 0; - aOldApp.installState = "installed"; - aOldApp.readyToApplyDownload = false; - if (aOldApp.staged && aOldApp.staged.manifestHash) { + _sendAppliedEvent: function(aApp) { + aApp.downloading = false; + aApp.downloadAvailable = false; + aApp.downloadSize = 0; + aApp.installState = "installed"; + aApp.readyToApplyDownload = false; + if (aApp.staged && aApp.staged.manifestHash) { // If we're here then the manifest has changed but the package // hasn't. Let's clear this, so we don't keep offering // a bogus update to the user - aOldApp.manifestHash = aOldApp.staged.manifestHash; - aOldApp.etag = aOldApp.staged.etag || aOldApp.etag; - aOldApp.staged = {}; - - // Move the staged update manifest to a non staged one. + aApp.manifestHash = aApp.staged.manifestHash; + aApp.etag = aApp.staged.etag || aApp.etag; + aApp.staged = {}; + // Move the staged update manifest to a non staged one. try { - let staged = this._getAppDir(aId); + let staged = this._getAppDir(aApp.id); staged.append("staged-update.webapp"); staged.moveTo(staged.parent, "update.webapp"); } catch (ex) { @@ -3048,15 +3040,15 @@ this.DOMApplicationRegistry = { // Save the updated registry, and cleanup the tmp directory. this._saveApps().then(() => { this.broadcastMessage("Webapps:UpdateState", { - app: aOldApp, - manifestURL: aNewApp.manifestURL + app: aApp, + id: aApp.id }); this.broadcastMessage("Webapps:FireEvent", { - manifestURL: aNewApp.manifestURL, + manifestURL: aApp.manifestURL, eventType: ["downloadsuccess", "downloadapplied"] }); }); - let file = FileUtils.getFile("TmpD", ["webapps", aId], false); + let file = FileUtils.getFile("TmpD", ["webapps", aApp.id], false); if (file && file.exists()) { file.remove(true); } @@ -3361,9 +3353,10 @@ this.DOMApplicationRegistry = { dir.moveTo(parent, newId); }); // Signals that we need to swap the old id with the new app. - this.broadcastMessage("Webapps:RemoveApp", { id: oldId }); - this.broadcastMessage("Webapps:AddApp", { id: newId, - app: aOldApp }); + this.broadcastMessage("Webapps:UpdateApp", { oldId: oldId, + newId: newId, + app: aOldApp }); + } } }, @@ -3466,7 +3459,7 @@ this.DOMApplicationRegistry = { this.broadcastMessage("Webapps:UpdateState", { app: aOldApp, error: aError, - manifestURL: aNewApp.manifestURL + id: aNewApp.id }); this.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", @@ -4016,7 +4009,7 @@ AppcacheObserver.prototype = { let app = this.app; DOMApplicationRegistry.broadcastMessage("Webapps:UpdateState", { app: app, - manifestURL: app.manifestURL + id: app.id }); DOMApplicationRegistry.broadcastMessage("Webapps:FireEvent", { eventType: "progress", @@ -4048,7 +4041,7 @@ AppcacheObserver.prototype = { app.downloadAvailable = false; DOMApplicationRegistry.broadcastMessage("Webapps:UpdateState", { app: app, - manifestURL: app.manifestURL + id: app.id }); DOMApplicationRegistry.broadcastMessage("Webapps:FireEvent", { eventType: ["downloadsuccess", "downloadapplied"], @@ -4062,7 +4055,7 @@ AppcacheObserver.prototype = { DOMApplicationRegistry.broadcastMessage("Webapps:UpdateState", { app: app, error: aError, - manifestURL: app.manifestURL + id: app.id }); DOMApplicationRegistry.broadcastMessage("Webapps:FireEvent", { eventType: "downloaderror", diff --git a/dom/apps/tests/test_packaged_app_common.js b/dom/apps/tests/test_packaged_app_common.js index 9a0bddbff4c3..7c91021f1f64 100644 --- a/dom/apps/tests/test_packaged_app_common.js +++ b/dom/apps/tests/test_packaged_app_common.js @@ -98,6 +98,7 @@ var PackagedTestHelper = (function PackagedTestHelper() { var aApp = evt.application; aApp.ondownloaderror = function(evt) { var error = aApp.downloadError.name; + ok(true, "Got downloaderror " + error); if (error == aExpectedError) { ok(true, "Got expected " + aExpectedError); var expected = { diff --git a/dom/apps/tests/test_packaged_app_update.html b/dom/apps/tests/test_packaged_app_update.html index 7add5ffe93f4..900b4e43e761 100644 --- a/dom/apps/tests/test_packaged_app_update.html +++ b/dom/apps/tests/test_packaged_app_update.html @@ -79,16 +79,15 @@ function updateApp(aExpectedReady, aPreviousVersion, aNextVersion) { checkLastAppState.bind(PackagedTestHelper, miniManifestURL, false, false, aNextVersion, PackagedTestHelper.next); - var ondownloadsuccesshandler = - checkLastAppState.bind(undefined, miniManifestURL, - aExpectedReady, false, aPreviousVersion, - function() { - navigator.mozApps.mgmt.applyDownload(lApp); - }); - - checkForUpdate(true, ondownloadsuccesshandler, ondownloadappliedhandler, null, - true); + var ondownloadsuccesshandler = + checkLastAppState.bind(undefined, miniManifestURL, + aExpectedReady, false, aPreviousVersion, + function() { + navigator.mozApps.mgmt.applyDownload(lApp); + }); + checkForUpdate(true, ondownloadsuccesshandler, ondownloadappliedhandler, null, + true); } @@ -174,7 +173,7 @@ var steps = [ "&appName=arandomname" + "&appToFail1"; PackagedTestHelper.checkAppDownloadError(miniManifestURL, - "MANIFEST_MISMATCH", 2, false, true, + "MANIFEST_MISMATCH", 1, false, true, "arandomname", function () { checkForUpdate(false, null, null, null, false, diff --git a/dom/apps/tests/test_receipt_operations.html b/dom/apps/tests/test_receipt_operations.html index 0907e8d964c4..7ebe84ccfae0 100644 --- a/dom/apps/tests/test_receipt_operations.html +++ b/dom/apps/tests/test_receipt_operations.html @@ -243,4 +243,4 @@ addLoadEvent(go); - \ No newline at end of file + diff --git a/toolkit/devtools/server/actors/webapps.js b/toolkit/devtools/server/actors/webapps.js index 329b15b15af6..597182560e2e 100644 --- a/toolkit/devtools/server/actors/webapps.js +++ b/toolkit/devtools/server/actors/webapps.js @@ -254,7 +254,7 @@ WebappsActor.prototype = { reg.broadcastMessage("Webapps:UpdateState", { app: aApp, manifest: manifest, - manifestURL: aApp.manifestURL + id: aApp.id }); reg.broadcastMessage("Webapps:FireEvent", { eventType: ["downloadsuccess", "downloadapplied"], From 5dab39b1dfb2f6d831c6a61e9559df26df8329c2 Mon Sep 17 00:00:00 2001 From: Phil Ringnalda Date: Sat, 24 May 2014 13:54:28 -0700 Subject: [PATCH 27/37] Bug 981477 followup, revert marking invalidation/transform-floating-point-invalidation.html?reverse as failing on OOP b2g since it passes --- layout/reftests/invalidation/reftest.list | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layout/reftests/invalidation/reftest.list b/layout/reftests/invalidation/reftest.list index 3e655ea4dea8..c481beeeda21 100644 --- a/layout/reftests/invalidation/reftest.list +++ b/layout/reftests/invalidation/reftest.list @@ -43,6 +43,6 @@ fails-if(B2G&&browserIsRemote) == filter-userspace-offset.svg?offsetContainer=re != inactive-layertree-visible-region-1.html about:blank != inactive-layertree-visible-region-2.html about:blank != transform-floating-point-invalidation.html about:blank -fails-if(B2G&&browserIsRemote) != transform-floating-point-invalidation.html?reverse about:blank +!= transform-floating-point-invalidation.html?reverse about:blank != nudge-to-integer-invalidation.html about:blank != nudge-to-integer-invalidation.html?reverse about:blank From e2c341040d2f5e07ebaf2619e0f3231e1eaa4c58 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 25 May 2014 23:41:27 -0700 Subject: [PATCH 28/37] Bumping gaia.json for 8 gaia revision(s) a=gaia-bump Truncated some number of revisions since the previous bump. ======== https://hg.mozilla.org/integration/gaia-central/rev/104c2987c21a Author: BavarianTomcat Desc: Revert "Bug 1010088 - Use STAGE_DIR consistently on build process" for build bustages This reverts commit 9c4b99d180313c243b32849c632a1e597a56e16c. ======== https://hg.mozilla.org/integration/gaia-central/rev/e69c9197e35e Author: Min-Zhong "John" Lu Desc: Merge pull request #19184 from mnjul/bug_987039_bluetooth_xfer_unit_test_coverage Bug 987039 - apps/system/test/unit/bluetooth_transfer_test.js covers only 25% of the code. r=ianliu ======== https://hg.mozilla.org/integration/gaia-central/rev/856b4859f9b6 Author: John Lu [:mnjul] Desc: Bug 987039 - apps/system/test/unit/bluetooth_transfer_test.js covers only 25% of the code. r=ianliu ======== https://hg.mozilla.org/integration/gaia-central/rev/8851a70e2b0e Author: Min-Zhong "John" Lu Desc: Merge pull request #19623 from mnjul/bug_1000748_remove_multilocale_help_in_readme Bug 1000748 - remove multilocale-clean help in README since it was removed the makefile [r=yuren] ======== https://hg.mozilla.org/integration/gaia-central/rev/0c7e21376e21 Author: John Lu [:mnjul] Desc: Bug 1000748 - remove multilocale-clean help in README since it was removed the makefile ======== https://hg.mozilla.org/integration/gaia-central/rev/4878e2ce6a2b Author: Kevin Grandon Desc: Bug 1014501 - Follow-up, fix @import syntax error r=me ======== https://hg.mozilla.org/integration/gaia-central/rev/08081dbfe51e Author: Kevin Grandon Desc: Merge pull request #19614 from KevinGrandon/bug_1014501_component_import_polyfill_2 Bug 1014501 - [WebComponents] style import polyfill ======== https://hg.mozilla.org/integration/gaia-central/rev/76a31e1eb9d7 Author: Kevin Grandon Desc: Bug 1014501 - [WebComponents] style import polyfill r=yor --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index bf6ba62da5e7..c584fad56d58 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "46b331b7fa8272fdb2535910e0b5aec91325b2f2", + "revision": "104c2987c21a4a862fb6ad63952f994ce3195f68", "repo_path": "/integration/gaia-central" } From f1110a5a974e090d1a095f74fb8d698e48243c9c Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 25 May 2014 23:46:33 -0700 Subject: [PATCH 29/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 4 ++-- b2g/config/emulator-jb/sources.xml | 4 ++-- b2g/config/emulator-kk/sources.xml | 4 ++-- b2g/config/emulator/sources.xml | 4 ++-- b2g/config/flame/sources.xml | 4 ++-- b2g/config/hamachi/sources.xml | 4 ++-- b2g/config/helix/sources.xml | 2 +- b2g/config/inari/sources.xml | 4 ++-- b2g/config/leo/sources.xml | 4 ++-- b2g/config/mako/sources.xml | 4 ++-- b2g/config/wasabi/sources.xml | 4 ++-- 11 files changed, 21 insertions(+), 21 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index a57955c3dd87..834c3d204074 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,13 +19,13 @@ - + - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 1be025914e0a..130db0a7d62d 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,10 +17,10 @@ - + - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 2e85ee2f5309..80118a27dc54 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,14 +15,14 @@ - + - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index a57955c3dd87..834c3d204074 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,13 +19,13 @@ - + - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 1283df4a3bc2..10236be7951a 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -18,10 +18,10 @@ - + - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 7070c66b4b00..523f50ae2589 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,12 +17,12 @@ - + - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 321fa9134f11..6f165ea5cf2b 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index 77bf264867dd..ff87e7b34da0 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -19,12 +19,12 @@ - + - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index 97c878cec1eb..b6618da9efbd 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -17,12 +17,12 @@ - + - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index b3e1f01edada..4b0267069d2f 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -17,10 +17,10 @@ - + - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 0acfc9ccd902..09258e7e0df6 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,12 +17,12 @@ - + - + From b8f589e596f76bc7844b0ce424c9474ba3830f0d Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Mon, 26 May 2014 00:35:48 -0700 Subject: [PATCH 30/37] Bumping gaia.json for 7 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/f41602cb565b Author: Kevin Grandon Desc: Merge pull request #19622 from KevinGrandon/bug_1008020_collections Bug 1008020 - [Vertical] Initial Smart Collections ======== https://hg.mozilla.org/integration/gaia-central/rev/2ce9336fe84b Author: Amir Nissim Desc: Bug 1008020 - [Collections App] Delete Collection [r=kgrandon] ======== https://hg.mozilla.org/integration/gaia-central/rev/03c3b6b5647c Author: Amir Nissim Desc: Bug 1008020 - [Collections App] View Smart Collections [r=ranbena, kgrandon] contains: * view-collection activity handler * icon clipping * gaia-grid fixes ======== https://hg.mozilla.org/integration/gaia-central/rev/40721d9d4680 Author: Ran Ben Aharon Desc: Bug 1008020 - [Collections App] Disabling home button homescreen reaction when collection web activities are active r=kgrandon ======== https://hg.mozilla.org/integration/gaia-central/rev/fd7ea78e520d Author: Amir Nissim Desc: Bug 1008020 - [Collections App] deviceId from settings [r=ranbena] ======== https://hg.mozilla.org/integration/gaia-central/rev/9e38fea1a8c4 Author: Amir Nissim Desc: Bug 1008020 - [Collections App] Create Smart Collections [r=ranbena] ======== https://hg.mozilla.org/integration/gaia-central/rev/59b36472de38 Author: Kevin Grandon Desc: Bug 1008020 - [Collections App] Initial prototype r=ran r=amirn --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index c584fad56d58..c4f4aa22a2c7 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "104c2987c21a4a862fb6ad63952f994ce3195f68", + "revision": "f41602cb565b36e78eb204a8e937d4f2359ea724", "repo_path": "/integration/gaia-central" } From ed48c111d9cfa0004c2ec754844fa41a67d16b52 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Mon, 26 May 2014 00:38:12 -0700 Subject: [PATCH 31/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/inari/sources.xml | 2 +- b2g/config/leo/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 834c3d204074..66e84d407151 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 130db0a7d62d..a988f36c4073 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 80118a27dc54..1bbb217784cc 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 834c3d204074..66e84d407151 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 10236be7951a..454e79707c6d 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -18,7 +18,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 523f50ae2589..990690fe79d2 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 6f165ea5cf2b..35db4bffc138 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index ff87e7b34da0..0eb8ed5f9017 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index b6618da9efbd..90f8d2deb307 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index 4b0267069d2f..44b4f81e2d98 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 09258e7e0df6..2f76f67dd4e9 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 664e8656101dc628b44e37a45c219bbb78657539 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Mon, 26 May 2014 01:45:52 -0700 Subject: [PATCH 32/37] Bumping gaia.json for 3 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/b2ee4c07dd64 Author: Carsten Book Desc: Merge pull request #18524 from JaminLiu/BT_pair_marionette Bug 968709 - Allow system app to listen to bluetooth-pairing-request. r=echou ======== https://hg.mozilla.org/integration/gaia-central/rev/c6bfe7df843a Author: Jamin Liu Desc: Bug 968709 - Allow system app to listen to bluetooth-pairing-request. ======== https://hg.mozilla.org/integration/gaia-central/rev/2f5e54c4c0ed Author: Julien Wajsberg Desc: Bug 881469 - [Messages] Implement Navigation object r=azasypkin,schung This commit implements a Navigation abstraction to handle navigating between panels. It also introduces the concept of panels. Each panel can have 4 lifecycle methods: beforeEnter, afterEnter, beforeLeave, beforeEnter. These methods either return nothing or a promise. --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index c4f4aa22a2c7..8c47cdc10f2a 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "f41602cb565b36e78eb204a8e937d4f2359ea724", + "revision": "b2ee4c07dd640cbb47f94e6acdad203c1e835eed", "repo_path": "/integration/gaia-central" } From 63c7728abe5a80b134637a266ee572036d7535db Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Mon, 26 May 2014 01:51:24 -0700 Subject: [PATCH 33/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/inari/sources.xml | 2 +- b2g/config/leo/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 66e84d407151..e3a1b8a37de5 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index a988f36c4073..c9fac39b2d1a 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 1bbb217784cc..be6483e466b8 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 66e84d407151..e3a1b8a37de5 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 454e79707c6d..db4f6baa2974 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -18,7 +18,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 990690fe79d2..70ccfe8e30bf 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 35db4bffc138..92af34ccc0c1 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index 0eb8ed5f9017..4cf6b09b4edc 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index 90f8d2deb307..bd4b8136b526 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index 44b4f81e2d98..ee091a4761f2 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 2f76f67dd4e9..1f24f35fd923 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From a4ff7782491b553bf8e6bcabec1c98b897fb4c35 Mon Sep 17 00:00:00 2001 From: Ethan Tseng Date: Fri, 23 May 2014 11:37:18 +0800 Subject: [PATCH 34/37] Bug 1009497 - Crash happened while device plays MP3 stream over RTSP. r=sworkman --- netwerk/protocol/rtsp/rtsp/APacketSource.cpp | 6 +++++- netwerk/protocol/rtsp/rtsp/ASessionDescription.cpp | 11 +++++++++-- netwerk/protocol/rtsp/rtsp/ASessionDescription.h | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/netwerk/protocol/rtsp/rtsp/APacketSource.cpp b/netwerk/protocol/rtsp/rtsp/APacketSource.cpp index a6aa09cbc064..e0f460d6903b 100644 --- a/netwerk/protocol/rtsp/rtsp/APacketSource.cpp +++ b/netwerk/protocol/rtsp/rtsp/APacketSource.cpp @@ -406,7 +406,11 @@ APacketSource::APacketSource( unsigned long PT; AString desc; AString params; - sessionDesc->getFormatType(index, &PT, &desc, ¶ms); + + if (!sessionDesc->getFormatType(index, &PT, &desc, ¶ms)) { + mInitCheck = ERROR_UNSUPPORTED; + return; + } int64_t durationUs; if (sessionDesc->getDurationUs(&durationUs)) { diff --git a/netwerk/protocol/rtsp/rtsp/ASessionDescription.cpp b/netwerk/protocol/rtsp/rtsp/ASessionDescription.cpp index 71423e8c31aa..a320ec28d1ab 100644 --- a/netwerk/protocol/rtsp/rtsp/ASessionDescription.cpp +++ b/netwerk/protocol/rtsp/rtsp/ASessionDescription.cpp @@ -194,7 +194,7 @@ bool ASessionDescription::findAttribute( return true; } -void ASessionDescription::getFormatType( +bool ASessionDescription::getFormatType( size_t index, unsigned long *PT, AString *desc, AString *params) const { AString format; @@ -213,12 +213,19 @@ void ASessionDescription::getFormatType( char key[20]; sprintf(key, "a=rtpmap:%lu", x); - CHECK(findAttribute(index, key, desc)); + if (!findAttribute(index, key, desc)) { + // We only support dynamic payload type assignment for now. + // If SDP description doesn't have the "a=rtpmap:" line, it is static + // payload type assignment and we refuse to handle it. + return false; + } sprintf(key, "a=fmtp:%lu", x); if (!findAttribute(index, key, params)) { params->clear(); } + + return true; } bool ASessionDescription::getDimensions( diff --git a/netwerk/protocol/rtsp/rtsp/ASessionDescription.h b/netwerk/protocol/rtsp/rtsp/ASessionDescription.h index ba3927502cb7..cfc52647eac8 100644 --- a/netwerk/protocol/rtsp/rtsp/ASessionDescription.h +++ b/netwerk/protocol/rtsp/rtsp/ASessionDescription.h @@ -41,7 +41,7 @@ struct ASessionDescription : public RefBase { size_t countTracks() const; void getFormat(size_t index, AString *value) const; - void getFormatType( + bool getFormatType( size_t index, unsigned long *PT, AString *desc, AString *params) const; From 2769a06313b54e62f3f2707b5f085e2d9bccfc76 Mon Sep 17 00:00:00 2001 From: "Szu-Yu Chen [:aknow]" Date: Sun, 25 May 2014 20:22:00 +0200 Subject: [PATCH 35/37] Bug 1015097 - Rewrite test_outgoing_emergency_in_airplane_mode.js. r=hsinyi --- ...est_outgoing_emergency_in_airplane_mode.js | 122 ++++-------------- 1 file changed, 22 insertions(+), 100 deletions(-) diff --git a/dom/telephony/test/marionette/test_outgoing_emergency_in_airplane_mode.js b/dom/telephony/test/marionette/test_outgoing_emergency_in_airplane_mode.js index da769cfe2814..67f9d7de5142 100644 --- a/dom/telephony/test/marionette/test_outgoing_emergency_in_airplane_mode.js +++ b/dom/telephony/test/marionette/test_outgoing_emergency_in_airplane_mode.js @@ -4,117 +4,39 @@ MARIONETTE_TIMEOUT = 60000; MARIONETTE_HEAD_JS = 'head.js'; -let connection; -let number = "112"; -let outgoing; +function setRadioEnabled(enabled) { + log("Set radio enabled: " + enabled + "."); -function setRadioEnabled(enabled, callback) { - let request = connection.setRadioEnabled(enabled); let desiredRadioState = enabled ? 'enabled' : 'disabled'; - - let pending = ['onradiostatechange', 'onsuccess']; - let done = callback; + let deferred = Promise.defer(); + let connection = navigator.mozMobileConnections[0]; + ok(connection instanceof MozMobileConnection, + "connection is instanceof " + connection.constructor); connection.onradiostatechange = function() { let state = connection.radioState; log("Received 'radiostatechange' event, radioState: " + state); - if (state == desiredRadioState) { - gReceivedPending('onradiostatechange', pending, done); + // We are waiting for 'desiredRadioState.' Ignore any transient state. + if (state === desiredRadioState) { + connection.onradiostatechange = null; + deferred.resolve(); } }; + connection.setRadioEnabled(enabled); - request.onsuccess = function onsuccess() { - gReceivedPending('onsuccess', pending, done); - }; - - request.onerror = function onerror() { - ok(false, "setRadioEnabled should be ok"); - }; -} - -function dial() { - log("Make an outgoing call."); - - telephony.dial(number).then(call => { - outgoing = call; - ok(outgoing); - is(outgoing.number, number); - is(outgoing.state, "dialing"); - - is(outgoing, telephony.active); - is(telephony.calls.length, 1); - is(telephony.calls[0], outgoing); - - outgoing.onalerting = function onalerting(event) { - log("Received 'onalerting' call event."); - is(outgoing, event.call); - is(outgoing.state, "alerting"); - - emulator.run("gsm list", function(result) { - log("Call list is now: " + result); - is(result[0], "outbound to " + number + " : ringing"); - is(result[1], "OK"); - answer(); - }); - }; - }); -} - -function answer() { - log("Answering the outgoing call."); - - // We get no "connecting" event when the remote party answers the call. - - outgoing.onconnected = function onconnected(event) { - log("Received 'connected' call event."); - is(outgoing, event.call); - is(outgoing.state, "connected"); - - is(outgoing, telephony.active); - - emulator.run("gsm list", function(result) { - log("Call list is now: " + result); - is(result[0], "outbound to " + number + " : active"); - is(result[1], "OK"); - hangUp(); - }); - }; - emulator.run("gsm accept " + number); -} - -function hangUp() { - log("Hanging up the outgoing call."); - - // We get no "disconnecting" event when the remote party terminates the call. - - outgoing.ondisconnected = function ondisconnected(event) { - log("Received 'disconnected' call event."); - is(outgoing, event.call); - is(outgoing.state, "disconnected"); - - is(telephony.active, null); - is(telephony.calls.length, 0); - - emulator.run("gsm list", function(result) { - log("Call list is now: " + result); - is(result[0], "OK"); - cleanUp(); - }); - }; - emulator.run("gsm cancel " + number); -} - -function cleanUp() { - finish(); + return deferred.promise; } startTestWithPermissions(['mobileconnection'], function() { - connection = navigator.mozMobileConnections[0]; - ok(connection instanceof MozMobileConnection, - "connection is instanceof " + connection.constructor); - - setRadioEnabled(false, function() { - dial(); - }); + let outCall; + setRadioEnabled(false) + .then(() => gDial("112")) + .then(call => { outCall = call; }) + .then(() => gRemoteAnswer(outCall)) + .then(() => gRemoteHangUp(outCall)) + .then(null, () => { + ok(false, "promise rejects during test."); + }) + .then(finish); }); From d8a6ee1b007d787d694e917842fe3f55eb1db7b2 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Mon, 26 May 2014 02:13:02 -0700 Subject: [PATCH 36/37] Bumping manifests a=b2g-bump --- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/mako/sources.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index c9fac39b2d1a..db423f39a22c 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -131,6 +131,6 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index db4f6baa2974..eb3f5880508d 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -141,7 +141,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index ee091a4761f2..b06d0f0968d5 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -127,7 +127,7 @@ - + From 344a57ae53b5f01fe4a8517c1fc457a32c529172 Mon Sep 17 00:00:00 2001 From: Ben Tian Date: Mon, 26 May 2014 09:40:28 +0800 Subject: [PATCH 37/37] Bug 1015090 - Add BluetoothAdapterEvent.webidl and BluetoothAttributeEvent.webidl, r=bz --- dom/bluetooth2/moz.build | 3 +++ .../test/test_all_synthetic_events.html | 8 ++++++ dom/webidl/BluetoothAdapterEvent.webidl | 19 ++++++++++++++ dom/webidl/BluetoothAttributeEvent.webidl | 25 +++++++++++++++++++ dom/webidl/moz.build | 11 +++++++- 5 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 dom/webidl/BluetoothAdapterEvent.webidl create mode 100644 dom/webidl/BluetoothAttributeEvent.webidl diff --git a/dom/bluetooth2/moz.build b/dom/bluetooth2/moz.build index 874a9dc3deb4..709e574e9378 100644 --- a/dom/bluetooth2/moz.build +++ b/dom/bluetooth2/moz.build @@ -91,7 +91,10 @@ EXPORTS.mozilla.dom.bluetooth.ipc += [ ] EXPORTS.mozilla.dom.bluetooth += [ + 'BluetoothAdapter.h', 'BluetoothCommon.h', + 'BluetoothDevice.h', + 'BluetoothManager.h', ] IPDL_SOURCES += [ diff --git a/dom/events/test/test_all_synthetic_events.html b/dom/events/test/test_all_synthetic_events.html index 3c0825853590..76a009139c5f 100644 --- a/dom/events/test/test_all_synthetic_events.html +++ b/dom/events/test/test_all_synthetic_events.html @@ -44,6 +44,14 @@ const kEventConstructors = { return new BlobEvent(aName, aProps); }, }, + BluetoothAdapterEvent: { create: function (aName, aProps) { + return new BluetoothAdapterEvent(aName, aProps); + }, + }, + BluetoothAttributeEvent: { create: function (aName, aProps) { + return new BluetoothAttributeEvent(aName, aProps); + }, + }, BluetoothDeviceEvent: { create: function (aName, aProps) { return new BluetoothDeviceEvent(aName, aProps); }, diff --git a/dom/webidl/BluetoothAdapterEvent.webidl b/dom/webidl/BluetoothAdapterEvent.webidl new file mode 100644 index 000000000000..cf548088c7fb --- /dev/null +++ b/dom/webidl/BluetoothAdapterEvent.webidl @@ -0,0 +1,19 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +[Func="Navigator::HasBluetoothSupport", + Constructor(DOMString type, optional BluetoothAdapterEventInit eventInitDict)] +interface BluetoothAdapterEvent : Event +{ + readonly attribute BluetoothAdapter? adapter; + readonly attribute DOMString? address; +}; + +dictionary BluetoothAdapterEventInit : EventInit +{ + BluetoothAdapter? adapter = null; + DOMString? address = ""; +}; diff --git a/dom/webidl/BluetoothAttributeEvent.webidl b/dom/webidl/BluetoothAttributeEvent.webidl new file mode 100644 index 000000000000..72ec03328148 --- /dev/null +++ b/dom/webidl/BluetoothAttributeEvent.webidl @@ -0,0 +1,25 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +[Func="Navigator::HasBluetoothSupport", + Constructor(DOMString type, + optional BluetoothAttributeEventInit eventInitDict)] +interface BluetoothAttributeEvent : Event +{ + readonly attribute unsigned short attr; + readonly attribute any value; + // We don't support sequences in unions yet (Bug 767924) + /* readonly attribute (BluetoothAdapter or BluetoothAdapterState or + * BluetoothClassOfDevice or boolean or + * DOMString or sequence) value; + */ +}; + +dictionary BluetoothAttributeEventInit : EventInit +{ + unsigned short attr = 0; + any value = null; +}; diff --git a/dom/webidl/moz.build b/dom/webidl/moz.build index bd59468e0a08..d46b26fc79cc 100644 --- a/dom/webidl/moz.build +++ b/dom/webidl/moz.build @@ -654,9 +654,18 @@ if CONFIG['MOZ_GAMEPAD']: ] if CONFIG['MOZ_B2G_BT']: + if CONFIG['MOZ_B2G_BT_API_V2']: + GENERATED_EVENTS_WEBIDL_FILES += [ + 'BluetoothAdapterEvent.webidl', + 'BluetoothAttributeEvent.webidl', + ] + else: + GENERATED_EVENTS_WEBIDL_FILES += [ + 'BluetoothDiscoveryStateChangedEvent.webidl', + ] + GENERATED_EVENTS_WEBIDL_FILES += [ 'BluetoothDeviceEvent.webidl', - 'BluetoothDiscoveryStateChangedEvent.webidl', 'BluetoothStatusChangedEvent.webidl', ]