When doing a gyp_managed_install, we install APKs to the attached
device. Currently this can fail in many ways (no device attached,
multiple devices attached, device offline, device doesn't have root,
etc.). In addition, we need to detect changes to the attached device
(particularly when the device is switched, when an APK is
uninstalled/updated).
The current approach is to check all this information in the action
interacting with the device. This means that when there is some
problem we print the same warning messages for every APK that is built,
and, in some cases, multiple times for each APK. Also, we have to run
every install/push action every build because we detect changes to the
attached device in that action.
This change creates a new build action, "get device configurations".
This action inspects the attached devices, filters out offline devices,
filters out devices without root, and then writes a configuration
file with the id+metadata for the first non-filtered device. This
configuration is then used by each of the build steps that interacts
with the device. This consolidates all the device checking to a single
place, and the build actions don't need to do any checking. In
addition, to detect changes in the attached device, we only need to run
this single action every build and the install/push actions will only
change when the device/metadata changes.
Also, with this change we can now gracefully handle the case where
multiple devices are attached (currently just write the configuration
for the first valid device and install to that one).
Review URL: https://chromiumcodereview.appspot.com/16831013
git-svn-id: http://src.chromium.org/svn/trunk/src/build@209582 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
To better mirror the structure of other API layers (content/public and
third_party/WebKit/public), there will be a single ios/public/ directory that
contains all interfaces referenced by not-yet-upstreamed Chrome for iOS code,
rather than these interfaces being scattered in subdirectories further
underneath ios/.
This CL also changes gyp structure to better match other modules: ios_consumer.gyp is moved to directly under ios/, and an ios.gyp is created with a single top-level "ios" target to be used in build/all.gyp.
Review URL: https://chromiumcodereview.appspot.com/18272004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@209434 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This simplifies using components in Content Shell. As components can
depend on the content layer, trying to use a component from Content Shell
results in a cross-reference of gyp files which isn't allowed on Mac.
TBR=joi,robertshield (trivial one-line renames in gyp files)
Review URL: https://chromiumcodereview.appspot.com/17366006
git-svn-id: http://src.chromium.org/svn/trunk/src/build@209420 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Many people's workflows assume that they can install the APK created in
out/Debug/apks. With the component build that APK is actually an
"incomplete" APK that cannot be manually installed (or rather causes
obscure errors when manually installed).
This change does two things. First, it moves the "incomplete" APK
output to out/Debug/<package_name>/<ApkName>.apk. This should prevent
accidental installs of the "incomplete" APK. Second, it introduces an
option (create_standalone_apk) that when doing a component build, if
set, will merge the shared libraries into the "incomplete" APK to
create a standalone APK. This standalone APK will be created in
out/Debug/apks/.
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=207345
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=207516
Review URL: https://chromiumcodereview.appspot.com/14843017
git-svn-id: http://src.chromium.org/svn/trunk/src/build@208529 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
WebHistoryItem serialization is now split into two parts. PageState (i.e., encoded string)to ExplodedPageState, and ExplodedPageState to WebHistoryItem. This way we can generate ExplodedPageState in the browser process without a dependency on Blink API.
This CL drops support for version 1-10 of the format. I confirmed with laforge@ that the usage of such old versions of Chrome is minimal enough.
I've included code to extract file paths from the "document state" vector of strings. This code just has to be consistent with the way document state was generated in versions 11 through 13 of the format. Version 14 has the file path vector included directly in the serialized data.
Gone is the serializers ability to write out different versions of the format. That code existed to support testing as we would write out old versions and test our ability to read them. Instead, I've captured some serialized snapshots at different versions, and I just test that we can read them. I've included code for generating a snapshot as a test case that by default returns early. (This way the code doesn't bit-rot.)
R=jamesr@chromium.org,tsepez@chromium.org
BUG=237243
Review URL: https://chromiumcodereview.appspot.com/16867005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@208367 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Reland https://codereview.chromium.org/17569006/ with check_perms fix.
Support using loadable module for libpeerconnection on Android.
Borrowed create_standalone_apk_action.gypi, create_standalone_apk.py and finalize_apk_action.gypi from https://codereview.chromium.org/14843017/ with some minor fix in create_standalone_apk_action.gypi.
For some cases where libpeerconnection needs to be a loadable module, we need to add libpeerconnection.so into Chrome_apk.
This patch takes 2 steps:
1. build chrome with libpeer_target_type=loadable_module.
2. add libpeerconnection.so into the apk file.
TEST=run gyp: GYP_DEFINES="$GYP_DEFINES libpeer_target_type=loadable_module" build/gyp_chromium
build chrome
re-run gyp: GYP_DEFINES="$GYP_DEFINES libpeer_target_type=loadable_module" CHROMIUM_GYP_FILE="build/android/chrome_with_libs.gyp" build/gyp_chromium
build chrome_with_libs
install Chrome-with-libs.apk and it works for https://apprtc.appspot.com
Review URL: https://codereview.chromium.org/17647002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@208304 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Borrowed create_standalone_apk_action.gypi, create_standalone_apk.py and finalize_apk_action.gypi from https://codereview.chromium.org/14843017/ with some minor fix in create_standalone_apk_action.gypi.
For some cases where libpeerconnection needs to be a loadable module, we need to add libpeerconnection.so into Chrome_apk.
This patch takes 2 steps:
1. build chrome with libpeer_target_type=loadable_module.
2. add libpeerconnection.so into the apk file.
TEST=run gyp: GYP_DEFINES="$GYP_DEFINES libpeer_target_type=loadable_module" build/gyp_chromium
build chrome
re-run gyp: GYP_DEFINES="$GYP_DEFINES libpeer_target_type=loadable_module" CHROMIUM_GYP_FILE="build/android/chrome_with_libs.gyp" build/gyp_chromium
build chrome_with_libs
install Chrome-with-libs.apk and it works for https://apprtc.appspot.comR=cjhopman@chromium.org, mallinath@chromium.org, tommi@chromium.org
Review URL: https://codereview.chromium.org/17569006
git-svn-id: http://src.chromium.org/svn/trunk/src/build@208246 4ff67af0-8c30-449e-8e8b-ad334ec8d88c