if ('serviceWorker' in navigator) {
  navigator.serviceWorker.getRegistrations().then(function(serviceworker){
      alertOK("registration: " + serviceworker)
      serviceworker.unregister().then(function(boolean) {
         if (boolean) alertOK("unregistration successful")
         else  alert("unregistration NOT  successful")
    });
  })
    
  navigator.serviceWorker.register("https://lively-kernel.org/babelsberg/users/jenslincke/cloudsw.js", {
    scope: "https://lively-kernel.org/babelsberg/users/jenslincke/test"
  }).then(function(registration) {
    // Registration was successful
    console.log('ServiceWorker registration successful with scope: ',    registration.scope);
  }).catch(function(err) {
    // registration failed :(
    console.log('ServiceWorker registration failed: ', err);
  });
}
// Service Works seem to work only Async
URL.source.withFilename("test/test.txt").asWebResource().noProxy().beAsync().get().whenDone(function(content){
    alertOK("content: " + content)        
})
jQuery.ajax({
    url: "https://dropbox/",
    type: "get",    
    success: function(d) { alertOK(d)}
})
jQuery.ajax({
    url: "https://dropbox/Lively/foo.txt",
    type: "get",    
    success: function(d) { alertOK(d)}
})
jQuery.ajax({
    url: "https://dropbox/Lively/test.txt",
    type: "get",    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
https://lively-kernel.org/babelsberg/users/jenslincke/cloudsw.js
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
save
load
remove
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
console.log('load');
var lastLoaded = new Date();
// bypass caches...
importScripts("https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js" + "?" + Math.random())
// // Hack around the problem of not caching the service worker itself (during development)...
// fetch("https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js").then(function(resp) {
//     return resp.text()        
// }).then(function(text) {
//     eval(text)
// })
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
https://lively-kernel.org/babelsberg/users/jenslincke/cloudsw.js
X

Menu
estars loaded cloudswdev got a requesthttps://eval/log('loaded%20cloudswdev'); loaded cloudswdev got a requesthttps://eval/log('loaded%20cloudswdev'); loaded cloudswdev got a requesthttps://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js got a requesthttps://eval/%0Aself.onfetch%20=%20function(event)%20%7B%0A%20%20%20%20log('got%20a%20request:%20'%20+%20event.request.url);%0A%20%20%20%20if%20(event.request.url.match(%22https://eval/%22))%20%7B%0A%20%20%20%20%20%20%20%20var%20s%20=%20event.request.url.replace(%22https://eval/%22,%22%22)%0A%20%20%20%20%20%20%20%20s%20=%20decodeURI(s)%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20result%20=%20eval(s)%0A%20%20%20%20%20%20%20%20%7D%20catch(e)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20result%20=%20%22Error:%20%22%20+%20e%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20event.respondWith(new%20Response(%22%22%20+%20result));%0A%20%20%20%20%7D%20else%20if%20(event.request.url.match(%22https://version/%22))%20%7B%0A%20%20%20%20%20%20event.respondWith(new%20Response(%22version:%20%22%20+%20lastLoaded));%0A%20%20%20%20%7D%20else%20if%20(event.request.url.match(%22https://dropbox/%22))%20%7B%0A%20%20%20%20%20%20%20%20var%20path%20=%20event.request.url.replace(%22https://dropbox/%22,%22/%22)%0A%20%20%20%20%20%20%20%20event.respondWith(%0A%20%20%20%20%20%20%20%20%20%20%20%20fetch(%22https://api-content.dropbox.com/1/files/auto%22%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20path%20+%22?access_token=%22%20+%20dropboxAccessToken));%0A%20%20%20%20%7D%20else%20if%20(event.request.url.match(%22webwerkstatt/media%22))%20%7B%0A%20%20%20%20%20%20%20event.respondWith(fetch(new%20Request(event.request.url,%20%7B%20mode:%20%27no-cors%27%20%7D)))%0A%20%20%20%20%7D%20%20else%20%7B%0A%20%20%20%20%20%20%20%20%20event.respondWith(fetch(event.request))%0A%20%20%20%20%7D%0A%7D got a request: https://eval/3 loaded cloudswdev got a request: https://eval/JSON.prettyPrint got a request: https://eval/JSON.stringify got a request: https://eval/%0Aself.onmessage%20=%20function(e)%20%7B%0A%20%20%20%20var%20msg%20=%20e.data%0A%20%20%20%20if%20(msg.msg%20=%20%22eval%22)%20%7B%0A%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20log(%22eval:%20%22%20+%20msg.data%20+%20%22%20-%3E%20%22%20+%20eval(msg.data))%0A%20%20%20%20%20%20%20%20%7D%20catch(e)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20log(%22error%20eval:%20%22%20+%20e%20%20+%20%22%20source:%20%22%20+%20msg.data)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20log(%22Could%20not%20handle:%20%22%20+%20JSON.stringify(msg))%0A%20%20%20%20%7D%20%0A%7D;%0A eval: undefined -> undefined got a request: https://eval/self.onmessage%20=%20function(e)%20%7B%0A%20%20%20%20var%20msg%20=%20e.data%0A%20%20%20%20if%20(msg.msg%20==%20%22eval%22)%20%7B%0A%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20log(%22eval:%20%22%20+%20msg.data%20+%20%22%20-%3E%20%22%20+%20eval(msg.data))%0A%20%20%20%20%20%20%20%20%7D%20catch(e)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20log(%22error%20eval:%20%22%20+%20e%20%20+%20%22%20source:%20%22%20+%20msg.data)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20log(%22Could%20not%20handle:%20%22%20+%20JSON.stringify(msg))%0A%20%20%20%20%7D%20%0A%7D;%0A Could not handle: "hi" eval: 3 + 4 -> 7 loaded cloudswdev got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js eval: 3 + 4 -> 7 got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js?time=1437568926506 got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js?time=1437568926672 got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js got a request: https://eval/%0Aself.onmessage%20=%20function(event)%20%7B%0A%20%20%20%20var%20msg%20=%20event.data%0A%20%20%20%20//%20Print%20Eval%20Loop%20through%20the%20Message%20Channel%20 eval: 3 + 4 -> 7 eval: 3 + 4 -> 7 got a request: https://eval/broadCastMessage%20=%20function(msg)%20%7B%0A%20%20%20%20self.clients.matchAll().then(function(clients)%20%7B%0A%20%20%20%20%20%20for%20(var%20i%20in%20clients)%20%7B%0A%20%20%20%20%20%20%20%20clients%5Bi%5D.postMessage(msg)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D);%0A%7D%0A%0Alog%20=%20function(s)%20%7B%0A%20%20%20%20console.log(s)%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'log',%20data:%20s%7D)%0A%7D%0A%0Aprint%20=%20function(a)%20%7B%0A%20%20%20%20var%20s%20=%20%22%22;%20%0A%20%20%20%20for%20(i%20in%20a)%20%7Bs%20+=%20i%20+%20%22:%20%22%20+%20a%5Bi%5D%20+%22%5Cn%22%7D;%20%0A%20%20%20%20return%20%22%7B%22%20+s%20+%20%22%7D%22%0A%7D;%0A%0A//%20 eval: 3 + 4 -> 7 got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js got a request: https://eval/broadCastMessage%20=%20function(msg)%20%7B%0A%20%20%20%20self.clients.matchAll().then(function(clients)%20%7B%0A%20%20%20%20%20%20for%20(var%20i%20in%20clients)%20%7B%0A%20%20%20%20%20%20%20%20clients%5Bi%5D.postMessage(msg)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D);%0A%7D%0A%0Alog%20=%20function(s)%20%7B%0A%20%20%20%20console.log(s)%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'log',%20data:%20s%7D)%0A%7D%0A%0Aprint%20=%20function(a)%20%7B%0A%20%20%20%20var%20s%20=%20%22%22;%20%0A%20%20%20%20for%20(i%20in%20a)%20%7Bs%20+=%20i%20+%20%22:%20%22%20+%20a%5Bi%5D%20+%22%5Cn%22%7D;%20%0A%20%20%20%20return%20%22%7B%22%20+s%20+%20%22%7D%22%0A%7D;%0A%0A//%20 { "msg": "evalResult", "data": "7", "sourceMsg": { "msg": "eval", "data": "3 + 4", "id": "ED37BD0B-716C-4190-9CBA-3EA61CE3AE94" } } eval: 3 + 4 -> 7 got a request: https://lively-kernel.org/babelsberg/core/media/halos/scriptedit_scriptconnection.svg got a request: https://lively-kernel.org/babelsberg/core/media/halos/scriptedit_script.svg eval: 3 + 4 -> 7 eval: 3 + 4 -> 7 got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js got a request: http://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: https://eval/oldConsoleLog%20=%20console.log got a request: https://eval/%0Alog%20=%20function(s)%20%7B%0A%20%20%20%20oldConsoleLog(s)%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'log',%20data:%20s%7D)%0A%7D%0A loaded cloudswdev got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js got a request: https://eval/3 got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.14203703636303544 got a request: http://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.7258203229866922 got a request: http://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.4180539126973599 got a request: http://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png got a request: http://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png got a request: https://eval/console.error got a request: https://eval/%0Aconsole.error%20=%20function(e)%20%7B%0A%20%20%20%20log(%22Error:%20%22%20+%20JSON.stringify(e))%0A%7D%0A got a request: https://eval/3%20+%20%7B%7D got a request: https://eval/foo.bar got a request: http://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.8016549760941416 got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.9976989489514381 got a request: http://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: https://eval/%0Aconsole.error%20 got a request: https://eval/%0Alog%20=%20function(s)%20%7B%0A%20%20%20%20//%20console.log(s)%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'log',%20data:%20s%7D)%0A%7D%0A got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js got a request: https://eval/%0Aconsole.log%20=%20function(s)%20%7B%0A%20%20%20%20log(s)%0A%7D%0A%0Aconsole.error%20=%20function(e)%20%7B%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'error',%20data:%20e%7D)%0A%7D%0A got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js got a request: https://eval/broadCastMessage%20=%20function(msg)%20%7B%0A%20%20%20%20self.clients.matchAll().then(function(clients)%20%7B%0A%20%20%20%20%20%20for%20(var%20i%20in%20clients)%20%7B%0A%20%20%20%20%20%20%20%20clients%5Bi%5D.postMessage(msg)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D);%0A%7D%0A%0Alog%20=%20function(s)%20%7B%0A%20%20%20%20//%20console.log(s)%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'log',%20data:%20s%7D)%0A%7D%0A%0Aconsole.log%20=%20function(s)%20%7B%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'log',%20data:%20e%7D)%0A%7D%0A%0Aconsole.error%20=%20function(e)%20%7B%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'error',%20data:%20e%7D)%0A%7D%0A%0A%0Aprint%20=%20function(a)%20%7B%0A%20%20%20%20var%20s%20=%20%22%22;%20%0A%20%20%20%20for%20(i%20in%20a)%20%7Bs%20+=%20i%20+%20%22:%20%22%20+%20a%5Bi%5D%20+%22%5Cn%22%7D;%20%0A%20%20%20%20return%20%22%7B%22%20+s%20+%20%22%7D%22%0A%7D; got a request: https://eval/broadCastMessage%20=%20function(msg)%20%7B%0A%20%20%20%20self.clients.matchAll().then(function(clients)%20%7B%0A%20%20%20%20%20%20for%20(var%20i%20in%20clients)%20%7B%0A%20%20%20%20%20%20%20%20clients%5Bi%5D.postMessage(msg)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D);%0A%7D%0A%0Alog%20=%20function(s)%20%7B%0A%20%20%20%20//%20console.log(s)%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'log',%20data:%20s%7D)%0A%7D%0A%0Aconsole.log%20=%20function(s)%20%7B%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'log',%20data:%20e%7D)%0A%7D%0A%0Aconsole.error%20=%20function(e)%20%7B%0A%20%20%20%20broadCastMessage(%7Bmsg:%20'error',%20data:%20e%7D)%0A%7D got a request: https://eval/3 got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.5526074510999024 got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.8694814085029066 got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png got a request: http://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: https://eval/console got a request: https://eval/print(console) got a request: https://eval/print(console) got a request: https://eval/console.log(%22foo%22) got a request: https://eval/console.error(%22foo%22) { "msg": "error", "data": "foo" } got a request: https://eval/console.logError got a request: https://eval/print(console) got a request: https://eval/print(console) got a request: https://lively-kernel.org/babelsberg/users/jenslincke/test/ServiceWorkers.html got a request: https://lively-kernel.org/babelsberg/users/jenslincke/test/ServiceWorkers.html got a request: https://lively-kernel.org/babelsberg/users/jenslincke/test/ServiceWorkers.html got a request: https://lively-kernel.org/babelsberg/users/jenslincke/test/ServiceWorkers.html got a request: http://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png got a request: https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png got a request: https://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.9505182751454413 got a request: https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png got a request: https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.8414088021963835 got a request: https://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.7061333593446761 got a request: https://lively-kernel.org/babelsberg/core/media/halos/scriptedit.svg got a request: https://lively-kernel.org/babelsberg/core/media/halos/link.svg got a request: https://lively-kernel.org/repository/webwerkstatt/media/loading.gif got a request: https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.16141029284335673 got a request: https://lively-kernel.org/babelsberg/core/lib/ace/theme-undefined.js got a request: https://lively-kernel.org/babelsberg/core/lively/experimental/CloudStorageWebRequests.js got a request: https://lively-kernel.org/babelsberg/core/lively/experimental/CloudStorageWebRequests.js got a request: https://lively-kernel.org/babelsberg/core/lively/experimental/CloudStorageWebRequests.js got a request: https://lively-kernel.org/babelsberg/core/lively/experimental/CloudStorageWebRequests.js got a request: https://eval/u%20=%20new%20URL(%22https://dropbox/Lively%22) got a request: https://eval/u.hostname got a request: https://eval/u.searchParams got a request: https://eval/u.searchParams%20=%20%7Bfoo:%20%22bar%22%7D got a request: https://eval/u got a request: https://eval/u got a request: https://eval/u%20=%20new%20URL(%22https://dropbox/Lively%22) got a request: https://eval/u.searchParams.append(%22foo%22,%20%22bar%22) got a request: https://eval/u got a request: https://eval/u.searchParams.append(%22foo%22,%20%22bar%22) got a request: https://eval/print(u) got a request: https://eval/u%20=%20new%20URL(%22https://dropbox/Lively?foo=bar%22) got a request: https://eval/u got a request: https://eval/u.search got a request: https://eval/u.search got a request: https://eval/u got a request: https://eval/print(u) got a request: https://eval/print(u.searchParams) got a request: https://eval/u.searchParams got a request: https://eval/u.searchParams got a request: https://eval/u%20=%20new%20URL(%22https://dropbox/Lively?foo=bar%22) got a request: https://eval/u.searchParams got a request: https://eval/u.search got a request: https://eval/%7Bfoo:%20%22bar%22%7D got a request: https://eval/s%20=%20%22?%22;%20for%20(p%20in%20o)%20%7B%20s%20+=%20p%20+%20%22=%22+%20o%5Bp%5D%7D;%20s got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js got a request: https://eval/s%20=%20%22?%22;%20for%20(p%20in%20o)%20%7B%20s%20+=%20p%20+%20%22=%22+%20o%5Bp%5D%7D;%20s got a request: https://eval/o%20=%20%7Bfoo:%20%22bar%22%7D;%0As%20=%20%22?%22;%20for%20(p%20in%20o)%20%7B%20s%20+=%20p%20+%20%22=%22+%20o%5Bp%5D%7D;%20s%0A got a request: https://eval/%5B1,2%5D.join got a request: https://eval/%5B1,2%5D.collect got a request: https://eval/%5B1,2%5D.map got a request: https://eval/%7B1,2%7D.map got a request: https://eval/(%7Ba:%201,b:%202%7D).map got a request: https://eval/%0Ao%20=%20%7Bfoo:%20%22bar%22,%20c:%202%7D;%0Aa%20=%20%5B%5D;%20for%20(p%20in%20o)%20%7B%20a.push(p%20+%20%22=%22+%20o%5Bp%5D)%7D;%20%22?%22+a.join(%22&%22) got a request: https://lively-kernel.org/babelsberg/users/jenslincke/test/ServiceWorkers.html got a request: https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.16141029284335673 got a request: https://lively-kernel.org/babelsberg/login got a request: https://lively-kernel.org/babelsberg/core/styles/base_theme.css got a request: https://lively-kernel.org/babelsberg/core/media/morphLoading.gif got a request: https://lively-kernel.org/babelsberg/core/lib/ace/theme-theme.js got a request: https://lively-kernel.org/babelsberg/core/media/lively-web-logo-small.png got a request: https://eval/%0Aobj2search%20=%20function()%20%7B%0A%20%20%20%20var%20a%20=%20%5B%5D;%20%0A%20%20%20%20for%20(p%20in%20o)%20%7B%20a.push(p%20+%20%22=%22+%20o%5Bp%5D)%7D;%20%0A%20%20%20%20return%20%22?%22+a.join(%22&%22)%20%20%20%20%0A%7D%0Ao%20=%20%7Bfoo:%20%22bar%22,%20c:%202%7D;%0Aobj2search(o) got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js got a request: https://eval/3 got a request: https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js got a request: https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png?0.16141029284335673 got a request: https://lively-kernel.org/babelsberg/users/jenslincke/test/ServiceWorkers.html got a request: https://lively-kernel.org/babelsberg/users/jenslincke/test/ServiceWorkers.html got a request: https://lively-kernel.org/babelsberg/core/media/halos/morphmenu.svg got a request: https://lively-kernel.org/babelsberg/core/media/halos/info.svg got a request: https://lively-kernel.org/babelsberg/core/media/halos/scriptedit_connection.svg got a request: https://lively-kernel.org/babelsberg/core/media/halos/styleedit.svg
// receive messages
navigator.serviceWorker.onmessage = function(event) {
    if (event.data.msg == 'log') {
        $morph("Log").log(event.data.data)
    } else {
        alertOK("Message2: " + JSON.prettyPrint(event.data))
    }
}
// send messages
sendMessageToServiceWorker = function (message) {
    navigator.serviceWorker.controller.postMessage(message);
}
i = 0
sendMessageToServiceWorker({msg: "Hi" , c:  i++})
  $morph("Log").log("estars")
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
depth: 1
reset
$morph('TestImage').setImageURL("https://lively-kernel.org/repository/webwerkstatt/media/loading.gif")
$morph('TestImage').setImageURL("https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png" + "?" + Math.random())
$morph('TestImage').setImageURL("https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png")
jQuery.ajax({
    url: "https://lively-kernel.org/repository/webwerkstatt/media/hpi_logo.png",
    type: "get",    
    success: function(d) { alertOK(d)}
})
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
show vars
JavaScript Workspace
X

Menu
depth: 1
reset
var request = indexedDB.open("MyDropbox");
request.onerror = function(event) {
  alert("Why didn't you allow my web app to use IndexedDB?!");
};
request.onsuccess = function(event) {
  Global.db = event.target.result;
};
db.deleteObjectStore();
eval('import focalStorage from ')
JSLoader.loadJs(""+URL.codeBase.withFilename("lib/focalStorage.js"), undefined, true)
eval(URL.codeBase.withFilename("lib/focalStorage.js").asWebResource().get().content)
focalStorage.setItem("dropboxAccessToken","Or5ZKMnok7sAAAAAAANCpDZwejT76YsmrfvOVqQU5al1psc0RmA96NgMId1Dr9PE")
focalStorage.getItem("foo").then(function(d) { alertOK(d) })
navigator.serviceWorker
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
show vars
JavaScript Workspaceundefined
X

Menu
https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
save
load
remove
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
            broadCastMessage({msg: "evalResult", data: "Error: " + e, sourceMsg: msg})
            log("error eval: " + e  + " source: " + msg.data)
        }
    } else {
        log("Could not handle: " + JSON.stringify(msg))
    } 
};
// #TODO look at ServerWorkspace again.... #JL
// getCompletions = function(s) {
//     return JSON.stringify({
//         completions: [["foo",["bar","boo"]]],
//         prefix: s
//     })
// }
var dropboxAccessToken
importScripts("https://lively-kernel.org/babelsberg/core/lib/focalStorage.js")
focalStorage.getItem("dropboxAccessToken").then(function(d) { dropboxAccessToken = d})
self.onfetch = function(event) {
    log('got a request: ' + event.request.url);
    if (event.request.url.match("https://eval/")) {
        var s = event.request.url.replace("https://eval/","")
        s = decodeURI(s)
        try {
            var result = eval(s)
        } catch(e) {
            result = "Error: " + e
        }
        event.respondWith(new Response("" + result));
    } else if (event.request.url.match("https://version/")) {
      event.respondWith(new Response("version: " + lastLoaded));
    } else if (event.request.url.match("https://dropbox/")) {
        var path = event.request.url.replace("https://dropbox/","/")
        var method = "files/auto" // get
        LastR = event.request
        event.respondWith(
            fetch("https://api-content.dropbox.com/1/" + method 
                + path +"?access_token=" + dropboxAccessToken));
    } else if (event.request.url.match("webwerkstatt/media")) {
        event.respondWith(fetch(new Request(event.request.url, { mode: 'no-cors' })))
    }  else {
        event.respondWith(fetch(event.request))
    }
}
log('loaded cloudswdev');
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js
X

Menu
X
expand https://lively-kernel.org/babelsberg/users/jenslincke/cloudswdev.js saved
depth: 1
reset
        if (state && state !== uuid) throw "Invalid state! CSRF!";
        if (token) {
            var odurl = "https://" + (req.subdomain || "api") + ".dropbox.com/1/" +
                    req.type + req.path.replace(/\/$/, ""),
                odquery = "?access_token=" + token,
                userSuccess = req.ajax.success;
            
            var url = 
            fetch(odurl)
        } else {
            log("Error signing in");
        }
    }
}
u.searchParams.append("foo", "bar")
print(u)
u.searchParams
u.search
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
show vars
JavaScript Workspace
X

Menu
depth: 1
reset
{data: foo
origin: 
lastEventId: 
source: null
ports: null
initMessageEvent: function initMessageEvent() { [native code] }
type: message
target: [object ServiceWorkerGlobalScope]
currentTarget: [object ServiceWorkerGlobalScope]
eventPhase: 0
bubbles: false
cancelable: false
defaultPrevented: false
timeStamp: 1437559672433
path: 
srcElement: [object ServiceWorkerGlobalScope]
returnValue: true
cancelBubble: false
stopPropagation: function stopPropagation() { [native code] }
stopImmediatePropagation: function stopImmediatePropagation() { [native code] }
preventDefault: function preventDefault() { [native code] }
initEvent: function initEvent() { [native code] }
NONE: 0
CAPTURING_PHASE: 1
AT_TARGET: 2
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
show vars
JavaScript Workspace
X

Menu
CloudStorageWebRequests.js:CloudStorageWebRequestCloudHostnameLayer:WebResource
X

Menu
N
core/lively/experimental/
...
../
BabelsbergLively.js (not parsed)
BiggerStatusMessages.js (not parsed)
CloudStorageSynchronization.js (not parsed)
CloudStorageWebRequests.js
CopyAndPaste.js (not parsed)
DebugEvents.js (not parsed)
ExperimentalFeatures.js (not parsed)
FixWindowsCopyBug.js (not parsed)
LoadOldPages.js (not parsed)
MethodFinder.js (not parsed)
PartsMenu.js (not parsed)
RobustLoading.js (not parsed)
CloudStorageWebRequestCloudDriveLayer
CloudStorageWebRequestCloudHostnameLayer
CloudStorageWebRequestsLayer
WebResource
request
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
            default:
                throw "shouldn't be here!"
        }
        var answer = object[method](
            ("" + this.getURL().pathname).replace("//", "/"),
            this.isSync(),
            optContent
        );
        this.plugWebResource(answer, this)
        return this;
    },
     getSubElements: function() { 
        var result = cop.proceed();
        reach.each(function(ea) {
            ea.hostname = ea.protocol
            
        })
        
    }
})
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>
<
depth: 1
reset
new WebResource("dropbox:///Lively").getSubElements().subDocuments.invoke('getURL').join("\n")
l = new WebResource("https://dropbox/Lively").getSubElements().subDocuments
.invoke('getURL').join("\n")
dropbox:///Lively/foo.txt
l[0]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
show vars
JavaScript Workspace
X

Menu

this WebResource

content null

contentDocument null

isExisting null

requestHeaders {}

responseHeaders {}

status null

subResources null

withLayers [...]

inherited from WebResource.prototype
Filter:
this.getURL()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Bind 'this' to selection
Inspector on: WebResource
X

Menu