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

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

Issue 12389083: cros: Add app mode restrictions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: for comments in #3 Created 7 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.cc
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc
index ba0b6bb639393b5e3d5bcfb6fd8cc0acde2859e1..8cb23b524a7e5fe895810a480f0c385e9981ae33 100644
--- a/chrome/browser/tab_contents/render_view_context_menu.cc
+++ b/chrome/browser/tab_contents/render_view_context_menu.cc
@@ -18,6 +18,7 @@
#include "base/time.h"
#include "base/utf_string_conversions.h"
#include "chrome/app/chrome_command_ids.h"
+#include "chrome/browser/app_mode/app_mode_utils.h"
#include "chrome/browser/autocomplete/autocomplete_classifier.h"
#include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
#include "chrome/browser/autocomplete/autocomplete_match.h"
@@ -231,9 +232,9 @@ void DevToolsInspectElementAt(RenderViewHost* rvh, int x, int y) {
}
// Helper function to escape "&" as "&&".
-void EscapeAmpersands(string16& text) {
+void EscapeAmpersands(string16* text) {
const char16 ampersand[] = {'&', 0};
- ReplaceChars(text, ampersand, ASCIIToUTF16("&&"), &text);
+ ReplaceChars(*text, ampersand, ASCIIToUTF16("&&"), text);
}
} // namespace
@@ -298,9 +299,9 @@ bool RenderViewContextMenu::ExtensionContextAndPatternMatch(
const content::ContextMenuParams& params,
MenuItem::ContextList contexts,
const extensions::URLPatternSet& target_url_patterns) {
- bool has_link = !params.link_url.is_empty();
- bool has_selection = !params.selection_text.empty();
- bool in_frame = !params.frame_url.is_empty();
+ const bool has_link = !params.link_url.is_empty();
+ const bool has_selection = !params.selection_text.empty();
+ const bool in_frame = !params.frame_url.is_empty();
if (contexts.Contains(MenuItem::ALL) ||
(has_selection && contexts.Contains(MenuItem::SELECTION)) ||
@@ -395,7 +396,7 @@ void RenderViewContextMenu::AppendAllExtensionItems() {
for (i = sorted_ids.begin();
i != sorted_ids.end(); ++i) {
string16 printable_selection_text = PrintableSelectionText();
- EscapeAmpersands(printable_selection_text);
+ EscapeAmpersands(&printable_selection_text);
extension_items_.AppendExtensionItems(i->second, printable_selection_text,
&index);
@@ -406,6 +407,11 @@ void RenderViewContextMenu::AppendAllExtensionItems() {
}
void RenderViewContextMenu::InitMenu() {
+ if (chrome::IsRunningInForcedAppMode()) {
+ AppendAppModeItems();
+ return;
+ }
+
chrome::ViewType view_type = chrome::GetViewType(source_web_contents_);
if (view_type == chrome::VIEW_TYPE_APP_SHELL) {
AppendPlatformAppItems();
@@ -418,8 +424,8 @@ void RenderViewContextMenu::InitMenu() {
return;
}
- bool has_link = !params_.unfiltered_link_url.is_empty();
- bool has_selection = !params_.selection_text.empty();
+ const bool has_link = !params_.unfiltered_link_url.is_empty();
+ const bool has_selection = !params_.selection_text.empty();
if (AppendCustomItems()) {
// If there's a selection, don't early return when there are custom items,
@@ -519,6 +525,15 @@ const Extension* RenderViewContextMenu::GetExtension() const {
source_web_contents_->GetRenderViewHost());
}
+void RenderViewContextMenu::AppendAppModeItems() {
+ const bool has_selection = !params_.selection_text.empty();
+
+ if (params_.is_editable)
+ AppendEditableItems();
+ else if (has_selection)
+ AppendCopyItem();
+}
+
void RenderViewContextMenu::AppendPlatformAppItems() {
const Extension* platform_app = GetExtension();
@@ -528,7 +543,7 @@ void RenderViewContextMenu::AppendPlatformAppItems() {
DCHECK(platform_app->is_platform_app());
- bool has_selection = !params_.selection_text.empty();
+ const bool has_selection = !params_.selection_text.empty();
// Add undo/redo, cut/copy/paste etc for text fields.
if (params_.is_editable)
@@ -558,7 +573,7 @@ void RenderViewContextMenu::AppendPlatformAppItems() {
}
void RenderViewContextMenu::AppendPopupExtensionItems() {
- bool has_selection = !params_.selection_text.empty();
+ const bool has_selection = !params_.selection_text.empty();
if (params_.is_editable)
AppendEditableItems();
@@ -832,7 +847,7 @@ void RenderViewContextMenu::AppendSearchProvider() {
return;
string16 printable_selection_text = PrintableSelectionText();
- EscapeAmpersands(printable_selection_text);
+ EscapeAmpersands(&printable_selection_text);
if (AutocompleteMatch::IsSearchType(match.type)) {
const TemplateURL* const default_provider =
@@ -858,7 +873,10 @@ void RenderViewContextMenu::AppendSearchProvider() {
}
void RenderViewContextMenu::AppendEditableItems() {
- AppendSpellingSuggestionsSubMenu();
+ const bool use_spellcheck_and_search = !chrome::IsRunningInForcedAppMode();
+
+ if (use_spellcheck_and_search)
+ AppendSpellingSuggestionsSubMenu();
menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_UNDO,
IDS_CONTENT_CONTEXT_UNDO);
@@ -877,13 +895,14 @@ void RenderViewContextMenu::AppendEditableItems() {
IDS_CONTENT_CONTEXT_DELETE);
menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
- if (!params_.keyword_url.is_empty()) {
+ if (use_spellcheck_and_search && !params_.keyword_url.is_empty()) {
menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_ADDSEARCHENGINE,
IDS_CONTENT_CONTEXT_ADDSEARCHENGINE);
menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
}
- AppendSpellcheckOptionsSubMenu();
+ if (use_spellcheck_and_search)
+ AppendSpellcheckOptionsSubMenu();
AppendSpeechInputOptionsSubMenu();
AppendPlatformEditableItems();
« no previous file with comments | « chrome/browser/tab_contents/render_view_context_menu.h ('k') | chrome/browser/ui/ash/chrome_shell_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698