Merge inbound to mozilla-central. a=merge
authorGurzau Raul <rgurzau@mozilla.com>
Tue, 09 Jul 2019 12:53:21 +0300
changeset 481815 ad05396bfeed949a112401d661c5d943f775f761
parent 481814 58fced48cd5dcf0f87c1d8345e011f6961af78cf (current diff)
parent 481762 c86a14ff7f8663cca1bdfad81a5da1ab8724f865 (diff)
child 481816 2737bd74751e152aaae869bcbc044da61ffe3fa0
child 481877 073d453e16f04e2f4293246029f5f165989ab23d
push id113636
push userrgurzau@mozilla.com
push dateTue, 09 Jul 2019 10:11:06 +0000
treeherdermozilla-inbound@2737bd74751e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone70.0a1
first release with
nightly linux32
ad05396bfeed / 70.0a1 / 20190709095414 / files
nightly linux64
ad05396bfeed / 70.0a1 / 20190709095414 / files
nightly mac
ad05396bfeed / 70.0a1 / 20190709095414 / files
nightly win32
ad05396bfeed / 70.0a1 / 20190709095414 / files
nightly win64
ad05396bfeed / 70.0a1 / 20190709095414 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge inbound to mozilla-central. a=merge
--- a/gfx/layers/wr/WebRenderBridgeParent.cpp
+++ b/gfx/layers/wr/WebRenderBridgeParent.cpp
@@ -80,25 +80,19 @@ void gecko_profiler_add_text_marker(cons
 bool gecko_profiler_thread_is_being_profiled() {
 #ifdef MOZ_GECKO_PROFILER
   return profiler_thread_is_being_profiled();
 #else
   return false;
 #endif
 }
 
-bool is_glcontext_egl(void* glcontext_ptr) {
-  MOZ_ASSERT(glcontext_ptr);
-
-  mozilla::gl::GLContext* glcontext =
-      reinterpret_cast<mozilla::gl::GLContext*>(glcontext_ptr);
-  if (!glcontext) {
-    return false;
-  }
-  return glcontext->GetContextType() == mozilla::gl::GLContextType::EGL;
+bool is_glcontext_gles(void* const glcontext_ptr) {
+  MOZ_RELEASE_ASSERT(glcontext_ptr);
+  return reinterpret_cast<mozilla::gl::GLContext*>(glcontext_ptr)->IsGLES();
 }
 
 bool is_glcontext_angle(void* glcontext_ptr) {
   MOZ_ASSERT(glcontext_ptr);
 
   mozilla::gl::GLContext* glcontext =
       reinterpret_cast<mozilla::gl::GLContext*>(glcontext_ptr);
   if (!glcontext) {
--- a/gfx/tests/mochitest/test_font_whitelist.html
+++ b/gfx/tests/mochitest/test_font_whitelist.html
@@ -15,34 +15,34 @@ https://bugzilla.mozilla.org/show_bug.cg
 <span id="serif" style="font-family: serif; font-size: 64px;">M</span>
 <div id="content" style="display: none">
 
 </div>
 <script class="testbody" type="application/javascript">
 
 /** Test for Bug 1121643 **/
 
-SimpleTest.requestFlakyTimeout("This test is flaky.");
-
 const InspectorUtils = SpecialPowers.InspectorUtils;
 
 // Given an element id, returns the first font face name encountered.
 let fontUsed = id => {
   let element = document.getElementById(id),
       range = document.createRange();
   range.selectNode(element);
   return InspectorUtils.getUsedFontFaces(range)[0].CSSFamilyName;
 };
 
 // A map of the default mono, sans and serif fonts, obtained when
 // whitelisting is disabled.
 const fonts = { mono: fontUsed("mono"),
                 sans: fontUsed("sans"),
                 serif: fontUsed("serif") };
 
+let hack = 0;
+
 // Set the font whitelist to contain none, some, or all of the
 // default mono, sans, and serif fonts. Check that the rendering
 // of our three test elements uses only fonts present in the
 // whitelist.
 let testFontWhitelist = async function(useMono, useSans, useSerif) {
   let whitelist = [];
   if (useMono) {
     whitelist.push(fonts.mono);
@@ -50,17 +50,21 @@ let testFontWhitelist = async function(u
   if (useSans) {
     whitelist.push(fonts.sans);
   }
   if (useSerif) {
     whitelist.push(fonts.serif);
   }
   await SpecialPowers.pushPrefEnv({"set": [["font.system.whitelist",
                                             whitelist.join(", ")]]});
-  await new Promise(resolve => setTimeout(resolve, 2000));
+
+  await new Promise(SimpleTest.executeSoon);
+  await SpecialPowers.setIntPref("font.fixme.hack", hack++);
+  await new Promise(SimpleTest.executeSoon);
+
   // If whitelist is empty, then whitelisting is considered disabled
   // and all fonts are allowed.
   info("font whitelist: " + JSON.stringify(whitelist));
   let whitelistEmpty = whitelist.length === 0;
   is(useMono || whitelistEmpty, fontUsed("mono") === fonts.mono,
      "Correct mono whitelisting state; got " + fontUsed("mono") + ", requested " + fonts.mono);
   is(useSans || whitelistEmpty, fontUsed("sans") === fonts.sans,
      "Correct sans whitelisting state; got " + fontUsed("sans") + ", requested " + fonts.sans);
--- a/gfx/webrender_bindings/src/bindings.rs
+++ b/gfx/webrender_bindings/src/bindings.rs
@@ -530,17 +530,17 @@ pub enum TelemetryProbe {
     SceneSwapTime = 1,
     RenderTime = 2,
 }
 
 extern "C" {
     fn is_in_compositor_thread() -> bool;
     fn is_in_render_thread() -> bool;
     fn is_in_main_thread() -> bool;
-    fn is_glcontext_egl(glcontext_ptr: *mut c_void) -> bool;
+    fn is_glcontext_gles(glcontext_ptr: *mut c_void) -> bool;
     fn is_glcontext_angle(glcontext_ptr: *mut c_void) -> bool;
     // Enables binary recording that can be used with `wrench replay`
     // Outputs a wr-record-*.bin file for each window that is shown
     // Note: wrench will panic if external images are used, they can
     // be disabled in WebRenderBridgeParent::ProcessWebRenderCommands
     // by commenting out the path that adds an external image ID
     fn gfx_use_wrench() -> bool;
     fn gfx_wr_resource_path_override() -> *const c_char;
@@ -1101,17 +1101,17 @@ fn env_var_to_bool(key: &'static str) ->
 
 // Call MakeCurrent before this.
 fn wr_device_new(gl_context: *mut c_void, pc: Option<&mut WrProgramCache>)
     -> Device
 {
     assert!(unsafe { is_in_render_thread() });
 
     let gl;
-    if unsafe { is_glcontext_egl(gl_context) } {
+    if unsafe { is_glcontext_gles(gl_context) } {
         gl = unsafe { gl::GlesFns::load_with(|symbol| get_proc_address(gl_context, symbol)) };
     } else {
         gl = unsafe { gl::GlFns::load_with(|symbol| get_proc_address(gl_context, symbol)) };
     }
 
     let version = gl.get_string(gl::VERSION);
 
     info!("WebRender - OpenGL version new {}", version);
@@ -1166,17 +1166,17 @@ pub extern "C" fn wr_window_new(window_i
     let recorder: Option<Box<dyn ApiRecordingReceiver>> = if unsafe { gfx_use_wrench() } {
         let name = format!("wr-record-{}.bin", window_id.0);
         Some(Box::new(BinaryRecorder::new(&PathBuf::from(name))))
     } else {
         None
     };
 
     let gl;
-    if unsafe { is_glcontext_egl(gl_context) } {
+    if unsafe { is_glcontext_gles(gl_context) } {
         gl = unsafe { gl::GlesFns::load_with(|symbol| get_proc_address(gl_context, symbol)) };
     } else {
         gl = unsafe { gl::GlFns::load_with(|symbol| get_proc_address(gl_context, symbol)) };
     }
 
     let version = gl.get_string(gl::VERSION);
 
     info!("WebRender - OpenGL version new {}", version);
--- a/gfx/webrender_bindings/webrender_ffi.h
+++ b/gfx/webrender_bindings/webrender_ffi.h
@@ -14,17 +14,17 @@ extern "C" {
 
 // ----
 // Functions invoked from Rust code
 // ----
 
 bool is_in_compositor_thread();
 bool is_in_main_thread();
 bool is_in_render_thread();
-bool is_glcontext_egl(void* glcontext_ptr);
+bool is_glcontext_gles(void* glcontext_ptr);
 bool is_glcontext_angle(void* glcontext_ptr);
 bool gfx_use_wrench();
 const char* gfx_wr_resource_path_override();
 void gfx_critical_note(const char* msg);
 void gfx_critical_error(const char* msg);
 void gecko_printf_stderr_output(const char* msg);
 void* get_proc_address_from_glcontext(void* glcontext_ptr,
                                       const char* procname);
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/service-workers/service-worker/claim-shared-worker-fetch.https.html.ini
@@ -0,0 +1,5 @@
+[claim-shared-worker-fetch.https.html]
+  [fetch() in SharedWorker should be intercepted after the client is claimed.]
+    disabled:
+      if (os == "android"): Frequently failing on geckoview (Bug 1554991)
+
--- a/testing/web-platform/meta/service-workers/service-worker/clients-matchall-client-types.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/clients-matchall-client-types.https.html.ini
@@ -1,5 +1,4 @@
 [clients-matchall-client-types.https.html]
   [Verify matchAll() with {window, sharedworker, worker} client types]
-    expected:
-      if (os == "android") and e10s: FAIL
-
+    disabled:
+      if (os == "android"): Frequently failing on geckoview (Bug 1550895, Bug 1352247)
--- a/testing/web-platform/meta/service-workers/service-worker/clients-matchall-order.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/clients-matchall-order.https.html.ini
@@ -1,16 +1,19 @@
 [clients-matchall-order.https.html]
   [Clients.matchAll() returns uncontrolled windows in focus order.  Case 1.]
+    disabled:
+      if (os == "android") and not debug: Frequently failing on geckoview (Bug 1518237)
     expected:
-      if (os == "android") and e10s: FAIL
-      if (os == "android") and not e10s: FAIL
+      if (os == "android"): FAIL
 
   [Clients.matchAll() returns controlled windows in focus order.  Case 1.]
+    disabled:
+      if (os == "android") and not debug: Frequently failing on geckoview (Bug 1344484)
     expected:
-      if (os == "android") and e10s: FAIL
-      if (os == "android") and not e10s: FAIL
+      if (os == "android"): FAIL
 
   [Clients.matchAll() returns controlled windows and frames in focus order.]
+    disabled:
+      if (os == "android") and not debug: Frequently failing on geckoview (Bug 1562728)
     expected:
-      if (os == "android") and e10s: FAIL
-      if (os == "android") and not e10s: FAIL
+      if (os == "android"): FAIL
 
--- a/testing/web-platform/meta/service-workers/service-worker/navigation-timing.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/navigation-timing.https.html.ini
@@ -1,12 +1,12 @@
 [navigation-timing.https.html]
   disabled:
     if (os == "android") and not debug: https://bugzilla.mozilla.org/show_bug.cgi?id=1560324
     if (os == "android") and not e10s: https://bugzilla.mozilla.org/show_bug.cgi?id=1499972
   [Service worker controlled navigation timing network fallback]
-    expected:
-      if (os == "android") and not debug: PASS
+    disabled: 
+      if (os == "android"): Frequently failing on geckoview (Bug 1481427)
 
   [Service worker controlled navigation timing redirect]
-    expected:
-      if (os == "android") and not debug: FAIL
+    disabled:
+      if (os == "android"): Frequently failing on geckoview (Bug 1560324, Bug 1481553)
 
--- a/testing/web-platform/meta/service-workers/service-worker/unregister-then-register.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/unregister-then-register.https.html.ini
@@ -2,8 +2,12 @@
   disabled:
     if (os == "android") and not e10s: https://bugzilla.mozilla.org/show_bug.cgi?id=1499972
   [Unregister then register does not resurrect the registration]
     expected: FAIL
 
   [Unregister then register does not resolve to the original value even if the registration is in use.]
     expected: FAIL
 
+  [Unregister then register resolves to a new value]
+    disabled:
+      if (os == "android") and debug: Frequently failing on geckoview (Bug 1523205)
+
--- a/testing/web-platform/meta/service-workers/service-worker/unregister.https.html.ini
+++ b/testing/web-platform/meta/service-workers/service-worker/unregister.https.html.ini
@@ -1,4 +1,7 @@
 [unregister.https.html]
   disabled:
     if (os == "android") and not e10s: https://bugzilla.mozilla.org/show_bug.cgi?id=1499972
+  [Unregister twice]
+    disabled:
+      if (os == "android"): Frequently failing on geckoview (Bug 1299032)