summaryrefslogtreecommitdiffstats
path: root/ppapi/cpp/dev/url_util_dev.h
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/cpp/dev/url_util_dev.h')
-rw-r--r--ppapi/cpp/dev/url_util_dev.h54
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_
+