[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 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 | |||||
[email protected] | 9a57839 | 2011-12-07 18:59:27 | [diff] [blame] | 5 | #ifndef PPAPI_SHARED_IMPL_PPB_URL_UTIL_SHARED_H_ |
6 | #define PPAPI_SHARED_IMPL_PPB_URL_UTIL_SHARED_H_ | ||||
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 7 | |
8 | #include <string> | ||||
9 | |||||
10 | #include "base/basictypes.h" | ||||
11 | #include "googleurl/src/url_parse.h" | ||||
12 | #include "ppapi/c/dev/ppb_url_util_dev.h" | ||||
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 13 | #include "ppapi/c/pp_var.h" |
[email protected] | f0a04c4 | 2011-08-26 22:43:20 | [diff] [blame] | 14 | #include "ppapi/shared_impl/ppapi_shared_export.h" |
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 15 | |
16 | class GURL; | ||||
17 | |||||
[email protected] | 55cdf605 | 2011-05-13 19:22:53 | [diff] [blame] | 18 | namespace ppapi { |
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 19 | |
20 | // Contains the implementation of PPB_URLUtil that is shared between the proxy | ||||
21 | // and the renderer. | ||||
[email protected] | 9a57839 | 2011-12-07 18:59:27 | [diff] [blame] | 22 | class PPAPI_SHARED_EXPORT PPB_URLUtil_Shared { |
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 23 | public: |
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 24 | // PPB_URLUtil shared functions. |
[email protected] | 0346023 | 2011-10-10 17:23:57 | [diff] [blame] | 25 | static PP_Var Canonicalize(PP_Var url, |
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 26 | PP_URLComponents_Dev* components); |
[email protected] | 0346023 | 2011-10-10 17:23:57 | [diff] [blame] | 27 | static PP_Var ResolveRelativeToURL(PP_Var base_url, |
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 28 | PP_Var relative, |
29 | PP_URLComponents_Dev* components); | ||||
[email protected] | 2bbd2c67 | 2011-08-09 23:14:13 | [diff] [blame] | 30 | static PP_Bool IsSameSecurityOrigin(PP_Var url_a, PP_Var url_b); |
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 31 | |
32 | // Used for returning the given GURL from a PPAPI function, with an optional | ||||
33 | // out param indicating the components. | ||||
[email protected] | 872caf56 | 2011-12-07 22:50:43 | [diff] [blame] | 34 | static PP_Var GenerateURLReturn(const GURL& url, |
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 35 | PP_URLComponents_Dev* components); |
[email protected] | 0346023 | 2011-10-10 17:23:57 | [diff] [blame] | 36 | |
37 | // Helper function that optionally take a components structure and fills it | ||||
38 | // out with the parsed version of the given URL. If the components pointer is | ||||
39 | // NULL, this function will do nothing. | ||||
40 | // | ||||
41 | // It's annoying to serialze the large PP_URLComponents structure across IPC | ||||
42 | // and the data isn't often requested by plugins. This function is used on | ||||
43 | // the plugin side to fill in the components for those cases where it's | ||||
44 | // actually needed. | ||||
45 | static PP_Var ConvertComponentsAndReturnURL(const PP_Var& url, | ||||
46 | PP_URLComponents_Dev* components); | ||||
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 47 | }; |
48 | |||||
[email protected] | 55cdf605 | 2011-05-13 19:22:53 | [diff] [blame] | 49 | } // namespace ppapi |
[email protected] | 9ca245e | 2011-03-18 01:50:31 | [diff] [blame] | 50 | |
[email protected] | 9a57839 | 2011-12-07 18:59:27 | [diff] [blame] | 51 | #endif // PPAPI_SHARED_IMPL_PPB_URL_UTIL_SHARED_H_ |