Skip to content

Commit 5ec3006

Browse files
committed
this fixes default tab selection for Firefox
1 parent 580d3a8 commit 5ec3006

1 file changed

Lines changed: 17 additions & 13 deletions

File tree

src/js/devtools.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,26 @@ var messager = vAPI.messaging.channel('stats.js');
3636

3737
var renderPageSelector = function(targetTabId) {
3838
var selectedTabId = targetTabId || uDom('#pageSelector').val();
39-
var onTabReceived = function(tabId, tabTitle) {
40-
uDom('#pageSelector').append('<option value="' + tabId + '">' + tabTitle);
41-
if ( tabId.toString() === selectedTabId ) {
42-
uDom('#pageSelector').val(tabId);
39+
var onDataReceived = function(pageTitles) {
40+
if ( pageTitles.hasOwnProperty(selectedTabId) === false ) {
41+
selectedTabId = pageTitles[0];
4342
}
44-
};
45-
var onDataReceived = function(pageDetails) {
46-
uDom('#pageSelector option').remove();
47-
if ( pageDetails.hasOwnProperty(selectedTabId) === false ) {
48-
selectedTabId = pageDetails[0];
49-
}
50-
for ( var tabId in pageDetails ) {
51-
if ( pageDetails.hasOwnProperty(tabId) ) {
52-
onTabReceived(tabId, pageDetails[tabId]);
43+
var select = uDom('#pageSelector').empty();
44+
var option;
45+
for ( var tabId in pageTitles ) {
46+
if ( pageTitles.hasOwnProperty(tabId) === false ) {
47+
continue;
48+
}
49+
option = uDom('<option>').text(pageTitles[tabId])
50+
.prop('value', tabId);
51+
if ( tabId === selectedTabId ) {
52+
option.prop('selected', true);
5353
}
54+
select.append(option);
5455
}
56+
// This must be done after inserting all option tags, or else Firefox
57+
// will refuse values which do not exist yet.
58+
select.prop('value', selectedTabId);
5559
selectPage();
5660
};
5761
messager.send({ what: 'getPageDetails' }, onDataReceived);

0 commit comments

Comments
 (0)