| 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/media_gallery/media_galleries_preferences.h" | 5 #include "chrome/browser/media_gallery/media_galleries_preferences.h" |
| 6 | 6 |
| 7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 | 191 |
| 192 MediaGalleryPrefInfo gallery_info; | 192 MediaGalleryPrefInfo gallery_info; |
| 193 if (!PopulateGalleryPrefInfoFromDictionary(*dict, &gallery_info)) | 193 if (!PopulateGalleryPrefInfoFromDictionary(*dict, &gallery_info)) |
| 194 continue; | 194 continue; |
| 195 | 195 |
| 196 known_galleries_[gallery_info.pref_id] = gallery_info; | 196 known_galleries_[gallery_info.pref_id] = gallery_info; |
| 197 device_map_[gallery_info.device_id].insert(gallery_info.pref_id); | 197 device_map_[gallery_info.device_id].insert(gallery_info.pref_id); |
| 198 } | 198 } |
| 199 } | 199 } |
| 200 if (notify_observers) | 200 if (notify_observers) |
| 201 NotifyChangeObservers(); | 201 NotifyChangeObservers(""); |
| 202 } | 202 } |
| 203 | 203 |
| 204 void MediaGalleriesPreferences::NotifyChangeObservers() { | 204 void MediaGalleriesPreferences::NotifyChangeObservers( |
| 205 const std::string& extension_id) { |
| 205 FOR_EACH_OBSERVER(GalleryChangeObserver, | 206 FOR_EACH_OBSERVER(GalleryChangeObserver, |
| 206 gallery_change_observers_, | 207 gallery_change_observers_, |
| 207 OnGalleryChanged(this)); | 208 OnGalleryChanged(this, extension_id)); |
| 208 } | 209 } |
| 209 | 210 |
| 210 void MediaGalleriesPreferences::AddGalleryChangeObserver( | 211 void MediaGalleriesPreferences::AddGalleryChangeObserver( |
| 211 GalleryChangeObserver* observer) { | 212 GalleryChangeObserver* observer) { |
| 212 gallery_change_observers_.AddObserver(observer); | 213 gallery_change_observers_.AddObserver(observer); |
| 213 } | 214 } |
| 214 | 215 |
| 215 void MediaGalleriesPreferences::RemoveGalleryChangeObserver( | 216 void MediaGalleriesPreferences::RemoveGalleryChangeObserver( |
| 216 GalleryChangeObserver* observer) { | 217 GalleryChangeObserver* observer) { |
| 217 gallery_change_observers_.RemoveObserver(observer); | 218 gallery_change_observers_.RemoveObserver(observer); |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 return; | 433 return; |
| 433 | 434 |
| 434 #if defined(ENABLE_EXTENSIONS) | 435 #if defined(ENABLE_EXTENSIONS) |
| 435 extensions::GalleryWatchStateTracker* state_tracker = | 436 extensions::GalleryWatchStateTracker* state_tracker = |
| 436 extensions::GalleryWatchStateTracker::GetForProfile(profile_); | 437 extensions::GalleryWatchStateTracker::GetForProfile(profile_); |
| 437 #endif | 438 #endif |
| 438 bool all_permission = HasAutoDetectedGalleryPermission(extension); | 439 bool all_permission = HasAutoDetectedGalleryPermission(extension); |
| 439 if (has_permission && all_permission) { | 440 if (has_permission && all_permission) { |
| 440 if (gallery_info->second.type == MediaGalleryPrefInfo::kAutoDetected) { | 441 if (gallery_info->second.type == MediaGalleryPrefInfo::kAutoDetected) { |
| 441 GetExtensionPrefs()->UnsetMediaGalleryPermission(extension.id(), pref_id); | 442 GetExtensionPrefs()->UnsetMediaGalleryPermission(extension.id(), pref_id); |
| 443 NotifyChangeObservers(extension.id()); |
| 442 #if defined(ENABLE_EXTENSIONS) | 444 #if defined(ENABLE_EXTENSIONS) |
| 443 if (state_tracker) { | 445 if (state_tracker) { |
| 444 state_tracker->OnGalleryPermissionChanged(extension.id(), pref_id, | 446 state_tracker->OnGalleryPermissionChanged(extension.id(), pref_id, |
| 445 true); | 447 true); |
| 446 } | 448 } |
| 447 #endif | 449 #endif |
| 448 return; | 450 return; |
| 449 } | 451 } |
| 450 } | 452 } |
| 451 | 453 |
| 452 if (!has_permission && !all_permission) { | 454 if (!has_permission && !all_permission) { |
| 453 GetExtensionPrefs()->UnsetMediaGalleryPermission(extension.id(), pref_id); | 455 GetExtensionPrefs()->UnsetMediaGalleryPermission(extension.id(), pref_id); |
| 454 } else { | 456 } else { |
| 455 GetExtensionPrefs()->SetMediaGalleryPermission(extension.id(), pref_id, | 457 GetExtensionPrefs()->SetMediaGalleryPermission(extension.id(), pref_id, |
| 456 has_permission); | 458 has_permission); |
| 457 } | 459 } |
| 460 NotifyChangeObservers(extension.id()); |
| 458 #if defined(ENABLE_EXTENSIONS) | 461 #if defined(ENABLE_EXTENSIONS) |
| 459 if (state_tracker) { | 462 if (state_tracker) { |
| 460 state_tracker->OnGalleryPermissionChanged(extension.id(), pref_id, | 463 state_tracker->OnGalleryPermissionChanged(extension.id(), pref_id, |
| 461 has_permission); | 464 has_permission); |
| 462 } | 465 } |
| 463 #endif | 466 #endif |
| 464 } | 467 } |
| 465 | 468 |
| 466 void MediaGalleriesPreferences::Shutdown() { | 469 void MediaGalleriesPreferences::Shutdown() { |
| 467 profile_ = NULL; | 470 profile_ = NULL; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 484 } | 487 } |
| 485 | 488 |
| 486 extensions::ExtensionPrefs* | 489 extensions::ExtensionPrefs* |
| 487 MediaGalleriesPreferences::GetExtensionPrefs() const { | 490 MediaGalleriesPreferences::GetExtensionPrefs() const { |
| 488 ExtensionService* extension_service = | 491 ExtensionService* extension_service = |
| 489 extensions::ExtensionSystem::Get(profile_)->extension_service(); | 492 extensions::ExtensionSystem::Get(profile_)->extension_service(); |
| 490 return extension_service->extension_prefs(); | 493 return extension_service->extension_prefs(); |
| 491 } | 494 } |
| 492 | 495 |
| 493 } // namespace chrome | 496 } // namespace chrome |
| OLD | NEW |