Merge inbound to mozilla-central. a=merge
authorOana Pop Rus <opoprus@mozilla.com>
Tue, 12 Feb 2019 11:47:51 +0200
changeset 458671 5416b072d9d57788e3d512ca31df2c6d884a2cd7
parent 458670 95aa45a1529f93b25ecc2d5a67ab7e24d1d91bce (current diff)
parent 458629 134b85ae973cb92917cedc21ac624e75a8f27406 (diff)
child 458672 9f3a8e9d591550d65724b7ce346443004d540319
child 458696 20e4b22910b94d29c826ac288a6fe9e3a141e4be
child 458711 76639dcdef8f26519fa87cf42ffb08365a705f23
push id111867
push useropoprus@mozilla.com
push dateTue, 12 Feb 2019 10:16:41 +0000
treeherdermozilla-inbound@9f3a8e9d5915 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone67.0a1
first release with
nightly linux32
5416b072d9d5 / 67.0a1 / 20190212095015 / files
nightly linux64
5416b072d9d5 / 67.0a1 / 20190212095015 / files
nightly mac
5416b072d9d5 / 67.0a1 / 20190212095015 / files
nightly win32
5416b072d9d5 / 67.0a1 / 20190212095015 / files
nightly win64
5416b072d9d5 / 67.0a1 / 20190212095015 / 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/dom/base/nsDOMNavigationTiming.cpp
+++ b/dom/base/nsDOMNavigationTiming.cpp
@@ -453,16 +453,21 @@ void nsDOMNavigationTiming::NotifyConten
   }
 
   // TTI is first checked 5 seconds after the FCP (non-blank-paint is very close
   // to FCP).
   mTTITimer->InitWithNamedFuncCallback(TTITimeoutCallback, this,
                                        TTI_WINDOW_SIZE_MS,
                                        nsITimer::TYPE_ONE_SHOT_LOW_PRIORITY,
                                        "nsDOMNavigationTiming::TTITimeout");
+
+  if (mDocShellHasBeenActiveSinceNavigationStart) {
+    Telemetry::AccumulateTimeDelta(Telemetry::TIME_TO_FIRST_CONTENTFUL_PAINT_MS,
+                                   mNavigationStart, mContentfulPaint);
+  }
 }
 
 void nsDOMNavigationTiming::NotifyDOMContentFlushedForRootContentDocument() {
   MOZ_ASSERT(NS_IsMainThread());
   MOZ_ASSERT(!mNavigationStart.IsNull());
 
   if (!mDOMContentFlushed.IsNull()) {
     return;
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -13328,16 +13328,27 @@
     "alert_emails": ["necko@mozilla.com", "hbambas@mozilla.com"],
     "expires_in_version": "63",
     "kind": "exponential",
     "high": 100000,
     "n_buckets": 100,
     "bug_numbers": [1411632],
     "description": "The time between navigation start and the first non-blank paint of a foreground root content document, in milliseconds. This only records documents that were in an active docshell throughout the whole time between navigation start and non-blank paint. The non-blank paint timestamp is taken during display list building and does not include rasterization or compositing of that paint.  This probe only accumulates when there were no active-tab network load optimizations happening during the interval."
   },
+  "TIME_TO_FIRST_CONTENTFUL_PAINT_MS": {
+    "record_in_processes": ["main", "content"],
+    "alert_emails": ["hkirschner@mozilla.com", "vchin@mozilla.com", "sphilp@mozilla.com", "dstrohmeier@mozilla.com"],
+    "expires_in_version": "never",
+    "releaseChannelCollection": "opt-out",
+    "kind": "exponential",
+    "high": 100000,
+    "n_buckets": 100,
+    "bug_numbers": [1515132],
+    "description": "The time between navigation start and the first contentful paint of a foreground root content document, in milliseconds. This only records documents that were in an active docshell throughout the whole time between navigation start and contentful paint. The contentful paint timestamp is taken during display list building and does not include rasterization or compositing of that paint."
+  },
   "TAB_AUDIO_INDICATOR_USED": {
     "record_in_processes": ["main", "content"],
     "alert_emails": ["alwu@mozilla.com", "nohlmeier@mozilla.com"],
     "expires_in_version": "72",
     "kind": "enumerated",
     "n_values": 6,
     "bug_numbers": [1314220, 1525374],
     "description": "The total usage amount of the operations of tab audio indicator, mute=0 , unmuted=1, unblockByVisitingTab=2, unblockingByClickingIcon=3",
--- a/widget/windows/WinCompositorWindowThread.cpp
+++ b/widget/windows/WinCompositorWindowThread.cpp
@@ -5,16 +5,20 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "base/platform_thread.h"
 #include "WinCompositorWindowThread.h"
 #include "mozilla/layers/SynchronousTask.h"
 #include "mozilla/StaticPtr.h"
 #include "mtransport/runnable_utils.h"
 
+#if WINVER < 0x0602
+#define WS_EX_NOREDIRECTIONBITMAP 0x00200000L
+#endif
+
 namespace mozilla {
 namespace widget {
 
 static StaticRefPtr<WinCompositorWindowThread> sWinCompositorWindowThread;
 
 WinCompositorWindowThread::WinCompositorWindowThread(base::Thread* aThread)
     : mThread(aThread) {}
 
@@ -143,17 +147,18 @@ void InitializeWindowClass() {
         // parent window, so instead create it with a temporary placeholder parent.
         // Its parent is set as main window in UI process.
         initialParentWnd = ::CreateWindowEx(
             WS_EX_TOOLWINDOW, kClassNameCompositorInitalParent, nullptr,
             WS_POPUP | WS_DISABLED, 0, 0, 1, 1, nullptr,
             0, GetModuleHandle(nullptr), 0);
 
         compositorWnd = ::CreateWindowEx(
-            WS_EX_NOPARENTNOTIFY, kClassNameCompositor, nullptr,
+            WS_EX_NOPARENTNOTIFY | WS_EX_LAYERED | WS_EX_TRANSPARENT | WS_EX_NOREDIRECTIONBITMAP,
+            kClassNameCompositor, nullptr,
             WS_CHILDWINDOW | WS_DISABLED | WS_VISIBLE, 0, 0, 1, 1, initialParentWnd,
             0, GetModuleHandle(nullptr), 0);
       });
 
   Loop()->PostTask(runnable.forget());
 
   task.Wait();