Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: extensions/browser/extension_prefs.cc

Issue 397903002: Do not assign launch ordinals to ephemeral apps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ephemapp_unload_review
Patch Set: Changed implementation Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/browser/extension_prefs.h" 5 #include "extensions/browser/extension_prefs.h"
6 6
7 #include <iterator> 7 #include <iterator>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/prefs/pref_notifier.h" 10 #include "base/prefs/pref_notifier.h"
(...skipping 1219 matching lines...) Expand 10 before | Expand all | Expand 10 after
1230 const std::string& install_parameter) { 1230 const std::string& install_parameter) {
1231 ScopedExtensionPrefUpdate update(prefs_, extension->id()); 1231 ScopedExtensionPrefUpdate update(prefs_, extension->id());
1232 base::DictionaryValue* extension_dict = update.Get(); 1232 base::DictionaryValue* extension_dict = update.Get();
1233 const base::Time install_time = time_provider_->GetCurrentTime(); 1233 const base::Time install_time = time_provider_->GetCurrentTime();
1234 PopulateExtensionInfoPrefs(extension, 1234 PopulateExtensionInfoPrefs(extension,
1235 install_time, 1235 install_time,
1236 initial_state, 1236 initial_state,
1237 install_flags, 1237 install_flags,
1238 install_parameter, 1238 install_parameter,
1239 extension_dict); 1239 extension_dict);
1240 FinishExtensionInfoPrefs(extension->id(), install_time, 1240
1241 extension->RequiresSortOrdinal(), 1241 bool requires_sort_ordinal = extension->RequiresSortOrdinal() &&
1242 page_ordinal, extension_dict); 1242 (install_flags & kInstallFlagIsEphemeral) == 0;
1243 FinishExtensionInfoPrefs(extension->id(),
1244 install_time,
1245 requires_sort_ordinal,
1246 page_ordinal,
1247 extension_dict);
1243 } 1248 }
1244 1249
1245 void ExtensionPrefs::OnExtensionUninstalled(const std::string& extension_id, 1250 void ExtensionPrefs::OnExtensionUninstalled(const std::string& extension_id,
1246 const Manifest::Location& location, 1251 const Manifest::Location& location,
1247 bool external_uninstall) { 1252 bool external_uninstall) {
1248 app_sorting_->ClearOrdinals(extension_id); 1253 app_sorting_->ClearOrdinals(extension_id);
1249 1254
1250 // For external extensions, we save a preference reminding ourself not to try 1255 // For external extensions, we save a preference reminding ourself not to try
1251 // and install the extension anymore (except when |external_uninstall| is 1256 // and install the extension anymore (except when |external_uninstall| is
1252 // true, which signifies that the registry key was deleted or the pref file 1257 // true, which signifies that the registry key was deleted or the pref file
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
1445 PopulateExtensionInfoPrefs(extension, 1450 PopulateExtensionInfoPrefs(extension,
1446 time_provider_->GetCurrentTime(), 1451 time_provider_->GetCurrentTime(),
1447 initial_state, 1452 initial_state,
1448 install_flags, 1453 install_flags,
1449 install_parameter, 1454 install_parameter,
1450 extension_dict); 1455 extension_dict);
1451 1456
1452 // Add transient data that is needed by FinishDelayedInstallInfo(), but 1457 // Add transient data that is needed by FinishDelayedInstallInfo(), but
1453 // should not be in the final extension prefs. All entries here should have 1458 // should not be in the final extension prefs. All entries here should have
1454 // a corresponding Remove() call in FinishDelayedInstallInfo(). 1459 // a corresponding Remove() call in FinishDelayedInstallInfo().
1455 if (extension->RequiresSortOrdinal()) { 1460 if (extension->RequiresSortOrdinal() &&
1461 (install_flags & kInstallFlagIsEphemeral) == 0) {
1456 extension_dict->SetString( 1462 extension_dict->SetString(
1457 kPrefSuggestedPageOrdinal, 1463 kPrefSuggestedPageOrdinal,
1458 page_ordinal.IsValid() ? page_ordinal.ToInternalValue() 1464 page_ordinal.IsValid() ? page_ordinal.ToInternalValue()
1459 : std::string()); 1465 : std::string());
1460 } 1466 }
1461 extension_dict->SetInteger(kDelayedInstallReason, 1467 extension_dict->SetInteger(kDelayedInstallReason,
1462 static_cast<int>(delay_reason)); 1468 static_cast<int>(delay_reason));
1463 1469
1464 UpdateExtensionPref(extension->id(), kDelayedInstallInfo, extension_dict); 1470 UpdateExtensionPref(extension->id(), kDelayedInstallInfo, extension_dict);
1465 } 1471 }
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after
2185 extension_pref_value_map_->RegisterExtension( 2191 extension_pref_value_map_->RegisterExtension(
2186 extension_id, install_time, is_enabled, is_incognito_enabled); 2192 extension_id, install_time, is_enabled, is_incognito_enabled);
2187 2193
2188 FOR_EACH_OBSERVER( 2194 FOR_EACH_OBSERVER(
2189 ExtensionPrefsObserver, 2195 ExtensionPrefsObserver,
2190 observer_list_, 2196 observer_list_,
2191 OnExtensionRegistered(extension_id, install_time, is_enabled)); 2197 OnExtensionRegistered(extension_id, install_time, is_enabled));
2192 } 2198 }
2193 2199
2194 } // namespace extensions 2200 } // namespace extensions
OLDNEW
« extensions/browser/app_sorting.h ('K') | « extensions/browser/app_sorting.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698