Makes initing Places services cheaper, by delaying the connection creation to the first time
it's actually needed.
Same way, delays reading the bookmark roots at the first time they are requested.
Deprecates the concept of lazy observers, since they are no more needed, we can just use addObserver.
Simplifies the startup path: always sends "places-init-complete" (both as a category and a topic) when
the connection starts and adds a "locked" database state when we can't get a working connection.
Makes PlacesCategoriesStarter register for the new category, since it's cheaper than being a bookmarks
observer.
Fixes a couple race conditions in keywords and expiration due to new startup timings.
Removes a test in test_keywords.js that is no more easily feasible, since it'd requires a pre-build
places.sqlite that should be kept up-to-date at every version.
MozReview-Commit-ID: 6ccPUZ651m0
This patch changes the Recent Bookmarks flow in browser-places.js to use the new
PlacesPanelview to provide a rich view that support drag and drop and context
actions.
A new button 'Search Bookmarks' was added, which prefills the urlbar with '* ',
which is a shortcut for searching bookmarks using the Awesomebar.
MozReview-Commit-ID: 1XlO8HMKEJs
Files which make use of `getPlacesInfo` have been replaced with `History.fetch`.
The code for `GetPlacesInfo` has been deleted from the cpp and idl files.
The test for `getPlacesInfo` has been suitably rewritten and moved alongside the
other History.jsm tests.
There were 2 places where the fact that `getPlacesInfo` takes an array as opposed
to a single uri mattered, in `test_getPlacesInfo.js` and `test_refresh_firefox.py`.
MozReview-Commit-ID: KQSMHCvvlrQ
The main reason for these changes is to avoid initializing the bookmarks service too early,
plus a lot of micro-optimizations to reduce the code-bloat compared to the previous bogus
(but slick) async getter.
MozReview-Commit-ID: Fy4fshsDaIw
When panel behavior became asynchronous, |StarUI._doShowEditBookmarkPanel| needed to be changed to wait for the panel to finish opening before initializing it. Although the content of the panel can be changed successfully before the panel opens, the element focus at the end of initialization fails. This prevents the capturing of certain events, such as an Esc keypress (which should close the panel).
However, this introduced the problem where there is a short delay between when the bookmark panel opens and when the correct content is displayed in it. To fix this, the initialization function |gEditItemOverlay.initPanel| will now be called before the panel opens, but the element focus code will wait for the panel's popupshown event.
MozReview-Commit-ID: 6SrcCz963qW
Bookmark panel for a new bookmark shouldn't be closed automatically during composition even if mouse cursor is moved outside the panel because user may click in IME's UI.
Additionally, editor might be modified without keyboard events nor composition events. In such case, the bookmark panel shouldn't be closed automatically too.
MozReview-Commit-ID: 1FAUmkXjid