helper_iframe.sub.html (2085B)
1 <!doctype html> 2 <meta charset='utf-8'> 3 <link rel='author' href='jarrydg@chromium.org' title='Jarryd Goodman'> 4 <script> 5 'use strict'; 6 7 // Writing a cookie: 8 // Input: { cookieToSet: { name: 'cookie-name', value: 'cookie-value' } } 9 // Response: "Cookie has been set" 10 // 11 // Read a cookie. 12 // Command: { existingCookieName: 'cookie-name' } 13 // Response: Result of cookieStore.get('cookie-name'): 14 // { frameCookie: { name: 'cookie-name', value: 'cookie-value' } } 15 window.addEventListener('message', async function (event) { 16 const { opname } = event.data; 17 if (opname === 'set-cookie') { 18 const { name, value } = event.data 19 await cookieStore.set({ 20 name, 21 value, 22 domain: '{{host}}', 23 }); 24 event.source.postMessage('Cookie has been set', event.origin); 25 } else if (opname === 'set-cookie-without-domain-attr') { 26 const { name, value } = event.data 27 await cookieStore.set({ 28 name, 29 value, 30 }); 31 event.source.postMessage('Cookie has been set', event.origin); 32 } else if (opname === 'get-cookie') { 33 const { name, options } = event.data 34 const frameCookie = await cookieStore.get(name, options); 35 event.source.postMessage({frameCookie}, event.origin); 36 } else if (opname === 'delete-cookie-without-domain-attr') { 37 const { name } = event.data 38 await cookieStore.delete({name}); 39 event.source.postMessage('Cookie has been deleted', event.origin); 40 } else if (opname === 'push-state') { 41 history.pushState("foo", null, "some/path"); 42 event.source.postMessage('pushState called'); 43 } else if (opname === "set-host-cookie") { 44 const { name, value } = event.data 45 await cookieStore.set({ 46 name, 47 value, 48 }); 49 event.source.postMessage('Cookie has been set', event.origin); 50 } else if (opname === "delete-host-cookie") { 51 const { name} = event.data 52 await cookieStore.delete({ name: name}); 53 event.source.postMessage('Cookie has been deleted', event.origin); 54 } 55 }); 56 </script>