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.
The Fennec CrashReporter class is also renamed to
CrashReporterActivity. When running in Fennec, the Activity will be used
which retains what we do today, prompting for comments, email, etc. When
used in standalone GeckoView, we report the crash without user
interaction if the appropriate GeckoRuntimeSetting was set. The app will
want to ask for user permission at least once in order to set this.
We do not collect the URL, email, or logcat with GeckoView crashes.
Logcat and URL would be nice to have, but it's not clear what the API
for those would look like, and they can be addressed in followup
patches.
MozReview-Commit-ID: C5ROsUKreRe
Right now we pass a bundle to GeckoLoader.setupGeckoEnvironment() with
magic keys representing the environment variables. Instead of this,
simply pass a list of Strings.
MozReview-Commit-ID: D6mSTnYpnGu
Manually-implemented QueryInterface functions don't benefit from the
MozQueryInterface optimizaions, and a lot of them are in hot code, and
implement a large number of interfaces.
MozReview-Commit-ID: 8OzglraowZt
--HG--
extra : rebase_source : 5fff3d9973a0ea976096339a63ce9ff628b68441
This also removes any redundant Ci.nsISupports elements in the interface
lists.
This was done using the following script:
acecb401b7/processors/chromeutils-generateQI.jsm
MozReview-Commit-ID: AIx10P8GpZY
--HG--
extra : rebase_source : a29c07530586dc18ba040f19215475ac20fcfb3b
Add some tests in GeckoSessionTestRuleTest for evaluateJS(), including
checking the results from a variety of expressions.
MozReview-Commit-ID: 9KWIhTogSCg
--HG--
extra : rebase_source : c3ce742e7c0ba6293c1d3d0e3ad47f8b5efc648c
Add the GeckoSessionTestRule.evaluateJS() API to evaluate JS expression
in a particular session. The API is enabled by the new @WithDevToolsAPI
annotation that enables RDP connections to Gecko.
MozReview-Commit-ID: 1cuX359t2Wn
--HG--
extra : rebase_source : d61f8f1f4a3a5dfb3dcde2e271866746c2242cfc
Add a small Gecko remote debugging protocol client to the test framework
that's enough to communicate with the console API to evaluate JS
expressions.
MozReview-Commit-ID: HbQ1X8f3jEW
--HG--
extra : rebase_source : d01d4ef6053f89d9abd0b9da231b3022bb1fddfe
We should be able to load pages without a navigation delegate attached.
MozReview-Commit-ID: DvSxFsi9Oe4
--HG--
extra : rebase_source : 7e5bfb86be0027d3754d2813924002af8f601bd0
Add a test for correctly updating module states after transferring, so
that, for example, if we transfer a session with a null delegate to
another session with a non-null delegate, the corresponding module will
be automatically enabled.
MozReview-Commit-ID: IHskWAJ584i
--HG--
extra : rebase_source : 7c5c7f86c04670947773c8c85c34740ddc6a6de4
Add some test for proper @NullDelegate behavior.
MozReview-Commit-ID: L845TORdzem
--HG--
extra : rebase_source : 8fd3438d133989c7f63846f7387f1f07faa46fbf
Add an annotation for setting a particular delegate to null on test
start instead of to the proxy object. Assert that a null-delegate is
never used for any of the wait or delegate methods, because those
methods would never succeed with a null-delegate.
MozReview-Commit-ID: DhvOIJXoMCh
--HG--
extra : rebase_source : 57032473ec7d342603997b74b60c4bb34c6e9fd2
To allow users to opt-out from receiving LeanPlum messages we need a new setting added.
This are the Strings for the title and summary of that setting.
Localization notes also added as this Strings will ship before the feature.
Decided to suppress all UnusedResources Lint errors for android strings until the patch for #1454686 lands as using in-line suppression caused other errors.
Ran Lint locally, the build passed.
MozReview-Commit-ID: 9Kx567ruY3n
***
--HG--
extra : rebase_source : acb555719b4da9199364ca737ff140012dacb47c
After investigating and analyzing the crash reports this type of scenario can occur due to multi-window or some popups. We are tracking this scenario for further investiagion with a telemetry event. Also added a constant for the hardcoded telemetry event when onPause gets called before onResume.
MozReview-Commit-ID: 2qXCYFyjlce
--HG--
extra : rebase_source : 9883fbc38864d93e653d27f270667b3976bbfbf9
I think that the intermittent error in the bug may be caused by
a pending executeScript call that is somehow handled around the
shutdown of the extension.
To verify this hypothesis, the test now explicitly waits for the
result of the first executeScript call before executing the last
script that is responsible for test completion.
The test should explicitly be checking for the error anyway.
And clean up comments and add reference to bug 1435100 in an
existing comment.
MozReview-Commit-ID: 6gV30Z6zQc4
--HG--
extra : rebase_source : d2d2f20336390ef61fefe247b3d1ae8668da7067