1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5var incognito;
6var url;
7
8function settingChanged() {
9  var type = this.id;
10  var setting = this.value;
11  var pattern = /^file:/.test(url) ? url : url.replace(/\/[^\/]*?$/, '/*');
12  console.log(type+' setting for '+pattern+': '+setting);
13  // HACK: [type] is not recognised by the docserver's sample crawler, so
14  // mention an explicit
15  // type: chrome.contentSettings.cookies.set - See http://crbug.com/299634
16  chrome.contentSettings[type].set({
17        'primaryPattern': pattern,
18        'setting': setting,
19        'scope': (incognito ? 'incognito_session_only' : 'regular')
20      });
21}
22
23document.addEventListener('DOMContentLoaded', function () {
24  chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
25    var current = tabs[0];
26    incognito = current.incognito;
27    url = current.url;
28    var types = ['cookies', 'images', 'javascript', 'plugins', 'popups',
29                 'notifications'];
30    types.forEach(function(type) {
31      // HACK: [type] is not recognised by the docserver's sample crawler, so
32      // mention an explicit
33      // type: chrome.contentSettings.cookies.get - See http://crbug.com/299634
34      chrome.contentSettings[type].get({
35            'primaryUrl': url,
36            'incognito': incognito
37          },
38          function(details) {
39            document.getElementById(type).value = details.setting;
40          });
41    });
42  });
43
44  var selects = document.querySelectorAll('select');
45  for (var i = 0; i < selects.length; i++) {
46    selects[i].addEventListener('change', settingChanged);
47  }
48});
49
50