blob: 2d81cb3f63da319017a397be264ecf164d8dca40 [file] [log] [blame]
Ben Murdocheb525c52013-07-10 11:40:50 +01001// Copyright 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#include "ppapi/cpp/network_proxy.h"
6
7#include "ppapi/c/ppb_network_proxy.h"
8#include "ppapi/cpp/module_impl.h"
9
10namespace pp {
11
12namespace {
13
14template <> const char* interface_name<PPB_NetworkProxy_1_0>() {
15 return PPB_NETWORKPROXY_INTERFACE_1_0;
16}
17
18} // namespace
19
20// static
21bool NetworkProxy::IsAvailable() {
22 return has_interface<PPB_NetworkProxy_1_0>();
23}
24
25// static
26int32_t NetworkProxy::GetProxyForURL(
27 const InstanceHandle& instance,
28 const Var& url,
29 const CompletionCallbackWithOutput<Var>& callback) {
30 if (!has_interface<PPB_NetworkProxy_1_0>())
31 return callback.MayForce(PP_ERROR_NOINTERFACE);
32
33 return get_interface<PPB_NetworkProxy_1_0>()->GetProxyForURL(
34 instance.pp_instance(), url.pp_var(),
35 callback.output(), callback.pp_completion_callback());
36}
37
38} // namespace pp