diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-16 07:47:39 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-16 07:47:39 +0000 |
commit | c8865964330959b40718c0e6148288da64f14fec (patch) | |
tree | 78a39905db0a850690c673a76ef59eadb28f54d6 /chrome/browser | |
parent | 3ce10b7c419cc4522f885008cbb3c76b02256ba3 (diff) | |
download | chromium_src-c8865964330959b40718c0e6148288da64f14fec.zip chromium_src-c8865964330959b40718c0e6148288da64f14fec.tar.gz chromium_src-c8865964330959b40718c0e6148288da64f14fec.tar.bz2 |
Fix regression where we stopped running content scripts in
extension processes.
BUG=29621
Review URL: http://codereview.chromium.org/505012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34668 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
3 files changed, 17 insertions, 10 deletions
diff --git a/chrome/browser/extensions/content_script_extension_process_apitest.cc b/chrome/browser/extensions/content_script_extension_process_apitest.cc new file mode 100644 index 0000000..18ee070 --- /dev/null +++ b/chrome/browser/extensions/content_script_extension_process_apitest.cc @@ -0,0 +1,15 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/browser.h" +#include "chrome/browser/extensions/extension_apitest.h" +#include "chrome/browser/extensions/extensions_service.h" +#include "chrome/browser/profile.h" +#include "chrome/common/extensions/extension.h" +#include "chrome/test/ui_test_utils.h" + +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ContentScriptExtensionProcess) { + StartHTTPServer(); + ASSERT_TRUE(RunExtensionTest("content_script_extension_process")) << message_; +} diff --git a/chrome/browser/extensions/extensions_service.cc b/chrome/browser/extensions/extensions_service.cc index 578b8ef..99a97f2a 100644 --- a/chrome/browser/extensions/extensions_service.cc +++ b/chrome/browser/extensions/extensions_service.cc @@ -643,10 +643,10 @@ void ExtensionsService::OnExtensionLoaded(Extension* extension, } void ExtensionsService::UpdateActiveExtensionsInCrashReporter() { - std::vector<std::string> extension_ids; + std::set<std::string> extension_ids; for (size_t i = 0; i < extensions_.size(); ++i) { if (!extensions_[i]->IsTheme()) - extension_ids.push_back(extensions_[i]->id()); + extension_ids.insert(extensions_[i]->id()); } child_process_logging::SetActiveExtensions(extension_ids); diff --git a/chrome/browser/renderer_host/browser_render_process_host.cc b/chrome/browser/renderer_host/browser_render_process_host.cc index 05a452d..bb7e99d 100644 --- a/chrome/browser/renderer_host/browser_render_process_host.cc +++ b/chrome/browser/renderer_host/browser_render_process_host.cc @@ -595,14 +595,6 @@ void BrowserRenderProcessHost::InitExtensions() { void BrowserRenderProcessHost::SendUserScriptsUpdate( base::SharedMemory *shared_memory) { - // Don't send user scripts to extension processes. We currently don't allow - // user scripts to run in extensions, so it would be pointless. It would also - // mess up the crash reporting, which sends a different set of "active" - // extensions depending on whether the process is an extension or renderer - // process. - if (extension_process_) - return; - // Process is being started asynchronously. We'll end up calling // InitUserScripts when it's created which will call this again. if (child_process_.get() && child_process_->IsStarting()) |