In order to handle the content script case correctly we must expose the
contentScriptAddonPolicy to JavaScript. With that we can always see what
extension is trying to perform an action and use its name rather than internal
ID in the dialog.
Differential Revision: https://phabricator.services.mozilla.com/D161282
Ideally we would use the window mediator to just find new browser windows that
are in the process of opening but while we can find the windows they just appear
as about:blank with no way to verify that they are browser windows.
This just takes the straightforward approach of forcing code that opens browser
windows to register them with the BrowserWindowTracker and provides a simple
shared API for opening browser windows that does this.
Differential Revision: https://phabricator.services.mozilla.com/D161076
When one Firefox instance finishes starting up it releases the startup lock and
deletes the lock directory. Other instances that are waiting to startup are in
the meantime polling to acquire the lock but with the directory gone their next
attempt just throws a failure and so they assume they don't have the lock yet
and keep polling until they hit the five second timeout.
With this patch before each attempt to acquire the lock we make sure that the
lock directory exists first.
Differential Revision: https://phabricator.services.mozilla.com/D161075
For the specific case of `.xpt` artifacts, we could place them
directly into `$topobjdir/config/makefiles/xpidl`, but I'm wary of
modifying the object directory in this manner. I'd like the initial
round of tooling building on this capability to look in
`dist/xpt_artifacts` for artifact builds and be able to give detailed
feedback in error situations. We can revisit the placement of
artifacts in the future as more use cases and shortcomings are
identified.
In the future, this mechanism might be used to include Java code
generated at build-time that exposes IDL constants to GeckoView.
Differential Revision: https://phabricator.services.mozilla.com/D161641
Some consumers, in particular some lint tasks, may have their builds
substituted with artifact builds. Therefore, in an artifact build, we
re-package the fetched XPT artifacts.
Using the `zip` Python action makes the resulting archive reproducible.
Depends on D162071
Differential Revision: https://phabricator.services.mozilla.com/D161640
This adds a weather feature to quick suggest. It periodically fetches a weather
suggestion from Merino. UrlbarProviderQuickSuggest shows the suggestion when the
search string is empty ("zero prefix").
The implementation of the UrlbarResult returned by UrlbarProviderQuickSuggest is
only temporary. Mandy is working on the final UI in
[SNT-323](https://mozilla-hub.atlassian.net/browse/SNT-323). Landing a temporary
implementation allows Mandy to base her patch on it and trigger real weather
suggestions from Merino to test her implementation against. It also lets people
on the team test weather suggestions without having to wait for the final UI to
land.
I added the following prefs and Nimbus variable to control the feature. It will
initially be rolled out in an experiment, so we need a Nimbus variable. In the
initial experiment, users will be able to dismiss the suggestion but not toggle
a checkbox in about:preferences.
* `weatherFeatureGate` - Nimbus variable that controls the whole feature
* `browser.urlbar.weather.featureGate` - Fallback pref for the Nimbus variable
* `browser.urlbar.suggest.weather` - When the feature gate pref is true, this
determines whether the suggestion should be shown. In a future patch, we'll
flip this to false when users dismiss the suggestion.
I set the fetch interval to 30 minutes. That seems reasonable considering that
the suggestion contains the current temperature and weather. Merino will set
caching headers appropriately so that Firefox won't actually make a new network
request if the previously fetched suggestion is new enough.
Depends on D161368
Differential Revision: https://phabricator.services.mozilla.com/D161410
IsPopup() -> IsMenuPopupFrame(), so it's clearly exclusive with
IsListControlFrame(), this code is all dead.
nsListControlFrame used to be a popup before bug 1744009 etc.
Differential Revision: https://phabricator.services.mozilla.com/D162258
By default, BorrowSnapshot is pessimistic and forces DrawTargetWebgl to return a data snapshot on
the assumption that the snapshot might be used off thread. However, if we actually know the DrawTarget
we're going to be drawing the snapshot to, then we can check if they're both DrawTargetWebgls with
the same internal SharedContext. In that case, we can use a SourceSurfaceWebgl snapshot which can
pass through a GPU texture to the target. This requires us to plumb the DrawTarget down through
SurfaceFromElement all the way to DrawTargetWebgl to make this decision.
Differential Revision: https://phabricator.services.mozilla.com/D162176