blob: 646e046d048e84f72c7a567d0035444b39179ec3 [file] [log] [blame]
[email protected]226dea42013-06-24 21:05:361// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef PPAPI_PROXY_NETWORK_PROXY_RESOURCE_H_
6#define PPAPI_PROXY_NETWORK_PROXY_RESOURCE_H_
7
avie029c4132015-12-23 06:45:228#include <stdint.h>
9
10#include "base/macros.h"
[email protected]226dea42013-06-24 21:05:3611#include "ppapi/proxy/plugin_resource.h"
12#include "ppapi/proxy/ppapi_proxy_export.h"
13#include "ppapi/thunk/ppb_network_proxy_api.h"
14
15namespace ppapi {
16namespace proxy {
17
18// The proxy-side resource for PPB_NetworkProxy.
19class PPAPI_PROXY_EXPORT NetworkProxyResource
20 : public PluginResource,
21 public thunk::PPB_NetworkProxy_API {
22 public:
23 NetworkProxyResource(Connection connection, PP_Instance instance);
nicke4784432015-04-23 14:01:4824 ~NetworkProxyResource() override;
[email protected]226dea42013-06-24 21:05:3625
26 private:
27 // Resource implementation.
nicke4784432015-04-23 14:01:4828 thunk::PPB_NetworkProxy_API* AsPPB_NetworkProxy_API() override;
[email protected]226dea42013-06-24 21:05:3629
30 // PPB_NetworkProxy_API implementation.
nicke4784432015-04-23 14:01:4831 int32_t GetProxyForURL(
[email protected]226dea42013-06-24 21:05:3632 PP_Instance instance,
33 PP_Var url,
34 PP_Var* proxy_string,
mostynb699af3c2014-10-06 18:03:3435 scoped_refptr<TrackedCallback> callback) override;
[email protected]226dea42013-06-24 21:05:3636
37 void OnPluginMsgGetProxyForURLReply(PP_Var* proxy_string_out_param,
38 scoped_refptr<TrackedCallback> callback,
39 const ResourceMessageReplyParams& params,
40 const std::string& proxy_string);
41
42 DISALLOW_COPY_AND_ASSIGN(NetworkProxyResource);
43};
44
45} // namespace proxy
46} // namespace ppapi
47
48#endif // PPAPI_PROXY_NETWORK_PROXY_RESOURCE_H_