summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-22 22:31:42 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-22 22:31:42 +0000
commite6c798140918c7f2dac77528fb13ed94b14979f4 (patch)
treeccb440c0ffc62c526e5f1cc62932f4af8ab66f1e /chrome/browser
parent03b1575eb9349ad2c7563ea0caef88da0906537e (diff)
downloadchromium_src-e6c798140918c7f2dac77528fb13ed94b14979f4.zip
chromium_src-e6c798140918c7f2dac77528fb13ed94b14979f4.tar.gz
chromium_src-e6c798140918c7f2dac77528fb13ed94b14979f4.tar.bz2
Always enable copy-link-address in context menu.
Added a new field into ContextMenuParam only for this purpose. The new field won't be validated in frontend processes. In this way, even if renderer processes are going to mad, the frontend would be OK if the frontend uses this new field only for copying into the clipboard. Fix checked in for Shinichiro Hamaji Original code review: http://codereview.chromium.org/91002 BUG=2725 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14256 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/renderer_host/render_view_host.cc2
-rw-r--r--chrome/browser/tab_contents/render_view_context_menu.cc6
2 files changed, 6 insertions, 2 deletions
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc
index e50c032..aa1b78c 100644
--- a/chrome/browser/renderer_host/render_view_host.cc
+++ b/chrome/browser/renderer_host/render_view_host.cc
@@ -1048,6 +1048,8 @@ void RenderViewHost::OnMsgContextMenu(const ContextMenuParams& params) {
const int renderer_id = process()->pid();
RendererSecurityPolicy* policy = RendererSecurityPolicy::GetInstance();
+ // We don't validate |unfiltered_link_url| so that this field can be used
+ // when users want to copy the original link URL.
FilterURL(policy, renderer_id, &validated_params.link_url);
FilterURL(policy, renderer_id, &validated_params.image_url);
FilterURL(policy, renderer_id, &validated_params.page_url);
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc
index 698a65a..c75653c 100644
--- a/chrome/browser/tab_contents/render_view_context_menu.cc
+++ b/chrome/browser/tab_contents/render_view_context_menu.cc
@@ -220,9 +220,11 @@ bool RenderViewContextMenu::IsItemCommandEnabled(int id) const {
case IDS_CONTENT_CONTEXT_OPENLINKNEWTAB:
case IDS_CONTENT_CONTEXT_OPENLINKNEWWINDOW:
- case IDS_CONTENT_CONTEXT_COPYLINKLOCATION:
return params_.link_url.is_valid();
+ case IDS_CONTENT_CONTEXT_COPYLINKLOCATION:
+ return params_.unfiltered_link_url.is_valid();
+
case IDS_CONTENT_CONTEXT_SAVELINKAS:
return params_.link_url.is_valid() &&
URLRequest::IsHandledURL(params_.link_url);
@@ -377,7 +379,7 @@ void RenderViewContextMenu::ExecuteItemCommand(int id) {
}
case IDS_CONTENT_CONTEXT_COPYLINKLOCATION:
- WriteURLToClipboard(params_.link_url);
+ WriteURLToClipboard(params_.unfiltered_link_url);
break;
case IDS_CONTENT_CONTEXT_COPYIMAGELOCATION: