Index: ppapi/proxy/ppb_url_loader_proxy.h |
=================================================================== |
--- ppapi/proxy/ppb_url_loader_proxy.h (revision 0) |
+++ ppapi/proxy/ppb_url_loader_proxy.h (revision 0) |
@@ -0,0 +1,74 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef PPAPI_PPB_URL_LOADER_PROXY_H_ |
+#define PPAPI_PPB_URL_LOADER_PROXY_H_ |
+ |
+#include "base/weak_ptr.h" |
+#include "ppapi/c/pp_completion_callback.h" |
+#include "ppapi/c/pp_instance.h" |
+#include "ppapi/c/pp_module.h" |
+#include "ppapi/c/pp_resource.h" |
+#include "ppapi/c/pp_size.h" |
+#include "ppapi/c/pp_var.h" |
+#include "ppapi/proxy/interface_proxy.h" |
+ |
+struct PPB_URLLoader_Dev; |
+ |
+namespace pp { |
+namespace proxy { |
+ |
+class PPB_URLLoader_Proxy : public InterfaceProxy, |
+ public base::SupportsWeakPtr<PPB_URLLoader_Proxy> { |
+ public: |
+ PPB_URLLoader_Proxy(Dispatcher* dispatcher, const void* target_interface); |
+ virtual ~PPB_URLLoader_Proxy(); |
+ |
+ // URLLoader objects are normally allocated by the Create function, but |
+ // they are also provided to PPP_Instance.OnMsgHandleDocumentLoad. This |
+ // function allows the proxy for DocumentLoad to create the correct plugin |
+ // proxied info for the given browser-supplied URLLoader resource ID. |
+ static void TrackPluginResource(PP_Resource url_loader_resource); |
+ |
+ const PPB_URLLoader_Dev* ppb_url_loader_target() const { |
+ return reinterpret_cast<const PPB_URLLoader_Dev*>(target_interface()); |
+ } |
+ |
+ // InterfaceProxy implementation. |
+ virtual const void* GetSourceInterface() const; |
+ virtual InterfaceID GetInterfaceId() const; |
+ virtual void OnMessageReceived(const IPC::Message& msg); |
+ |
+ private: |
+ // Plugin->renderer message handlers. |
+ void OnMsgCreate(PP_Instance instance, |
+ PP_Resource* result); |
+ void OnMsgOpen(PP_Resource loader, |
+ PP_Resource request_info, |
+ uint32_t serialized_callback); |
+ void OnMsgFollowRedirect(PP_Resource loader, |
+ uint32_t serialized_callback); |
+ void OnMsgGetResponseInfo(PP_Resource loader, |
+ PP_Resource* result); |
+ void OnMsgReadResponseBody(PP_Resource loader, |
+ int32_t bytes_to_read); |
+ void OnMsgFinishStreamingToFile(PP_Resource loader, |
+ uint32_t serialized_callback); |
+ void OnMsgClose(PP_Resource loader); |
+ |
+ // Renderer->plugin message handlers. |
+ void OnMsgUpdateProgress(PP_Resource resource, |
+ int64_t bytes_sent, |
+ int64_t total_bytes_to_be_sent, |
+ int64_t bytes_received, |
+ int64_t total_bytes_to_be_received); |
+ void OnMsgReadResponseBodyAck(PP_Resource pp_resource, |
+ int32_t result, |
+ const std::string& data); |
+}; |
+ |
+} // namespace proxy |
+} // namespace pp |
+ |
+#endif // PPAPI_PPB_URL_LOADER_PROXY_H_ |
Property changes on: ppapi/proxy/ppb_url_loader_proxy.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |