1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef PPAPI_PROXY_NETWORK_PROXY_RESOURCE_H_ 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define PPAPI_PROXY_NETWORK_PROXY_RESOURCE_H_ 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ppapi/proxy/plugin_resource.h" 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ppapi/proxy/ppapi_proxy_export.h" 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ppapi/thunk/ppb_network_proxy_api.h" 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace ppapi { 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace proxy { 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// The proxy-side resource for PPB_NetworkProxy. 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass PPAPI_PROXY_EXPORT NetworkProxyResource 17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch : public PluginResource, 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public thunk::PPB_NetworkProxy_API { 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public: 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch NetworkProxyResource(Connection connection, PP_Instance instance); 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual ~NetworkProxyResource(); 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch private: 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Resource implementation. 25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual thunk::PPB_NetworkProxy_API* AsPPB_NetworkProxy_API() OVERRIDE; 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // PPB_NetworkProxy_API implementation. 28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual int32_t GetProxyForURL( 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch PP_Instance instance, 30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch PP_Var url, 31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch PP_Var* proxy_string, 32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_refptr<TrackedCallback> callback) OVERRIDE; 33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch void OnPluginMsgGetProxyForURLReply(PP_Var* proxy_string_out_param, 35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_refptr<TrackedCallback> callback, 36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const ResourceMessageReplyParams& params, 37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const std::string& proxy_string); 38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch DISALLOW_COPY_AND_ASSIGN(NetworkProxyResource); 40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}; 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace proxy 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace ppapi 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif // PPAPI_PROXY_NETWORK_PROXY_RESOURCE_H_ 46