Index: chrome/test/data/extensions/platform_apps/web_view/common/cleardata_session/guest.html |
diff --git a/chrome/test/data/extensions/platform_apps/web_view/common/cleardata_session/guest.html b/chrome/test/data/extensions/platform_apps/web_view/common/cleardata_session/guest.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..37d2be08b415f25796a0774cc17bb17ca7057890 |
--- /dev/null |
+++ b/chrome/test/data/extensions/platform_apps/web_view/common/cleardata_session/guest.html |
@@ -0,0 +1,95 @@ |
+<!doctype html> |
+<!-- |
+ * Copyright 2017 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. |
+--> |
+<html> |
+ <head> |
+ <script type="text/javascript"> |
+ // A guest that stores and deletes cookies. |
+ // Note that the embedder has to initiate a postMessage first so that |
+ // the guest has a reference to the embedder's window. |
+ |
+ // The window reference of the embedder to send post message reply. |
+ var embedderWindowChannel = null; |
+ |
+ // A value that uniquely identifies the guest sending the messages to the |
+ // embedder. |
+ var channelId = 0; |
+ var notifyEmbedder = function(msgArray) { |
+ var msg = msgArray.concat([channelId]); |
+ embedderWindowChannel.postMessage(JSON.stringify(msg), '*'); |
+ }; |
+ |
+ var SPLIT_RE_ = /\s*;\s*/; |
+ var setCookie = function(name, value) { // Just a random future time. |
+ var futureDate = new Date((+new Date) + 10000 * 1000); |
+ document.cookie = |
+ name + '=' + value + ';expires=' + futureDate.toUTCString(); |
+ }; |
+ var setSessionCookie = function (name, value) { // Session cookie. |
+ document.cookie = name + '=' + value; |
+ }; |
+ var getCookie = function (name) { |
+ var nameEq = name + '='; |
+ var parts = (document.cookie || '').split(SPLIT_RE_); |
+ for (var i = 0; i < parts.length; ++i) { |
+ var part = parts[i]; |
+ if (part.startsWith(nameEq)) { |
+ return part.substr(nameEq.length); |
+ } |
+ if (part == name) { |
+ return ''; |
+ } |
+ } |
+ return undefined; |
+ }; |
+ |
+ var addCookies = function() { |
+ window.console.log('setCookie: foo = fooValue'); |
+ setCookie('foo', 'fooValue'); |
+ window.console.log('setSessionCookie: bar = barValue'); |
+ setSessionCookie('bar', 'barValue'); |
+ notifyEmbedder(['step2.cookies-added']); |
+ }; |
+ |
+ var onPostMessageReceived = function(e) { |
+ embedderWindowChannel = e.source; |
+ var data = JSON.parse(e.data); |
+ if (data[0] == 'create-channel') { |
+ window.console.log('guest: create-channel'); |
+ channelId = data[1]; |
+ notifyEmbedder(['channel-created']); |
+ return; |
+ } |
+ |
+ window.console.log('guest.onPostMessageReceived: ' + data[0]); |
+ // Tests. |
+ // These logs trigger event listeners in the embedder. |
+ switch (data[0]) { |
+ case 'step1.add-cookies': |
+ window.console.log('guest.' + data[0]); |
+ addCookies(); |
+ break; |
+ case 'step3.get-cookies': |
+ window.console.log('guest.' + data[0]); |
+ var retValues = ['step4.got-cookies']; |
+ var cookieValues = []; |
+ for (var i = 1; i < data.length; ++i) { |
+ cookieValues.push(getCookie(data[i])); |
+ } |
+ retValues.push(cookieValues); |
+ notifyEmbedder(retValues); |
+ break; |
+ default: |
+ break; |
+ } |
+ }; |
+ window.addEventListener('message', onPostMessageReceived, false); |
+ </script> |
+ </head> |
+ <body> |
+ <div>Guest that stores and retrieves certain cookies.</div> |
+ </body> |
+</html> |