• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 #ifndef PPAPI_CPP_DEV_URL_UTIL_DEV_H_
6 #define PPAPI_CPP_DEV_URL_UTIL_DEV_H_
7 
8 #include "ppapi/c/dev/ppb_url_util_dev.h"
9 #include "ppapi/cpp/var.h"
10 
11 namespace pp {
12 
13 class InstanceHandle;
14 
15 // Simple wrapper around the PPB_URLUtil interface.
16 class URLUtil_Dev {
17  public:
18   // This class is just a collection of random functions that aren't
19   // particularly attached to anything. This may return NULL if the
20   // browser doesn't support the URLUtil interface. Since this is a
21   // singleton, don't delete the pointer.
22   static const URLUtil_Dev* Get();
23 
24   Var Canonicalize(const Var& url,
25                    PP_URLComponents_Dev* components = NULL) const;
26 
27   Var ResolveRelativeToURL(const Var& base_url,
28                            const Var& relative_string,
29                            PP_URLComponents_Dev* components = NULL) const;
30   Var ResolveRelativeToDocument(const InstanceHandle& instance,
31                                 const Var& relative_string,
32                                 PP_URLComponents_Dev* components = NULL) const;
33 
34   bool IsSameSecurityOrigin(const Var& url_a, const Var& url_b) const;
35   bool DocumentCanRequest(const InstanceHandle& instance, const Var& url) const;
36   bool DocumentCanAccessDocument(const InstanceHandle& active,
37                                  const InstanceHandle& target) const;
38   Var GetDocumentURL(const InstanceHandle& instance,
39                      PP_URLComponents_Dev* components = NULL) const;
40 
41   Var GetPluginInstanceURL(const InstanceHandle& instance,
42                            PP_URLComponents_Dev* components = NULL) const;
43   Var GetPluginReferrerURL(const InstanceHandle& instance,
44                            PP_URLComponents_Dev* components = NULL) const;
45 
46  private:
URLUtil_Dev()47   URLUtil_Dev() {}
48 
49   // Copy and assignment are disallowed.
50   URLUtil_Dev(const URLUtil_Dev& other);
51   URLUtil_Dev& operator=(const URLUtil_Dev& other);
52 };
53 
54 }  // namespace pp
55 
56 #endif  // PPAPI_CPP_DEV_URL_UTIL_DEV_H_
57