This CL removes all the code and build setup from //blimp and updates
related build, config and source code to not care about blimp anymore.
This does not update //cc, //content, //services, //ui or third_party
DEPS.
TBR=brettw@chromium.org
BUG=677556
Review-Url: https://codereview.chromium.org/2626423004
Cr-Original-Commit-Position: refs/heads/master@{#444465}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7ab5fc81962a872e9dae8c54493360bac7d3d69d
This CL deletes the //blimp/engine directory and related files.
List of things that are updated:
- Build files.
- Top-level presubmit file regarding ScopedAllowIO access.
- Resource IDs for grit resources for both blimp engine and client.
- Comments in files that refer to //blimp/engine.
- The client_engine_integration.py script and build config.
- Default GN arguments for the blimp engine (file is kept empty).
Documentation is not updated yet.
BUG=677556
Review-Url: https://codereview.chromium.org/2629743003
Cr-Original-Commit-Position: refs/heads/master@{#443730}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 790e4f0610545c7e41ab4642e7856b058687e1e6
This CL removes all the client-side code for blimp.
As part of this, the following is also removed:
- Android JNI-specific test setup.
- Client code GN arguments and related args-files.
The documentation is not updated in this CL.
BUG=677556
Review-Url: https://codereview.chromium.org/2624903006
Cr-Original-Commit-Position: refs/heads/master@{#443645}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 68fd4f3727d0ba8299824823b4f4aa8022fd282a
* BlimpConnection is now an abstract class.
* TCPConnection and tests are moved out of BlimpConnection.
* BlimpConnection no longer knows about TCP-related classes
including MessagePort and such.
* Also in this CL: Skeleton gRPC plugin points.
* Fixed all unit-tests.
The overall idea is to enable gRPC support in Blimp. This is the first of a few CLs.
In this CL I tease apart the existing BlimpConnection and BlimpTransport into the specific TCPConnection and TCP*Transport classes. Next, I will introduce GrpcConnection and GrpcTransport that will use allow passing of BlimpMessages through Grpc layer. However, internally, GrpcConnection and GrpcTransport will use the new GrpcStream which implements the checked in HeliumStream interface.
Once this settles, the BlimpConnection and BlimpTransport-related classes (specifically, TCP/SSL/etc classes) will be removed and only the Helium-based transport mechanism will be used. Initially though the Helium protocol settles, this will first involve removing the TCP* classes alone.
Review-Url: https://codereview.chromium.org/2439403003
Cr-Original-Commit-Position: refs/heads/master@{#428227}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: bc6fa5a73536e3ccc06fd82c1b6d5da5a712223f
Since the enable_blimp flag was only ever supposed to be used for
the blimp client, this makes that abundandtly clear by renaming
the GN arg itself.
BUG=611094,624025,608765
Review-Url: https://codereview.chromium.org/2179843005
Cr-Original-Commit-Position: refs/heads/master@{#407956}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7b77fb9f0d01e24b04f8c48f05c7007f4f5c1dce
The BlimpClientContext is the core class which wires up all of the blimp
functionality. When it's created, it will get all its dependencies from
the embedder. It is currently in charge of creating BlimpContents, but
will also own things like the BlimpClientSession. It is part of the
public //blimp/client/public API. It is a KeyedService and is typically
tied to a Profile.
The BlimpClientContextFactory lives in //chrome to be able to access
Profile during construction, since //blimp/client currently does not
depend on //content where BrowserContext lives, and there are upcoming
dependencies that will be implemented by classes in //chrome.
The BlimpClientContext has two implementations in
//blimp/client/core, an actual one and a dummy implementation. The
dummy implementation is to be used when we do not want the blimp
code to be used, and the core implementation is the real blimp
implementation. Which one of these are in use is controlled by the
GN argument enable_blimp which defaults to false.
The BlimpClientContext has a public static create-method that is not
implemented in //blimp/client/public, but instead it is implemented by
//blimp/client/core by both the actual and the dummy implementation,
so the right method will be chosen at link-time. This means that a
target can only link with either the actual or dummy implementation.
Everything in //blimp/client/core is only visible to //blimp/client/*
and embedders should only ever depend on //blimp/client/public, which
will bring in the correct implementation. This works the same for both
C++ and Java, so when using the BlimpClientContextFactory (either in
Java or C++), the right implementation (actual or dummy) will always
be chosen correctly based on the link-time selection of the
Create-method.
The BlimpClientContext has a delegate that it can call out to whenever
it needs specific functionality from the embedder. As an example, this
CL adds a helper for attaching a Profile to every created
BlimpContents to make have similar functionality as what is built into
WebContents so one can get a Profile and thereby services by only
having access to a BlimpContents.
BUG=611094
TBR=erg@chromium.org
Review-Url: https://codereview.chromium.org/2132163002
Cr-Original-Commit-Position: refs/heads/master@{#405860}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9aa0cdee23229ca95a3bea79abcc584a395d016e
udev support in Linux is used to get plug & play notification when an USB device
is plugged in. This is something that is unlikely to be used in Blimp Engine. So
disabling the code from Blimp Engine build.
BUG=625277
Review-Url: https://codereview.chromium.org/2112383003
Cr-Original-Commit-Position: refs/heads/master@{#403983}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a2c19e55cf5e0e87f2b99232182c1be0a94be9f1
Thus, add USE_EXTERNAL_POPUP_MENU flag so that Blimp Engine can follow the same code path of the external Android popup menus before it reaches WebContentsView.
BUG=598764
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation
Review-Url: https://codereview.chromium.org/1992393002
Cr-Original-Commit-Position: refs/heads/master@{#397575}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c643d33cf668665bac4562e69a72f9ef29b5bbed
Using the 'is_official_build' gn flag pulls in a bunch of debugging
symbols that we don't need for the engine, and in fact will bloat the
binary size. Using a symbol level of 0 has no effect on the breakpad
symbol file generated by dump_app_syms.py, so we don't lose any of our
desired debugging capabilities.
Tested by building with the buildbot configuration, uploading symbols,
and causing an engine crash with 'kill -6'.
BUG=613186
Review-Url: https://codereview.chromium.org/1987313004
Cr-Original-Commit-Position: refs/heads/master@{#394906}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 379f3f501b387fae1d2807b096f993015dbb3d68
This is modeled after what is done for the official Chrome linux build.
As it stands right now, the breakpad symbol file is roughly 300MB and
takes a couple of minutes to run, so the action should only be triggered
if this is an official release.
BUG=597454
Review-Url: https://codereview.chromium.org/1979773002
Cr-Original-Commit-Position: refs/heads/master@{#394191}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 060ef497fef78501475548ec61dbc8c290f02a9b
Eventually we want most of the MB implementation to go away;
in particular, we probably want the bots to pick up their
GN configurations from args files, rather than from configs
in the mb_config.pyl file.
This CL adds support for specifying a given args file for a bot
in the master/builder configs directly, so you can specify
"masters": {"master": {"builder": "//foo/bar/baz.gn"}}. When
MB runs, it'll create an args.gn in the build directory that
contains the line 'import("//foo/bar/baz.gn")', which will
ensure the args are kept in sync.
R=brettw@chromium.org, jessicag@chromium.org, perezju@chromium.org
BUG=602528
Review URL: https://codereview.chromium.org/1881823002
Cr-Original-Commit-Position: refs/heads/master@{#387234}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9dd5e25ac7e13a059c68e71b8a22955d952c23a3
Reason for revert:
Speculative revert: this breaks page_cycler.intl_hi_ru and page_cycler.intl_es_fr_pt-BR benchmarks
Original issue's description:
> Update blimp build bot args match build/args/blimp_engine.gn
>
> Reorder args so it's easier to spot differences.
>
> Remove gyp_defines because blimp is not designed to build with gyp.
>
> BUG=602696
>
> Committed: https://crrev.com/55bf089c901fb38204b642edc847b6259697ee9e
> Cr-Commit-Position: refs/heads/master@{#386760}
TBR=dpranke@chromium.org,maniscalco@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=602696
Review URL: https://codereview.chromium.org/1881343002
Cr-Original-Commit-Position: refs/heads/master@{#386912}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 76edf5cc66829c9a2aed30dab102de2cc16da1c7
Reorder args so it's easier to spot differences.
Remove gyp_defines because blimp is not designed to build with gyp.
BUG=602696
Review URL: https://codereview.chromium.org/1878273003
Cr-Original-Commit-Position: refs/heads/master@{#386760}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 55bf089c901fb38204b642edc847b6259697ee9e
Ensure that ozone_platform_headless is the only ozone platform compiled
in the sample headless configuration. Other ozone platforms are included
by default and aren't necessarily desired.
BUG=none
Review URL: https://codereview.chromium.org/1876273002
Cr-Original-Commit-Position: refs/heads/master@{#386672}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7dfdf188b6c9bfc4e208949a1be8af557c0264b0
Disable ozone auto platform selection for blimp engine builds. Ensure
blimp does not have a dependency on X11.
BUG=602312
Review URL: https://codereview.chromium.org/1881493003
Cr-Original-Commit-Position: refs/heads/master@{#386469}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 83282ff073fe045d06df62468e9683db17f18e8c
Currently only Android sets the flag for
WTF_USE_LOW_QUALITY_IMAGE_INTERPOLATION since it has been the only
platform needing it.
When painting images on one platform, and reproducing them
remotely, the painting side must make sure that the receiving side
is able to render them and ensure that there is no mismatch.
This CL declares a new GN arg so that other platforms may optionally
set this flag as well. The new GN arg is
use_low_quality_image_interpolation and it defaults to is_android.
There should be no changes to existing behavior if the flag is not
set.
BUG=597803
R=dpranke@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1867093002
Cr-Original-Commit-Position: refs/heads/master@{#385913}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 384c6056c4e1d0eb347f705c454437ae40e6f7cb
Replace the is_headless setting with a GN args template file which
explicitly lists the settings needed to build the headless
configuration. To make this work, some of the existing settings need to
be moved into declare_args to make them overridable.
BUG=546953
Review URL: https://codereview.chromium.org/1845473003
Cr-Original-Commit-Position: refs/heads/master@{#384549}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2df951b02d7d03cd35d64e7bfc725eb24e1fd4b3
Currently there is no way of recording or reporting metrics for the Blimp engine.
To collect metrics for the Blimp engine in development two things are required. First, for metrics recording and reporting to be enabled on the Blimp engine. Second, for the metrics logging to flag Blimp engine reports so they can be filtered from other linux metrics reports. These code behavior changes are currently kept between a single build arg, but are controlled via separate defines checks.
These changes will allow metrics to be collected on development instances of Blimp and viewed separately from Linux builds.
BUG=592757
Review URL: https://codereview.chromium.org/1765293002
Cr-Original-Commit-Position: refs/heads/master@{#380760}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ab7a08b61e58d1a50565cb892f3402cebafbcf16
Currently the comments in the template use a relative path.
Switching to an absolute path brings the comments in line with the blimp build docs and makes usage more robust.
BUG=
Review URL: https://codereview.chromium.org/1767233002
Cr-Original-Commit-Position: refs/heads/master@{#379705}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6f6fad43de425bca8c4178b95a9f1a5806ae6a2d
Currently all args must be manually set per output blimp build. Blimp already uses 3 common development builds.
Using templates to define args would allow for developers to keep their args in sync more easily and would simplify blimp's gn build instructions.
BUG=
Review URL: https://codereview.chromium.org/1757093002
Cr-Original-Commit-Position: refs/heads/master@{#379325}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b83c37c2c149d27ffadde5f93c7b5840fb475a34
Currently OS_ANDROID is used in many places to invoke
Java UI-specific codepaths.
Introduce ANDROID_JAVA_UI instead where this makes
sense.
Exclude all android sources from chrome/browser/android
and chrome/browser/ui/android when this is not set.
Most of these have dependencies on the Java UI or tab model.
Some of the features will need revisiting / untangling.
BUG=557285,507792
NOTRY=True
Review URL: https://codereview.chromium.org/1459793002
Cr-Original-Commit-Position: refs/heads/master@{#363255}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2f1e811f2b4b8b3d7ea70cdbd4bd3c1bef3acb6a