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

Side by Side Diff: content/renderer/pepper/pepper_helper_impl.cc

Issue 19005006: Switched proxy for TCPServerSocketPrivate. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync, fix. Created 7 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 | Annotate | Revision Log
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 "content/renderer/pepper/pepper_helper_impl.h" 5 #include "content/renderer/pepper/pepper_helper_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <cstddef> 8 #include <cstddef>
9 #include <map> 9 #include <map>
10 #include <queue> 10 #include <queue>
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 #include "content/renderer/pepper/pepper_file_system_host.h" 43 #include "content/renderer/pepper/pepper_file_system_host.h"
44 #include "content/renderer/pepper/pepper_graphics_2d_host.h" 44 #include "content/renderer/pepper/pepper_graphics_2d_host.h"
45 #include "content/renderer/pepper/pepper_hung_plugin_filter.h" 45 #include "content/renderer/pepper/pepper_hung_plugin_filter.h"
46 #include "content/renderer/pepper/pepper_in_process_resource_creation.h" 46 #include "content/renderer/pepper/pepper_in_process_resource_creation.h"
47 #include "content/renderer/pepper/pepper_in_process_router.h" 47 #include "content/renderer/pepper/pepper_in_process_router.h"
48 #include "content/renderer/pepper/pepper_plugin_instance_impl.h" 48 #include "content/renderer/pepper/pepper_plugin_instance_impl.h"
49 #include "content/renderer/pepper/pepper_plugin_registry.h" 49 #include "content/renderer/pepper/pepper_plugin_registry.h"
50 #include "content/renderer/pepper/pepper_url_loader_host.h" 50 #include "content/renderer/pepper/pepper_url_loader_host.h"
51 #include "content/renderer/pepper/pepper_webplugin_impl.h" 51 #include "content/renderer/pepper/pepper_webplugin_impl.h"
52 #include "content/renderer/pepper/plugin_module.h" 52 #include "content/renderer/pepper/plugin_module.h"
53 #include "content/renderer/pepper/ppb_tcp_server_socket_private_impl.h"
54 #include "content/renderer/pepper/ppb_tcp_socket_private_impl.h" 53 #include "content/renderer/pepper/ppb_tcp_socket_private_impl.h"
55 #include "content/renderer/pepper/renderer_ppapi_host_impl.h" 54 #include "content/renderer/pepper/renderer_ppapi_host_impl.h"
56 #include "content/renderer/pepper/resource_helper.h" 55 #include "content/renderer/pepper/resource_helper.h"
57 #include "content/renderer/pepper/url_response_info_util.h" 56 #include "content/renderer/pepper/url_response_info_util.h"
58 #include "content/renderer/render_thread_impl.h" 57 #include "content/renderer/render_thread_impl.h"
59 #include "content/renderer/render_view_impl.h" 58 #include "content/renderer/render_view_impl.h"
60 #include "content/renderer/render_widget_fullscreen_pepper.h" 59 #include "content/renderer/render_widget_fullscreen_pepper.h"
61 #include "content/renderer/webplugin_delegate_proxy.h" 60 #include "content/renderer/webplugin_delegate_proxy.h"
62 #include "ipc/ipc_channel_handle.h" 61 #include "ipc/ipc_channel_handle.h"
63 #include "ipc/ipc_platform_file.h" 62 #include "ipc/ipc_platform_file.h"
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 tcp_sockets_.AddWithID(socket, socket_id); 615 tcp_sockets_.AddWithID(socket, socket_id);
617 } 616 }
618 617
619 void PepperHelperImpl::UnregisterTCPSocket(uint32 socket_id) { 618 void PepperHelperImpl::UnregisterTCPSocket(uint32 socket_id) {
620 // There is no DCHECK(tcp_sockets_.Lookup(socket_id)) because this method 619 // There is no DCHECK(tcp_sockets_.Lookup(socket_id)) because this method
621 // can be called before TCPSocketConnect or TCPSocketConnectWithNetAddress. 620 // can be called before TCPSocketConnect or TCPSocketConnectWithNetAddress.
622 if (tcp_sockets_.Lookup(socket_id)) 621 if (tcp_sockets_.Lookup(socket_id))
623 tcp_sockets_.Remove(socket_id); 622 tcp_sockets_.Remove(socket_id);
624 } 623 }
625 624
626 void PepperHelperImpl::TCPServerSocketStopListening(uint32 socket_id) {
627 tcp_server_sockets_.Remove(socket_id);
628 }
629
630 void PepperHelperImpl::HandleDocumentLoad( 625 void PepperHelperImpl::HandleDocumentLoad(
631 PepperPluginInstanceImpl* instance, 626 PepperPluginInstanceImpl* instance,
632 const WebKit::WebURLResponse& response) { 627 const WebKit::WebURLResponse& response) {
633 DCHECK(!instance->document_loader()); 628 DCHECK(!instance->document_loader());
634 629
635 // Create a loader resource host for this load. Note that we have to set 630 // Create a loader resource host for this load. Note that we have to set
636 // the document_loader before issuing the in-process 631 // the document_loader before issuing the in-process
637 // PPP_Instance.HandleDocumentLoad call below, since this may reentrantly 632 // PPP_Instance.HandleDocumentLoad call below, since this may reentrantly
638 // call into the instance and expect it to be valid. 633 // call into the instance and expect it to be valid.
639 RendererPpapiHostImpl* host_impl = instance->module()->renderer_ppapi_host(); 634 RendererPpapiHostImpl* host_impl = instance->module()->renderer_ppapi_host();
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 bool handled = true; 704 bool handled = true;
710 IPC_BEGIN_MESSAGE_MAP(PepperHelperImpl, message) 705 IPC_BEGIN_MESSAGE_MAP(PepperHelperImpl, message)
711 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPSocket_ConnectACK, 706 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPSocket_ConnectACK,
712 OnTCPSocketConnectACK) 707 OnTCPSocketConnectACK)
713 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPSocket_SSLHandshakeACK, 708 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPSocket_SSLHandshakeACK,
714 OnTCPSocketSSLHandshakeACK) 709 OnTCPSocketSSLHandshakeACK)
715 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPSocket_ReadACK, OnTCPSocketReadACK) 710 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPSocket_ReadACK, OnTCPSocketReadACK)
716 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPSocket_WriteACK, OnTCPSocketWriteACK) 711 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPSocket_WriteACK, OnTCPSocketWriteACK)
717 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPSocket_SetOptionACK, 712 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPSocket_SetOptionACK,
718 OnTCPSocketSetOptionACK) 713 OnTCPSocketSetOptionACK)
719 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPServerSocket_ListenACK,
720 OnTCPServerSocketListenACK)
721 IPC_MESSAGE_HANDLER(PpapiMsg_PPBTCPServerSocket_AcceptACK,
722 OnTCPServerSocketAcceptACK)
723 IPC_MESSAGE_HANDLER(ViewMsg_PpapiBrokerChannelCreated, 714 IPC_MESSAGE_HANDLER(ViewMsg_PpapiBrokerChannelCreated,
724 OnPpapiBrokerChannelCreated) 715 OnPpapiBrokerChannelCreated)
725 IPC_MESSAGE_HANDLER(ViewMsg_AsyncOpenPepperFile_ACK, OnAsyncFileOpened) 716 IPC_MESSAGE_HANDLER(ViewMsg_AsyncOpenPepperFile_ACK, OnAsyncFileOpened)
726 IPC_MESSAGE_HANDLER(ViewMsg_PpapiBrokerPermissionResult, 717 IPC_MESSAGE_HANDLER(ViewMsg_PpapiBrokerPermissionResult,
727 OnPpapiBrokerPermissionResult) 718 OnPpapiBrokerPermissionResult)
728 IPC_MESSAGE_UNHANDLED(handled = false) 719 IPC_MESSAGE_UNHANDLED(handled = false)
729 IPC_END_MESSAGE_MAP() 720 IPC_END_MESSAGE_MAP()
730 return handled; 721 return handled;
731 } 722 }
732 723
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 769
779 void PepperHelperImpl::OnTCPSocketSetOptionACK( 770 void PepperHelperImpl::OnTCPSocketSetOptionACK(
780 uint32 plugin_dispatcher_id, 771 uint32 plugin_dispatcher_id,
781 uint32 socket_id, 772 uint32 socket_id,
782 int32_t result) { 773 int32_t result) {
783 PPB_TCPSocket_Private_Impl* socket = tcp_sockets_.Lookup(socket_id); 774 PPB_TCPSocket_Private_Impl* socket = tcp_sockets_.Lookup(socket_id);
784 if (socket) 775 if (socket)
785 socket->OnSetOptionCompleted(result); 776 socket->OnSetOptionCompleted(result);
786 } 777 }
787 778
788 void PepperHelperImpl::OnTCPServerSocketListenACK(
789 uint32 plugin_dispatcher_id,
790 PP_Resource socket_resource,
791 uint32 socket_id,
792 const PP_NetAddress_Private& local_addr,
793 int32_t status) {
794 ppapi::thunk::EnterResource<ppapi::thunk::PPB_TCPServerSocket_Private_API>
795 enter(socket_resource, true);
796 if (enter.succeeded()) {
797 ppapi::PPB_TCPServerSocket_Shared* socket =
798 static_cast<ppapi::PPB_TCPServerSocket_Shared*>(enter.object());
799 if (status == PP_OK)
800 tcp_server_sockets_.AddWithID(socket, socket_id);
801 socket->OnListenCompleted(socket_id, local_addr, status);
802 } else if (socket_id != 0 && status == PP_OK) {
803 // StopListening was called before completion of Listen.
804 Send(new PpapiHostMsg_PPBTCPServerSocket_Destroy(socket_id));
805 }
806 }
807
808 void PepperHelperImpl::OnTCPServerSocketAcceptACK(
809 uint32 plugin_dispatcher_id,
810 uint32 server_socket_id,
811 uint32 accepted_socket_id,
812 const PP_NetAddress_Private& local_addr,
813 const PP_NetAddress_Private& remote_addr) {
814 ppapi::PPB_TCPServerSocket_Shared* socket =
815 tcp_server_sockets_.Lookup(server_socket_id);
816 if (socket) {
817 bool succeeded = (accepted_socket_id != 0);
818 socket->OnAcceptCompleted(succeeded,
819 accepted_socket_id,
820 local_addr,
821 remote_addr);
822 } else if (accepted_socket_id != 0) {
823 Send(new PpapiHostMsg_PPBTCPSocket_Disconnect(accepted_socket_id));
824 }
825 }
826
827 void PepperHelperImpl::DidDataFromWebURLResponse( 779 void PepperHelperImpl::DidDataFromWebURLResponse(
828 PP_Instance pp_instance, 780 PP_Instance pp_instance,
829 const WebKit::WebURLResponse& response, 781 const WebKit::WebURLResponse& response,
830 int pending_host_id, 782 int pending_host_id,
831 const ppapi::URLResponseInfoData& data) { 783 const ppapi::URLResponseInfoData& data) {
832 PepperPluginInstanceImpl* instance = 784 PepperPluginInstanceImpl* instance =
833 ResourceHelper::PPInstanceToPluginInstance(pp_instance); 785 ResourceHelper::PPInstanceToPluginInstance(pp_instance);
834 if (!instance) 786 if (!instance)
835 return; 787 return;
836 788
(...skipping 19 matching lines...) Expand all
856 // Running out-of-process. Initiate an IPC call to notify the plugin 808 // Running out-of-process. Initiate an IPC call to notify the plugin
857 // process. 809 // process.
858 ppapi::proxy::HostDispatcher* dispatcher = 810 ppapi::proxy::HostDispatcher* dispatcher =
859 ppapi::proxy::HostDispatcher::GetForInstance(pp_instance); 811 ppapi::proxy::HostDispatcher::GetForInstance(pp_instance);
860 dispatcher->Send(new PpapiMsg_PPPInstance_HandleDocumentLoad( 812 dispatcher->Send(new PpapiMsg_PPPInstance_HandleDocumentLoad(
861 ppapi::API_ID_PPP_INSTANCE, pp_instance, pending_host_id, data)); 813 ppapi::API_ID_PPP_INSTANCE, pp_instance, pending_host_id, data));
862 } 814 }
863 } 815 }
864 816
865 } // namespace content 817 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698