Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(614)

Side by Side Diff: chrome/test/data/extensions/platform_apps/web_view/common/cleardata_persistent/guest.html

Issue 2700473003: Support the removal of only session cookies or persistent cookies (Closed)
Patch Set: adding comment Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!doctype html>
2 <!--
3 * Copyright 2017 The Chromium Authors. All rights reserved. Use of this
4 * source code is governed by a BSD-style license that can be found in the
5 * LICENSE file.
6 -->
7 <html>
8 <head>
9 <script type="text/javascript">
10 // A guest that stores and deletes cookies.
11 // Note that the embedder has to initiate a postMessage first so that
12 // the guest has a reference to the embedder's window.
13
14 // The window reference of the embedder to send post message reply.
15 var embedderWindowChannel = null;
16
17 // A value that uniquely identifies the guest sending the messages to the
18 // embedder.
19 var channelId = 0;
20 var notifyEmbedder = function (msgArray) {
21 var msg = msgArray.concat([channelId]);
22 embedderWindowChannel.postMessage(JSON.stringify(msg), '*');
23 };
24
25 var SPLIT_RE_ = /\s*;\s*/;
26 var setCookie = function(name, value) { // Just a random future time.
27 var futureDate = new Date((+new Date) + 10000 * 1000);
28 document.cookie =
29 name + '=' + value + ';expires=' + futureDate.toUTCString();
30 };
31 var setSessionCookie = function (name, value) { // Session cookie.
32 document.cookie = name + '=' + value;
33 };
34 var getCookie = function (name) {
35 var nameEq = name + '=';
36 var parts = (document.cookie || '').split(SPLIT_RE_);
37 for (var i = 0; i < parts.length; ++i) {
38 var part = parts[i];
39 if (part.startsWith(nameEq)) {
40 return part.substr(nameEq.length);
41 }
42 if (part == name) {
43 return '';
44 }
45 }
46 return undefined;
47 };
48
49 var addCookies = function() {
50 window.console.log('setCookie: foo = fooValue');
51 setCookie('foo', 'fooValue');
52 window.console.log('setSessionCookie: bar = barValue');
53 setSessionCookie('bar', 'barValue');
54 notifyEmbedder(['step2.cookies-added']);
55 };
56
57 var onPostMessageReceived = function(e) {
58 embedderWindowChannel = e.source;
59 var data = JSON.parse(e.data);
60 if (data[0] == 'create-channel') {
61 window.console.log('guest: create-channel');
62 channelId = data[1];
63 notifyEmbedder(['channel-created']);
64 return;
65 }
66
67 window.console.log('guest.onPostMessageReceived: ' + data[0]);
68 // Tests.
69 // These logs trigger event listeners in the embedder.
70 switch (data[0]) {
71 case 'step1.add-cookies':
72 window.console.log('guest.' + data[0]);
73 addCookies();
74 break;
75 case 'step3.get-cookies':
76 window.console.log('guest.' + data[0]);
77 var retValues = ['step4.got-cookies'];
78 var cookieValues = [];
79 for (var i = 1; i < data.length; ++i) {
80 cookieValues.push(getCookie(data[i]));
81 }
82 retValues.push(cookieValues);
83 notifyEmbedder(retValues);
84 break;
85 default:
86 break;
87 }
88 };
89 window.addEventListener('message', onPostMessageReceived, false);
90 </script>
91 </head>
92 <body>
93 <div>Guest that stores and retrieves certain cookies.</div>
94 </body>
95 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698