Index: chrome/browser/extensions/extension_clear_api.h |
diff --git a/chrome/browser/extensions/extension_clear_api.h b/chrome/browser/extensions/extension_clear_api.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..46c89cb996848378e616857fc5dd86c3a442cbcd |
--- /dev/null |
+++ b/chrome/browser/extensions/extension_clear_api.h |
@@ -0,0 +1,129 @@ |
+// Copyright (c) 2011 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. |
+ |
+// Defines the Chrome Extensions Clear API functions, which entail |
+// clearing browsing data, and clearing the browser's cache (which, let's be |
+// honest, are the same thing), as specified in |
+// chrome/common/extensions/api/extension_api.json. |
+ |
+#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_CLEAR_API_H_ |
+#define CHROME_BROWSER_EXTENSIONS_EXTENSION_CLEAR_API_H_ |
+#pragma once |
+ |
+#include <string> |
+ |
+#include "chrome/browser/browsing_data_remover.h" |
+#include "chrome/browser/extensions/extension_function.h" |
+ |
+namespace base { |
+class DictionaryValue; |
+} |
+ |
+// This serves as a base class from which the browsing data API functions will |
+// inherit. Each needs to be an observer of BrowsingDataRemover events, and each |
+// will handle those events in the same way (by calling the passed-in callback |
+// function). |
+// |
+// Each child class must implement GetRemovalMask(), which returns the bitmask |
+// of data types to remove. |
+class BrowsingDataExtensionFunction : public AsyncExtensionFunction, |
+ public BrowsingDataRemover::Observer { |
+ public: |
+ // BrowsingDataRemover::Observer interface method. |
+ virtual void OnBrowsingDataRemoverDone() OVERRIDE; |
+ |
+ // AsyncExtensionFunction interface method. |
+ virtual bool RunImpl() OVERRIDE; |
+ |
+ protected: |
+ // Children should override this method to provide the proper removal mask |
+ // based on the API call they represent. |
+ virtual int GetRemovalMask() const = 0; |
+}; |
+ |
+class ClearBrowsingDataFunction : public BrowsingDataExtensionFunction { |
+ public: |
+ ClearBrowsingDataFunction() {} |
+ virtual ~ClearBrowsingDataFunction() {} |
+ |
+ protected: |
+ // BrowsingDataExtensionFunction interface method. |
+ virtual int GetRemovalMask() const OVERRIDE; |
+ |
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.clear.browsingData") |
+}; |
+ |
+class ClearCacheFunction : public BrowsingDataExtensionFunction { |
+ public: |
+ ClearCacheFunction() {} |
+ virtual ~ClearCacheFunction() {} |
+ |
+ protected: |
+ // BrowsingDataTypeExtensionFunction interface method. |
+ virtual int GetRemovalMask() const OVERRIDE; |
+ |
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.clear.cache") |
+}; |
+ |
+class ClearCookiesFunction : public BrowsingDataExtensionFunction { |
+ public: |
+ ClearCookiesFunction() {} |
+ virtual ~ClearCookiesFunction() {} |
+ |
+ protected: |
+ // BrowsingDataTypeExtensionFunction interface method. |
+ virtual int GetRemovalMask() const OVERRIDE; |
+ |
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.clear.cookies") |
+}; |
+ |
+class ClearDownloadsFunction : public BrowsingDataExtensionFunction { |
+ public: |
+ ClearDownloadsFunction() {} |
+ virtual ~ClearDownloadsFunction() {} |
+ |
+ protected: |
+ // BrowsingDataTypeExtensionFunction interface method. |
+ virtual int GetRemovalMask() const OVERRIDE; |
+ |
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.clear.downloads") |
+}; |
+ |
+class ClearFormDataFunction : public BrowsingDataExtensionFunction { |
+ public: |
+ ClearFormDataFunction() {} |
+ virtual ~ClearFormDataFunction() {} |
+ |
+ protected: |
+ // BrowsingDataTypeExtensionFunction interface method. |
+ virtual int GetRemovalMask() const OVERRIDE; |
+ |
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.clear.formData") |
+}; |
+ |
+class ClearHistoryFunction : public BrowsingDataExtensionFunction { |
+ public: |
+ ClearHistoryFunction() {} |
+ virtual ~ClearHistoryFunction() {} |
+ |
+ protected: |
+ // BrowsingDataTypeExtensionFunction interface method. |
+ virtual int GetRemovalMask() const OVERRIDE; |
+ |
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.clear.history") |
+}; |
+ |
+class ClearPasswordsFunction : public BrowsingDataExtensionFunction { |
+ public: |
+ ClearPasswordsFunction() {} |
+ virtual ~ClearPasswordsFunction() {} |
+ |
+ protected: |
+ // BrowsingDataTypeExtensionFunction interface method. |
+ virtual int GetRemovalMask() const OVERRIDE; |
+ |
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.clear.passwords") |
+}; |
+ |
+#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_CLEAR_API_H_ |