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/sync_file_system/extension_sync_event_observer.cc

Issue 11316133: Added implementation of SyncEventObserver to route events to Javascript Extension. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed test to match updated SyncEventObserver interface Created 8 years 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/extensions/api/sync_file_system/extension_sync_event_ob server.h"
6 #include "chrome/browser/extensions/event_names.h"
7 #include "chrome/browser/extensions/event_router.h"
8 #include "chrome/browser/extensions/extension_system.h"
9 #include "chrome/browser/sync_file_system/sync_event_observer.h"
10 #include "chrome/common/extensions/api/sync_file_system.h"
11
12 using sync_file_system::SyncEventObserver;
13
14 namespace extensions {
15
16 namespace {
17
18 api::sync_file_system::SyncStateStatus SyncServiceStateEnumToExtensionEnum(
19 SyncEventObserver::SyncServiceState state) {
20 switch(state) {
21 case SyncEventObserver::SYNC_SERVICE_RUNNING:
22 return api::sync_file_system::SYNC_FILE_SYSTEM_SYNC_STATE_STATUS_RUNNING;
23 case SyncEventObserver::SYNC_SERVICE_AUTHENTICATION_REQUIRED:
24 return api::sync_file_system::
25 SYNC_FILE_SYSTEM_SYNC_STATE_STATUS_AUTHENTICATION_REQUIRED;
26 case SyncEventObserver::SYNC_SERVICE_TEMPORARY_UNAVAILABLE:
27 return api::sync_file_system::
28 SYNC_FILE_SYSTEM_SYNC_STATE_STATUS_TEMPORARY_UNAVAILABLE;
29 case SyncEventObserver::SYNC_SERVICE_DISABLED:
30 return api::sync_file_system::SYNC_FILE_SYSTEM_SYNC_STATE_STATUS_DISABLED;
31 }
32 NOTREACHED();
33 return api::sync_file_system::SYNC_FILE_SYSTEM_SYNC_STATE_STATUS_NONE;
34 }
35
36 } // namespace
37
38 ExtensionSyncEventObserver::ExtensionSyncEventObserver(
39 Profile* profile,
40 const std::string& service_name)
41 : profile_(profile),
42 service_name_(service_name) {}
43
44 void ExtensionSyncEventObserver::OnSyncStateUpdated(
45 const std::string& extension_id,
kinuko 2012/11/28 07:41:13 This is given as GURL right? I think you can get
calvinlo 2012/11/28 10:43:46 Done.
46 sync_file_system::SyncEventObserver::SyncServiceState state,
47 const std::string& description) {
48 // TODO(calvinlo): Check extension in set of extension_ids that are listening
49 // for events. If extension_id is not in the set, then ignore the event.
50
51 // Convert state and description into SyncState Object
52 api::sync_file_system::SyncState sync_state;
53 sync_state.service_name = "drive";
kinuko 2012/11/28 07:41:13 sync_state.service_name = service_name_; ?
calvinlo 2012/11/28 10:43:46 Done. Sorry my mistake.
54 sync_state.state = SyncServiceStateEnumToExtensionEnum(state);
55 sync_state.description = description;
56 scoped_ptr<base::ListValue> params(
57 api::sync_file_system::OnSyncStateChanged::Create(sync_state));
58
59 // Dispatch the event to the extension
60 ExtensionSystem::Get(profile_)->event_router()->DispatchEventToExtension(
61 extension_id, event_names::kOnSyncStateChanged, params.Pass(),
62 profile_, GURL());
63 }
64
65 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698