In most cases bookmarks views don't need to be notified of history changes.
The only cases where they need that, is when history columns are visible in a
tree view, or the result is sorted by visits or frecency.
Thus, the menu and toolbar views can often save some work by not listening.
Differential Revision: https://phabricator.services.mozilla.com/D97280
The result can directly listen for page-visited and recursively update children.
With onItemVisited gone, all the reasons for the bookmarks service to listen for
history notifications are gone, thus it can stop observing history.
Differential Revision: https://phabricator.services.mozilla.com/D97279
RunInBatchMode has been removed some time ago, the only thing still sending
these notifications is maintenance to force a UI update, and it can send both.
Differential Revision: https://phabricator.services.mozilla.com/D97278
Rather than fetching bookmarks from the disk for each page-visited notification,
we just let the result to recursively find and update children in the memory
structure.
Differential Revision: https://phabricator.services.mozilla.com/D97277
This patch ensures that crash reports for main process crashes always
have memory annotations populated. It also cleans up the relevant
code, removing support for Windows 32-bit time_t values. The tests
that did only cover Windows have been modified to also run on macOS
and Linux.
Differential Revision: https://phabricator.services.mozilla.com/D97667
This also implements an improved error message:
> TypeError: RegExp.prototype.global getter called on non-RegExp object: Math
This is similar to Chromes' message:
> RegExp.prototype.global getter called on non-RegExp object
Differential Revision: https://phabricator.services.mozilla.com/D95837
We have existing table reftests that fails without this fix
when the pref layout.display-list.improve-fragmentation is
enabled.
Differential Revision: https://phabricator.services.mozilla.com/D97831
Precomputing the skipBEnd bit is odd / wrong. Using the PreReflow
version causes no regression, and allows us to simplify the code.
It also reverts the test annotations added to bug 1675376 which were
caused by the extra argument to GetLogicalSkipSides() somehow.
Differential Revision: https://phabricator.services.mozilla.com/D97418
We were restoring search mode after tab switch even if the destination tab had a valid pageproxystate. This was causing issues in the case where the user switched away from a tab that was still loading and had not yet called setURI. If the user switched back to that tab after it was done loading, we would re-enter search mode, using the page's URL as the search string.
Making this change also requires storing pageproxystate differently. If we only made the change to setURI, we would sometimes not restore search mode when we should. If the user entered search mode with an empty string, userTypedValue would never be updated and it would still be the page URL. After the user switched from, then to, that tab, we'd call setURI. setURI would restore userTypedValue, which would be the page URL. Since that page now had a valid pageproxystate, we would not restore search mode. Now we update userTypedValue when we enter search mode, so we restore search mode properly even when there is no search string.
Differential Revision: https://phabricator.services.mozilla.com/D97798
This is to prevent threading issues that some drivers seem to have when they
access their own default DEVMODE internally.
Differential Revision: https://phabricator.services.mozilla.com/D97789
It seems that VO mistakenly thinks the web area is a descendant of itself. This causes all kinds of cyclical parent child relationships that makes VO over-query us.
This patch remedies that by not returning the web area when do an immediate child search starting from the root group - in any direction.
Differential Revision: https://phabricator.services.mozilla.com/D97819
Safari has an inconsistent way to deal with list bullets in text.
If a given range has a list or list item nested inside it - but it is not
at the beginning, the bullet will not be returned as part of the text.But if the range begins at the start
of a list item, the preceding bullet is included. For example, given the following list:
* First Item
* Second Item
If the range is [irst Item], the text for that range should return as "irst Item",
but if the range is [First it], the returned text is "* First it".
This patch emulates that inconsistency by removing the list item considerations
in the text segments iterator, and instead prepending a bullet if needed.
Differential Revision: https://phabricator.services.mozilla.com/D97717
This allows `contenteditable` textboxes to work correctly with flattened text values.
The attribute setters, aside from AXValue, don't work in Chrome or Safari with aria textboxes,
so those are not a high priority. These include:
- AXSelectedText
- AXSelectedTextRange
- AXVisibleCharacterRange
In addition, AXVisibleCharacterRange's getter doesn't function as expected in Chrome or Safari either, so I didn't touch it.
Differential Revision: https://phabricator.services.mozilla.com/D97629
This also irons out some event syncing issues. We need to wait for selection changes in the future patch in order to take advantage of selection caching.
Differential Revision: https://phabricator.services.mozilla.com/D97628