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 #ifndef EXTENSIONS_BROWSER_EXTENSION_PREFS_H_ | 5 #ifndef EXTENSIONS_BROWSER_EXTENSION_PREFS_H_ |
6 #define EXTENSIONS_BROWSER_EXTENSION_PREFS_H_ | 6 #define EXTENSIONS_BROWSER_EXTENSION_PREFS_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 // Returns true if the specified external extension was uninstalled by the | 166 // Returns true if the specified external extension was uninstalled by the |
167 // user. | 167 // user. |
168 bool IsExternalExtensionUninstalled(const std::string& id) const; | 168 bool IsExternalExtensionUninstalled(const std::string& id) const; |
169 | 169 |
170 // Checks whether |extension_id| is disabled. If there's no state pref for | 170 // Checks whether |extension_id| is disabled. If there's no state pref for |
171 // the extension, this will return false. Generally you should use | 171 // the extension, this will return false. Generally you should use |
172 // ExtensionService::IsExtensionEnabled instead. | 172 // ExtensionService::IsExtensionEnabled instead. |
173 bool IsExtensionDisabled(const std::string& id) const; | 173 bool IsExtensionDisabled(const std::string& id) const; |
174 | 174 |
175 // Get/Set the order that the browser actions appear in the toolbar. | 175 // Get/Set the order that the browser actions appear in the toolbar. |
176 ExtensionIdList GetToolbarOrder(); | 176 ExtensionIdList GetToolbarOrder() const; |
177 void SetToolbarOrder(const ExtensionIdList& extension_ids); | 177 void SetToolbarOrder(const ExtensionIdList& extension_ids); |
178 | 178 |
179 // Called when an extension is installed, so that prefs get created. | 179 // Called when an extension is installed, so that prefs get created. |
180 // If |page_ordinal| is invalid then a page will be found for the App. | 180 // If |page_ordinal| is invalid then a page will be found for the App. |
181 // |install_flags| are a bitmask of extension::InstallFlags. | 181 // |install_flags| are a bitmask of extension::InstallFlags. |
182 void OnExtensionInstalled(const Extension* extension, | 182 void OnExtensionInstalled(const Extension* extension, |
183 Extension::State initial_state, | 183 Extension::State initial_state, |
184 const syncer::StringOrdinal& page_ordinal, | 184 const syncer::StringOrdinal& page_ordinal, |
185 int install_flags, | 185 int install_flags, |
186 const std::string& install_parameter); | 186 const std::string& install_parameter); |
(...skipping 18 matching lines...) Expand all Loading... |
205 void SetExtensionState(const std::string& extension_id, Extension::State); | 205 void SetExtensionState(const std::string& extension_id, Extension::State); |
206 | 206 |
207 // Called to change the extension's BlacklistState. Currently only used for | 207 // Called to change the extension's BlacklistState. Currently only used for |
208 // non-malicious extensions. | 208 // non-malicious extensions. |
209 // TODO(oleg): replace SetExtensionBlacklisted by this function. | 209 // TODO(oleg): replace SetExtensionBlacklisted by this function. |
210 void SetExtensionBlacklistState(const std::string& extension_id, | 210 void SetExtensionBlacklistState(const std::string& extension_id, |
211 BlacklistState state); | 211 BlacklistState state); |
212 | 212 |
213 // Checks whether |extension_id| is marked as greylisted. | 213 // Checks whether |extension_id| is marked as greylisted. |
214 // TODO(oleg): Replace IsExtensionBlacklisted by this method. | 214 // TODO(oleg): Replace IsExtensionBlacklisted by this method. |
215 BlacklistState GetExtensionBlacklistState(const std::string& extension_id); | 215 BlacklistState GetExtensionBlacklistState( |
| 216 const std::string& extension_id) const; |
216 | 217 |
217 // Populates |out| with the ids of all installed extensions. | 218 // Populates |out| with the ids of all installed extensions. |
218 void GetExtensions(ExtensionIdList* out); | 219 void GetExtensions(ExtensionIdList* out) const; |
219 | 220 |
220 // ExtensionScopedPrefs methods: | 221 // ExtensionScopedPrefs methods: |
221 void UpdateExtensionPref(const std::string& id, | 222 void UpdateExtensionPref(const std::string& id, |
222 const std::string& key, | 223 const std::string& key, |
223 base::Value* value) override; | 224 base::Value* value) override; |
224 | 225 |
225 void DeleteExtensionPrefs(const std::string& id) override; | 226 void DeleteExtensionPrefs(const std::string& id) override; |
226 | 227 |
227 bool ReadPrefAsBoolean(const std::string& extension_id, | 228 bool ReadPrefAsBoolean(const std::string& extension_id, |
228 const std::string& pref_key, | 229 const std::string& pref_key, |
(...skipping 12 matching lines...) Expand all Loading... |
241 const base::ListValue** out_value) const override; | 242 const base::ListValue** out_value) const override; |
242 | 243 |
243 bool ReadPrefAsDictionary( | 244 bool ReadPrefAsDictionary( |
244 const std::string& extension_id, | 245 const std::string& extension_id, |
245 const std::string& pref_key, | 246 const std::string& pref_key, |
246 const base::DictionaryValue** out_value) const override; | 247 const base::DictionaryValue** out_value) const override; |
247 | 248 |
248 bool HasPrefForExtension(const std::string& extension_id) const override; | 249 bool HasPrefForExtension(const std::string& extension_id) const override; |
249 | 250 |
250 // Did the extension ask to escalate its permission during an upgrade? | 251 // Did the extension ask to escalate its permission during an upgrade? |
251 bool DidExtensionEscalatePermissions(const std::string& id); | 252 bool DidExtensionEscalatePermissions(const std::string& id) const; |
252 | 253 |
253 // If |did_escalate| is true, the preferences for |extension| will be set to | 254 // If |did_escalate| is true, the preferences for |extension| will be set to |
254 // require the install warning when the user tries to enable. | 255 // require the install warning when the user tries to enable. |
255 void SetDidExtensionEscalatePermissions( | 256 void SetDidExtensionEscalatePermissions( |
256 const Extension* extension, | 257 const Extension* extension, |
257 bool did_escalate); | 258 bool did_escalate); |
258 | 259 |
259 // Getters and setters for disabled reason. | 260 // Getters and setters for disabled reason. |
260 int GetDisableReasons(const std::string& extension_id) const; | 261 int GetDisableReasons(const std::string& extension_id) const; |
261 bool HasDisableReason(const std::string& extension_id, | 262 bool HasDisableReason(const std::string& extension_id, |
262 Extension::DisableReason disable_reason) const; | 263 Extension::DisableReason disable_reason) const; |
263 void AddDisableReason(const std::string& extension_id, | 264 void AddDisableReason(const std::string& extension_id, |
264 Extension::DisableReason disable_reason); | 265 Extension::DisableReason disable_reason); |
| 266 void AddDisableReasons(const std::string& extension_id, int disable_reasons); |
265 void RemoveDisableReason(const std::string& extension_id, | 267 void RemoveDisableReason(const std::string& extension_id, |
266 Extension::DisableReason disable_reason); | 268 Extension::DisableReason disable_reason); |
267 void ClearDisableReasons(const std::string& extension_id); | 269 void ClearDisableReasons(const std::string& extension_id); |
268 | 270 |
269 // Gets the set of extensions that have been blacklisted in prefs. This will | 271 // Gets the set of extensions that have been blacklisted in prefs. This will |
270 // return only the blocked extensions, not the "greylist" extensions. | 272 // return only the blocked extensions, not the "greylist" extensions. |
271 // TODO(oleg): Make method names consistent here, in extension service and in | 273 // TODO(oleg): Make method names consistent here, in extension service and in |
272 // blacklist. | 274 // blacklist. |
273 std::set<std::string> GetBlacklistedExtensions(); | 275 std::set<std::string> GetBlacklistedExtensions() const; |
274 | 276 |
275 // Sets whether the extension with |id| is blacklisted. | 277 // Sets whether the extension with |id| is blacklisted. |
276 void SetExtensionBlacklisted(const std::string& extension_id, | 278 void SetExtensionBlacklisted(const std::string& extension_id, |
277 bool is_blacklisted); | 279 bool is_blacklisted); |
278 | 280 |
279 // Returns the version string for the currently installed extension, or | 281 // Returns the version string for the currently installed extension, or |
280 // the empty string if not found. | 282 // the empty string if not found. |
281 std::string GetVersionString(const std::string& extension_id); | 283 std::string GetVersionString(const std::string& extension_id) const; |
282 | 284 |
283 // Re-writes the extension manifest into the prefs. | 285 // Re-writes the extension manifest into the prefs. |
284 // Called to change the extension's manifest when it's re-localized. | 286 // Called to change the extension's manifest when it's re-localized. |
285 void UpdateManifest(const Extension* extension); | 287 void UpdateManifest(const Extension* extension); |
286 | 288 |
287 // Returns base extensions install directory. | 289 // Returns base extensions install directory. |
288 const base::FilePath& install_directory() const { return install_directory_; } | 290 const base::FilePath& install_directory() const { return install_directory_; } |
289 | 291 |
290 // Returns whether the extension with |id| has its blacklist bit set. | 292 // Returns whether the extension with |id| has its blacklist bit set. |
291 // | 293 // |
292 // WARNING: this only checks the extension's entry in prefs, so by definition | 294 // WARNING: this only checks the extension's entry in prefs, so by definition |
293 // can only check extensions that prefs knows about. There may be other | 295 // can only check extensions that prefs knows about. There may be other |
294 // sources of blacklist information, such as safebrowsing. You probably want | 296 // sources of blacklist information, such as safebrowsing. You probably want |
295 // to use Blacklist::GetBlacklistedIDs rather than this method. | 297 // to use Blacklist::GetBlacklistedIDs rather than this method. |
296 bool IsExtensionBlacklisted(const std::string& id) const; | 298 bool IsExtensionBlacklisted(const std::string& id) const; |
297 | 299 |
298 // Increment the count of how many times we prompted the user to acknowledge | 300 // Increment the count of how many times we prompted the user to acknowledge |
299 // the given extension, and return the new count. | 301 // the given extension, and return the new count. |
300 int IncrementAcknowledgePromptCount(const std::string& extension_id); | 302 int IncrementAcknowledgePromptCount(const std::string& extension_id); |
301 | 303 |
302 // Whether the user has acknowledged an external extension. | 304 // Whether the user has acknowledged an external extension. |
303 bool IsExternalExtensionAcknowledged(const std::string& extension_id); | 305 bool IsExternalExtensionAcknowledged(const std::string& extension_id) const; |
304 void AcknowledgeExternalExtension(const std::string& extension_id); | 306 void AcknowledgeExternalExtension(const std::string& extension_id); |
305 | 307 |
306 // Whether the user has acknowledged a blacklisted extension. | 308 // Whether the user has acknowledged a blacklisted extension. |
307 bool IsBlacklistedExtensionAcknowledged(const std::string& extension_id); | 309 bool IsBlacklistedExtensionAcknowledged( |
| 310 const std::string& extension_id) const; |
308 void AcknowledgeBlacklistedExtension(const std::string& extension_id); | 311 void AcknowledgeBlacklistedExtension(const std::string& extension_id); |
309 | 312 |
310 // Whether the external extension was installed during the first run | 313 // Whether the external extension was installed during the first run |
311 // of this profile. | 314 // of this profile. |
312 bool IsExternalInstallFirstRun(const std::string& extension_id); | 315 bool IsExternalInstallFirstRun(const std::string& extension_id) const; |
313 void SetExternalInstallFirstRun(const std::string& extension_id); | 316 void SetExternalInstallFirstRun(const std::string& extension_id); |
314 | 317 |
315 // Returns true if the extension notification code has already run for the | 318 // Returns true if the extension notification code has already run for the |
316 // first time for this profile. Currently we use this flag to mean that any | 319 // first time for this profile. Currently we use this flag to mean that any |
317 // extensions that would trigger notifications should get silently | 320 // extensions that would trigger notifications should get silently |
318 // acknowledged. This is a fuse. Calling it the first time returns false. | 321 // acknowledged. This is a fuse. Calling it the first time returns false. |
319 // Subsequent calls return true. It's not possible through an API to ever | 322 // Subsequent calls return true. It's not possible through an API to ever |
320 // reset it. Don't call it unless you mean it! | 323 // reset it. Don't call it unless you mean it! |
321 bool SetAlertSystemFirstRun(); | 324 bool SetAlertSystemFirstRun(); |
322 | 325 |
323 // Returns the last value set via SetLastPingDay. If there isn't such a | 326 // Returns the last value set via SetLastPingDay. If there isn't such a |
324 // pref, the returned Time will return true for is_null(). | 327 // pref, the returned Time will return true for is_null(). |
325 base::Time LastPingDay(const std::string& extension_id) const; | 328 base::Time LastPingDay(const std::string& extension_id) const; |
326 | 329 |
327 // The time stored is based on the server's perspective of day start time, not | 330 // The time stored is based on the server's perspective of day start time, not |
328 // the client's. | 331 // the client's. |
329 void SetLastPingDay(const std::string& extension_id, const base::Time& time); | 332 void SetLastPingDay(const std::string& extension_id, const base::Time& time); |
330 | 333 |
331 // Similar to the 2 above, but for the extensions blacklist. | 334 // Similar to the 2 above, but for the extensions blacklist. |
332 base::Time BlacklistLastPingDay() const; | 335 base::Time BlacklistLastPingDay() const; |
333 void SetBlacklistLastPingDay(const base::Time& time); | 336 void SetBlacklistLastPingDay(const base::Time& time); |
334 | 337 |
335 // Similar to LastPingDay/SetLastPingDay, but for sending "days since active" | 338 // Similar to LastPingDay/SetLastPingDay, but for sending "days since active" |
336 // ping. | 339 // ping. |
337 base::Time LastActivePingDay(const std::string& extension_id); | 340 base::Time LastActivePingDay(const std::string& extension_id) const; |
338 void SetLastActivePingDay(const std::string& extension_id, | 341 void SetLastActivePingDay(const std::string& extension_id, |
339 const base::Time& time); | 342 const base::Time& time); |
340 | 343 |
341 // A bit we use for determining if we should send the "days since active" | 344 // A bit we use for determining if we should send the "days since active" |
342 // ping. A value of true means the item has been active (launched) since the | 345 // ping. A value of true means the item has been active (launched) since the |
343 // last update check. | 346 // last update check. |
344 bool GetActiveBit(const std::string& extension_id); | 347 bool GetActiveBit(const std::string& extension_id) const; |
345 void SetActiveBit(const std::string& extension_id, bool active); | 348 void SetActiveBit(const std::string& extension_id, bool active); |
346 | 349 |
347 // Returns the granted permission set for the extension with |extension_id|, | 350 // Returns the granted permission set for the extension with |extension_id|, |
348 // and NULL if no preferences were found for |extension_id|. | 351 // and NULL if no preferences were found for |extension_id|. |
349 // This passes ownership of the returned set to the caller. | 352 // This passes ownership of the returned set to the caller. |
350 PermissionSet* GetGrantedPermissions(const std::string& extension_id); | 353 PermissionSet* GetGrantedPermissions(const std::string& extension_id) const; |
351 | 354 |
352 // Adds |permissions| to the granted permissions set for the extension with | 355 // Adds |permissions| to the granted permissions set for the extension with |
353 // |extension_id|. The new granted permissions set will be the union of | 356 // |extension_id|. The new granted permissions set will be the union of |
354 // |permissions| and the already granted permissions. | 357 // |permissions| and the already granted permissions. |
355 void AddGrantedPermissions(const std::string& extension_id, | 358 void AddGrantedPermissions(const std::string& extension_id, |
356 const PermissionSet* permissions); | 359 const PermissionSet* permissions); |
357 | 360 |
358 // As above, but subtracts the given |permissions| from the granted set. | 361 // As above, but subtracts the given |permissions| from the granted set. |
359 void RemoveGrantedPermissions(const std::string& extension_id, | 362 void RemoveGrantedPermissions(const std::string& extension_id, |
360 const PermissionSet* permissions); | 363 const PermissionSet* permissions); |
361 | 364 |
362 // Gets the active permission set for the specified extension. This may | 365 // Gets the active permission set for the specified extension. This may |
363 // differ from the permissions in the manifest due to the optional | 366 // differ from the permissions in the manifest due to the optional |
364 // permissions API. This passes ownership of the set to the caller. | 367 // permissions API. This passes ownership of the set to the caller. |
365 PermissionSet* GetActivePermissions(const std::string& extension_id); | 368 PermissionSet* GetActivePermissions(const std::string& extension_id) const; |
366 | 369 |
367 // Sets the active |permissions| for the extension with |extension_id|. | 370 // Sets the active |permissions| for the extension with |extension_id|. |
368 void SetActivePermissions(const std::string& extension_id, | 371 void SetActivePermissions(const std::string& extension_id, |
369 const PermissionSet* permissions); | 372 const PermissionSet* permissions); |
370 | 373 |
371 // Records whether or not this extension is currently running. | 374 // Records whether or not this extension is currently running. |
372 void SetExtensionRunning(const std::string& extension_id, bool is_running); | 375 void SetExtensionRunning(const std::string& extension_id, bool is_running); |
373 | 376 |
374 // Returns whether or not this extension is marked as running. This is used to | 377 // Returns whether or not this extension is marked as running. This is used to |
375 // restart apps across browser restarts. | 378 // restart apps across browser restarts. |
376 bool IsExtensionRunning(const std::string& extension_id); | 379 bool IsExtensionRunning(const std::string& extension_id) const; |
377 | 380 |
378 // Set/Get whether or not the app is active. Used to force a launch of apps | 381 // Set/Get whether or not the app is active. Used to force a launch of apps |
379 // that don't handle onRestarted() on a restart. We can only safely do that if | 382 // that don't handle onRestarted() on a restart. We can only safely do that if |
380 // the app was active when it was last running. | 383 // the app was active when it was last running. |
381 void SetIsActive(const std::string& extension_id, bool is_active); | 384 void SetIsActive(const std::string& extension_id, bool is_active); |
382 bool IsActive(const std::string& extension_id); | 385 bool IsActive(const std::string& extension_id) const; |
383 | 386 |
384 // Returns true if the user enabled this extension to be loaded in incognito | 387 // Returns true if the user enabled this extension to be loaded in incognito |
385 // mode. | 388 // mode. |
386 // | 389 // |
387 // IMPORTANT: you probably want to use extensions::util::IsIncognitoEnabled | 390 // IMPORTANT: you probably want to use extensions::util::IsIncognitoEnabled |
388 // instead of this method. | 391 // instead of this method. |
389 bool IsIncognitoEnabled(const std::string& extension_id) const; | 392 bool IsIncognitoEnabled(const std::string& extension_id) const; |
390 void SetIsIncognitoEnabled(const std::string& extension_id, bool enabled); | 393 void SetIsIncognitoEnabled(const std::string& extension_id, bool enabled); |
391 | 394 |
392 // Returns true if the user has chosen to allow this extension to inject | 395 // Returns true if the user has chosen to allow this extension to inject |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 scoped_ptr<ExtensionsInfo> GetAllDelayedInstallInfo() const; | 446 scoped_ptr<ExtensionsInfo> GetAllDelayedInstallInfo() const; |
444 | 447 |
445 // Returns true if the extension is an ephemeral app. | 448 // Returns true if the extension is an ephemeral app. |
446 bool IsEphemeralApp(const std::string& extension_id) const; | 449 bool IsEphemeralApp(const std::string& extension_id) const; |
447 | 450 |
448 // Promotes an ephemeral app to a regular installed app. | 451 // Promotes an ephemeral app to a regular installed app. |
449 void OnEphemeralAppPromoted(const std::string& extension_id); | 452 void OnEphemeralAppPromoted(const std::string& extension_id); |
450 | 453 |
451 // Returns true if the user repositioned the app on the app launcher via drag | 454 // Returns true if the user repositioned the app on the app launcher via drag |
452 // and drop. | 455 // and drop. |
453 bool WasAppDraggedByUser(const std::string& extension_id); | 456 bool WasAppDraggedByUser(const std::string& extension_id) const; |
454 | 457 |
455 // Sets a flag indicating that the user repositioned the app on the app | 458 // Sets a flag indicating that the user repositioned the app on the app |
456 // launcher by drag and dropping it. | 459 // launcher by drag and dropping it. |
457 void SetAppDraggedByUser(const std::string& extension_id); | 460 void SetAppDraggedByUser(const std::string& extension_id); |
458 | 461 |
459 // Returns true if there is an extension which controls the preference value | 462 // Returns true if there is an extension which controls the preference value |
460 // for |pref_key| *and* it is specific to incognito mode. | 463 // for |pref_key| *and* it is specific to incognito mode. |
461 bool HasIncognitoPrefValue(const std::string& pref_key); | 464 bool HasIncognitoPrefValue(const std::string& pref_key) const; |
462 | 465 |
463 // Returns the creation flags mask for the extension. | 466 // Returns the creation flags mask for the extension. |
464 int GetCreationFlags(const std::string& extension_id) const; | 467 int GetCreationFlags(const std::string& extension_id) const; |
465 | 468 |
466 // Returns the creation flags mask for a delayed install extension. | 469 // Returns the creation flags mask for a delayed install extension. |
467 int GetDelayedInstallCreationFlags(const std::string& extension_id) const; | 470 int GetDelayedInstallCreationFlags(const std::string& extension_id) const; |
468 | 471 |
469 // Returns true if the extension was installed from the Chrome Web Store. | 472 // Returns true if the extension was installed from the Chrome Web Store. |
470 bool IsFromWebStore(const std::string& extension_id) const; | 473 bool IsFromWebStore(const std::string& extension_id) const; |
471 | 474 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
503 // The underlying PrefService. | 506 // The underlying PrefService. |
504 PrefService* pref_service() const { return prefs_; } | 507 PrefService* pref_service() const { return prefs_; } |
505 | 508 |
506 // The underlying AppSorting. | 509 // The underlying AppSorting. |
507 AppSorting* app_sorting() const { return app_sorting_.get(); } | 510 AppSorting* app_sorting() const { return app_sorting_.get(); } |
508 | 511 |
509 // Schedules garbage collection of an extension's on-disk data on the next | 512 // Schedules garbage collection of an extension's on-disk data on the next |
510 // start of this ExtensionService. Applies only to extensions with isolated | 513 // start of this ExtensionService. Applies only to extensions with isolated |
511 // storage. | 514 // storage. |
512 void SetNeedsStorageGarbageCollection(bool value); | 515 void SetNeedsStorageGarbageCollection(bool value); |
513 bool NeedsStorageGarbageCollection(); | 516 bool NeedsStorageGarbageCollection() const; |
514 | 517 |
515 // Used by AppWindowGeometryCache to persist its cache. These methods | 518 // Used by AppWindowGeometryCache to persist its cache. These methods |
516 // should not be called directly. | 519 // should not be called directly. |
517 const base::DictionaryValue* GetGeometryCache( | 520 const base::DictionaryValue* GetGeometryCache( |
518 const std::string& extension_id) const; | 521 const std::string& extension_id) const; |
519 void SetGeometryCache(const std::string& extension_id, | 522 void SetGeometryCache(const std::string& extension_id, |
520 scoped_ptr<base::DictionaryValue> cache); | 523 scoped_ptr<base::DictionaryValue> cache); |
521 | 524 |
522 // Used for verification of installed extension ids. For the Set method, pass | 525 // Used for verification of installed extension ids. For the Set method, pass |
523 // null to remove the preference. | 526 // null to remove the preference. |
524 const base::DictionaryValue* GetInstallSignature(); | 527 const base::DictionaryValue* GetInstallSignature() const; |
525 void SetInstallSignature(const base::DictionaryValue* signature); | 528 void SetInstallSignature(const base::DictionaryValue* signature); |
526 | 529 |
527 // The installation parameter associated with the extension. | 530 // The installation parameter associated with the extension. |
528 std::string GetInstallParam(const std::string& extension_id) const; | 531 std::string GetInstallParam(const std::string& extension_id) const; |
529 void SetInstallParam(const std::string& extension_id, | 532 void SetInstallParam(const std::string& extension_id, |
530 const std::string& install_parameter); | 533 const std::string& install_parameter); |
531 | 534 |
532 // The total number of times we've disabled an extension due to corrupted | 535 // The total number of times we've disabled an extension due to corrupted |
533 // contents. | 536 // contents. |
534 int GetCorruptedDisableCount(); | 537 int GetCorruptedDisableCount() const; |
535 void IncrementCorruptedDisableCount(); | 538 void IncrementCorruptedDisableCount(); |
536 | 539 |
537 private: | 540 private: |
538 friend class ExtensionPrefsBlacklistedExtensions; // Unit test. | 541 friend class ExtensionPrefsBlacklistedExtensions; // Unit test. |
539 friend class ExtensionPrefsComponentExtension; // Unit test. | 542 friend class ExtensionPrefsComponentExtension; // Unit test. |
540 friend class ExtensionPrefsUninstallExtension; // Unit test. | 543 friend class ExtensionPrefsUninstallExtension; // Unit test. |
541 | 544 |
542 enum DisableReasonChange { | 545 enum DisableReasonChange { |
543 DISABLE_REASON_ADD, | 546 DISABLE_REASON_ADD, |
544 DISABLE_REASON_REMOVE, | 547 DISABLE_REASON_REMOVE, |
(...skipping 22 matching lines...) Expand all Loading... |
567 // |extension| dictionary. | 570 // |extension| dictionary. |
568 scoped_ptr<ExtensionInfo> GetInstalledInfoHelper( | 571 scoped_ptr<ExtensionInfo> GetInstalledInfoHelper( |
569 const std::string& extension_id, | 572 const std::string& extension_id, |
570 const base::DictionaryValue* extension) const; | 573 const base::DictionaryValue* extension) const; |
571 | 574 |
572 // Interprets the list pref, |pref_key| in |extension_id|'s preferences, as a | 575 // Interprets the list pref, |pref_key| in |extension_id|'s preferences, as a |
573 // URLPatternSet. The |valid_schemes| specify how to parse the URLPatterns. | 576 // URLPatternSet. The |valid_schemes| specify how to parse the URLPatterns. |
574 bool ReadPrefAsURLPatternSet(const std::string& extension_id, | 577 bool ReadPrefAsURLPatternSet(const std::string& extension_id, |
575 const std::string& pref_key, | 578 const std::string& pref_key, |
576 URLPatternSet* result, | 579 URLPatternSet* result, |
577 int valid_schemes); | 580 int valid_schemes) const; |
578 | 581 |
579 // Converts |new_value| to a list of strings and sets the |pref_key| pref | 582 // Converts |new_value| to a list of strings and sets the |pref_key| pref |
580 // belonging to |extension_id|. | 583 // belonging to |extension_id|. |
581 void SetExtensionPrefURLPatternSet(const std::string& extension_id, | 584 void SetExtensionPrefURLPatternSet(const std::string& extension_id, |
582 const std::string& pref_key, | 585 const std::string& pref_key, |
583 const URLPatternSet& new_value); | 586 const URLPatternSet& new_value); |
584 | 587 |
585 // Read the boolean preference entry and return true if the preference exists | 588 // Read the boolean preference entry and return true if the preference exists |
586 // and the preference's value is true; false otherwise. | 589 // and the preference's value is true; false otherwise. |
587 bool ReadPrefAsBooleanAndReturn(const std::string& extension_id, | 590 bool ReadPrefAsBooleanAndReturn(const std::string& extension_id, |
588 const std::string& key) const; | 591 const std::string& key) const; |
589 | 592 |
590 // Interprets |pref_key| in |extension_id|'s preferences as an | 593 // Interprets |pref_key| in |extension_id|'s preferences as an |
591 // PermissionSet, and passes ownership of the set to the caller. | 594 // PermissionSet, and passes ownership of the set to the caller. |
592 PermissionSet* ReadPrefAsPermissionSet(const std::string& extension_id, | 595 PermissionSet* ReadPrefAsPermissionSet(const std::string& extension_id, |
593 const std::string& pref_key); | 596 const std::string& pref_key) const; |
594 | 597 |
595 // Converts the |new_value| to its value and sets the |pref_key| pref | 598 // Converts the |new_value| to its value and sets the |pref_key| pref |
596 // belonging to |extension_id|. | 599 // belonging to |extension_id|. |
597 void SetExtensionPrefPermissionSet(const std::string& extension_id, | 600 void SetExtensionPrefPermissionSet(const std::string& extension_id, |
598 const std::string& pref_key, | 601 const std::string& pref_key, |
599 const PermissionSet* new_value); | 602 const PermissionSet* new_value); |
600 | 603 |
601 // Returns an immutable dictionary for extension |id|'s prefs, or NULL if it | 604 // Returns an immutable dictionary for extension |id|'s prefs, or NULL if it |
602 // doesn't exist. | 605 // doesn't exist. |
603 const base::DictionaryValue* GetExtensionPref(const std::string& id) const; | 606 const base::DictionaryValue* GetExtensionPref(const std::string& id) const; |
(...skipping 24 matching lines...) Expand all Loading... |
628 // it matches |check_state|. | 631 // it matches |check_state|. |
629 bool DoesExtensionHaveState(const std::string& id, | 632 bool DoesExtensionHaveState(const std::string& id, |
630 Extension::State check_state) const; | 633 Extension::State check_state) const; |
631 | 634 |
632 // Reads the list of strings for |pref| from user prefs into | 635 // Reads the list of strings for |pref| from user prefs into |
633 // |id_container_out|. Returns false if the pref wasn't found in the user | 636 // |id_container_out|. Returns false if the pref wasn't found in the user |
634 // pref store. | 637 // pref store. |
635 template <class ExtensionIdContainer> | 638 template <class ExtensionIdContainer> |
636 bool GetUserExtensionPrefIntoContainer( | 639 bool GetUserExtensionPrefIntoContainer( |
637 const char* pref, | 640 const char* pref, |
638 ExtensionIdContainer* id_container_out); | 641 ExtensionIdContainer* id_container_out) const; |
639 | 642 |
640 // Writes the list of strings contained in |strings| to |pref| in prefs. | 643 // Writes the list of strings contained in |strings| to |pref| in prefs. |
641 template <class ExtensionIdContainer> | 644 template <class ExtensionIdContainer> |
642 void SetExtensionPrefFromContainer(const char* pref, | 645 void SetExtensionPrefFromContainer(const char* pref, |
643 const ExtensionIdContainer& strings); | 646 const ExtensionIdContainer& strings); |
644 | 647 |
645 // Helper function to populate |extension_dict| with the values needed | 648 // Helper function to populate |extension_dict| with the values needed |
646 // by a newly installed extension. Work is broken up between this | 649 // by a newly installed extension. Work is broken up between this |
647 // function and FinishExtensionInfoPrefs() to accomodate delayed | 650 // function and FinishExtensionInfoPrefs() to accommodate delayed |
648 // installations. | 651 // installations. |
649 // | 652 // |
650 // |install_flags| are a bitmask of extension::InstallFlags. | 653 // |install_flags| are a bitmask of extension::InstallFlags. |
651 void PopulateExtensionInfoPrefs(const Extension* extension, | 654 void PopulateExtensionInfoPrefs(const Extension* extension, |
652 const base::Time install_time, | 655 const base::Time install_time, |
653 Extension::State initial_state, | 656 Extension::State initial_state, |
654 int install_flags, | 657 int install_flags, |
655 const std::string& install_parameter, | 658 const std::string& install_parameter, |
656 base::DictionaryValue* extension_dict); | 659 base::DictionaryValue* extension_dict) const; |
657 | 660 |
658 void InitExtensionControlledPrefs(ExtensionPrefValueMap* value_map); | 661 void InitExtensionControlledPrefs(ExtensionPrefValueMap* value_map); |
659 | 662 |
660 // Helper function to complete initialization of the values in | 663 // Helper function to complete initialization of the values in |
661 // |extension_dict| for an extension install. Also see | 664 // |extension_dict| for an extension install. Also see |
662 // PopulateExtensionInfoPrefs(). | 665 // PopulateExtensionInfoPrefs(). |
663 void FinishExtensionInfoPrefs( | 666 void FinishExtensionInfoPrefs( |
664 const std::string& extension_id, | 667 const std::string& extension_id, |
665 const base::Time install_time, | 668 const base::Time install_time, |
666 bool needs_sort_ordinal, | 669 bool needs_sort_ordinal, |
(...skipping 19 matching lines...) Expand all Loading... |
686 bool extensions_disabled_; | 689 bool extensions_disabled_; |
687 | 690 |
688 ObserverList<ExtensionPrefsObserver> observer_list_; | 691 ObserverList<ExtensionPrefsObserver> observer_list_; |
689 | 692 |
690 DISALLOW_COPY_AND_ASSIGN(ExtensionPrefs); | 693 DISALLOW_COPY_AND_ASSIGN(ExtensionPrefs); |
691 }; | 694 }; |
692 | 695 |
693 } // namespace extensions | 696 } // namespace extensions |
694 | 697 |
695 #endif // EXTENSIONS_BROWSER_EXTENSION_PREFS_H_ | 698 #endif // EXTENSIONS_BROWSER_EXTENSION_PREFS_H_ |
OLD | NEW |