diff options
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/browser/extension_pref_value_map.cc | 29 | ||||
-rw-r--r-- | extensions/browser/extension_pref_value_map.h | 15 | ||||
-rw-r--r-- | extensions/browser/extension_pref_value_map_unittest.cc | 137 | ||||
-rw-r--r-- | extensions/browser/extension_prefs.cc | 6 | ||||
-rw-r--r-- | extensions/common/extension.cc | 4 | ||||
-rw-r--r-- | extensions/common/extension.h | 1 |
6 files changed, 132 insertions, 60 deletions
diff --git a/extensions/browser/extension_pref_value_map.cc b/extensions/browser/extension_pref_value_map.cc index 5cba7e5..0797b24 100644 --- a/extensions/browser/extension_pref_value_map.cc +++ b/extensions/browser/extension_pref_value_map.cc @@ -15,6 +15,8 @@ struct ExtensionPrefValueMap::ExtensionEntry { base::Time install_time; // Whether extension is enabled in the profile. bool enabled; + // Whether the extension has access to the incognito profile. + bool incognito_enabled; // Extension controlled preferences for the regular profile. PrefValueMap regular_profile_preferences; // Extension controlled preferences that should *only* apply to the regular @@ -74,6 +76,9 @@ bool ExtensionPrefValueMap::CanExtensionControlPref( return false; } + if (incognito && !ext->second->incognito_enabled) + return false; + ExtensionEntryMap::const_iterator winner = GetEffectivePrefValueController(pref_key, incognito, NULL); if (winner == entries_.end()) @@ -115,7 +120,8 @@ bool ExtensionPrefValueMap::DoesExtensionControlPref( void ExtensionPrefValueMap::RegisterExtension(const std::string& ext_id, const base::Time& install_time, - bool is_enabled) { + bool is_enabled, + bool is_incognito_enabled) { if (entries_.find(ext_id) == entries_.end()) { entries_[ext_id] = new ExtensionEntry; @@ -124,6 +130,7 @@ void ExtensionPrefValueMap::RegisterExtension(const std::string& ext_id, } entries_[ext_id]->enabled = is_enabled; + entries_[ext_id]->incognito_enabled = is_incognito_enabled; } void ExtensionPrefValueMap::UnregisterExtension(const std::string& ext_id) { @@ -154,6 +161,22 @@ void ExtensionPrefValueMap::SetExtensionState(const std::string& ext_id, NotifyPrefValueChanged(keys); } +void ExtensionPrefValueMap::SetExtensionIncognitoState( + const std::string& ext_id, + bool is_incognito_enabled) { + ExtensionEntryMap::const_iterator i = entries_.find(ext_id); + // This may happen when sync sets the extension state for an + // extension that is not installed. + if (i == entries_.end()) + return; + if (i->second->incognito_enabled == is_incognito_enabled) + return; + std::set<std::string> keys; // keys set by this extension + GetExtensionControlledKeys(*(i->second), &keys); + i->second->incognito_enabled = is_incognito_enabled; + NotifyPrefValueChanged(keys); +} + PrefValueMap* ExtensionPrefValueMap::GetExtensionPrefValueMap( const std::string& ext_id, ExtensionPrefsScope scope) { @@ -231,6 +254,7 @@ const base::Value* ExtensionPrefValueMap::GetEffectivePrefValue( // First search for incognito session only preferences. if (incognito) { + DCHECK(winner->second->incognito_enabled); const PrefValueMap* prefs = GetExtensionPrefValueMap( ext_id, extensions::kExtensionPrefsScopeIncognitoSessionOnly); prefs->GetValue(key, &value); @@ -274,11 +298,14 @@ ExtensionPrefValueMap::GetEffectivePrefValueController( const std::string& ext_id = i->first; const base::Time& install_time = i->second->install_time; const bool enabled = i->second->enabled; + const bool incognito_enabled = i->second->incognito_enabled; if (!enabled) continue; if (install_time < winners_install_time) continue; + if (incognito && !incognito_enabled) + continue; const base::Value* value = NULL; const PrefValueMap* prefs = GetExtensionPrefValueMap( diff --git a/extensions/browser/extension_pref_value_map.h b/extensions/browser/extension_pref_value_map.h index 48f30d9..c0e48cc 100644 --- a/extensions/browser/extension_pref_value_map.h +++ b/extensions/browser/extension_pref_value_map.h @@ -95,8 +95,9 @@ class ExtensionPrefValueMap : public BrowserContextKeyedService { extensions::ExtensionPrefsScope scope); // Returns true if currently no extension with higher precedence controls the - // preference. - // Note that the this function does does not consider the existence of + // preference. If |incognito| is true and the extension does not have + // incognito permission, CanExtensionControlPref returns false. + // Note that this function does does not consider the existence of // policies. An extension is only really able to control a preference if // PrefService::Preference::IsExtensionModifiable() returns true as well. bool CanExtensionControlPref(const std::string& extension_id, @@ -119,7 +120,8 @@ class ExtensionPrefValueMap : public BrowserContextKeyedService { const std::string& pref_key, bool* from_incognito) const; - // Returns the ID of the extension that currently controls this preference. + // Returns the ID of the extension that currently controls this preference + // for a regular profile. Incognito settings are ignored. // Returns an empty string if this preference is not controlled by an // extension. std::string GetExtensionControllingPref(const std::string& pref_key) const; @@ -130,7 +132,8 @@ class ExtensionPrefValueMap : public BrowserContextKeyedService { // Registers the time when an extension |ext_id| is installed. void RegisterExtension(const std::string& ext_id, const base::Time& install_time, - bool is_enabled); + bool is_enabled, + bool is_incognito_enabled); // Deletes all entries related to extension |ext_id|. void UnregisterExtension(const std::string& ext_id); @@ -139,6 +142,10 @@ class ExtensionPrefValueMap : public BrowserContextKeyedService { // visible. void SetExtensionState(const std::string& ext_id, bool is_enabled); + // Sets whether the extension has permission to access incognito state. + void SetExtensionIncognitoState(const std::string& ext_id, + bool is_incognito_enabled); + // Adds an observer and notifies it about the currently stored keys. void AddObserver(Observer* observer); diff --git a/extensions/browser/extension_pref_value_map_unittest.cc b/extensions/browser/extension_pref_value_map_unittest.cc index 35fa3c6..400a22f 100644 --- a/extensions/browser/extension_pref_value_map_unittest.cc +++ b/extensions/browser/extension_pref_value_map_unittest.cc @@ -52,6 +52,13 @@ class ExtensionPrefValueMapTestBase : public BASECLASS { return string_value; } + // Registers the extension as enabled but without incognito permission. + void RegisterExtension(const std::string& ext_id, + const base::Time& install_time) { + epvm_.RegisterExtension( + ext_id, install_time, true /*enabled*/, false /*incognito*/); + } + protected: ExtensionPrefValueMap epvm_; }; @@ -76,21 +83,21 @@ class ExtensionPrefValueMapObserverMock }; TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValue) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); + RegisterExtension(kExt1, CreateTime(10)); epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); EXPECT_EQ("val1", GetValue(kPref1, false)); }; TEST_F(ExtensionPrefValueMapTest, GetNotSetPrefValue) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); - EXPECT_EQ("", GetValue(kPref1, false)); + RegisterExtension(kExt1, CreateTime(10)); + EXPECT_EQ(std::string(), GetValue(kPref1, false)); }; // Make sure the last-installed extension wins for each preference. TEST_F(ExtensionPrefValueMapTest, Override) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); - epvm_.RegisterExtension(kExt2, CreateTime(20), true); - epvm_.RegisterExtension(kExt3, CreateTime(30), true); + RegisterExtension(kExt1, CreateTime(10)); + RegisterExtension(kExt2, CreateTime(20)); + RegisterExtension(kExt3, CreateTime(30)); epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); @@ -109,9 +116,9 @@ TEST_F(ExtensionPrefValueMapTest, Override) { } TEST_F(ExtensionPrefValueMapTest, OverrideChecks) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); - epvm_.RegisterExtension(kExt2, CreateTime(20), true); - epvm_.RegisterExtension(kExt3, CreateTime(30), true); + RegisterExtension(kExt1, CreateTime(10)); + RegisterExtension(kExt2, CreateTime(20)); + RegisterExtension(kExt3, CreateTime(30)); EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, NULL)); EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt2, kPref1, NULL)); @@ -131,23 +138,29 @@ TEST_F(ExtensionPrefValueMapTest, OverrideChecks) { } TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValueIncognito) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); + RegisterExtension(kExt1, CreateTime(10)); epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); + // Check that the value is not propagated until the extension gets incognito + // permission. + EXPECT_EQ(std::string(), GetValue(kPref1, true)); + epvm_.SetExtensionIncognitoState(kExt1, true); EXPECT_EQ("val1", GetValue(kPref1, true)); + epvm_.SetExtensionIncognitoState(kExt1, false); + EXPECT_EQ(std::string(), GetValue(kPref1, true)); } TEST_F(ExtensionPrefValueMapTest, UninstallOnlyExtension) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); + RegisterExtension(kExt1, CreateTime(10)); epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); epvm_.UnregisterExtension(kExt1); - EXPECT_EQ("", GetValue(kPref1, false)); + EXPECT_EQ(std::string(), GetValue(kPref1, false)); } // Tests uninstalling an extension that wasn't winning for any preferences. TEST_F(ExtensionPrefValueMapTest, UninstallIrrelevantExtension) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); - epvm_.RegisterExtension(kExt2, CreateTime(10), true); + RegisterExtension(kExt1, CreateTime(10)); + RegisterExtension(kExt2, CreateTime(10)); epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); @@ -163,9 +176,9 @@ TEST_F(ExtensionPrefValueMapTest, UninstallIrrelevantExtension) { // Tests uninstalling an extension that was winning for all preferences. TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromTop) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); - epvm_.RegisterExtension(kExt2, CreateTime(20), true); - epvm_.RegisterExtension(kExt3, CreateTime(30), true); + RegisterExtension(kExt1, CreateTime(10)); + RegisterExtension(kExt2, CreateTime(20)); + RegisterExtension(kExt3, CreateTime(30)); epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); @@ -182,9 +195,9 @@ TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromTop) { // Tests uninstalling an extension that was winning for only some preferences. TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromMiddle) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); - epvm_.RegisterExtension(kExt2, CreateTime(20), true); - epvm_.RegisterExtension(kExt3, CreateTime(30), true); + RegisterExtension(kExt1, CreateTime(10)); + RegisterExtension(kExt2, CreateTime(20)); + RegisterExtension(kExt3, CreateTime(30)); epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); @@ -202,7 +215,7 @@ TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromMiddle) { EXPECT_EQ("val3", GetValue(kPref1, false)); EXPECT_EQ("val4", GetValue(kPref2, false)); EXPECT_EQ("val6", GetValue(kPref3, false)); - EXPECT_EQ("", GetValue(kPref4, false)); + EXPECT_EQ(std::string(), GetValue(kPref4, false)); } // Tests triggering of notifications to registered observers. @@ -210,7 +223,7 @@ TEST_F(ExtensionPrefValueMapTest, NotifyWhenNeeded) { using testing::Mock; using testing::StrEq; - epvm_.RegisterExtension(kExt1, CreateTime(10), true); + RegisterExtension(kExt1, CreateTime(10)); ExtensionPrefValueMapObserverMock observer; epvm_.AddObserver(&observer); @@ -253,23 +266,23 @@ TEST_F(ExtensionPrefValueMapTest, NotifyWhenNeeded) { // Write new value --> no notification after removing observer. EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0); - epvm_.RegisterExtension(kExt1, CreateTime(10), true); + RegisterExtension(kExt1, CreateTime(10)); epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val4")); Mock::VerifyAndClearExpectations(&observer); } // Tests disabling an extension. TEST_F(ExtensionPrefValueMapTest, DisableExt) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); + RegisterExtension(kExt1, CreateTime(10)); epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); epvm_.SetExtensionState(kExt1, false); - EXPECT_EQ("", GetValue(kPref1, false)); + EXPECT_EQ(std::string(), GetValue(kPref1, false)); } // Tests disabling and reenabling an extension. TEST_F(ExtensionPrefValueMapTest, ReenableExt) { - epvm_.RegisterExtension(kExt1, CreateTime(10), true); + RegisterExtension(kExt1, CreateTime(10)); epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); epvm_.SetExtensionState(kExt1, false); @@ -278,7 +291,9 @@ TEST_F(ExtensionPrefValueMapTest, ReenableExt) { } struct OverrideIncognitoTestCase { - OverrideIncognitoTestCase(int val_ext1_regular, + OverrideIncognitoTestCase(bool enable_ext1_in_incognito, + bool enable_ext2_in_incognito, + int val_ext1_regular, int val_ext1_regular_only, int val_ext1_incognito_pers, int val_ext1_incognito_sess, @@ -288,7 +303,9 @@ struct OverrideIncognitoTestCase { int val_ext2_incognito_sess, int effective_value_regular, int effective_value_incognito) - : val_ext1_regular_(val_ext1_regular), + : enable_ext1_in_incognito_(enable_ext1_in_incognito), + enable_ext2_in_incognito_(enable_ext2_in_incognito), + val_ext1_regular_(val_ext1_regular), val_ext1_regular_only_(val_ext1_regular_only), val_ext1_incognito_pers_(val_ext1_incognito_pers), val_ext1_incognito_sess_(val_ext1_incognito_sess), @@ -299,6 +316,9 @@ struct OverrideIncognitoTestCase { effective_value_regular_(effective_value_regular), effective_value_incognito_(effective_value_incognito) {} + bool enable_ext1_in_incognito_; + bool enable_ext2_in_incognito_; + // pers. = persistent // sess. = session only int val_ext1_regular_; // pref value of extension 1 @@ -321,7 +341,7 @@ class ExtensionPrefValueMapTestIncognitoTests TEST_P(ExtensionPrefValueMapTestIncognitoTests, OverrideIncognito) { OverrideIncognitoTestCase test = GetParam(); const char* strings[] = { - "undefined", + "", // undefined "val1", "val2", "val3", @@ -332,8 +352,11 @@ TEST_P(ExtensionPrefValueMapTestIncognitoTests, OverrideIncognito) { "val8", }; - epvm_.RegisterExtension(kExt1, CreateTime(10), true); - epvm_.RegisterExtension(kExt2, CreateTime(20), true); + const bool kEnabled = true; + epvm_.RegisterExtension( + kExt1, CreateTime(10), kEnabled, test.enable_ext1_in_incognito_); + epvm_.RegisterExtension( + kExt2, CreateTime(20), kEnabled, test.enable_ext2_in_incognito_); if (test.val_ext1_regular_) { epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal(strings[test.val_ext1_regular_])); @@ -377,24 +400,42 @@ INSTANTIATE_TEST_CASE_P( ExtensionPrefValueMapTestIncognitoTestsInstance, ExtensionPrefValueMapTestIncognitoTests, testing::Values( - // e.g. (1, 0, 0, 0, 0, 0, 7, 0, 1, 7), means: + // e.g. (true, 1, 0, 0, 0, 0, 0, 7, 0, 1, 7), means: // ext1 regular is set to "val1", ext2 incognito persistent is set to // "val7" // --> the winning regular value is "val1", the winning incognito // value is "val7". - OverrideIncognitoTestCase(1, 0, 0, 0, 0, 0, 0, 0, 1, 1), - OverrideIncognitoTestCase(1, 2, 0, 0, 0, 0, 0, 0, 2, 1), - OverrideIncognitoTestCase(1, 0, 3, 0, 0, 0, 0, 0, 1, 3), - OverrideIncognitoTestCase(1, 0, 0, 4, 0, 0, 0, 0, 1, 4), - OverrideIncognitoTestCase(1, 0, 3, 4, 0, 0, 0, 0, 1, 4), - OverrideIncognitoTestCase(1, 2, 3, 0, 0, 0, 0, 0, 2, 3), - OverrideIncognitoTestCase(1, 0, 0, 0, 5, 0, 0, 0, 5, 5), - OverrideIncognitoTestCase(1, 2, 3, 0, 5, 0, 0, 0, 5, 5), - OverrideIncognitoTestCase(1, 0, 0, 0, 0, 6, 0, 0, 6, 1), - OverrideIncognitoTestCase(1, 0, 3, 0, 5, 6, 0, 0, 6, 5), - OverrideIncognitoTestCase(1, 0, 0, 4, 5, 6, 0, 0, 6, 5), - OverrideIncognitoTestCase(1, 0, 0, 0, 0, 0, 7, 0, 1, 7), - OverrideIncognitoTestCase(1, 2, 0, 0, 5, 0, 7, 0, 5, 7), - OverrideIncognitoTestCase(1, 2, 0, 0, 5, 0, 0, 8, 5, 8), - OverrideIncognitoTestCase(1, 2, 0, 0, 5, 0, 7, 8, 5, 8), - OverrideIncognitoTestCase(1, 2, 3, 0, 0, 6, 7, 0, 6, 7))); + OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1), + OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 0, 0, 0, 0, 2, 1), + OverrideIncognitoTestCase(true, true, 1, 0, 3, 0, 0, 0, 0, 0, 1, 3), + OverrideIncognitoTestCase(true, true, 1, 0, 0, 4, 0, 0, 0, 0, 1, 4), + OverrideIncognitoTestCase(true, true, 1, 0, 3, 4, 0, 0, 0, 0, 1, 4), + OverrideIncognitoTestCase(true, true, 1, 2, 3, 0, 0, 0, 0, 0, 2, 3), + OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 5, 0, 0, 0, 5, 5), + OverrideIncognitoTestCase(true, true, 1, 2, 3, 0, 5, 0, 0, 0, 5, 5), + OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 0, 6, 0, 0, 6, 1), + OverrideIncognitoTestCase(true, true, 1, 0, 3, 0, 5, 6, 0, 0, 6, 5), + OverrideIncognitoTestCase(true, true, 1, 0, 0, 4, 5, 6, 0, 0, 6, 5), + OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 0, 0, 7, 0, 1, 7), + OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 5, 0, 7, 0, 5, 7), + OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 5, 0, 0, 8, 5, 8), + OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 5, 0, 7, 8, 5, 8), + OverrideIncognitoTestCase(true, true, 1, 2, 3, 0, 0, 6, 7, 0, 6, 7), + // Same tests as above but w/o incognito permission. + OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0), + OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0), + OverrideIncognitoTestCase(false, false, 1, 0, 3, 0, 0, 0, 0, 0, 1, 0), + OverrideIncognitoTestCase(false, false, 1, 0, 0, 4, 0, 0, 0, 0, 1, 0), + OverrideIncognitoTestCase(false, false, 1, 0, 3, 4, 0, 0, 0, 0, 1, 0), + OverrideIncognitoTestCase(false, false, 1, 2, 3, 0, 0, 0, 0, 0, 2, 0), + OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 5, 0, 0, 0, 5, 0), + OverrideIncognitoTestCase(false, false, 1, 2, 3, 0, 5, 0, 0, 0, 5, 0), + OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 0, 6, 0, 0, 6, 0), + OverrideIncognitoTestCase(false, false, 1, 0, 3, 0, 5, 6, 0, 0, 6, 0), + OverrideIncognitoTestCase(false, false, 1, 0, 0, 4, 5, 6, 0, 0, 6, 0), + OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 0, 0, 7, 0, 1, 0), + OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 5, 0, 7, 0, 5, 0), + OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 5, 0, 0, 8, 5, 0), + OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 5, 0, 7, 8, 5, 0), + OverrideIncognitoTestCase(false, false, 1, 2, 3, 0, 0, 6, 7, 0, 6, 0) + )); diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc index 8c26aa3..aaab4cc 100644 --- a/extensions/browser/extension_prefs.cc +++ b/extensions/browser/extension_prefs.cc @@ -1036,6 +1036,7 @@ void ExtensionPrefs::SetIsIncognitoEnabled(const std::string& extension_id, bool enabled) { UpdateExtensionPref(extension_id, kPrefIncognitoEnabled, new base::FundamentalValue(enabled)); + extension_pref_value_map_->SetExtensionIncognitoState(extension_id, enabled); } bool ExtensionPrefs::AllowFileAccess(const std::string& extension_id) const { @@ -1901,9 +1902,10 @@ void ExtensionPrefs::FinishExtensionInfoPrefs( if (extension_dict->GetInteger(kPrefState, &initial_state)) { is_enabled = initial_state == Extension::ENABLED; } + bool is_incognito_enabled = IsIncognitoEnabled(extension_id); - extension_pref_value_map_->RegisterExtension(extension_id, install_time, - is_enabled); + extension_pref_value_map_->RegisterExtension( + extension_id, install_time, is_enabled, is_incognito_enabled); content_settings_store_->RegisterExtension(extension_id, install_time, is_enabled); } diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc index d6158c4..8532842 100644 --- a/extensions/common/extension.cc +++ b/extensions/common/extension.cc @@ -450,10 +450,6 @@ bool Extension::can_be_incognito_enabled() const { return !is_platform_app() || location() == Manifest::COMPONENT; } -bool Extension::force_incognito_enabled() const { - return PermissionsData::HasAPIPermission(this, APIPermission::kProxy); -} - void Extension::AddWebExtentPattern(const URLPattern& pattern) { // Bookmark apps are permissionless. if (from_bookmark()) diff --git a/extensions/common/extension.h b/extensions/common/extension.h index 85062d1..f1fe7d7 100644 --- a/extensions/common/extension.h +++ b/extensions/common/extension.h @@ -332,7 +332,6 @@ class Extension : public base::RefCountedThreadSafe<Extension> { bool is_legacy_packaged_app() const; bool is_extension() const; bool can_be_incognito_enabled() const; - bool force_incognito_enabled() const; void AddWebExtentPattern(const URLPattern& pattern); const URLPatternSet& web_extent() const { return extent_; } |