summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/external_registry_extension_loader_win.h
diff options
context:
space:
mode:
authorgfeher@chromium.org <gfeher@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-14 10:09:14 +0000
committergfeher@chromium.org <gfeher@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-14 10:09:14 +0000
commit8e4560b6fbb569cffcfc35079b7aefc8ea7e2a1d (patch)
treec761871a719e319015d302df0090ad5cfc2dc099 /chrome/browser/extensions/external_registry_extension_loader_win.h
parentf39344fffb03f8c5352f68f926ffd4389da68bfd (diff)
downloadchromium_src-8e4560b6fbb569cffcfc35079b7aefc8ea7e2a1d.zip
chromium_src-8e4560b6fbb569cffcfc35079b7aefc8ea7e2a1d.tar.gz
chromium_src-8e4560b6fbb569cffcfc35079b7aefc8ea7e2a1d.tar.bz2
Clean up threading model of external extension providers
Move blocking IO of loading the lists of external extensions from the UI thread to the FILE thread. Remove the ExternalPolicyExtensionProvider-specific parts from ExtensionsService. Side-effects: reduce the number of PostTask operations from 9 to 4. Trigger uninstall of external extensions immediately after they are removed from a policy. BUG=65107,63667 TEST=ExtensionManagementTest.ExternalPolicyRefresh for the new functionality, lot of other extension tests are updated Review URL: http://codereview.chromium.org/5742008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71427 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/external_registry_extension_loader_win.h')
-rw-r--r--chrome/browser/extensions/external_registry_extension_loader_win.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/chrome/browser/extensions/external_registry_extension_loader_win.h b/chrome/browser/extensions/external_registry_extension_loader_win.h
new file mode 100644
index 0000000..7b0d189
--- /dev/null
+++ b/chrome/browser/extensions/external_registry_extension_loader_win.h
@@ -0,0 +1,28 @@
+// Copyright (c) 2010 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_BROWSER_EXTENSIONS_EXTERNAL_REGISTRY_EXTENSION_LOADER_WIN_H_
+#define CHROME_BROWSER_EXTENSIONS_EXTERNAL_REGISTRY_EXTENSION_LOADER_WIN_H_
+#pragma once
+
+#include "chrome/browser/extensions/external_extension_loader.h"
+
+class ExternalRegistryExtensionLoader : public ExternalExtensionLoader {
+ public:
+ ExternalRegistryExtensionLoader() {}
+
+ protected:
+ virtual void StartLoading();
+
+ private:
+ friend class base::RefCountedThreadSafe<ExternalExtensionLoader>;
+
+ virtual ~ExternalRegistryExtensionLoader() {}
+
+ void LoadOnFileThread();
+
+ DISALLOW_COPY_AND_ASSIGN(ExternalRegistryExtensionLoader);
+};
+
+#endif // CHROME_BROWSER_EXTENSIONS_EXTERNAL_REGISTRY_EXTENSION_LOADER_WIN_H_