Experimentally try using a String literal in case the NullPointerException at
that line is caused by some weird class initialisation issue.
MozReview-Commit-ID: 1BexpntTBEJ
--HG--
extra : rebase_source : ea71f390ce0d683cd635aae52825871562b78feb
The problem is we rely on some events / frame scripts for session calls
that should still work even if we don't have a delegate assigned, so we
should always register these events / frame scripts.
MozReview-Commit-ID: 6TvvMhc7qOf
--HG--
extra : rebase_source : 30d939a4e39488ca039709ec5b59532506bd18ed
Make GeckoSessionHandler and GeckoSessionSettings use the updated
"GeckoView:EnableModule" and "GeckoView:UpdateSettings" events.
Also, send events for updating settings only while the session is open.
Don't send events while the session is closed, because when opening the
session, we will send settings in one batch in the init-data.
MozReview-Commit-ID: Kytx8Ak4A5p
--HG--
extra : rebase_source : add58cb9cefcfaab7d109c492bb4406ee38f9e28
Let ModuleManager keep the current settings and enabled states for
modules. It initializes settings and module states from the window
init-data, and then listens to changes in them.
Having ModuleManager manage these states helps keeping things
consistent, and makes it possible for future optimizations like
delay-loading modules.
MozReview-Commit-ID: AM6lAxnUGhd
--HG--
extra : rebase_source : 2751990bec6054cc36104957690d8fce6d3da399
Instead of passing a live settings object to the native Window, pass a
static initialization data bundle to the Window. The bundle contains
settings at the time of creation. All changes to settings after creation
are updated through events, rather than the live object.
Using a live object between Gecko and UI threads has some drawbacks,
including the need to lock the object, and the fact it won't work with
remote runtimes across processes.
MozReview-Commit-ID: 1DngLfJ0Fnc
--HG--
extra : rebase_source : 05c0ba76ce7f45a02557cc1a30e399682dccd5a7
On Android 7.0.0, the OS would start the StumblerService and without having given fennec the location permission the intent and scan enabled checks would've been skipped - which ensure that the Stumbler Service does not run in unadequate scenarios.
MozReview-Commit-ID: AGU67ytE4ff
--HG--
extra : rebase_source : 7d1285e75ffa233e4888e65505081bca2200b34e
When `--enable-official-branding` isn't set in mozconfig, `./mach configure` executes
mobile/android/branding/unofficial/configure.sh via `/bin/sh`. The `${USER:-unknown}`
syntax is POSIX, so this fix should work across all platforms.
MozReview-Commit-ID: C8T0ZgOFWgV
--HG--
extra : rebase_source : 32e0025f4a38fcf1113148cd6dbc4506af4a1ece
This brings us in line with Desktop's session store, in that we can now collect
data for arbitrarily nested frame structures.
At the same time, this also means that we no longer collect data for dynamically
added frames, so the corresponding mochitest needs to be adapted accordingly.
MozReview-Commit-ID: DfJ3C2ccUne
--HG--
extra : rebase_source : bbb2181d5596d21254d2f7394c1383a3979dcef4
When the scroll position is "0,0" or suchlike, the scrolldata ends up as null.
We still need something to store the zoom data on, though, so we add a fallback.
MozReview-Commit-ID: FE8BYB9nn25
--HG--
extra : rebase_source : ee16b1401b361e7a539e553da377ee0b1ae46b08
The copy-pasted description of mapFrameTree in GeckoView already claims to only
run the callback for *non*-dynamic child frames. With this patch we make
GeckoView actually do that and unify the behaviour with Desktop.
MozReview-Commit-ID: 6967vUcgB2r
--HG--
extra : rebase_source : 024dcda6d39e01ba8c9c2948a767200200383b37
Use the new array literal syntax from kotlin 1.2.
MozReview-Commit-ID: CaiG9aSD2T6
--HG--
extra : rebase_source : 4930c565b5758845e0928c1596069b0f68883fc0
Update the kotlin version used for GeckoView tests to 1.2.41. Also turn
on "warnings-as-errors", which is a compiler option introduced in kotlin
1.2.
MozReview-Commit-ID: 7cL2v4jFJ27
--HG--
extra : rebase_source : daf3c2f3ca24304faa10c399c4ef2bd145395ada
Added a static broadcast receiver that will inform us as soon as possible of any installed packages.
Because mma methods are static, if LeanPlum is enabled, the event will be tracked even if the app was not running when the new package was installed
and as per LeanPlum's internal workings the event will be reported to the dashboard when the application resumes.
MozReview-Commit-ID: AGNsQn7LuCz
***
--HG--
extra : rebase_source : 3d40a9f85036c0495b110409bff86e56f8b7c465
Fix all Java warnings in the Android codebase except deprecation and
serial warnings, and warnings in third-party code.
There is one required change to exoplayer2 code under thirdparty,
because that code is included directly in the geckoview project, instead
of the thirdparty project. I think I'll just make a pull-request to
upstream the change, instead of separating exoplayer2 into a
gv-thirdparty project.
--HG--
extra : amend_source : 29419a24db9b956a7f3ee573a63f7a055ed90636
kotlinc emits its warning/error messages as "w: <msg>" and "e: <msg>",
which Treeherder is unable to pick up. Rather than changing Treeherder,
it's best to make the change as close to the source of the message as
possible. I looked at changing mach to redirect the output of gradle and
make adjustments as necessary, but for some reason gradle doesn't want
to work with the pipes that mach sets up. So that leaves changing the
gradle build script itself.
This patch adds some code to detect the kotlin messages, and output an
adjusted version as necessary. It has the benefit of only dealing with
kotlinc output, so output from other tools should not be inadvertently
changed. However, due to the way it is implemented, it does duplicate
every warning/error output; for example, an error would now look like
this in the terminal:
<file>: error: <msg>
e: <file>: <msg>
I think this is an acceptable drawback.
Fix all Java warnings in the Android codebase except deprecation and
serial warnings, and warnings in third-party code.
There is one required change to exoplayer2 code under thirdparty,
because that code is included directly in the geckoview project, instead
of the thirdparty project. I think I'll just make a pull-request to
upstream the change, instead of separating exoplayer2 into a
gv-thirdparty project.
kotlinc emits its warning/error messages as "w: <msg>" and "e: <msg>",
which Treeherder is unable to pick up. Rather than changing Treeherder,
it's best to make the change as close to the source of the message as
possible. I looked at changing mach to redirect the output of gradle and
make adjustments as necessary, but for some reason gradle doesn't want
to work with the pipes that mach sets up. So that leaves changing the
gradle build script itself.
This patch adds some code to detect the kotlin messages, and output an
adjusted version as necessary. It has the benefit of only dealing with
kotlinc output, so output from other tools should not be inadvertently
changed. However, due to the way it is implemented, it does duplicate
every warning/error output; for example, an error would now look like
this in the terminal:
<file>: error: <msg>
e: <file>: <msg>
I think this is an acceptable drawback.