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

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 @tott Created 6 years, 9 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 029fe542483258f17afefa56fde3b3db934ce660..b395d5f5030746e8ee88a63d7ac49b1f65bb7367 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) {
@@ -676,6 +686,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(
+ embedder_extension_id(), view_instance_id()));
+
RemoveWebViewFromExtensionRendererState(web_contents);
}
« no previous file with comments | « chrome/browser/guestview/webview/webview_guest.h ('k') | chrome/browser/renderer_context_menu/render_view_context_menu.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698