summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources/options
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/resources/options')
-rw-r--r--chrome/browser/resources/options/browser_options.html4
-rw-r--r--chrome/browser/resources/options/browser_options.js71
2 files changed, 66 insertions, 9 deletions
diff --git a/chrome/browser/resources/options/browser_options.html b/chrome/browser/resources/options/browser_options.html
index abeb46e..7a8ad39 100644
--- a/chrome/browser/resources/options/browser_options.html
+++ b/chrome/browser/resources/options/browser_options.html
@@ -13,13 +13,13 @@
pref="session.restore_on_startup" value="4"><span
i18n-content="startupShowPages"></span></label>
<div class="suboption">
- <select id="startupPages" size="3">
+ <select id="startupPages" size="3" multiple>
</select><br>
<button id="startupAddButton"
i18n-content="startupAddButton"></button>
<button id="startupRemoveButton" disabled
i18n-content="startupRemoveButton"></button>
- <button id="startupUseCurrentButton" disabled
+ <button id="startupUseCurrentButton"
i18n-content="startupUseCurrent"></button>
</div>
</div>
diff --git a/chrome/browser/resources/options/browser_options.js b/chrome/browser/resources/options/browser_options.js
index 834c993..53e0656 100644
--- a/chrome/browser/resources/options/browser_options.js
+++ b/chrome/browser/resources/options/browser_options.js
@@ -23,15 +23,19 @@ BrowserOptions.prototype = {
// Call base class implementation to start preference initialization.
OptionsPage.prototype.initializePage.call(this);
- // Wire up buttons.
+ // Wire up controls.
+ var self = this;
+ $('startupPages').onchange = function(event) {
+ self.updateRemoveButtonState_();
+ };
$('startupAddButton').onclick = function(event) {
OptionsPage.showOverlay('addStartupPageOverlay');
};
$('startupRemoveButton').onclick = function(event) {
- // TODO(stuartmorgan): Remove selected element(s).
+ self.removeSelectedStartupPages_();
};
$('startupUseCurrentButton').onclick = function(event) {
- // TODO(stuartmorgan): Add all open tabs (except this one).
+ chrome.send('setStartupPagesToCurrentPages');
};
$('defaultSearchManageEnginesButton').onclick = function(event) {
OptionsPage.showPageByName('searchEngines');
@@ -81,10 +85,10 @@ BrowserOptions.prototype = {
updateSearchEngines_: function(engines, defaultValue) {
this.clearSearchEngines_();
engineSelect = $('defaultSearchEngine');
- engineCount = engines.length
+ engineCount = engines.length;
var defaultIndex = -1;
for (var i = 0; i < engineCount; i++) {
- var engine = engines[i]
+ var engine = engines[i];
var option = new Option(engine['name'], engine['index']);
if (defaultValue == option.value)
defaultIndex = i;
@@ -95,6 +99,55 @@ BrowserOptions.prototype = {
},
/**
+ * Clears the startup page list.
+ * @private
+ */
+ clearStartupPages_: function() {
+ $('startupPages').textContent = '';
+ },
+
+ /**
+ * Updates the startup pages list with the given entries.
+ * @param {Array} pages List of startup pages.
+ */
+ updateStartupPages_: function(pages) {
+ // TODO(stuartmorgan): Replace <select> with a DOMUI List.
+ this.clearStartupPages_();
+ pageList = $('startupPages');
+ pageCount = pages.length;
+ for (var i = 0; i < pageCount; i++) {
+ var page = pages[i];
+ var option = new Option(page['title']);
+ option.title = page['tooltip'];
+ pageList.appendChild(option);
+ }
+
+ this.updateRemoveButtonState_();
+ },
+
+ /**
+ * Sets the enabled state of the startup page Remove button based on
+ * the current selection in the startup pages list.
+ */
+ updateRemoveButtonState_: function() {
+ $('startupRemoveButton').disabled = ($('startupPages').selectedIndex == -1);
+ },
+
+ /**
+ * Removes the selected startup pages.
+ */
+ removeSelectedStartupPages_: function() {
+ var pageSelect = $('startupPages');
+ var optionCount = pageSelect.options.length;
+ var selections = [];
+ for (var i = 0; i < optionCount; i++) {
+ if (pageSelect.options[i].selected)
+ selections.push(String(i));
+ }
+ chrome.send('removeStartupPages', selections);
+ },
+
+ /**
* Set the default search engine based on the popup selection.
*/
setDefaultBrowser: function() {
@@ -110,8 +163,12 @@ BrowserOptions.prototype = {
BrowserOptions.updateDefaultBrowserState = function(statusString, isDefault) {
BrowserOptions.getInstance().updateDefaultBrowserState_(statusString,
isDefault);
-}
+};
BrowserOptions.updateSearchEngines = function(engines, defaultValue) {
BrowserOptions.getInstance().updateSearchEngines_(engines, defaultValue);
-}
+};
+
+BrowserOptions.updateStartupPages = function(pages) {
+ BrowserOptions.getInstance().updateStartupPages_(pages);
+};