| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/extension_prefs.h" | 5 #include "chrome/browser/extensions/extension_prefs.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/string_number_conversions.h" | 8 #include "base/string_number_conversions.h" |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 | 60 |
| 61 // Indicates whether an extension is blacklisted. | 61 // Indicates whether an extension is blacklisted. |
| 62 const char kPrefBlacklist[] = "blacklist"; | 62 const char kPrefBlacklist[] = "blacklist"; |
| 63 | 63 |
| 64 // The oauth client id used for app notification setup. | 64 // The oauth client id used for app notification setup. |
| 65 const char kPrefAppNotificationClientId[] = "app_notif_client_id"; | 65 const char kPrefAppNotificationClientId[] = "app_notif_client_id"; |
| 66 | 66 |
| 67 // Indicates whether the user has disabled notifications or not. | 67 // Indicates whether the user has disabled notifications or not. |
| 68 const char kPrefAppNotificationDisbaled[] = "app_notif_disabled"; | 68 const char kPrefAppNotificationDisbaled[] = "app_notif_disabled"; |
| 69 | 69 |
| 70 // The count of how many times we prompted the user to acknowledge an |
| 71 // extension. |
| 72 const char kPrefAcknowledgePromptCount[] = "ack_prompt_count"; |
| 73 |
| 70 // Indicates whether the user has acknowledged various types of extensions. | 74 // Indicates whether the user has acknowledged various types of extensions. |
| 71 const char kPrefExternalAcknowledged[] = "ack_external"; | 75 const char kPrefExternalAcknowledged[] = "ack_external"; |
| 72 const char kPrefBlacklistAcknowledged[] = "ack_blacklist"; | 76 const char kPrefBlacklistAcknowledged[] = "ack_blacklist"; |
| 73 const char kPrefOrphanAcknowledged[] = "ack_orphan"; | 77 const char kPrefOrphanAcknowledged[] = "ack_orphan"; |
| 74 | 78 |
| 75 // Indicates whether to show an install warning when the user enables. | 79 // Indicates whether to show an install warning when the user enables. |
| 76 const char kExtensionDidEscalatePermissions[] = "install_warning_on_enable"; | 80 const char kExtensionDidEscalatePermissions[] = "install_warning_on_enable"; |
| 77 | 81 |
| 78 // DO NOT USE, use kPrefDisableReasons instead. | 82 // DO NOT USE, use kPrefDisableReasons instead. |
| 79 // Indicates whether the extension was updated while it was disabled. | 83 // Indicates whether the extension was updated while it was disabled. |
| (...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 } | 597 } |
| 594 } | 598 } |
| 595 | 599 |
| 596 bool ExtensionPrefs::IsExtensionOrphaned(const std::string& extension_id) { | 600 bool ExtensionPrefs::IsExtensionOrphaned(const std::string& extension_id) { |
| 597 // TODO(miket): we believe that this test will hinge on the number of | 601 // TODO(miket): we believe that this test will hinge on the number of |
| 598 // consecutive times that an update check has returned a certain response | 602 // consecutive times that an update check has returned a certain response |
| 599 // versus a success response. For now nobody is orphaned. | 603 // versus a success response. For now nobody is orphaned. |
| 600 return false; | 604 return false; |
| 601 } | 605 } |
| 602 | 606 |
| 607 int ExtensionPrefs::IncrementAcknowledgePromptCount( |
| 608 const std::string& extension_id) { |
| 609 int count = 0; |
| 610 ReadExtensionPrefInteger(extension_id, kPrefAcknowledgePromptCount, &count); |
| 611 ++count; |
| 612 UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, |
| 613 Value::CreateIntegerValue(count)); |
| 614 return count; |
| 615 } |
| 616 |
| 603 bool ExtensionPrefs::IsExternalExtensionAcknowledged( | 617 bool ExtensionPrefs::IsExternalExtensionAcknowledged( |
| 604 const std::string& extension_id) { | 618 const std::string& extension_id) { |
| 605 return ReadExtensionPrefBoolean(extension_id, kPrefExternalAcknowledged); | 619 return ReadExtensionPrefBoolean(extension_id, kPrefExternalAcknowledged); |
| 606 } | 620 } |
| 607 | 621 |
| 608 void ExtensionPrefs::AcknowledgeExternalExtension( | 622 void ExtensionPrefs::AcknowledgeExternalExtension( |
| 609 const std::string& extension_id) { | 623 const std::string& extension_id) { |
| 610 DCHECK(Extension::IdIsValid(extension_id)); | 624 DCHECK(Extension::IdIsValid(extension_id)); |
| 611 UpdateExtensionPref(extension_id, kPrefExternalAcknowledged, | 625 UpdateExtensionPref(extension_id, kPrefExternalAcknowledged, |
| 612 Value::CreateBooleanValue(true)); | 626 Value::CreateBooleanValue(true)); |
| 627 UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, NULL); |
| 613 } | 628 } |
| 614 | 629 |
| 615 bool ExtensionPrefs::IsBlacklistedExtensionAcknowledged( | 630 bool ExtensionPrefs::IsBlacklistedExtensionAcknowledged( |
| 616 const std::string& extension_id) { | 631 const std::string& extension_id) { |
| 617 return ReadExtensionPrefBoolean(extension_id, kPrefBlacklistAcknowledged); | 632 return ReadExtensionPrefBoolean(extension_id, kPrefBlacklistAcknowledged); |
| 618 } | 633 } |
| 619 | 634 |
| 620 void ExtensionPrefs::AcknowledgeBlacklistedExtension( | 635 void ExtensionPrefs::AcknowledgeBlacklistedExtension( |
| 621 const std::string& extension_id) { | 636 const std::string& extension_id) { |
| 622 DCHECK(Extension::IdIsValid(extension_id)); | 637 DCHECK(Extension::IdIsValid(extension_id)); |
| 623 UpdateExtensionPref(extension_id, kPrefBlacklistAcknowledged, | 638 UpdateExtensionPref(extension_id, kPrefBlacklistAcknowledged, |
| 624 Value::CreateBooleanValue(true)); | 639 Value::CreateBooleanValue(true)); |
| 640 UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, NULL); |
| 625 } | 641 } |
| 626 | 642 |
| 627 bool ExtensionPrefs::IsOrphanedExtensionAcknowledged( | 643 bool ExtensionPrefs::IsOrphanedExtensionAcknowledged( |
| 628 const std::string& extension_id) { | 644 const std::string& extension_id) { |
| 629 return ReadExtensionPrefBoolean(extension_id, kPrefOrphanAcknowledged); | 645 return ReadExtensionPrefBoolean(extension_id, kPrefOrphanAcknowledged); |
| 630 } | 646 } |
| 631 | 647 |
| 632 void ExtensionPrefs::AcknowledgeOrphanedExtension( | 648 void ExtensionPrefs::AcknowledgeOrphanedExtension( |
| 633 const std::string& extension_id) { | 649 const std::string& extension_id) { |
| 634 DCHECK(Extension::IdIsValid(extension_id)); | 650 DCHECK(Extension::IdIsValid(extension_id)); |
| 635 UpdateExtensionPref(extension_id, kPrefOrphanAcknowledged, | 651 UpdateExtensionPref(extension_id, kPrefOrphanAcknowledged, |
| 636 Value::CreateBooleanValue(true)); | 652 Value::CreateBooleanValue(true)); |
| 653 UpdateExtensionPref(extension_id, kPrefAcknowledgePromptCount, NULL); |
| 637 } | 654 } |
| 638 | 655 |
| 639 bool ExtensionPrefs::SetAlertSystemFirstRun() { | 656 bool ExtensionPrefs::SetAlertSystemFirstRun() { |
| 640 if (prefs_->GetBoolean(prefs::kExtensionAlertsInitializedPref)) { | 657 if (prefs_->GetBoolean(prefs::kExtensionAlertsInitializedPref)) { |
| 641 return true; | 658 return true; |
| 642 } | 659 } |
| 643 prefs_->SetBoolean(prefs::kExtensionAlertsInitializedPref, true); | 660 prefs_->SetBoolean(prefs::kExtensionAlertsInitializedPref, true); |
| 644 return false; | 661 return false; |
| 645 } | 662 } |
| 646 | 663 |
| (...skipping 1591 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2238 const ExtensionIdList& strings) { | 2255 const ExtensionIdList& strings) { |
| 2239 ListPrefUpdate update(prefs_, pref); | 2256 ListPrefUpdate update(prefs_, pref); |
| 2240 ListValue* list_of_values = update.Get(); | 2257 ListValue* list_of_values = update.Get(); |
| 2241 list_of_values->Clear(); | 2258 list_of_values->Clear(); |
| 2242 for (ExtensionIdList::const_iterator iter = strings.begin(); | 2259 for (ExtensionIdList::const_iterator iter = strings.begin(); |
| 2243 iter != strings.end(); ++iter) | 2260 iter != strings.end(); ++iter) |
| 2244 list_of_values->Append(new StringValue(*iter)); | 2261 list_of_values->Append(new StringValue(*iter)); |
| 2245 } | 2262 } |
| 2246 | 2263 |
| 2247 } // namespace extensions | 2264 } // namespace extensions |
| OLD | NEW |