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 fa23e7f9eb7415d8478d47b39abd626da9b82b52..e81b7e7a3d0d1270d4f47a6f16f139cf459c95a1 100644 |
--- a/content/browser/resources/service_worker/serviceworker_internals.js |
+++ b/content/browser/resources/service_worker/serviceworker_internals.js |
@@ -22,9 +22,33 @@ cr.define('serviceworker', function() { |
} |
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'); |
} |
@@ -208,6 +232,7 @@ cr.define('serviceworker', function() { |
return { |
initialize: initialize, |
update: update, |
+ onOptions: onOptions, |
onOperationComplete: onOperationComplete, |
onPartitionData: onPartitionData, |
onWorkerStarted: onWorkerStarted, |