diff options
7 files changed, 12 insertions, 9 deletions
diff --git a/chrome/browser/extensions/extension_storage_apitest.cc b/chrome/browser/extensions/extension_storage_apitest.cc index 849b78b..b75cc0e 100644 --- a/chrome/browser/extensions/extension_storage_apitest.cc +++ b/chrome/browser/extensions/extension_storage_apitest.cc @@ -4,7 +4,6 @@ #include "chrome/browser/extensions/extension_apitest.h" -// Started failing with r29947. WebKit merge 49961:49992. -IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_Storage) { +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, Storage) { ASSERT_TRUE(RunExtensionTest("storage")) << message_; } diff --git a/chrome/browser/renderer_host/browser_render_process_host.cc b/chrome/browser/renderer_host/browser_render_process_host.cc index 7831ab5..fa44f14 100644 --- a/chrome/browser/renderer_host/browser_render_process_host.cc +++ b/chrome/browser/renderer_host/browser_render_process_host.cc @@ -243,7 +243,7 @@ BrowserRenderProcessHost::~BrowserRenderProcessHost() { NotificationService::NoDetails()); } -bool BrowserRenderProcessHost::Init() { +bool BrowserRenderProcessHost::Init(bool is_extensions_process) { // calling Init() more than once does nothing, this makes it more convenient // for the view host which may not be sure in some cases if (channel_.get()) @@ -290,6 +290,8 @@ bool BrowserRenderProcessHost::Init() { CommandLine cmd_line(renderer_path); cmd_line.AppendSwitchWithValue(switches::kProcessChannelID, ASCIIToWide(channel_id)); + if (is_extensions_process) + cmd_line.AppendSwitch(switches::kEnableDatabases); bool has_cmd_prefix; AppendRendererCommandLine(&cmd_line, &has_cmd_prefix); diff --git a/chrome/browser/renderer_host/browser_render_process_host.h b/chrome/browser/renderer_host/browser_render_process_host.h index b7c6803..8005e2c 100644 --- a/chrome/browser/renderer_host/browser_render_process_host.h +++ b/chrome/browser/renderer_host/browser_render_process_host.h @@ -54,7 +54,7 @@ class BrowserRenderProcessHost : public RenderProcessHost, ~BrowserRenderProcessHost(); // RenderProcessHost implementation (public portion). - virtual bool Init(); + virtual bool Init(bool is_extensions_process); virtual int GetNextRoutingID(); virtual void CancelResourceRequests(int render_widget_id); virtual void CrossSiteClosePageACK(const ViewMsg_ClosePage_Params& params); diff --git a/chrome/browser/renderer_host/mock_render_process_host.cc b/chrome/browser/renderer_host/mock_render_process_host.cc index 8e3dd3f..55fd014 100644 --- a/chrome/browser/renderer_host/mock_render_process_host.cc +++ b/chrome/browser/renderer_host/mock_render_process_host.cc @@ -14,7 +14,7 @@ MockRenderProcessHost::~MockRenderProcessHost() { delete transport_dib_; } -bool MockRenderProcessHost::Init() { +bool MockRenderProcessHost::Init(bool is_extensions_process) { return true; } diff --git a/chrome/browser/renderer_host/mock_render_process_host.h b/chrome/browser/renderer_host/mock_render_process_host.h index e28ac68..79f1539 100644 --- a/chrome/browser/renderer_host/mock_render_process_host.h +++ b/chrome/browser/renderer_host/mock_render_process_host.h @@ -30,7 +30,7 @@ class MockRenderProcessHost : public RenderProcessHost { int bad_msg_count() const { return bad_msg_count_; } // RenderProcessHost implementation (public portion). - virtual bool Init(); + virtual bool Init(bool is_extensions_process); virtual int GetNextRoutingID(); virtual void CancelResourceRequests(int render_widget_id); virtual void CrossSiteClosePageACK(const ViewMsg_ClosePage_Params& params); diff --git a/chrome/browser/renderer_host/render_process_host.h b/chrome/browser/renderer_host/render_process_host.h index 5c15b1c..e3e068f 100644 --- a/chrome/browser/renderer_host/render_process_host.h +++ b/chrome/browser/renderer_host/render_process_host.h @@ -138,7 +138,7 @@ class RenderProcessHost : public IPC::Channel::Sender, // be called once before the object can be used, but can be called after // that with no effect. Therefore, if the caller isn't sure about whether // the process has been created, it should just call Init(). - virtual bool Init() = 0; + virtual bool Init(bool is_extensions_process) = 0; // Gets the next available routing id. virtual int GetNextRoutingID() = 0; diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index 5d3e350..78c7fb0 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -175,7 +175,9 @@ bool RenderViewHost::CreateRenderView() { // initialized it) or may not (we have our own process or the old process // crashed) have been initialized. Calling Init multiple times will be // ignored, so this is safe. - if (!process()->Init()) + bool is_extensions_process = + BindingsPolicy::is_extension_enabled(enabled_bindings_); + if (!process()->Init(is_extensions_process)) return false; DCHECK(process()->HasConnection()); DCHECK(process()->profile()); @@ -185,7 +187,7 @@ bool RenderViewHost::CreateRenderView() { process()->id()); } - if (BindingsPolicy::is_extension_enabled(enabled_bindings_)) { + if (is_extensions_process) { ChildProcessSecurityPolicy::GetInstance()->GrantExtensionBindings( process()->id()); } |