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

Unified Diff: chrome/browser/tab_contents/render_view_context_menu.h

Issue 178193005: Move render_view_context_menu.* related files out of tab_contents. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: context_menu->renderer_context_menu for disambiguation 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/tab_contents/render_view_context_menu.h
diff --git a/chrome/browser/tab_contents/render_view_context_menu.h b/chrome/browser/tab_contents/render_view_context_menu.h
deleted file mode 100644
index 732ac75b7e422c49bfe56320cd42a15fb1bb9b8b..0000000000000000000000000000000000000000
--- a/chrome/browser/tab_contents/render_view_context_menu.h
+++ /dev/null
@@ -1,300 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_TAB_CONTENTS_RENDER_VIEW_CONTEXT_MENU_H_
-#define CHROME_BROWSER_TAB_CONTENTS_RENDER_VIEW_CONTEXT_MENU_H_
-
-#include <map>
-#include <string>
-
-#include "base/memory/scoped_ptr.h"
-#include "base/observer_list.h"
-#include "base/strings/string16.h"
-#include "chrome/browser/custom_handlers/protocol_handler_registry.h"
-#include "chrome/browser/extensions/context_menu_matcher.h"
-#include "chrome/browser/extensions/menu_manager.h"
-#include "chrome/browser/tab_contents/render_view_context_menu_observer.h"
-#include "content/public/common/context_menu_params.h"
-#include "content/public/common/page_transition_types.h"
-#include "ui/base/models/simple_menu_model.h"
-#include "ui/base/window_open_disposition.h"
-
-class PrintPreviewContextMenuObserver;
-class Profile;
-class SpellingMenuObserver;
-class SpellCheckerSubMenuObserver;
-
-namespace content {
-class RenderFrameHost;
-class RenderViewHost;
-class WebContents;
-}
-
-namespace extensions {
-class Extension;
-class MenuItem;
-}
-
-namespace gfx {
-class Point;
-}
-
-namespace blink {
-struct WebMediaPlayerAction;
-struct WebPluginAction;
-}
-
-// An interface that controls a RenderViewContextMenu instance from observers.
-// This interface is designed mainly for controlling the instance while showing
-// so we can add a context-menu item that takes long time to create its text,
-// such as retrieving the item text from a server. The simplest usage is:
-// 1. Adding an item with temporary text;
-// 2. Posting a background task that creates the item text, and;
-// 3. Calling UpdateMenuItem() in the callback function.
-// The following snippet describes the simple usage that updates a context-menu
-// item with this interface.
-//
-// class MyTask : public net::URLFetcherDelegate {
-// public:
-// MyTask(RenderViewContextMenuProxy* proxy, int id)
-// : proxy_(proxy),
-// id_(id) {
-// }
-// virtual ~MyTask() {
-// }
-// virtual void OnURLFetchComplete(const net::URLFetcher* source,
-// const GURL& url,
-// const net::URLRequestStatus& status,
-// int response,
-// const net::ResponseCookies& cookies,
-// const std::string& data) {
-// bool enabled = response == 200;
-// const char* text = enabled ? "OK" : "ERROR";
-// proxy_->UpdateMenuItem(id_, enabled, base::ASCIIToUTF16(text));
-// }
-// void Start(const GURL* url, net::URLRequestContextGetter* context) {
-// fetcher_.reset(new URLFetcher(url, URLFetcher::GET, this));
-// fetcher_->SetRequestContext(context);
-// content::AssociateURLFetcherWithRenderView(
-// fetcher_.get(),
-// proxy_->GetRenderViewHost()->GetSiteInstance()->GetSite(),
-// proxy_->GetRenderViewHost()->GetProcess()->GetID(),
-// proxy_->GetRenderViewHost()->GetRoutingID());
-// fetcher_->Start();
-// }
-//
-// private:
-// URLFetcher fetcher_;
-// RenderViewContextMenuProxy* proxy_;
-// int id_;
-// };
-//
-// void RenderViewContextMenu::AppendEditableItems() {
-// // Add a menu item with temporary text shown while we create the final
-// // text.
-// menu_model_.AddItemWithStringId(IDC_MY_ITEM, IDC_MY_TEXT);
-//
-// // Start a task that creates the final text.
-// my_task_ = new MyTask(this, IDC_MY_ITEM);
-// my_task_->Start(...);
-// }
-//
-class RenderViewContextMenuProxy {
- public:
- // Add a menu item to a context menu.
- virtual void AddMenuItem(int command_id, const base::string16& title) = 0;
- virtual void AddCheckItem(int command_id, const base::string16& title) = 0;
- virtual void AddSeparator() = 0;
-
- // Add a submenu item to a context menu.
- virtual void AddSubMenu(int command_id,
- const base::string16& label,
- ui::MenuModel* model) = 0;
-
- // Update the status and text of the specified context-menu item.
- virtual void UpdateMenuItem(int command_id,
- bool enabled,
- bool hidden,
- const base::string16& title) = 0;
-
- // Retrieve the given associated objects with a context menu.
- virtual content::RenderViewHost* GetRenderViewHost() const = 0;
- virtual content::WebContents* GetWebContents() const = 0;
- virtual Profile* GetProfile() const = 0;
-};
-
-class RenderViewContextMenu : public ui::SimpleMenuModel::Delegate,
- public RenderViewContextMenuProxy {
- public:
- static const size_t kMaxSelectionTextLength;
-
- RenderViewContextMenu(content::RenderFrameHost* render_frame_host,
- const content::ContextMenuParams& params);
-
- virtual ~RenderViewContextMenu();
-
- // Initializes the context menu.
- void Init();
-
- // Programmatically closes the context menu.
- void Cancel();
-
- const ui::MenuModel& menu_model() const { return menu_model_; }
-
- // SimpleMenuModel::Delegate implementation.
- virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
- virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
- virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE;
- virtual void MenuWillShow(ui::SimpleMenuModel* source) OVERRIDE;
- virtual void MenuClosed(ui::SimpleMenuModel* source) OVERRIDE;
-
- // RenderViewContextMenuDelegate implementation.
- virtual void AddMenuItem(int command_id,
- const base::string16& title) OVERRIDE;
- virtual void AddCheckItem(int command_id,
- const base::string16& title) OVERRIDE;
- virtual void AddSeparator() OVERRIDE;
- virtual void AddSubMenu(int command_id,
- const base::string16& label,
- ui::MenuModel* model) OVERRIDE;
- virtual void UpdateMenuItem(int command_id,
- bool enabled,
- bool hidden,
- const base::string16& title) OVERRIDE;
- virtual content::RenderViewHost* GetRenderViewHost() const OVERRIDE;
- virtual content::WebContents* GetWebContents() const OVERRIDE;
- virtual Profile* GetProfile() const OVERRIDE;
-
- protected:
- void InitMenu();
-
- // Platform specific functions.
- virtual void PlatformInit() = 0;
- virtual void PlatformCancel() = 0;
- virtual bool GetAcceleratorForCommandId(
- int command_id,
- ui::Accelerator* accelerator) = 0;
- virtual void AppendPlatformEditableItems();
-
- content::ContextMenuParams params_;
- content::WebContents* source_web_contents_;
- // The RenderFrameHost's IDs.
- int render_process_id_;
- int render_frame_id_;
- Profile* profile_;
-
- ui::SimpleMenuModel menu_model_;
- extensions::ContextMenuMatcher extension_items_;
-
- private:
- friend class RenderViewContextMenuTest;
- friend class RenderViewContextMenuPrefsTest;
-
- static bool IsDevToolsURL(const GURL& url);
- static bool IsInternalResourcesURL(const GURL& url);
- static bool ExtensionContextAndPatternMatch(
- const content::ContextMenuParams& params,
- extensions::MenuItem::ContextList contexts,
- const extensions::URLPatternSet& target_url_patterns);
- static bool MenuItemMatchesParams(
- const content::ContextMenuParams& params,
- const extensions::MenuItem* item);
-
- // Gets the extension (if any) associated with the WebContents that we're in.
- const extensions::Extension* GetExtension() const;
- void AppendAppModeItems();
- void AppendPlatformAppItems();
- void AppendPopupExtensionItems();
- void AppendPanelItems();
- bool AppendCustomItems();
- void AppendDeveloperItems();
- void AppendLinkItems();
- void AppendImageItems();
- void AppendAudioItems();
- void AppendVideoItems();
- void AppendMediaItems();
- void AppendPluginItems();
- void AppendPageItems();
- void AppendFrameItems();
- void AppendCopyItem();
- void AppendPrintItem();
- void AppendEditableItems();
- void AppendSearchProvider();
- void AppendAllExtensionItems();
- void AppendSpellingSuggestionsSubMenu();
- void AppendSpellcheckOptionsSubMenu();
- void AppendSpeechInputOptionsSubMenu();
- void AppendProtocolHandlerSubMenu();
-
- // Opens the specified URL string in a new tab. The |frame_id| specifies the
- // frame in which the context menu was displayed, or 0 if the menu action is
- // independent of that frame (e.g. protocol handler settings).
- void OpenURL(const GURL& url, const GURL& referrer, int64 frame_id,
- WindowOpenDisposition disposition,
- content::PageTransition transition);
-
- // Copy to the clipboard an image located at a point in the RenderView
- void CopyImageAt(int x, int y);
-
- // Get an image located at a point in the RenderView for search.
- void GetImageThumbnailForSearch();
-
- // Launch the inspector targeting a point in the RenderView
- void Inspect(int x, int y);
-
- // Writes the specified text/url to the system clipboard
- void WriteURLToClipboard(const GURL& url);
-
- void MediaPlayerActionAt(const gfx::Point& location,
- const blink::WebMediaPlayerAction& action);
- void PluginActionAt(const gfx::Point& location,
- const blink::WebPluginAction& action);
-
- bool IsDevCommandEnabled(int id) const;
-
- // Returns a list of registered ProtocolHandlers that can handle the clicked
- // on URL.
- ProtocolHandlerRegistry::ProtocolHandlerList GetHandlersForLinkUrl();
-
- // Returns a (possibly truncated) version of the current selection text
- // suitable or putting in the title of a menu item.
- base::string16 PrintableSelectionText();
-
- // The destination URL to use if the user tries to search for or navigate to
- // a text selection.
- GURL selection_navigation_url_;
-
- ui::SimpleMenuModel speech_input_submenu_model_;
- ui::SimpleMenuModel protocol_handler_submenu_model_;
- ProtocolHandlerRegistry* protocol_handler_registry_;
-
- // An observer that handles spelling-menu items.
- scoped_ptr<SpellingMenuObserver> spelling_menu_observer_;
-
- // An observer that handles a 'spell-checker options' submenu.
- scoped_ptr<SpellCheckerSubMenuObserver> spellchecker_submenu_observer_;
-
-#if defined(ENABLE_FULL_PRINTING)
- // An observer that disables menu items when print preview is active.
- scoped_ptr<PrintPreviewContextMenuObserver> print_preview_menu_observer_;
-#endif
-
- // Our observers.
- mutable ObserverList<RenderViewContextMenuObserver> observers_;
-
- // Whether a command has been executed. Used to track whether menu observers
- // should be notified of menu closing without execution.
- bool command_executed_;
-
- // Whether or not the menu was triggered for a browser plugin guest.
- // Guests are rendered inside chrome apps, but have most of the actions
- // that a regular web page has.
- // Currently actions/items that are suppressed from guests are: searching,
- // printing, speech and instant.
- bool is_guest_;
-
- DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenu);
-};
-
-#endif // CHROME_BROWSER_TAB_CONTENTS_RENDER_VIEW_CONTEXT_MENU_H_

Powered by Google App Engine
This is Rietveld 408576698