mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
Bug 1657974 - MOZ_LOG schedule and run of FrameRequestCallback
, r=froydnj
Depends on D86740 Differential Revision: https://phabricator.services.mozilla.com/D86741
This commit is contained in:
parent
b8311edfda
commit
2bc91fef35
@ -1197,7 +1197,9 @@ void Document::SelectorCache::NotifyExpired(SelectorCacheKey* aSelector) {
|
||||
|
||||
Document::FrameRequest::FrameRequest(FrameRequestCallback& aCallback,
|
||||
int32_t aHandle)
|
||||
: mCallback(&aCallback), mHandle(aHandle) {}
|
||||
: mCallback(&aCallback), mHandle(aHandle) {
|
||||
LogFrameRequestCallback::LogDispatch(mCallback);
|
||||
}
|
||||
|
||||
Document::FrameRequest::~FrameRequest() = default;
|
||||
|
||||
|
@ -1843,6 +1843,7 @@ void nsRefreshDriver::RunFrameRequestCallbacks(TimeStamp aNowTime) {
|
||||
// MOZ_KnownLive is OK, because the stack array frameRequestCallbacks
|
||||
// keeps callback alive and the mCallback strong reference can't be
|
||||
// mutated by the call.
|
||||
LogFrameRequestCallback::Run run(callback.mCallback);
|
||||
MOZ_KnownLive(callback.mCallback)->Call(timeStamp);
|
||||
}
|
||||
}
|
||||
|
@ -700,6 +700,7 @@ template class LogTaskBase<IPC::Message>;
|
||||
template class LogTaskBase<nsTimerImpl>;
|
||||
template class LogTaskBase<Task>;
|
||||
template class LogTaskBase<PresShell>;
|
||||
template class LogTaskBase<dom::FrameRequestCallback>;
|
||||
|
||||
MOZ_THREAD_LOCAL(nsISerialEventTarget*)
|
||||
SerialEventTargetGuard::sCurrentThreadTLS;
|
||||
|
@ -1953,6 +1953,9 @@ class LogTaskBase {
|
||||
class MicroTaskRunnable;
|
||||
class Task; // TaskController
|
||||
class PresShell;
|
||||
namespace dom {
|
||||
class FrameRequestCallback;
|
||||
} // namespace dom
|
||||
|
||||
// Specialized methods must be explicitly predeclared.
|
||||
template <>
|
||||
@ -1971,6 +1974,7 @@ typedef LogTaskBase<IPC::Message> LogIPCMessage;
|
||||
typedef LogTaskBase<nsTimerImpl> LogTimerEvent;
|
||||
typedef LogTaskBase<Task> LogTask;
|
||||
typedef LogTaskBase<PresShell> LogPresShellObserver;
|
||||
typedef LogTaskBase<dom::FrameRequestCallback> LogFrameRequestCallback;
|
||||
// If you add new types don't forget to add:
|
||||
// `template class LogTaskBase<YourType>;` to nsThreadUtils.cpp
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user