This should fix#887 partially. However, when I click the star button twice, there still be another error like:
~~~
treestyletab: doPatching: gEditItemOverlay._showHideRows is missing! utils.js:319:0
treestyletab: Failed to patch to gEditItemOverlay.initPanel: function initPanel(aInfo) {
if (typeof(aInfo) != "object" || aInfo === null)
throw new Error("aInfo must be an object.");
// For sanity ensure that the implementer has uninited the panel before
// trying to init it again, or we could end up leaking due to observers.
if (this.initialized)
this.uninitPanel(false);
let { itemId, itemGuid, isItem,
isURI, uri, title,
isBookmark, bulkTagging, uris,
visibleRows } = this._setPaneInfo(aInfo);
let showOrCollapse =
(rowId, isAppropriateForInput, nameInHiddenRows = null) => {
let visible = isAppropriateForInput;
if (visible && "hiddenRows" in aInfo && nameInHiddenRows)
visible &= aInfo.hiddenRows.indexOf(nameInHiddenRows) == -1;
if (visible)
visibleRows.add(rowId);
return !(this._element(rowId).collapsed = !visible);
};
if (showOrCollapse("nameRow", !bulkTagging, "name")) {
this._initNamePicker();
this._namePicker.readOnly = this.readOnly;
}
// In some cases we want to hide the location field, since it's not
// human-readable, but we still want to initialize it.
showOrCollapse("locationRow", isURI, "location");
if (isURI) {
this._initLocationField();
this._locationField.readOnly = this.readOnly;
}
// hide the description field for
if (showOrCollapse("descriptionRow", isItem && !this.readOnly,
"description")) {
this._initDescriptionField();
this._descriptionField.readOnly = this.readOnly;
}
if (showOrCollapse("keywordRow", isBookmark, "keyword")) {
this._initKeywordField();
this._keywordField.readOnly = this.readOnly;
}
// Collapse the tag selector if the item does not accept tags.
if (showOrCollapse("tagsRow", isURI || bulkTagging, "tags"))
this._initTagsField().catch(Components.utils.reportError);
else if (!this._element("tagsSelectorRow").collapsed)
this.toggleTagsSelector().catch(Components.utils.reportError);
// Load in sidebar.
if (showOrCollapse("loadInSidebarCheckbox", isBookmark, "loadInSidebar")) {
this._initLoadInSidebar();
}
// Folder picker.
// Technically we should check that the item is not moveable, but that's
// not cheap (we don't always have the parent), and there's no use case for
// this (it's only the Star UI that shows the folderPicker)
if (showOrCollapse("folderRow", isItem, "folderPicker")) {
let containerId = PlacesUtils.bookmarks.getFolderIdForItem(itemId);
this._initFolderMenuList(containerId);
}
// Selection count.
if (showOrCollapse("selectionCount", bulkTagging)) {
this._element("itemsCountText").value =
PlacesUIUtils.getPluralString("detailsPane.itemsCountLabel",
uris.length,
[uris.length]);
}
// Observe changes.
if (!this._observersAdded) {
PlacesUtils.bookmarks.addObserver(this, false);
window.addEventListener("unload", this, false);
this._observersAdded = true;
}
}
~~~
This is a change from bug 947854 where FullScreen.mouseoverToggle is
replaced with FullScreen.{show,hide}NavToolbox. This fix detects this
and do patching accordingly.
With the preference "dom.compartment_per_addon"="true", updated gBrowserInit._delayedStartup cannot reassign a global variable defined by Firefox itself.
Accessing it as a property of the global object is not forbidden for now.
Changes background color of dummy almost transparent element spread over
Firefox content area from black to white. The near transparent element may
change website tone with inverse color. Therefore white dummy element will
affect only black websites since this commit.
This reverts commit 97637256a8.
This fixes a breakage of session restoration behaviors. The public symbol "SessionStore" doesn't have "TabRestoreStates", it is not exported.
We often store very large number of items into the folder, however we'll never open them as a group of bookmarks via middle click on the folder. On the other hand, if there are too many sibling bookmarks, TST can freeze to initialize the list of siblings. So I decided to disable the UI for bookmarks in the "unsorted bookmarks" folder. This decision is related to the issue #398.
The inner box of the tab bar should inherit width, height, and other attributes given via setTabbrowserAttribute(), from the parent element. However, if the binding is re-assigned again and again, then it can happen infinitely loop when the inheritance is done by xbl:constructor.
By some reasons, the XBL binding can be removed and re-assigned unexpectedly by UI changes (ex. show/hide toolbars).
Then I have to update the size of the inner box immediately.