OLD | NEW |
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 #ifndef CHROME_BROWSER_EXTENSIONS_API_SOCKET_SOCKET_API_H_ | 5 #ifndef EXTENSIONS_BROWSER_API_SOCKET_SOCKET_API_H_ |
6 #define CHROME_BROWSER_EXTENSIONS_API_SOCKET_SOCKET_API_H_ | 6 #define EXTENSIONS_BROWSER_API_SOCKET_SOCKET_API_H_ |
| 7 |
| 8 #include <string> |
7 | 9 |
8 #include "base/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
9 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
10 #include "chrome/browser/extensions/api/api_resource_manager.h" | 12 #include "chrome/browser/extensions/api/api_resource_manager.h" |
11 #include "chrome/common/extensions/api/socket.h" | |
12 #include "extensions/browser/api/async_api_function.h" | 13 #include "extensions/browser/api/async_api_function.h" |
13 #include "extensions/browser/extension_function.h" | 14 #include "extensions/browser/extension_function.h" |
| 15 #include "extensions/common/api/socket.h" |
14 #include "net/base/address_list.h" | 16 #include "net/base/address_list.h" |
15 #include "net/dns/host_resolver.h" | 17 #include "net/dns/host_resolver.h" |
16 #include "net/socket/tcp_client_socket.h" | 18 #include "net/socket/tcp_client_socket.h" |
17 | 19 |
18 #include <string> | |
19 | |
20 namespace content { | 20 namespace content { |
21 class BrowserContext; | 21 class BrowserContext; |
22 class ResourceContext; | 22 class ResourceContext; |
23 } | 23 } |
24 | 24 |
25 namespace net { | 25 namespace net { |
26 class IOBuffer; | 26 class IOBuffer; |
27 } | 27 } |
28 | 28 |
29 namespace extensions { | 29 namespace extensions { |
30 | 30 |
31 class Socket; | 31 class Socket; |
32 | 32 |
33 // A simple interface to ApiResourceManager<Socket> or derived class. The goal | 33 // A simple interface to ApiResourceManager<Socket> or derived class. The goal |
34 // of this interface is to allow Socket API functions to use distinct instances | 34 // of this interface is to allow Socket API functions to use distinct instances |
35 // of ApiResourceManager<> depending on the type of socket (old version in | 35 // of ApiResourceManager<> depending on the type of socket (old version in |
36 // "socket" namespace vs new version in "socket.xxx" namespaces). | 36 // "socket" namespace vs new version in "socket.xxx" namespaces). |
37 class SocketResourceManagerInterface { | 37 class SocketResourceManagerInterface { |
38 public: | 38 public: |
39 virtual ~SocketResourceManagerInterface() {} | 39 virtual ~SocketResourceManagerInterface() {} |
40 | 40 |
41 virtual bool SetBrowserContext(content::BrowserContext* context) = 0; | 41 virtual bool SetBrowserContext(content::BrowserContext* context) = 0; |
42 virtual int Add(Socket *socket) = 0; | 42 virtual int Add(Socket* socket) = 0; |
43 virtual Socket* Get(const std::string& extension_id, | 43 virtual Socket* Get(const std::string& extension_id, int api_resource_id) = 0; |
44 int api_resource_id) = 0; | 44 virtual void Remove(const std::string& extension_id, int api_resource_id) = 0; |
45 virtual void Remove(const std::string& extension_id, | |
46 int api_resource_id) = 0; | |
47 virtual base::hash_set<int>* GetResourceIds( | 45 virtual base::hash_set<int>* GetResourceIds( |
48 const std::string& extension_id) = 0; | 46 const std::string& extension_id) = 0; |
49 }; | 47 }; |
50 | 48 |
51 // Implementation of SocketResourceManagerInterface using an | 49 // Implementation of SocketResourceManagerInterface using an |
52 // ApiResourceManager<T> instance (where T derives from Socket). | 50 // ApiResourceManager<T> instance (where T derives from Socket). |
53 template<typename T> | 51 template <typename T> |
54 class SocketResourceManager : public SocketResourceManagerInterface { | 52 class SocketResourceManager : public SocketResourceManagerInterface { |
55 public: | 53 public: |
56 SocketResourceManager() | 54 SocketResourceManager() : manager_(NULL) {} |
57 : manager_(NULL) { | |
58 } | |
59 | 55 |
60 virtual bool SetBrowserContext(content::BrowserContext* context) OVERRIDE { | 56 virtual bool SetBrowserContext(content::BrowserContext* context) OVERRIDE { |
61 manager_ = ApiResourceManager<T>::Get(context); | 57 manager_ = ApiResourceManager<T>::Get(context); |
62 DCHECK(manager_) << "There is no socket manager. " | 58 DCHECK(manager_) |
63 "If this assertion is failing during a test, then it is likely that " | 59 << "There is no socket manager. " |
64 "TestExtensionSystem is failing to provide an instance of " | 60 "If this assertion is failing during a test, then it is likely that " |
65 "ApiResourceManager<Socket>."; | 61 "TestExtensionSystem is failing to provide an instance of " |
| 62 "ApiResourceManager<Socket>."; |
66 return manager_ != NULL; | 63 return manager_ != NULL; |
67 } | 64 } |
68 | 65 |
69 virtual int Add(Socket *socket) OVERRIDE { | 66 virtual int Add(Socket* socket) OVERRIDE { |
70 // Note: Cast needed here, because "T" may be a subclass of "Socket". | 67 // Note: Cast needed here, because "T" may be a subclass of "Socket". |
71 return manager_->Add(static_cast<T*>(socket)); | 68 return manager_->Add(static_cast<T*>(socket)); |
72 } | 69 } |
73 | 70 |
74 virtual Socket* Get(const std::string& extension_id, | 71 virtual Socket* Get(const std::string& extension_id, |
75 int api_resource_id) OVERRIDE { | 72 int api_resource_id) OVERRIDE { |
76 return manager_->Get(extension_id, api_resource_id); | 73 return manager_->Get(extension_id, api_resource_id); |
77 } | 74 } |
78 | 75 |
79 virtual void Remove(const std::string& extension_id, | 76 virtual void Remove(const std::string& extension_id, |
80 int api_resource_id) OVERRIDE { | 77 int api_resource_id) OVERRIDE { |
81 manager_->Remove(extension_id, api_resource_id); | 78 manager_->Remove(extension_id, api_resource_id); |
82 } | 79 } |
83 | 80 |
84 virtual base::hash_set<int>* GetResourceIds( | 81 virtual base::hash_set<int>* GetResourceIds(const std::string& extension_id) |
85 const std::string& extension_id) OVERRIDE { | 82 OVERRIDE { |
86 return manager_->GetResourceIds(extension_id); | 83 return manager_->GetResourceIds(extension_id); |
87 } | 84 } |
88 | 85 |
89 private: | 86 private: |
90 ApiResourceManager<T>* manager_; | 87 ApiResourceManager<T>* manager_; |
91 }; | 88 }; |
92 | 89 |
93 class SocketAsyncApiFunction : public AsyncApiFunction { | 90 class SocketAsyncApiFunction : public AsyncApiFunction { |
94 public: | 91 public: |
95 SocketAsyncApiFunction(); | 92 SocketAsyncApiFunction(); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 | 141 |
145 protected: | 142 protected: |
146 virtual ~SocketCreateFunction(); | 143 virtual ~SocketCreateFunction(); |
147 | 144 |
148 // AsyncApiFunction: | 145 // AsyncApiFunction: |
149 virtual bool Prepare() OVERRIDE; | 146 virtual bool Prepare() OVERRIDE; |
150 virtual void Work() OVERRIDE; | 147 virtual void Work() OVERRIDE; |
151 | 148 |
152 private: | 149 private: |
153 FRIEND_TEST_ALL_PREFIXES(SocketUnitTest, Create); | 150 FRIEND_TEST_ALL_PREFIXES(SocketUnitTest, Create); |
154 enum SocketType { | 151 enum SocketType { kSocketTypeInvalid = -1, kSocketTypeTCP, kSocketTypeUDP }; |
155 kSocketTypeInvalid = -1, | |
156 kSocketTypeTCP, | |
157 kSocketTypeUDP | |
158 }; | |
159 | 152 |
160 scoped_ptr<api::socket::Create::Params> params_; | 153 scoped_ptr<core_api::socket::Create::Params> params_; |
161 SocketType socket_type_; | 154 SocketType socket_type_; |
162 }; | 155 }; |
163 | 156 |
164 class SocketDestroyFunction : public SocketAsyncApiFunction { | 157 class SocketDestroyFunction : public SocketAsyncApiFunction { |
165 public: | 158 public: |
166 DECLARE_EXTENSION_FUNCTION("socket.destroy", SOCKET_DESTROY) | 159 DECLARE_EXTENSION_FUNCTION("socket.destroy", SOCKET_DESTROY) |
167 | 160 |
168 protected: | 161 protected: |
169 virtual ~SocketDestroyFunction() {} | 162 virtual ~SocketDestroyFunction() {} |
170 | 163 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 SocketListenFunction(); | 234 SocketListenFunction(); |
242 | 235 |
243 protected: | 236 protected: |
244 virtual ~SocketListenFunction(); | 237 virtual ~SocketListenFunction(); |
245 | 238 |
246 // AsyncApiFunction: | 239 // AsyncApiFunction: |
247 virtual bool Prepare() OVERRIDE; | 240 virtual bool Prepare() OVERRIDE; |
248 virtual void Work() OVERRIDE; | 241 virtual void Work() OVERRIDE; |
249 | 242 |
250 private: | 243 private: |
251 scoped_ptr<api::socket::Listen::Params> params_; | 244 scoped_ptr<core_api::socket::Listen::Params> params_; |
252 }; | 245 }; |
253 | 246 |
254 class SocketAcceptFunction : public SocketAsyncApiFunction { | 247 class SocketAcceptFunction : public SocketAsyncApiFunction { |
255 public: | 248 public: |
256 DECLARE_EXTENSION_FUNCTION("socket.accept", SOCKET_ACCEPT) | 249 DECLARE_EXTENSION_FUNCTION("socket.accept", SOCKET_ACCEPT) |
257 | 250 |
258 SocketAcceptFunction(); | 251 SocketAcceptFunction(); |
259 | 252 |
260 protected: | 253 protected: |
261 virtual ~SocketAcceptFunction(); | 254 virtual ~SocketAcceptFunction(); |
262 | 255 |
263 // AsyncApiFunction: | 256 // AsyncApiFunction: |
264 virtual bool Prepare() OVERRIDE; | 257 virtual bool Prepare() OVERRIDE; |
265 virtual void AsyncWorkStart() OVERRIDE; | 258 virtual void AsyncWorkStart() OVERRIDE; |
266 | 259 |
267 private: | 260 private: |
268 void OnAccept(int result_code, net::TCPClientSocket *socket); | 261 void OnAccept(int result_code, net::TCPClientSocket* socket); |
269 scoped_ptr<api::socket::Accept::Params> params_; | 262 scoped_ptr<core_api::socket::Accept::Params> params_; |
270 }; | 263 }; |
271 | 264 |
272 class SocketReadFunction : public SocketAsyncApiFunction { | 265 class SocketReadFunction : public SocketAsyncApiFunction { |
273 public: | 266 public: |
274 DECLARE_EXTENSION_FUNCTION("socket.read", SOCKET_READ) | 267 DECLARE_EXTENSION_FUNCTION("socket.read", SOCKET_READ) |
275 | 268 |
276 SocketReadFunction(); | 269 SocketReadFunction(); |
277 | 270 |
278 protected: | 271 protected: |
279 virtual ~SocketReadFunction(); | 272 virtual ~SocketReadFunction(); |
280 | 273 |
281 // AsyncApiFunction: | 274 // AsyncApiFunction: |
282 virtual bool Prepare() OVERRIDE; | 275 virtual bool Prepare() OVERRIDE; |
283 virtual void AsyncWorkStart() OVERRIDE; | 276 virtual void AsyncWorkStart() OVERRIDE; |
284 void OnCompleted(int result, scoped_refptr<net::IOBuffer> io_buffer); | 277 void OnCompleted(int result, scoped_refptr<net::IOBuffer> io_buffer); |
285 | 278 |
286 private: | 279 private: |
287 scoped_ptr<api::socket::Read::Params> params_; | 280 scoped_ptr<core_api::socket::Read::Params> params_; |
288 }; | 281 }; |
289 | 282 |
290 class SocketWriteFunction : public SocketAsyncApiFunction { | 283 class SocketWriteFunction : public SocketAsyncApiFunction { |
291 public: | 284 public: |
292 DECLARE_EXTENSION_FUNCTION("socket.write", SOCKET_WRITE) | 285 DECLARE_EXTENSION_FUNCTION("socket.write", SOCKET_WRITE) |
293 | 286 |
294 SocketWriteFunction(); | 287 SocketWriteFunction(); |
295 | 288 |
296 protected: | 289 protected: |
297 virtual ~SocketWriteFunction(); | 290 virtual ~SocketWriteFunction(); |
(...skipping 20 matching lines...) Expand all Loading... |
318 | 311 |
319 // AsyncApiFunction | 312 // AsyncApiFunction |
320 virtual bool Prepare() OVERRIDE; | 313 virtual bool Prepare() OVERRIDE; |
321 virtual void AsyncWorkStart() OVERRIDE; | 314 virtual void AsyncWorkStart() OVERRIDE; |
322 void OnCompleted(int result, | 315 void OnCompleted(int result, |
323 scoped_refptr<net::IOBuffer> io_buffer, | 316 scoped_refptr<net::IOBuffer> io_buffer, |
324 const std::string& address, | 317 const std::string& address, |
325 int port); | 318 int port); |
326 | 319 |
327 private: | 320 private: |
328 scoped_ptr<api::socket::RecvFrom::Params> params_; | 321 scoped_ptr<core_api::socket::RecvFrom::Params> params_; |
329 }; | 322 }; |
330 | 323 |
331 class SocketSendToFunction : public SocketExtensionWithDnsLookupFunction { | 324 class SocketSendToFunction : public SocketExtensionWithDnsLookupFunction { |
332 public: | 325 public: |
333 DECLARE_EXTENSION_FUNCTION("socket.sendTo", SOCKET_SENDTO) | 326 DECLARE_EXTENSION_FUNCTION("socket.sendTo", SOCKET_SENDTO) |
334 | 327 |
335 SocketSendToFunction(); | 328 SocketSendToFunction(); |
336 | 329 |
337 protected: | 330 protected: |
338 virtual ~SocketSendToFunction(); | 331 virtual ~SocketSendToFunction(); |
(...skipping 24 matching lines...) Expand all Loading... |
363 SocketSetKeepAliveFunction(); | 356 SocketSetKeepAliveFunction(); |
364 | 357 |
365 protected: | 358 protected: |
366 virtual ~SocketSetKeepAliveFunction(); | 359 virtual ~SocketSetKeepAliveFunction(); |
367 | 360 |
368 // AsyncApiFunction: | 361 // AsyncApiFunction: |
369 virtual bool Prepare() OVERRIDE; | 362 virtual bool Prepare() OVERRIDE; |
370 virtual void Work() OVERRIDE; | 363 virtual void Work() OVERRIDE; |
371 | 364 |
372 private: | 365 private: |
373 scoped_ptr<api::socket::SetKeepAlive::Params> params_; | 366 scoped_ptr<core_api::socket::SetKeepAlive::Params> params_; |
374 }; | 367 }; |
375 | 368 |
376 class SocketSetNoDelayFunction : public SocketAsyncApiFunction { | 369 class SocketSetNoDelayFunction : public SocketAsyncApiFunction { |
377 public: | 370 public: |
378 DECLARE_EXTENSION_FUNCTION("socket.setNoDelay", SOCKET_SETNODELAY) | 371 DECLARE_EXTENSION_FUNCTION("socket.setNoDelay", SOCKET_SETNODELAY) |
379 | 372 |
380 SocketSetNoDelayFunction(); | 373 SocketSetNoDelayFunction(); |
381 | 374 |
382 protected: | 375 protected: |
383 virtual ~SocketSetNoDelayFunction(); | 376 virtual ~SocketSetNoDelayFunction(); |
384 | 377 |
385 // AsyncApiFunction: | 378 // AsyncApiFunction: |
386 virtual bool Prepare() OVERRIDE; | 379 virtual bool Prepare() OVERRIDE; |
387 virtual void Work() OVERRIDE; | 380 virtual void Work() OVERRIDE; |
388 | 381 |
389 private: | 382 private: |
390 scoped_ptr<api::socket::SetNoDelay::Params> params_; | 383 scoped_ptr<core_api::socket::SetNoDelay::Params> params_; |
391 }; | 384 }; |
392 | 385 |
393 class SocketGetInfoFunction : public SocketAsyncApiFunction { | 386 class SocketGetInfoFunction : public SocketAsyncApiFunction { |
394 public: | 387 public: |
395 DECLARE_EXTENSION_FUNCTION("socket.getInfo", SOCKET_GETINFO) | 388 DECLARE_EXTENSION_FUNCTION("socket.getInfo", SOCKET_GETINFO) |
396 | 389 |
397 SocketGetInfoFunction(); | 390 SocketGetInfoFunction(); |
398 | 391 |
399 protected: | 392 protected: |
400 virtual ~SocketGetInfoFunction(); | 393 virtual ~SocketGetInfoFunction(); |
401 | 394 |
402 // AsyncApiFunction: | 395 // AsyncApiFunction: |
403 virtual bool Prepare() OVERRIDE; | 396 virtual bool Prepare() OVERRIDE; |
404 virtual void Work() OVERRIDE; | 397 virtual void Work() OVERRIDE; |
405 | 398 |
406 private: | 399 private: |
407 scoped_ptr<api::socket::GetInfo::Params> params_; | 400 scoped_ptr<core_api::socket::GetInfo::Params> params_; |
408 }; | 401 }; |
409 | 402 |
410 class SocketGetNetworkListFunction : public AsyncExtensionFunction { | 403 class SocketGetNetworkListFunction : public AsyncExtensionFunction { |
411 public: | 404 public: |
412 DECLARE_EXTENSION_FUNCTION("socket.getNetworkList", SOCKET_GETNETWORKLIST) | 405 DECLARE_EXTENSION_FUNCTION("socket.getNetworkList", SOCKET_GETNETWORKLIST) |
413 | 406 |
414 protected: | 407 protected: |
415 virtual ~SocketGetNetworkListFunction() {} | 408 virtual ~SocketGetNetworkListFunction() {} |
416 virtual bool RunImpl() OVERRIDE; | 409 virtual bool RunImpl() OVERRIDE; |
417 | 410 |
(...skipping 10 matching lines...) Expand all Loading... |
428 SocketJoinGroupFunction(); | 421 SocketJoinGroupFunction(); |
429 | 422 |
430 protected: | 423 protected: |
431 virtual ~SocketJoinGroupFunction(); | 424 virtual ~SocketJoinGroupFunction(); |
432 | 425 |
433 // AsyncApiFunction | 426 // AsyncApiFunction |
434 virtual bool Prepare() OVERRIDE; | 427 virtual bool Prepare() OVERRIDE; |
435 virtual void Work() OVERRIDE; | 428 virtual void Work() OVERRIDE; |
436 | 429 |
437 private: | 430 private: |
438 scoped_ptr<api::socket::JoinGroup::Params> params_; | 431 scoped_ptr<core_api::socket::JoinGroup::Params> params_; |
439 }; | 432 }; |
440 | 433 |
441 class SocketLeaveGroupFunction : public SocketAsyncApiFunction { | 434 class SocketLeaveGroupFunction : public SocketAsyncApiFunction { |
442 public: | 435 public: |
443 DECLARE_EXTENSION_FUNCTION("socket.leaveGroup", SOCKET_MULTICAST_LEAVE_GROUP) | 436 DECLARE_EXTENSION_FUNCTION("socket.leaveGroup", SOCKET_MULTICAST_LEAVE_GROUP) |
444 | 437 |
445 SocketLeaveGroupFunction(); | 438 SocketLeaveGroupFunction(); |
446 | 439 |
447 protected: | 440 protected: |
448 virtual ~SocketLeaveGroupFunction(); | 441 virtual ~SocketLeaveGroupFunction(); |
449 | 442 |
450 // AsyncApiFunction | 443 // AsyncApiFunction |
451 virtual bool Prepare() OVERRIDE; | 444 virtual bool Prepare() OVERRIDE; |
452 virtual void Work() OVERRIDE; | 445 virtual void Work() OVERRIDE; |
453 | 446 |
454 private: | 447 private: |
455 scoped_ptr<api::socket::LeaveGroup::Params> params_; | 448 scoped_ptr<core_api::socket::LeaveGroup::Params> params_; |
456 }; | 449 }; |
457 | 450 |
458 class SocketSetMulticastTimeToLiveFunction : public SocketAsyncApiFunction { | 451 class SocketSetMulticastTimeToLiveFunction : public SocketAsyncApiFunction { |
459 public: | 452 public: |
460 DECLARE_EXTENSION_FUNCTION("socket.setMulticastTimeToLive", | 453 DECLARE_EXTENSION_FUNCTION("socket.setMulticastTimeToLive", |
461 SOCKET_MULTICAST_SET_TIME_TO_LIVE) | 454 SOCKET_MULTICAST_SET_TIME_TO_LIVE) |
462 | 455 |
463 SocketSetMulticastTimeToLiveFunction(); | 456 SocketSetMulticastTimeToLiveFunction(); |
464 | 457 |
465 protected: | 458 protected: |
466 virtual ~SocketSetMulticastTimeToLiveFunction(); | 459 virtual ~SocketSetMulticastTimeToLiveFunction(); |
467 | 460 |
468 // AsyncApiFunction | 461 // AsyncApiFunction |
469 virtual bool Prepare() OVERRIDE; | 462 virtual bool Prepare() OVERRIDE; |
470 virtual void Work() OVERRIDE; | 463 virtual void Work() OVERRIDE; |
471 | 464 |
472 private: | 465 private: |
473 scoped_ptr<api::socket::SetMulticastTimeToLive::Params> params_; | 466 scoped_ptr<core_api::socket::SetMulticastTimeToLive::Params> params_; |
474 }; | 467 }; |
475 | 468 |
476 class SocketSetMulticastLoopbackModeFunction : public SocketAsyncApiFunction { | 469 class SocketSetMulticastLoopbackModeFunction : public SocketAsyncApiFunction { |
477 public: | 470 public: |
478 DECLARE_EXTENSION_FUNCTION("socket.setMulticastLoopbackMode", | 471 DECLARE_EXTENSION_FUNCTION("socket.setMulticastLoopbackMode", |
479 SOCKET_MULTICAST_SET_LOOPBACK_MODE) | 472 SOCKET_MULTICAST_SET_LOOPBACK_MODE) |
480 | 473 |
481 SocketSetMulticastLoopbackModeFunction(); | 474 SocketSetMulticastLoopbackModeFunction(); |
482 | 475 |
483 protected: | 476 protected: |
484 virtual ~SocketSetMulticastLoopbackModeFunction(); | 477 virtual ~SocketSetMulticastLoopbackModeFunction(); |
485 | 478 |
486 // AsyncApiFunction | 479 // AsyncApiFunction |
487 virtual bool Prepare() OVERRIDE; | 480 virtual bool Prepare() OVERRIDE; |
488 virtual void Work() OVERRIDE; | 481 virtual void Work() OVERRIDE; |
489 | 482 |
490 private: | 483 private: |
491 scoped_ptr<api::socket::SetMulticastLoopbackMode::Params> params_; | 484 scoped_ptr<core_api::socket::SetMulticastLoopbackMode::Params> params_; |
492 }; | 485 }; |
493 | 486 |
494 class SocketGetJoinedGroupsFunction : public SocketAsyncApiFunction { | 487 class SocketGetJoinedGroupsFunction : public SocketAsyncApiFunction { |
495 public: | 488 public: |
496 DECLARE_EXTENSION_FUNCTION("socket.getJoinedGroups", | 489 DECLARE_EXTENSION_FUNCTION("socket.getJoinedGroups", |
497 SOCKET_MULTICAST_GET_JOINED_GROUPS) | 490 SOCKET_MULTICAST_GET_JOINED_GROUPS) |
498 | 491 |
499 SocketGetJoinedGroupsFunction(); | 492 SocketGetJoinedGroupsFunction(); |
500 | 493 |
501 protected: | 494 protected: |
502 virtual ~SocketGetJoinedGroupsFunction(); | 495 virtual ~SocketGetJoinedGroupsFunction(); |
503 | 496 |
504 // AsyncApiFunction | 497 // AsyncApiFunction |
505 virtual bool Prepare() OVERRIDE; | 498 virtual bool Prepare() OVERRIDE; |
506 virtual void Work() OVERRIDE; | 499 virtual void Work() OVERRIDE; |
507 | 500 |
508 private: | 501 private: |
509 scoped_ptr<api::socket::GetJoinedGroups::Params> params_; | 502 scoped_ptr<core_api::socket::GetJoinedGroups::Params> params_; |
510 }; | 503 }; |
511 } // namespace extensions | 504 } // namespace extensions |
512 | 505 |
513 #endif // CHROME_BROWSER_EXTENSIONS_API_SOCKET_SOCKET_API_H_ | 506 #endif // EXTENSIONS_BROWSER_API_SOCKET_SOCKET_API_H_ |
OLD | NEW |