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

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: Sync and address comments. 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..d4228911acc61b76852c31f74087b0788f921573 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) {
+ GuestView* guest = GuestView::FromWebContents(contents);
Fady Samuel 2014/03/04 16:36:00 A small simplification: WebViewGuest* guest = Fro
lazyboy 2014/03/04 20:50:24 Done, thanks.
+ if (!guest || !guest->AsWebView())
+ 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->RemoveAllWebviewContextItems(extension_id(),
+ view_instance_id());
+
RemoveWebViewFromExtensionRendererState(web_contents);
}

Powered by Google App Engine
This is Rietveld 408576698