зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1463738 - Remove the Bookmark description UI. r=dao
This removes the bookmark description UI, but leaves the backend in-place for a release or two, so that users have time to save anything they want (e.g. via backup).
The backend will be removed in bug 1402890
.
MozReview-Commit-ID: La4AYFar7eK
--HG--
extra : rebase_source : 02bfe3cacdac331d09d5e62a1a70f48b68741670
This commit is contained in:
Родитель
8b264ece4d
Коммит
9f30e28934
|
@ -284,7 +284,7 @@ var StarUI = {
|
|||
};
|
||||
gEditItemOverlay.initPanel({ node: aNode,
|
||||
onPanelReady,
|
||||
hiddenRows: ["description", "location",
|
||||
hiddenRows: ["location",
|
||||
"loadInSidebar", "keyword"],
|
||||
focusedElement: "preferred"});
|
||||
this.panel.openPopup(aAnchorElement, aPosition);
|
||||
|
@ -367,13 +367,15 @@ var PlacesCommandHook = {
|
|||
let parentGuid = PlacesUtils.bookmarks.unfiledGuid;
|
||||
info = { url, parentGuid };
|
||||
// Bug 1148838 - Make this code work for full page plugins.
|
||||
let description = null;
|
||||
let charset = null;
|
||||
|
||||
let docInfo = aUrl ? {} : await this._getPageDetails(aBrowser);
|
||||
let isErrorPage = false;
|
||||
if (!aUrl && aBrowser.documentURI) {
|
||||
isErrorPage = /^about:(neterror|certerror|blocked)/.test(aBrowser.documentURI.spec);
|
||||
}
|
||||
|
||||
try {
|
||||
if (docInfo.isErrorPage) {
|
||||
if (isErrorPage) {
|
||||
let entry = await PlacesUtils.history.fetch(aBrowser.currentURI);
|
||||
if (entry) {
|
||||
info.title = entry.title;
|
||||
|
@ -382,7 +384,6 @@ var PlacesCommandHook = {
|
|||
info.title = aTitle || aBrowser.contentTitle;
|
||||
}
|
||||
info.title = info.title || url.href;
|
||||
description = docInfo.description;
|
||||
charset = aUrl ? null : aBrowser.characterSet;
|
||||
} catch (e) {
|
||||
Cu.reportError(e);
|
||||
|
@ -395,11 +396,6 @@ var PlacesCommandHook = {
|
|||
StarUI.beginBatch();
|
||||
}
|
||||
|
||||
if (description) {
|
||||
info.annotations = [{ name: PlacesUIUtils.DESCRIPTION_ANNO,
|
||||
value: description }];
|
||||
}
|
||||
|
||||
info.guid = await PlacesTransactions.NewBookmark(info).transact();
|
||||
|
||||
// Set the character-set
|
||||
|
@ -428,18 +424,6 @@ var PlacesCommandHook = {
|
|||
url);
|
||||
},
|
||||
|
||||
_getPageDetails(browser) {
|
||||
return new Promise(resolve => {
|
||||
let mm = browser.messageManager;
|
||||
mm.addMessageListener("Bookmarks:GetPageDetails:Result", function listener(msg) {
|
||||
mm.removeMessageListener("Bookmarks:GetPageDetails:Result", listener);
|
||||
resolve(msg.data);
|
||||
});
|
||||
|
||||
mm.sendAsyncMessage("Bookmarks:GetPageDetails", { });
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds a bookmark to the page targeted by a link.
|
||||
* @param parentId
|
||||
|
@ -449,10 +433,8 @@ var PlacesCommandHook = {
|
|||
* the address of the link target
|
||||
* @param title
|
||||
* The link text
|
||||
* @param [optional] description
|
||||
* The linked page description, if available
|
||||
*/
|
||||
async bookmarkLink(parentId, url, title, description = "") {
|
||||
async bookmarkLink(parentId, url, title) {
|
||||
let bm = await PlacesUtils.bookmarks.fetch({url});
|
||||
if (bm) {
|
||||
let node = await PlacesUIUtils.promiseNodeLikeFromFetchInfo(bm);
|
||||
|
@ -468,10 +450,8 @@ var PlacesCommandHook = {
|
|||
type: "bookmark",
|
||||
uri: makeURI(url),
|
||||
title,
|
||||
description,
|
||||
defaultInsertionPoint,
|
||||
hiddenRows: [ "description",
|
||||
"location",
|
||||
hiddenRows: [ "location",
|
||||
"loadInSidebar",
|
||||
"keyword" ]
|
||||
}, window.top);
|
||||
|
@ -508,8 +488,7 @@ var PlacesCommandHook = {
|
|||
if (pages.length > 1) {
|
||||
PlacesUIUtils.showBookmarkDialog({ action: "add",
|
||||
type: "folder",
|
||||
URIList: pages,
|
||||
hiddenRows: [ "description" ]
|
||||
URIList: pages
|
||||
}, window);
|
||||
}
|
||||
},
|
||||
|
@ -535,10 +514,8 @@ var PlacesCommandHook = {
|
|||
* The nsIURI of the page the feed was attached to
|
||||
* @title title
|
||||
* The title of the feed. Optional.
|
||||
* @subtitle subtitle
|
||||
* A short description of the feed. Optional.
|
||||
*/
|
||||
async addLiveBookmark(url, feedTitle, feedSubtitle) {
|
||||
async addLiveBookmark(url, feedTitle) {
|
||||
let toolbarIP = new PlacesInsertionPoint({
|
||||
parentId: PlacesUtils.toolbarFolderId,
|
||||
parentGuid: PlacesUtils.bookmarks.toolbarGuid
|
||||
|
@ -546,21 +523,15 @@ var PlacesCommandHook = {
|
|||
|
||||
let feedURI = makeURI(url);
|
||||
let title = feedTitle || gBrowser.contentTitle;
|
||||
let description = feedSubtitle;
|
||||
if (!description) {
|
||||
description = (await this._getPageDetails(gBrowser.selectedBrowser)).description;
|
||||
}
|
||||
|
||||
PlacesUIUtils.showBookmarkDialog({ action: "add",
|
||||
type: "livemark",
|
||||
feedURI,
|
||||
siteURI: gBrowser.currentURI,
|
||||
title,
|
||||
description,
|
||||
defaultInsertionPoint: toolbarIP,
|
||||
hiddenRows: [ "feedLocation",
|
||||
"siteLocation",
|
||||
"description" ]
|
||||
"siteLocation" ]
|
||||
}, window);
|
||||
},
|
||||
|
||||
|
|
|
@ -6196,8 +6196,7 @@ function contentAreaClick(event, isPanelClick) {
|
|||
uri: makeURI(href),
|
||||
title: linkNode.getAttribute("title"),
|
||||
loadBookmarkInSidebar: true,
|
||||
hiddenRows: [ "description",
|
||||
"location",
|
||||
hiddenRows: [ "location",
|
||||
"keyword" ]
|
||||
}, window);
|
||||
event.preventDefault();
|
||||
|
@ -7338,12 +7337,10 @@ function AddKeywordForSearchField() {
|
|||
type: "bookmark",
|
||||
uri: makeURI(bookmarkData.spec),
|
||||
title,
|
||||
description: bookmarkData.description,
|
||||
keyword: "",
|
||||
postData: bookmarkData.postData,
|
||||
charSet: bookmarkData.charset,
|
||||
hiddenRows: [ "location",
|
||||
"description",
|
||||
"tags",
|
||||
"loadInSidebar" ]
|
||||
}, window);
|
||||
|
|
|
@ -27,7 +27,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
|
||||
FormSubmitObserver: "resource:///modules/FormSubmitObserver.jsm",
|
||||
PageMetadata: "resource://gre/modules/PageMetadata.jsm",
|
||||
PlacesUIUtils: "resource:///modules/PlacesUIUtils.jsm",
|
||||
SafeBrowsing: "resource://gre/modules/SafeBrowsing.jsm",
|
||||
Utils: "resource://gre/modules/sessionstore/Utils.jsm",
|
||||
WebNavigationFrames: "resource://gre/modules/WebNavigationFrames.jsm",
|
||||
|
@ -1003,14 +1002,6 @@ var PageMetadataMessenger = {
|
|||
};
|
||||
PageMetadataMessenger.init();
|
||||
|
||||
addMessageListener("Bookmarks:GetPageDetails", (message) => {
|
||||
let doc = content.document;
|
||||
let isErrorPage = /^about:(neterror|certerror|blocked)/.test(doc.documentURI);
|
||||
sendAsyncMessage("Bookmarks:GetPageDetails:Result",
|
||||
{ isErrorPage,
|
||||
description: PlacesUIUtils.getDescriptionFromDocument(doc) });
|
||||
});
|
||||
|
||||
addEventListener("InstallBrowserTheme", LightWeightThemeWebInstallListener, false, true);
|
||||
addEventListener("PreviewBrowserTheme", LightWeightThemeWebInstallListener, false, true);
|
||||
addEventListener("ResetBrowserThemePreview", LightWeightThemeWebInstallListener, false, true);
|
||||
|
|
|
@ -1428,8 +1428,7 @@ nsContextMenu.prototype = {
|
|||
|
||||
window.top.PlacesCommandHook.bookmarkLink(PlacesUtils.bookmarksMenuFolderId,
|
||||
uri.spec,
|
||||
message.data.title,
|
||||
message.data.description)
|
||||
message.data.title)
|
||||
.catch(Cu.reportError);
|
||||
};
|
||||
mm.addMessageListener("ContextMenu:BookmarkFrame:Result", onMessage);
|
||||
|
|
|
@ -387,7 +387,7 @@ FeedResultService.prototype = {
|
|||
// fall through
|
||||
case "bookmarks":
|
||||
Services.cpmm.sendAsyncMessage("FeedConverter:addLiveBookmark",
|
||||
{ spec, title, subtitle });
|
||||
{ spec, title });
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
|
|
@ -42,7 +42,7 @@ add_task(async function() {
|
|||
registerCleanupFunction(() => PlacesCommandHook.addLiveBookmark = old);
|
||||
await BrowserTestUtils.synthesizeMouseAtCenter("#subscribeButton", {}, tab.linkedBrowser);
|
||||
let bmArgs = await createBMPromise;
|
||||
Assert.deepEqual(bmArgs, [FEED_URI, "Example Feed", ""], "Should have been trying to subscribe");
|
||||
Assert.deepEqual(bmArgs, [FEED_URI, "Example Feed"], "Should have been trying to subscribe");
|
||||
let snapshot = getSnapShot();
|
||||
Assert.equal(snapshot.parent[kSubscribed], 1, "Should have subscribed once.");
|
||||
|
||||
|
@ -94,4 +94,3 @@ add_task(async function() {
|
|||
popup.hidePopup();
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
});
|
||||
|
||||
|
|
|
@ -480,38 +480,6 @@ var PlacesUIUtils = {
|
|||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Get the description associated with a document, as specified in a <META>
|
||||
* element.
|
||||
* @param doc
|
||||
* A DOM Document to get a description for
|
||||
* @return A description string if a META element was discovered with a
|
||||
* "description" or "httpequiv" attribute, empty string otherwise.
|
||||
*/
|
||||
getDescriptionFromDocument: function PUIU_getDescriptionFromDocument(doc) {
|
||||
var metaElements = doc.getElementsByTagName("META");
|
||||
for (var i = 0; i < metaElements.length; ++i) {
|
||||
if (metaElements[i].name.toLowerCase() == "description" ||
|
||||
metaElements[i].httpEquiv.toLowerCase() == "description") {
|
||||
return metaElements[i].content;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
},
|
||||
|
||||
/**
|
||||
* Retrieve the description of an item
|
||||
* @param aItemId
|
||||
* item identifier
|
||||
* @return the description of the given item, or an empty string if it is
|
||||
* not set.
|
||||
*/
|
||||
getItemDescription: function PUIU_getItemDescription(aItemId) {
|
||||
if (PlacesUtils.annotations.itemHasAnnotation(aItemId, this.DESCRIPTION_ANNO))
|
||||
return PlacesUtils.annotations.getItemAnnotation(aItemId, this.DESCRIPTION_ANNO);
|
||||
return "";
|
||||
},
|
||||
|
||||
/**
|
||||
* Check whether or not the given node represents a removable entry (either in
|
||||
* history or in bookmarks).
|
||||
|
|
|
@ -19,8 +19,6 @@
|
|||
* @ uri (nsIURI object) - optional, the default uri for the new item.
|
||||
* The property is not used for the "folder with items" type.
|
||||
* @ title (String) - optional, the default title for the new item.
|
||||
* @ description (String) - optional, the default description for the new
|
||||
* item.
|
||||
* @ defaultInsertionPoint (InsertionPoint JS object) - optional, the
|
||||
* default insertion point for the new item.
|
||||
* @ keyword (String) - optional, the default keyword for the new item.
|
||||
|
@ -47,7 +45,6 @@
|
|||
* Possible values:
|
||||
* - "title"
|
||||
* - "location"
|
||||
* - "description"
|
||||
* - "keyword"
|
||||
* - "tags"
|
||||
* - "loadInSidebar"
|
||||
|
@ -89,7 +86,6 @@ var BookmarkPropertiesPanel = {
|
|||
_uri: null,
|
||||
_loadInSidebar: false,
|
||||
_title: "",
|
||||
_description: "",
|
||||
_URIs: [],
|
||||
_keyword: "",
|
||||
_postData: null,
|
||||
|
@ -226,9 +222,6 @@ var BookmarkPropertiesPanel = {
|
|||
this._title = this._strings.getString("newLivemarkDefault");
|
||||
}
|
||||
}
|
||||
|
||||
if ("description" in dialogInfo)
|
||||
this._description = dialogInfo.description;
|
||||
} else { // edit
|
||||
this._node = dialogInfo.node;
|
||||
this._title = this._node.title;
|
||||
|
@ -461,10 +454,6 @@ var BookmarkPropertiesPanel = {
|
|||
async _promiseNewItem() {
|
||||
let [containerId, index, parentGuid] = await this._getInsertionPointDetails();
|
||||
let annotations = [];
|
||||
if (this._description) {
|
||||
annotations.push({ name: PlacesUIUtils.DESCRIPTION_ANNO,
|
||||
value: this._description });
|
||||
}
|
||||
if (this._loadInSidebar) {
|
||||
annotations.push({ name: PlacesUIUtils.LOAD_IN_SIDEBAR_ANNO,
|
||||
value: true });
|
||||
|
|
|
@ -273,10 +273,9 @@ PlacesController.prototype = {
|
|||
let node = this._view.selectedNode;
|
||||
PlacesUIUtils.showBookmarkDialog({ action: "add",
|
||||
type: "bookmark",
|
||||
hiddenRows: [ "description",
|
||||
"keyword",
|
||||
"location",
|
||||
"loadInSidebar" ],
|
||||
hiddenRows: [ "keyword",
|
||||
"location",
|
||||
"loadInSidebar" ],
|
||||
uri: Services.io.newURI(node.uri),
|
||||
title: node.title
|
||||
}, window.top);
|
||||
|
|
|
@ -128,14 +128,6 @@ var gEditItemOverlay = {
|
|||
this._initTextField(this._locationField, this._paneInfo.uri.spec);
|
||||
},
|
||||
|
||||
_initDescriptionField() {
|
||||
if (!this._paneInfo.isItem)
|
||||
throw new Error("_initDescriptionField called unexpectedly");
|
||||
|
||||
this._initTextField(this._descriptionField,
|
||||
PlacesUIUtils.getItemDescription(this._paneInfo.itemId));
|
||||
},
|
||||
|
||||
async _initKeywordField(newKeyword = "") {
|
||||
if (!this._paneInfo.isBookmark) {
|
||||
throw new Error("_initKeywordField called unexpectedly");
|
||||
|
@ -193,7 +185,7 @@ var gEditItemOverlay = {
|
|||
* 2. any of the following optional properties:
|
||||
* - hiddenRows (Strings array): list of rows to be hidden regardless
|
||||
* of the item edited. Possible values: "title", "location",
|
||||
* "description", "keyword", "loadInSidebar", "feedLocation",
|
||||
* "keyword", "loadInSidebar", "feedLocation",
|
||||
* "siteLocation", folderPicker"
|
||||
*/
|
||||
initPanel(aInfo) {
|
||||
|
@ -245,13 +237,6 @@ var gEditItemOverlay = {
|
|||
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().catch(Cu.reportError);
|
||||
this._keywordField.readOnly = this.readOnly;
|
||||
|
@ -629,20 +614,6 @@ var gEditItemOverlay = {
|
|||
title: this._namePicker.value }).transact();
|
||||
},
|
||||
|
||||
onDescriptionFieldChange() {
|
||||
if (this.readOnly || !this._paneInfo.isItem)
|
||||
return;
|
||||
|
||||
let description = this._element("descriptionField").value;
|
||||
if (description != PlacesUIUtils.getItemDescription(this._paneInfo.itemId)) {
|
||||
let annotation =
|
||||
{ name: PlacesUIUtils.DESCRIPTION_ANNO, value: description };
|
||||
let guid = this._paneInfo.itemGuid;
|
||||
PlacesTransactions.Annotate({ guid, annotation })
|
||||
.transact().catch(Cu.reportError);
|
||||
}
|
||||
},
|
||||
|
||||
onLocationFieldChange() {
|
||||
if (this.readOnly || !this._paneInfo.isBookmark)
|
||||
return;
|
||||
|
@ -1090,10 +1061,6 @@ var gEditItemOverlay = {
|
|||
if (this._paneInfo.visibleRows.has("keywordRow"))
|
||||
this._initKeywordField(aValue).catch(Cu.reportError);
|
||||
break;
|
||||
case PlacesUIUtils.DESCRIPTION_ANNO:
|
||||
if (this._paneInfo.visibleRows.has("descriptionRow"))
|
||||
this._initDescriptionField();
|
||||
break;
|
||||
case PlacesUIUtils.LOAD_IN_SIDEBAR_ANNO:
|
||||
if (this._paneInfo.visibleRows.has("loadInSidebarCheckbox"))
|
||||
this._initLoadInSidebar();
|
||||
|
@ -1134,7 +1101,7 @@ var gEditItemOverlay = {
|
|||
};
|
||||
|
||||
for (let elt of ["folderMenuList", "folderTree", "namePicker",
|
||||
"locationField", "descriptionField", "keywordField",
|
||||
"locationField", "keywordField",
|
||||
"tagsField", "loadInSidebarCheckbox"]) {
|
||||
let eltScoped = elt;
|
||||
XPCOMUtils.defineLazyGetter(gEditItemOverlay, `_${eltScoped}`,
|
||||
|
|
|
@ -121,18 +121,6 @@
|
|||
<textbox id="editBMPanel_keywordField"
|
||||
onchange="gEditItemOverlay.onKeywordFieldChange();"/>
|
||||
</vbox>
|
||||
|
||||
<vbox id="editBMPanel_descriptionRow"
|
||||
collapsed="true">
|
||||
<observes element="additionalInfoBroadcaster" attribute="hidden"/>
|
||||
<label value="&editBookmarkOverlay.description.label;"
|
||||
accesskey="&editBookmarkOverlay.description.accesskey;"
|
||||
control="editBMPanel_descriptionField"/>
|
||||
<textbox id="editBMPanel_descriptionField"
|
||||
multiline="true"
|
||||
rows="4"
|
||||
onchange="gEditItemOverlay.onDescriptionFieldChange();"/>
|
||||
</vbox>
|
||||
</vbox>
|
||||
|
||||
<checkbox id="editBMPanel_loadInSidebarCheckbox"
|
||||
|
|
|
@ -32,7 +32,6 @@ var PlacesOrganizer = {
|
|||
// is minimal. IDs should be kept in sync with the IDs of the elements
|
||||
// observing additionalInfoBroadcaster.
|
||||
_additionalInfoFields: [
|
||||
"editBMPanel_descriptionRow",
|
||||
"editBMPanel_loadInSidebarCheckbox",
|
||||
"editBMPanel_keywordRow",
|
||||
],
|
||||
|
@ -677,7 +676,6 @@ var PlacesOrganizer = {
|
|||
"loadInSidebar",
|
||||
"location",
|
||||
"keyword",
|
||||
"description",
|
||||
"name"]});
|
||||
this._detectAndSetDetailsPaneMinimalState(selectedNode);
|
||||
} else {
|
||||
|
@ -1177,9 +1175,6 @@ var ViewMenu = {
|
|||
visitCount: { key: "VISITCOUNT", dir: "descending" },
|
||||
dateAdded: { key: "DATEADDED", dir: "descending" },
|
||||
lastModified: { key: "LASTMODIFIED", dir: "descending" },
|
||||
description: { key: "ANNOTATION",
|
||||
dir: "ascending",
|
||||
anno: PlacesUIUtils.DESCRIPTION_ANNO }
|
||||
};
|
||||
|
||||
// Make sure we have a valid column.
|
||||
|
|
|
@ -421,9 +421,6 @@
|
|||
<treecol label="&col.visitcount.label;" id="placesContentVisitCount" anonid="visitCount" flex="1" hidden="true"
|
||||
persist="width hidden ordinal sortActive sortDirection"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol label="&col.description.label;" id="placesContentDescription" anonid="description" flex="1" hidden="true"
|
||||
persist="width hidden ordinal sortActive sortDirection"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol label="&col.dateadded.label;" id="placesContentDateAdded" anonid="dateAdded" flex="1" hidden="true"
|
||||
persist="width hidden ordinal sortActive sortDirection"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
|
|
|
@ -582,10 +582,9 @@ PlacesTreeView.prototype = {
|
|||
COLUMN_TYPE_URI: 2,
|
||||
COLUMN_TYPE_DATE: 3,
|
||||
COLUMN_TYPE_VISITCOUNT: 4,
|
||||
COLUMN_TYPE_DESCRIPTION: 5,
|
||||
COLUMN_TYPE_DATEADDED: 6,
|
||||
COLUMN_TYPE_LASTMODIFIED: 7,
|
||||
COLUMN_TYPE_TAGS: 8,
|
||||
COLUMN_TYPE_DATEADDED: 5,
|
||||
COLUMN_TYPE_LASTMODIFIED: 6,
|
||||
COLUMN_TYPE_TAGS: 7,
|
||||
|
||||
_getColumnType: function PTV__getColumnType(aColumn) {
|
||||
let columnType = aColumn.element.getAttribute("anonid") || aColumn.id;
|
||||
|
@ -599,8 +598,6 @@ PlacesTreeView.prototype = {
|
|||
return this.COLUMN_TYPE_DATE;
|
||||
case "visitCount":
|
||||
return this.COLUMN_TYPE_VISITCOUNT;
|
||||
case "description":
|
||||
return this.COLUMN_TYPE_DESCRIPTION;
|
||||
case "dateAdded":
|
||||
return this.COLUMN_TYPE_DATEADDED;
|
||||
case "lastModified":
|
||||
|
@ -629,13 +626,6 @@ PlacesTreeView.prototype = {
|
|||
return [this.COLUMN_TYPE_VISITCOUNT, false];
|
||||
case Ci.nsINavHistoryQueryOptions.SORT_BY_VISITCOUNT_DESCENDING:
|
||||
return [this.COLUMN_TYPE_VISITCOUNT, true];
|
||||
case Ci.nsINavHistoryQueryOptions.SORT_BY_ANNOTATION_ASCENDING:
|
||||
if (this._result.sortingAnnotation == PlacesUIUtils.DESCRIPTION_ANNO)
|
||||
return [this.COLUMN_TYPE_DESCRIPTION, false];
|
||||
break;
|
||||
case Ci.nsINavHistoryQueryOptions.SORT_BY_ANNOTATION_DESCENDING:
|
||||
if (this._result.sortingAnnotation == PlacesUIUtils.DESCRIPTION_ANNO)
|
||||
return [this.COLUMN_TYPE_DESCRIPTION, true];
|
||||
case Ci.nsINavHistoryQueryOptions.SORT_BY_DATEADDED_ASCENDING:
|
||||
return [this.COLUMN_TYPE_DATEADDED, false];
|
||||
case Ci.nsINavHistoryQueryOptions.SORT_BY_DATEADDED_DESCENDING:
|
||||
|
@ -924,9 +914,7 @@ PlacesTreeView.prototype = {
|
|||
nodeKeywordChanged(aNode, aNewKeyword) {},
|
||||
|
||||
nodeAnnotationChanged: function PTV_nodeAnnotationChanged(aNode, aAnno) {
|
||||
if (aAnno == PlacesUIUtils.DESCRIPTION_ANNO) {
|
||||
this._invalidateCellValue(aNode, this.COLUMN_TYPE_DESCRIPTION);
|
||||
} else if (aAnno == PlacesUtils.LMANNO_FEEDURI) {
|
||||
if (aAnno == PlacesUtils.LMANNO_FEEDURI) {
|
||||
PlacesUtils.livemarks.getLivemark({ id: aNode.itemId })
|
||||
.then(aLivemark => {
|
||||
this._controller.cacheLivemarkInfo(aNode, aLivemark);
|
||||
|
@ -1576,14 +1564,6 @@ PlacesTreeView.prototype = {
|
|||
return this._convertPRTimeToString(nodeTime);
|
||||
case this.COLUMN_TYPE_VISITCOUNT:
|
||||
return node.accessCount;
|
||||
case this.COLUMN_TYPE_DESCRIPTION:
|
||||
if (node.itemId != -1) {
|
||||
try {
|
||||
return PlacesUtils.annotations.
|
||||
getItemAnnotation(node.itemId, PlacesUIUtils.DESCRIPTION_ANNO);
|
||||
} catch (ex) { /* has no description */ }
|
||||
}
|
||||
return "";
|
||||
case this.COLUMN_TYPE_DATEADDED:
|
||||
if (node.dateAdded)
|
||||
return this._convertPRTimeToString(node.dateAdded);
|
||||
|
@ -1665,7 +1645,6 @@ PlacesTreeView.prototype = {
|
|||
let allowTriState = PlacesUtils.nodeIsFolder(this._result.root);
|
||||
|
||||
let oldSort = this._result.sortingMode;
|
||||
let oldSortingAnnotation = this._result.sortingAnnotation;
|
||||
let newSort;
|
||||
let newSortingAnnotation = "";
|
||||
const NHQO = Ci.nsINavHistoryQueryOptions;
|
||||
|
@ -1709,21 +1688,6 @@ PlacesTreeView.prototype = {
|
|||
else
|
||||
newSort = NHQO.SORT_BY_VISITCOUNT_DESCENDING;
|
||||
|
||||
break;
|
||||
case this.COLUMN_TYPE_DESCRIPTION:
|
||||
if (oldSort == NHQO.SORT_BY_ANNOTATION_ASCENDING &&
|
||||
oldSortingAnnotation == PlacesUIUtils.DESCRIPTION_ANNO) {
|
||||
newSort = NHQO.SORT_BY_ANNOTATION_DESCENDING;
|
||||
newSortingAnnotation = PlacesUIUtils.DESCRIPTION_ANNO;
|
||||
} else if (allowTriState &&
|
||||
oldSort == NHQO.SORT_BY_ANNOTATION_DESCENDING &&
|
||||
oldSortingAnnotation == PlacesUIUtils.DESCRIPTION_ANNO)
|
||||
newSort = NHQO.SORT_BY_NONE;
|
||||
else {
|
||||
newSort = NHQO.SORT_BY_ANNOTATION_ASCENDING;
|
||||
newSortingAnnotation = PlacesUIUtils.DESCRIPTION_ANNO;
|
||||
}
|
||||
|
||||
break;
|
||||
case this.COLUMN_TYPE_DATEADDED:
|
||||
if (oldSort == NHQO.SORT_BY_DATEADDED_ASCENDING)
|
||||
|
|
|
@ -98,12 +98,13 @@ add_task(async function() {
|
|||
"Correctly selected recently bookmarked node.");
|
||||
PO._places.selectNode(childNode);
|
||||
checkInfoBoxSelected();
|
||||
ok(!infoBoxExpanderWrapper.hidden,
|
||||
"Expander button is not hidden for recently bookmarked node.");
|
||||
checkAddInfoFieldsNotCollapsed(PO);
|
||||
ok(infoBoxExpanderWrapper.hidden,
|
||||
"Expander button is hidden for recently bookmarked node.");
|
||||
checkAddInfoFieldsCollapsed(PO);
|
||||
|
||||
// open first bookmark
|
||||
view = ContentTree.view.view;
|
||||
ContentTree.view.focus();
|
||||
ok(view.rowCount > 0, "Bookmark item exists.");
|
||||
view.selection.select(0);
|
||||
checkInfoBoxSelected();
|
||||
|
|
|
@ -16,8 +16,6 @@
|
|||
<!ENTITY editBookmarkOverlay.tags.label "Tags:">
|
||||
<!ENTITY editBookmarkOverlay.tags.accesskey "T">
|
||||
<!ENTITY editBookmarkOverlay.tagsEmptyDesc.label "Separate tags with commas">
|
||||
<!ENTITY editBookmarkOverlay.description.label "Description:">
|
||||
<!ENTITY editBookmarkOverlay.description.accesskey "D">
|
||||
<!ENTITY editBookmarkOverlay.keyword.label "Keyword:">
|
||||
<!ENTITY editBookmarkOverlay.keyword.accesskey "K">
|
||||
<!ENTITY editBookmarkOverlay.tagsExpanderDown.tooltip "Show all tags">
|
||||
|
|
|
@ -78,7 +78,6 @@
|
|||
<!ENTITY col.url.label "Location">
|
||||
<!ENTITY col.mostrecentvisit.label "Most Recent Visit">
|
||||
<!ENTITY col.visitcount.label "Visit Count">
|
||||
<!ENTITY col.description.label "Description">
|
||||
<!ENTITY col.dateadded.label "Added">
|
||||
<!ENTITY col.lastmodified.label "Last Modified">
|
||||
|
||||
|
|
|
@ -36,8 +36,6 @@ view.sortBy.1.date.label=Sort by Most Recent Visit
|
|||
view.sortBy.1.date.accesskey=V
|
||||
view.sortBy.1.visitCount.label=Sort by Visit Count
|
||||
view.sortBy.1.visitCount.accesskey=C
|
||||
view.sortBy.1.description.label=Sort by Description
|
||||
view.sortBy.1.description.accesskey=D
|
||||
view.sortBy.1.dateAdded.label=Sort by Added
|
||||
view.sortBy.1.dateAdded.accesskey=e
|
||||
view.sortBy.1.lastModified.label=Sort by Last Modified
|
||||
|
|
|
@ -54,9 +54,8 @@ var ContentClick = {
|
|||
uri: Services.io.newURI(json.href),
|
||||
title: json.title,
|
||||
loadBookmarkInSidebar: true,
|
||||
hiddenRows: [ "description",
|
||||
"location",
|
||||
"keyword" ]
|
||||
hiddenRows: [ "location",
|
||||
"keyword" ]
|
||||
}, window);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -16,7 +16,6 @@ ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
|||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
E10SUtils: "resource://gre/modules/E10SUtils.jsm",
|
||||
BrowserUtils: "resource://gre/modules/BrowserUtils.jsm",
|
||||
PlacesUIUtils: "resource:///modules/PlacesUIUtils.jsm",
|
||||
findCssSelector: "resource://gre/modules/css-selector.js",
|
||||
SpellCheckHelper: "resource://gre/modules/InlineSpellChecker.jsm",
|
||||
LoginManagerContent: "resource://gre/modules/LoginManagerContent.jsm",
|
||||
|
@ -36,8 +35,7 @@ const messageListeners = {
|
|||
let frame = this.getTarget(aMessage).ownerDocument;
|
||||
|
||||
this.global.sendAsyncMessage("ContextMenu:BookmarkFrame:Result",
|
||||
{ title: frame.title,
|
||||
description: PlacesUIUtils.getDescriptionFromDocument(frame) });
|
||||
{ title: frame.title });
|
||||
},
|
||||
|
||||
"ContextMenu:Canvas:ToBlobURL": function(aMessage) {
|
||||
|
@ -125,7 +123,6 @@ const messageListeners = {
|
|||
(node.form.enctype == "application/x-www-form-urlencoded" ||
|
||||
node.form.enctype == ""));
|
||||
let title = node.ownerDocument.title;
|
||||
let description = PlacesUIUtils.getDescriptionFromDocument(node.ownerDocument);
|
||||
let formData = [];
|
||||
|
||||
function escapeNameValuePair(aName, aValue, aIsFormUrlEncoded) {
|
||||
|
@ -172,7 +169,7 @@ const messageListeners = {
|
|||
}
|
||||
|
||||
this.global.sendAsyncMessage("ContextMenu:SearchFieldBookmarkData:Result",
|
||||
{ spec, title, description, postData, charset });
|
||||
{ spec, title, postData, charset });
|
||||
},
|
||||
|
||||
"ContextMenu:SaveVideoFrameAsImage": function(aMessage) {
|
||||
|
|
|
@ -44,7 +44,7 @@ var Feeds = {
|
|||
|
||||
case "FeedConverter:addLiveBookmark": {
|
||||
let topWindow = BrowserWindowTracker.getTopWindow();
|
||||
topWindow.PlacesCommandHook.addLiveBookmark(data.spec, data.title, data.subtitle)
|
||||
topWindow.PlacesCommandHook.addLiveBookmark(data.spec, data.title)
|
||||
.catch(Cu.reportError);
|
||||
break;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче