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

Side by Side Diff: chrome/browser/extensions/api/api_resource_event_notifier.cc

Issue 10440097: Move socket API from experimental to dev channel and remove some dead code (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Update Created 8 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
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/api_resource_event_notifier.h" 5 #include "chrome/browser/extensions/api/api_resource_event_notifier.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/extensions/event_router.h" 10 #include "chrome/browser/extensions/event_router.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "content/public/browser/browser_thread.h" 12 #include "content/public/browser/browser_thread.h"
13 13
14 using content::BrowserThread; 14 using content::BrowserThread;
15 15
16 namespace events { 16 namespace events {
17 const char kExperimentalSocketOnEvent[] = "experimental.socket.onEvent";
18 const char kExperimentalUsbOnEvent[] = "experimental.usb.onEvent"; 17 const char kExperimentalUsbOnEvent[] = "experimental.usb.onEvent";
19 }; 18 };
20 19
21 namespace extensions { 20 namespace extensions {
22 21
23 const char kEventTypeKey[] = "type"; 22 const char kEventTypeKey[] = "type";
24 23
25 const char kEventTypeConnectComplete[] = "connectComplete"; 24 const char kEventTypeConnectComplete[] = "connectComplete";
26 const char kEventTypeDataRead[] = "dataRead"; 25 const char kEventTypeDataRead[] = "dataRead";
27 const char kEventTypeWriteComplete[] = "writeComplete"; 26 const char kEventTypeWriteComplete[] = "writeComplete";
(...skipping 15 matching lines...) Expand all
43 const std::string& src_extension_id, 42 const std::string& src_extension_id,
44 int src_id, 43 int src_id,
45 const GURL& src_url) 44 const GURL& src_url)
46 : router_(router), 45 : router_(router),
47 profile_(profile), 46 profile_(profile),
48 src_extension_id_(src_extension_id), 47 src_extension_id_(src_extension_id),
49 src_id_(src_id), 48 src_id_(src_id),
50 src_url_(src_url) { 49 src_url_(src_url) {
51 } 50 }
52 51
53 void ApiResourceEventNotifier::OnConnectComplete(int result_code) {
54 SendEventWithResultCode(events::kExperimentalSocketOnEvent,
55 API_RESOURCE_EVENT_CONNECT_COMPLETE, result_code);
56 }
57
58 void ApiResourceEventNotifier::OnDataRead(int result_code,
59 base::ListValue* data,
60 const std::string& address,
61 int port) {
62 // Do we have a destination for this event? There will be one if a source id
63 // was injected by the request handler for the resource's create method in
64 // schema_generated_bindings.js, which will in turn be the case if the caller
65 // of the create method provided an onEvent closure.
66 if (src_id_ < 0) {
67 delete data;
68 return;
69 }
70
71 DictionaryValue* event = CreateApiResourceEvent(
72 API_RESOURCE_EVENT_DATA_READ);
73 event->SetInteger(kResultCodeKey, result_code);
74 event->Set(kDataKey, data);
75 event->SetString(kAddressKey, address);
76 event->SetInteger(kPortKey, port);
77 DispatchEvent(events::kExperimentalSocketOnEvent, event);
78 }
79
80 void ApiResourceEventNotifier::OnWriteComplete(int result_code) {
81 SendEventWithResultCode(events::kExperimentalSocketOnEvent,
82 API_RESOURCE_EVENT_WRITE_COMPLETE, result_code);
83 }
84
85 void ApiResourceEventNotifier::OnTransferComplete(UsbTransferStatus status, 52 void ApiResourceEventNotifier::OnTransferComplete(UsbTransferStatus status,
86 const std::string& error, 53 const std::string& error,
87 base::BinaryValue* data) { 54 base::BinaryValue* data) {
88 if (src_id_ < 0) { 55 if (src_id_ < 0) {
89 delete data; 56 delete data;
90 return; 57 return;
91 } 58 }
92 59
93 DictionaryValue* event = CreateApiResourceEvent( 60 DictionaryValue* event = CreateApiResourceEvent(
94 API_RESOURCE_EVENT_TRANSFER_COMPLETE); 61 API_RESOURCE_EVENT_TRANSFER_COMPLETE);
95 event->SetInteger(kResultCodeKey, status); 62 event->SetInteger(kResultCodeKey, status);
96 event->Set(kDataKey, data); 63 event->Set(kDataKey, data);
97 if (!error.empty()) { 64 if (!error.empty()) {
98 event->SetString(kErrorKey, error); 65 event->SetString(kErrorKey, error);
99 } 66 }
100 67
101 DispatchEvent(events::kExperimentalUsbOnEvent, event); 68 DispatchEvent(events::kExperimentalUsbOnEvent, event);
102 } 69 }
103 70
104 // static 71 // static
105 std::string ApiResourceEventNotifier::ApiResourceEventTypeToString( 72 std::string ApiResourceEventNotifier::ApiResourceEventTypeToString(
106 ApiResourceEventType event_type) { 73 ApiResourceEventType event_type) {
107 switch (event_type) { 74 switch (event_type) {
108 case API_RESOURCE_EVENT_CONNECT_COMPLETE:
109 return kEventTypeConnectComplete;
110 case API_RESOURCE_EVENT_DATA_READ:
111 return kEventTypeDataRead;
112 case API_RESOURCE_EVENT_WRITE_COMPLETE:
113 return kEventTypeWriteComplete;
114 case API_RESOURCE_EVENT_TRANSFER_COMPLETE: 75 case API_RESOURCE_EVENT_TRANSFER_COMPLETE:
115 return kEventTypeTransferComplete; 76 return kEventTypeTransferComplete;
116 } 77 }
117 78
118 NOTREACHED(); 79 NOTREACHED();
119 return std::string(); 80 return std::string();
120 } 81 }
121 82
122 ApiResourceEventNotifier::~ApiResourceEventNotifier() {} 83 ApiResourceEventNotifier::~ApiResourceEventNotifier() {}
123 84
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 int result_code) { 122 int result_code) {
162 if (src_id_ < 0) 123 if (src_id_ < 0)
163 return; 124 return;
164 125
165 DictionaryValue* event = CreateApiResourceEvent(event_type); 126 DictionaryValue* event = CreateApiResourceEvent(event_type);
166 event->SetInteger(kResultCodeKey, result_code); 127 event->SetInteger(kResultCodeKey, result_code);
167 DispatchEvent(extension, event); 128 DispatchEvent(extension, event);
168 } 129 }
169 130
170 } // namespace extensions 131 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/api_resource_event_notifier.h ('k') | chrome/browser/extensions/api/socket/socket_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698