Fix releasing the wrong renderer view.

This commit is contained in:
Cheng Zhao 2014-04-25 12:40:04 +08:00
parent 4135040449
commit e70d195cde
3 changed files with 5 additions and 5 deletions

View file

@ -23,10 +23,10 @@ WebContents::WebContents(content::WebContents* web_contents)
WebContents::~WebContents() { WebContents::~WebContents() {
} }
void WebContents::RenderViewDeleted(content::RenderViewHost*) { void WebContents::RenderViewDeleted(content::RenderViewHost* render_view_host) {
base::ListValue args; base::ListValue args;
args.AppendInteger(GetProcessID()); args.AppendInteger(render_view_host->GetProcess()->GetID());
args.AppendInteger(GetRoutingID()); args.AppendInteger(render_view_host->GetRoutingID());
Emit("render-view-deleted", args); Emit("render-view-deleted", args);
} }

View file

@ -78,7 +78,7 @@ class ObjectsRegistry extends EventEmitter
# Clear all references to objects from renderer view. # Clear all references to objects from renderer view.
clear: (processId, routingId) -> clear: (processId, routingId) ->
@emit "release-renderer-view-#{processId}-#{routingId}" @emit "clear-#{processId}-#{routingId}"
ObjectsStore.releaseForRenderView processId, routingId ObjectsStore.releaseForRenderView processId, routingId
module.exports = new ObjectsRegistry module.exports = new ObjectsRegistry

View file

@ -53,7 +53,7 @@ unwrapArgs = (processId, routingId, args) ->
-> returnValue -> returnValue
when 'function' when 'function'
rendererReleased = false rendererReleased = false
objectsRegistry.once "release-renderer-view-#{processId}-#{routingId}", -> objectsRegistry.once "clear-#{processId}-#{routingId}", ->
rendererReleased = true rendererReleased = true
ret = -> ret = ->