Bug 1342863 - (Part 8) DocGroup labeling for timer callback in nsRefreshDriver. r?dholbert draft
authorKuoE0 <kuoe0.tw@gmail.com>
Wed, 15 Mar 2017 17:38:53 +0800
changeset 503508 e06f0f95ba62d90ff956aadba2de939965580e65
parent 503466 9d43480dac4b2d9ac4770232c4aced3621350e8d
child 503528 54471c3f60b72c8e14e0c37923462d6d20b8efe4
child 503812 933bd9959eaa62593a4497c7a911a0bcb5be93de
push id50596
push userbmo:kuoe0@mozilla.com
push dateThu, 23 Mar 2017 08:24:16 +0000
reviewersdholbert
bugs1342863
milestone55.0a1
Bug 1342863 - (Part 8) DocGroup labeling for timer callback in nsRefreshDriver. r?dholbert MozReview-Commit-ID: DP7WFkvlrPq
layout/base/nsRefreshDriver.cpp
--- a/layout/base/nsRefreshDriver.cpp
+++ b/layout/base/nsRefreshDriver.cpp
@@ -1432,21 +1432,27 @@ nsRefreshDriver::SetHighPrecisionTimersE
       // Don't jerk us around between high precision and low precision
       // timers; instead, only allow leaving high precision timers
       // after 90 seconds.  This is arbitrary, but hopefully good
       // enough.
       NS_ASSERTION(!sDisableHighPrecisionTimersTimer, "We shouldn't have an outstanding disable-high-precision timer !");
 
       nsCOMPtr<nsITimer> timer = do_CreateInstance(NS_TIMER_CONTRACTID);
       if (timer) {
+        if (nsPresContext* pc = GetPresContext()) {
+          timer->SetTarget(
+              pc->Document()->EventTargetFor(TaskCategory::Other));
+        }
         timer.forget(&sDisableHighPrecisionTimersTimer);
-        sDisableHighPrecisionTimersTimer->InitWithFuncCallback(DisableHighPrecisionTimersCallback,
-                                                               nullptr,
-                                                               90 * 1000,
-                                                               nsITimer::TYPE_ONE_SHOT);
+        sDisableHighPrecisionTimersTimer->
+          InitWithNamedFuncCallback(DisableHighPrecisionTimersCallback,
+                                    nullptr,
+                                    90 * 1000,
+                                    nsITimer::TYPE_ONE_SHOT,
+                                    "DisableHighPrecisionTimersCallback");
       } else {
         // might happen if we're shutting down XPCOM; just drop the time period down
         // immediately
         timeEndPeriod(1);
       }
     }
 #endif
     mRequestedHighPrecision = false;