| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/api/cast_devices_private/cast_devices_privat
e_api.h" | 5 #include "chrome/browser/extensions/api/cast_devices_private/cast_devices_privat
e_api.h" |
| 6 | 6 |
| 7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/common/extensions/api/cast_devices_private.h" | 9 #include "chrome/common/extensions/api/cast_devices_private.h" |
| 10 | 10 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 CastDeviceUpdateListeners* CastDeviceUpdateListeners::Get( | 58 CastDeviceUpdateListeners* CastDeviceUpdateListeners::Get( |
| 59 content::BrowserContext* context) { | 59 content::BrowserContext* context) { |
| 60 return BrowserContextKeyedAPIFactory<CastDeviceUpdateListeners>::Get(context); | 60 return BrowserContextKeyedAPIFactory<CastDeviceUpdateListeners>::Get(context); |
| 61 } | 61 } |
| 62 | 62 |
| 63 CastDeviceUpdateListeners::CastDeviceUpdateListeners( | 63 CastDeviceUpdateListeners::CastDeviceUpdateListeners( |
| 64 content::BrowserContext* context) {} | 64 content::BrowserContext* context) {} |
| 65 | 65 |
| 66 CastDeviceUpdateListeners::~CastDeviceUpdateListeners() {} | 66 CastDeviceUpdateListeners::~CastDeviceUpdateListeners() {} |
| 67 | 67 |
| 68 ash::CastConfigDelegate::DeviceUpdateSubscription | 68 void CastDeviceUpdateListeners::AddObserver( |
| 69 CastDeviceUpdateListeners::RegisterCallback( | 69 ash::CastConfigDelegate::Observer* observer) { |
| 70 const ash::CastConfigDelegate::ReceiversAndActivitesCallback& callback) { | 70 observer_list_.AddObserver(observer); |
| 71 return callback_list_.Add(callback); | 71 } |
| 72 |
| 73 void CastDeviceUpdateListeners::RemoveObserver( |
| 74 ash::CastConfigDelegate::Observer* observer) { |
| 75 observer_list_.RemoveObserver(observer); |
| 72 } | 76 } |
| 73 | 77 |
| 74 void CastDeviceUpdateListeners::NotifyCallbacks( | 78 void CastDeviceUpdateListeners::NotifyCallbacks( |
| 75 const ReceiverAndActivityList& devices) { | 79 const ReceiverAndActivityList& devices) { |
| 76 callback_list_.Notify(devices); | 80 FOR_EACH_OBSERVER(ash::CastConfigDelegate::Observer, observer_list_, |
| 81 OnDevicesUpdated(devices)); |
| 77 } | 82 } |
| 78 | 83 |
| 79 CastDevicesPrivateUpdateDevicesFunction:: | 84 CastDevicesPrivateUpdateDevicesFunction:: |
| 80 CastDevicesPrivateUpdateDevicesFunction() {} | 85 CastDevicesPrivateUpdateDevicesFunction() {} |
| 81 | 86 |
| 82 CastDevicesPrivateUpdateDevicesFunction:: | 87 CastDevicesPrivateUpdateDevicesFunction:: |
| 83 ~CastDevicesPrivateUpdateDevicesFunction() {} | 88 ~CastDevicesPrivateUpdateDevicesFunction() {} |
| 84 | 89 |
| 85 ExtensionFunction::ResponseAction | 90 ExtensionFunction::ResponseAction |
| 86 CastDevicesPrivateUpdateDevicesFunction::Run() { | 91 CastDevicesPrivateUpdateDevicesFunction::Run() { |
| 87 auto params = | 92 auto params = |
| 88 api::cast_devices_private::UpdateDevices::Params::Create(*args_); | 93 api::cast_devices_private::UpdateDevices::Params::Create(*args_); |
| 89 | 94 |
| 90 CastDeviceUpdateListeners::ReceiverAndActivityList devices; | 95 CastDeviceUpdateListeners::ReceiverAndActivityList devices; |
| 91 for (linked_ptr<api::cast_devices_private::ReceiverActivity> device : | 96 for (linked_ptr<api::cast_devices_private::ReceiverActivity> device : |
| 92 params->devices) { | 97 params->devices) { |
| 93 devices.push_back(ConvertReceiverAndActivityType(device->receiver, | 98 devices.push_back(ConvertReceiverAndActivityType(device->receiver, |
| 94 device->activity.get())); | 99 device->activity.get())); |
| 95 } | 100 } |
| 96 | 101 |
| 97 auto listeners = CastDeviceUpdateListeners::Get(browser_context()); | 102 auto listeners = CastDeviceUpdateListeners::Get(browser_context()); |
| 98 listeners->NotifyCallbacks(devices); | 103 listeners->NotifyCallbacks(devices); |
| 99 | 104 |
| 100 return RespondNow(NoArguments()); | 105 return RespondNow(NoArguments()); |
| 101 } | 106 } |
| 102 | 107 |
| 103 } // namespace extensions | 108 } // namespace extensions |
| OLD | NEW |