| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 EXTENSIONS_BROWSER_API_SOCKET_SOCKET_API_H_ | 5 #ifndef EXTENSIONS_BROWSER_API_SOCKET_SOCKET_API_H_ |
| 6 #define EXTENSIONS_BROWSER_API_SOCKET_SOCKET_API_H_ | 6 #define EXTENSIONS_BROWSER_API_SOCKET_SOCKET_API_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 public: | 110 public: |
| 111 SocketAsyncApiFunction(); | 111 SocketAsyncApiFunction(); |
| 112 | 112 |
| 113 protected: | 113 protected: |
| 114 ~SocketAsyncApiFunction() override; | 114 ~SocketAsyncApiFunction() override; |
| 115 | 115 |
| 116 // AsyncApiFunction: | 116 // AsyncApiFunction: |
| 117 bool PrePrepare() override; | 117 bool PrePrepare() override; |
| 118 bool Respond() override; | 118 bool Respond() override; |
| 119 | 119 |
| 120 virtual scoped_ptr<SocketResourceManagerInterface> | 120 virtual std::unique_ptr<SocketResourceManagerInterface> |
| 121 CreateSocketResourceManager(); | 121 CreateSocketResourceManager(); |
| 122 | 122 |
| 123 int AddSocket(Socket* socket); | 123 int AddSocket(Socket* socket); |
| 124 Socket* GetSocket(int api_resource_id); | 124 Socket* GetSocket(int api_resource_id); |
| 125 void ReplaceSocket(int api_resource_id, Socket* socket); | 125 void ReplaceSocket(int api_resource_id, Socket* socket); |
| 126 void RemoveSocket(int api_resource_id); | 126 void RemoveSocket(int api_resource_id); |
| 127 base::hash_set<int>* GetSocketIds(); | 127 base::hash_set<int>* GetSocketIds(); |
| 128 | 128 |
| 129 // A no-op outside of Chrome OS. | 129 // A no-op outside of Chrome OS. |
| 130 void OpenFirewallHole(const std::string& address, | 130 void OpenFirewallHole(const std::string& address, |
| 131 int socket_id, | 131 int socket_id, |
| 132 Socket* socket); | 132 Socket* socket); |
| 133 | 133 |
| 134 private: | 134 private: |
| 135 #if defined(OS_CHROMEOS) | 135 #if defined(OS_CHROMEOS) |
| 136 void OpenFirewallHoleOnUIThread(AppFirewallHole::PortType type, | 136 void OpenFirewallHoleOnUIThread(AppFirewallHole::PortType type, |
| 137 uint16_t port, | 137 uint16_t port, |
| 138 int socket_id); | 138 int socket_id); |
| 139 void OnFirewallHoleOpened( | 139 void OnFirewallHoleOpened( |
| 140 int socket_id, | 140 int socket_id, |
| 141 scoped_ptr<AppFirewallHole, content::BrowserThread::DeleteOnUIThread> | 141 std::unique_ptr<AppFirewallHole, content::BrowserThread::DeleteOnUIThread> |
| 142 hole); | 142 hole); |
| 143 #endif // OS_CHROMEOS | 143 #endif // OS_CHROMEOS |
| 144 | 144 |
| 145 scoped_ptr<SocketResourceManagerInterface> manager_; | 145 std::unique_ptr<SocketResourceManagerInterface> manager_; |
| 146 }; | 146 }; |
| 147 | 147 |
| 148 class SocketExtensionWithDnsLookupFunction : public SocketAsyncApiFunction { | 148 class SocketExtensionWithDnsLookupFunction : public SocketAsyncApiFunction { |
| 149 protected: | 149 protected: |
| 150 SocketExtensionWithDnsLookupFunction(); | 150 SocketExtensionWithDnsLookupFunction(); |
| 151 ~SocketExtensionWithDnsLookupFunction() override; | 151 ~SocketExtensionWithDnsLookupFunction() override; |
| 152 | 152 |
| 153 // AsyncApiFunction: | 153 // AsyncApiFunction: |
| 154 bool PrePrepare() override; | 154 bool PrePrepare() override; |
| 155 | 155 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 175 ~SocketCreateFunction() override; | 175 ~SocketCreateFunction() override; |
| 176 | 176 |
| 177 // AsyncApiFunction: | 177 // AsyncApiFunction: |
| 178 bool Prepare() override; | 178 bool Prepare() override; |
| 179 void Work() override; | 179 void Work() override; |
| 180 | 180 |
| 181 private: | 181 private: |
| 182 FRIEND_TEST_ALL_PREFIXES(SocketUnitTest, Create); | 182 FRIEND_TEST_ALL_PREFIXES(SocketUnitTest, Create); |
| 183 enum SocketType { kSocketTypeInvalid = -1, kSocketTypeTCP, kSocketTypeUDP }; | 183 enum SocketType { kSocketTypeInvalid = -1, kSocketTypeTCP, kSocketTypeUDP }; |
| 184 | 184 |
| 185 scoped_ptr<api::socket::Create::Params> params_; | 185 std::unique_ptr<api::socket::Create::Params> params_; |
| 186 SocketType socket_type_; | 186 SocketType socket_type_; |
| 187 }; | 187 }; |
| 188 | 188 |
| 189 class SocketDestroyFunction : public SocketAsyncApiFunction { | 189 class SocketDestroyFunction : public SocketAsyncApiFunction { |
| 190 public: | 190 public: |
| 191 DECLARE_EXTENSION_FUNCTION("socket.destroy", SOCKET_DESTROY) | 191 DECLARE_EXTENSION_FUNCTION("socket.destroy", SOCKET_DESTROY) |
| 192 | 192 |
| 193 protected: | 193 protected: |
| 194 ~SocketDestroyFunction() override {} | 194 ~SocketDestroyFunction() override {} |
| 195 | 195 |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 SocketListenFunction(); | 265 SocketListenFunction(); |
| 266 | 266 |
| 267 protected: | 267 protected: |
| 268 ~SocketListenFunction() override; | 268 ~SocketListenFunction() override; |
| 269 | 269 |
| 270 // AsyncApiFunction: | 270 // AsyncApiFunction: |
| 271 bool Prepare() override; | 271 bool Prepare() override; |
| 272 void AsyncWorkStart() override; | 272 void AsyncWorkStart() override; |
| 273 | 273 |
| 274 private: | 274 private: |
| 275 scoped_ptr<api::socket::Listen::Params> params_; | 275 std::unique_ptr<api::socket::Listen::Params> params_; |
| 276 }; | 276 }; |
| 277 | 277 |
| 278 class SocketAcceptFunction : public SocketAsyncApiFunction { | 278 class SocketAcceptFunction : public SocketAsyncApiFunction { |
| 279 public: | 279 public: |
| 280 DECLARE_EXTENSION_FUNCTION("socket.accept", SOCKET_ACCEPT) | 280 DECLARE_EXTENSION_FUNCTION("socket.accept", SOCKET_ACCEPT) |
| 281 | 281 |
| 282 SocketAcceptFunction(); | 282 SocketAcceptFunction(); |
| 283 | 283 |
| 284 protected: | 284 protected: |
| 285 ~SocketAcceptFunction() override; | 285 ~SocketAcceptFunction() override; |
| 286 | 286 |
| 287 // AsyncApiFunction: | 287 // AsyncApiFunction: |
| 288 bool Prepare() override; | 288 bool Prepare() override; |
| 289 void AsyncWorkStart() override; | 289 void AsyncWorkStart() override; |
| 290 | 290 |
| 291 private: | 291 private: |
| 292 void OnAccept(int result_code, scoped_ptr<net::TCPClientSocket> socket); | 292 void OnAccept(int result_code, std::unique_ptr<net::TCPClientSocket> socket); |
| 293 | 293 |
| 294 scoped_ptr<api::socket::Accept::Params> params_; | 294 std::unique_ptr<api::socket::Accept::Params> params_; |
| 295 }; | 295 }; |
| 296 | 296 |
| 297 class SocketReadFunction : public SocketAsyncApiFunction { | 297 class SocketReadFunction : public SocketAsyncApiFunction { |
| 298 public: | 298 public: |
| 299 DECLARE_EXTENSION_FUNCTION("socket.read", SOCKET_READ) | 299 DECLARE_EXTENSION_FUNCTION("socket.read", SOCKET_READ) |
| 300 | 300 |
| 301 SocketReadFunction(); | 301 SocketReadFunction(); |
| 302 | 302 |
| 303 protected: | 303 protected: |
| 304 ~SocketReadFunction() override; | 304 ~SocketReadFunction() override; |
| 305 | 305 |
| 306 // AsyncApiFunction: | 306 // AsyncApiFunction: |
| 307 bool Prepare() override; | 307 bool Prepare() override; |
| 308 void AsyncWorkStart() override; | 308 void AsyncWorkStart() override; |
| 309 void OnCompleted(int result, scoped_refptr<net::IOBuffer> io_buffer); | 309 void OnCompleted(int result, scoped_refptr<net::IOBuffer> io_buffer); |
| 310 | 310 |
| 311 private: | 311 private: |
| 312 scoped_ptr<api::socket::Read::Params> params_; | 312 std::unique_ptr<api::socket::Read::Params> params_; |
| 313 }; | 313 }; |
| 314 | 314 |
| 315 class SocketWriteFunction : public SocketAsyncApiFunction { | 315 class SocketWriteFunction : public SocketAsyncApiFunction { |
| 316 public: | 316 public: |
| 317 DECLARE_EXTENSION_FUNCTION("socket.write", SOCKET_WRITE) | 317 DECLARE_EXTENSION_FUNCTION("socket.write", SOCKET_WRITE) |
| 318 | 318 |
| 319 SocketWriteFunction(); | 319 SocketWriteFunction(); |
| 320 | 320 |
| 321 protected: | 321 protected: |
| 322 ~SocketWriteFunction() override; | 322 ~SocketWriteFunction() override; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 343 | 343 |
| 344 // AsyncApiFunction | 344 // AsyncApiFunction |
| 345 bool Prepare() override; | 345 bool Prepare() override; |
| 346 void AsyncWorkStart() override; | 346 void AsyncWorkStart() override; |
| 347 void OnCompleted(int result, | 347 void OnCompleted(int result, |
| 348 scoped_refptr<net::IOBuffer> io_buffer, | 348 scoped_refptr<net::IOBuffer> io_buffer, |
| 349 const std::string& address, | 349 const std::string& address, |
| 350 uint16_t port); | 350 uint16_t port); |
| 351 | 351 |
| 352 private: | 352 private: |
| 353 scoped_ptr<api::socket::RecvFrom::Params> params_; | 353 std::unique_ptr<api::socket::RecvFrom::Params> params_; |
| 354 }; | 354 }; |
| 355 | 355 |
| 356 class SocketSendToFunction : public SocketExtensionWithDnsLookupFunction { | 356 class SocketSendToFunction : public SocketExtensionWithDnsLookupFunction { |
| 357 public: | 357 public: |
| 358 DECLARE_EXTENSION_FUNCTION("socket.sendTo", SOCKET_SENDTO) | 358 DECLARE_EXTENSION_FUNCTION("socket.sendTo", SOCKET_SENDTO) |
| 359 | 359 |
| 360 SocketSendToFunction(); | 360 SocketSendToFunction(); |
| 361 | 361 |
| 362 protected: | 362 protected: |
| 363 ~SocketSendToFunction() override; | 363 ~SocketSendToFunction() override; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 387 SocketSetKeepAliveFunction(); | 387 SocketSetKeepAliveFunction(); |
| 388 | 388 |
| 389 protected: | 389 protected: |
| 390 ~SocketSetKeepAliveFunction() override; | 390 ~SocketSetKeepAliveFunction() override; |
| 391 | 391 |
| 392 // AsyncApiFunction: | 392 // AsyncApiFunction: |
| 393 bool Prepare() override; | 393 bool Prepare() override; |
| 394 void Work() override; | 394 void Work() override; |
| 395 | 395 |
| 396 private: | 396 private: |
| 397 scoped_ptr<api::socket::SetKeepAlive::Params> params_; | 397 std::unique_ptr<api::socket::SetKeepAlive::Params> params_; |
| 398 }; | 398 }; |
| 399 | 399 |
| 400 class SocketSetNoDelayFunction : public SocketAsyncApiFunction { | 400 class SocketSetNoDelayFunction : public SocketAsyncApiFunction { |
| 401 public: | 401 public: |
| 402 DECLARE_EXTENSION_FUNCTION("socket.setNoDelay", SOCKET_SETNODELAY) | 402 DECLARE_EXTENSION_FUNCTION("socket.setNoDelay", SOCKET_SETNODELAY) |
| 403 | 403 |
| 404 SocketSetNoDelayFunction(); | 404 SocketSetNoDelayFunction(); |
| 405 | 405 |
| 406 protected: | 406 protected: |
| 407 ~SocketSetNoDelayFunction() override; | 407 ~SocketSetNoDelayFunction() override; |
| 408 | 408 |
| 409 // AsyncApiFunction: | 409 // AsyncApiFunction: |
| 410 bool Prepare() override; | 410 bool Prepare() override; |
| 411 void Work() override; | 411 void Work() override; |
| 412 | 412 |
| 413 private: | 413 private: |
| 414 scoped_ptr<api::socket::SetNoDelay::Params> params_; | 414 std::unique_ptr<api::socket::SetNoDelay::Params> params_; |
| 415 }; | 415 }; |
| 416 | 416 |
| 417 class SocketGetInfoFunction : public SocketAsyncApiFunction { | 417 class SocketGetInfoFunction : public SocketAsyncApiFunction { |
| 418 public: | 418 public: |
| 419 DECLARE_EXTENSION_FUNCTION("socket.getInfo", SOCKET_GETINFO) | 419 DECLARE_EXTENSION_FUNCTION("socket.getInfo", SOCKET_GETINFO) |
| 420 | 420 |
| 421 SocketGetInfoFunction(); | 421 SocketGetInfoFunction(); |
| 422 | 422 |
| 423 protected: | 423 protected: |
| 424 ~SocketGetInfoFunction() override; | 424 ~SocketGetInfoFunction() override; |
| 425 | 425 |
| 426 // AsyncApiFunction: | 426 // AsyncApiFunction: |
| 427 bool Prepare() override; | 427 bool Prepare() override; |
| 428 void Work() override; | 428 void Work() override; |
| 429 | 429 |
| 430 private: | 430 private: |
| 431 scoped_ptr<api::socket::GetInfo::Params> params_; | 431 std::unique_ptr<api::socket::GetInfo::Params> params_; |
| 432 }; | 432 }; |
| 433 | 433 |
| 434 class SocketGetNetworkListFunction : public AsyncExtensionFunction { | 434 class SocketGetNetworkListFunction : public AsyncExtensionFunction { |
| 435 public: | 435 public: |
| 436 DECLARE_EXTENSION_FUNCTION("socket.getNetworkList", SOCKET_GETNETWORKLIST) | 436 DECLARE_EXTENSION_FUNCTION("socket.getNetworkList", SOCKET_GETNETWORKLIST) |
| 437 | 437 |
| 438 protected: | 438 protected: |
| 439 ~SocketGetNetworkListFunction() override {} | 439 ~SocketGetNetworkListFunction() override {} |
| 440 bool RunAsync() override; | 440 bool RunAsync() override; |
| 441 | 441 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 452 SocketJoinGroupFunction(); | 452 SocketJoinGroupFunction(); |
| 453 | 453 |
| 454 protected: | 454 protected: |
| 455 ~SocketJoinGroupFunction() override; | 455 ~SocketJoinGroupFunction() override; |
| 456 | 456 |
| 457 // AsyncApiFunction | 457 // AsyncApiFunction |
| 458 bool Prepare() override; | 458 bool Prepare() override; |
| 459 void Work() override; | 459 void Work() override; |
| 460 | 460 |
| 461 private: | 461 private: |
| 462 scoped_ptr<api::socket::JoinGroup::Params> params_; | 462 std::unique_ptr<api::socket::JoinGroup::Params> params_; |
| 463 }; | 463 }; |
| 464 | 464 |
| 465 class SocketLeaveGroupFunction : public SocketAsyncApiFunction { | 465 class SocketLeaveGroupFunction : public SocketAsyncApiFunction { |
| 466 public: | 466 public: |
| 467 DECLARE_EXTENSION_FUNCTION("socket.leaveGroup", SOCKET_MULTICAST_LEAVE_GROUP) | 467 DECLARE_EXTENSION_FUNCTION("socket.leaveGroup", SOCKET_MULTICAST_LEAVE_GROUP) |
| 468 | 468 |
| 469 SocketLeaveGroupFunction(); | 469 SocketLeaveGroupFunction(); |
| 470 | 470 |
| 471 protected: | 471 protected: |
| 472 ~SocketLeaveGroupFunction() override; | 472 ~SocketLeaveGroupFunction() override; |
| 473 | 473 |
| 474 // AsyncApiFunction | 474 // AsyncApiFunction |
| 475 bool Prepare() override; | 475 bool Prepare() override; |
| 476 void Work() override; | 476 void Work() override; |
| 477 | 477 |
| 478 private: | 478 private: |
| 479 scoped_ptr<api::socket::LeaveGroup::Params> params_; | 479 std::unique_ptr<api::socket::LeaveGroup::Params> params_; |
| 480 }; | 480 }; |
| 481 | 481 |
| 482 class SocketSetMulticastTimeToLiveFunction : public SocketAsyncApiFunction { | 482 class SocketSetMulticastTimeToLiveFunction : public SocketAsyncApiFunction { |
| 483 public: | 483 public: |
| 484 DECLARE_EXTENSION_FUNCTION("socket.setMulticastTimeToLive", | 484 DECLARE_EXTENSION_FUNCTION("socket.setMulticastTimeToLive", |
| 485 SOCKET_MULTICAST_SET_TIME_TO_LIVE) | 485 SOCKET_MULTICAST_SET_TIME_TO_LIVE) |
| 486 | 486 |
| 487 SocketSetMulticastTimeToLiveFunction(); | 487 SocketSetMulticastTimeToLiveFunction(); |
| 488 | 488 |
| 489 protected: | 489 protected: |
| 490 ~SocketSetMulticastTimeToLiveFunction() override; | 490 ~SocketSetMulticastTimeToLiveFunction() override; |
| 491 | 491 |
| 492 // AsyncApiFunction | 492 // AsyncApiFunction |
| 493 bool Prepare() override; | 493 bool Prepare() override; |
| 494 void Work() override; | 494 void Work() override; |
| 495 | 495 |
| 496 private: | 496 private: |
| 497 scoped_ptr<api::socket::SetMulticastTimeToLive::Params> params_; | 497 std::unique_ptr<api::socket::SetMulticastTimeToLive::Params> params_; |
| 498 }; | 498 }; |
| 499 | 499 |
| 500 class SocketSetMulticastLoopbackModeFunction : public SocketAsyncApiFunction { | 500 class SocketSetMulticastLoopbackModeFunction : public SocketAsyncApiFunction { |
| 501 public: | 501 public: |
| 502 DECLARE_EXTENSION_FUNCTION("socket.setMulticastLoopbackMode", | 502 DECLARE_EXTENSION_FUNCTION("socket.setMulticastLoopbackMode", |
| 503 SOCKET_MULTICAST_SET_LOOPBACK_MODE) | 503 SOCKET_MULTICAST_SET_LOOPBACK_MODE) |
| 504 | 504 |
| 505 SocketSetMulticastLoopbackModeFunction(); | 505 SocketSetMulticastLoopbackModeFunction(); |
| 506 | 506 |
| 507 protected: | 507 protected: |
| 508 ~SocketSetMulticastLoopbackModeFunction() override; | 508 ~SocketSetMulticastLoopbackModeFunction() override; |
| 509 | 509 |
| 510 // AsyncApiFunction | 510 // AsyncApiFunction |
| 511 bool Prepare() override; | 511 bool Prepare() override; |
| 512 void Work() override; | 512 void Work() override; |
| 513 | 513 |
| 514 private: | 514 private: |
| 515 scoped_ptr<api::socket::SetMulticastLoopbackMode::Params> params_; | 515 std::unique_ptr<api::socket::SetMulticastLoopbackMode::Params> params_; |
| 516 }; | 516 }; |
| 517 | 517 |
| 518 class SocketGetJoinedGroupsFunction : public SocketAsyncApiFunction { | 518 class SocketGetJoinedGroupsFunction : public SocketAsyncApiFunction { |
| 519 public: | 519 public: |
| 520 DECLARE_EXTENSION_FUNCTION("socket.getJoinedGroups", | 520 DECLARE_EXTENSION_FUNCTION("socket.getJoinedGroups", |
| 521 SOCKET_MULTICAST_GET_JOINED_GROUPS) | 521 SOCKET_MULTICAST_GET_JOINED_GROUPS) |
| 522 | 522 |
| 523 SocketGetJoinedGroupsFunction(); | 523 SocketGetJoinedGroupsFunction(); |
| 524 | 524 |
| 525 protected: | 525 protected: |
| 526 ~SocketGetJoinedGroupsFunction() override; | 526 ~SocketGetJoinedGroupsFunction() override; |
| 527 | 527 |
| 528 // AsyncApiFunction | 528 // AsyncApiFunction |
| 529 bool Prepare() override; | 529 bool Prepare() override; |
| 530 void Work() override; | 530 void Work() override; |
| 531 | 531 |
| 532 private: | 532 private: |
| 533 scoped_ptr<api::socket::GetJoinedGroups::Params> params_; | 533 std::unique_ptr<api::socket::GetJoinedGroups::Params> params_; |
| 534 }; | 534 }; |
| 535 | 535 |
| 536 class SocketSecureFunction : public SocketAsyncApiFunction { | 536 class SocketSecureFunction : public SocketAsyncApiFunction { |
| 537 public: | 537 public: |
| 538 DECLARE_EXTENSION_FUNCTION("socket.secure", SOCKET_SECURE); | 538 DECLARE_EXTENSION_FUNCTION("socket.secure", SOCKET_SECURE); |
| 539 SocketSecureFunction(); | 539 SocketSecureFunction(); |
| 540 | 540 |
| 541 protected: | 541 protected: |
| 542 ~SocketSecureFunction() override; | 542 ~SocketSecureFunction() override; |
| 543 | 543 |
| 544 // AsyncApiFunction | 544 // AsyncApiFunction |
| 545 bool Prepare() override; | 545 bool Prepare() override; |
| 546 void AsyncWorkStart() override; | 546 void AsyncWorkStart() override; |
| 547 | 547 |
| 548 private: | 548 private: |
| 549 // Callback from TLSSocket::UpgradeSocketToTLS(). | 549 // Callback from TLSSocket::UpgradeSocketToTLS(). |
| 550 void TlsConnectDone(scoped_ptr<TLSSocket> socket, int result); | 550 void TlsConnectDone(std::unique_ptr<TLSSocket> socket, int result); |
| 551 | 551 |
| 552 scoped_ptr<api::socket::Secure::Params> params_; | 552 std::unique_ptr<api::socket::Secure::Params> params_; |
| 553 scoped_refptr<net::URLRequestContextGetter> url_request_getter_; | 553 scoped_refptr<net::URLRequestContextGetter> url_request_getter_; |
| 554 | 554 |
| 555 DISALLOW_COPY_AND_ASSIGN(SocketSecureFunction); | 555 DISALLOW_COPY_AND_ASSIGN(SocketSecureFunction); |
| 556 }; | 556 }; |
| 557 | 557 |
| 558 } // namespace extensions | 558 } // namespace extensions |
| 559 | 559 |
| 560 #endif // EXTENSIONS_BROWSER_API_SOCKET_SOCKET_API_H_ | 560 #endif // EXTENSIONS_BROWSER_API_SOCKET_SOCKET_API_H_ |
| OLD | NEW |