Closed
Bug 1370051
Opened 8 years ago
Closed 7 years ago
Places - Deleting folder of livemarks - throws an errors
Categories
(Firefox :: Bookmarks & History, defect, P3)
Firefox
Bookmarks & History
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: janekptacijarabaci, Unassigned)
Details
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.9) Gecko/20100101 Goanna/3.2 Firefox/45.9 PaleMoon/27.3.0
Build ID: 20170422220104
Steps to reproduce:
- Go to a folder of livemarks
- In the context menu, select "Delete"
Actual results:
Bookmarks is deleted, but throws an errors in Browser Console:
[Exception... "Invalid livemark" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame :: resource://gre/components/nsLivemarkService.js :: getLivemark/< :: line 302" data: no]
Expected results:
Bookmarks is deleted, and Browser Console is empty.
| Reporter | ||
Updated•8 years ago
|
Component: Untriaged → Bookmarks & History
OS: Unspecified → All
Hardware: Unspecified → All
| Reporter | ||
Comment 1•8 years ago
|
||
Patch proposal to fix issue can be:
https://github.com/MoonchildProductions/Pale-Moon/pull/1139
Comment 2•8 years ago
|
||
That patch doesn't look good. If the error is unexpected we should just not make it reportError, if the error is real, then we should figure out what causes it, rather than workarounding the error. Here looks like something is invoking removeLivemark on an item that is not a livemark, or not recognized by the Livemarks service, we need to figure out why that happens.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P3
| Reporter | ||
Comment 3•8 years ago
|
||
OK.
In this case, I propose the following change:
Ad https://hg.mozilla.org/mozilla-central/file/291fe1a6a375/toolkit/components/places/PlacesUtils.jsm#l3307
From:
for (let i = 0; i < contents.childCount; ++i) {
let txn = new PlacesRemoveItemTransaction(contents.getChild(i).itemId);
transactions.push(txn);
}
To:
for (let i = 0; i < contents.childCount; ++i) {
let childId = contents.getChild(i).itemId;
if (!PlacesUtils.annotations.itemHasAnnotation(childId,
PlacesUtils.LMANNO_FEEDURI)) {
let txn = new PlacesRemoveItemTransaction(childId);
transactions.push(txn);
}
}
Flags: needinfo?(mak77)
Comment 4•8 years ago
|
||
(In reply to janekptacijarabaci from comment #3)
> for (let i = 0; i < contents.childCount; ++i) {
> let childId = contents.getChild(i).itemId;
> if (!PlacesUtils.annotations.itemHasAnnotation(childId,
>
> PlacesUtils.LMANNO_FEEDURI)) {
This is still doing main-thread IO for every item to check if it has an annotation.
The view should already know if it's a livemark or not, IIRC we keep some sort of local property to track those.
Flags: needinfo?(mak77)
* Regressed by:
Bug 969318 - "A promise chain failed to handle a rejection" from the livemarks service (deprecate passing a callback)
Changeset 173276 - Mute "A promise chain failed to handle a rejection" error from the livemarks service. r=mano:
https://hg.mozilla.org/mozilla-central/rev/60c1af78091a
Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=44ae8462d6ab&tochange=46041cc216fd
First bad: 30.0a1 (2014-03-13)
Built from https://hg.mozilla.org/mozilla-central/rev/46041cc216fd
Last good: 30.0a1 (2014-03-12)
Built from https://hg.mozilla.org/mozilla-central/rev/44ae8462d6ab
* The earliest error flavor:
[Exception... "Illegal value" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame :: resource://gre/components/nsLivemarkService.js :: LS_getLivemark/< :: line 397" data: no]
Source File: resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js
Line: 870
Comment 6•7 years ago
|
||
Wontfixing because live bookmarks are going away - See Bug 1477667.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•