Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(266)

Side by Side Diff: chrome/browser/extensions/api/cast_devices_private/cast_devices_private_api.cc

Issue 1291113002: Cast extension private API for ChromeOS system tray. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/extensions/api/cast_devices_private/cast_devices_privat e_api.h"
6
7 #include "base/lazy_instance.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/common/extensions/api/cast_devices_private.h"
10
11 namespace extensions {
12
13 static base::LazyInstance<
14 BrowserContextKeyedAPIFactory<CastDeviceUpdateListeners>> g_factory =
15 LAZY_INSTANCE_INITIALIZER;
16
17 // static
18 BrowserContextKeyedAPIFactory<CastDeviceUpdateListeners>*
19 CastDeviceUpdateListeners::GetFactoryInstance() {
20 return g_factory.Pointer();
21 }
22
23 // static
24 CastDeviceUpdateListeners* CastDeviceUpdateListeners::Get(
25 content::BrowserContext* context) {
26 return BrowserContextKeyedAPIFactory<CastDeviceUpdateListeners>::Get(context);
27 }
28
29 CastDeviceUpdateListeners::CastDeviceUpdateListeners(
30 content::BrowserContext* context) {}
31 CastDeviceUpdateListeners::~CastDeviceUpdateListeners() {}
32
33 ash::CastConfigDelegate::DeviceUpdateSubscription
34 CastDeviceUpdateListeners::RegisterCallback(
35 const ash::CastConfigDelegate::ReceiversAndActivitesCallback& callback) {
36 return callback_list_.Add(callback);
37 }
38
39 void CastDeviceUpdateListeners::NotifyCallbacks(
40 const std::vector<ash::CastConfigDelegate::ReceiverAndActivity>& devices) {
41 callback_list_.Notify(devices);
42 }
43
44 static ash::CastConfigDelegate::Receiver ConvertType(
Ken Rockot(use gerrit already) 2015/08/14 23:20:09 instead of using static for these internal functio
jdufault 2015/08/15 00:04:52 Done.
45 const api::cast_devices_private::Receiver& receiver) {
46 ash::CastConfigDelegate::Receiver result;
47 result.id = receiver.id;
48 result.name = base::UTF8ToUTF16(receiver.name);
49 return result;
50 }
51
52 static ash::CastConfigDelegate::Activity ConvertType(
53 const api::cast_devices_private::Activity& activity) {
54 ash::CastConfigDelegate::Activity result;
55 result.id = activity.id;
56 result.title = base::UTF8ToUTF16(activity.title);
57 result.tab_id = activity.tab_id;
58 return result;
59 }
60
61 static ash::CastConfigDelegate::ReceiverAndActivity ConvertType(
62 const api::cast_devices_private::Receiver& receiver,
63 const api::cast_devices_private::Activity* activity) {
64 ash::CastConfigDelegate::ReceiverAndActivity result;
65 result.receiver = ConvertType(receiver);
66 if (activity)
67 result.activity = ConvertType(*activity);
68 return result;
69 }
70
71 CastDevicesPrivateUpdateDevicesFunction::
72 CastDevicesPrivateUpdateDevicesFunction() {}
73
74 CastDevicesPrivateUpdateDevicesFunction::
75 ~CastDevicesPrivateUpdateDevicesFunction() {}
76
77 bool CastDevicesPrivateUpdateDevicesFunction::RunAsync() {
78 auto params =
79 api::cast_devices_private::UpdateDevices::Params::Create(*args_);
80
81 std::vector<ash::CastConfigDelegate::ReceiverAndActivity> devices;
82 for (linked_ptr<api::cast_devices_private::ReceiverActivity> device :
83 params->devices) {
84 devices.push_back(ConvertType(device->receiver, device->activity.get()));
85 }
86
87 CastDeviceUpdateListeners* storage =
88 CastDeviceUpdateListeners::Get(browser_context());
89 storage->NotifyCallbacks(devices);
90
91 return true;
92 }
93
94 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698