| Index: chrome/browser/guestview/webview/webview_guest.cc
|
| diff --git a/chrome/browser/guestview/webview/webview_guest.cc b/chrome/browser/guestview/webview/webview_guest.cc
|
| index 8f72d4257fbbbbda77ba549e51fc60191ac42764..ef7cd8ead1fc74897b91b5457ba8dfb180468d1e 100644
|
| --- a/chrome/browser/guestview/webview/webview_guest.cc
|
| +++ b/chrome/browser/guestview/webview/webview_guest.cc
|
| @@ -10,6 +10,7 @@
|
| #include "chrome/browser/extensions/api/webview/webview_api.h"
|
| #include "chrome/browser/extensions/extension_renderer_state.h"
|
| #include "chrome/browser/extensions/extension_web_contents_observer.h"
|
| +#include "chrome/browser/extensions/menu_manager.h"
|
| #include "chrome/browser/extensions/script_executor.h"
|
| #include "chrome/browser/favicon/favicon_tab_helper.h"
|
| #include "chrome/browser/guestview/guestview_constants.h"
|
| @@ -169,6 +170,15 @@ WebViewGuest* WebViewGuest::FromWebContents(WebContents* contents) {
|
| return guest ? guest->AsWebView() : NULL;
|
| }
|
|
|
| +// static.
|
| +int WebViewGuest::GetViewInstanceId(WebContents* contents) {
|
| + WebViewGuest* guest = FromWebContents(contents);
|
| + if (!guest)
|
| + return guestview::kInstanceIDNone;
|
| +
|
| + return guest->view_instance_id();
|
| +}
|
| +
|
| // static
|
| void WebViewGuest::RecordUserInitiatedUMA(const PermissionResponseInfo& info,
|
| bool allow) {
|
| @@ -682,6 +692,12 @@ void WebViewGuest::DidStopLoading(content::RenderViewHost* render_view_host) {
|
| }
|
|
|
| void WebViewGuest::WebContentsDestroyed(WebContents* web_contents) {
|
| + // Clean up custom context menu items for this guest.
|
| + extensions::MenuManager* menu_manager = extensions::MenuManager::Get(
|
| + Profile::FromBrowserContext(browser_context()));
|
| + menu_manager->RemoveAllContextItems(
|
| + extensions::MenuItem::ExtensionKey(extension_id(), view_instance_id()));
|
| +
|
| RemoveWebViewFromExtensionRendererState(web_contents);
|
| }
|
|
|
|
|