Closed
Bug 1103177
Opened 9 years ago
Closed 9 years ago
[e10s] Native plugin windows in torn out tabs remain associated with original window
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(e10sm5+, firefox38 fixed)
RESOLVED
FIXED
mozilla38
People
(Reporter: jimm, Assigned: jimm)
References
Details
Attachments
(1 file)
5.78 KB,
patch
|
roc
:
review+
|
Details | Diff | Splinter Review |
STR: 1) open a test plugin page 2) open another tab 3) tear the test plugin page out to a new window result: plugin window remains visible in original window.
![]() |
Assignee | |
Updated•9 years ago
|
Assignee: nobody → jmathies
![]() |
Assignee | |
Comment 1•9 years ago
|
||
nsIWidget has a ReparentNativeWidget call which I'm hoping gets called here. Neither PuppetWidget or PluginWidgetProxy handle this correctly.
![]() |
Assignee | |
Comment 2•9 years ago
|
||
SwapWithOtherRemoteLoader fails to invoke the BeginSwapDocShells/EndSwapDocShells methods on the documents in the child processes, so frames like nsPluginFrame never get a notification. Here's the nsPluginFrame stack in single process: xul.dll!nsPluginFrame::BeginSwapDocShells(nsISupports * aSupports, void * __formal) xul.dll!EnumerateObservers(nsPtrHashKey<nsISupports> * aEntry, void * aData) xul.dll!nsTHashtable<nsPtrHashKey<nsISupports> >::s_EnumStub(PLDHashTable * aTable, PLDHashEntryHdr * aEntry, unsigned int aNumber, void * aArg) xul.dll!PLDHashTable::Enumerate(PLDHashOperator (PLDHashTable *, PLDHashEntryHdr *, unsigned int, void *) * aEtor, void * aArg) xul.dll!PL_DHashTableEnumerate(PLDHashTable * aTable, PLDHashOperator (PLDHashTable *, PLDHashEntryHdr *, unsigned int, void *) * aEtor, void * aArg) xul.dll!nsTHashtable<nsPtrHashKey<nsISupports> >::EnumerateEntries(PLDHashOperator (nsPtrHashKey<nsISupports> *, void *) * aEnumFunc, void * aUserArg) xul.dll!nsIDocument::EnumerateActivityObservers(void (nsISupports *, void *) * aEnumerator, void * aData) xul.dll!BeginSwapDocShellsForDocument(nsIDocument * aDocument, void * __formal) xul.dll!BeginSwapDocShellsForViews(nsView * aSibling) xul.dll!nsSubDocumentFrame::BeginSwapDocShells(nsIFrame * aOther) xul.dll!nsFrameLoader::SwapWithOtherLoader(nsFrameLoader * aOther, nsRefPtr<nsFrameLoader> & aFirstToSwap, nsRefPtr<nsFrameLoader> & aSecondToSwap)
Blocks: 918634
![]() |
Assignee | |
Comment 3•9 years ago
|
||
Interesting and a little odd that the swap calls are static methods on nsPluginFrame - http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsPluginFrame.cpp#1810 We call these for all activity observers, and the method then figure out if the observer is in fact a plugin. Anyway, somehow we need to get this forwarded over. Plus we need to figure out how to get the information over for reparenting these native windows. It might be interesting to consider that we also want to support this with multiple content process...
![]() |
Assignee | |
Comment 4•9 years ago
|
||
I can fix this without going over ipc to the child, but I'll need the widget tracking implemented in bug 1095754.
Depends on: 1095754
![]() |
Assignee | |
Comment 6•9 years ago
|
||
This takes care of proper plugin parenting after a tab gets dragged out.
Attachment #8560402 -
Flags: review?(roc)
Attachment #8560402 -
Flags: review?(roc) → review+
![]() |
Assignee | |
Comment 7•9 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=891d156863e4
![]() |
Assignee | |
Comment 8•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/05417328ad73
Comment 9•9 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/05417328ad73 dom/base/nsFrameLoader.cpp.rej ???
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox38:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla38
Updated•9 years ago
|
Flags: needinfo?(jmathies)
![]() |
Assignee | |
Comment 10•9 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM UTC-5] from comment #9) > https://hg.mozilla.org/mozilla-central/rev/05417328ad73 > > dom/base/nsFrameLoader.cpp.rej ??? oops!
Flags: needinfo?(jmathies)
![]() |
Assignee | |
Comment 11•9 years ago
|
||
(In reply to Jim Mathies [:jimm] from comment #10) > (In reply to Ryan VanderMeulen [:RyanVM UTC-5] from comment #9) > > https://hg.mozilla.org/mozilla-central/rev/05417328ad73 > > > > dom/base/nsFrameLoader.cpp.rej ??? > > oops! https://hg.mozilla.org/integration/mozilla-inbound/rev/041bb339a4ea
Updated•1 year ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•