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

Unified Diff: chrome/browser/guestview/webview/webview_guest.cc

Issue 186213003: <webview>: Context menu API implementation CL. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Put ExtensionKey into MenuItem::Id. Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
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);
}

Powered by Google App Engine
This is Rietveld 408576698