blob: 9890324707fc27426c88452dcf62f2a7b9a2692f [file] [log] [blame]
Avi Drissmandb497b32022-09-15 19:47:281// Copyright 2013 The Chromium Authors
[email protected]226dea42013-06-24 21:05:362// 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
[email protected]226dea42013-06-24 21:05:3610#include "ppapi/proxy/plugin_resource.h"
11#include "ppapi/proxy/ppapi_proxy_export.h"
12#include "ppapi/thunk/ppb_network_proxy_api.h"
13
14namespace ppapi {
15namespace proxy {
16
17// The proxy-side resource for PPB_NetworkProxy.
18class PPAPI_PROXY_EXPORT NetworkProxyResource
19 : public PluginResource,
20 public thunk::PPB_NetworkProxy_API {
21 public:
22 NetworkProxyResource(Connection connection, PP_Instance instance);
Peter Boström3d5b3cb2021-09-23 21:35:4523
24 NetworkProxyResource(const NetworkProxyResource&) = delete;
25 NetworkProxyResource& operator=(const NetworkProxyResource&) = delete;
26
nicke4784432015-04-23 14:01:4827 ~NetworkProxyResource() override;
[email protected]226dea42013-06-24 21:05:3628
29 private:
30 // Resource implementation.
nicke4784432015-04-23 14:01:4831 thunk::PPB_NetworkProxy_API* AsPPB_NetworkProxy_API() override;
[email protected]226dea42013-06-24 21:05:3632
33 // PPB_NetworkProxy_API implementation.
nicke4784432015-04-23 14:01:4834 int32_t GetProxyForURL(
[email protected]226dea42013-06-24 21:05:3635 PP_Instance instance,
36 PP_Var url,
37 PP_Var* proxy_string,
mostynb699af3c2014-10-06 18:03:3438 scoped_refptr<TrackedCallback> callback) override;
[email protected]226dea42013-06-24 21:05:3639
40 void OnPluginMsgGetProxyForURLReply(PP_Var* proxy_string_out_param,
41 scoped_refptr<TrackedCallback> callback,
42 const ResourceMessageReplyParams& params,
43 const std::string& proxy_string);
[email protected]226dea42013-06-24 21:05:3644};
45
46} // namespace proxy
47} // namespace ppapi
48
49#endif // PPAPI_PROXY_NETWORK_PROXY_RESOURCE_H_