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