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

Side by Side Diff: chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer.cc

Issue 1236493004: Final batch adding real histogram values for extension events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments, rebase, dcheck, etc Created 5 years, 5 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
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/extensions/api/sync_file_system/extension_sync_event_ob server.h" 5 #include "chrome/browser/extensions/api/sync_file_system/extension_sync_event_ob server.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "chrome/browser/extensions/api/sync_file_system/sync_file_system_api_he lpers.h" 8 #include "chrome/browser/extensions/api/sync_file_system/sync_file_system_api_he lpers.h"
9 #include "chrome/browser/sync_file_system/sync_event_observer.h" 9 #include "chrome/browser/sync_file_system/sync_event_observer.h"
10 #include "chrome/browser/sync_file_system/sync_file_system_service.h" 10 #include "chrome/browser/sync_file_system/sync_file_system_service.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 sync_file_system::SyncServiceState state, 72 sync_file_system::SyncServiceState state,
73 const std::string& description) { 73 const std::string& description) {
74 // Convert state and description into SyncState Object. 74 // Convert state and description into SyncState Object.
75 api::sync_file_system::ServiceInfo service_info; 75 api::sync_file_system::ServiceInfo service_info;
76 service_info.state = SyncServiceStateToExtensionEnum(state); 76 service_info.state = SyncServiceStateToExtensionEnum(state);
77 service_info.description = description; 77 service_info.description = description;
78 scoped_ptr<base::ListValue> params( 78 scoped_ptr<base::ListValue> params(
79 api::sync_file_system::OnServiceStatusChanged::Create(service_info)); 79 api::sync_file_system::OnServiceStatusChanged::Create(service_info));
80 80
81 BroadcastOrDispatchEvent( 81 BroadcastOrDispatchEvent(
82 app_origin, 82 app_origin, events::SYNC_FILE_SYSTEM_ON_SERVICE_STATUS_CHANGED,
83 api::sync_file_system::OnServiceStatusChanged::kEventName, 83 api::sync_file_system::OnServiceStatusChanged::kEventName, params.Pass());
84 params.Pass());
85 } 84 }
86 85
87 void ExtensionSyncEventObserver::OnFileSynced( 86 void ExtensionSyncEventObserver::OnFileSynced(
88 const storage::FileSystemURL& url, 87 const storage::FileSystemURL& url,
89 sync_file_system::SyncFileType file_type, 88 sync_file_system::SyncFileType file_type,
90 sync_file_system::SyncFileStatus status, 89 sync_file_system::SyncFileStatus status,
91 sync_file_system::SyncAction action, 90 sync_file_system::SyncAction action,
92 sync_file_system::SyncDirection direction) { 91 sync_file_system::SyncDirection direction) {
93 scoped_ptr<base::ListValue> params(new base::ListValue()); 92 scoped_ptr<base::ListValue> params(new base::ListValue());
94 93
95 scoped_ptr<base::DictionaryValue> entry( 94 scoped_ptr<base::DictionaryValue> entry(
96 CreateDictionaryValueForFileSystemEntry(url, file_type)); 95 CreateDictionaryValueForFileSystemEntry(url, file_type));
97 if (!entry) 96 if (!entry)
98 return; 97 return;
99 params->Append(entry.release()); 98 params->Append(entry.release());
100 99
101 // Status, SyncAction and any optional notes to go here. 100 // Status, SyncAction and any optional notes to go here.
102 api::sync_file_system::FileStatus status_enum = 101 api::sync_file_system::FileStatus status_enum =
103 SyncFileStatusToExtensionEnum(status); 102 SyncFileStatusToExtensionEnum(status);
104 api::sync_file_system::SyncAction action_enum = 103 api::sync_file_system::SyncAction action_enum =
105 SyncActionToExtensionEnum(action); 104 SyncActionToExtensionEnum(action);
106 api::sync_file_system::SyncDirection direction_enum = 105 api::sync_file_system::SyncDirection direction_enum =
107 SyncDirectionToExtensionEnum(direction); 106 SyncDirectionToExtensionEnum(direction);
108 params->AppendString(api::sync_file_system::ToString(status_enum)); 107 params->AppendString(api::sync_file_system::ToString(status_enum));
109 params->AppendString(api::sync_file_system::ToString(action_enum)); 108 params->AppendString(api::sync_file_system::ToString(action_enum));
110 params->AppendString(api::sync_file_system::ToString(direction_enum)); 109 params->AppendString(api::sync_file_system::ToString(direction_enum));
111 110
112 BroadcastOrDispatchEvent( 111 BroadcastOrDispatchEvent(
113 url.origin(), 112 url.origin(), events::SYNC_FILE_SYSTEM_ON_FILE_STATUS_CHANGED,
114 api::sync_file_system::OnFileStatusChanged::kEventName, 113 api::sync_file_system::OnFileStatusChanged::kEventName, params.Pass());
115 params.Pass());
116 } 114 }
117 115
118 void ExtensionSyncEventObserver::BroadcastOrDispatchEvent( 116 void ExtensionSyncEventObserver::BroadcastOrDispatchEvent(
119 const GURL& app_origin, 117 const GURL& app_origin,
118 events::HistogramValue histogram_value,
120 const std::string& event_name, 119 const std::string& event_name,
121 scoped_ptr<base::ListValue> values) { 120 scoped_ptr<base::ListValue> values) {
122 // Check to see whether the event should be broadcasted to all listening 121 // Check to see whether the event should be broadcasted to all listening
123 // extensions or sent to a specific extension ID. 122 // extensions or sent to a specific extension ID.
124 bool broadcast_mode = app_origin.is_empty(); 123 bool broadcast_mode = app_origin.is_empty();
125 EventRouter* event_router = EventRouter::Get(browser_context_); 124 EventRouter* event_router = EventRouter::Get(browser_context_);
126 DCHECK(event_router); 125 DCHECK(event_router);
127 126
128 scoped_ptr<Event> event( 127 scoped_ptr<Event> event(
129 new Event(events::UNKNOWN, event_name, values.Pass())); 128 new Event(histogram_value, event_name, values.Pass()));
130 event->restrict_to_browser_context = browser_context_; 129 event->restrict_to_browser_context = browser_context_;
131 130
132 // No app_origin, broadcast to all listening extensions for this event name. 131 // No app_origin, broadcast to all listening extensions for this event name.
133 if (broadcast_mode) { 132 if (broadcast_mode) {
134 event_router->BroadcastEvent(event.Pass()); 133 event_router->BroadcastEvent(event.Pass());
135 return; 134 return;
136 } 135 }
137 136
138 // Dispatch to single extension ID. 137 // Dispatch to single extension ID.
139 const std::string extension_id = GetExtensionId(app_origin); 138 const std::string extension_id = GetExtensionId(app_origin);
140 if (extension_id.empty()) 139 if (extension_id.empty())
141 return; 140 return;
142 event_router->DispatchEventToExtension(extension_id, event.Pass()); 141 event_router->DispatchEventToExtension(extension_id, event.Pass());
143 } 142 }
144 143
145 template <> 144 template <>
146 void BrowserContextKeyedAPIFactory< 145 void BrowserContextKeyedAPIFactory<
147 ExtensionSyncEventObserver>::DeclareFactoryDependencies() { 146 ExtensionSyncEventObserver>::DeclareFactoryDependencies() {
148 DependsOn(sync_file_system::SyncFileSystemServiceFactory::GetInstance()); 147 DependsOn(sync_file_system::SyncFileSystemServiceFactory::GetInstance());
149 DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); 148 DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory());
150 } 149 }
151 150
152 } // namespace extensions 151 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698