summaryrefslogtreecommitdiff
path: root/chromium/chrome/common/initialize_extensions_client.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-02-13 10:55:42 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-03-05 13:33:38 +0000
commit248b70b82a40964d5594eb04feca0fa36716185d (patch)
tree44e31d9dd0ac2cb79f48633eefbc5496e013c347 /chromium/chrome/common/initialize_extensions_client.cc
parentcabfcdd1db482729ded525feae56911a99792773 (diff)
downloadqtwebengine-chromium-248b70b82a40964d5594eb04feca0fa36716185d.tar.gz
BASELINE: Update Chromium to 79.0.3945.147
And new simplified snapshot filter Change-Id: I7c692bedd5b3833f05565bd6f6939115350b233a Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/chrome/common/initialize_extensions_client.cc')
-rw-r--r--chromium/chrome/common/initialize_extensions_client.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/chromium/chrome/common/initialize_extensions_client.cc b/chromium/chrome/common/initialize_extensions_client.cc
new file mode 100644
index 00000000000..3e9d4cf1f1b
--- /dev/null
+++ b/chromium/chrome/common/initialize_extensions_client.cc
@@ -0,0 +1,33 @@
+// 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 <memory>
+
+#include "base/no_destructor.h"
+#include "chrome/common/apps/platform_apps/chrome_apps_api_provider.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_client->AddAPIProvider(
+ std::make_unique<chrome_apps::ChromeAppsAPIProvider>());
+ 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.";
+}