--- a/browser/components/places/content/controller.js
+++ b/browser/components/places/content/controller.js
@@ -198,20 +198,16 @@ PlacesController.prototype = {
Ci.nsINavHistoryQueryOptions.SORT_BY_NONE;
case "placesCmd_show:info":
var selectedNode = this._view.selectedNode;
if (selectedNode &&
PlacesUtils.getConcreteItemId(selectedNode) != -1 &&
!PlacesUtils.nodeIsLivemarkItem(selectedNode))
return true;
return false;
- case "placesCmd_reloadMicrosummary":
- var selectedNode = this._view.selectedNode;
- return selectedNode && PlacesUtils.nodeIsBookmark(selectedNode) &&
- PlacesUtils.microsummaries.hasMicrosummary(selectedNode.itemId);
case "placesCmd_reload":
// Livemark containers
var selectedNode = this._view.selectedNode;
return selectedNode && PlacesUtils.nodeIsLivemarkContainer(selectedNode);
case "placesCmd_sortBy:name":
var selectedNode = this._view.selectedNode;
return selectedNode &&
PlacesUtils.nodeIsFolder(selectedNode) &&
@@ -288,19 +284,16 @@ PlacesController.prototype = {
this.showBookmarkPropertiesForSelection();
break;
case "placesCmd_moveBookmarks":
this.moveSelectedBookmarks();
break;
case "placesCmd_reload":
this.reloadSelectedLivemark();
break;
- case "placesCmd_reloadMicrosummary":
- this.reloadSelectedMicrosummary();
- break;
case "placesCmd_sortBy:name":
this.sortFolderByName();
break;
case "placesCmd_createBookmark":
let node = this._view.selectedNode;
PlacesUIUtils.showBookmarkDialog({ action: "add"
, type: "bookmark"
, hiddenRows: [ "description"
@@ -500,19 +493,16 @@ PlacesController.prototype = {
case Ci.nsINavHistoryResultNode.RESULT_TYPE_URI:
case Ci.nsINavHistoryResultNode.RESULT_TYPE_VISIT:
case Ci.nsINavHistoryResultNode.RESULT_TYPE_FULL_VISIT:
nodeData["link"] = true;
uri = PlacesUtils._uri(node.uri);
if (PlacesUtils.nodeIsBookmark(node)) {
nodeData["bookmark"] = true;
PlacesUtils.nodeIsTagQuery(node.parent)
- var mss = PlacesUtils.microsummaries;
- if (mss.hasMicrosummary(node.itemId))
- nodeData["microsummary"] = true;
var parentNode = node.parent;
if (parentNode) {
if (PlacesUtils.nodeIsTagQuery(parentNode))
nodeData["tagChild"] = true;
else if (PlacesUtils.nodeIsLivemarkContainer(parentNode))
nodeData["livemarkChild"] = true;
}
@@ -737,26 +727,16 @@ PlacesController.prototype = {
*/
reloadSelectedLivemark: function PC_reloadSelectedLivemark() {
var selectedNode = this._view.selectedNode;
if (selectedNode && PlacesUtils.nodeIsLivemarkContainer(selectedNode))
PlacesUtils.livemarks.reloadLivemarkFolder(selectedNode.itemId);
},
/**
- * Reload the microsummary associated with the selection
- */
- reloadSelectedMicrosummary: function PC_reloadSelectedMicrosummary() {
- var selectedNode = this._view.selectedNode;
- var mss = PlacesUtils.microsummaries;
- if (mss.hasMicrosummary(selectedNode.itemId))
- mss.refreshMicrosummary(selectedNode.itemId);
- },
-
- /**
* Opens the links in the selected folder, or the selected links in new tabs.
*/
openSelectionInTabs: function PC_openLinksInTabs(aEvent) {
var node = this._view.selectedNode;
if (node && PlacesUtils.nodeIsContainer(node))
PlacesUIUtils.openContainerNodeInTabs(this._view.selectedNode, aEvent, this._view);
else
PlacesUIUtils.openURINodesInTabs(this._view.selectedNodes, aEvent, this._view);
@@ -1569,17 +1549,16 @@ function goUpdatePlacesCommands() {
updatePlacesCommand("placesCmd_open:tab");
updatePlacesCommand("placesCmd_new:folder");
updatePlacesCommand("placesCmd_new:bookmark");
updatePlacesCommand("placesCmd_new:livemark");
updatePlacesCommand("placesCmd_new:separator");
updatePlacesCommand("placesCmd_show:info");
updatePlacesCommand("placesCmd_moveBookmarks");
updatePlacesCommand("placesCmd_reload");
- updatePlacesCommand("placesCmd_reloadMicrosummary");
updatePlacesCommand("placesCmd_sortBy:name");
updatePlacesCommand("placesCmd_cut");
updatePlacesCommand("placesCmd_copy");
updatePlacesCommand("placesCmd_paste");
updatePlacesCommand("placesCmd_delete");
}
function doGetPlacesControllerForCommand(aCommand)
--- a/browser/components/places/content/editBookmarkOverlay.js
+++ b/browser/components/places/content/editBookmarkOverlay.js
@@ -31,30 +31,28 @@
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
const LAST_USED_ANNO = "bookmarkPropertiesDialog/folderLastUsed";
-const STATIC_TITLE_ANNO = "bookmarks/staticTitle";
const MAX_FOLDER_ITEM_IN_MENU_LIST = 5;
var gEditItemOverlay = {
_uri: null,
_itemId: -1,
_itemIds: [],
_uris: [],
_tags: [],
_allTags: [],
_multiEdit: false,
_itemType: -1,
_readOnly: false,
- _microsummaries: null,
_hiddenRows: [],
_observersAdded: false,
_staticFoldersListBuilt: false,
_initialized: false,
// the first field which was edited after this panel was initialized for
// a certain item
_firstEditedField: "",
@@ -362,173 +360,46 @@ var gEditItemOverlay = {
this._folderMenuList.selectedIndex);
// Hide the folders-separator if no folder is annotated as recently-used
this._element("foldersSeparator").hidden = (menupopup.childNodes.length <= 6);
this._folderMenuList.disabled = this._readOnly;
},
QueryInterface: function EIO_QueryInterface(aIID) {
- if (aIID.equals(Ci.nsIMicrosummaryObserver) ||
- aIID.equals(Ci.nsIDOMEventListener) ||
+ if (aIID.equals(Ci.nsIDOMEventListener) ||
aIID.equals(Ci.nsINavBookmarkObserver) ||
aIID.equals(Ci.nsISupports))
return this;
throw Cr.NS_ERROR_NO_INTERFACE;
},
_element: function EIO__element(aID) {
return document.getElementById("editBMPanel_" + aID);
},
- _createMicrosummaryMenuItem:
- function EIO__createMicrosummaryMenuItem(aMicrosummary) {
- var menuItem = document.createElement("menuitem");
-
- // Store a reference to the microsummary in the menu item, so we know
- // which microsummary this menu item represents when it's time to
- // save changes or load its content.
- menuItem.microsummary = aMicrosummary;
-
- // Content may have to be generated asynchronously; we don't necessarily
- // have it now. If we do, great; otherwise, fall back to the generator
- // name, then the URI, and we trigger a microsummary content update. Once
- // the update completes, the microsummary will notify our observer to
- // update the corresponding menu-item.
- // XXX Instead of just showing the generator name or (heaven forbid)
- // its URI when we don't have content, we should tell the user that
- // we're loading the microsummary, perhaps with some throbbing to let
- // her know it is in progress.
- if (aMicrosummary.content)
- menuItem.setAttribute("label", aMicrosummary.content);
- else {
- menuItem.setAttribute("label", aMicrosummary.generator.name ||
- aMicrosummary.generator.uri.spec);
- aMicrosummary.update();
- }
-
- return menuItem;
- },
-
_getItemStaticTitle: function EIO__getItemStaticTitle() {
if (this._itemId == -1)
return PlacesUtils.history.getPageTitle(this._uri);
- const annos = PlacesUtils.annotations;
- if (annos.itemHasAnnotation(this._itemId, STATIC_TITLE_ANNO))
- return annos.getItemAnnotation(this._itemId, STATIC_TITLE_ANNO);
-
return PlacesUtils.bookmarks.getItemTitle(this._itemId);
},
_initNamePicker: function EIO_initNamePicker() {
- var userEnteredNameField = this._element("userEnteredName");
var namePicker = this._element("namePicker");
- var droppable = false;
-
- userEnteredNameField.label = this._getItemStaticTitle();
-
- // clean up old entries
- var menupopup = namePicker.menupopup;
- while (menupopup.childNodes.length > 2)
- menupopup.removeChild(menupopup.lastChild);
-
- if (this._microsummaries) {
- this._microsummaries.removeObserver(this);
- this._microsummaries = null;
- }
-
- var itemToSelect = userEnteredNameField;
- try {
- if (this._itemId != -1 &&
- this._itemType == Ci.nsINavBookmarksService.TYPE_BOOKMARK &&
- !this._readOnly)
- this._microsummaries = PlacesUtils.microsummaries
- .getMicrosummaries(this._uri, -1);
- }
- catch(ex) {
- // getMicrosummaries will throw an exception in at least two cases:
- // 1. the bookmarked URI contains a scheme that the service won't
- // download for security reasons (currently it only handles http,
- // https, and file);
- // 2. the page to which the URI refers isn't HTML or XML (the only two
- // content types the service knows how to summarize).
- this._microsummaries = null;
- }
-
- if (this._microsummaries) {
- var enumerator = this._microsummaries.Enumerate();
-
- if (enumerator.hasMoreElements()) {
- // Show the drop marker if there are microsummaries
- droppable = true;
- while (enumerator.hasMoreElements()) {
- var microsummary = enumerator.getNext()
- .QueryInterface(Ci.nsIMicrosummary);
- var menuItem = this._createMicrosummaryMenuItem(microsummary);
- if (PlacesUtils.microsummaries
- .isMicrosummary(this._itemId, microsummary))
- itemToSelect = menuItem;
-
- menupopup.appendChild(menuItem);
- }
- }
-
- this._microsummaries.addObserver(this);
- }
-
- if (namePicker.selectedItem == itemToSelect)
- namePicker.value = itemToSelect.label;
- else
- namePicker.selectedItem = itemToSelect;
-
- namePicker.setAttribute("droppable", droppable);
+ namePicker.value = this._getItemStaticTitle();
namePicker.readOnly = this._readOnly;
// clear the undo stack
var editor = namePicker.editor;
if (editor)
editor.transactionManager.clear();
},
- // nsIMicrosummaryObserver
- onContentLoaded: function EIO_onContentLoaded(aMicrosummary) {
- var namePicker = this._element("namePicker");
- var childNodes = namePicker.menupopup.childNodes;
-
- // 0: user-entered item; 1: separator
- for (var i = 2; i < childNodes.length; i++) {
- if (childNodes[i].microsummary == aMicrosummary) {
- var newLabel = aMicrosummary.content;
- // XXXmano: non-editable menulist would do this for us, see bug 360220
- // We should fix editable-menulists to set the DOMAttrModified handler
- // as well.
- //
- // Also note the order importance: if the label of the menu-item is
- // set to something different than the menulist's current value,
- // the menulist no longer has selectedItem set
- if (namePicker.selectedItem == childNodes[i])
- namePicker.value = newLabel;
-
- childNodes[i].label = newLabel;
- return;
- }
- }
- },
-
- onElementAppended: function EIO_onElementAppended(aMicrosummary) {
- var namePicker = this._element("namePicker");
- namePicker.menupopup
- .appendChild(this._createMicrosummaryMenuItem(aMicrosummary));
-
- // Make sure the drop-marker is shown
- namePicker.setAttribute("droppable", "true");
- },
-
uninitPanel: function EIO_uninitPanel(aHideCollapsibleElements) {
if (aHideCollapsibleElements) {
// hide the folder tree if it was previously visible
var folderTreeRow = this._element("folderTreeRow");
if (!folderTreeRow.collapsed)
this.toggleFolderTreeVisibility();
// hide the tag selector if it was previously visible
@@ -538,20 +409,17 @@ var gEditItemOverlay = {
}
if (this._observersAdded) {
if (this._itemId != -1 || this._uri || this._multiEdit)
PlacesUtils.bookmarks.removeObserver(this);
this._observersAdded = false;
}
- if (this._microsummaries) {
- this._microsummaries.removeObserver(this);
- this._microsummaries = null;
- }
+
this._itemId = -1;
this._uri = null;
this._uris = [];
this._tags = [];
this._allTags = [];
this._itemIds = [];
this._multiEdit = false;
this._firstEditedField = "";
@@ -668,64 +536,34 @@ var gEditItemOverlay = {
// Ensure the tagsField is in sync, clean it up from empty tags
this._initTextField("tagsField", tags, false);
return true;
}
}
return false;
},
- onNamePickerInput: function EIO_onNamePickerInput() {
- var title = this._element("namePicker").value;
- this._element("userEnteredName").label = title;
- },
-
onNamePickerChange: function EIO_onNamePickerChange() {
if (this._itemId == -1)
return;
var namePicker = this._element("namePicker")
var txns = [];
const ptm = PlacesUIUtils.ptm;
// Here we update either the item title or its cached static title
- var newTitle = this._element("userEnteredName").label;
+ var newTitle = namePicker.value;
if (!newTitle &&
PlacesUtils.bookmarks.getFolderIdForItem(this._itemId) == PlacesUtils.tagsFolderId) {
// We don't allow setting an empty title for a tag, restore the old one.
this._initNamePicker();
}
else if (this._getItemStaticTitle() != newTitle) {
this._mayUpdateFirstEditField("namePicker");
- if (PlacesUtils.microsummaries.hasMicrosummary(this._itemId)) {
- // Note: this implicitly also takes care of the microsummary->static
- // title case, the removeMicorosummary method in the service will set
- // the item-title to the value of this annotation.
- //
- // XXXmano: use a transaction
- PlacesUtils.setAnnotationsForItem(this._itemId,
- [{name: STATIC_TITLE_ANNO,
- value: newTitle}]);
- }
- else
- txns.push(ptm.editItemTitle(this._itemId, newTitle));
- }
-
- var newMicrosummary = namePicker.selectedItem.microsummary;
-
- // Only add a microsummary update to the transaction if the microsummary
- // has actually changed, i.e. the user selected no microsummary, but the
- // bookmark previously had one, or the user selected a microsummary which
- // is not the one the bookmark previously had
- if ((newMicrosummary == null &&
- PlacesUtils.microsummaries.hasMicrosummary(this._itemId)) ||
- (newMicrosummary != null &&
- !PlacesUtils.microsummaries
- .isMicrosummary(this._itemId, newMicrosummary))) {
- txns.push(ptm.editBookmarkMicrosummary(this._itemId, newMicrosummary));
+ txns.push(ptm.editItemTitle(this._itemId, newTitle));
}
var aggregate = ptm.aggregateTransactions("Edit Item Title", txns);
ptm.doTransaction(aggregate);
},
onDescriptionFieldBlur: function EIO_onDescriptionFieldBlur() {
var description = this._element("descriptionField").value;
@@ -1116,40 +954,31 @@ var gEditItemOverlay = {
}
}
return;
}
switch (aProperty) {
case "title":
- if (PlacesUtils.annotations.itemHasAnnotation(this._itemId,
- STATIC_TITLE_ANNO))
- return; // onContentLoaded updates microsummary-items
-
- var userEnteredNameField = this._element("userEnteredName");
- if (userEnteredNameField.value != aValue) {
- userEnteredNameField.value = aValue;
- var namePicker = this._element("namePicker");
- if (namePicker.selectedItem == userEnteredNameField) {
- namePicker.label = aValue;
-
- // clear undo stack
- namePicker.editor.transactionManager.clear();
- }
+ var namePicker = this._element("namePicker");
+ if (namePicker.value != aValue) {
+ namePicker.value = aValue;
+ // clear undo stack
+ namePicker.editor.transactionManager.clear();
}
break;
case "uri":
var locationField = this._element("locationField");
if (locationField.value != aValue) {
this._uri = Cc["@mozilla.org/network/io-service;1"].
getService(Ci.nsIIOService).
newURI(aValue, null, null);
this._initTextField("locationField", this._uri.spec);
- this._initNamePicker(); // for microsummaries
+ this._initNamePicker();
this._initTextField("tagsField",
PlacesUtils.tagging
.getTagsForURI(this._uri).join(", "),
false);
this._rebuildTagsSelectorList();
}
break;
case "keyword":
--- a/browser/components/places/content/editBookmarkOverlay.xul
+++ b/browser/components/places/content/editBookmarkOverlay.xul
@@ -60,32 +60,19 @@
</columns>
<rows id="editBMPanel_rows">
<row align="center" id="editBMPanel_nameRow">
<label value="&editBookmarkOverlay.name.label;"
class="editBMPanel_rowLabel"
accesskey="&editBookmarkOverlay.name.accesskey;"
control="editBMPanel_namePicker"
observes="paneElementsBroadcaster"/>
- <menulist id="editBMPanel_namePicker"
- flex="1"
- editable="true"
- droppable="false"
- oninput="gEditItemOverlay.onNamePickerInput();"
- onblur="gEditItemOverlay.onNamePickerChange();"
- oncommand="gEditItemOverlay.onNamePickerChange();"
- observes="paneElementsBroadcaster">
- <menupopup>
- <menuitem id="editBMPanel_userEnteredName"/>
- <menuitem disabled="true">
- <menuseparator flex="1"/>
- <label value="&editBookmarkOverlay.liveTitlesSeparator.label;"/>
- </menuitem>
- </menupopup>
- </menulist>
+ <textbox id="editBMPanel_namePicker"
+ onblur="gEditItemOverlay.onNamePickerChange();"
+ observes="paneElementsBroadcaster"/>
</row>
<row align="center" id="editBMPanel_locationRow">
<label value="&editBookmarkOverlay.location.label;"
class="editBMPanel_rowLabel"
accesskey="&editBookmarkOverlay.location.accesskey;"
control="editBMPanel_locationField"
observes="paneElementsBroadcaster"/>
--- a/browser/components/places/content/placesOverlay.xul
+++ b/browser/components/places/content/placesOverlay.xul
@@ -96,18 +96,16 @@
oncommand="goDoPlacesCommand('placesCmd_new:separator');"/>
<command id="placesCmd_show:info"
oncommand="goDoPlacesCommand('placesCmd_show:info');"/>
<command id="placesCmd_rename"
oncommand="goDoPlacesCommand('placesCmd_show:info');"
observes="placesCmd_show:info"/>
<command id="placesCmd_reload"
oncommand="goDoPlacesCommand('placesCmd_reload');"/>
- <command id="placesCmd_reloadMicrosummary"
- oncommand="goDoPlacesCommand('placesCmd_reloadMicrosummary');"/>
<command id="placesCmd_sortBy:name"
oncommand="goDoPlacesCommand('placesCmd_sortBy:name');"/>
<command id="placesCmd_moveBookmarks"
oncommand="goDoPlacesCommand('placesCmd_moveBookmarks');"/>
<command id="placesCmd_deleteDataHost"
oncommand="goDoPlacesCommand('placesCmd_deleteDataHost');"/>
<command id="placesCmd_createBookmark"
oncommand="goDoPlacesCommand('placesCmd_createBookmark');"/>
@@ -234,22 +232,16 @@
forcehideselection="bookmark"/>
<menuseparator id="placesContext_deleteSeparator"/>
<menuitem id="placesContext_reload"
command="placesCmd_reload"
label="&cmd.reloadLivebookmark.label;"
accesskey="&cmd.reloadLivebookmark.accesskey;"
closemenu="single"
selection="livemark/feedURI"/>
- <menuitem id="placesContext_reloadMicrosummary"
- command="placesCmd_reloadMicrosummary"
- label="&cmd.reloadMicrosummary.label;"
- accesskey="&cmd.reloadMicrosummary.accesskey;"
- closemenu="single"
- selection="microsummary"/>
<menuitem id="placesContext_sortBy:name"
command="placesCmd_sortBy:name"
label="&cmd.sortby_name.label;"
accesskey="&cmd.context_sortby_name.accesskey;"
closemenu="single"
selection="folder"/>
<menuseparator id="placesContext_sortSeparator"/>
<menuitem id="placesContext_show:info"
--- a/browser/components/places/src/PlacesUIUtils.jsm
+++ b/browser/components/places/src/PlacesUIUtils.jsm
@@ -1319,19 +1319,16 @@ XPCOMUtils.defineLazyGetter(PlacesUIUtil
new PlacesEditBookmarkPostDataTransaction(aItemId, aPostData),
editLivemarkSiteURI: function(aLivemarkId, aSiteURI)
new PlacesEditLivemarkSiteURITransaction(aLivemarkId, aSiteURI),
editLivemarkFeedURI: function(aLivemarkId, aFeedURI)
new PlacesEditLivemarkFeedURITransaction(aLivemarkId, aFeedURI),
- editBookmarkMicrosummary: function(aItemId, aNewMicrosummary)
- new PlacesEditBookmarkMicrosummaryTransaction(aItemId, aNewMicrosummary),
-
editItemDateAdded: function(aItemId, aNewDateAdded)
new PlacesEditItemDateAddedTransaction(aItemId, aNewDateAdded),
editItemLastModified: function(aItemId, aNewLastModified)
new PlacesEditItemLastModifiedTransaction(aItemId, aNewLastModified),
sortFolderByName: function(aFolderId)
new PlacesSortFolderByNameTransaction(aFolderId),
--- a/browser/components/places/tests/browser/browser_bookmarksProperties.js
+++ b/browser/components/places/tests/browser/browser_bookmarksProperties.js
@@ -308,28 +308,26 @@ gTests.push({
tree.selectItems([itemId]);
this.selectedNode = tree.selectedNode;
},
run: function() {
this._itemId = this.window.gEditItemOverlay._itemId;
// Change folder name
var namePicker = this.window.document.getElementById("editBMPanel_namePicker");
- var userEnteredName = this.window.document.getElementById("editBMPanel_userEnteredName");
var self = this;
this.window.addEventListener("unload", function(event) {
self.window.removeEventListener("unload", arguments.callee, false);
executeSoon(function () {
self.finish();
});
}, false);
namePicker.value = "n";
- userEnteredName.label = "n";
info("About to focus the namePicker field");
namePicker.focus();
EventUtils.synthesizeKey("VK_RETURN", {}, this.window);
},
finish: function() {
// Window is already closed.
toggleSidebar(this.sidebar, false);
--- a/browser/components/places/tests/unit/bookmarks.preplaces.html
+++ b/browser/components/places/tests/unit/bookmarks.preplaces.html
@@ -14,20 +14,16 @@
<DT><A HREF="http://en-US.www.mozilla.com/en-US/firefox/community/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$42iCK1">Get Involved</A>
<DT><A HREF="http://en-US.www.mozilla.com/en-US/about/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$52iCK1">About Us</A>
</DL><p>
<DT><H3 ADD_DATE="1177541020" LAST_MODIFIED="1177541050" ID="rdf:#$74Gpx2">test</H3>
<DD>folder test comment
<DL><p>
<DT><A HREF="http://test/post" ADD_DATE="1177375336" LAST_MODIFIED="1177375423" SHORTCUTURL="test" WEB_PANEL="true" POST_DATA="hidden1%3Dbar&text1%3D%25s" LAST_CHARSET="ISO-8859-1" ID="rdf:#$pYFe7">test post keyword</A>
<DD>item description
-<!-- XXX Bug 380468
- <DT><A HREF="http://test/micsum" ADD_DATE="1177375377" LAST_MODIFIED="1177541023" LAST_CHARSET="ISO-8859-1" MICSUM_GEN_URI="urn:source:http://dietrich.ganx4.com/mozilla/test-microsummary.xml" MICSUM_EXPIRATION="1177542823620" GENERATED_TITLE="id:462fd9a2e5b66" ID="rdf:#$qYFe7">test microsummary</A>
-<DD>test microsummary
--->
</DL>
<DT><H3 UNFILED_BOOKMARKS_FOLDER="true">Unsorted Bookmarks</H3>
<DL><p>
<DT><A HREF="http://example.tld">Example.tld</A>
</DL><p>
<DT><H3 LAST_MODIFIED="1177541040" PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$FvPhC3">Bookmarks Toolbar Folder</H3>
<DD>Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar
<DL><p>
--- a/browser/components/places/tests/unit/test_384370.js
+++ b/browser/components/places/tests/unit/test_384370.js
@@ -218,34 +218,16 @@ function testCanonicalBookmarks() {
// description
do_check_true(PlacesUtils.annotations.itemHasAnnotation(testBookmark1.itemId,
DESCRIPTION_ANNO));
do_check_eq("item description",
PlacesUtils.annotations.getItemAnnotation(testBookmark1.itemId,
DESCRIPTION_ANNO));
- /*
- // XXX Bug 380468
- // test bookmark 2
- var testBookmark2 = testFolder.getChild(1);
- // url
- do_check_eq("http://test/micsum", testBookmark2.uri);
- // title
- do_check_eq("test microsummary", testBookmark2.title);
- // check that it's a microsummary
- var micsum = mssvc.getMicrosummary(testBookmark2.itemId);
- if (!micsum)
- do_throw("Could not import microsummary");
- // check generator uri
- var generator = micsum.generator;
- do_check_eq("urn:source:http://dietrich.ganx4.com/mozilla/test-microsummary.xml", generator.uri.spec);
- // expiration and generated title can change, so don't test them
- */
-
// clean up
testFolder.containerOpen = false;
rootNode.containerOpen = false;
}
function testToolbarFolder() {
var query = PlacesUtils.history.getNewQuery();
query.setFolders([PlacesUtils.bookmarks.toolbarFolder], 1);
--- a/browser/components/places/tests/unit/test_bookmarks_html.js
+++ b/browser/components/places/tests/unit/test_bookmarks_html.js
@@ -66,23 +66,16 @@ try {
// Get favicon service
try {
var iconsvc = Cc["@mozilla.org/browser/favicon-service;1"].getService(Ci.nsIFaviconService);
} catch(ex) {
do_throw("Could not get favicon service\n");
}
-// Get microsummary service
-try {
- var mssvc = Cc["@mozilla.org/microsummary/service;1"].getService(Ci.nsIMicrosummaryService);
-} catch(ex) {
- do_throw("Could not get microsummary service\n");
-}
-
// Get io service
try {
var iosvc = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
} catch (ex) {
do_throw("Could not get io service\n");
}
const DESCRIPTION_ANNO = "bookmarkProperties/description";
@@ -261,33 +254,16 @@ function testCanonicalBookmarks(aFolder)
// description
do_check_true(annosvc.itemHasAnnotation(testBookmark1.itemId,
DESCRIPTION_ANNO));
do_check_eq("item description",
annosvc.getItemAnnotation(testBookmark1.itemId,
DESCRIPTION_ANNO));
- /*
- // XXX Bug 380468
- // test bookmark 2
- var testBookmark2 = testFolder.getChild(1);
- // url
- do_check_eq("http://test/micsum", testBookmark2.uri);
- // title
- do_check_eq("test microsummary", testBookmark2.title);
- // check that it's a microsummary
- var micsum = mssvc.getMicrosummary(testBookmark2.itemId);
- if (!micsum)
- do_throw("Could not import microsummary");
- // check generator uri
- var generator = micsum.generator;
- do_check_eq("urn:source:http://dietrich.ganx4.com/mozilla/test-microsummary.xml", generator.uri.spec);
- // expiration and generated title can change, so don't test them
- */
// clean up
testFolder.containerOpen = false;
rootNode.containerOpen = false;
query.setFolders([bmsvc.toolbarFolder], 1);
result = histsvc.executeQuery(query, histsvc.getNewQueryOptions());
// bookmarks toolbar
var toolbar = result.root;
--- a/browser/components/places/tests/unit/test_placesTxn.js
+++ b/browser/components/places/tests/unit/test_placesTxn.js
@@ -35,17 +35,16 @@
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var bmsvc = PlacesUtils.bookmarks;
var lmsvc = PlacesUtils.livemarks;
-var mss = PlacesUtils.microsummaries;
var ptSvc = PlacesUIUtils.ptm;
var tagssvc = PlacesUtils.tagging;
var annosvc = PlacesUtils.annotations;
// create and add bookmarks observer
var observer = {
onBeginUpdateBatch: function() {
this._beginUpdateBatch = true;
@@ -575,32 +574,16 @@ function run_test() {
do_check_eq(2, bmsvc.getItemIndex(b1));
do_check_eq(1, bmsvc.getItemIndex(b2));
do_check_eq(0, bmsvc.getItemIndex(b3));
txn17.undoTransaction();
do_check_eq(0, bmsvc.getItemIndex(b1));
do_check_eq(1, bmsvc.getItemIndex(b2));
do_check_eq(2, bmsvc.getItemIndex(b3));
- // editBookmarkMicrosummary
- var tmpMs = mss.createMicrosummary(uri("http://testmicro.com"),
- uri("http://dietrich.ganx4.com/mozilla/test-microsummary.xml"));
- ptSvc.doTransaction(
- ptSvc.createItem(uri("http://dietrich.ganx4.com/mozilla/test-microsummary-content.php"),
- root, -1, "micro test", null, null, null));
- var bId = (bmsvc.getBookmarkIdsForURI(uri("http://dietrich.ganx4.com/mozilla/test-microsummary-content.php")))[0];
- do_check_true(!mss.hasMicrosummary(bId));
- var txn18 = ptSvc.editBookmarkMicrosummary(bId, tmpMs);
- txn18.doTransaction();
- do_check_eq(observer._itemChangedId, bId);
- do_check_true(mss.hasMicrosummary(bId));
- txn18.undoTransaction();
- do_check_eq(observer._itemChangedId, bId);
- do_check_true(!mss.hasMicrosummary(bId));
-
// Testing edit Post Data
const POST_DATA_ANNO = "bookmarkProperties/POSTData";
var postData = "foo";
var postDataURI = uri("http://foo.com");
ptSvc.doTransaction(
ptSvc.createItem(postDataURI, root, -1, "postdata test", null, null, null));
var postDataId = (bmsvc.getBookmarkIdsForURI(postDataURI))[0];
var postDataTxn = ptSvc.editBookmarkPostData(postDataId, postData);
--- a/browser/locales/en-US/chrome/browser/places/editBookmarkOverlay.dtd
+++ b/browser/locales/en-US/chrome/browser/places/editBookmarkOverlay.dtd
@@ -1,17 +1,16 @@
<!ENTITY editBookmarkOverlay.name.label "Name:">
<!ENTITY editBookmarkOverlay.name.accesskey "N">
<!ENTITY editBookmarkOverlay.location.label "Location:">
<!ENTITY editBookmarkOverlay.location.accesskey "L">
<!ENTITY editBookmarkOverlay.feedLocation.label "Feed Location:">
<!ENTITY editBookmarkOverlay.feedLocation.accesskey "F">
<!ENTITY editBookmarkOverlay.siteLocation.label "Site Location:">
<!ENTITY editBookmarkOverlay.siteLocation.accesskey "S">
-<!ENTITY editBookmarkOverlay.liveTitlesSeparator.label "Live Titles">
<!ENTITY editBookmarkOverlay.folder.label "Folder:">
<!ENTITY editBookmarkOverlay.foldersExpanderDown.tooltip "Show all the bookmarks folders">
<!ENTITY editBookmarkOverlay.expanderUp.tooltip "Hide">
<!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">
--- a/browser/locales/en-US/chrome/browser/places/places.dtd
+++ b/browser/locales/en-US/chrome/browser/places/places.dtd
@@ -71,18 +71,16 @@
<!ENTITY cmd.new_folder.label "New Folder…">
<!ENTITY cmd.new_folder.accesskey "o">
<!ENTITY cmd.context_new_folder.accesskey "F">
<!ENTITY cmd.new_separator.label "New Separator">
<!ENTITY cmd.new_separator.accesskey "S">
<!ENTITY cmd.reloadLivebookmark.label "Reload Live Bookmark">
<!ENTITY cmd.reloadLivebookmark.accesskey "R">
-<!ENTITY cmd.reloadMicrosummary.label "Reload Live Title">
-<!ENTITY cmd.reloadMicrosummary.accesskey "R">
<!ENTITY cmd.moveBookmarks.label "Move…">
<!ENTITY cmd.moveBookmarks.accesskey "M">
<!ENTITY col.name.label "Name">
<!ENTITY col.tags.label "Tags">
<!ENTITY col.url.label "Location">
<!ENTITY col.lastvisit.label "Visit Date">
--- a/browser/themes/gnomestripe/browser/browser.css
+++ b/browser/themes/gnomestripe/browser/browser.css
@@ -400,17 +400,16 @@ menuitem:not([type]):not(.menuitem-toolt
#menu_stop[disabled],
#context-stop[disabled] {
list-style-image: url("moz-icon://stock/gtk-stop?size=menu&state=disabled");
}
#menu_reload,
#placesContext_reload,
-#placesContext_reloadMicrosummary,
#context-reload,
#context-reloadframe {
list-style-image: url("moz-icon://stock/gtk-refresh?size=menu");
}
#menu_reload[disabled],
#context-reload[disabled] {
list-style-image: url("moz-icon://stock/gtk-refresh?size=menu&state=disabled");
--- a/browser/themes/gnomestripe/browser/places/editBookmarkOverlay.css
+++ b/browser/themes/gnomestripe/browser/places/editBookmarkOverlay.css
@@ -72,46 +72,16 @@
min-width: 23em;
}
#editBMPanel_folderTree {
margin-top: 2px;
margin-bottom: 2px;
}
-/**** name picker ****/
-
-/* Make the microsummary picker look like a regular textbox instead of
- * an editable menulist when no microsummaries are available.
- */
-#editBMPanel_namePicker[droppable="false"] {
- /* These rules come from the textbox element in textbox.css. */
- -moz-appearance: textfield; /* Normal editable menulists set this to "none". */
- cursor: text;
- border: 2px solid;
- -moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
- -moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
- -moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
- -moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
- padding: 2px 2px 3px;
- -moz-padding-start: 4px;
- background-color: -moz-Field;
- color: -moz-FieldText;
-}
-
-#editBMPanel_namePicker[droppable="false"] > .menulist-editable-box {
- -moz-appearance: none; /* Normal editable menulists set this to "menulist-textfield". */
- padding: 0;
-}
-
-#editBMPanel_namePicker[droppable="false"] > .menulist-dropmarker,
-#editBMPanel_namePicker[droppable="false"] > menupopup {
- display: none;
-}
-
/* Hide the value column of the tag autocomplete popup
* leaving only the comment column visible. This is
* so that only the tag being edited is shown in the
* popup.
*/
#editBMPanel_tagsField #treecolAutoCompleteValue {
visibility: collapse;
}
--- a/browser/themes/gnomestripe/browser/places/places.css
+++ b/browser/themes/gnomestripe/browser/places/places.css
@@ -193,12 +193,11 @@ menuitem[command="placesCmd_open:tab"] {
-moz-image-region: rect(0px 64px 16px 48px);
}
#placesContext_show\:info,
menuitem[command="placesCmd_show:info"] {
list-style-image: url("moz-icon://stock/gtk-properties?size=menu");
}
-#placesContext_reload,
-#placesContext_reloadMicrosummary {
+#placesContext_reload {
list-style-image: url("moz-icon://stock/gtk-refresh?size=menu");
}
--- a/browser/themes/pinstripe/browser/browser.css
+++ b/browser/themes/pinstripe/browser/browser.css
@@ -1362,51 +1362,39 @@ richlistitem[type~="action"][actiontype=
#editBookmarkPanel .expander-up {
list-style-image: url("chrome://browser/skin/hud-style-expander-open.png");
}
#editBookmarkPanel .expander-down {
list-style-image: url("chrome://browser/skin/hud-style-expander-closed.png");
}
-/**** name picker ****/
-
-#editBMPanel_tagsField,
-#editBMPanel_namePicker[droppable="false"] > .menulist-editable-box {
+#editBMPanel_tagsField {
-moz-appearance: none !important;
-moz-padding-start: 3px !important;
margin: 2px !important;
border: 1px solid rgba(0,0,0,.5) !important;
box-shadow: inset 0 1px 0 rgba(0,0,0,.3);
background-color: #666 !important;
background-clip: padding-box;
background-origin: padding-box;
color: #fff !important;
min-height: 20px;
}
-#editBMPanel_namePicker[droppable="false"] > .menulist-editable-box > html|*.menulist-editable-input {
- color: inherit;
-}
-
#editBMPanel_tagsField > .autocomplete-textbox-container > .textbox-input-box > html|*.textbox-input:-moz-placeholder {
color: #bbb;
}
-#editBMPanel_tagsField[focused="true"],
-#editBMPanel_namePicker[droppable="false"][focused="true"] > .menulist-editable-box {
+#editBMPanel_tagsField[focused="true"] {
@hudButtonFocused@
background-color: #eee !important;
color: #000 !important;
}
-#editBMPanel_namePicker[droppable="false"][disabled="true"] > .menulist-editable-box {
- color: #fff !important;
-}
-
.editBMPanel_rowLabel {
text-align: end;
}
/* ----- SIDEBAR ELEMENTS ----- */
#sidebar,
sidebarheader {
--- a/browser/themes/pinstripe/browser/places/editBookmarkOverlay.css
+++ b/browser/themes/pinstripe/browser/places/editBookmarkOverlay.css
@@ -87,80 +87,16 @@
#editBookmarkPanelContent {
min-width: 23em;
}
#editBMPanel_folderTree {
margin: 6px 4px 0 4px;
}
-/**** name picker ****/
-
-/* Make the microsummary picker look like a regular textbox instead of
- * an editable menulist when no microsummaries are available.
- */
-#editBMPanel_namePicker[droppable="false"] {
- -moz-appearance: none;
- margin: 0px;
- border: none;
- padding: 0px;
- height: auto !important;
-}
-
-#editBMPanel_namePicker[droppable="false"] > .menulist-dropmarker {
- display: none;
-}
-
-#editBMPanel_namePicker[droppable="false"] > .menulist-editable-box {
- /* These rules are duplicates of the rules for the textbox element
- * in textbox.css and should track changes in that file.
- */
- -moz-appearance: textfield;
- cursor: text;
- margin: 4px 4px;
- border: 3px solid;
- -moz-border-top-colors: transparent #888888 #000000;
- -moz-border-right-colors: transparent #FFFFFF #000000;
- -moz-border-bottom-colors: transparent #FFFFFF #000000;
- -moz-border-left-colors: transparent #888888 #000000;
- border-top-right-radius: 2px;
- border-bottom-left-radius: 2px;
- padding: 0;
- background-color: -moz-Field;
- color: -moz-FieldText;
-}
-
-#editBMPanel_namePicker[droppable="false"][disabled="true"] > .menulist-editable-box {
- cursor: default;
- -moz-border-top-colors: transparent ThreeDShadow -moz-Dialog;
- -moz-border-right-colors: transparent ThreeDShadow -moz-Dialog;
- -moz-border-bottom-colors: transparent ThreeDShadow -moz-Dialog;
- -moz-border-left-colors: transparent ThreeDShadow -moz-Dialog;
- color: GrayText;
-}
-
-#editBMPanel_namePicker[droppable="false"] > .menulist-editable-box > html|*.textbox-input {
- margin: 0px !important;
- border: none !important;
- padding: 0px !important;
- background-color: inherit;
- color: inherit;
- font: inherit;
-}
-
-/* Hide the drop marker and the popup. */
-
-#editBMPanel_namePicker[droppable="false"] > .menulist-dropmarker {
- display: none;
-}
-
-#editBMPanel_namePicker[droppable="false"] > menupopup {
- display: none;
-}
-
/* Hide the value column of the tag autocomplete popup
* leaving only the comment column visible. This is
* so that only the tag being edited is shown in the
* popup.
*/
#editBMPanel_tagsField #treecolAutoCompleteValue {
visibility: collapse;
}
--- a/browser/themes/winstripe/browser/places/editBookmarkOverlay.css
+++ b/browser/themes/winstripe/browser/places/editBookmarkOverlay.css
@@ -77,45 +77,16 @@
min-width: 23em;
}
#editBMPanel_folderTree {
margin-top: 2px;
margin-bottom: 2px;
}
-/**** name picker ****/
-
-/* Make the microsummary picker look like a regular textbox instead of
- * an editable menulist when no microsummaries are available.
- */
-#editBMPanel_namePicker[droppable="false"] {
- /* These rules come from the textbox element in textbox.css. */
- -moz-appearance: textfield; /* Normal editable menulists set this to "menulist". */
- cursor: text;
- border: 2px solid;
- -moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
- -moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
- -moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
- -moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
- padding: 2px 2px 3px;
- -moz-padding-start: 4px;
- background-color: -moz-Field;
- color: -moz-FieldText;
-}
-
-#editBMPanel_namePicker[droppable="false"] > .menulist-editable-box {
- padding: 0;
-}
-
-#editBMPanel_namePicker[droppable="false"] > .menulist-dropmarker,
-#editBMPanel_namePicker[droppable="false"] > menupopup {
- display: none;
-}
-
/* Hide the value column of the tag autocomplete popup
* leaving only the comment column visible. This is
* so that only the tag being edited is shown in the
* popup.
*/
#editBMPanel_tagsField #treecolAutoCompleteValue {
visibility: collapse;
}
--- a/toolkit/components/places/Makefile.in
+++ b/toolkit/components/places/Makefile.in
@@ -59,17 +59,16 @@ IS_COMPONENT = 1
XPIDLSRCS += \
mozIAsyncHistory.idl \
mozIPlacesAutoComplete.idl \
nsIAnnotationService.idl \
nsIBrowserHistory.idl \
nsIDynamicContainer.idl \
nsIFaviconService.idl \
nsILivemarkService.idl \
- nsIMicrosummaryService.idl \
nsINavBookmarksService.idl \
nsIPlacesImportExportService.idl \
nsITaggingService.idl \
nsPIPlacesDatabase.idl \
nsPIPlacesHistoryListenersNotifier.idl \
$(NULL)
EXPORTS_NAMESPACES = mozilla/places
@@ -115,17 +114,16 @@ LOCAL_INCLUDES += -I$(srcdir)/../build
# This is the default value. Must be in sync with the one defined in SQLite.
DEFINES += -DSQLITE_DEFAULT_PAGE_SIZE=32768
EXTRA_COMPONENTS = \
toolkitplaces.manifest \
nsLivemarkService.js \
nsTaggingService.js \
nsPlacesExpiration.js \
- nsMicrosummaryService.js \
PlacesCategoriesStarter.js \
$(NULL)
ifdef MOZ_XUL
EXTRA_COMPONENTS += nsPlacesAutoComplete.js nsPlacesAutoComplete.manifest
endif
EXTRA_JS_MODULES = \
--- a/toolkit/components/places/PlacesUtils.jsm
+++ b/toolkit/components/places/PlacesUtils.jsm
@@ -52,17 +52,16 @@ const EXPORTED_SYMBOLS = [
, "PlacesEditItemTitleTransaction"
, "PlacesEditBookmarkURITransaction"
, "PlacesSetItemAnnotationTransaction"
, "PlacesSetPageAnnotationTransaction"
, "PlacesEditBookmarkKeywordTransaction"
, "PlacesEditBookmarkPostDataTransaction"
, "PlacesEditLivemarkSiteURITransaction"
, "PlacesEditLivemarkFeedURITransaction"
-, "PlacesEditBookmarkMicrosummaryTransaction"
, "PlacesEditItemDateAddedTransaction"
, "PlacesEditItemLastModifiedTransaction"
, "PlacesSortFolderByNameTransaction"
, "PlacesTagURITransaction"
, "PlacesUntagURITransaction"
];
const Ci = Components.interfaces;
@@ -2169,20 +2168,16 @@ XPCOMUtils.defineLazyServiceGetter(Place
XPCOMUtils.defineLazyServiceGetter(PlacesUtils, "tagging",
"@mozilla.org/browser/tagging-service;1",
"nsITaggingService");
XPCOMUtils.defineLazyServiceGetter(PlacesUtils, "livemarks",
"@mozilla.org/browser/livemark-service;2",
"nsILivemarkService");
-XPCOMUtils.defineLazyServiceGetter(PlacesUtils, "microsummaries",
- "@mozilla.org/microsummary/service;1",
- "nsIMicrosummaryService");
-
XPCOMUtils.defineLazyGetter(PlacesUtils, "transactionManager", function() {
let tm = Cc["@mozilla.org/transactionmanager;1"].
getService(Ci.nsITransactionManager);
tm.AddListener(PlacesUtils);
this.registerShutdownFunction(function () {
// Clear all references to local transactions in the transaction manager,
// this prevents from leaking it.
this.transactionManager.RemoveListener(this);
@@ -3118,57 +3113,16 @@ PlacesEditLivemarkFeedURITransaction.pro
{
PlacesUtils.livemarks.setFeedURI(this._folderId, this._oldURI);
PlacesUtils.livemarks.reloadLivemarkFolder(this._folderId);
}
};
/**
- * Transaction for editing a bookmark's microsummary.
- *
- * @param aBookmarkId
- * id of the bookmark to edit
- * @param aNewMicrosummary
- * new microsummary for the bookmark
- * @returns nsITransaction object
- */
-
-function PlacesEditBookmarkMicrosummaryTransaction(aItemId, newMicrosummary)
-{
- this.id = aItemId;
- this._mss = Cc["@mozilla.org/microsummary/service;1"].
- getService(Ci.nsIMicrosummaryService);
- this._newMicrosummary = newMicrosummary;
- this._oldMicrosummary = null;
-}
-
-PlacesEditBookmarkMicrosummaryTransaction.prototype = {
- __proto__: BaseTransaction.prototype,
-
- doTransaction: function EBMTXN_doTransaction()
- {
- this._oldMicrosummary = this._mss.getMicrosummary(this.id);
- if (this._newMicrosummary)
- this._mss.setMicrosummary(this.id, this._newMicrosummary);
- else
- this._mss.removeMicrosummary(this.id);
- },
-
- undoTransaction: function EBMTXN_undoTransaction()
- {
- if (this._oldMicrosummary)
- this._mss.setMicrosummary(this.id, this._oldMicrosummary);
- else
- this._mss.removeMicrosummary(this.id);
- }
-};
-
-
-/**
* Transaction for editing an item's date added property.
*
* @param aItemId
* id of the item to edit
* @param aNewDateAdded
* new date added for the item
* @returns nsITransaction object
*/
--- a/toolkit/components/places/nsPlacesImportExportService.cpp
+++ b/toolkit/components/places/nsPlacesImportExportService.cpp
@@ -125,17 +125,16 @@ static NS_DEFINE_CID(kParserCID, NS_PARS
#define KEY_MICSUM_GEN_URI_LOWER "micsum_gen_uri"
#define KEY_DATE_ADDED_LOWER "add_date"
#define KEY_LAST_MODIFIED_LOWER "last_modified"
#define KEY_GENERATED_TITLE_LOWER "generated_title"
#define LOAD_IN_SIDEBAR_ANNO NS_LITERAL_CSTRING("bookmarkProperties/loadInSidebar")
#define DESCRIPTION_ANNO NS_LITERAL_CSTRING("bookmarkProperties/description")
#define POST_DATA_ANNO NS_LITERAL_CSTRING("bookmarkProperties/POSTData")
-#define STATIC_TITLE_ANNO NS_LITERAL_CSTRING("bookmarks/staticTitle")
#define BOOKMARKS_MENU_ICON_URI "chrome://browser/skin/places/bookmarksMenu.png"
// The RESTORE_*_NSIOBSERVER_TOPIC #defines should match the constants of the
// same names in toolkit/components/places/src/utils.js
#define RESTORE_BEGIN_NSIOBSERVER_TOPIC "bookmarks-restore-begin"
#define RESTORE_SUCCESS_NSIOBSERVER_TOPIC "bookmarks-restore-success"
#define RESTORE_FAILED_NSIOBSERVER_TOPIC "bookmarks-restore-failed"
@@ -220,23 +219,16 @@ public:
// This is cleared whenever we hit a <h3>, so that we know NOT to save this
// with a bookmark, but to keep it until
nsCOMPtr<nsIURI> mPreviousLink;
// contains the URL of the previous livemark, so that when the link ends,
// and the livemark title is known, we can create it.
nsCOMPtr<nsIURI> mPreviousFeed;
- // contains the text content of the previous microsummary, so that when the
- // link ends, we can replace the bookmark's title with it and store the user's
- // title in the staticTitle annotation.
- nsString mPreviousMicrosummaryText;
-
- nsCOMPtr<nsIMicrosummary> mPreviousMicrosummary;
-
void ConsumeHeading(nsAString* aHeading, ContainerType* aContainerType)
{
*aHeading = mPreviousText;
*aContainerType = mLastContainerType;
mPreviousText.Truncate();
}
// Contains the id of an imported, or newly created bookmark.
@@ -338,18 +330,16 @@ nsPlacesImportExportService::Init()
mFaviconService = do_GetService(NS_FAVICONSERVICE_CONTRACTID);
NS_ENSURE_TRUE(mFaviconService, NS_ERROR_OUT_OF_MEMORY);
mAnnotationService = do_GetService(NS_ANNOTATIONSERVICE_CONTRACTID);
NS_ENSURE_TRUE(mAnnotationService, NS_ERROR_OUT_OF_MEMORY);
mBookmarksService = do_GetService(NS_NAVBOOKMARKSSERVICE_CONTRACTID);
NS_ENSURE_TRUE(mBookmarksService, NS_ERROR_OUT_OF_MEMORY);
mLivemarkService = do_GetService(NS_LIVEMARKSERVICE_CONTRACTID);
NS_ENSURE_TRUE(mLivemarkService, NS_ERROR_OUT_OF_MEMORY);
- mMicrosummaryService = do_GetService("@mozilla.org/microsummary/service;1");
- NS_ENSURE_TRUE(mMicrosummaryService, NS_ERROR_OUT_OF_MEMORY);
return NS_OK;
}
/**
* The content sink stuff is based loosely on nsIHTMLContentSink.
*/
class BookmarkContentSink : public nsIHTMLContentSink
{
@@ -389,17 +379,16 @@ public:
NS_IMETHOD NotifyTagObservers(nsIParserNode* aNode) { return NS_OK; }
NS_IMETHOD_(PRBool) IsFormOnStack() { return PR_FALSE; }
protected:
nsCOMPtr<nsINavBookmarksService> mBookmarksService;
nsCOMPtr<nsINavHistoryService> mHistoryService;
nsCOMPtr<nsIAnnotationService> mAnnotationService;
nsCOMPtr<nsILivemarkService> mLivemarkService;
- nsCOMPtr<nsIMicrosummaryService> mMicrosummaryService;
// If set, we will move root items to from their existing position
// in the hierarchy, to where we find them in the bookmarks file
// being imported. This should be set when we are loading
// the default places html file, and should be unset when doing
// normal imports so that root folders will not get moved when
// importing bookmarks.html files.
PRBool mAllowRootChanges;
@@ -472,18 +461,16 @@ BookmarkContentSink::Init(PRBool aAllowR
mBookmarksService = do_GetService(NS_NAVBOOKMARKSSERVICE_CONTRACTID);
NS_ENSURE_TRUE(mBookmarksService, NS_ERROR_OUT_OF_MEMORY);
mHistoryService = do_GetService(NS_NAVHISTORYSERVICE_CONTRACTID);
NS_ENSURE_TRUE(mHistoryService, NS_ERROR_OUT_OF_MEMORY);
mAnnotationService = do_GetService(NS_ANNOTATIONSERVICE_CONTRACTID);
NS_ENSURE_TRUE(mAnnotationService, NS_ERROR_OUT_OF_MEMORY);
mLivemarkService = do_GetService(NS_LIVEMARKSERVICE_CONTRACTID);
NS_ENSURE_TRUE(mLivemarkService, NS_ERROR_OUT_OF_MEMORY);
- mMicrosummaryService = do_GetService("@mozilla.org/microsummary/service;1");
- NS_ENSURE_TRUE(mMicrosummaryService, NS_ERROR_OUT_OF_MEMORY);
mAllowRootChanges = aAllowRootChanges;
mIsImportDefaults = aIsImportDefaults;
// initialize the root frame with the menu root
PRInt64 menuRoot;
nsresult rv;
if (aFolder == 0) {
@@ -822,19 +809,16 @@ BookmarkContentSink::HandleLinkBegin(con
BookmarkImportFrame& frame = CurFrame();
// Make sure that the feed URIs from previous frames are emptied.
frame.mPreviousFeed = nsnull;
// Make sure that the bookmark id from previous frames are emptied.
frame.mPreviousId = 0;
// mPreviousText will hold link text, clear it.
frame.mPreviousText.Truncate();
- // Empty microsummary items from previous frames.
- frame.mPreviousMicrosummary = nsnull;
- frame.mPreviousMicrosummaryText.Truncate();
// Get the attributes we care about.
nsAutoString href;
nsAutoString feedUrl;
nsAutoString icon;
nsAutoString iconUri;
nsAutoString lastCharset;
nsAutoString keyword;
@@ -974,29 +958,16 @@ BookmarkContentSink::HandleLinkBegin(con
rv = mAnnotationService->SetItemAnnotationInt32(frame.mPreviousId,
LOAD_IN_SIDEBAR_ANNO,
1, 0,
nsIAnnotationService::EXPIRE_NEVER);
NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "SetItemAnnotationInt32 failed");
}
- // Import microsummary.
- if (!micsumGenURI.IsEmpty()) {
- nsCOMPtr<nsIURI> micsumGenURIObject;
- rv = NS_NewURI(getter_AddRefs(micsumGenURIObject), micsumGenURI);
- if (NS_SUCCEEDED(rv)) {
- rv = mMicrosummaryService->CreateMicrosummary(frame.mPreviousLink,
- micsumGenURIObject,
- getter_AddRefs(frame.mPreviousMicrosummary));
- NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "CreateMicrosummary failed");
- frame.mPreviousMicrosummaryText = generatedTitle;
- }
- }
-
// Import last charset.
if (!lastCharset.IsEmpty()) {
rv = mHistoryService->SetCharsetForURI(frame.mPreviousLink,lastCharset);
NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "setCharsetForURI failed");
}
}
@@ -1044,35 +1015,19 @@ BookmarkContentSink::HandleLinkEnd()
}
else if (frame.mPreviousLink) {
// This is a common bookmark.
#ifdef DEBUG_IMPORT
PrintNesting();
printf("Created bookmark '%s' %lld\n",
NS_ConvertUTF16toUTF8(frame.mPreviousText).get(), frame.mPreviousId);
#endif
- if (frame.mPreviousMicrosummary) {
- // This bookmark has a microsummary.
- rv = mAnnotationService->SetItemAnnotationString(frame.mPreviousId,
- STATIC_TITLE_ANNO,
- frame.mPreviousText, 0,
- nsIAnnotationService::EXPIRE_NEVER);
- NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "Could not store user's static bookmark title!");
- rv = mBookmarksService->SetItemTitle(frame.mPreviousId,
- NS_ConvertUTF16toUTF8(frame.mPreviousMicrosummaryText));
- NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "SetItemTitle failed");
- rv = mMicrosummaryService->SetMicrosummary(frame.mPreviousId,
- frame.mPreviousMicrosummary);
- NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "SetMicrosummary failed");
- }
- else {
- rv = mBookmarksService->SetItemTitle(frame.mPreviousId,
- NS_ConvertUTF16toUTF8(frame.mPreviousText));
- NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "SetItemTitle failed");
- }
+ rv = mBookmarksService->SetItemTitle(frame.mPreviousId,
+ NS_ConvertUTF16toUTF8(frame.mPreviousText));
+ NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "SetItemTitle failed");
}
// Set last modified date as the last change.
if (frame.mPreviousId > 0 && frame.mPreviousLastModifiedDate > 0) {
rv = mBookmarksService->SetItemLastModified(frame.mPreviousId,
frame.mPreviousLastModifiedDate);
NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "SetItemLastModified failed");
// Note: don't clear mPreviousLastModifiedDate, because if this item has a
@@ -1829,40 +1784,16 @@ nsPlacesImportExportService::WriteItem(n
// item
PRBool loadInSidebar = PR_FALSE;
rv = mAnnotationService->ItemHasAnnotation(itemId, LOAD_IN_SIDEBAR_ANNO,
&loadInSidebar);
NS_ENSURE_SUCCESS(rv, rv);
if (loadInSidebar)
aOutput->Write(kWebPanelAttribute, sizeof(kWebPanelAttribute)-1, &dummy);
- // microsummary
- nsCOMPtr<nsIMicrosummary> microsummary;
- rv = mMicrosummaryService->GetMicrosummary(itemId, getter_AddRefs(microsummary));
- NS_ENSURE_SUCCESS(rv, rv);
- if (microsummary) {
- nsCOMPtr<nsIMicrosummaryGenerator> generator;
- rv = microsummary->GetGenerator(getter_AddRefs(generator));
- NS_ENSURE_SUCCESS(rv, rv);
- nsCOMPtr<nsIURI> genURI;
- rv = generator->GetUri(getter_AddRefs(genURI));
- NS_ENSURE_SUCCESS(rv, rv);
- nsCAutoString spec;
- rv = genURI->GetSpec(spec);
- NS_ENSURE_SUCCESS(rv, rv);
-
- // write out generator URI
- rv = aOutput->Write(kMicsumGenURIAttribute, sizeof(kMicsumGenURIAttribute)-1, &dummy);
- NS_ENSURE_SUCCESS(rv, rv);
- rv = WriteEscapedUrl(spec, aOutput);
- NS_ENSURE_SUCCESS(rv, rv);
- rv = aOutput->Write(kQuoteStr, sizeof(kQuoteStr)-1, &dummy);
- NS_ENSURE_SUCCESS(rv, rv);
- }
-
// last charset
nsAutoString lastCharset;
if (NS_SUCCEEDED(mHistoryService->GetCharsetForURI(pageURI, lastCharset)) &&
!lastCharset.IsEmpty()) {
rv = aOutput->Write(kLastCharsetAttribute, sizeof(kLastCharsetAttribute)-1, &dummy);
NS_ENSURE_SUCCESS(rv, rv);
char* escapedLastCharset = nsEscapeHTML(NS_ConvertUTF16toUTF8(lastCharset).get());
rv = aOutput->Write(escapedLastCharset, strlen(escapedLastCharset), &dummy);
--- a/toolkit/components/places/nsPlacesImportExportService.h
+++ b/toolkit/components/places/nsPlacesImportExportService.h
@@ -6,17 +6,16 @@
#include "nsCOMPtr.h"
#include "nsILocalFile.h"
#include "nsIOutputStream.h"
#include "nsIFaviconService.h"
#include "nsIAnnotationService.h"
#include "nsILivemarkService.h"
#include "nsINavHistoryService.h"
#include "nsINavBookmarksService.h"
-#include "nsIMicrosummaryService.h"
#include "nsIChannel.h"
class nsPlacesImportExportService : public nsIPlacesImportExportService,
public nsINavHistoryBatchCallback
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIPLACESIMPORTEXPORTSERVICE
@@ -38,17 +37,16 @@ class nsPlacesImportExportService : publ
virtual ~nsPlacesImportExportService();
protected:
nsCOMPtr<nsIFaviconService> mFaviconService;
nsCOMPtr<nsIAnnotationService> mAnnotationService;
nsCOMPtr<nsINavBookmarksService> mBookmarksService;
nsCOMPtr<nsINavHistoryService> mHistoryService;
nsCOMPtr<nsILivemarkService> mLivemarkService;
- nsCOMPtr<nsIMicrosummaryService> mMicrosummaryService;
nsCOMPtr<nsIChannel> mImportChannel;
PRBool mIsImportDefaults;
nsresult ImportHTMLFromFileInternal(nsILocalFile* aFile, PRBool aAllowRootChanges,
PRInt64 aFolder, PRBool aIsImportDefaults);
nsresult ImportHTMLFromURIInternal(nsIURI* aURI, PRBool aAllowRootChanges,
PRInt64 aFolder, PRBool aIsImportDefaults);
@@ -62,14 +60,13 @@ class nsPlacesImportExportService : publ
nsresult WriteDescription(PRInt64 aId, PRInt32 aType, nsIOutputStream* aOutput);
inline nsresult EnsureServiceState() {
NS_ENSURE_STATE(mHistoryService);
NS_ENSURE_STATE(mFaviconService);
NS_ENSURE_STATE(mAnnotationService);
NS_ENSURE_STATE(mBookmarksService);
NS_ENSURE_STATE(mLivemarkService);
- NS_ENSURE_STATE(mMicrosummaryService);
return NS_OK;
}
};
#endif // nsPlacesImportExportService_h__
--- a/toolkit/components/places/toolkitplaces.manifest
+++ b/toolkit/components/places/toolkitplaces.manifest
@@ -8,18 +8,12 @@ contract @mozilla.org/browser/tagging-se
component {1dcc23b0-d4cb-11dc-9ad6-479d56d89593} nsTaggingService.js
contract @mozilla.org/autocomplete/search;1?name=places-tag-autocomplete {1dcc23b0-d4cb-11dc-9ad6-479d56d89593}
# nsPlacesExpiration.js
component {705a423f-2f69-42f3-b9fe-1517e0dee56f} nsPlacesExpiration.js
contract @mozilla.org/places/expiration;1 {705a423f-2f69-42f3-b9fe-1517e0dee56f}
category history-observers nsPlacesExpiration @mozilla.org/places/expiration;1
-# nsMicrosummaryService.js
-component {460a9792-b154-4f26-a922-0f653e2c8f91} nsMicrosummaryService.js
-contract @mozilla.org/microsummary/service;1 {460a9792-b154-4f26-a922-0f653e2c8f91}
-# How often to check for generator updates, in seconds 7 * 86400 == 1 week
-category update-timer nsMicrosummaryService @mozilla.org/microsummary/service;1,getService,microsummary-generator-update-timer,browser.microsummary.generatorUpdateInterval,604800
-
# PlacesCategoriesStarter.js
component {803938d5-e26d-4453-bf46-ad4b26e41114} PlacesCategoriesStarter.js
contract @mozilla.org/places/categoriesStarter;1 {803938d5-e26d-4453-bf46-ad4b26e41114}
category idle-daily PlacesCategoriesStarter @mozilla.org/places/categoriesStarter;1