The default bug view has changed. See this FAQ.

Fetching bookmarks information during onBeforeItemRemove may break the bookmarks cache

RESOLVED FIXED in Firefox 12



Bookmarks & History
5 years ago
4 years ago


(Reporter: Usman Latif, Assigned: mak)


8 Branch
Firefox 12
Windows Vista
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(Not tracked)



(1 attachment, 1 obsolete attachment)

7.51 KB, patch
: review+
Details | Diff | Splinter Review


5 years ago
Created attachment 582754 [details]

User Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7

Steps to reproduce:

I called removeFolderChildren on a folder that contained a child folder. The child folder contained a single bookmark.

Note: This bug reports the same issue as Bug 675416. The fix for bug 675416 is not comprehensive and fails in some cases.

Actual results:

After deleting the parent folder I was able to retrieve the information of the child folder. 

It is also possible to create additional bookmarks so that one of the new bookmarks reuses the id of the deleted folder and the bookmark service returns the information of the deleted folder in place of the newly created bookmark.

Expected results:

Firefox should have thrown an exception instead.


5 years ago
Attachment #582754 - Attachment mime type: application/octet-stream → text/plain

Comment 1

5 years ago
thanks for filing the bug, taking to check what happens.
Assignee: nobody → mak77
Ever confirmed: true

Comment 2

5 years ago
Created attachment 586981 [details] [diff] [review]
patch v1.0

The bug is caused by the calling order in the internal loop of RemoveFolderchildren. We can't change ordering in that loop since it may cause unwanted regressions. So I decided than rather than addressing each single possible failure point it's better to increase checks on the cache.
This makes the cache stronger by tracking items in the critical path, while registered they won't be added to the cache. Also asserts that each END has a corresponding BEGIN by checking the hash contents.
Attachment #582754 - Attachment is obsolete: true
Attachment #586981 - Flags: review?(dietrich)

Comment 3

5 years ago
Ps: the existing assertion was catching this failure, but we didn't have a test leveraging that path. That's why I think this different approach is better, it enforces the condition.
Attachment #586981 - Flags: review?(dietrich) → review+

Comment 4

5 years ago
Flags: in-testsuite+
Target Milestone: --- → Firefox 12

Comment 5

5 years ago
Last Resolved: 5 years ago
Resolution: --- → FIXED


4 years ago
Duplicate of this bug: 878061
You need to log in before you can comment on or make changes to this bug.