mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 713597 - Move assertions around so that they don't null pointer deref when full-screen exits during full-screen request. r=smaug
This commit is contained in:
parent
ec406a6cd9
commit
85eda6f596
@ -8907,16 +8907,9 @@ nsDocument::RequestFullScreen(Element* aElement, bool aWasCallerChrome)
|
||||
// Remember this is the requesting full-screen document.
|
||||
sFullScreenDoc = do_GetWeakReference(static_cast<nsIDocument*>(this));
|
||||
|
||||
// Make the window full-screen. Note we must make the state changes above
|
||||
// before making the window full-screen, as then the document reports as
|
||||
// being in full-screen mode when the chrome "fullscreen" event fires,
|
||||
// enabling chrome to distinguish between browser and dom full-screen
|
||||
// modes. Also note that nsGlobalWindow::SetFullScreen() (which
|
||||
// SetWindowFullScreen() calls) proxies to the root window in its hierarchy,
|
||||
// and does not operate on the a per-nsIDOMWindow basis.
|
||||
SetWindowFullScreen(this, true);
|
||||
|
||||
#ifdef DEBUG
|
||||
// Note assertions must run before SetWindowFullScreen() as that does
|
||||
// synchronous event dispatch which can run script which exits full-screen!
|
||||
NS_ASSERTION(GetFullScreenElement() == aElement,
|
||||
"Full-screen element should be the requested element!");
|
||||
NS_ASSERTION(IsFullScreenDoc(), "Should be full-screen doc");
|
||||
@ -8926,6 +8919,15 @@ nsDocument::RequestFullScreen(Element* aElement, bool aWasCallerChrome)
|
||||
NS_ASSERTION(c->AsElement() == aElement,
|
||||
"GetMozFullScreenElement should match GetFullScreenElement()");
|
||||
#endif
|
||||
|
||||
// Make the window full-screen. Note we must make the state changes above
|
||||
// before making the window full-screen, as then the document reports as
|
||||
// being in full-screen mode when the chrome "fullscreen" event fires,
|
||||
// enabling chrome to distinguish between browser and dom full-screen
|
||||
// modes. Also note that nsGlobalWindow::SetFullScreen() (which
|
||||
// SetWindowFullScreen() calls) proxies to the root window in its hierarchy,
|
||||
// and does not operate on the a per-nsIDOMWindow basis.
|
||||
SetWindowFullScreen(this, true);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
Loading…
Reference in New Issue
Block a user