1 // 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 
10 namespace pp {
11 
12 namespace {
13 
interface_name()14 template <> const char* interface_name<PPB_NetworkProxy_1_0>() {
15   return PPB_NETWORKPROXY_INTERFACE_1_0;
16 }
17 
18 }  // namespace
19 
20 // static
IsAvailable()21 bool NetworkProxy::IsAvailable() {
22   return has_interface<PPB_NetworkProxy_1_0>();
23 }
24 
25 // static
GetProxyForURL(const InstanceHandle & instance,const Var & url,const CompletionCallbackWithOutput<Var> & callback)26 int32_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
39