Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: content/renderer/webplugin_delegate_proxy.cc

Issue 7696016: Remove the window script object tear-down special-case. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/plugin/npobject_stub.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/webplugin_delegate_proxy.h" 5 #include "content/renderer/webplugin_delegate_proxy.h"
6 6
7 #if defined(TOOLKIT_USES_GTK) 7 #if defined(TOOLKIT_USES_GTK)
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 #endif 9 #endif
10 10
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 // channel, this avoids a race where this renderer asks a new connection to 212 // channel, this avoids a race where this renderer asks a new connection to
213 // the same plugin between now and the time 'this' is actually deleted. 213 // the same plugin between now and the time 'this' is actually deleted.
214 // Destroying the channel host is what releases the channel name -> FD 214 // Destroying the channel host is what releases the channel name -> FD
215 // association on POSIX, and if we ask for a new connection before it is 215 // association on POSIX, and if we ask for a new connection before it is
216 // released, the plugin will give us a new FD, and we'll assert when trying 216 // released, the plugin will give us a new FD, and we'll assert when trying
217 // to associate it with the channel name. 217 // to associate it with the channel name.
218 channel_host_ = NULL; 218 channel_host_ = NULL;
219 } 219 }
220 220
221 if (window_script_object_) { 221 if (window_script_object_) {
222 // The ScriptController deallocates this object independent of its ref count 222 // Release the window script object, if the plugin didn't already.
223 // to avoid leaks if the plugin forgets to release it. So mark the object 223 // If we don't do this then it will linger until the last plugin instance is
224 // invalid to avoid accessing it past this point. Note: only do this after 224 // destroyed. In the meantime, though, the frame that it refers to may have
225 // the DestroyInstance message in case the window object is scripted by the 225 // been destroyed by WebKit, at which point WebKit will forcibly deallocate
226 // plugin in NPP_Destroy. 226 // the window script object. The window script object stub is unique to the
227 window_script_object_->DeleteSoon(false); 227 // plugin instance, so this won't affect other instances.
228 window_script_object_->DeleteSoon();
228 } 229 }
229 230
230 plugin_ = NULL; 231 plugin_ = NULL;
231 232
232 MessageLoop::current()->DeleteSoon(FROM_HERE, this); 233 MessageLoop::current()->DeleteSoon(FROM_HERE, this);
233 } 234 }
234 235
235 // Returns true if the given Silverlight 'background' value corresponds to 236 // Returns true if the given Silverlight 'background' value corresponds to
236 // one that should make the plugin transparent. See: 237 // one that should make the plugin transparent. See:
237 // http://msdn.microsoft.com/en-us/library/cc838148(VS.95).aspx 238 // http://msdn.microsoft.com/en-us/library/cc838148(VS.95).aspx
(...skipping 1150 matching lines...) Expand 10 before | Expand all | Expand 10 after
1388 } 1389 }
1389 #endif 1390 #endif
1390 1391
1391 void WebPluginDelegateProxy::OnURLRedirectResponse(bool allow, 1392 void WebPluginDelegateProxy::OnURLRedirectResponse(bool allow,
1392 int resource_id) { 1393 int resource_id) {
1393 if (!plugin_) 1394 if (!plugin_)
1394 return; 1395 return;
1395 1396
1396 plugin_->URLRedirectResponse(allow, resource_id); 1397 plugin_->URLRedirectResponse(allow, resource_id);
1397 } 1398 }
OLDNEW
« no previous file with comments | « content/plugin/npobject_stub.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698