Open
Bug 718107
Opened 13 years ago
Updated 3 years ago
Using the DOM fullscreen API detaches and reattaches the XBL binding of the element when entering and again when exiting fullscreen
Categories
(Core :: DOM: Core & HTML, defect, P3)
Tracking
()
NEW
People
(Reporter: jaws, Unassigned)
References
Details
Attachments
(1 file)
|
1.33 KB,
patch
|
Details | Diff | Splinter Review |
When applying the patch in bug 666306, an overlay play button should appear when a non-autoplay video is loaded. After the video has begun playing, the overlay play button shouldn't appear again. Entering fullscreen mode is causing the overlay play button to appear.
I placed a dump statement in the init method of the video controls and the init method is called 22 times when entering then exiting DOM fullscreen.
Expected behavior:
The XBL binding shouldn't be changed when moving an element to DOM fullscreen.
Updated•13 years ago
|
Component: General → DOM: Core & HTML
QA Contact: general → general
| Reporter | ||
Updated•13 years ago
|
Summary: Using the DOM fullscreen API resets the XBL binding of the target element > 20 times → Using the DOM fullscreen API reattaches the XBL binding of the target element > 20 times
| Reporter | ||
Comment 1•13 years ago
|
||
I have tested this again and I only see the binding detach and reattach twice now, but this still is an issue that blocks bug 666306 since the state of the controls is lost.
This is a smaller patch that dumps out to the console when the binding is being initialized to show that it is initialized two times when entering and two times when exiting fullscreen.
| Reporter | ||
Updated•13 years ago
|
Summary: Using the DOM fullscreen API reattaches the XBL binding of the target element > 20 times → Using the DOM fullscreen API detaches and reattaches the XBL binding of the element twice when entering and twice when exiting fullscreen
| Reporter | ||
Comment 2•13 years ago
|
||
(In reply to Jared Wein [:jaws] from comment #0)
> I placed a dump statement in the init method of the video controls and the
> init method is called 22 times when entering then exiting DOM fullscreen.
I figured out today that the 22 occurrences was because there was 11 videos on the page I was testing with. This explains why I saw 22 before and then 2 recently. The binding is detached and reattached twice per video on the page, even though only one of the videos enters fullscreen.
I will try to get some stacks and attach them to this bug.
Comment 3•13 years ago
|
||
If you have that dump statement in there you should just be able to break on nsGlobalWindow::Dump to get stacks.
| Reporter | ||
Comment 4•13 years ago
|
||
(In reply to Timothy Nikkel (:tn) from comment #3)
> If you have that dump statement in there you should just be able to break on
> nsGlobalWindow::Dump to get stacks.
Thank you!
Here is the first stack:
xul.dll!nsGlobalWindow::Dump(const nsAString_internal & aStr) Line 4518 C++
xul.dll!nsIDOMJSWindow_Dump(JSContext * cx, unsigned int argc, JS::Value * vp) Line 648 C++
mozjs.dll!js::CallJSNative(JSContext * cx, int (JSContext *, unsigned int, JS::Value *) * native, const js::CallArgs & args) Line 311 C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct) Line 520 C++
mozjs.dll!js::Interpret(JSContext * cx, js::StackFrame * entryFrame, js::InterpMode interpMode) Line 2912 C++
mozjs.dll!js::RunScript(JSContext * cx, JSScript * script, js::StackFrame * fp) Line 475 C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct) Line 538 C++
mozjs.dll!js::Invoke(JSContext * cx, js::InvokeArgsGuard & args, js::MaybeConstruct construct) Line 157 C++
mozjs.dll!js::Invoke(JSContext * cx, const JS::Value & thisv, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval) Line 570 C++
mozjs.dll!JS_CallFunctionValue(JSContext * cx, JSObject * obj, JS::Value fval, unsigned int argc, JS::Value * argv, JS::Value * rval) Line 5449 C++
xul.dll!nsXBLProtoImplAnonymousMethod::Execute(nsIContent * aBoundElement) Line 365 C++
xul.dll!nsXBLPrototypeBinding::BindingAttached(nsIContent * aBoundElement) Line 521 C++
xul.dll!nsXBLBinding::ExecuteAttachedHandler() Line 950 C++
xul.dll!nsBindingManager::ProcessAttachedQueue(unsigned int aSkipSize) Line 1054 C++
xul.dll!PresShell::InitialReflow(int aWidth, int aHeight) Line 1977 C++
xul.dll!DocumentViewerImpl::InitPresentationStuff(bool aDoInitialReflow) Line 779 C++
xul.dll!DocumentViewerImpl::Show() Line 2042 C++
xul.dll!nsDocShell::SetVisibility(bool aVisibility) Line 4939 C++
xul.dll!nsFrameLoader::Show(int marginWidth, int marginHeight, int scrollbarPrefX, int scrollbarPrefY, nsSubDocumentFrame * frame) Line 825 C++
xul.dll!nsSubDocumentFrame::ShowViewer() Line 231 C++
xul.dll!AsyncFrameInit::Run() Line 150 C++
xul.dll!nsContentUtils::RemoveScriptBlocker() Line 4457 C++
xul.dll!nsAutoScriptBlocker::~nsAutoScriptBlocker() Line 2030 C++
xul.dll!PresShell::FlushPendingNotifications(mozFlushType aType) Line 4048 C++
xul.dll!nsDocument::FlushPendingNotifications(mozFlushType aType) Line 6288 C++
xul.dll!nsGenericElement::GetPrimaryFrame(mozFlushType aType) Line 3776 C++
xul.dll!nsGenericElement::GetBoundingClientRect(nsIDOMClientRect * * aResult) Line 2126 C++
xul.dll!nsXULElement::GetBoundingClientRect(nsIDOMClientRect * * _retval) Line 541 C++
xul.dll!nsIDOMElement_GetBoundingClientRect(JSContext * cx, unsigned int argc, JS::Value * vp) Line 4383 C++
mozjs.dll!js::CallJSNative(JSContext * cx, int (JSContext *, unsigned int, JS::Value *) * native, const js::CallArgs & args) Line 311 C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct) Line 520 C++
mozjs.dll!js::Interpret(JSContext * cx, js::StackFrame * entryFrame, js::InterpMode interpMode) Line 2912 C++
mozjs.dll!js::RunScript(JSContext * cx, JSScript * script, js::StackFrame * fp) Line 475 C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct) Line 538 C++
mozjs.dll!js::Invoke(JSContext * cx, js::InvokeArgsGuard & args, js::MaybeConstruct construct) Line 157 C++
mozjs.dll!js::Invoke(JSContext * cx, const JS::Value & thisv, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval) Line 570 C++
mozjs.dll!JS_CallFunctionValue(JSContext * cx, JSObject * obj, JS::Value fval, unsigned int argc, JS::Value * argv, JS::Value * rval) Line 5449 C++
xul.dll!nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS * wrapper, unsigned short methodIndex, const XPTMethodDescriptor * info, nsXPTCMiniVariant * nativeParams) Line 1513 C++
xul.dll!nsXPCWrappedJS::CallMethod(unsigned short methodIndex, const XPTMethodDescriptor * info, nsXPTCMiniVariant * params) Line 612 C++
xul.dll!PrepareAndDispatch(nsXPTCStubBase * self, unsigned int methodIndex, unsigned int * args, unsigned int * stackBytesToPop) Line 117 C++
xul.dll!SharedStub() Line 145 C++
xul.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct, nsIDOMEventListener * aListener, nsIDOMEvent * aDOMEvent, nsIDOMEventTarget * aCurrentTarget, unsigned int aPhaseFlags, nsCxPusher * aPusher) Line 734 C++
xul.dll!nsEventListenerManager::HandleEventInternal(nsPresContext * aPresContext, nsEvent * aEvent, nsIDOMEvent * * aDOMEvent, nsIDOMEventTarget * aCurrentTarget, unsigned int aFlags, nsEventStatus * aEventStatus, nsCxPusher * aPusher) Line 793 C++
xul.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext, nsEvent * aEvent, nsIDOMEvent * * aDOMEvent, nsIDOMEventTarget * aCurrentTarget, unsigned int aFlags, nsEventStatus * aEventStatus, nsCxPusher * aPusher) Line 169 C++
xul.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor, unsigned int aFlags, bool aMayHaveNewListenerManagers, nsCxPusher * aPusher) Line 216 C++
xul.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor, unsigned int aFlags, nsDispatchingCallback * aCallback, bool aMayHaveNewListenerManagers, nsCxPusher * aPusher) Line 349 C++
xul.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget, nsPresContext * aPresContext, nsEvent * aEvent, nsIDOMEvent * aDOMEvent, nsEventStatus * aEventStatus, nsDispatchingCallback * aCallback, nsCOMArray<nsIDOMEventTarget> * aTargets) Line 681 C++
xul.dll!nsEventDispatcher::DispatchDOMEvent(nsISupports * aTarget, nsEvent * aEvent, nsIDOMEvent * aDOMEvent, nsPresContext * aPresContext, nsEventStatus * aEventStatus) Line 744 C++
xul.dll!nsGlobalWindow::DispatchEvent(nsIDOMEvent * aEvent, bool * aRetVal) Line 7364 C++
xul.dll!nsGlobalWindow::DispatchEvent(nsIDOMEvent * aEvent, bool * aRetVal) Line 7347 C++
xul.dll!nsContentUtils::DispatchTrustedEvent(nsIDocument * aDoc, nsISupports * aTarget, const nsAString_internal & aEventName, bool aCanBubble, bool aCancelable, bool * aDefaultAction) Line 3093 C++
xul.dll!nsGlobalWindow::DispatchCustomEvent(const char * aEventName) Line 4328 C++
xul.dll!nsGlobalWindow::SetFullScreen(bool aFullScreen) Line 4447 C++
xul.dll!nsGlobalWindow::SetFullScreen(bool aFullScreen) Line 4432 C++
xul.dll!nsSetWindowFullScreen::Run() Line 8485 C++
xul.dll!nsContentUtils::AddScriptRunner(nsIRunnable * aRunnable) Line 4482 C++
xul.dll!SetWindowFullScreen(nsIDocument * aDoc, bool aValue) Line 8496 C++
xul.dll!nsDocument::RequestFullScreen(mozilla::dom::Element * aElement, bool aWasCallerChrome) Line 8930 C++
xul.dll!nsCallRequestFullScreen::Run() Line 8640 C++
xul.dll!nsThread::ProcessNextEvent(bool mayWait, bool * result) Line 657 C++
xul.dll!NS_ProcessNextEvent_P(nsIThread * thread, bool mayWait) Line 245 C++
xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate) Line 110 C++
xul.dll!MessageLoop::RunInternal() Line 209 C++
xul.dll!MessageLoop::RunHandler() Line 202 C++
xul.dll!MessageLoop::Run() Line 176 C++
xul.dll!nsBaseAppShell::Run() Line 191 C++
xul.dll!nsAppShell::Run() Line 258 C++
xul.dll!nsAppStartup::Run() Line 220 C++
xul.dll!XRE_main(int argc, char * * argv, const nsXREAppData * aAppData) Line 3537 C++
firefox.exe!do_main(const char * exePath, int argc, char * * argv) Line 205 C++
firefox.exe!NS_internal_main(int argc, char * * argv) Line 295 C++
firefox.exe!wmain(int argc, wchar_t * * argv) Line 107 C++
firefox.exe!__tmainCRTStartup() Line 552 C
firefox.exe!wmainCRTStartup() Line 371 C
Here is the second stack:
xul.dll!nsGlobalWindow::Dump(const nsAString_internal & aStr) Line 4518 C++
xul.dll!nsIDOMJSWindow_Dump(JSContext * cx, unsigned int argc, JS::Value * vp) Line 648 C++
mozjs.dll!js::CallJSNative(JSContext * cx, int (JSContext *, unsigned int, JS::Value *) * native, const js::CallArgs & args) Line 311 C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct) Line 520 C++
mozjs.dll!js::Interpret(JSContext * cx, js::StackFrame * entryFrame, js::InterpMode interpMode) Line 2912 C++
mozjs.dll!js::RunScript(JSContext * cx, JSScript * script, js::StackFrame * fp) Line 475 C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct) Line 538 C++
mozjs.dll!js::Invoke(JSContext * cx, js::InvokeArgsGuard & args, js::MaybeConstruct construct) Line 157 C++
mozjs.dll!js::Invoke(JSContext * cx, const JS::Value & thisv, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval) Line 570 C++
mozjs.dll!JS_CallFunctionValue(JSContext * cx, JSObject * obj, JS::Value fval, unsigned int argc, JS::Value * argv, JS::Value * rval) Line 5449 C++
xul.dll!nsXBLProtoImplAnonymousMethod::Execute(nsIContent * aBoundElement) Line 365 C++
xul.dll!nsXBLPrototypeBinding::BindingAttached(nsIContent * aBoundElement) Line 521 C++
xul.dll!nsXBLBinding::ExecuteAttachedHandler() Line 950 C++
xul.dll!nsBindingManager::ProcessAttachedQueue(unsigned int aSkipSize) Line 1054 C++
xul.dll!PresShell::InitialReflow(int aWidth, int aHeight) Line 1977 C++
xul.dll!DocumentViewerImpl::InitPresentationStuff(bool aDoInitialReflow) Line 779 C++
xul.dll!DocumentViewerImpl::Show() Line 2042 C++
xul.dll!nsDocShell::SetVisibility(bool aVisibility) Line 4939 C++
xul.dll!nsFrameLoader::Show(int marginWidth, int marginHeight, int scrollbarPrefX, int scrollbarPrefY, nsSubDocumentFrame * frame) Line 825 C++
xul.dll!nsSubDocumentFrame::ShowViewer() Line 231 C++
xul.dll!AsyncFrameInit::Run() Line 150 C++
xul.dll!nsContentUtils::RemoveScriptBlocker() Line 4457 C++
xul.dll!nsAutoScriptBlocker::~nsAutoScriptBlocker() Line 2030 C++
xul.dll!PresShell::ResizeReflowIgnoreOverride(int aWidth, int aHeight) Line 2132 C++
xul.dll!PresShell::ResizeReflow(int aWidth, int aHeight) Line 2083 C++
xul.dll!nsViewManager::DoSetWindowDimensions(int aWidth, int aHeight) Line 245 C++
xul.dll!nsViewManager::SetWindowDimensions(int aWidth, int aHeight) Line 263 C++
xul.dll!nsViewManager::DispatchEvent(nsGUIEvent * aEvent, nsIView * aView, nsEventStatus * aStatus) Line 689 C++
xul.dll!AttachedHandleEvent(nsGUIEvent * aEvent) Line 191 C++
xul.dll!nsWindow::DispatchEvent(nsGUIEvent * event, nsEventStatus & aStatus) Line 3563 C++
xul.dll!nsWindow::DispatchWindowEvent(nsGUIEvent * event) Line 3590 C++
xul.dll!nsWindow::OnResize(nsIntRect & aWindowRect) Line 7468 C++
xul.dll!nsWindow::ResetLayout() Line 1985 C++
xul.dll!nsWindow::UpdateNonClientMargins(int aSizeMode, bool aReflowWindow) Line 2158 C++
xul.dll!nsWindow::MakeFullScreen(bool aFullScreen) Line 2743 C++
xul.dll!nsGlobalWindow::SetFullScreen(bool aFullScreen) Line 4468 C++
xul.dll!nsSetWindowFullScreen::Run() Line 8485 C++
xul.dll!nsContentUtils::AddScriptRunner(nsIRunnable * aRunnable) Line 4482 C++
xul.dll!SetWindowFullScreen(nsIDocument * aDoc, bool aValue) Line 8496 C++
xul.dll!nsDocument::RestorePreviousFullScreenState() Line 8616 C++
xul.dll!nsDocument::MozCancelFullScreen() Line 8467 C++
xul.dll!NS_InvokeByIndex_P(nsISupports * that, unsigned int methodIndex, unsigned int paramCount, nsXPTCVariant * params) Line 103 C++
xul.dll!CallMethodHelper::Invoke() Line 2899 C++
xul.dll!CallMethodHelper::Call() Line 2230 C++
xul.dll!XPCWrappedNative::CallMethod(XPCCallContext & ccx, XPCWrappedNative::CallMode mode) Line 2196 C++
xul.dll!XPC_WN_CallMethod(JSContext * cx, unsigned int argc, JS::Value * vp) Line 1539 C++
mozjs.dll!js::CallJSNative(JSContext * cx, int (JSContext *, unsigned int, JS::Value *) * native, const js::CallArgs & args) Line 311 C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct) Line 520 C++
mozjs.dll!js::Interpret(JSContext * cx, js::StackFrame * entryFrame, js::InterpMode interpMode) Line 2912 C++
mozjs.dll!js::RunScript(JSContext * cx, JSScript * script, js::StackFrame * fp) Line 475 C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct) Line 538 C++
mozjs.dll!js::Invoke(JSContext * cx, js::InvokeArgsGuard & args, js::MaybeConstruct construct) Line 157 C++
mozjs.dll!js::Invoke(JSContext * cx, const JS::Value & thisv, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval) Line 570 C++
mozjs.dll!JS_CallFunctionValue(JSContext * cx, JSObject * obj, JS::Value fval, unsigned int argc, JS::Value * argv, JS::Value * rval) Line 5449 C++
xul.dll!nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS * wrapper, unsigned short methodIndex, const XPTMethodDescriptor * info, nsXPTCMiniVariant * nativeParams) Line 1513 C++
xul.dll!nsXPCWrappedJS::CallMethod(unsigned short methodIndex, const XPTMethodDescriptor * info, nsXPTCMiniVariant * params) Line 612 C++
xul.dll!PrepareAndDispatch(nsXPTCStubBase * self, unsigned int methodIndex, unsigned int * args, unsigned int * stackBytesToPop) Line 117 C++
xul.dll!SharedStub() Line 145 C++
xul.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct, nsIDOMEventListener * aListener, nsIDOMEvent * aDOMEvent, nsIDOMEventTarget * aCurrentTarget, unsigned int aPhaseFlags, nsCxPusher * aPusher) Line 734 C++
xul.dll!nsEventListenerManager::HandleEventInternal(nsPresContext * aPresContext, nsEvent * aEvent, nsIDOMEvent * * aDOMEvent, nsIDOMEventTarget * aCurrentTarget, unsigned int aFlags, nsEventStatus * aEventStatus, nsCxPusher * aPusher) Line 793 C++
xul.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext, nsEvent * aEvent, nsIDOMEvent * * aDOMEvent, nsIDOMEventTarget * aCurrentTarget, unsigned int aFlags, nsEventStatus * aEventStatus, nsCxPusher * aPusher) Line 169 C++
xul.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor, unsigned int aFlags, bool aMayHaveNewListenerManagers, nsCxPusher * aPusher) Line 216 C++
xul.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor, unsigned int aFlags, nsDispatchingCallback * aCallback, bool aMayHaveNewListenerManagers, nsCxPusher * aPusher) Line 320 C++
xul.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget, nsPresContext * aPresContext, nsEvent * aEvent, nsIDOMEvent * aDOMEvent, nsEventStatus * aEventStatus, nsDispatchingCallback * aCallback, nsCOMArray<nsIDOMEventTarget> * aTargets) Line 681 C++
xul.dll!nsEventDispatcher::DispatchDOMEvent(nsISupports * aTarget, nsEvent * aEvent, nsIDOMEvent * aDOMEvent, nsPresContext * aPresContext, nsEventStatus * aEventStatus) Line 744 C++
xul.dll!nsINode::DispatchEvent(nsIDOMEvent * aEvent, bool * aRetVal) Line 1171 C++
xul.dll!nsContentUtils::DispatchTrustedEvent(nsIDocument * aDoc, nsISupports * aTarget, const nsAString_internal & aEventName, bool aCanBubble, bool aCancelable, bool * aDefaultAction) Line 3093 C++
xul.dll!nsAsyncDOMEvent::Run() Line 78 C++
xul.dll!nsThread::ProcessNextEvent(bool mayWait, bool * result) Line 657 C++
xul.dll!NS_ProcessNextEvent_P(nsIThread * thread, bool mayWait) Line 245 C++
xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate) Line 110 C++
xul.dll!MessageLoop::RunInternal() Line 209 C++
xul.dll!MessageLoop::RunHandler() Line 202 C++
xul.dll!MessageLoop::Run() Line 176 C++
xul.dll!nsBaseAppShell::Run() Line 191 C++
xul.dll!nsAppShell::Run() Line 258 C++
xul.dll!nsAppStartup::Run() Line 220 C++
xul.dll!XRE_main(int argc, char * * argv, const nsXREAppData * aAppData) Line 3537 C++
firefox.exe!do_main(const char * exePath, int argc, char * * argv) Line 205 C++
firefox.exe!NS_internal_main(int argc, char * * argv) Line 295 C++
firefox.exe!wmain(int argc, wchar_t * * argv) Line 107 C++
firefox.exe!__tmainCRTStartup() Line 552 C
firefox.exe!wmainCRTStartup() Line 371 C
| Reporter | ||
Comment 5•13 years ago
|
||
Looking at the stack and trying it out again, the first stack is from a request to enter fullscreen, and the second stack is to cancel fullscreen.
I'm no longer seeing this happen twice per direction. This is still a bug though, as these bindings should not be reset when entering/exiting fullscreen.
| Reporter | ||
Comment 6•13 years ago
|
||
The canceling of fullscreen is likely the result of the browser losing focus when the debugger hits the breakpoint:
> 4001 // Exit DOM full-screen mode when the browser window loses focus (ALT+TAB, etc).
> 4002 window.addEventListener("deactivate", this.exitDomFullScreen, true);
https://mxr.mozilla.org/mozilla-central/source/browser/base/content/browser.js#4001
| Reporter | ||
Updated•13 years ago
|
Summary: Using the DOM fullscreen API detaches and reattaches the XBL binding of the element twice when entering and twice when exiting fullscreen → Using the DOM fullscreen API detaches and reattaches the XBL binding of the element when entering and again when exiting fullscreen
| Reporter | ||
Comment 7•13 years ago
|
||
From the first stack,
> xul.dll!PresShell::InitialReflow(int aWidth, int aHeight) Line 1977 C++
InitialReflow fires the XBL binding constructors. Is it possible to enter fullscreen without hitting PresShell::InitialReflow?
> 1977 NS_TIME_FUNCTION_MARK("XBL binding constructors fired");
http://mxr.mozilla.org/mozilla-central/source/layout/base/nsPresShell.cpp#1977
Comment 8•13 years ago
|
||
InitialReflow is called once when we create the initial basic layout objects for a document. I'm not sure why or what document we are creating when we enter fullscreen. Maybe its a recreate of the layout objects of an existing document.
| Reporter | ||
Updated•13 years ago
|
Comment 9•12 years ago
|
||
Is this still happening? We've since made us not reconstruct subdocuments when the element containing them in reconstructed.
| Reporter | ||
Comment 10•12 years ago
|
||
(In reply to Timothy Nikkel (:tn) from comment #9)
> Is this still happening? We've since made us not reconstruct subdocuments
> when the element containing them in reconstructed.
I applied the attached patch and still saw that the XBL constructor was being run when loading a webm video directly, again when entering fullscreen, and again when exiting fullscreen.
Comment 11•7 years ago
|
||
My work in bug 1444489 prompts me to investigate this again.
Assuming this is not going to be fixed anytime soon, I will update videocontrols.xml under the assumption that it will *always* get recreated when we enter/leave fullscreen.
Strangely, it doesn't seem to happen on touchControls, unless I tested it wrong....
Updated•7 years ago
|
Priority: -- → P3
Updated•3 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•