Commit fe045298 authored by Devlin's avatar Devlin Committed by Commit Bot

Revert "[Extensions] Introduce common client initialization"

This reverts commit f41f215c.

Reason for revert: Checking to see if this was the cause of flakiness in a test.

Original change's description:
> [Extensions] Introduce common client initialization
> 
> In order to extract apps-specific code from extensions, we'll need to
> be able to add extra information to the extensions client from outside
> extensions code. This will require having a centralized initialization
> for the extensions client.
> 
> Introduce a single method, EnsureExtensionsClientInitialized(), which
> constructs and sets the ChromeExtensionsClient. Remove the old way of
> constructing the client, ChromeExtensionsClient::GetInstance(). Update
> all callers to construct the client via the new method.
> 
> While we're at it, update the client to use base::NoDestructor instead
> of LazyInstance.
> 
> Bug: 873937
> Change-Id: I47147cd5f33ea44079c0a319626c57f3c5813af8
> Reviewed-on: https://chromium-review.googlesource.com/1175459
> Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
> Reviewed-by: Lei Zhang <thestig@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#583217}

TBR=thestig@chromium.org,rdevlin.cronin@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 873937
Change-Id: I750a4cde4d76054fc82f91bac8e63413f9599b9e
Reviewed-on: https://chromium-review.googlesource.com/1179347Reviewed-by: default avatarDevlin <rdevlin.cronin@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584221}
parent 6ff108b6
......@@ -171,7 +171,6 @@
#include "chrome/browser/extensions/event_router_forwarder.h"
#include "chrome/browser/media_galleries/media_file_system_registry.h"
#include "chrome/browser/ui/apps/chrome_app_window_client.h"
#include "chrome/common/initialize_extensions_client.h"
#include "components/storage_monitor/storage_monitor.h"
#include "extensions/common/extension_l10n_util.h"
#endif
......@@ -260,7 +259,8 @@ void BrowserProcessImpl::Init() {
extension_event_router_forwarder_ =
base::MakeRefCounted<extensions::EventRouterForwarder>();
EnsureExtensionsClientInitialized();
extensions::ExtensionsClient::Set(
extensions::ChromeExtensionsClient::GetInstance());
extensions_browser_client_ =
std::make_unique<extensions::ChromeExtensionsBrowserClient>();
......
......@@ -14,7 +14,7 @@
#include "base/strings/utf_string_conversions.h"
#include "base/task/post_task.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/initialize_extensions_client.h"
#include "chrome/common/extensions/chrome_extensions_client.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/common/service_manager_connection.h"
#include "extensions/browser/extension_file_task_runner.h"
......@@ -35,7 +35,7 @@ void PrintPackExtensionMessage(const std::string& message) {
} // namespace
StartupHelper::StartupHelper() : pack_job_succeeded_(false) {
EnsureExtensionsClientInitialized();
ExtensionsClient::Set(ChromeExtensionsClient::GetInstance());
}
void StartupHelper::OnPackSuccess(
......
......@@ -369,8 +369,6 @@ static_library("common") {
"extensions/sync_helper.h",
"extensions/webstore_install_result.cc",
"extensions/webstore_install_result.h",
"initialize_extensions_client.cc",
"initialize_extensions_client.h",
]
public_deps += [
"//chrome/common/extensions:mojo_bindings",
......
......@@ -96,6 +96,9 @@ ChromeChannelForHistogram GetChromeChannelForHistogram(
} // namespace
static base::LazyInstance<ChromeExtensionsClient>::Leaky g_client =
LAZY_INSTANCE_INITIALIZER;
ChromeExtensionsClient::ChromeExtensionsClient() {}
ChromeExtensionsClient::~ChromeExtensionsClient() {
......@@ -342,4 +345,9 @@ std::string ChromeExtensionsClient::GetUserAgent() const {
return ::GetUserAgent();
}
// static
ChromeExtensionsClient* ChromeExtensionsClient::GetInstance() {
return g_client.Pointer();
}
} // namespace extensions
......@@ -8,6 +8,7 @@
#include <memory>
#include "base/compiler_specific.h"
#include "base/lazy_instance.h"
#include "base/macros.h"
#include "chrome/common/extensions/permissions/chrome_api_permissions.h"
#include "chrome/common/extensions/permissions/chrome_permission_message_provider.h"
......@@ -56,6 +57,9 @@ class ChromeExtensionsClient : public ExtensionsClient {
bool ExtensionAPIEnabledInExtensionServiceWorkers() const override;
std::string GetUserAgent() const override;
// Get the LazyInstance for ChromeExtensionsClient.
static ChromeExtensionsClient* GetInstance();
private:
const ChromeAPIPermissions chrome_api_permissions_;
const ExtensionsAPIPermissions extensions_api_permissions_;
......@@ -70,6 +74,8 @@ class ChromeExtensionsClient : public ExtensionsClient {
GURL webstore_base_url_;
GURL webstore_update_url_;
friend struct base::LazyInstanceTraitsBase<ChromeExtensionsClient>;
DISALLOW_COPY_AND_ASSIGN(ChromeExtensionsClient);
};
......
// Copyright 2018 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/common/initialize_extensions_client.h"
#include "base/no_destructor.h"
#include "chrome/common/extensions/chrome_extensions_client.h"
#include "extensions/common/extensions_client.h"
void EnsureExtensionsClientInitialized() {
static bool initialized = false;
static base::NoDestructor<extensions::ChromeExtensionsClient>
extensions_client;
if (!initialized) {
initialized = true;
extensions::ExtensionsClient::Set(extensions_client.get());
}
// ExtensionsClient::Set() will early-out if the client was already set, so
// this allows us to check that this was the only site setting it.
DCHECK_EQ(extensions_client.get(), extensions::ExtensionsClient::Get())
<< "ExtensionsClient should only be initialized through "
<< "EnsureExtensionsClientInitialized() when using "
<< "ChromeExtensionsClient.";
}
// Copyright 2018 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.
#ifndef CHROME_COMMON_INITIALIZE_EXTENSIONS_CLIENT_H_
#define CHROME_COMMON_INITIALIZE_EXTENSIONS_CLIENT_H_
#include "extensions/buildflags/buildflags.h"
#if !BUILDFLAG(ENABLE_EXTENSIONS)
#error "Extensions must be enabled"
#endif
// Initializes the single instance of the ExtensionsClient. Safe to call
// multiple times.
void EnsureExtensionsClientInitialized();
#endif // CHROME_COMMON_INITIALIZE_EXTENSIONS_CLIENT_H_
......@@ -157,7 +157,7 @@
#endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/common/initialize_extensions_client.h"
#include "chrome/common/extensions/chrome_extensions_client.h"
#include "chrome/renderer/extensions/chrome_extensions_renderer_client.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension_urls.h"
......@@ -353,7 +353,8 @@ ChromeContentRendererClient::ChromeContentRendererClient()
: main_entry_time_(base::TimeTicks::Now()),
main_thread_profiler_(ThreadProfiler::CreateAndStartOnMainThread()) {
#if BUILDFLAG(ENABLE_EXTENSIONS)
EnsureExtensionsClientInitialized();
extensions::ExtensionsClient::Set(
extensions::ChromeExtensionsClient::GetInstance());
extensions::ExtensionsRendererClient::Set(
ChromeExtensionsRendererClient::GetInstance());
#endif
......
......@@ -35,9 +35,8 @@
#endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/common/initialize_extensions_client.h"
#include "chrome/common/extensions/chrome_extensions_client.h"
#include "extensions/common/extension_paths.h"
#include "extensions/common/extensions_client.h"
#endif
namespace {
......@@ -51,6 +50,11 @@ class ChromeUnitTestSuiteInitializer : public testing::EmptyTestEventListener {
void OnTestStart(const testing::TestInfo& test_info) override {
content_client_.reset(new ChromeContentClient);
content::SetContentClient(content_client_.get());
#if BUILDFLAG(ENABLE_EXTENSIONS)
extensions::ExtensionsClient::Get()->InitializeWebStoreUrls(
base::CommandLine::ForCurrentProcess());
#endif
browser_content_client_.reset(new ChromeContentBrowserClient());
content::SetBrowserClientForTesting(browser_content_client_.get());
......@@ -131,7 +135,8 @@ void ChromeUnitTestSuite::InitializeProviders() {
#if BUILDFLAG(ENABLE_EXTENSIONS)
extensions::RegisterPathProvider();
EnsureExtensionsClientInitialized();
extensions::ExtensionsClient::Set(
extensions::ChromeExtensionsClient::GetInstance());
#endif
content::WebUIControllerFactory::RegisterFactory(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment