| Index: chrome/browser/pepper_flash_settings_manager.h
|
| diff --git a/chrome/browser/pepper_flash_settings_manager.h b/chrome/browser/pepper_flash_settings_manager.h
|
| index 88bd1b04a81cf54902af4f87bb4d595fe3784ff2..4a20df31ba51c875648741caec4bb5a5977680a5 100644
|
| --- a/chrome/browser/pepper_flash_settings_manager.h
|
| +++ b/chrome/browser/pepper_flash_settings_manager.h
|
| @@ -7,10 +7,15 @@
|
| #pragma once
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/memory/ref_counted.h"
|
|
|
| class PluginPrefs;
|
| class PrefService;
|
|
|
| +namespace content {
|
| +class BrowserContext;
|
| +}
|
| +
|
| namespace webkit {
|
| struct WebPluginInfo;
|
| }
|
| @@ -19,6 +24,20 @@ struct WebPluginInfo;
|
| // read/write Pepper Flash settings.
|
| class PepperFlashSettingsManager {
|
| public:
|
| + class Client {
|
| + public:
|
| + virtual ~Client() {}
|
| +
|
| + virtual void OnDeauthorizeContentLicensesCompleted(uint32 request_id,
|
| + bool success) = 0;
|
| + };
|
| +
|
| + // |client| must outlive this object. It is guaranteed that |client| won't
|
| + // receive any notifications after this object goes away.
|
| + PepperFlashSettingsManager(Client* client,
|
| + content::BrowserContext* browser_context);
|
| + ~PepperFlashSettingsManager();
|
| +
|
| // |plugin_info| will be updated if it is not NULL and the method returns
|
| // true.
|
| static bool IsPepperFlashInUse(PluginPrefs* plugin_prefs,
|
| @@ -26,8 +45,40 @@ class PepperFlashSettingsManager {
|
|
|
| static void RegisterUserPrefs(PrefService* prefs);
|
|
|
| + // Requests to deauthorize content licenses.
|
| + // Client::OnDeauthorizeContentLicensesCompleted() will be called when the
|
| + // operation is completed.
|
| + // The return value is the same as the request ID passed into
|
| + // Client::OnDeauthorizeContentLicensesCompleted().
|
| + uint32 DeauthorizeContentLicenses();
|
| +
|
| private:
|
| - DISALLOW_IMPLICIT_CONSTRUCTORS(PepperFlashSettingsManager);
|
| + // Core does most of the work. It is ref-counted so that its lifespan can be
|
| + // independent of the containing object's:
|
| + // - The manager can be deleted on the UI thread while the core still being
|
| + // used on the I/O thread.
|
| + // - The manager can delete the core when it encounters errors and create
|
| + // another one to handle new requests.
|
| + class Core;
|
| +
|
| + uint32 GetNextRequestId();
|
| +
|
| + void EnsureCoreExists();
|
| +
|
| + // Notified by |core_| when an error occurs.
|
| + void OnError();
|
| +
|
| + // |client_| is not owned by this object and must outlive it.
|
| + Client* client_;
|
| +
|
| + // The browser context for the profile.
|
| + content::BrowserContext* browser_context_;
|
| +
|
| + scoped_refptr<Core> core_;
|
| +
|
| + uint32 next_request_id_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(PepperFlashSettingsManager);
|
| };
|
|
|
| #endif // CHROME_BROWSER_PEPPER_FLASH_SETTINGS_MANAGER_H_
|
|
|