Closed
Bug 538532
Opened 15 years ago
Closed 15 years ago
[OOPP] Chrome-process crash [@nsNPAPIPluginStreamListener::OnStartBinding] when plugin process dies during NPP_SetWindow
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(status1.9.2 .4-fixed)
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
status1.9.2 | --- | .4-fixed |
People
(Reporter: cjones, Assigned: cjones)
References
Details
(Whiteboard: [fixed-lorentz])
Attachments
(2 files, 4 obsolete files)
3.26 KB,
patch
|
jaas
:
review+
|
Details | Diff | Splinter Review |
790 bytes,
patch
|
benjamin
:
review+
jaas
:
review+
|
Details | Diff | Splinter Review |
See bug 5360202 comment 13 and bug 536020 comment 14.
Assignee | ||
Comment 1•15 years ago
|
||
Assignee: nobody → jones.chris.g
Attachment #420684 -
Flags: review?
Assignee | ||
Comment 2•15 years ago
|
||
Attachment #420685 -
Flags: review?
Assignee | ||
Comment 3•15 years ago
|
||
There may be other sites that can be refactored to use this method, but I didn't see any off-hand.
Attachment #420686 -
Flags: review?
Assignee | ||
Comment 4•15 years ago
|
||
Attachment #420687 -
Flags: review?(benjamin)
Assignee | ||
Updated•15 years ago
|
Attachment #420684 -
Flags: review? → review?(joshmoz)
Assignee | ||
Updated•15 years ago
|
Attachment #420685 -
Flags: review? → review?(joshmoz)
Assignee | ||
Updated•15 years ago
|
Attachment #420686 -
Flags: review? → review?(joshmoz)
Assignee | ||
Comment 5•15 years ago
|
||
With these patches, when the plugin process crashing at NPP_SetWindow(), valgrind doesn't find any problems.
Comment 6•15 years ago
|
||
I'm a little concerned about all the renaming: remember, we have to port all this back to the branch, where the plugintag stuff hasn't been refactored and we still support the XPCOM/OJI plugin.
Comment 7•15 years ago
|
||
With this patch series you end up finding the plugintag twice (once in PluginCrashed, and another time in StopPlugin. Can StopPlugin either be a method of nsPluginTag, or at least take a nsPluginTag* instead of a nsIPlugin*? Seems like you might as well combine the patches in part 4 and part 3, since they touch the same code.
Assignee | ||
Comment 8•15 years ago
|
||
TBH, for this OOPP bug alone we don't need |StopPlugin()| ... I left it in because I thought that the fix for bug 536020 would end up using it (but I still don't know what's wrong there). Will reshuffle patches.
Assignee | ||
Comment 9•15 years ago
|
||
Attachment #420684 -
Attachment is obsolete: true
Attachment #420685 -
Attachment is obsolete: true
Attachment #420753 -
Flags: review?(joshmoz)
Attachment #420684 -
Flags: review?(joshmoz)
Attachment #420685 -
Flags: review?(joshmoz)
Assignee | ||
Comment 10•15 years ago
|
||
Simplified per bsmedberg's comments.
Attachment #420686 -
Attachment is obsolete: true
Attachment #420687 -
Attachment is obsolete: true
Attachment #420754 -
Flags: review?(benjamin)
Attachment #420687 -
Flags: review?(benjamin)
Attachment #420686 -
Flags: review?(joshmoz)
Comment 11•15 years ago
|
||
Comment on attachment 420754 [details] [diff] [review] p2 v2: when a plugin crashes, make sure all its instances are stopped ASAP Looks ok to me, but josh should confirm.
Attachment #420754 -
Flags: review?(joshmoz)
Attachment #420754 -
Flags: review?(benjamin)
Attachment #420754 -
Flags: review+
Assignee | ||
Updated•15 years ago
|
Keywords: testcase-wanted
Comment 12•15 years ago
|
||
Comment on attachment 420753 [details] [diff] [review] p1 v2: add nsPluginHost::FindTagForPlugin() As a direct replacement for writing out the code multiple times this looks fine. > // Let's find the corresponding plugin tag by matching nsIPlugin pointer. > // It is going to be used later when we decide whether or not we should delay > // unloading NPAPI dll from memory. > nsPluginTag * pluginTag = nsnull; > if (aPlugin) { >- for (pluginTag = mPlugins; pluginTag != nsnull; pluginTag = pluginTag->mNext) { >- if (pluginTag->mEntryPoint == aPlugin) >- break; >- } >+ pluginTag = FindTagForPlugin(aPlugin); > NS_ASSERTION(pluginTag, "Plugin tag not found"); > } > > nsPluginInstanceTag * plugin = new nsPluginInstanceTag(pluginTag, aInstance, url.get(), aDefaultPlugin); This logic look funny though your patch isn't responsible for it. I would think we don't allow aPlugin to be null, and we shouldn't be creating a new nsPluginInstanceTag without a plugintag as the assertion implies.
Attachment #420753 -
Flags: review?(joshmoz) → review+
Attachment #420754 -
Flags: review?(joshmoz) → review+
Assignee | ||
Comment 13•15 years ago
|
||
Pushed http://hg.mozilla.org/projects/electrolysis/rev/6064abe2a823 Pushed http://hg.mozilla.org/projects/electrolysis/rev/7bb0a487f2cd We'll want this on m-c sooner rather than later, but as it hasn't arisen in the wild yet, I'll let it bake on e10s.
Blocks: LorentzBeta1
Whiteboard: [land m-c]
Comment 14•15 years ago
|
||
http://hg.mozilla.org/mozilla-central/rev/18500ec42c6f http://hg.mozilla.org/mozilla-central/rev/68c27494dc5c
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Comment 15•15 years ago
|
||
http://hg.mozilla.org/projects/firefox-lorentz/rev/e508191bbecf http://hg.mozilla.org/projects/firefox-lorentz/rev/6d7743f544ce
Whiteboard: [land m-c] → [fixed-lorentz]
Comment 16•15 years ago
|
||
Blanket approval for Lorentz merge to mozilla-1.9.2 a=beltzner for 1.9.2.4 - please make sure to mark status1.9.2:.4-fixed
Comment 17•15 years ago
|
||
Merged into 1.9.2 at http://hg.mozilla.org/releases/mozilla-1.9.2/rev/84ba4d805430
status1.9.2:
--- → .4-fixed
Updated•9 years ago
|
Keywords: testcase-wanted
Updated•2 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•