|  | // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef PPAPI_CPP_DEV_URL_UTIL_DEV_H_ | 
|  | #define PPAPI_CPP_DEV_URL_UTIL_DEV_H_ | 
|  |  | 
|  | #include "ppapi/c/dev/ppb_url_util_dev.h" | 
|  | #include "ppapi/cpp/var.h" | 
|  |  | 
|  | namespace pp { | 
|  |  | 
|  | class InstanceHandle; | 
|  |  | 
|  | // Simple wrapper around the PPB_URLUtil interface. | 
|  | class URLUtil_Dev { | 
|  | public: | 
|  | // This class is just a collection of random functions that aren't | 
|  | // particularly attached to anything. This may return NULL if the | 
|  | // browser doesn't support the URLUtil interface. Since this is a | 
|  | // singleton, don't delete the pointer. | 
|  | static const URLUtil_Dev* Get(); | 
|  |  | 
|  | Var Canonicalize(const Var& url, | 
|  | PP_URLComponents_Dev* components = NULL) const; | 
|  |  | 
|  | Var ResolveRelativeToURL(const Var& base_url, | 
|  | const Var& relative_string, | 
|  | PP_URLComponents_Dev* components = NULL) const; | 
|  | Var ResolveRelativeToDocument(const InstanceHandle& instance, | 
|  | const Var& relative_string, | 
|  | PP_URLComponents_Dev* components = NULL) const; | 
|  |  | 
|  | bool IsSameSecurityOrigin(const Var& url_a, const Var& url_b) const; | 
|  | bool DocumentCanRequest(const InstanceHandle& instance, const Var& url) const; | 
|  | bool DocumentCanAccessDocument(const InstanceHandle& active, | 
|  | const InstanceHandle& target) const; | 
|  | Var GetDocumentURL(const InstanceHandle& instance, | 
|  | PP_URLComponents_Dev* components = NULL) const; | 
|  |  | 
|  | Var GetPluginInstanceURL(const InstanceHandle& instance, | 
|  | PP_URLComponents_Dev* components = NULL) const; | 
|  | Var GetPluginReferrerURL(const InstanceHandle& instance, | 
|  | PP_URLComponents_Dev* components = NULL) const; | 
|  |  | 
|  | private: | 
|  | URLUtil_Dev() {} | 
|  |  | 
|  | // Copy and assignment are disallowed. | 
|  | URLUtil_Dev(const URLUtil_Dev& other); | 
|  | URLUtil_Dev& operator=(const URLUtil_Dev& other); | 
|  | }; | 
|  |  | 
|  | }  // namespace pp | 
|  |  | 
|  | #endif  // PPAPI_CPP_DEV_URL_UTIL_DEV_H_ |