Index: content/browser/resources/service_worker/serviceworker_internals.js |
diff --git a/content/browser/resources/service_worker/serviceworker_internals.js b/content/browser/resources/service_worker/serviceworker_internals.js |
index 1be184cf6fcc7e33dde303d9a0b560bda16e7719..424d24f30c7bba743ff3d062a3e317a1cb6e2b15 100644 |
--- a/content/browser/resources/service_worker/serviceworker_internals.js |
+++ b/content/browser/resources/service_worker/serviceworker_internals.js |
@@ -5,10 +5,38 @@ |
cr.define('serviceworker', function() { |
'use strict'; |
+ function initialize() { |
+ update(); |
+ } |
+ |
function update() { |
+ chrome.send('GetOptions'); |
chrome.send('getAllRegistrations'); |
} |
+ function onOptions(options) { |
+ var template; |
+ var container = $('serviceworker-options'); |
+ if (container.childNodes) { |
+ template = container.childNodes[0]; |
+ } |
+ if (!template) { |
+ template = jstGetTemplate('serviceworker-options-template'); |
+ container.appendChild(template); |
+ } |
+ jstProcess(new JsEvalContext(options), template); |
+ var inputs = container.querySelectorAll('input[type=\'checkbox\']'); |
+ for (var i = 0; i < inputs.length; ++i) { |
+ if (!inputs[i].hasClickEvent) { |
+ inputs[i].addEventListener('click', (function(event) { |
+ chrome.send('SetOption', |
+ [event.target.className, event.target.checked]); |
+ }).bind(this), false); |
+ inputs[i].hasClickEvent = true; |
+ } |
+ } |
+ } |
+ |
function progressNodeFor(link) { |
return link.parentNode.querySelector('.operation-status'); |
} |
@@ -164,7 +192,9 @@ cr.define('serviceworker', function() { |
} |
return { |
+ initialize: initialize, |
update: update, |
+ onOptions: onOptions, |
onOperationComplete: onOperationComplete, |
onPartitionData: onPartitionData, |
onWorkerStarted: onWorkerStarted, |
@@ -177,4 +207,4 @@ cr.define('serviceworker', function() { |
}; |
}); |
-document.addEventListener('DOMContentLoaded', serviceworker.update); |
+document.addEventListener('DOMContentLoaded', serviceworker.initialize); |