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
This is part 1 of the bug, it addresses the crush itself, and the weird case of BuildConfig.DEBUG being true in release builds (due to an external to gv bug). There will be a follow up, in a separate bug, to address the actual flow (Web Extensions opening web pages in popups and how we want to handle that).
Differential Revision: https://phabricator.services.mozilla.com/D147456
In bug 1762424 we introduced a rendering path on Android using the
SurfaceControl API, in order to work around a bug preventing recovery
from a GPU process crash. However, the initial implementation caused
this bug: repeatedly sending the same SurfaceControl objects over AIDL
to the GPU process resulted in them being leaked, eventually causing
severe display issues. Not only were we duplicating the SurfaceControl
for each widget, but each time a widget was resized too.
This patch reworks our usage of the SurfaceControl API to avoid ever
having to send them cross-process. Instead, we create a single child
SurfaceControl object for each SurfaceControl that is attached to a
widget. (Typically there will be a single one shared between all
widgets, changing only when the app is paused and resumed, which is
much fewer than one per widget per resize.)
In the parent process we obtain the Surfaces that will be rendered in
to from the child SurfaceControls, and only send those Surfaces to the
GPU process. Thankfully unlike SurfaceControls, sending Surfaces
cross-process does not cause leaks. When the GPU process dies we
simply destroy all of the child SurfaceControls, and recreate them
again on-demand.
Differential Revision: https://phabricator.services.mozilla.com/D147437
Adds a GeckoView save to PDF API that can be used to save the current session’s page content to a PDF. The API returns a Java InputStream that can be used by the consumer to process the PDF.
Differential Revision: https://phabricator.services.mozilla.com/D146245
This is part 1 of the bug, it addresses the crush itself, and the weird case of BuildConfig.DEBUG being `true` in release builds (due to an external to gv bug).
There will be a follow up, in a separate bug, to address the actual flow (Web Extensions opening web pages in popups and how we want to handle that).
Differential Revision: https://phabricator.services.mozilla.com/D147456
This is a non-null field in the WebNotification standard as well as what we get from JS,
so we should be consistent with this behaviour in the Java land as well.
Differential Revision: https://phabricator.services.mozilla.com/D147238
Added thread safety tests for GeckoInputStream.java and removed Gecko
thread assertion on `appendBuffer` in GeckoInputStream.
Differential Revision: https://phabricator.services.mozilla.com/D147114
We used to get screen bounds from the gecko layer and needed to strip
the screen offsets for parent-relative offsets. It is now the opposite,
the bounds we get from gecko do not have the screen offsets of the top
View.
Differential Revision: https://phabricator.services.mozilla.com/D146508
For desktop this should basically have no impact (maybe impacts tab
warming, but if we wanted we could set the priority hint from the tab
switcher the same way we set renderLayers), but Fenix always has
renderLayers as true, effectively, so we were never de-prioritizing the
background tab processes.
Differential Revision: https://phabricator.services.mozilla.com/D145351
This patch includes only the subset of D145687 changes related to the reworked JSONSchema data, plus some minor changes to Schemas.jsm to take the new
JSONSchema type ("PrivilegedPermissions") and the new custom JSONSchema keyword (the boolean "privileged" property used to identify manifest fields
only allowed in privileged extensions).
Besides the changes to the schema data, this patch is not expected to introduce any difference in behavior and so it could also land on its own
if needed (and the rest of the changes landed separately).
Differential Revision: https://phabricator.services.mozilla.com/D146800
For desktop this should basically have no impact (maybe impacts tab
warming, but if we wanted we could set the priority hint from the tab
switcher the same way we set renderLayers), but Fenix always has
renderLayers as true, effectively, so we were never de-prioritizing the
background tab processes.
Differential Revision: https://phabricator.services.mozilla.com/D145351
The android autofill framework requests a virtual structure for the webpage in
onProvideAutofillVirtualStructure and then at a later time will call autofill
when the user selects a value in the autofill app.
These method calls happen on the GeckoView, but our data is stored in the
GeckoSession (or rather, in the window that the GeckoSession represents).
Because of the asynchronicity of this process, we're not guaranteed that the
app hasn't switched the sesssion behind us in between the
onProvideAutofillVirtualStructure and autofill call, so we need to keep a
reference to the current autofill session when onProvide is called so that
we're sure that we are autofilling the right session.
We use a WeakReference to avoid keeping a window alive more than necessary, as
if the window is unloaded, there is no point in autofilling anyway.
Differential Revision: https://phabricator.services.mozilla.com/D146724
This patch includes only the subset of D145687 changes related to the reworked JSONSchema data, plus some minor changes to Schemas.jsm to take the new
JSONSchema type ("PrivilegedPermissions") and the new custom JSONSchema keyword (the boolean "privileged" property used to identify manifest fields
only allowed in privileged extensions).
Besides the changes to the schema data, this patch is not expected to introduce any difference in behavior and so it could also land on its own
if needed (and the rest of the changes landed separately).
Differential Revision: https://phabricator.services.mozilla.com/D146800
GeckoView is still using the deleted gl.msaa-level setting. As the rest of the engine does not use it,
modifying it basically became a noop. Replacing it by webgl.msaa-samples does the trick and allows
GeckoView clients to modify the antialiasing settings in WebGL.
Differential Revision: https://phabricator.services.mozilla.com/D146322
This is a kind of bug 1263887 for GeckoView.
We should update the prompt when child nodes in `<select>` element is modified.
I add `PromptInstanceDelegate.onPromptUpdate` to update the prompt's content.
Browser application should implement it if <select> element is updated during
showing the prompt.
Differential Revision: https://phabricator.services.mozilla.com/D144538