Most of the codebase that needs to create a debugger server
can use a server with all actors registered.
Define an additional method registerAllActors to do that.
By previous implementations, all the call sites that were
using browser: true were indirectly using tab & root: true
as well. So all the call sites using browser: true have been
migrated to registerAllActors and the specific behavior of
the browser: true case has been removed. Passing browser:true
to registerActors now only registers browser specific actors.
MozReview-Commit-ID: F3sx71eGrdG
--HG--
extra : rebase_source : 7704264e84d96e03a0c789103ff466980913d4d2
The windowType option of registerActors has nothing to do with
registering actors. It is only used in one spot in the codebase, so
switch this one to DebuggerServer.chromeWindowType = "..."; and
remove the option from registerActors.
MozReview-Commit-ID: QH6GKmTbVq
--HG--
extra : rebase_source : 13d70ddc21cae2b43cab2899c0e4b6f597c4f3ec
DebuggerServer.init() already bails out if it was previously initialized
so we could avoid guarding the calls to init() with it everywhere.
Registering an actor module several times is also a noop as the Server
keeps a map of all the already registered modules and will bail out if
the module is already known.
MozReview-Commit-ID: 4ONLlx9253i
--HG--
extra : rebase_source : a6fce209baf5e019b6a216761c01832a30332343
DebuggerServer has old APIs addBrowserActors & addTabActors that can be
replaced by calls to registerActors.
MozReview-Commit-ID: KpYJpbSHM8I
--HG--
extra : rebase_source : c7f20edf503b944ef2582b5fe73bd6d899c0d1cc
All tests are passed with stylo, So let's turn on stylo even if Android.
MozReview-Commit-ID: X0ORZUn60a
--HG--
extra : rebase_source : 61f0d3513114a2d0716d9e660eba98004ff85bbf
According to the documentation, aRequest may be null in some cases, and one such
case is when the location change was caused by a page using the history API.
MozReview-Commit-ID: AUlHBgzaKDX
--HG--
extra : rebase_source : a51770f17242f899adc566a3ebd8c09357600ef9
If the image request gets redirect on loading, HTMLImageElement.currentURI
(which corresponds to nsIImageLoadingContent.currentURI) would return the
original URI before redirect, making "Save Image" in the context menu use
incorrect URI and filename. Use currentRequestFinalURI instead to get
redirected URI.
MozReview-Commit-ID: Bd7Q36sH93b
--HG--
extra : rebase_source : 5a1cc56554d1429f3c5af1c8cecaa1d72471ed21
Remove GeckoLayerClient.java since it's no longer used, and update
auto-generated JNI bindings. r=me for trivial patch.
MozReview-Commit-ID: CiNPLLkh3VJ
--HG--
extra : rebase_source : 0cddae4f8914dd6f6a0631a7e69701828476f2b8
Move the GeckoLayerClient JNI callbacks to LayerSession.Compositor. Move
the rest of the viewport code to LayerView. Finally, move the input
event synthesis code to NativePanZoomController.
MozReview-Commit-ID: 1FEAM43KcwL
--HG--
extra : rebase_source : af2ded170a79f13afbb1f690ae466e77c7145ff6
Instead of sending an event through the global EventDispatcher in
GeckoLayerClient, switch to using the per-GeckoView EventDispatcher in
GeckoInputConnection, to handle scroll-to-focused-input-on-resize. This
lets us implement the same functionality for standalone GeckoView.
The patch also fixes some small bugs including unregistering
not-registered events, not scrolling when switching input focus, and
inadvertent scrolling when not showing the keyboard.
MozReview-Commit-ID: 20OZP9dMXtI
--HG--
extra : rebase_source : d9dee0fd8b3d01147b8b2eda5154c380d0f167dd
Patch gets rid of `LayerView.getMatrixForLayerRectToViewRect`, and just
uses `LayerView.getZoomFactor` directly when calculating the matrix in
GeckoInputConnection. This also lets us avoid the `isCompositorReady`
call on a non-UI thread. To get the correct offset, we need the screen
bounds from Gecko, so it's passed to Java as the first element in the
rect array. Using bounds from Gecko lets us avoid having to deal with
things like the dynamic toolbar animator ourselves.
MozReview-Commit-ID: 6I61SZGyQyO
--HG--
extra : rebase_source : d576fb7ef9a42de10b14db662e5c4833f16f6312
This drops the abuse of make dependencies to factor our steps
in l10n repacks and language packs.
It's replaced with clobbers, libs, and the packaging, which
can be shared between installers and the language pack.
MozReview-Commit-ID: 2vEHp0QogXQ
--HG--
extra : rebase_source : c14f0b17904f8f9e0e3f004384c2a292ceeafe4f
extra : source : e95f8bd7b5190bf1d3fae75a88a15ebbe6613809
Pass in the flag names for Tab:OpenUri so we don't have to worry about
synchronizing the flags in Java with ones in C++. r=me for trivial
patch.
MozReview-Commit-ID: BowjLV1s7nT
If the image request gets redirect on loading, HTMLImageElement.currentURI
(which corresponds to nsIImageLoadingContent.currentURI) would return the
original URI before redirect, making "Save Image" in the context menu use
incorrect URI and filename. Use currentRequestFinalURI instead to get
redirected URI.
MozReview-Commit-ID: Bd7Q36sH93b
--HG--
extra : rebase_source : b88ccf98bc2a41aac007d79060424eaa2c2aca88
All tests are passed with stylo, So let's turn on stylo even if Android.
MozReview-Commit-ID: X0ORZUn60a
--HG--
extra : rebase_source : f93f979711ab5f16eb3ced1d07e3c6d83464a6f0
Use the LayerSession coordinates APIs instead of manually calculating
coordinates using viewport metrics and toolbar height, which is prone to
error.
MozReview-Commit-ID: 4ebI3BHEOXR
--HG--
extra : rebase_source : 264f03f3032f101687c2a39d1cf052ac1805f12b
Provide a set of coordinates APIs in LayerSession instead of exposing
the raw viewport metrics, which are hard to use. This also lets us
remove ImmutableViewportMetrics completely.
The new APIs provide rectangular bounds in client or surface
coordinates, and matrices to transform those coordinates to screen
coordinates. This is done because the transformation to screen
coordinates could (in the future) involve skew, rotation, etc, so it's
up to the application to decide how to handle non-rectangular screen
bounds.
MozReview-Commit-ID: 8Yw8L63TmrQ
--HG--
extra : rebase_source : 76954d32da9fb8435ec68ea53b6dc618f8cb0121
Remove all DynamicToolbarAnimator-related code from LayerView now that
they are in LayerSession.
MozReview-Commit-ID: 56AO79T3NoK
--HG--
extra : rebase_source : 7685806436d43dc203cc034dd5105eb1f9c80a94
Use DynamicToolbarAnimator through the session in places where we need
to interact with the toolbar or get the current toolbar height.
MozReview-Commit-ID: PdGX4FEHp5
--HG--
extra : rebase_source : 825fc70b584eb4b75f0ce9bd21a36c68f700c8c2
Add getter/setter for DynamicToolbarAnimator in LayerSession in lieu of
LayerView. It is then LayerSession's responsibility to keep track of how
changes in the toolbar affects other things like the window and viewport
bounds.
MozReview-Commit-ID: HmRqxZ7EUCZ
--HG--
extra : rebase_source : 80648a17ed10672400daa4bcce0de49f4ee76557
The plan is to incorporate DynamicToolbarAnimator into the official
GeckoView API and expose getter/setter in LayerSession. This patch
cleans up the class to make sure only public APIs are public, and to
assert they are called on the UI thread.
MozReview-Commit-ID: D3ePV3k2HvX
--HG--
extra : rebase_source : b1925ff484b5661f3a02f66079d4834961efffbe
This code is supposed to reposition the form assist popup if the toolbar
appears or disappears while the popup is visible, but we can move that
to a resize event listener in JS, so we don't have to maintain
the MetricsListener API for DynamicToolbarAnimator.
MozReview-Commit-ID: HR6wcJrGloR
--HG--
extra : rebase_source : a330a181bd352ad0028cb2a8faf1f92470189ead
One fix I forgot to make in bug 1416310 is to change the code to reset
the flag in LayerView. I think it's better if we just moved the whole
thing to native code, since we don't really use the flag in Java.
MozReview-Commit-ID: 9cbcYb89LhC
--HG--
extra : rebase_source : a209669d6657a60c198f59f4a0e4d959478485c3
Same issue as bug 1374251 now that keywords are editable as well.
MozReview-Commit-ID: AJyDRAAN2IR
--HG--
extra : rebase_source : 8e99338ca8b4d79ea2ea95451d045476cb76ba51
--enable-elf-hack is the default on all platforms where it's supported,
and is completely ignored on platforms where it's not supported.
While moving the flag to moz.configure, we're going to make it only
work on platforms where elfhack is supported, so we at least need to
remove it from mozconfigs for those platforms where it's not supported.
But generally speaking, we want less things in mozconfigs, so just
remove it from there, since it's the default anyways.
Since we want to update our fork of Leanplum SDK as minimum as possible, this patch only pick the patch from Leanplum repo:
https://github.com/Leanplum/Leanplum-Android-SDK/pull/41
MozReview-Commit-ID: 5qFgH9xhHfy
--HG--
extra : rebase_source : 411dbdb11f4b9c826118bc39f9f137ec65836b4e
I didn't check if currently the app is using dark theme(LightweightTheme) or not.
Cause that requires some hacky injection to let Leanplum SDK knows the status bar corlor or dark theme or not.
MozReview-Commit-ID: 4Twe59Gw6mS
--HG--
extra : rebase_source : a4fd4db28ccb9b210a547b328af72c6390a038d0
Remove most of the Compositor and Surface management code in LayerView.
And use LayerSession.Compositor in rest of the gfx code.
MozReview-Commit-ID: 5E9pj3eGHlv
--HG--
extra : rebase_source : 0b0a64113db58aaf376c98d5480f5cf31174a3d3
Add a `screenOriginChanged` callback to GeckoDisplay.Listener, which
informs Gecko of changes in the origin of the display. The origin
translates to coordinates for web APIs like screenX/screenY and certain
other calculations.
Also, make GeckoDisplay listen to layout changes in the view tree (by
overriding gatherTransparentRegion as an optimization), and call
`screenOriginChanged` accordingly.
MozReview-Commit-ID: C72EHCkbV3T
--HG--
extra : rebase_source : 240c5c8fb3c2938ae966f40e86f7c5a0ca66526c
Make GeckoView implement GeckoDisplay for its own SurfaceView, and use
that with GeckoSession.
MozReview-Commit-ID: LXllQGlCxaB
--HG--
extra : rebase_source : 1b41e411b2c293797d572d584c4f2b7036e83b23
Make GeckoSession inherit from LayerSession, and connect its Compositor
to native code as part of the GeckoSession routine.
MozReview-Commit-ID: wQaH1A0a7z
--HG--
extra : rebase_source : ee4ae96e974d15c8cb9ad569ea9abf0ace4d0fa5
Add a LayerSession class that's split off LayerView. Currently,
LayerSession takes over Surface management and the Compositor class from
LayerView. Eventually, all of LayerView will migrate to LayerSession.
MozReview-Commit-ID: F1ozOfZGY2g
--HG--
extra : rebase_source : eaf42122db1238c99b0da1e689bc365180a2835f
Introduce a GeckoDisplay interface for interaction with GeckoSession.
MozReview-Commit-ID: 13prgWaPqKU
--HG--
extra : rebase_source : 282b27a1f7c11cf4e559b1f25946c3f4574e900a
We don't actually use the screen size through GeckoLayerClient anymore.
Getting rid of it lets us get rid of the Context field in
GeckoLayerClient as well.
MozReview-Commit-ID: GM1jlhAZm4T
--HG--
extra : rebase_source : 04827eb61d6304d4782a7a935d5528013255726f
This patch makes the :geckoview Gradle project only use
o.m.geckoview.BuildConfig, and makes the :app Gradle project use all
of the preprocessed code coming from the moz.build system.
Eventually, we'll reduce that set of preprocessed code to only
o.m.gecko.BuildConfig, which will then be produced by Gradle.
MozReview-Commit-ID: Dnkde7axyZL
--HG--
extra : rebase_source : dc0b7f9fa542cbfd9c665bfac761d45f5957f7b8
Some of these make no sense for GeckoView, but perfect is the enemy of
the good here.
MozReview-Commit-ID: 9MwRkc61v9P
--HG--
extra : rebase_source : 8e7fa8102c615f34dbd76394fb6877188007c3c7
Versions is no more efficient than checking android.os.Build, and it
actually interferes with the Android lint that checks API
compatibility.
MozReview-Commit-ID: Cl1227uHWKZ
--HG--
extra : rebase_source : 91ceba45906ad5fbb47d55c982ecbb65569a3f00
Avoid crash in `GeckoLayerClient.getMatrixForLayerRectToViewRect` by not
calling `isCompositorReady`. If the compositor is really not ready, we will
return inaccurate data, but that's acceptable. r=me for trivial patch.
MozReview-Commit-ID: HobHchWYQ5D
Add BrowserLocaleManager.refreshLocales, a native function which calls OSPreferences::Refresh, and BrowserLocaleManager.getLocale, which returns the current locale string. Use these in place of observing modification of the intl.locale.os pref.
LOCALE_THOUSANDS_SEP, LOCALE_DECIMAL_POINT and LOCALE_GROUPING are only used by
old code without ICU. Since we turn on ICU with ECMA-402 support, it is
unnecessary to set LOCALE_THOUSANDS_SEP, LOCALE_DECIMAL_POINT and
LOCALE_GROUPING in GeckoLoader.setupLocaleEnvironment.
MozReview-Commit-ID: LlGQdLlM7I2
--HG--
extra : rebase_source : 559fafd4ded9e351805fdd7b10e7aaebfc09637e
Usually when we handle notification events, we try to launch whatever
Activity showed the notification so that the user can see results.
However, only BrowserApp supports being launched this way, so we should
restrict launching Activites to BrowserApp. For others like
CustomTabsActivity, we should just handle the notification event
directly. Currently, only download notifications are supported for these
other Activities, so it's okay if we don't display the Activity.
MozReview-Commit-ID: CNVRSEWBOQ6
--HG--
extra : rebase_source : 79392e1d26a969b6a90dcb976b13dae91fc75241
Usually when we handle notification events, we try to launch whatever
Activity showed the notification so that the user can see results.
However, only BrowserApp supports being launched this way, so we should
restrict launching Activites to BrowserApp. For others like
CustomTabsActivity, we should just handle the notification event
directly. Currently, only download notifications are supported for these
other Activities, so it's okay if we don't display the Activity.
MozReview-Commit-ID: CNVRSEWBOQ6
--HG--
extra : rebase_source : 79392e1d26a969b6a90dcb976b13dae91fc75241
Bug 1345294 introduced nsPrefBranch::{get,set}StringPref(), which allowed the
getting of utf8 strings from prefs, which previously required using
nsISupportsString with {get,set}ComplexValue. That bug also converted most
uses.
This patch finishes the job.
- It removes the nsISupportsString support.
- It converts existing code that relied on the nsISupportsString.
- It removes the lint that was set up to detect such uses of nsISupportsString.
--HG--
extra : rebase_source : b885ee784704819e181430200af5ef762e269d14
Upgrading to the Android-Gradle plugin 3.0+ broke |mach android test|
locally. This addresses the issue.
MozReview-Commit-ID: 3vV47ET7d19
--HG--
extra : rebase_source : aaf7a550f8b2776a41d55fdce2c43c0c8c473331
This is part of a larger project to standardize our source locations.
MozReview-Commit-ID: Gbh9qSW7RJY
--HG--
rename : mobile/android/app/assets/example_asset.txt => mobile/android/app/src/main/assets/example_asset.txt
rename : mobile/android/app/assets/parental_controls_theme.png => mobile/android/app/src/main/assets/parental_controls_theme.png
rename : mobile/android/app/assets/publicsuffixlist => mobile/android/app/src/main/assets/publicsuffixlist
extra : rebase_source : e73b7d579e02984e6e2a4a3c746c515a69768568
The following prefs are removed because they are defined in gfxPrefs, but the
resulting gfxPrefs property is used at all.
* gfx.SurfaceTexture.detach.enabled
* gfx.touch.resample.*
* gfx.screen-mirroring.enabled
MozReview-Commit-ID: CyI3JN4TTu5
Bug 1345294 introduced nsPrefBranch::{get,set}StringPref(), which allowed the
getting of utf8 strings from prefs, which previously required using
nsISupportsString with {get,set}ComplexValue. That bug also converted most
uses.
This patch finishes the job.
- It removes the nsISupportsString support.
- It converts existing code that relied on the nsISupportsString.
- It removes the lint that was set up to detect such uses of nsISupportsString.
--HG--
extra : rebase_source : fb7af066adfa0491a79fae6282a62b08661553c8
Upgrading to the Android-Gradle plugin 3.0+ broke |mach android test|
locally. This addresses the issue.
MozReview-Commit-ID: 3vV47ET7d19
--HG--
extra : rebase_source : c31e876969b0aff6cf7711fcb2227f6ca0d4fe46
This is part of a larger project to standardize our source locations.
MozReview-Commit-ID: Gbh9qSW7RJY
--HG--
rename : mobile/android/app/assets/example_asset.txt => mobile/android/app/src/main/assets/example_asset.txt
rename : mobile/android/app/assets/parental_controls_theme.png => mobile/android/app/src/main/assets/parental_controls_theme.png
rename : mobile/android/app/assets/publicsuffixlist => mobile/android/app/src/main/assets/publicsuffixlist
extra : rebase_source : dad3ded6a41d60989921b437dcf91181854c7b5a
Fix a bug where GeckoView becomes unresponsive to dispatched events
after restoring states, due to the native queue not being restored.
r=me for small, tested patch.
MozReview-Commit-ID: K1cVjjNaZK1
--HG--
extra : rebase_source : b1329c84d82f5bdc06767bf310ca87e52ff6ec9b
As of bug 1366672, case START no longer falls through in order to allow for a
different behaviour of the progress indicator, however we still need to add
UpdateFlags.PROGRESS, so that the stop button shows up as soon as a page starts
loading.
MozReview-Commit-ID: 3P33JEsS5ic
--HG--
extra : rebase_source : 4f83ab57613df31cdd4f392c478df33a992c95af
The old GeckoView was renamed to GeckoSession, so the old
GeckoViewHandler and GeckoViewSettings should be renamed to
GeckoSession.. as well. GeckoView JS files are left alone and may be
converted in a future bug. r=me for trivial patch.
MozReview-Commit-ID: BJTwugWboKf
--HG--
rename : mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoViewHandler.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoSessionHandler.java
rename : mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoViewSettings.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoSessionSettings.java
extra : rebase_source : d6e55620b8588174bff801f3f7b436f67e9b3f32
Remove PresentationView, which is no longer used. r=me for trivial
patch.
MozReview-Commit-ID: DKcysGTXXC7
--HG--
extra : rebase_source : e7f015e167ea1138903891e24bf215bfabefc141
Change places where we use GeckoView to use GeckoSession instead.
MozReview-Commit-ID: InT4i1MaoBe
--HG--
extra : rebase_source : 67f57d5b00818292b8d273665e60f81a11097eea
With the old GeckoView renamed to GeckoSession, add a new minimal
implementation of GeckoView that manages View lifetime but delegates
most tasks to GeckoSession.
MozReview-Commit-ID: 9FFdLpTfPQY
--HG--
extra : rebase_source : 596866e9121265bf0529648926a71d1dfe3b2976
* Move the chromeUri and screenId settings to GeckoViewSettings.
* Add a private data-dir setting that the debugger-socket-dir setting
falls backs to. Set the data-dir setting inside `GeckoSession.openWindow`.
* Add optional init-only and values properties for settings.
* Use integer constants for display-mode setting.
MozReview-Commit-ID: HgJg0t0oade
--HG--
extra : rebase_source : 537689d93202e4201e879bae9e073ceb4489190b
Rename GeckoView to GeckoSession. Strip out parts of it that depended on
being a subclass of View. Also strip out parts of it that dealt with
switching EventDispatcher and NativeQueue, because now there's only one
copy of each for each GeckoSession.
MozReview-Commit-ID: J699twtpmTS
--HG--
rename : mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoSession.java
extra : rebase_source : 60e045f6f1e6a70dcabc03f5a32cae5576c2edd8
Right now, `GeckoView.Window.open()` consists of opening a new Gecko
nsWindow and attaching it to the opening GeckoView. This patch separates
the attaching step into an `Window.attach()` function that was renamed
from `Window.reattach()`. Going forward, `Window.open()` and
`Window.close()` will correspond to opening and closing a session, which
`Window.attach()` will correspond to attaching a display to a session.
MozReview-Commit-ID: 94Un74pwizY
--HG--
extra : rebase_source : a7d9c6c3227de4b05e800d77a184f1deae9af5f8
There's nothing that makes sense in the existing setup; we're only not
getting bitten because the set of things that _do_ depend on all of
the flags that differ between the underlying Nightly builds and
single-locale repacks is small, and nobody has complained. For
example, about:licenses probably does not include the Adjust SDK
license for single-locale repacks.
This patch series recompiles the Java code as part of each
single-locale repack, and that means the feature flags, etc, need to
be the same between the underlying compiled code (from the underlying
Nightly build) and the fresh Java compile. This patch tries to
harmonize the two.
MozReview-Commit-ID: 230q7HuD1vV
--HG--
extra : rebase_source : 1be8a389ed289c788add4d3e95c540f29165cf6b
extra : source : d7f794ec69ccd38d66ec5394fac7cc6658e29ce4
Single-locale repacks do the following:
Download existing APK; unzip APK; update l10n resources; |mach package| with IS_LANGUAGE_REPACK=1.
This is pretty hard to accommodate, but we can try. The key issues
here are to recognize when IS_LANGUAGE_REPACK=1 and not ask for l10n
resources (in particular, strings.xml) to be generated.
We do need to include the freshly built classes.dex when repackaging,
because newer Gradle/aapt doesn't preserve the R.java IDs.
MozReview-Commit-ID: 9FvQtmPOUjg
--HG--
extra : rebase_source : b0440ceb318662bf3c08f2139c51dae5775a6b38
Bug 1297850 removed the only consumer of the background colour on the Java side,
so this can go as well.
MozReview-Commit-ID: DJwrUVUHZ1t
--HG--
extra : rebase_source : be2b5068c57878ff556d1af16eb1df5d5a8779aa