Fix malformed <webview> crash
commit3c019ca1da474514203dbb0b61157a59e1165cfc
authorfsamuel@chromium.org <fsamuel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Fri, 23 Aug 2013 04:41:15 +0000 (23 04:41 +0000)
committerfsamuel@chromium.org <fsamuel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Fri, 23 Aug 2013 04:41:15 +0000 (23 04:41 +0000)
tree6fd78890ccbeb6fea9905f089a69b8d69210496a
parent7be272c3e63bc831c0c76257ab3479c54b682932
Fix malformed <webview> crash

After allocating an instance ID in the browser process, BrowserPluginManager
calls back into the BrowserPlugin that made the request to inform it of its
instance ID. If, during that time, BrowserPlugin was destroyed, then
BrowserPluginManager would've accessed an invalid BrowserPlugin pointer.
This CL solves this problem by using weak pointers for calling back into
BrowserPlugin. If the calling BrowserPlugin has been destroyed in the meantime,
BrowserPluginManager will not call into it.

BUG=276023
Test=WebViewTest.Shim_TestRemoveWebviewAfterNavigation

Review URL: https://chromiumcodereview.appspot.com/22870029

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219220 0039d316-1c4b-4281-b951-d872f2087c98
chrome/browser/apps/web_view_browsertest.cc
chrome/test/data/extensions/platform_apps/web_view/shim/main.js
content/renderer/browser_plugin/browser_plugin.cc
content/renderer/browser_plugin/browser_plugin_manager.h
content/renderer/browser_plugin/browser_plugin_manager_impl.cc
content/renderer/browser_plugin/browser_plugin_manager_impl.h
content/renderer/browser_plugin/mock_browser_plugin_manager.cc
content/renderer/browser_plugin/mock_browser_plugin_manager.h