Change XUL and other dylibs to be built with an @rpath/<dylib> install name (LC_ID_DYLIB) instead of @executable_path/<dylib>.
Change executables to be built with an @rpath dyld search path set to @executable_path by default so that @rpath/<dylib> dylibs in the same directory can be resolved. For executables not in the same directory as @rpath dylibs, such as plugin-container, set a relative @rpath such as @executable_path/../../../.
Previously, dylib install names were set as @executable_path/<dylib> allowing them to be resolved by dyld for the loading executable if the executable resided in the same directory as the dylib. For executables not in the same directory as the dylibs, dyld resolved these dylibs using DYLD_LIBRARY_PATH set before launching the process by Firefox code. With this change, loading does not rely on DYLD environment variables. Instead, dylibs have an install name set as @rpath/<dylib> and each executable loading a dylib has its @rpath set at compile-time to refer to dylib directory.
Differential Revision: https://phabricator.services.mozilla.com/D147360
This modifies `UrlbarQuickSuggest.addResults()` so it adds entries to the
`_resultsByKeyword` map in chunks. Each chunk uses the idle queue of the main
thread.
I chose 1,000 as the chunk size. On my machine, a chunk with 1,000 entries
usually takes less than a millisecond, sometimes 1ms. A chunk with 10,000 takes
10x the time, ~10ms. Per the recent Slack thread, the latest total number of
keywords is 134,276, so that's 135 chunks of size 1,000. Seems OK...? I'm open
to suggestions.
Differential Revision: https://phabricator.services.mozilla.com/D148221
When transforming the hit test to what gecko expects, ensure that we
handle fixed elements correctly.
Depends on D146825
Differential Revision: https://phabricator.services.mozilla.com/D148076
The devtools.browsertoolbox.fission should not be read on the server but should instead be provided to the server by the client.
The breakage can be reproduced if you try to debug a Firefox desktop with devtools.browsertoolbox.fission = false from a Firefox with devtools.browsertoolbox.fission
= true.
Differential Revision: https://phabricator.services.mozilla.com/D148129
I think this sub-heading is a weird artifact of the migration from md to rst.
It creates a double menu that is not needed.
Before:
```
- Contributing to GeckoView
- Contributor Site
- GeckoView Contributor guide
- GeckoView for Gecko engineers
- ...
- Using GeckoView
- Usage Documentation
- Getting Started with GeckoView
- Interacting with Web Content
- ...
```
After
```
- Contributing to GeckoView
- GeckoView Contributor guide
- GeckoView for Gecko engineers
- ...
- Using GeckoView
- Getting Started with GeckoView
- Interacting with Web Content
- ...
```
Differential Revision: https://phabricator.services.mozilla.com/D148214
Services.policies.isExemptExecutableExtension will throw if passed a
falsy origin, which causes errors to be logged in the console when the
user downloads a file with an object URL source. Technically, it can
also throw if the URL is invalid for a variety of other reasons, so I
just wrapped the URL construction in a try...catch statement.
Differential Revision: https://phabricator.services.mozilla.com/D147407
Note this is an experiment in getting functionality going for text
recognition. It may be possible to do this more efficiently from
the C++ side of things, but this will allow for rapid experimentation
while working with UX.
Differential Revision: https://phabricator.services.mozilla.com/D143422
This makes it so that PageIconProtocolHandler uses RemoteStreamGetter in the event that the
privileged about content process attempts to use the page-icon: protocol. This allows the parent
to then remotely stream the favicons down to the privileged about content process.
This also adds a test to check that only the privileged about content process can use this
protocol, and that "normal" web content processes cannot.
Differential Revision: https://phabricator.services.mozilla.com/D147335
The LoadArgs are wrapped in a Maybe, since that seems to be what the conversion utilities
(LoadInfoToLoadInfoArgs and LoadInfoArgsToLoadInfo) seem to expect. It's really up to the
users of RemoteStreamGetter to determine whether or not they're willing to accept requests
without LoadArgs.
Differential Revision: https://phabricator.services.mozilla.com/D147334
This utility class is called RemoteStreamGetter, and will be used for the PageIconProtocolHandler
in a later patch in this series.
Differential Revision: https://phabricator.services.mozilla.com/D147180
This allows callers to rely on this property.
I didn't extend the documentation for
`XULPopupElement::ShowPopupAtScreen` because it seems to not have this
property for native context menus.
If that inconsistency is considered a bug, it should be fixed in a
separate ticket.
Differential Revision: https://phabricator.services.mozilla.com/D148114
This patch ensures that non-breaking spaces in a text widget are preserved when being
copied to the clipboard.
It works by using the fact that a copy operation usually results in two successive copies:
- The first copy in plain-text,
- The second one, if the text is outside a text-widget, is pretty-printed.
Thus, if we configure the first copy to preserve non-breaking spaces, a copy made inside
a text widget will have non-breaking spaces preserved–but other copies will continue with
the current behavior of replacing non-breaking spaces.
Differential Revision: https://phabricator.services.mozilla.com/D141934
Instead, have the menu popup frame call SetWindowMouseTransparent (since
it needs to anyways to deal with dynamic changes).
Differential Revision: https://phabricator.services.mozilla.com/D148211