summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-30 17:03:43 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-30 17:03:43 +0000
commitc6e27b9e28d46db4516fb38a9db1cecef19f5a94 (patch)
treed6ec9d9a2c409ae57ad96ac9079f39376f75bbbb /content
parent4d46aaaa5528cbcfd76e1c4c86f02f63bee8848b (diff)
downloadchromium_src-c6e27b9e28d46db4516fb38a9db1cecef19f5a94.zip
chromium_src-c6e27b9e28d46db4516fb38a9db1cecef19f5a94.tar.gz
chromium_src-c6e27b9e28d46db4516fb38a9db1cecef19f5a94.tar.bz2
Implement the new WebPermissionClient interface in Chrome code to get rid of all the awkward calls to ContentRendererClient.
Review URL: http://codereview.chromium.org/6905117 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83679 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/renderer_host/database_message_filter.cc13
-rw-r--r--content/browser/renderer_host/database_message_filter.h6
-rw-r--r--content/renderer/render_process_observer.cc7
-rw-r--r--content/renderer/render_process_observer.h5
-rw-r--r--content/renderer/render_thread.cc22
-rw-r--r--content/renderer/render_thread.h10
-rw-r--r--content/renderer/render_view.cc74
-rw-r--r--content/renderer/render_view.h13
-rw-r--r--content/renderer/render_view_observer.cc15
-rw-r--r--content/renderer/render_view_observer.h6
10 files changed, 12 insertions, 159 deletions
diff --git a/content/browser/renderer_host/database_message_filter.cc b/content/browser/renderer_host/database_message_filter.cc
index 31f7795..edb3839 100644
--- a/content/browser/renderer_host/database_message_filter.cc
+++ b/content/browser/renderer_host/database_message_filter.cc
@@ -97,7 +97,7 @@ bool DatabaseMessageFilter::OnMessageReceived(
IPC_MESSAGE_HANDLER(DatabaseHostMsg_Opened, OnDatabaseOpened)
IPC_MESSAGE_HANDLER(DatabaseHostMsg_Modified, OnDatabaseModified)
IPC_MESSAGE_HANDLER(DatabaseHostMsg_Closed, OnDatabaseClosed)
- IPC_MESSAGE_HANDLER_DELAY_REPLY(DatabaseHostMsg_Allow, OnAllowDatabase)
+ IPC_MESSAGE_HANDLER(DatabaseHostMsg_Allow, OnAllowDatabase)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP_EX()
return handled;
@@ -284,22 +284,15 @@ void DatabaseMessageFilter::OnAllowDatabase(const std::string& origin_url,
const string16& name,
const string16& display_name,
unsigned long estimated_size,
- IPC::Message* reply_msg) {
+ bool* result) {
GURL url = GURL(origin_url);
ContentSetting content_setting =
host_content_settings_map_->GetContentSetting(
url, CONTENT_SETTINGS_TYPE_COOKIES, "");
- AllowDatabaseResponse(reply_msg, content_setting);
-}
-
-void DatabaseMessageFilter::AllowDatabaseResponse(
- IPC::Message* reply_msg, ContentSetting content_setting) {
DCHECK((content_setting == CONTENT_SETTING_ALLOW) ||
(content_setting == CONTENT_SETTING_BLOCK) ||
(content_setting == CONTENT_SETTING_SESSION_ONLY));
- DatabaseHostMsg_Allow::WriteReplyParams(
- reply_msg, content_setting != CONTENT_SETTING_BLOCK);
- Send(reply_msg);
+ *result = content_setting != CONTENT_SETTING_BLOCK;;
}
void DatabaseMessageFilter::OnDatabaseSizeChanged(
diff --git a/content/browser/renderer_host/database_message_filter.h b/content/browser/renderer_host/database_message_filter.h
index e5ab22e..59731cf 100644
--- a/content/browser/renderer_host/database_message_filter.h
+++ b/content/browser/renderer_host/database_message_filter.h
@@ -67,7 +67,7 @@ class DatabaseMessageFilter
const string16& name,
const string16& display_name,
unsigned long estimated_size,
- IPC::Message* reply_msg);
+ bool* result);
// DatabaseTracker::Observer callbacks (file thread)
virtual void OnDatabaseSizeChanged(const string16& origin_identifier,
@@ -82,10 +82,6 @@ class DatabaseMessageFilter
IPC::Message* reply_msg,
int reschedule_count);
- // CookiePromptModalDialog response handler (io thread)
- void AllowDatabaseResponse(IPC::Message* reply_msg,
- ContentSetting content_setting);
-
// The database tracker for the current profile.
scoped_refptr<webkit_database::DatabaseTracker> db_tracker_;
diff --git a/content/renderer/render_process_observer.cc b/content/renderer/render_process_observer.cc
index 193c6c6..ac28339 100644
--- a/content/renderer/render_process_observer.cc
+++ b/content/renderer/render_process_observer.cc
@@ -27,12 +27,5 @@ void RenderProcessObserver::OnRenderProcessShutdown() {
void RenderProcessObserver::WebKitInitialized() {
}
-bool RenderProcessObserver::AllowScriptExtension(
- const std::string& v8_extension_name,
- const GURL& url,
- int extension_group) {
- return false;
-}
-
void RenderProcessObserver::IdleNotification() {
}
diff --git a/content/renderer/render_process_observer.h b/content/renderer/render_process_observer.h
index a7a63a4..2850170 100644
--- a/content/renderer/render_process_observer.h
+++ b/content/renderer/render_process_observer.h
@@ -30,11 +30,6 @@ class RenderProcessObserver : public IPC::Message::Sender {
// Called right after the WebKit API is initialized.
virtual void WebKitInitialized();
- // See WebViewClient::allowScriptExtension
- virtual bool AllowScriptExtension(const std::string& v8_extension_name,
- const GURL& url,
- int extension_group);
-
virtual void IdleNotification();
private:
diff --git a/content/renderer/render_thread.cc b/content/renderer/render_thread.cc
index c06ff32..9471a99 100644
--- a/content/renderer/render_thread.cc
+++ b/content/renderer/render_thread.cc
@@ -674,24 +674,12 @@ RenderThread::GetFileThreadMessageLoopProxy() {
return file_thread_->message_loop_proxy();
}
-bool RenderThread::AllowScriptExtension(const std::string& v8_extension_name,
- const GURL& url,
- int extension_group) {
- // If we don't know about it, it was added by WebCore, so we should allow it.
- if (v8_extensions_.find(v8_extension_name) == v8_extensions_.end())
- return true;
-
- ObserverListBase<RenderProcessObserver>::Iterator it(observers_);
- RenderProcessObserver* observer;
- while ((observer = it.GetNext()) != NULL) {
- if (observer->AllowScriptExtension(v8_extension_name, url, extension_group))
- return true;
- }
-
- return false;
-}
-
void RenderThread::RegisterExtension(v8::Extension* extension) {
WebScriptController::registerExtension(extension);
v8_extensions_.insert(extension->name());
}
+
+bool RenderThread::IsRegisteredExtension(
+ const std::string& v8_extension_name) const {
+ return v8_extensions_.find(v8_extension_name) != v8_extensions_.end();
+}
diff --git a/content/renderer/render_thread.h b/content/renderer/render_thread.h
index 704e727..c1a6570 100644
--- a/content/renderer/render_thread.h
+++ b/content/renderer/render_thread.h
@@ -213,13 +213,6 @@ class RenderThread : public RenderThreadBase,
// on the renderer's main thread.
scoped_refptr<base::MessageLoopProxy> GetFileThreadMessageLoopProxy();
- // This function is called for every registered V8 extension each time a new
- // script context is created. Returns true if the given V8 extension is
- // allowed to run on the given URL and extension group.
- bool AllowScriptExtension(const std::string& v8_extension_name,
- const GURL& url,
- int extension_group);
-
// Hack for http://crbug.com/71735.
// TODO(jamesr): remove once http://crbug.com/72007 is fixed.
RendererWebKitClientImpl* GetWebKitClientImpl() const {
@@ -235,6 +228,9 @@ class RenderThread : public RenderThreadBase,
// Registers the given V8 extension with WebKit.
void RegisterExtension(v8::Extension* extension);
+ // Returns true iff the extension is registered.
+ bool IsRegisteredExtension(const std::string& v8_extension_name) const;
+
private:
virtual bool OnControlMessageReceived(const IPC::Message& msg);
diff --git a/content/renderer/render_view.cc b/content/renderer/render_view.cc
index 4dbc188..19bbaac 100644
--- a/content/renderer/render_view.cc
+++ b/content/renderer/render_view.cc
@@ -2642,63 +2642,6 @@ void RenderView::didRunInsecureContent(
target));
}
-bool RenderView::allowImages(WebFrame* frame, bool enabled_per_settings) {
- ObserverListBase<RenderViewObserver>::Iterator it(observers_);
- RenderViewObserver* observer;
- while ((observer = it.GetNext()) != NULL)
- if (!observer->AllowImages(frame, enabled_per_settings))
- return false;
-
- return true;
-}
-
-bool RenderView::allowPlugins(WebFrame* frame, bool enabled_per_settings) {
- ObserverListBase<RenderViewObserver>::Iterator it(observers_);
- RenderViewObserver* observer;
- while ((observer = it.GetNext()) != NULL)
- if (!observer->AllowPlugins(frame, enabled_per_settings))
- return false;
-
- return true;
-}
-
-bool RenderView::allowScript(WebFrame* frame, bool enabled_per_settings) {
- ObserverListBase<RenderViewObserver>::Iterator it(observers_);
- RenderViewObserver* observer;
- while ((observer = it.GetNext()) != NULL)
- if (!observer->AllowScript(frame, enabled_per_settings))
- return false;
-
- return true;
-}
-
-bool RenderView::allowDatabase(
- WebFrame* frame, const WebString& name, const WebString& display_name,
- unsigned long estimated_size) {
- WebSecurityOrigin origin = frame->securityOrigin();
- if (origin.isEmpty())
- return false; // Uninitialized document?
-
- bool result;
- if (!Send(new DatabaseHostMsg_Allow(routing_id_,
- origin.toString().utf8(), name, display_name, estimated_size, &result)))
- return false;
- Send(new ViewHostMsg_WebDatabaseAccessed(routing_id_,
- GURL(origin.toString().utf8()),
- name,
- display_name,
- estimated_size,
- !result));
- return result;
-}
-void RenderView::didNotAllowScript(WebKit::WebFrame* frame) {
- FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidNotAllowScript(frame));
-}
-
-void RenderView::didNotAllowPlugins(WebKit::WebFrame* frame) {
- FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidNotAllowPlugins(frame));
-}
-
void RenderView::didExhaustMemoryAvailableForScript(WebFrame* frame) {
Send(new ViewHostMsg_JSOutOfMemory(routing_id_));
}
@@ -2716,23 +2659,6 @@ void RenderView::didCreateIsolatedScriptContext(WebFrame* frame) {
frame);
}
-bool RenderView::allowScriptExtension(WebFrame* frame,
- const WebString& extension_name,
- int extension_group) {
- // NULL in unit tests.
- if (!RenderThread::current())
- return true;
-
- // Note: we prefer the provisional URL here instead of the document URL
- // because we might be currently loading an URL into a blank page.
- // See http://code.google.com/p/chromium/issues/detail?id=10924
- WebDataSource* ds = frame->provisionalDataSource();
- if (!ds)
- ds = frame->dataSource();
- return RenderThread::current()->AllowScriptExtension(
- extension_name.utf8(), ds->request().url(), extension_group);
-}
-
void RenderView::logCrossFramePropertyAccess(WebFrame* frame,
WebFrame* target,
bool cross_origin,
diff --git a/content/renderer/render_view.h b/content/renderer/render_view.h
index b99329c..4cdf0e2 100644
--- a/content/renderer/render_view.h
+++ b/content/renderer/render_view.h
@@ -524,23 +524,10 @@ class RenderView : public RenderWidget,
WebKit::WebFrame* frame,
const WebKit::WebSecurityOrigin& origin,
const WebKit::WebURL& target);
-
- virtual bool allowImages(WebKit::WebFrame* frame, bool enabled_per_settings);
- virtual bool allowPlugins(WebKit::WebFrame* frame, bool enabled_per_settings);
- virtual bool allowScript(WebKit::WebFrame* frame, bool enabled_per_settings);
- virtual bool allowDatabase(WebKit::WebFrame* frame,
- const WebKit::WebString& name,
- const WebKit::WebString& display_name,
- unsigned long estimated_size);
- virtual void didNotAllowScript(WebKit::WebFrame* frame);
- virtual void didNotAllowPlugins(WebKit::WebFrame* frame);
virtual void didExhaustMemoryAvailableForScript(WebKit::WebFrame* frame);
virtual void didCreateScriptContext(WebKit::WebFrame* frame);
virtual void didDestroyScriptContext(WebKit::WebFrame* frame);
virtual void didCreateIsolatedScriptContext(WebKit::WebFrame* frame);
- virtual bool allowScriptExtension(WebKit::WebFrame*,
- const WebKit::WebString& extension_name,
- int extensionGroup);
virtual void logCrossFramePropertyAccess(
WebKit::WebFrame* frame,
WebKit::WebFrame* target,
diff --git a/content/renderer/render_view_observer.cc b/content/renderer/render_view_observer.cc
index e74c503..b733caf 100644
--- a/content/renderer/render_view_observer.cc
+++ b/content/renderer/render_view_observer.cc
@@ -36,18 +36,3 @@ bool RenderViewObserver::Send(IPC::Message* message) {
delete message;
return false;
}
-
-bool RenderViewObserver::AllowImages(WebFrame* frame,
- bool enabled_per_settings) {
- return true;
-}
-
-bool RenderViewObserver::AllowPlugins(WebFrame* frame,
- bool enabled_per_settings) {
- return true;
-}
-
-bool RenderViewObserver::AllowScript(WebFrame* frame,
- bool enabled_per_settings) {
- return true;
-}
diff --git a/content/renderer/render_view_observer.h b/content/renderer/render_view_observer.h
index 864c4fd..3fb5c7b 100644
--- a/content/renderer/render_view_observer.h
+++ b/content/renderer/render_view_observer.h
@@ -67,12 +67,6 @@ class RenderViewObserver : public IPC::Channel::Listener,
const WebKit::WebString& property_name,
unsigned long long event_id) {}
virtual void FocusedNodeChanged(const WebKit::WebNode& node) {}
- // If any observer returns false, then the request will be denied.
- virtual bool AllowImages(WebKit::WebFrame* frame, bool enabled_per_settings);
- virtual bool AllowPlugins(WebKit::WebFrame* frame, bool enabled_per_settings);
- virtual bool AllowScript(WebKit::WebFrame* frame, bool enabled_per_settings);
- virtual void DidNotAllowPlugins(WebKit::WebFrame* frame) {}
- virtual void DidNotAllowScript(WebKit::WebFrame* frame) {}
// These match the RenderView methods.
virtual void DidHandleMouseEvent(const WebKit::WebMouseEvent& event) {}