Moving speculative connection from CLH to GeckoApp allows us to start
the speculative connection very early in the startup process rather
than later in startup.
One thing we do in the Fennec CLH is to make a speculative connection
based on the URI that's passed in. However, by the time the CLH runs,
we're far along into startup, and the advantage of a speculative
connection is reduced. This patch implements making speculative
connection as a method in GeckoThread, so that Fennec can make a
speculative connection without relying on the Fennec CLH.
Many Gecko operations depend on the profile being available. This
patch adds a PROFILE_READY Gecko state so that we can queue calls
until profile is loaded.
Many calls are associated with a Gecko state when they become available.
For example, calls that only depend on XPCOM become available very early
in startup, at the JNI_READY state. However, calls that depend on JS
components may only be available at the end of startup, at the RUNNING
state.
This patch adds an available state to every queued call, so that calls
can be made as soon as they become available, which is important for
calls like making speculative connections.
The enabled/disabled colors are set via ColorStateLists so the alpha
is unnecessary.
--HG--
extra : commitid : 3u4xoGQlD3E
extra : rebase_source : 0b9868ed14ad54d8de17f2b4cd12185b78e1c22a
This patch has a side effect of changing the color of the forward
button as it animates forward and back, but it's minimal enough
that I'm okay with it, and it cleans up disabled/private state color
management (particularly after the following patch).
--HG--
extra : commitid : B1r30FDcCZv
extra : rebase_source : 1107016d428ac01c6331048b415736b79c634529
Previously, it was available in MenuItemActionBar, which extends
ThemedImageButton.
Additionally, fix a bug about using android:tint when drawableTintList was not
used.
--HG--
extra : commitid : AZiAsNQkD4c
extra : rebase_source : c54b361b27aa6b7d14c030409ad86531a9516549
Currently, all versions of Firefox run with the existing native
Firefox Account UI. This flag will opt-in to maintaining that
experience while we transition to a web account UI. Once we're stable
on the web, we'll remove this flag entirely.
--HG--
extra : commitid : CmokCKcYNJQ
extra : rebase_source : eb7e8f136f9a5134f84c8dbe111841b72827146a
Note that this file is auto-generated from generate_themed_views.py.
--HG--
extra : commitid : 2b6fhN8Wts0
extra : rebase_source : bc26ceb131a74434d99695660fd104893a16d5b7
This was originally implemented in bug 1169435 but not carried over to the
template.
--HG--
extra : commitid : 6apREWAyPi2
extra : rebase_source : 31d415df11eae0141df70e03b7c59b6f28aeaa2a
DONTBUILD NPOTB
This means we don't require the directory in the object directory at
gradle-install time. We're not concerned if the resource files are
missing, since we have code to ensure they're fresh already; and if
they are missing, we'll quickly fail as we try to process the resource
set.
--HG--
extra : histedit_source : 04767c8e86c7012ed3c46564e5660b17e1355607
extra : rebase_source : 658cedf4a698d603571153cefb128b87a6ad6a2e
extra : commitid : DIwvp3ib9Z9
extra : source : 00e1cd6d04c03a65433b01cea194edf7c9d7c835
extra : amend_source : 244a950264c0d10cf495a3a7d7d5ef52eab2da14
This means we don't require the directory in the object directory at
gradle-install time. We're not concerned if the source files are
missing, since we have code to ensure they're fresh already; and if
they are missing, we'll quickly fail as we try to compile with missing
sources.
--HG--
extra : commitid : IIuTcQiEJ37
extra : rebase_source : 640e8f2005b71d1c79719dcecc56efb8540341fa
extra : source : f8bc8f04b3c01cf62403f09cc3a4b37826e280bc
extra : histedit_source : 34335f47dd33a07585ef8e8a24bdc7cb43b62239
This allows us to not require dist/fennec/* to exist in the object
directory at gradle-install time. It gets us one small step closer to
being able to sit down to a fresh source tree and open a Fennec
project in IntelliJ.
--HG--
extra : commitid : KNnKth56I1L
extra : rebase_source : b4fae1033335760dd3d6d9b8b71ffb7bbb1a6906
extra : source : 7b5b6adc5ac69fd733f9937dd846c52bff36af0a
extra : histedit_source : cb05d3690f909db51cd6116cc80b070f62338001
This was just an oversight. The Gradle configuration referenced
topsrcdir rather than having a symlink via the objdir. This didn't
impact the Gradle build, but it did make the preprocessed_code Gradle
project appear outside of the root Gradle project in IntelliJ.
--HG--
extra : commitid : As00AcCfYkr
extra : rebase_source : 1d5b79f5e4439306a5a9e7d625e39ef97d37d1eb
extra : source : fcec6d827887e3e64ebd610ef4f893d11dde52ab
extra : histedit_source : 70790f27c201462e5346660f5eb39e39303bdc8d
It's convenient to know that the object directory is up-to-date (after
|make gradle-targets|) before any Gradle project builds.
--HG--
extra : commitid : 2WaqMEqw3mx
extra : rebase_source : 2dea8249b329d82d9c89b5defa7e13d4aff60566
extra : source : eb170abcc91b4714874e97b58b371e242aee9699
extra : histedit_source : 92a62bd75dfa289f3ede4592d4a224ad135d3b6b
We could remove tablet_* and move these values to the values-large
configuration but it's scope creeping for not much gain. The
attributes are prepended with tablet_* so they should be easy to
fix in the future should we choose to.
Refactoring automated w/ Intellij.
--HG--
extra : commitid : 5hpv5cg2MUF
extra : rebase_source : 696b181495e6943effd40f0db5051c647ab54bda
DONTBUILD NPOTB
We're seeing build failures since 6.5.+ doesn't match 6.5.87. This
shouldn't be fuzzy, and it shouldn't be an ancient version of Google
Play Services either. (In moz.build local builds , we're using a much
more recent version. In automation, I'm not certain what we're
using.)
--HG--
extra : commitid : 6EjfXxM9FJy
We were doing this on tablets but I forgot to add the lines to make it work on
phones.
--HG--
rename : mobile/android/base/resources/color-large-v11/action_bar_menu_item_colors.xml => mobile/android/base/resources/color/action_bar_menu_item_colors.xml
extra : commitid : 7mMxelznMN2
extra : rebase_source : 8407550ba68936fcc4eb344680a6c578d18707c5
It seems the other attributes are not used on tablet so there was
no need to make a base style here.
--HG--
extra : commitid : BhP12EMHRbC
extra : rebase_source : 1a8153082fe5917b2c628fe0e5b19cdc5c850ca6
I feel like there's a better way to do this than using *Base, but
this is our current convention.
--HG--
extra : commitid : 4AFy34jzKw1
extra : rebase_source : 3befc2781abc759fe715e435458965dd296af361
I wasn't using the wrapped drawable when setting the icon, which
curiously works on L+ devices, but not pre-L.
--HG--
extra : commitid : 9CZQGehAOIh
extra : rebase_source : 1f73a543049fa48a1e76e17b9042edb3354164d4
Note that this not the originally reviewed patch in the bug, but a re-run of
the algorithm that produced that patch.
--HG--
extra : commitid : 51DOIx3PKb8
extra : amend_source : f2e6b601240a9b31df7aadd96f6c53f0a6c430ef
This involved renaming the existing tab_strip layout to tab_strip_inner
as it was originally contained within the new_tablet_tab_strip
layout.
--HG--
rename : mobile/android/base/resources/layout-large-v11/tab_strip.xml => mobile/android/base/resources/layout-large-v11/tab_strip_inner.xml
extra : commitid : BcURubawZQu
extra : rebase_source : f5fa77ecc956d93e0498670c87c73bc7046b6d0b
tablet_* is not ideal but there is a collision between phone and tablet assets
so I filed bug 1193585 to complete this process.
--HG--
rename : mobile/android/base/resources/drawable-large-hdpi-v11/new_tablet_tab_close.png => mobile/android/base/resources/drawable-large-hdpi-v11/tablet_tab_close.png
rename : mobile/android/base/resources/drawable-large-hdpi-v11/new_tablet_tab_close_active.png => mobile/android/base/resources/drawable-large-hdpi-v11/tablet_tab_close_active.png
rename : mobile/android/base/resources/drawable-large-xhdpi-v11/new_tablet_tab_close.png => mobile/android/base/resources/drawable-large-xhdpi-v11/tablet_tab_close.png
rename : mobile/android/base/resources/drawable-large-xhdpi-v11/new_tablet_tab_close_active.png => mobile/android/base/resources/drawable-large-xhdpi-v11/tablet_tab_close_active.png
rename : mobile/android/base/resources/drawable-large-xxhdpi-v11/new_tablet_tab_close.png => mobile/android/base/resources/drawable-large-xxhdpi-v11/tablet_tab_close.png
rename : mobile/android/base/resources/drawable-large-xxhdpi-v11/new_tablet_tab_close_active.png => mobile/android/base/resources/drawable-large-xxhdpi-v11/tablet_tab_close_active.png
extra : commitid : LWgCmYlShK3
extra : rebase_source : 3ffb229ec8331fe5f6a67ba15efbb307756d6f36
Also removed the drawable/ null reference because it was unneeded.
--HG--
rename : mobile/android/base/resources/drawable-large-v11/new_tablet_tab_strip_button.xml => mobile/android/base/resources/drawable-large-v11/tab_strip_button.xml
extra : commitid : 77namFkyFSm
extra : rebase_source : 9b6b79c3e48a8606c53fe24ef98db5302ff09e09
Similar deal to the previous two changesets on back and forward.
--HG--
rename : mobile/android/base/resources/drawable-large-hdpi-v11/new_tablet_ic_menu_reload.png => mobile/android/base/resources/drawable-large-hdpi-v11/ic_menu_reload.png
rename : mobile/android/base/resources/drawable-large-xhdpi-v11/new_tablet_ic_menu_reload.png => mobile/android/base/resources/drawable-large-xhdpi-v11/ic_menu_reload.png
rename : mobile/android/base/resources/drawable-large-xxhdpi-v11/new_tablet_ic_menu_reload.png => mobile/android/base/resources/drawable-large-xxhdpi-v11/ic_menu_reload.png
extra : commitid : 2ZRttx8PHA7
extra : rebase_source : d8013c0beb117393be1896b4aced64fb2b6ab89e
This involved removing drawable-large-v11/ic_menu_forward.xml, which
was a null reference presumably there to save memory when the
browser_app menu loaded the forward menu item. Also, the
new_tablet_ic_menu_forward null reference for API 9 builds was
removed.
--HG--
rename : mobile/android/base/resources/drawable-large-hdpi-v11/new_tablet_ic_menu_forward.png => mobile/android/base/resources/drawable-large-hdpi-v11/ic_menu_forward.png
rename : mobile/android/base/resources/drawable-large-xhdpi-v11/new_tablet_ic_menu_forward.png => mobile/android/base/resources/drawable-large-xhdpi-v11/ic_menu_forward.png
rename : mobile/android/base/resources/drawable-large-xxhdpi-v11/new_tablet_ic_menu_forward.png => mobile/android/base/resources/drawable-large-xxhdpi-v11/ic_menu_forward.png
extra : commitid : CWYwQraUXq0
extra : rebase_source : 5e7773df6166f61748534bd92fa11f6b179b7c9d
When styles are only used once, there is no need to clutter up the
styles files for them.
--HG--
extra : commitid : 9LWpjKAugdG
extra : rebase_source : aabc89058146bdaa7b79168e4bd5b3584a3268e8
We could do this in many more places, but this is a start.
--HG--
extra : commitid : Bzhu8kLPbnF
extra : rebase_source : a1d8473b2fb9c16a5b05f2292280c093f90f0942
There were some of these in the drawable-large-* directories and this file is
only used in large+ configs, so it is unused.
--HG--
extra : commitid : FuHqXQ11ISf
extra : rebase_source : c6a25a3bff7a5fb371f74af83c2dec578dc975c5
drawable/action_bar_button is used on tablets in some layouts
(e.g. tab_history_item_row) so we can't shadow it in
drawable-large-.../action_bar_button.
--HG--
rename : mobile/android/base/resources/drawable-large-v11/new_tablet_action_bar_button.xml => mobile/android/base/resources/drawable-large-v11/browser_toolbar_action_bar_button.xml
extra : commitid : BLxM1gazT1s
extra : rebase_source : 37099b8d31e1684993cc071c5359a05ccff97fc6
On a CLOSED TREE.
This works around AbsolutePath-related failures in config/tests/test_mozbuild_reading.py.
--HG--
extra : commitid : DoE7xmgqF3n
extra : amend_source : 5b10f40681a793c9f25536a2a7191494eb06522d
This moves a little bit more of mobile/android/base/Makefile.in into
moz.build, and gets closer to moving that aapt invocation into
java-build.mk.
There are no other extra package consumers in the tree. (There should
be a new one shortly: b2gdroid.)
--HG--
extra : commitid : AaYqXYReOSX
extra : rebase_source : d41368ff0bd0736221fdc04ed8299b70c2488c8b
extra : histedit_source : 845efd5ba9f99f4e186c3a5c66affe69eac7fec7
This paves the way for defining additional Android packages in
moz.build, which is a step toward moving the special
mobile/android/base/Makefile.in aapt invocations into the generic
java-build.mk framework.
The new variables are both passthru variables for now: in the future,
we'll roll them into some aggregate Android APK definition.
It's worth noting that references to the variables in Makefile.in
files are only defined after including rules.mk (and thereby
backend.mk). This only required a few changes in the tree but it
confused me for some time.
--HG--
extra : commitid : G5mEvm8Ng4F
extra : rebase_source : 7ba05f2e53554549ffb5cefe270925e3e2025b6a
extra : histedit_source : eacd22f4b7edddab67147c413fea45a3ba292c0c
This is just cruft; I didn't want to think about it when working on
the other parts. Bug 1196367 tracks removing the AndroidEclipse build
backend that consumed these definitions entirely.
--HG--
extra : commitid : 6fhp66SAwrq
extra : rebase_source : bdcab113f386d1083bcf558baec44e1640382514
extra : histedit_source : 4787ba24dae382eb904a8095285c4bac8a55cf56
GARBAGE is set automatically by PP_TARGETS.
The fragment does not need to be preprocessed at all, since it is
itself included in a preprocessed file. Including the fragment in
all_resources is therefore not needed, since it is just itself
included in a file.
--HG--
extra : commitid : Bcc3HOOnCRk
extra : rebase_source : f05854ca368b51e2e5ac9f1f17feda29a570cb5f
extra : histedit_source : 007f5d116f333fc1a537057a04507d3c327d6c60
First we need to set the Gecko thread JNIEnv* in nsAndroidStartup, but
after that we can initialize and deinitialize the rest of JNI, including
AndroidBridge, in GeckoAppShell. This makes nsAppShell control the
AndroidBridge lifetime. Over time, parts of the AndroidBridge
functionality will be migrated to nsAppShell.
GeckoAppShell.runGecko really should be in GeckoThread because
GeckoThread already takes care of most of the preparation when running
Gecko. This patch merges runGecko into GeckoThread.run, but split the
argument-building code into its own method.
We cannot call native methods until Gecko is loaded. This patch adds a
mechanism in GeckoThread so that other code can queue up native method
calls and have those calls automatically delivered when Gecko is ready.
GeckoThread.LaunchState now covers the entire GeckoThread lifetime and
not just launch, so it's renamed to GeckoThread.State. More utility
methods are added to check for the current state.
Because we switched annoations from gecko-mozglue.jar to constants.jar,
we should update the corresponding classpaths when processing
annotations during code autogeneration.
gecko-mozglue.jar is still needed during the javah step because
gecko-browser.jar has a dependency on
org.mozilla.gecko.mozglue.JNIObject.
We have had singular ANDROID_ASSETS_DIR in Makefile.in for a while.
Fennec itself does not use the existing Makefile.in Android code, for
complicated historical reasons.
This makes the existing variable moz.build-only; generalizes the
existing variable to an ordered list; and adds the equivalent use of
the new list to the Fennec build, with a simple example asset.
This patch also updates the packager to include assets packed into the
gecko.ap_. Without the packager change, the assets/ directory in the
ap_ gets left out of the final apk. This whole approach is totally
non-standard but is more or less required to support our single-locale
repack scheme.
--HG--
extra : commitid : 4EAh1UNGNWT
extra : rebase_source : 5e5b4c4a120c3b4cc776c9f9380ddd2f9b63587e
extra : source : 0ddce3eb833e6d6180a19928a9b45d5d12f1d7fa
This patch does a few things. First, it adds an AbsolutePath data
type, sibling to SourcePath and ObjDirPath. (Existing Path consumers
that accept an open set of Path subtypes, and that only use full_path,
should function fine with the new AbsolutePath subtype.)
Second, it moves ANDROID_RES_DIRS to a moz.build list of Paths
(ordered). We test, but don't use in tree, the new AbsolutePath.
--HG--
extra : commitid : DMLy1ogTJ0Y
extra : rebase_source : cb9ac47e8bf7c893a0284adc7a42eccb78ccae3d