Commit 51b30cc7 authored by Christian Dullweber's avatar Christian Dullweber Committed by Commit Bot

Deprecate plugin related browsingData api functions

Flash is going to be removed in M88, so mark related extension APIs as
deprecated and make them a no-op.

Bug: 1135788, 1135791
Change-Id: Idd2ceefcbe8eb6baeb31f44a4f3b12283253939b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2466236
Commit-Queue: Christian Dullweber <dullweber@chromium.org>
Reviewed-by: default avatarDevlin <rdevlin.cronin@chromium.org>
Reviewed-by: default avatarDavid Bertoni <dbertoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#819321}
parent d2bf7df7
......@@ -34,10 +34,6 @@
#include "extensions/common/extension.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#if BUILDFLAG(ENABLE_PLUGINS)
#include "chrome/browser/plugins/plugin_prefs.h"
#endif
using browsing_data::BrowsingDataType;
using browsing_data::ClearBrowsingDataTab;
using content::BrowserThread;
......@@ -59,7 +55,7 @@ const char kHistoryKey[] = "history";
const char kIndexedDBKey[] = "indexedDB";
const char kLocalStorageKey[] = "localStorage";
const char kPasswordsKey[] = "passwords";
const char kPluginDataKey[] = "pluginData";
const char kPluginDataKeyDeprecated[] = "pluginData";
const char kServiceWorkersKey[] = "serviceWorkers";
const char kCacheStorageKey[] = "cacheStorage";
const char kWebSQLKey[] = "webSQL";
......@@ -120,8 +116,6 @@ uint64_t MaskForKey(const char* key) {
return content::BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE;
if (strcmp(key, extension_browsing_data_api_constants::kPasswordsKey) == 0)
return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS;
if (strcmp(key, extension_browsing_data_api_constants::kPluginDataKey) == 0)
return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
if (strcmp(key, extension_browsing_data_api_constants::kServiceWorkersKey) ==
0)
return content::BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS;
......@@ -230,12 +224,10 @@ ExtensionFunction::ResponseAction BrowsingDataSettingsFunction::Run() {
SetDetails(selected.get(), permitted.get(),
extension_browsing_data_api_constants::kCacheStorageKey,
delete_site_data);
// PluginData is not supported anymore. (crbug.com/1135791)
SetDetails(selected.get(), permitted.get(),
extension_browsing_data_api_constants::kPluginDataKey,
delete_site_data &&
prefs_->GetBoolean(prefs::kClearPluginLSODataEnabled));
extension_browsing_data_api_constants::kPluginDataKeyDeprecated,
false);
SetDetails(selected.get(), permitted.get(),
extension_browsing_data_api_constants::kHistoryKey,
isDataTypeSelected(BrowsingDataType::HISTORY, tab));
......@@ -354,47 +346,17 @@ ExtensionFunction::ResponseAction BrowsingDataRemoverFunction::Run() {
return RespondNow(
Error(extension_browsing_data_api_constants::kDeleteProhibitedError));
}
#if BUILDFLAG(ENABLE_PLUGINS)
if (removal_mask_ &
ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA) {
// If we're being asked to remove plugin data, check whether it's actually
// supported.
base::ThreadPool::PostTask(
FROM_HERE,
{base::MayBlock(), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN,
base::TaskPriority::USER_VISIBLE},
base::BindOnce(
&BrowsingDataRemoverFunction::CheckRemovingPluginDataSupported,
this, PluginPrefs::GetForProfile(profile)));
} else {
StartRemoving();
}
#else
StartRemoving();
#endif
return did_respond() ? AlreadyResponded() : RespondLater();
}
BrowsingDataRemoverFunction::~BrowsingDataRemoverFunction() {}
BrowsingDataRemoverFunction::~BrowsingDataRemoverFunction() = default;
bool BrowsingDataRemoverFunction::IsPauseSyncAllowed() {
return true;
}
#if BUILDFLAG(ENABLE_PLUGINS)
void BrowsingDataRemoverFunction::CheckRemovingPluginDataSupported(
scoped_refptr<PluginPrefs> plugin_prefs) {
// We don't support this after Flash deprecation.
removal_mask_ &= ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
content::GetUIThreadTaskRunner({})->PostTask(
FROM_HERE,
base::BindOnce(&BrowsingDataRemoverFunction::StartRemoving, this));
}
#endif
void BrowsingDataRemoverFunction::StartRemoving() {
Profile* profile = Profile::FromBrowserContext(browser_context());
content::BrowsingDataRemover* remover =
......@@ -459,7 +421,7 @@ bool BrowsingDataRemoverFunction::ParseOriginTypeMask(
// UNPROTECTED_WEB if the developer doesn't specify anything.
*origin_type_mask = content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
const base::DictionaryValue* d = NULL;
const base::DictionaryValue* d = nullptr;
if (options.HasKey(extension_browsing_data_api_constants::kOriginTypesKey)) {
if (!options.GetDictionary(
extension_browsing_data_api_constants::kOriginTypesKey, &d)) {
......@@ -607,7 +569,8 @@ bool BrowsingDataRemoveLocalStorageFunction::GetRemovalMask(
bool BrowsingDataRemovePluginDataFunction::GetRemovalMask(
uint64_t* removal_mask) {
*removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
// Plugin data is not supported anymore. (crbug.com/1135788)
*removal_mask = 0;
return true;
}
......
......@@ -18,9 +18,7 @@
#include "content/public/browser/browsing_data_filter_builder.h"
#include "content/public/browser/browsing_data_remover.h"
#include "extensions/browser/extension_function.h"
#include "ppapi/buildflags/buildflags.h"
class PluginPrefs;
class PrefService;
namespace extension_browsing_data_api_constants {
......@@ -70,7 +68,7 @@ class BrowsingDataSettingsFunction : public ExtensionFunction {
ResponseAction Run() override;
protected:
~BrowsingDataSettingsFunction() override {}
~BrowsingDataSettingsFunction() override = default;
private:
// Sets a boolean value in the |selected_dict| with the |data_type| as a key,
......@@ -124,13 +122,6 @@ class BrowsingDataRemoverFunction
// pausing Sync would prevent the data from being deleted on the server.
virtual bool IsPauseSyncAllowed();
#if BUILDFLAG(ENABLE_PLUGINS)
// Updates the removal bitmask according to whether removing plugin data is
// supported or not.
void CheckRemovingPluginDataSupported(
scoped_refptr<PluginPrefs> plugin_prefs);
#endif
// Parse the developer-provided |origin_types| object into |origin_type_mask|
// that can be used with the BrowsingDataRemover.
// Returns true if parsing was successful.
......@@ -171,7 +162,7 @@ class BrowsingDataRemoveAppcacheFunction : public BrowsingDataRemoverFunction {
BROWSINGDATA_REMOVEAPPCACHE)
protected:
~BrowsingDataRemoveAppcacheFunction() override {}
~BrowsingDataRemoveAppcacheFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -182,7 +173,7 @@ class BrowsingDataRemoveFunction : public BrowsingDataRemoverFunction {
DECLARE_EXTENSION_FUNCTION("browsingData.remove", BROWSINGDATA_REMOVE)
protected:
~BrowsingDataRemoveFunction() override {}
~BrowsingDataRemoveFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -195,7 +186,7 @@ class BrowsingDataRemoveCacheFunction : public BrowsingDataRemoverFunction {
BROWSINGDATA_REMOVECACHE)
protected:
~BrowsingDataRemoveCacheFunction() override {}
~BrowsingDataRemoveCacheFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -207,7 +198,7 @@ class BrowsingDataRemoveCookiesFunction : public BrowsingDataRemoverFunction {
BROWSINGDATA_REMOVECOOKIES)
protected:
~BrowsingDataRemoveCookiesFunction() override {}
~BrowsingDataRemoveCookiesFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -219,7 +210,7 @@ class BrowsingDataRemoveDownloadsFunction : public BrowsingDataRemoverFunction {
BROWSINGDATA_REMOVEDOWNLOADS)
protected:
~BrowsingDataRemoveDownloadsFunction() override {}
~BrowsingDataRemoveDownloadsFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -232,7 +223,7 @@ class BrowsingDataRemoveFileSystemsFunction
BROWSINGDATA_REMOVEFILESYSTEMS)
protected:
~BrowsingDataRemoveFileSystemsFunction() override {}
~BrowsingDataRemoveFileSystemsFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -244,7 +235,7 @@ class BrowsingDataRemoveFormDataFunction : public BrowsingDataRemoverFunction {
BROWSINGDATA_REMOVEFORMDATA)
protected:
~BrowsingDataRemoveFormDataFunction() override {}
~BrowsingDataRemoveFormDataFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -256,7 +247,7 @@ class BrowsingDataRemoveHistoryFunction : public BrowsingDataRemoverFunction {
BROWSINGDATA_REMOVEHISTORY)
protected:
~BrowsingDataRemoveHistoryFunction() override {}
~BrowsingDataRemoveHistoryFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -268,7 +259,7 @@ class BrowsingDataRemoveIndexedDBFunction : public BrowsingDataRemoverFunction {
BROWSINGDATA_REMOVEINDEXEDDB)
protected:
~BrowsingDataRemoveIndexedDBFunction() override {}
~BrowsingDataRemoveIndexedDBFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -281,7 +272,7 @@ class BrowsingDataRemoveLocalStorageFunction
BROWSINGDATA_REMOVELOCALSTORAGE)
protected:
~BrowsingDataRemoveLocalStorageFunction() override {}
~BrowsingDataRemoveLocalStorageFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -294,7 +285,7 @@ class BrowsingDataRemovePluginDataFunction
BROWSINGDATA_REMOVEPLUGINDATA)
protected:
~BrowsingDataRemovePluginDataFunction() override {}
~BrowsingDataRemovePluginDataFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -306,7 +297,7 @@ class BrowsingDataRemovePasswordsFunction : public BrowsingDataRemoverFunction {
BROWSINGDATA_REMOVEPASSWORDS)
protected:
~BrowsingDataRemovePasswordsFunction() override {}
~BrowsingDataRemovePasswordsFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -319,7 +310,7 @@ class BrowsingDataRemoveServiceWorkersFunction
BROWSINGDATA_REMOVESERVICEWORKERS)
protected:
~BrowsingDataRemoveServiceWorkersFunction() override {}
~BrowsingDataRemoveServiceWorkersFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -332,7 +323,7 @@ class BrowsingDataRemoveCacheStorageFunction
BROWSINGDATA_REMOVECACHESTORAGE)
protected:
~BrowsingDataRemoveCacheStorageFunction() override {}
~BrowsingDataRemoveCacheStorageFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......@@ -344,7 +335,7 @@ class BrowsingDataRemoveWebSQLFunction : public BrowsingDataRemoverFunction {
BROWSINGDATA_REMOVEWEBSQL)
protected:
~BrowsingDataRemoveWebSQLFunction() override {}
~BrowsingDataRemoveWebSQLFunction() override = default;
// BrowsingDataRemoverFunction:
bool GetRemovalMask(uint64_t* removal_mask) override;
......
......@@ -93,7 +93,7 @@ class BrowsingDataApiTest : public ExtensionServiceTestBase {
uint64_t expected_mask) {
auto function = base::MakeRefCounted<BrowsingDataRemoveFunction>();
SCOPED_TRACE(data_types);
EXPECT_EQ(NULL, RunFunctionAndReturnSingleResult(
EXPECT_EQ(nullptr, RunFunctionAndReturnSingleResult(
function.get(),
std::string("[{\"since\": 1},") + data_types + "]",
browser()));
......@@ -113,7 +113,7 @@ class BrowsingDataApiTest : public ExtensionServiceTestBase {
uint64_t expected_mask) {
auto function = base::MakeRefCounted<BrowsingDataRemoveFunction>();
SCOPED_TRACE(protectedStr);
EXPECT_EQ(NULL, RunFunctionAndReturnSingleResult(
EXPECT_EQ(nullptr, RunFunctionAndReturnSingleResult(
function.get(),
"[{\"originTypes\": " + protectedStr +
"}, {\"cookies\": true}]",
......@@ -125,7 +125,7 @@ class BrowsingDataApiTest : public ExtensionServiceTestBase {
void RunAndCompareRemovalMask(uint64_t expected_mask) {
scoped_refptr<ShortcutFunction> function = new ShortcutFunction();
SCOPED_TRACE(ShortcutFunction::static_function_name());
EXPECT_EQ(NULL,
EXPECT_EQ(nullptr,
RunFunctionAndReturnSingleResult(
function.get(), std::string("[{\"since\": 1}]"), browser()));
EXPECT_EQ(expected_mask, GetRemovalMask());
......@@ -270,8 +270,8 @@ class BrowsingDataApiTest : public ExtensionServiceTestBase {
content::BrowsingDataRemover::DATA_TYPE_INDEXED_DB) |
GetAsMask(data_to_remove, "localStorage",
content::BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE) |
GetAsMask(data_to_remove, "pluginData",
ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA) |
// PluginData is not supported anymore.
GetAsMask(data_to_remove, "pluginData", 0) |
GetAsMask(data_to_remove, "passwords",
ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS) |
GetAsMask(data_to_remove, "serviceWorkers",
......@@ -289,7 +289,7 @@ class BrowsingDataApiTest : public ExtensionServiceTestBase {
std::string args = "[{\"since\": 1}," + data_types + "]";
if (permitted) {
EXPECT_EQ(NULL, RunFunctionAndReturnSingleResult(function.get(), args,
EXPECT_EQ(nullptr, RunFunctionAndReturnSingleResult(function.get(), args,
browser()))
<< " for " << args;
} else {
......@@ -367,7 +367,8 @@ TEST_F(BrowsingDataApiTest, RemovalProhibited) {
TEST_F(BrowsingDataApiTest, RemoveBrowsingDataAll) {
auto function = base::MakeRefCounted<BrowsingDataRemoveFunction>();
EXPECT_EQ(NULL, RunFunctionAndReturnSingleResult(
EXPECT_EQ(nullptr,
RunFunctionAndReturnSingleResult(
function.get(), kRemoveEverythingArguments, browser()));
EXPECT_EQ(base::Time::FromDoubleT(1.0), GetBeginTime());
......@@ -439,7 +440,6 @@ TEST_F(BrowsingDataApiTest, BrowsingDataRemovalMask) {
"localStorage", content::BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
"passwords", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS);
// We can't remove plugin data inside a test profile.
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
"serviceWorkers",
content::BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS);
......@@ -493,7 +493,7 @@ TEST_F(BrowsingDataApiTest, BrowsingDataRemovalInputFromSettings) {
{
auto remove_function = base::MakeRefCounted<BrowsingDataRemoveFunction>();
SCOPED_TRACE("remove_json");
EXPECT_EQ(NULL,
EXPECT_EQ(nullptr,
RunFunctionAndReturnSingleResult(
remove_function.get(),
std::string("[{\"since\": 1},") + json + "]", browser()));
......@@ -523,7 +523,6 @@ TEST_F(BrowsingDataApiTest, ShortcutFunctionRemovalMask) {
content::BrowsingDataRemover::DATA_TYPE_INDEXED_DB);
RunAndCompareRemovalMask<BrowsingDataRemoveLocalStorageFunction>(
content::BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE);
// We can't remove plugin data inside a test profile.
RunAndCompareRemovalMask<BrowsingDataRemovePasswordsFunction>(
ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS);
RunAndCompareRemovalMask<BrowsingDataRemoveServiceWorkersFunction>(
......@@ -571,33 +570,24 @@ TEST_F(BrowsingDataApiTest, SettingsFunctionSimple) {
// Test cookie and app data settings.
TEST_F(BrowsingDataApiTest, SettingsFunctionSiteData) {
int supported_site_data_except_plugins =
int supported_site_data =
(content::BrowsingDataRemover::DATA_TYPE_COOKIES |
content::BrowsingDataRemover::DATA_TYPE_DOM_STORAGE) &
~content::BrowsingDataRemover::DATA_TYPE_BACKGROUND_FETCH &
~content::BrowsingDataRemover::DATA_TYPE_EMBEDDER_DOM_STORAGE;
int supported_site_data =
supported_site_data_except_plugins |
ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
SetPrefsAndVerifySettings(content::BrowsingDataRemover::DATA_TYPE_COOKIES,
UNPROTECTED_WEB,
supported_site_data_except_plugins);
UNPROTECTED_WEB, supported_site_data);
SetPrefsAndVerifySettings(
ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY,
PROTECTED_WEB, supported_site_data_except_plugins);
PROTECTED_WEB, supported_site_data);
SetPrefsAndVerifySettings(content::BrowsingDataRemover::DATA_TYPE_COOKIES |
ChromeBrowsingDataRemoverDelegate::
DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY,
PROTECTED_WEB | UNPROTECTED_WEB,
supported_site_data_except_plugins);
SetPrefsAndVerifySettings(
content::BrowsingDataRemover::DATA_TYPE_COOKIES |
ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA,
UNPROTECTED_WEB, supported_site_data);
supported_site_data);
SetBasicPrefsAndVerifySettings(
content::BrowsingDataRemover::DATA_TYPE_COOKIES, UNPROTECTED_WEB,
supported_site_data_except_plugins);
supported_site_data);
}
// Test an arbitrary assortment of settings.
......
......@@ -122,6 +122,7 @@
"pluginData": {
"type": "boolean",
"optional": true,
"deprecated": "Support for Flash has been removed. This data type will be ignored.",
"description": "Plugins' data."
},
"serviceWorkers": {
......@@ -374,6 +375,7 @@
{
"name": "removePluginData",
"description": "Clears plugins' data.",
"deprecated": "Support for Flash has been removed. This function has no effect.",
"type": "function",
"parameters": [
{
......
......@@ -51,7 +51,6 @@ chrome.browsingData.remove({
"history": true,
"indexedDB": true,
"localStorage": true,
"pluginData": true,
"passwords": true,
"serviceWorkers": true,
"webSQL": true
......@@ -98,7 +97,7 @@ chrome.browsingData.removeCookies({
deletion, you can use the <code>RemovalOptions.origins</code> and
<code>RemovalOptions.excludeOrigins</code> parameters. They can only be applied
to cookies, cache, and storage (CacheStorage, FileSystems, IndexedDB,
LocalStorage, PluginData, ServiceWorkers, and WebSQL).
LocalStorage, ServiceWorkers, and WebSQL).
</p>
<pre>chrome.browsingData.remove({
......@@ -109,7 +108,6 @@ LocalStorage, PluginData, ServiceWorkers, and WebSQL).
"fileSystems": true,
"indexedDB": true,
"localStorage": true,
"pluginData": true,
"serviceWorkers": true,
"webSQL": true
}, callback);</pre>
......@@ -178,8 +176,6 @@ chrome.browsingData.remove({
"history": true,
"indexedDB": true,
"localStorage": true,
"serverBoundCertificates": true,
"pluginData": true,
"passwords": true,
"serviceWorkers": true,
"webSQL": true
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment