172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
53345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickcr.define('options', function() {
63345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  var OptionsPage = options.OptionsPage;
83345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
9731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // State variables.
10731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  var syncEnabled = false;
11731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  var syncSetupCompleted = false;
12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
1321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  /**
1421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen   * Encapsulated handling of personal options page.
1521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen   * @constructor
1621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen   */
173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  function PersonalOptions() {
1872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    OptionsPage.call(this, 'personal',
1972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                     templateData.personalPageTabTitle,
20201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch                     'personal-page');
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  }
223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  cr.addSingletonGetter(PersonalOptions);
243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  PersonalOptions.prototype = {
263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    // Inherit PersonalOptions from OptionsPage.
273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    __proto__: options.OptionsPage.prototype,
283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    // Initialize PersonalOptions page.
303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    initializePage: function() {
3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      // Call base class implementation to start preference initialization.
323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      OptionsPage.prototype.initializePage.call(this);
333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
34731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      var self = this;
354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      $('sync-action-link').onclick = function(event) {
3672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        chrome.send('showSyncActionDialog');
374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      };
38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      $('start-stop-sync').onclick = function(event) {
39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        if (self.syncSetupCompleted)
40731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick          self.showStopSyncingOverlay_();
41731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        else
424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch          chrome.send('showSyncLoginDialog');
43731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      };
4472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      $('customize-sync').onclick = function(event) {
4572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        chrome.send('showCustomizeSyncDialog');
4672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      };
47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      $('privacy-dashboard-link').onclick = function(event) {
48731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        chrome.send('openPrivacyDashboardTabAndActivate');
493345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      };
50201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch      $('manage-passwords').onclick = function(event) {
51dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen        OptionsPage.navigateToPage('passwords');
523345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        OptionsPage.showTab($('passwords-nav-tab'));
533345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        chrome.send('coreOptionsUserMetricsAction',
5421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen            ['Options_ShowPasswordManager']);
553345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      };
5621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      $('autofill-settings').onclick = function(event) {
57dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen        OptionsPage.navigateToPage('autofill');
583345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        chrome.send('coreOptionsUserMetricsAction',
59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            ['Options_ShowAutofillSettings']);
603345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      };
61201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch      $('themes-reset').onclick = function(event) {
62201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch        chrome.send('themesReset');
63201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch      };
643345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
653345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      if (!cr.isChromeOS) {
66201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch        $('import-data').onclick = function(event) {
67dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen          OptionsPage.navigateToPage('importData');
683345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick          chrome.send('coreOptionsUserMetricsAction', ['Import_ShowDlg']);
693345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        };
703345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
71dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen        if ($('themes-GTK-button')) {
72201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch          $('themes-GTK-button').onclick = function(event) {
73201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch            chrome.send('themesSetGTK');
74201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch          };
75201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch        }
76201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch      } else {
77ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        $('change-picture-button').onclick = function(event) {
78ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          OptionsPage.navigateToPage('changePicture');
79ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        };
80731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        chrome.send('loadAccountPicture');
81731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      }
8221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
8372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      if (cr.commandLine.options['--bwsi']) {
8472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        // Disable the screen lock checkbox for the guest mode.
8521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        $('enable-screen-lock').disabled = true;
8672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      }
8721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
8872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      if (PersonalOptions.disablePasswordManagement()) {
8972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        $('passwords-offersave').disabled = true;
9072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        $('passwords-neversave').disabled = true;
9172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        $('passwords-offersave').value = false;
9272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        $('passwords-neversave').value = true;
9372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        $('manage-passwords').disabled = true;
94201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch      }
953345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    },
963345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
97ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    showStopSyncingOverlay_: function() {
9821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      AlertOverlay.show(localStrings.getString('stop_syncing_title'),
9921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                        localStrings.getString('stop_syncing_explanation'),
10021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                        localStrings.getString('stop_syncing_confirm'),
10121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                        localStrings.getString('cancel'),
10221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                        function() { chrome.send('stopSyncing'); });
103731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
104731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
105731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setElementVisible_: function(element, visible) {
106ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      element.hidden = !visible;
1074a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      if (visible)
1084a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch        element.classList.remove('hidden');
1094a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      else
1104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch        element.classList.add('hidden');
111731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
112731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
113731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setSyncEnabled_: function(enabled) {
114731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.syncEnabled = enabled;
115731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
116731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
117731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setSyncSetupCompleted_: function(completed) {
118731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.syncSetupCompleted = completed;
11972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      this.setElementVisible_($('customize-sync'), completed);
120ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('privacy-dashboard-link').hidden = !completed;
121731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
122731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
123731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setAccountPicture_: function(image) {
124731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      $('account-picture').src = image;
125731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
126731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
127731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setSyncStatus_: function(status) {
128ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      var statusSet = status != '';
129ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('sync-overview').hidden = statusSet;
130ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('sync-status').hidden = !statusSet;
13172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      $('sync-status-text').textContent = status;
132731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
133731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
134731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setSyncStatusErrorVisible_: function(visible) {
13572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      visible ? $('sync-status').classList.add('sync-error') :
13672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                $('sync-status').classList.remove('sync-error');
137731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
138731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
139731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setSyncActionLinkEnabled_: function(enabled) {
140731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      $('sync-action-link').disabled = !enabled;
141731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
142731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
143731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setSyncActionLinkLabel_: function(status) {
144731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      $('sync-action-link').textContent = status;
145731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
146731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      // link-button does is not zero-area when the contents of the button are
147731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      // empty, so explicitly hide the element.
148731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.setElementVisible_($('sync-action-link'), status.length != 0);
149731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
150731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
151ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    setProfilesSectionVisible_: function(visible) {
152ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      this.setElementVisible_($('profiles-create'), visible);
153ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    },
154ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
155ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    setNewProfileButtonEnabled_: function(enabled) {
156ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('new-profile').disabled = !enabled;
157ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      if (enabled)
158ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        $('profiles-create').classList.remove('disabled');
159ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      else
160ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        $('profiles-create').classList.add('disabled');
161ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    },
162ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
163731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setStartStopButtonVisible_: function(visible) {
164731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.setElementVisible_($('start-stop-sync'), visible);
165731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
166731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
167731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setStartStopButtonEnabled_: function(enabled) {
168731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      $('start-stop-sync').disabled = !enabled;
169731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
170731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
171731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    setStartStopButtonLabel_: function(label) {
172731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      $('start-stop-sync').textContent = label;
173731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    },
174731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
1753345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    setGtkThemeButtonEnabled_: function(enabled) {
1763345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      if (!cr.isChromeOS && navigator.platform.match(/linux|BSD/i)) {
177201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch        $('themes-GTK-button').disabled = !enabled;
1783345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      }
1793345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    },
1803345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
181201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch    setThemesResetButtonEnabled_: function(enabled) {
182201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch      $('themes-reset').disabled = !enabled;
1833345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    },
1844a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
1854a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch    hideSyncSection_: function() {
1864a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      this.setElementVisible_($('sync-section'), false);
1874a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch    },
18821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
18921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    /**
19021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen     * Toggles the visibility of the data type checkboxes based on whether they
19121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen     * are enabled on not.
19221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen     * @param {Object} dict A mapping from data type to a boolean indicating
19321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen     *     whether it is enabled.
19421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen     * @private
19521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen     */
19621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    setRegisteredDataTypes_: function(dict) {
19721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      for (var type in dict) {
19821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        if (type.match(/Registered$/) && !dict[type]) {
19921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen          node = $(type.replace(/([a-z]+)Registered$/i, '$1').toLowerCase()
20021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                   + '-check');
20121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen          if (node)
20221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen            node.parentNode.style.display = 'none';
20321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        }
20421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      }
20521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    },
2063345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  };
2073345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
20872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  /**
20972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen   * Returns whether the user should be able to manage (view and edit) their
21072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen   * stored passwords. Password management is disabled in guest mode.
21172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen   * @return {boolean} True if password management should be disabled.
21272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen   */
21372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  PersonalOptions.disablePasswordManagement = function() {
21472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return cr.commandLine.options['--bwsi'];
21572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  };
21672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
217731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Forward public APIs to private implementations.
218731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  [
219731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setSyncEnabled',
220731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setSyncSetupCompleted',
221731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setAccountPicture',
222731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setSyncStatus',
223731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setSyncStatusErrorVisible',
224731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setSyncActionLinkEnabled',
225731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setSyncActionLinkLabel',
226ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    'setProfilesSectionVisible',
227ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    'setNewProfileButtonEnabled',
228731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setStartStopButtonVisible',
229731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setStartStopButtonEnabled',
230731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setStartStopButtonLabel',
231731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    'setGtkThemeButtonEnabled',
232201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch    'setThemesResetButtonEnabled',
2334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch    'hideSyncSection',
23421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    'setRegisteredDataTypes',
235731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  ].forEach(function(name) {
236731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    PersonalOptions[name] = function(value) {
237731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      PersonalOptions.getInstance()[name + '_'](value);
238731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    };
239731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  });
2403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
2413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // Export
2423345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  return {
2433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    PersonalOptions: PersonalOptions
2443345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  };
2453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
2463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick});
247