Fix merge error + minor comments improvements

This commit is contained in:
mossroy 2016-01-07 17:42:37 +01:00
parent 727c11928a
commit a1793121ae
2 changed files with 33 additions and 38 deletions

View File

@ -25,32 +25,6 @@
// TODO : remove requirejs if it's really useless here
importScripts('./www/js/lib/require.js');
/**
* From https://stackoverflow.com/questions/16245767/creating-a-blob-from-a-base64-string-in-javascript
*/
function b64toBlob(b64Data, contentType, sliceSize) {
contentType = contentType || '';
sliceSize = sliceSize || 512;
var byteCharacters = atob(b64Data);
var byteArrays = [];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var blob = new Blob(byteArrays, {type: contentType});
return blob;
}
self.addEventListener('install', function(event) {
event.waitUntil(self.skipWaiting());
@ -81,6 +55,15 @@ function(util, utf8) {
console.log('Init message received', event.data);
outgoingMessagePort = event.ports[0];
console.log('outgoingMessagePort initialized', outgoingMessagePort);
self.addEventListener('fetch', fetchEventListener);
console.log('fetchEventListener enabled');
}
if (event.data.action === 'disable') {
console.log('Disable message received');
outgoingMessagePort = null;
console.log('outgoingMessagePort deleted');
self.removeEventListener('fetch', fetchEventListener);
console.log('fetchEventListener removed');
}
});
@ -93,13 +76,13 @@ function(util, utf8) {
var regexpContentUrl = new RegExp(/\/(.)\/(.*[^\/]+)$/);
var regexpDummyArticle = new RegExp(/dummyArticle\.html$/);
self.addEventListener('fetch', function(event) {
function fetchEventListener(event) {
console.log('ServiceWorker handling fetch event for : ' + event.request.url);
// TODO handle the dummy article more properly
if (regexpContentUrl.test(event.request.url) && !regexpDummyArticle.test(event.request.url)) {
console.log('Asking app.js for a content', event.request.url);
event.respondWith(new Promise(function(resolve, reject) {
var regexpResult = regexpContentUrl.exec(event.request.url);
@ -130,6 +113,19 @@ function(util, utf8) {
else if (regexpCSS.test(titleName)) {
contentType = 'image/css';
}
var responseInit = {
status: 200,
statusText: 'OK',
headers: {
'Content-Type': contentType
}
};
var httpResponse = new Response(';', responseInit);
// TODO : temporary before the backend actually sends a proper content
resolve(httpResponse);
return;
}
// Let's instanciate a new messageChannel, to allow app.s to give us the content
@ -162,6 +158,5 @@ function(util, utf8) {
}
// If event.respondWith() isn't called because this wasn't a request that we want to handle,
// then the default request/response behavior will automatically be used.
});
}
});

View File

@ -902,13 +902,13 @@ define(['jquery', 'abstractBackend', 'util', 'cookies','geometry','osabstraction
$("#articleContent").contents().scrollTop(0);
// Display the article inside the web page.
var ifrm = document.getElementById('articleContent');
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
ifrm.document.open();
ifrm.document.write(htmlArticle);
ifrm.document.close();
var articleContentIFrame = document.getElementById('articleContent');
articleContentIFrame = (articleContentIFrame.contentWindow) ? articleContentIFrame.contentWindow : (articleContentIFrame.contentDocument.document) ? articleContentIFrame.contentDocument.document : articleContentIFrame.contentDocument;
articleContentIFrame.document.open();
articleContentIFrame.document.write(htmlArticle);
articleContentIFrame.document.close();
//$(document.getElementById('#articleContent').contentWindow.document).load(function () {
// When the IFrame content is loaded, we can parse it
$('iframe#articleContent').load(function() {
// Apply Mediawiki CSS only when it's an Evopedia archive
if (selectedArchive.needsWikimediaCSS() === true) {