diff options
author | jnd@chromium.org <jnd@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-23 23:00:37 +0000 |
---|---|---|
committer | jnd@chromium.org <jnd@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-23 23:00:37 +0000 |
commit | 6462f8111b3626878c14f641f769b24607eaf868 (patch) | |
tree | 1fb390ed85f63984bcbea2dec9d21f21a8bea7a9 | |
parent | ada8f5db432bbf123f9bfb45a25c640dd7b0b9b8 (diff) | |
download | chromium_src-6462f8111b3626878c14f641f769b24607eaf868.zip chromium_src-6462f8111b3626878c14f641f769b24607eaf868.tar.gz chromium_src-6462f8111b3626878c14f641f769b24607eaf868.tar.bz2 |
Don't show the search-by-image menu item when the image does not have contents.
BUG=272076
TEST=None
Review URL: https://chromiumcodereview.appspot.com/23200006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219376 0039d316-1c4b-4281-b951-d872f2087c98
7 files changed, 13 insertions, 9 deletions
diff --git a/chrome/browser/renderer_host/chrome_render_view_host_observer.cc b/chrome/browser/renderer_host/chrome_render_view_host_observer.cc index e5e96e5..cfebd23 100644 --- a/chrome/browser/renderer_host/chrome_render_view_host_observer.cc +++ b/chrome/browser/renderer_host/chrome_render_view_host_observer.cc @@ -198,6 +198,8 @@ void ChromeRenderViewHostObserver::OnFocusedNodeTouched(bool editable) { // request based on the received thumbnail and opens the request in a new tab. void ChromeRenderViewHostObserver::OnRequestThumbnailForContextNodeACK( const SkBitmap& bitmap) { + if (bitmap.isNull()) + return; WebContents* web_contents = WebContents::FromRenderViewHost(render_view_host()); const TemplateURL* const default_provider = diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc index 46118e2..ab3b312 100644 --- a/chrome/browser/tab_contents/render_view_context_menu.cc +++ b/chrome/browser/tab_contents/render_view_context_menu.cc @@ -865,7 +865,8 @@ void RenderViewContextMenu::AppendImageItems() { const TemplateURL* const default_provider = TemplateURLServiceFactory::GetForProfile(profile_)-> GetDefaultSearchProvider(); - if (default_provider && !default_provider->image_url().empty() && + if (params_.has_image_contents && default_provider && + !default_provider->image_url().empty() && default_provider->image_url_ref().IsValid()) { menu_model_.AddItem( IDC_CONTENT_CONTEXT_SEARCHWEBFORIMAGE, @@ -1288,7 +1289,7 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const { (params_.src_url.scheme() != chrome::kChromeUIScheme); case IDC_CONTENT_CONTEXT_COPYIMAGE: - return !params_.is_image_blocked; + return params_.has_image_contents; // Media control commands should all be disabled if the player is in an // error state. diff --git a/chrome/browser/translate/translate_manager_browsertest.cc b/chrome/browser/translate/translate_manager_browsertest.cc index f10bb02..c7a9b3f 100644 --- a/chrome/browser/translate/translate_manager_browsertest.cc +++ b/chrome/browser/translate/translate_manager_browsertest.cc @@ -334,7 +334,7 @@ class TestRenderViewContextMenu : public RenderViewContextMenu { params.media_type = WebKit::WebContextMenuData::MediaTypeNone; params.x = 0; params.y = 0; - params.is_image_blocked = false; + params.has_image_contents = true; params.media_flags = 0; params.spellcheck_enabled = false; params.is_editable = false; diff --git a/content/common/view_messages.h b/content/common/view_messages.h index 0d5f0df..362320b 100644 --- a/content/common/view_messages.h +++ b/content/common/view_messages.h @@ -167,7 +167,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::ContextMenuParams) IPC_STRUCT_TRAITS_MEMBER(link_text) IPC_STRUCT_TRAITS_MEMBER(unfiltered_link_url) IPC_STRUCT_TRAITS_MEMBER(src_url) - IPC_STRUCT_TRAITS_MEMBER(is_image_blocked) + IPC_STRUCT_TRAITS_MEMBER(has_image_contents) IPC_STRUCT_TRAITS_MEMBER(page_url) IPC_STRUCT_TRAITS_MEMBER(keyword_url) IPC_STRUCT_TRAITS_MEMBER(frame_url) diff --git a/content/public/common/context_menu_params.cc b/content/public/common/context_menu_params.cc index 176a429..5ec5a1f 100644 --- a/content/public/common/context_menu_params.cc +++ b/content/public/common/context_menu_params.cc @@ -18,7 +18,7 @@ ContextMenuParams::ContextMenuParams() : media_type(WebKit::WebContextMenuData::MediaTypeNone), x(0), y(0), - is_image_blocked(false), + has_image_contents(true), frame_id(0), media_flags(0), misspelling_hash(0), diff --git a/content/public/common/context_menu_params.h b/content/public/common/context_menu_params.h index f58e9de..053d5ad 100644 --- a/content/public/common/context_menu_params.h +++ b/content/public/common/context_menu_params.h @@ -5,6 +5,7 @@ #ifndef CONTENT_PUBLIC_COMMON_CONTEXT_MENU_PARAMS_H_ #define CONTENT_PUBLIC_COMMON_CONTEXT_MENU_PARAMS_H_ +#include <string> #include <vector> #include "base/basictypes.h" @@ -72,8 +73,9 @@ struct CONTENT_EXPORT ContextMenuParams { // video. GURL src_url; - // This is true if the context menu was invoked on a blocked image. - bool is_image_blocked; + // This is true if the context menu was invoked on an image which has + // non-empty contents. + bool has_image_contents; // This is the URL of the top level page that the context menu was invoked // on. @@ -154,7 +156,6 @@ struct CONTENT_EXPORT ContextMenuParams { gfx::Point selection_start; gfx::Point selection_end; #endif - }; } // namespace content diff --git a/content/renderer/context_menu_params_builder.cc b/content/renderer/context_menu_params_builder.cc index 8459fa2..e8cd078 100644 --- a/content/renderer/context_menu_params_builder.cc +++ b/content/renderer/context_menu_params_builder.cc @@ -24,7 +24,7 @@ ContextMenuParams ContextMenuParamsBuilder::Build( params.link_url = data.linkURL; params.unfiltered_link_url = data.linkURL; params.src_url = data.srcURL; - params.is_image_blocked = data.isImageBlocked; + params.has_image_contents = data.hasImageContents; params.page_url = data.pageURL; params.keyword_url = data.keywordURL; params.frame_url = data.frameURL; |