summaryrefslogtreecommitdiffstats
path: root/ppapi/api
diff options
context:
space:
mode:
authorygorshenin@google.com <ygorshenin@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 15:29:19 +0000
committerygorshenin@google.com <ygorshenin@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 15:29:19 +0000
commit961e89716c14bd6c7e1f3394b9696ee60810a676 (patch)
tree258a13f7cbd6a8b971f2fca1aad36dbcff9b2f9a /ppapi/api
parent292a635a2c28ac2968940fb9e15f93be45ada4dd (diff)
downloadchromium_src-961e89716c14bd6c7e1f3394b9696ee60810a676.zip
chromium_src-961e89716c14bd6c7e1f3394b9696ee60810a676.tar.gz
chromium_src-961e89716c14bd6c7e1f3394b9696ee60810a676.tar.bz2
GetDocumentURL is added to PPB_Testing_Dev.
Fixed Test{TCP|UDP}SocketPrivateShared. BUG=105863 TEST= Review URL: http://codereview.chromium.org/8840007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114637 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/api')
-rw-r--r--ppapi/api/dev/ppb_testing_dev.idl14
-rw-r--r--ppapi/api/dev/ppb_url_util_dev.idl149
2 files changed, 162 insertions, 1 deletions
diff --git a/ppapi/api/dev/ppb_testing_dev.idl b/ppapi/api/dev/ppb_testing_dev.idl
index 2ec6832..9e51b42 100644
--- a/ppapi/api/dev/ppb_testing_dev.idl
+++ b/ppapi/api/dev/ppb_testing_dev.idl
@@ -11,7 +11,8 @@
label Chrome {
M14 = 0.7,
- M15 = 0.8
+ M15 = 0.8,
+ M17 = 0.9
};
interface PPB_Testing_Dev {
@@ -102,4 +103,15 @@ interface PPB_Testing_Dev {
[version=0.8]
void SimulateInputEvent([in] PP_Instance instance,
[in] PP_Resource input_event);
+
+ /**
+ * Returns the URL for the document. This is a safe way to retrieve
+ * window.location.href.
+ * If the canonicalized URL is valid, the method will parse the URL
+ * and fill in the components structure. This pointer may be NULL
+ * to specify that no component information is necessary.
+ */
+ [version=0.9]
+ PP_Var GetDocumentURL([in] PP_Instance instance,
+ [out] PP_URLComponents_Dev components);
};
diff --git a/ppapi/api/dev/ppb_url_util_dev.idl b/ppapi/api/dev/ppb_url_util_dev.idl
new file mode 100644
index 0000000..cd698e4
--- /dev/null
+++ b/ppapi/api/dev/ppb_url_util_dev.idl
@@ -0,0 +1,149 @@
+/* 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.
+ */
+
+/**
+ * This file defines the <code>PPB_URLUtil_Dev</code> interface.
+ */
+
+label Chrome {
+ M17 = 0.6
+};
+
+/*
+ * A component specifies the range of the part of the URL. The begin specifies
+ * the index into the string of the first character of that component. The len
+ * specifies the length of that component.
+ *
+ * This range does not include any special delimiter for that component, so
+ * the scheme doesn't include the trailing colon, the username and password
+ * don't include the @ and :, the port doesn't include the colon, the query
+ * doesn't include the ?, and the ref doesn't include the #.
+ *
+ * The exception is that the path *does* include the first /, since that's an
+ * integral part of the path.
+ *
+ * If the component is not present at all, begin will be 0 and len will be -1.
+ * If the component is present but empty, the length will be 0 instead. Example:
+ * http://foo/search -> query = (0, -1)
+ * http://foo/search? -> query = (18, 0)
+ */
+[assert_size(8)]
+struct PP_URLComponent_Dev {
+ int32_t begin;
+ int32_t len;
+};
+
+[assert_size(64)]
+struct PP_URLComponents_Dev {
+ PP_URLComponent_Dev scheme;
+ PP_URLComponent_Dev username;
+ PP_URLComponent_Dev password;
+ PP_URLComponent_Dev host;
+ PP_URLComponent_Dev port;
+ PP_URLComponent_Dev path;
+ PP_URLComponent_Dev query;
+ PP_URLComponent_Dev ref;
+};
+
+/*
+ * URL encoding: URLs are supplied to this interface as NULL-terminated 8-bit
+ * strings. You can pass non-ASCII characters which will be interpreted as
+ * UTF-8. Canonicalized URL strings returned by these functions will be ASCII
+ * except for the reference fragment (stuff after the '#') which will be
+ * encoded as UTF-8.
+ */
+interface PPB_URLUtil_Dev {
+ /*
+ * Canonicalizes the given URL string according to the rules of the host
+ * browser. If the URL is invalid or the var is not a string, this will
+ * return a Null var and the components structure will be unchanged.
+ *
+ * The components pointer, if non-NULL and the canonicalized URL is valid,
+ * will identify the components of the resulting URL. Components may be NULL
+ * to specify that no component information is necessary.
+ */
+ PP_Var Canonicalize([in] PP_Var url, [out] PP_URLComponents_Dev components);
+
+ /*
+ * Resolves the given URL relative to the given base URL. The resulting URL
+ * is returned as a string. If the resolution is invalid or either of the
+ * inputs are not strings, a Null var will be returned. The resulting URL
+ * will also be canonicalized according to the rules of the browser.
+ *
+ * Note that the "relative" URL may in fact be absolute, in which case it
+ * will be returned. This function is identical to resolving the full URL
+ * for an <a href="..."> on a web page. Attempting to resolve a relative URL
+ * on a base URL that doesn't support this (e.g. "data") will fail and will
+ * return a Null var, unless the relative URL is itself absolute.
+ *
+ * The components pointer, if non-NULL and the canonicalized URL is valid,
+ * will identify the components of the resulting URL. Components may be NULL
+ * to specify that no component information is necessary.
+ */
+ PP_Var ResolveRelativeToURL(
+ [in] PP_Var base_url,
+ [in] PP_Var relative_string,
+ [out] PP_URLComponents_Dev components);
+
+ /*
+ * Identical to ResolveRelativeToURL except that the base URL is the base
+ * URL of the document containing the given plugin instance.
+ *
+ * Danger: This will be identical to resolving a relative URL on the page,
+ * and might be overridden by the page to something different than its actual
+ * URL via the <base> tag. Therefore, resolving a relative URL of "" won't
+ * necessarily give you the URL of the page!
+ */
+ PP_Var ResolveRelativeToDocument(
+ [in] PP_Instance instance,
+ [in] PP_Var relative_string,
+ [out] PP_URLComponents_Dev components);
+
+ /*
+ * Checks whether the given two URLs are in the same security origin. Returns
+ * FALSE if either of the URLs are invalid.
+ */
+ PP_Bool IsSameSecurityOrigin([in] PP_Var url_a, [in] PP_Var url_b);
+
+ /*
+ * Checks whether the document hosting the given plugin instance can access
+ * the given URL according to the same origin policy of the browser. Returns
+ * PP_FALSE if the instance or the URL is invalid.
+ */
+ PP_Bool DocumentCanRequest([in] PP_Instance instance, [in] PP_Var url);
+
+ /*
+ * Checks whether the document containing the |active| plugin instance can
+ * access the document containing the |target| plugin instance according to
+ * the security policy of the browser. This includes the same origin policy
+ * and any cross-origin capabilities enabled by the document. If either of
+ * the plugin instances are invalid, returns PP_FALSE.
+ */
+ PP_Bool DocumentCanAccessDocument([in] PP_Instance active,
+ [in] PP_Instance target);
+
+ /*
+ * Returns the URL for the document. This is a safe way to retrieve
+ * window.location.href.
+ * The components pointer, if non-NULL and the canonicalized URL is valid,
+ * will identify the components of the resulting URL. Components may be NULL
+ * to specify that no component information is necessary.
+ */
+ PP_Var GetDocumentURL([in] PP_Instance instance,
+ [out] PP_URLComponents_Dev components);
+
+ /*
+ * Returns the Source URL for the plugin. This returns the URL that would be
+ * streamed to the plugin if it were a NPAPI plugin. This is usually the src
+ * attribute on the <embed> element, but the rules are obscure and different
+ * based on whether the plugin is loaded from an <embed> element or an
+ * <object> element.
+ * The components pointer, if non-NULL and the canonicalized URL is valid,
+ * will identify the components of the resulting URL. Components may be NULL
+ * to specify that no component information is necessary.
+ */
+ PP_Var GetPluginInstanceURL([in] PP_Instance instance,
+ [out] PP_URLComponents_Dev components);
+};