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 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 39