Chromium Code Reviews| Index: chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.cc |
| diff --git a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.cc b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.cc |
| index b270fad6a5104d53cc21f0fafd6feb3abd8f8256..d92e7dd93c5c480c9575296c615835f472c8cfc6 100644 |
| --- a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.cc |
| +++ b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.cc |
| @@ -9,6 +9,7 @@ |
| #include <map> |
| #include "base/utf_string_conversions.h" |
| +#include "base/values.h" |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/browser/extensions/event_names.h" |
| #include "chrome/browser/extensions/event_router.h" |
| @@ -16,6 +17,7 @@ |
| #include "chrome/browser/media_gallery/media_file_system_registry.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/common/extensions/api/media_galleries_private.h" |
| +#include "content/public/browser/browser_thread.h" |
| namespace extensions { |
| @@ -31,27 +33,52 @@ std::string GetTransientIdForDeviceId(const std::string& device_id) { |
| using extensions::api::media_galleries_private::DeviceAttachmentDetails; |
| using extensions::api::media_galleries_private::DeviceDetachmentDetails; |
| +using extensions::api::media_galleries_private::GalleryChangeDetails; |
| MediaGalleriesPrivateEventRouter::MediaGalleriesPrivateEventRouter( |
| Profile* profile) |
| : profile_(profile) { |
| - CHECK(profile_); |
| - |
| + DCHECK(profile_); |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| base::SystemMonitor* system_monitor = base::SystemMonitor::Get(); |
| if (system_monitor) |
| system_monitor->AddDevicesChangedObserver(this); |
| } |
| MediaGalleriesPrivateEventRouter::~MediaGalleriesPrivateEventRouter() { |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| base::SystemMonitor* system_monitor = base::SystemMonitor::Get(); |
| if (system_monitor) |
| system_monitor->RemoveDevicesChangedObserver(this); |
| } |
| +void MediaGalleriesPrivateEventRouter::OnGalleryChanged( |
| + uint64 gallery_id, |
|
Lei Zhang
2012/12/19 01:03:47
This is actually MediaGalleryPrefId. Ditto elsewhe
kmadhusu
2012/12/19 21:55:55
Done.
|
| + const std::set<std::string>& extension_ids) { |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| + EventRouter* router = |
| + extensions::ExtensionSystem::Get(profile_)->event_router(); |
| + if (!router->HasEventListener(event_names::kOnGalleryChangedEventName)) |
| + return; |
| + |
| + for (std::set<std::string>::const_iterator it = extension_ids.begin(); |
| + it != extension_ids.end(); ++it) { |
| + GalleryChangeDetails details; |
| + details.gallery_id = gallery_id; |
| + scoped_ptr<ListValue> args(new ListValue()); |
| + args->Append(details.ToValue().release()); |
| + scoped_ptr<extensions::Event> event(new extensions::Event( |
|
Lei Zhang
2012/12/19 01:03:47
You probably want to set event->restrict_to_profil
kmadhusu
2012/12/19 21:55:55
Done.
|
| + event_names::kOnGalleryChangedEventName, |
| + args.Pass())); |
| + router->DispatchEventToExtension(*it, event.Pass()); |
| + } |
| +} |
| + |
| void MediaGalleriesPrivateEventRouter::OnRemovableStorageAttached( |
| const std::string& id, |
| const string16& name, |
| const FilePath::StringType& location) { |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| EventRouter* router = |
| extensions::ExtensionSystem::Get(profile_)->event_router(); |
| if (!router->HasEventListener(event_names::kOnAttachEventName)) |
| @@ -68,6 +95,7 @@ void MediaGalleriesPrivateEventRouter::OnRemovableStorageAttached( |
| void MediaGalleriesPrivateEventRouter::OnRemovableStorageDetached( |
| const std::string& id) { |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| EventRouter* router = |
| extensions::ExtensionSystem::Get(profile_)->event_router(); |
| if (!router->HasEventListener(event_names::kOnDetachEventName)) |
| @@ -84,6 +112,7 @@ void MediaGalleriesPrivateEventRouter::OnRemovableStorageDetached( |
| void MediaGalleriesPrivateEventRouter::DispatchEvent( |
| const std::string& event_name, |
| scoped_ptr<base::ListValue> event_args) { |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| EventRouter* router = |
| extensions::ExtensionSystem::Get(profile_)->event_router(); |
| if (!router) |