diff options
Diffstat (limited to 'ppapi/cpp/dev/url_util_dev.h')
-rw-r--r-- | ppapi/cpp/dev/url_util_dev.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/ppapi/cpp/dev/url_util_dev.h b/ppapi/cpp/dev/url_util_dev.h new file mode 100644 index 0000000..3be217e --- /dev/null +++ b/ppapi/cpp/dev/url_util_dev.h @@ -0,0 +1,54 @@ +// Copyright (c) 2010 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 Instance; +class Module; + +// 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. So this getter returns a cached + // instance of this interface. This may return NULL if the browser doesn't + // support the UrlUtil inteface. 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 ResoveRelativeToDocument(const Instance& 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 Instance& instance, const Var& url) const; + bool DocumentCanAccessDocument(const Instance& active, + const Instance& target) const; + + private: + UrlUtil_Dev() : interface_(NULL) {} + + // Copy and assignment are disallowed. + UrlUtil_Dev(const UrlUtil_Dev& other); + UrlUtil_Dev& operator=(const UrlUtil_Dev& other); + + const PPB_UrlUtil_Dev* interface_; +}; + +} // namespace pp + +#endif // PPAPI_CPP_DEV_URL_UTIL_DEV_H_ + |