This works by using SSL_CTX_load_verify_locations in
SecurityContext._trustBuiltinRoots() to specify
/system/etc/security/cacerts as the certificate directory.
This saves about 240KB from a stripped ProductAndroidARM build.
This has the drawback that SSL_do_handshake will synchronously
hit the filesystem looking for root certs during its trust evaluation.
We call SSL_do_handshake directly from the Dart thread so that Dart
code can be invoked from the "bad certificate" callback called by
SSL_do_handshake. If there was no need to support this callback,
it would be easier to move the handshake to the IOService thread, and
thus remove the compiled-in certs without the need for blocking IO
on the Dart thread.
R=whesse@google.com
Review URL: https://codereview.chromium.org/1811583003 .
- Add PRODUCT define and build mode to gyp configurations.
- Add product mode to test harness.
- Start to unify list of flags.
- Allow flags to be constant for particular build configurations.
R=fschneider@google.com
Review URL: https://codereview.chromium.org/1663863002 .
BSD systems don't place bash in /bin and a lot of the dart tools
hardcode a #!/bin/bash shebang that fails the 'all' target build
(not able to execute dart2js since the interpreter is not found).
Solve the issue by using #!/usr/bin/env as the shebang. For scripts
that need to pass arguments to bash modify the script to use the set
command as the first executed line of shell.
BUG=
R=whesse@google.com
Review URL: https://codereview.chromium.org/1552313002 .
- Provide a new callback to Dart_Initialize that will be called when the service isolate needs the Observatory assets
- Move asset management code out of embedder and into common dart:_vmservice
- Use the tar format as the archive format
- Add build script to generate .cc file containing the archive
- Add a simple tar parser to service isolate
This makes it possible for embedders to not bake Observatory into their executable but instead load it off disk or over the network. The standalone embedder still links Observatory into the executable.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1411853003 .
- Add flag to enable zlib compression of resources to create_resource.py
- Enable flag for Observatory resources
- Use 'dart:io' ZlibCodec to decompress resources when first loaded into service isolate.
- Dart executable (debug, macos) goes from 15,460b to 13,752b
R=asiva@google.com
Review URL: https://codereview.chromium.org//1151743002
If a Dart file does an import that is 'strange', this flag
allows the imported URI to be understood by the analyzer
so long as an explicit mapping of the URI to an absolute
path to a .dart file is supplied with this flag.
For example, a custom embedding of the Dart VM may refer
to non-SDK libraries through its own URI scheme, e.g.
import 'strange:things';
With the flag and Uri resolver added in this CL, the
analyzer can find the Dart source for 'strange:things':
dartanalyzer ... --url_mapping 'strange:things,/path/to/strange/things.dart'
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//897593005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43788 260f80e4-7a28-3924-810f-c04153c831b5
2) Move observatory from runtime/bin/vmservice/observatory to runtime/observatory
3) Add two tools scripts:
- tools/run_pub.py (runs pub before SDK is built)
- tools/obs_tool.py (helper for get, build, and deploy stages)
4) Build Observatory with runtime:
- pub get --offline
- pub build
- deploy
5) Build artifacts are now in standard output directory, for example, out/DebugIA32/observatory.
6) Add a new 'dart_boostrap' host target (no snapshot, no observatory) that can be used as the Dart executable to run pub when building Observatory. This is behind a build.py flag --use-bootstrap-for-observatory because:
- It is only necessary on older Linux distributions that are incompatible with the prebuilt Dart testing executable.
- running pub build with the boostrap Debug build is significantly slower.
7) Detect if the prebuilt executable doesn't work and automatically switch to the 'dart_bootstrap' executable. Also, warn the user and provide a Wiki link with more information.
R=turnidge@google.com
Review URL: https://codereview.chromium.org//810623005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42614 260f80e4-7a28-3924-810f-c04153c831b5
This change also avoids the need to
do another 'gclient runhooks' when switching
between Android and Linux builds, and between
IA32 and ARM Android builds.
gyp does not allow 'libraries' sections inside of
configurations. Therefore, since some architecture
specific paths, libraries, etc. must be specified
on the Android NDK's linker command line, to avoid
re-gyping when switching between Android IA32 and ARM,
this change moves the architecture specific linker
flags to a script, android_link.py.
To avoid re-gyping when swtiching between Linux and
Android, this change creates new configurations
that specify the target OS as well as the the target
architecture, e.g. ReleaseLinuxARM or ReleaseAndroidARM
instead of ReleaseARM.
This change also adds a --toolchain flag to build.py,
and removes obsoleted logic for setting up the Android
build.
R=iposva@google.com
Review URL: https://codereview.chromium.org//105223002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31340 260f80e4-7a28-3924-810f-c04153c831b5
This CL is largely a move/rename of the sources so they are laid out in the standard directory layout (the other layout is no longer necessary with the single html and js file deployed output). Buried inside the rename is the out/ directory which contains the observatory deployed as a single js file + html/img assets.
bootstrap_css DEPS have been updated already.
R=iposva@google.com
Review URL: https://codereview.chromium.org//27530002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28740 260f80e4-7a28-3924-810f-c04153c831b5