Commit d8012dc4 authored by Jan Krcal's avatar Jan Krcal Committed by Commit Bot

[Sync] Deprecate favicon data types

This CL deprecates two data types: FAVICON_IMAGES and FAVICON_TRACKING.
The CL also removes all logic related to these data types that can be
removed at the moment. The actual data types need to stay until 2020-12
because of clean-up code.

Bug: 978775
Change-Id: I396ba5f55b97075635167d762677f51e5dc6612e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2162847
Auto-Submit: Jan Krcal <jkrcal@chromium.org>
Commit-Queue: Marc Treib <treib@chromium.org>
Reviewed-by: default avatarMarc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#763325}
parent 105aeef2
...@@ -27,7 +27,9 @@ EXCEPTION_MODEL_TYPES = [ ...@@ -27,7 +27,9 @@ EXCEPTION_MODEL_TYPES = [
'SUPERVISED_USER_WHITELISTS', # See previous. 'SUPERVISED_USER_WHITELISTS', # See previous.
# Deprecated types: # Deprecated types:
'DEPRECATED_EXPERIMENTS'] 'DEPRECATED_EXPERIMENTS',
'DEPRECATED_FAVICON_IMAGES',
'DEPRECATED_FAVICON_TRACKING']
# Root tags are used as prefixes when creating storage keys, so certain strings # Root tags are used as prefixes when creating storage keys, so certain strings
# are blacklisted in order to prevent prefix collision. # are blacklisted in order to prevent prefix collision.
......
...@@ -113,10 +113,10 @@ const ModelTypeInfo kModelTypeInfoMap[] = { ...@@ -113,10 +113,10 @@ const ModelTypeInfo kModelTypeInfoMap[] = {
{DICTIONARY, "DICTIONARY", "dictionary", "Dictionary", {DICTIONARY, "DICTIONARY", "dictionary", "Dictionary",
sync_pb::EntitySpecifics::kDictionaryFieldNumber, sync_pb::EntitySpecifics::kDictionaryFieldNumber,
ModelTypeForHistograms::kDictionary}, ModelTypeForHistograms::kDictionary},
{FAVICON_IMAGES, "FAVICON_IMAGE", "favicon_images", "Favicon Images", {DEPRECATED_FAVICON_IMAGES, "FAVICON_IMAGE", "favicon_images",
sync_pb::EntitySpecifics::kFaviconImageFieldNumber, "Favicon Images", sync_pb::EntitySpecifics::kFaviconImageFieldNumber,
ModelTypeForHistograms::kFaviconImages}, ModelTypeForHistograms::kFaviconImages},
{FAVICON_TRACKING, "FAVICON_TRACKING", "favicon_tracking", {DEPRECATED_FAVICON_TRACKING, "FAVICON_TRACKING", "favicon_tracking",
"Favicon Tracking", sync_pb::EntitySpecifics::kFaviconTrackingFieldNumber, "Favicon Tracking", sync_pb::EntitySpecifics::kFaviconTrackingFieldNumber,
ModelTypeForHistograms::kFaviconTracking}, ModelTypeForHistograms::kFaviconTracking},
{DEVICE_INFO, "DEVICE_INFO", "device_info", "Device Info", {DEVICE_INFO, "DEVICE_INFO", "device_info", "Device Info",
...@@ -254,10 +254,10 @@ void AddDefaultFieldValue(ModelType type, sync_pb::EntitySpecifics* specifics) { ...@@ -254,10 +254,10 @@ void AddDefaultFieldValue(ModelType type, sync_pb::EntitySpecifics* specifics) {
case DICTIONARY: case DICTIONARY:
specifics->mutable_dictionary(); specifics->mutable_dictionary();
break; break;
case FAVICON_IMAGES: case DEPRECATED_FAVICON_IMAGES:
specifics->mutable_favicon_image(); specifics->mutable_favicon_image();
break; break;
case FAVICON_TRACKING: case DEPRECATED_FAVICON_TRACKING:
specifics->mutable_favicon_tracking(); specifics->mutable_favicon_tracking();
break; break;
case DEVICE_INFO: case DEVICE_INFO:
...@@ -400,9 +400,9 @@ ModelType GetModelTypeFromSpecifics(const sync_pb::EntitySpecifics& specifics) { ...@@ -400,9 +400,9 @@ ModelType GetModelTypeFromSpecifics(const sync_pb::EntitySpecifics& specifics) {
if (specifics.has_dictionary()) if (specifics.has_dictionary())
return DICTIONARY; return DICTIONARY;
if (specifics.has_favicon_image()) if (specifics.has_favicon_image())
return FAVICON_IMAGES; return DEPRECATED_FAVICON_IMAGES;
if (specifics.has_favicon_tracking()) if (specifics.has_favicon_tracking())
return FAVICON_TRACKING; return DEPRECATED_FAVICON_TRACKING;
if (specifics.has_device_info()) if (specifics.has_device_info())
return DEVICE_INFO; return DEVICE_INFO;
if (specifics.has_priority_preference()) if (specifics.has_priority_preference())
......
...@@ -97,11 +97,9 @@ enum ModelType { ...@@ -97,11 +97,9 @@ enum ModelType {
// Custom spelling dictionary entries. // Custom spelling dictionary entries.
DICTIONARY, DICTIONARY,
// Favicon images, including both the image URL and the actual pixels. // Favicon images, including both the image URL and the actual pixels.
// TODO(https://crbug.com/978775): Prepend DEPRECATED to the name of favicon DEPRECATED_FAVICON_IMAGES,
// data types.
FAVICON_IMAGES,
// Favicon tracking information, i.e. metadata such as last visit date. // Favicon tracking information, i.e. metadata such as last visit date.
FAVICON_TRACKING, DEPRECATED_FAVICON_TRACKING,
// Client-specific metadata, synced before other user types. // Client-specific metadata, synced before other user types.
DEVICE_INFO, DEVICE_INFO,
// These preferences are synced before other user types and are never // These preferences are synced before other user types and are never
...@@ -255,13 +253,13 @@ constexpr ModelTypeSet ProtocolTypes() { ...@@ -255,13 +253,13 @@ constexpr ModelTypeSet ProtocolTypes() {
BOOKMARKS, PREFERENCES, PASSWORDS, AUTOFILL_PROFILE, AUTOFILL, BOOKMARKS, PREFERENCES, PASSWORDS, AUTOFILL_PROFILE, AUTOFILL,
AUTOFILL_WALLET_DATA, AUTOFILL_WALLET_METADATA, THEMES, TYPED_URLS, AUTOFILL_WALLET_DATA, AUTOFILL_WALLET_METADATA, THEMES, TYPED_URLS,
EXTENSIONS, SEARCH_ENGINES, SESSIONS, APPS, APP_SETTINGS, EXTENSIONS, SEARCH_ENGINES, SESSIONS, APPS, APP_SETTINGS,
EXTENSION_SETTINGS, HISTORY_DELETE_DIRECTIVES, DICTIONARY, FAVICON_IMAGES, EXTENSION_SETTINGS, HISTORY_DELETE_DIRECTIVES, DICTIONARY,
FAVICON_TRACKING, DEVICE_INFO, PRIORITY_PREFERENCES, DEPRECATED_FAVICON_IMAGES, DEPRECATED_FAVICON_TRACKING, DEVICE_INFO,
SUPERVISED_USER_SETTINGS, APP_LIST, SUPERVISED_USER_WHITELISTS, PRIORITY_PREFERENCES, SUPERVISED_USER_SETTINGS, APP_LIST,
ARC_PACKAGE, PRINTERS, READING_LIST, USER_EVENTS, NIGORI, SUPERVISED_USER_WHITELISTS, ARC_PACKAGE, PRINTERS, READING_LIST,
DEPRECATED_EXPERIMENTS, USER_CONSENTS, SEND_TAB_TO_SELF, SECURITY_EVENTS, USER_EVENTS, NIGORI, DEPRECATED_EXPERIMENTS, USER_CONSENTS,
WEB_APPS, WIFI_CONFIGURATIONS, OS_PREFERENCES, OS_PRIORITY_PREFERENCES, SEND_TAB_TO_SELF, SECURITY_EVENTS, WEB_APPS, WIFI_CONFIGURATIONS,
SHARING_MESSAGE); OS_PREFERENCES, OS_PRIORITY_PREFERENCES, SHARING_MESSAGE);
} }
// These are the normal user-controlled types. This is to distinguish from // These are the normal user-controlled types. This is to distinguish from
......
...@@ -64,8 +64,9 @@ UserSelectableTypeInfo GetUserSelectableTypeInfo(UserSelectableType type) { ...@@ -64,8 +64,9 @@ UserSelectableTypeInfo GetUserSelectableTypeInfo(UserSelectableType type) {
case UserSelectableType::kHistory: case UserSelectableType::kHistory:
return {kTypedUrlsTypeName, return {kTypedUrlsTypeName,
TYPED_URLS, TYPED_URLS,
{TYPED_URLS, HISTORY_DELETE_DIRECTIVES, SESSIONS, FAVICON_IMAGES, {TYPED_URLS, HISTORY_DELETE_DIRECTIVES, SESSIONS,
FAVICON_TRACKING, USER_EVENTS}}; DEPRECATED_FAVICON_IMAGES, DEPRECATED_FAVICON_TRACKING,
USER_EVENTS}};
case UserSelectableType::kExtensions: case UserSelectableType::kExtensions:
return { return {
kExtensionsTypeName, EXTENSIONS, {EXTENSIONS, EXTENSION_SETTINGS}}; kExtensionsTypeName, EXTENSIONS, {EXTENSIONS, EXTENSION_SETTINGS}};
...@@ -88,8 +89,8 @@ UserSelectableTypeInfo GetUserSelectableTypeInfo(UserSelectableType type) { ...@@ -88,8 +89,8 @@ UserSelectableTypeInfo GetUserSelectableTypeInfo(UserSelectableType type) {
case UserSelectableType::kTabs: case UserSelectableType::kTabs:
return {kTabsTypeName, return {kTabsTypeName,
PROXY_TABS, PROXY_TABS,
{PROXY_TABS, SESSIONS, FAVICON_IMAGES, FAVICON_TRACKING, {PROXY_TABS, SESSIONS, DEPRECATED_FAVICON_IMAGES,
SEND_TAB_TO_SELF}}; DEPRECATED_FAVICON_TRACKING, SEND_TAB_TO_SELF}};
} }
NOTREACHED(); NOTREACHED();
return {nullptr, UNSPECIFIED}; return {nullptr, UNSPECIFIED};
......
...@@ -303,8 +303,6 @@ void SyncEngineImpl::FinishConfigureDataTypesOnFrontendLoop( ...@@ -303,8 +303,6 @@ void SyncEngineImpl::FinishConfigureDataTypesOnFrontendLoop(
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
if (!sessions_invalidation_enabled_) { if (!sessions_invalidation_enabled_) {
invalidation_enabled_types.Remove(syncer::SESSIONS); invalidation_enabled_types.Remove(syncer::SESSIONS);
invalidation_enabled_types.Remove(syncer::FAVICON_IMAGES);
invalidation_enabled_types.Remove(syncer::FAVICON_TRACKING);
} }
#endif #endif
bool success = invalidator_->UpdateInterestedTopics( bool success = invalidator_->UpdateInterestedTopics(
...@@ -463,8 +461,6 @@ void SyncEngineImpl::SetInvalidationsForSessionsEnabled(bool enabled) { ...@@ -463,8 +461,6 @@ void SyncEngineImpl::SetInvalidationsForSessionsEnabled(bool enabled) {
Difference(last_enabled_types_, CommitOnlyTypes())); Difference(last_enabled_types_, CommitOnlyTypes()));
if (!enabled) { if (!enabled) {
enabled_for_invalidation.Remove(syncer::SESSIONS); enabled_for_invalidation.Remove(syncer::SESSIONS);
enabled_for_invalidation.Remove(syncer::FAVICON_IMAGES);
enabled_for_invalidation.Remove(syncer::FAVICON_TRACKING);
} }
bool success = invalidator_->UpdateInterestedTopics( bool success = invalidator_->UpdateInterestedTopics(
this, ModelTypeSetToTopicSet(enabled_for_invalidation)); this, ModelTypeSetToTopicSet(enabled_for_invalidation));
......
...@@ -734,18 +734,14 @@ TEST_F(SyncEngineImplTest, ...@@ -734,18 +734,14 @@ TEST_F(SyncEngineImplTest,
// Making sure that the noisy types we're interested in are in the // Making sure that the noisy types we're interested in are in the
// |enabled_types_|. // |enabled_types_|.
enabled_types_.Put(SESSIONS); enabled_types_.Put(SESSIONS);
enabled_types_.Put(FAVICON_IMAGES);
enabled_types_.Put(FAVICON_TRACKING);
ModelTypeSet invalidation_enabled_types( ModelTypeSet invalidation_enabled_types(
Difference(enabled_types_, CommitOnlyTypes())); Difference(enabled_types_, CommitOnlyTypes()));
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
// SESSIONS, FAVICON_IMAGES, FAVICON_TRACKING are noisy data types whose // SESSIONS is a noisy data type whose invalidations aren't enabled by default
// invalidations aren't enabled by default on Android. // on Android.
invalidation_enabled_types.Remove(SESSIONS); invalidation_enabled_types.Remove(SESSIONS);
invalidation_enabled_types.Remove(FAVICON_IMAGES);
invalidation_enabled_types.Remove(FAVICON_TRACKING);
#endif #endif
InitializeBackend(true); InitializeBackend(true);
...@@ -764,8 +760,6 @@ TEST_F(SyncEngineImplTest, WhenEnabledTypesStayDisabled) { ...@@ -764,8 +760,6 @@ TEST_F(SyncEngineImplTest, WhenEnabledTypesStayDisabled) {
// they're disabled in Sync, hence removing noisy datatypes from // they're disabled in Sync, hence removing noisy datatypes from
// |enabled_types_|. // |enabled_types_|.
enabled_types_.Remove(SESSIONS); enabled_types_.Remove(SESSIONS);
enabled_types_.Remove(FAVICON_IMAGES);
enabled_types_.Remove(FAVICON_TRACKING);
InitializeBackend(true); InitializeBackend(true);
EXPECT_CALL(invalidator_, EXPECT_CALL(invalidator_,
...@@ -783,8 +777,6 @@ TEST_F(SyncEngineImplTest, ...@@ -783,8 +777,6 @@ TEST_F(SyncEngineImplTest,
// Making sure that the noisy types we're interested in are in the // Making sure that the noisy types we're interested in are in the
// |enabled_types_|. // |enabled_types_|.
enabled_types_.Put(SESSIONS); enabled_types_.Put(SESSIONS);
enabled_types_.Put(FAVICON_IMAGES);
enabled_types_.Put(FAVICON_TRACKING);
InitializeBackend(true); InitializeBackend(true);
ConfigureDataTypes(); ConfigureDataTypes();
...@@ -797,8 +789,6 @@ TEST_F(SyncEngineImplTest, ...@@ -797,8 +789,6 @@ TEST_F(SyncEngineImplTest,
ModelTypeSet enabled_types(enabled_types_); ModelTypeSet enabled_types(enabled_types_);
enabled_types.Remove(SESSIONS); enabled_types.Remove(SESSIONS);
enabled_types.Remove(FAVICON_IMAGES);
enabled_types.Remove(FAVICON_TRACKING);
EXPECT_CALL(invalidator_, EXPECT_CALL(invalidator_,
UpdateInterestedTopics(backend_.get(), UpdateInterestedTopics(backend_.get(),
......
...@@ -45,9 +45,10 @@ static const ModelType kStartOrder[] = { ...@@ -45,9 +45,10 @@ static const ModelType kStartOrder[] = {
// UI thread data types. // UI thread data types.
BOOKMARKS, PREFERENCES, PRIORITY_PREFERENCES, EXTENSIONS, APPS, APP_LIST, BOOKMARKS, PREFERENCES, PRIORITY_PREFERENCES, EXTENSIONS, APPS, APP_LIST,
ARC_PACKAGE, READING_LIST, THEMES, SEARCH_ENGINES, SESSIONS, DICTIONARY, ARC_PACKAGE, READING_LIST, THEMES, SEARCH_ENGINES, SESSIONS, DICTIONARY,
FAVICON_IMAGES, FAVICON_TRACKING, PRINTERS, USER_CONSENTS, USER_EVENTS, DEPRECATED_FAVICON_IMAGES, DEPRECATED_FAVICON_TRACKING, PRINTERS,
SHARING_MESSAGE, SUPERVISED_USER_SETTINGS, SUPERVISED_USER_WHITELISTS, USER_CONSENTS, USER_EVENTS, SHARING_MESSAGE, SUPERVISED_USER_SETTINGS,
SEND_TAB_TO_SELF, SECURITY_EVENTS, WEB_APPS, WIFI_CONFIGURATIONS}; SUPERVISED_USER_WHITELISTS, SEND_TAB_TO_SELF, SECURITY_EVENTS, WEB_APPS,
WIFI_CONFIGURATIONS};
static_assert(base::size(kStartOrder) == static_assert(base::size(kStartOrder) ==
ModelType::NUM_ENTRIES - FIRST_REAL_MODEL_TYPE, ModelType::NUM_ENTRIES - FIRST_REAL_MODEL_TYPE,
......
...@@ -41,8 +41,6 @@ base::TimeDelta GetDefaultDelayForType(ModelType model_type, ...@@ -41,8 +41,6 @@ base::TimeDelta GetDefaultDelayForType(ModelType model_type,
case BOOKMARKS: case BOOKMARKS:
case PREFERENCES: case PREFERENCES:
case SESSIONS: case SESSIONS:
case FAVICON_IMAGES:
case FAVICON_TRACKING:
// Types with sometimes automatic changes get longer delays to allow more // Types with sometimes automatic changes get longer delays to allow more
// coalescing. // coalescing.
return base::TimeDelta::FromMilliseconds(kSlowNudgeDelayMilliseconds); return base::TimeDelta::FromMilliseconds(kSlowNudgeDelayMilliseconds);
......
...@@ -826,10 +826,6 @@ TEST_F(NudgeTrackerTest, NudgeDelayTest) { ...@@ -826,10 +826,6 @@ TEST_F(NudgeTrackerTest, NudgeDelayTest) {
EXPECT_EQ(nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS)), EXPECT_EQ(nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS)),
nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS))); nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS)));
// Favicons have the same delay as sessions.
EXPECT_EQ(nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS)),
nudge_tracker_.RecordLocalChange(ModelTypeSet(FAVICON_TRACKING)));
// Autofill has the longer delay of all. // Autofill has the longer delay of all.
EXPECT_GT(nudge_tracker_.RecordLocalChange(ModelTypeSet(AUTOFILL)), EXPECT_GT(nudge_tracker_.RecordLocalChange(ModelTypeSet(AUTOFILL)),
nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS))); nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS)));
......
...@@ -472,10 +472,6 @@ SyncerError SyncerProtoUtil::PostClientToServerMessage( ...@@ -472,10 +472,6 @@ SyncerError SyncerProtoUtil::PostClientToServerMessage(
std::map<ModelType, base::TimeDelta> delay_map; std::map<ModelType, base::TimeDelta> delay_map;
delay_map[SESSIONS] = delay_map[SESSIONS] =
base::TimeDelta::FromSeconds(command.sessions_commit_delay_seconds()); base::TimeDelta::FromSeconds(command.sessions_commit_delay_seconds());
delay_map[FAVICON_TRACKING] =
base::TimeDelta::FromSeconds(command.sessions_commit_delay_seconds());
delay_map[FAVICON_IMAGES] =
base::TimeDelta::FromSeconds(command.sessions_commit_delay_seconds());
cycle->delegate()->OnReceivedCustomNudgeDelays(delay_map); cycle->delegate()->OnReceivedCustomNudgeDelays(delay_map);
} }
......
...@@ -40,9 +40,10 @@ void InitOnBackendSequence(const base::FilePath& level_db_path, ...@@ -40,9 +40,10 @@ void InitOnBackendSequence(const base::FilePath& level_db_path,
return; return;
} }
// TODO(crbug.com/978775): Remove the cleanup logic after a year. // TODO(crbug.com/978775): Remove the cleanup logic after a year (in 2020-12).
// Clean up local data from deprecated datatypes. // Clean up local data from deprecated datatypes.
for (ModelType type : {FAVICON_IMAGES, FAVICON_TRACKING}) { for (ModelType type :
{DEPRECATED_FAVICON_IMAGES, DEPRECATED_FAVICON_TRACKING}) {
BlockingModelTypeStoreImpl(type, store_backend).DeleteAllDataAndMetadata(); BlockingModelTypeStoreImpl(type, store_backend).DeleteAllDataAndMetadata();
} }
} }
......
...@@ -80,9 +80,10 @@ void UpdateNigoriSpecificsFromEncryptedTypes( ...@@ -80,9 +80,10 @@ void UpdateNigoriSpecificsFromEncryptedTypes(
specifics->set_encrypt_extension_settings( specifics->set_encrypt_extension_settings(
encrypted_types.Has(EXTENSION_SETTINGS)); encrypted_types.Has(EXTENSION_SETTINGS));
specifics->set_encrypt_dictionary(encrypted_types.Has(DICTIONARY)); specifics->set_encrypt_dictionary(encrypted_types.Has(DICTIONARY));
specifics->set_encrypt_favicon_images(encrypted_types.Has(FAVICON_IMAGES)); specifics->set_encrypt_favicon_images(
encrypted_types.Has(DEPRECATED_FAVICON_IMAGES));
specifics->set_encrypt_favicon_tracking( specifics->set_encrypt_favicon_tracking(
encrypted_types.Has(FAVICON_TRACKING)); encrypted_types.Has(DEPRECATED_FAVICON_TRACKING));
specifics->set_encrypt_app_list(encrypted_types.Has(APP_LIST)); specifics->set_encrypt_app_list(encrypted_types.Has(APP_LIST));
specifics->set_encrypt_arc_package(encrypted_types.Has(ARC_PACKAGE)); specifics->set_encrypt_arc_package(encrypted_types.Has(ARC_PACKAGE));
specifics->set_encrypt_printers(encrypted_types.Has(PRINTERS)); specifics->set_encrypt_printers(encrypted_types.Has(PRINTERS));
......
...@@ -283,8 +283,10 @@ void UpdateNigoriFromEncryptedTypes(ModelTypeSet encrypted_types, ...@@ -283,8 +283,10 @@ void UpdateNigoriFromEncryptedTypes(ModelTypeSet encrypted_types,
nigori->set_encrypt_extension_settings( nigori->set_encrypt_extension_settings(
encrypted_types.Has(EXTENSION_SETTINGS)); encrypted_types.Has(EXTENSION_SETTINGS));
nigori->set_encrypt_dictionary(encrypted_types.Has(DICTIONARY)); nigori->set_encrypt_dictionary(encrypted_types.Has(DICTIONARY));
nigori->set_encrypt_favicon_images(encrypted_types.Has(FAVICON_IMAGES)); nigori->set_encrypt_favicon_images(
nigori->set_encrypt_favicon_tracking(encrypted_types.Has(FAVICON_TRACKING)); encrypted_types.Has(DEPRECATED_FAVICON_IMAGES));
nigori->set_encrypt_favicon_tracking(
encrypted_types.Has(DEPRECATED_FAVICON_TRACKING));
nigori->set_encrypt_app_list(encrypted_types.Has(APP_LIST)); nigori->set_encrypt_app_list(encrypted_types.Has(APP_LIST));
nigori->set_encrypt_arc_package(encrypted_types.Has(ARC_PACKAGE)); nigori->set_encrypt_arc_package(encrypted_types.Has(ARC_PACKAGE));
nigori->set_encrypt_printers(encrypted_types.Has(PRINTERS)); nigori->set_encrypt_printers(encrypted_types.Has(PRINTERS));
...@@ -331,9 +333,9 @@ ModelTypeSet GetEncryptedTypesFromNigori( ...@@ -331,9 +333,9 @@ ModelTypeSet GetEncryptedTypesFromNigori(
if (nigori.encrypt_dictionary()) if (nigori.encrypt_dictionary())
encrypted_types.Put(DICTIONARY); encrypted_types.Put(DICTIONARY);
if (nigori.encrypt_favicon_images()) if (nigori.encrypt_favicon_images())
encrypted_types.Put(FAVICON_IMAGES); encrypted_types.Put(DEPRECATED_FAVICON_IMAGES);
if (nigori.encrypt_favicon_tracking()) if (nigori.encrypt_favicon_tracking())
encrypted_types.Put(FAVICON_TRACKING); encrypted_types.Put(DEPRECATED_FAVICON_TRACKING);
if (nigori.encrypt_app_list()) if (nigori.encrypt_app_list())
encrypted_types.Put(APP_LIST); encrypted_types.Put(APP_LIST);
if (nigori.encrypt_arc_package()) if (nigori.encrypt_arc_package())
......
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