зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1267530 part 1 - Add some profiler marker for fullscreen transition. r=smaug,BenWa
MozReview-Commit-ID: CeFdBO9uz8C --HG-- extra : source : ca6459b594f0dcfd46066bbab29ce068d4de6200
This commit is contained in:
Родитель
f43145b4f3
Коммит
5003029401
|
@ -3157,6 +3157,7 @@ LinkedList<OldWindowSize> OldWindowSize::sList;
|
|||
NS_IMETHODIMP
|
||||
nsDOMWindowUtils::HandleFullscreenRequests(bool* aRetVal)
|
||||
{
|
||||
PROFILER_MARKER("Enter fullscreen");
|
||||
nsCOMPtr<nsIDocument> doc = GetDocument();
|
||||
NS_ENSURE_STATE(doc);
|
||||
|
||||
|
@ -3179,6 +3180,7 @@ nsDOMWindowUtils::HandleFullscreenRequests(bool* aRetVal)
|
|||
nsresult
|
||||
nsDOMWindowUtils::ExitFullscreen()
|
||||
{
|
||||
PROFILER_MARKER("Exit fullscreen");
|
||||
nsCOMPtr<nsIDocument> doc = GetDocument();
|
||||
NS_ENSURE_STATE(doc);
|
||||
|
||||
|
|
|
@ -6181,7 +6181,9 @@ private:
|
|||
// AfterToggle stage happens after we toggle the fullscreen state.
|
||||
// In this stage, the task triggers the post-toggle fullscreen
|
||||
// transition on the widget.
|
||||
eAfterToggle
|
||||
eAfterToggle,
|
||||
// End stage is triggered after the final transition finishes.
|
||||
eEnd
|
||||
};
|
||||
|
||||
class Observer final : public nsIObserver
|
||||
|
@ -6227,10 +6229,12 @@ FullscreenTransitionTask::Run()
|
|||
return NS_OK;
|
||||
}
|
||||
if (stage == eBeforeToggle) {
|
||||
PROFILER_MARKER("Fullscreen transition start");
|
||||
mWidget->PerformFullscreenTransition(nsIWidget::eBeforeFullscreenToggle,
|
||||
mDuration.mFadeIn, mTransitionData,
|
||||
this);
|
||||
} else if (stage == eToggleFullscreen) {
|
||||
PROFILER_MARKER("Fullscreen toggle start");
|
||||
if (MOZ_UNLIKELY(mWindow->mFullScreen != mFullscreen)) {
|
||||
// This could happen in theory if several fullscreen requests in
|
||||
// different direction happen continuously in a short time. We
|
||||
|
@ -6270,6 +6274,8 @@ FullscreenTransitionTask::Run()
|
|||
mWidget->PerformFullscreenTransition(nsIWidget::eAfterFullscreenToggle,
|
||||
mDuration.mFadeOut, mTransitionData,
|
||||
this);
|
||||
} else if (stage == eEnd) {
|
||||
PROFILER_MARKER("Fullscreen transition end");
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -6290,6 +6296,7 @@ FullscreenTransitionTask::Observer::Observe(nsISupports* aSubject,
|
|||
// The paint notification arrives first. Cancel the timer.
|
||||
mTask->mTimer->Cancel();
|
||||
shouldContinue = true;
|
||||
PROFILER_MARKER("Fullscreen toggle end");
|
||||
}
|
||||
} else {
|
||||
#ifdef DEBUG
|
||||
|
@ -6300,6 +6307,7 @@ FullscreenTransitionTask::Observer::Observe(nsISupports* aSubject,
|
|||
"Should only trigger this with the timer the task created");
|
||||
#endif
|
||||
shouldContinue = true;
|
||||
PROFILER_MARKER("Fullscreen toggle timeout");
|
||||
}
|
||||
if (shouldContinue) {
|
||||
nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
|
||||
|
|
Загрузка…
Ссылка в новой задаче