Android's drag and drop API will set a dropped item on `drop` event. But other
platforms will be set during `dragstart` event.
Editor's drag and drop event listener checks current dropped item on some
events such as `dragover` event in
`EditorEventListener::DragEventHasSupportingData`. Since there is no way to
set dropped item on `dragover` event, GeckoView will set temporary dropped
item with MIME type.
Differential Revision: https://phabricator.services.mozilla.com/D200618
It is unnecessary to join path with path separator when adding classpath
as file collection.
Also, javadoc's sourcepath argument have to use OS related path separator.
Default is OS related path separator, so we should use it instead.
Differential Revision: https://phabricator.services.mozilla.com/D201038
Most are brought over straightforwardly, their Telemetry callsites reworded
to use Glean, with mirroring to the Telemetry probes taken care of by the Glean
Interface For Firefox Telemetry (see the telemetry_mirror property).
There were some special cases:
* HistogramStopwatch becomes GleanStopwatch.
After migration it was only serving Glean consumers.
Could've used standard Glean APIs, but having something to hold the TimerIds
was convenient.
* GV_STARTUP_MODULES_MS was removed.
It was configured to only report for the `firefox` product,
but could only have a value in `geckoview_streaming`,
so never reported data.
* MEDIA_DECODING_PROCESS_CRASH was removed.
It was configured to only report for the `firefox` product,
but could only have a value in `geckoview_streaming`,
so never reported data.
* GV_CONTENT_PROCESS_LIFETIME_MS was removed.
It was configured to only report for the `geckoview_streaming` product,
meaning it only reported data when used with GVST to reach the Glean
`geckoview.content_process_lifetime` metric.
This is now accomplished directly.
* GV_STARTUP_RUNTIME_MS was removed.
Though it was configured to report data for both `firefox` and
`geckoview_streaming` products, it only ever had values in geckoview.
Its data continues to be reported via `geckoview.startup_runtime`.
* gecko.version and gecko.build_id (Scalars) were removed.
In Firefox Desktop this information is available in the `application`
section of the Environment.
In geckoview-using products, this information continues to be available via
`geckoview.version` and `geckoview.build_id`.
* GV_STARTUP_RUNTIME_MS and GV_CONTENT_PROCESS_LIFETIME_MS are handled oddly.
Since those probes were recorded in the Java portion of the code,
and that portion doesn't include Glean,
we use `nativeAddHistogram` to relay the samples for those two pieces of
instrumentation.
If there will be more instrumentation landing in that part of the code,
I recommend you review the instructions for including the Glean SDK in a
library, and retire this use of JNI.
Differential Revision: https://phabricator.services.mozilla.com/D200094
* Make schema files directly parsable as valid JSON, consumable by JSONSchema
tools (like addons-linter).
* Clarify, simplify and unify licensing information across all repositories
and places we use the schemas.
Differential Revision: https://phabricator.services.mozilla.com/D200357
This implementation supports
- HTML drag & drop API.
- Drop and drop for text/plain or text/html from/to external application.
Differential Revision: https://phabricator.services.mozilla.com/D197330
This PR adds a couple GeckoView API to setup and specific DoH TRR mode
and server URI, which enables the DNS-over-HTTPS capability on Firefox
Fenix.
Differential Revision: https://phabricator.services.mozilla.com/D121455
This patch implements a FingerprintingProtectionState cleaner that calls
the clear functions to reset fingerprinting random key.
Differential Revision: https://phabricator.services.mozilla.com/D196302
Startup of extension's background script is currently delayed until
after "browser-delayed-startup-finished". On desktop, this notification
is sent as soon as any browser window has been painted, which is usually
soon enough.
On Android, this notification is sent from geckoview.xhtml, which is
only loaded when any Gecko-hosted (web) content is shown. Network
requests can already be triggered from elsewhere (GeckoView) without
having loaded any Gecko-hosted "browser window" (geckoview.xhtml). This
is a problem when a `proxy.onRequest` handler has been registered,
because this can result in a request blocked indefinitely, as long as
the user has not opened an unrelated browser window.
To get around this problem, allow proxy request listeners to immediately
wake up the background page, on Android.
Differential Revision: https://phabricator.services.mozilla.com/D198842
Ideally this validation steps should be shared in PushManager::Subscribe, but that's out of scope for this bug. For now this just copypastes the step from `dom/push/PushService.sys.mjs`.
Differential Revision: https://phabricator.services.mozilla.com/D196586
Ideally this validation steps should be shared in PushManager::Subscribe, but that's out of scope for this bug. For now this just copypastes the step from `dom/push/PushService.sys.mjs`.
Differential Revision: https://phabricator.services.mozilla.com/D196586
In order to achieve "load in a new background tab" operation in `window.open`,
add OPEN_NEWTAB_BACKGROUND which is equivalent to OPEN_NEWTAB except for
not selecting the tab.
Differential Revision: https://phabricator.services.mozilla.com/D197859
This is intended for Searchfox, to analyse and display the bindings
between Java and C++ code.
When the @WrapForJNI annotation is set on a method marked as native,
the code generator creates 3 files, for instance for EventDispatcher:
* GeneratedJNIEventDispatcherWrappers.cpp
* GeneratedJNI/EventDispatcherWrappers.h
* GeneratedJNI/EventDispatcherNatives.h
The class that implements the member function bound from Java inherits
from EventDispatcher::Natives. That member function is defined in yet
another implementation file.
The mozsearch clang plugin only sees one single translation unit at a
time, so when it sees the definition of the actual bound method (and
when it emits the related data), it doesn't see the EventDispatcher
wrappers implementation anymore. At the moment it misses the name of
the wrapped Java class qualified class name.
This moves the name initialization from the wrappers impl file to the
header so that the mozsearch clang plugin can see the whole picture at
once when analysing the actual member functions' implementations.
The Java class members names were already initialized in the header so
this also makes things a bit more consistent in that regard.
Differential Revision: https://phabricator.services.mozilla.com/D196795