// Copyright 2012 The Chromium Authors // 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_LOADER_H_ #define CHROME_BROWSER_EXTENSIONS_EXTERNAL_LOADER_H_ #include "base/files/file_path.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/values.h" namespace extensions { class ExternalProviderImpl; // Base class for gathering a list of external extensions. Subclasses // implement loading from registry, JSON file, policy. // Instances are owned by ExternalProviderImpl objects. // Instances are created on the UI thread and expect public method calls from // the UI thread. Some subclasses introduce new methods that are executed on the // FILE thread. // The sequence of loading the extension list: // 1.) StartLoading() - checks if a loading task is already running // 2.) Load() - implemented in subclasses // 3.) LoadFinished() // 4.) owner_->SetPrefs() class ExternalLoader : public base::RefCountedThreadSafe<ExternalLoader> { … }; } // namespace extensions #endif // CHROME_BROWSER_EXTENSIONS_EXTERNAL_LOADER_H_