OLD | NEW |
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/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 | 334 |
335 // | 335 // |
336 // ExtensionPrefs | 336 // ExtensionPrefs |
337 // | 337 // |
338 | 338 |
339 // static | 339 // static |
340 ExtensionPrefs* ExtensionPrefs::Create( | 340 ExtensionPrefs* ExtensionPrefs::Create( |
341 PrefService* prefs, | 341 PrefService* prefs, |
342 const base::FilePath& root_dir, | 342 const base::FilePath& root_dir, |
343 ExtensionPrefValueMap* extension_pref_value_map, | 343 ExtensionPrefValueMap* extension_pref_value_map, |
344 scoped_ptr<AppSorting> app_sorting, | |
345 bool extensions_disabled, | 344 bool extensions_disabled, |
346 const std::vector<ExtensionPrefsObserver*>& early_observers) { | 345 const std::vector<ExtensionPrefsObserver*>& early_observers) { |
347 return ExtensionPrefs::Create(prefs, | 346 return ExtensionPrefs::Create(prefs, |
348 root_dir, | 347 root_dir, |
349 extension_pref_value_map, | 348 extension_pref_value_map, |
350 app_sorting.Pass(), | |
351 extensions_disabled, | 349 extensions_disabled, |
352 early_observers, | 350 early_observers, |
353 make_scoped_ptr(new TimeProvider())); | 351 make_scoped_ptr(new TimeProvider())); |
354 } | 352 } |
355 | 353 |
356 // static | 354 // static |
357 ExtensionPrefs* ExtensionPrefs::Create( | 355 ExtensionPrefs* ExtensionPrefs::Create( |
358 PrefService* pref_service, | 356 PrefService* pref_service, |
359 const base::FilePath& root_dir, | 357 const base::FilePath& root_dir, |
360 ExtensionPrefValueMap* extension_pref_value_map, | 358 ExtensionPrefValueMap* extension_pref_value_map, |
361 scoped_ptr<AppSorting> app_sorting, | |
362 bool extensions_disabled, | 359 bool extensions_disabled, |
363 const std::vector<ExtensionPrefsObserver*>& early_observers, | 360 const std::vector<ExtensionPrefsObserver*>& early_observers, |
364 scoped_ptr<TimeProvider> time_provider) { | 361 scoped_ptr<TimeProvider> time_provider) { |
365 return new ExtensionPrefs(pref_service, | 362 return new ExtensionPrefs(pref_service, |
366 root_dir, | 363 root_dir, |
367 extension_pref_value_map, | 364 extension_pref_value_map, |
368 app_sorting.Pass(), | |
369 time_provider.Pass(), | 365 time_provider.Pass(), |
370 extensions_disabled, | 366 extensions_disabled, |
371 early_observers); | 367 early_observers); |
372 } | 368 } |
373 | 369 |
374 ExtensionPrefs::~ExtensionPrefs() { | 370 ExtensionPrefs::~ExtensionPrefs() { |
375 } | 371 } |
376 | 372 |
377 // static | 373 // static |
378 ExtensionPrefs* ExtensionPrefs::Get(content::BrowserContext* context) { | 374 ExtensionPrefs* ExtensionPrefs::Get(content::BrowserContext* context) { |
(...skipping 1394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1773 for (ExtensionIdList::iterator ext_id = extension_ids.begin(); | 1769 for (ExtensionIdList::iterator ext_id = extension_ids.begin(); |
1774 ext_id != extension_ids.end(); ++ext_id) { | 1770 ext_id != extension_ids.end(); ++ext_id) { |
1775 ScopedExtensionPrefUpdate update(prefs_, *ext_id); | 1771 ScopedExtensionPrefUpdate update(prefs_, *ext_id); |
1776 // This creates an empty dictionary if none is stored. | 1772 // This creates an empty dictionary if none is stored. |
1777 update.Get(); | 1773 update.Get(); |
1778 } | 1774 } |
1779 | 1775 |
1780 FixMissingPrefs(extension_ids); | 1776 FixMissingPrefs(extension_ids); |
1781 MigratePermissions(extension_ids); | 1777 MigratePermissions(extension_ids); |
1782 MigrateDisableReasons(extension_ids); | 1778 MigrateDisableReasons(extension_ids); |
1783 app_sorting_->Initialize(extension_ids); | |
1784 | 1779 |
1785 InitExtensionControlledPrefs(extension_pref_value_map_); | 1780 InitExtensionControlledPrefs(extension_pref_value_map_); |
1786 | 1781 |
1787 extension_pref_value_map_->NotifyInitializationCompleted(); | 1782 extension_pref_value_map_->NotifyInitializationCompleted(); |
1788 } | 1783 } |
1789 | 1784 |
1790 bool ExtensionPrefs::HasIncognitoPrefValue(const std::string& pref_key) const { | 1785 bool ExtensionPrefs::HasIncognitoPrefValue(const std::string& pref_key) const { |
1791 bool has_incognito_pref_value = false; | 1786 bool has_incognito_pref_value = false; |
1792 extension_pref_value_map_->GetEffectivePrefValue(pref_key, | 1787 extension_pref_value_map_->GetEffectivePrefValue(pref_key, |
1793 true, | 1788 true, |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1863 void ExtensionPrefs::SetNeedsSync(const std::string& extension_id, | 1858 void ExtensionPrefs::SetNeedsSync(const std::string& extension_id, |
1864 bool needs_sync) { | 1859 bool needs_sync) { |
1865 UpdateExtensionPref(extension_id, kPrefNeedsSync, | 1860 UpdateExtensionPref(extension_id, kPrefNeedsSync, |
1866 needs_sync ? new base::FundamentalValue(true) : nullptr); | 1861 needs_sync ? new base::FundamentalValue(true) : nullptr); |
1867 } | 1862 } |
1868 | 1863 |
1869 ExtensionPrefs::ExtensionPrefs( | 1864 ExtensionPrefs::ExtensionPrefs( |
1870 PrefService* prefs, | 1865 PrefService* prefs, |
1871 const base::FilePath& root_dir, | 1866 const base::FilePath& root_dir, |
1872 ExtensionPrefValueMap* extension_pref_value_map, | 1867 ExtensionPrefValueMap* extension_pref_value_map, |
1873 scoped_ptr<AppSorting> app_sorting, | |
1874 scoped_ptr<TimeProvider> time_provider, | 1868 scoped_ptr<TimeProvider> time_provider, |
1875 bool extensions_disabled, | 1869 bool extensions_disabled, |
1876 const std::vector<ExtensionPrefsObserver*>& early_observers) | 1870 const std::vector<ExtensionPrefsObserver*>& early_observers) |
1877 : prefs_(prefs), | 1871 : prefs_(prefs), |
1878 install_directory_(root_dir), | 1872 install_directory_(root_dir), |
1879 extension_pref_value_map_(extension_pref_value_map), | 1873 extension_pref_value_map_(extension_pref_value_map), |
1880 app_sorting_(app_sorting.Pass()), | 1874 app_sorting_(nullptr), |
1881 time_provider_(time_provider.Pass()), | 1875 time_provider_(time_provider.Pass()), |
1882 extensions_disabled_(extensions_disabled) { | 1876 extensions_disabled_(extensions_disabled) { |
1883 // TODO(mgiuca): Added these checks to try and diagnose | |
1884 // http://crbug.com/476648. Remove them after the investigation is concluded. | |
1885 CHECK(this); | |
1886 app_sorting_->SetExtensionScopedPrefs(this); | |
1887 app_sorting_->CheckExtensionScopedPrefs(); | |
1888 MakePathsRelative(); | 1877 MakePathsRelative(); |
1889 | 1878 |
1890 // Ensure that any early observers are watching before prefs are initialized. | 1879 // Ensure that any early observers are watching before prefs are initialized. |
1891 for (std::vector<ExtensionPrefsObserver*>::const_iterator iter = | 1880 for (std::vector<ExtensionPrefsObserver*>::const_iterator iter = |
1892 early_observers.begin(); | 1881 early_observers.begin(); |
1893 iter != early_observers.end(); | 1882 iter != early_observers.end(); |
1894 ++iter) { | 1883 ++iter) { |
1895 AddObserver(*iter); | 1884 AddObserver(*iter); |
1896 } | 1885 } |
1897 | 1886 |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2123 extension_pref_value_map_->RegisterExtension( | 2112 extension_pref_value_map_->RegisterExtension( |
2124 extension_id, install_time, is_enabled, is_incognito_enabled); | 2113 extension_id, install_time, is_enabled, is_incognito_enabled); |
2125 | 2114 |
2126 FOR_EACH_OBSERVER( | 2115 FOR_EACH_OBSERVER( |
2127 ExtensionPrefsObserver, | 2116 ExtensionPrefsObserver, |
2128 observer_list_, | 2117 observer_list_, |
2129 OnExtensionRegistered(extension_id, install_time, is_enabled)); | 2118 OnExtensionRegistered(extension_id, install_time, is_enabled)); |
2130 } | 2119 } |
2131 | 2120 |
2132 } // namespace extensions | 2121 } // namespace extensions |
OLD | NEW |