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

Unified Diff: chrome/browser/renderer_host/chrome_render_message_filter.cc

Issue 6480106: Add IPCs to check web copy/cut/paste for extensions with the appropriate permission bit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome
Patch Set: . Created 9 years, 8 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
« no previous file with comments | « chrome/browser/renderer_host/chrome_render_message_filter.h ('k') | chrome/common/extensions/extension.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/renderer_host/chrome_render_message_filter.cc
diff --git a/chrome/browser/renderer_host/chrome_render_message_filter.cc b/chrome/browser/renderer_host/chrome_render_message_filter.cc
index 6a90556fc34ee3baa8a7dd649b4216ce13fe2525..2dec989ffd17702421a001114053538d8031fd2d 100644
--- a/chrome/browser/renderer_host/chrome_render_message_filter.cc
+++ b/chrome/browser/renderer_host/chrome_render_message_filter.cc
@@ -24,6 +24,8 @@
#include "chrome/common/render_messages.h"
#include "content/browser/renderer_host/render_process_host.h"
#include "content/browser/renderer_host/resource_dispatcher_host.h"
+#include "content/common/url_constants.h"
+#include "googleurl/src/gurl.h"
#if defined(USE_TCMALLOC)
#include "chrome/browser/browser_about_handler.h"
@@ -74,6 +76,10 @@ bool ChromeRenderMessageFilter::OnMessageReceived(const IPC::Message& message,
IPC_MESSAGE_HANDLER(ViewHostMsg_GetPluginPolicies,
OnGetPluginPolicies)
IPC_MESSAGE_HANDLER(ViewHostMsg_AllowDatabase, OnAllowDatabase)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_CanTriggerClipboardRead,
+ OnCanTriggerClipboardRead)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_CanTriggerClipboardWrite,
+ OnCanTriggerClipboardWrite)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
@@ -312,3 +318,22 @@ void ChromeRenderMessageFilter::OnAllowDatabase(const std::string& origin_url,
(content_setting == CONTENT_SETTING_SESSION_ONLY));
*result = content_setting != CONTENT_SETTING_BLOCK;
}
+
+void ChromeRenderMessageFilter::OnCanTriggerClipboardRead(const GURL& url,
+ bool* allowed) {
+ ChromeURLRequestContext* context = static_cast<ChromeURLRequestContext*>(
+ request_context_->GetURLRequestContext());
+ *allowed = context->extension_info_map()->CheckURLAccessToExtensionPermission(
+ url, Extension::kClipboardReadPermission);
+}
+
+void ChromeRenderMessageFilter::OnCanTriggerClipboardWrite(const GURL& url,
+ bool* allowed) {
+ ChromeURLRequestContext* context = static_cast<ChromeURLRequestContext*>(
+ request_context_->GetURLRequestContext());
+ // Since all extensions could historically write to the clipboard, preserve it
+ // for compatibility.
+ *allowed = url.SchemeIs(chrome::kExtensionScheme) ||
+ context->extension_info_map()->CheckURLAccessToExtensionPermission(
+ url, Extension::kClipboardWritePermission);
+}
« no previous file with comments | « chrome/browser/renderer_host/chrome_render_message_filter.h ('k') | chrome/common/extensions/extension.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698