Commit Graph
224 Commits
Author SHA1 Message Date
Tim van der Lippe 27ff2f24ca Add DCHECK function to Platform
In the Chromium backend engineers can use `DCHECK()` to ensure
certain invariants are held, but only execute these assertions
in a debug build. [1] Release builds do not ship with DCHECKS enabled.

In a similar fashion, introduce a build-time generated function
`DHCECK` that is only generated when `devtools_dcheck_always_on`
is set as GN arg. By default, `is_debug` builds enable
`devtools_dcheck_always_on`. However, in a release build, you can
explicitly set `devtools_dcheck_always_on` to `true` to achieve
the same effect.

When the GN arg is set, the build generates the `dcheck.js` file
with an implementation that checks the condition and fails if
it is not met. When the arg is not set, the function implementation
remains empty and becomes a noop.

To make sure that these functions calls are removed in a release
build (rather than being a noop), the terser configuration is
updated to treat these functions as pure. As such, terser will
remove any calls if the function implementation is empty. In a
release build that explicitly turns out the dchecks, terser
will not remove the function calls.

Lastly, to make sure that all code related to the dcheck is removed,
the condition needs to be a lambda. If we were to make it a raw
boolean, then `terser` would not be able to determine whether it
can remove the condition itself and would leave that behind. In other
words, the `DCHECK` call would still leave some artifacts behind,
namely the condition computation itself. By making it a lambda,
terser can deduce that the lambda creation has no side-effect and
remove the lambda if the `DHCECK` call is removed.

R=aerotwist@chromium.org

[1]: https://chromium.googlesource.com/chromium/src/+/HEAD/styleguide/c++/c++.md#check_dcheck_and-notreached

Bug: none
Change-Id: Ic396f102141d9eb67c8690bd2a601b56061b9d8c
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2894390
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
2021-05-14 13:47:30 +00:00
Simon Zünd e4da47f529 [ts] Add types for Intl.DisplayNames
This CL early adopts Intl types that haven't landed upstream in TS yet.

DISABLE_THIRD_PARTY_CHECK=Add types
R=tvanderlippe@chromium.org

Bug: chromium:1163928
Change-Id: I2a2084a58212c535df9dc7ef4c0c704ede737df7
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2885264
Auto-Submit: Simon Zünd <szuend@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2021-05-11 10:19:18 +00:00
Tim van der Lippe 2acbbd12f3 Add default visibility to devtools_entrypoint
Any devtools_entrypoint now has a default visibility of solely the
targets that are specified in the same folder. If you want to allow
other folders to import your code, you can do so by adding an
explicit visibility to your target.

R=jacktfranklin@chromium.org

Fixed: 1202788
Change-Id: I35e4f0f8d94e909f98016246ad975bd5b898af5c
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2856777
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2021-04-29 14:43:24 +00:00
Tim van der Lippe 0fa20648c8 Use relative file input for GRD script
We can use the _expected_grd_files list as input, since this is
already relative to the root directory. Therefore, we no longer
need to keep track of these relative directories.

R=alexrudenko@chromium.org

Bug: 1174013
Change-Id: I18bf22cf4cc5b99786c813aed8967ff40ecde01c
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2848230
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
2021-04-28 10:12:24 +00:00
Tim van der Lippe 19dba6b42b Restrict ui/legacy:bundle visibility
This locks down the visibility of ui/legacy:bundle to the various
folders that already depend on it. For now, the visibility is
quite broad, as there is still plenty of code depending on the
legacy UI implementation.

Consequently, downstream projects (such as the Edge DevTools fork)
will break if they depend on this bundle. Therefore, add a GN arg
that allows the visibility to be extended. To use this GN arg,
downstream projects can change their `default_args` in the root
`.gn` file:

default_args = {
  devtools_ui_legacy_visibility = [
    "//front_end/forked/folder/*",
  ]
}

This means that they can broaden the visibility of UI. It is still
recommended to remove as many of the dependencies on UI as feasible,
but that will likely not finish any time soon.

R=jacktfranklin@chromium.org,aerotwist@chromium.org

Bug: 1202788
Change-Id: I868e88ee3b1c66dd7c79d30d07648a7d2828e8f2
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2853551
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2021-04-27 13:14:05 +00:00
Tim van der Lippe ada1b595b7 Remove old DevTools GRD
This removes the GRD that was previously put in gen/devtools and
removes copying all files into gen/devtools as well.

This requires https://crrev.com/c/2844838 to land first in Chromium
and rolled into DevTools itself.

R=alexrudenko@chromium.org

Fixed: 1174013
Change-Id: I8fa4272caa371d126a46ef61da0071ba9d3a85ae
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2848229
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2021-04-27 09:33:41 +00:00
Tim van der Lippe b4ab8dae8a Generate GRD file in target_gen_dir
This generates the GRD file in out/Default/gen/front_end with the Chromium file
in out/Default/gen/third_party/devtools-frontend/src/front_end. After
https://crrev.com/c/2844838 is submitted, we can remove the old
outfile and remove the copying into out/Default/gen/devtools.

R=alexrudenko@chromium.org,aerotwist@chromium.org

Bug: 1174013
Change-Id: Idd7d992c443fcd84d3df83e461d9b5379f9e2b1b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2846331
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
2021-04-23 10:08:47 +00:00
Tim van der Lippe 3edd9d7219 Remove intermediate lists that were used in GRD generation
Since we now use the GN metadata to specify all relevant files,
we no longer require these lists. That allows us to clean up the
various actions to no longer having to check the contents of the
lists.

R=aerotwist@chromium.org

Bug: 1174013
Change-Id: Ia361aec69fe9af702a7667e33f7fc389f8a5a24f
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2844169
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2021-04-22 12:19:57 +00:00
Tim van der Lippe 0d8ffe34d5 Use GN metadata to compute GRD files
GN metadata allows to specify and later query metadata from any
action in our build graph. Using GN metadata, we can specify
GRD files on an action and collect these files on the top level.
Then, we can compare the list of collected files to the expected
GRD files in `devtools_grd_files.gni` to ensure they match.

As a follow-up change, we can remove the intermediate lists we have
been specifying in `all_devtools_modules.gni` and
`devtools_module_entrypoints.gni`, which now become obsolete. That's
because both `devtools_module` and `devtools_entrypoint` now specify
the files in their respective metadata and essentially perform the
check that all relevant files are collected.

R=aerotwist@chromium.org

Also-By: alexrudenko@chromium.org
Bug: 1174013
Change-Id: I9dd2e6f7e010b5c25f83556511af12d5d1c2ec7c
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2843322
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2021-04-22 11:50:37 +00:00
Tim van der Lippe ed0c9a1332 Cleanup forwarding variables in node_action
Now all variables are properly forwarded, which means we no
longer have to list individual GN properties to be fowarded
that are used in the numerous `node_action` definitions.

Since `args` and `scripts` are specifically used in `node_action`,
these must not be forwarded.

R=alexrudenko@chromium.org

Bug: 1174013
Change-Id: I1edcaadc3cb49dd0546c244115328fc8aca51ba0
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2843317
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
2021-04-21 14:55:16 +00:00
Tim van der Lippe 8499fe2ad0 Move data_grid to ui/legacy/components/data_grid
It also updates the ES Modules ESLint rule to allow for the import
from DataGrid to the legacy UI folder, as they are now nested.

R=aerotwist@chromium.org

Bug: 1187573
Change-Id: I8a6a577b10464216efafed10e62f24ca0c06e194
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2821870
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2021-04-12 17:21:23 +00:00
Tim van der Lippe 7b347ca16f Move entrypoints to sub-folder
All JavaScript files for each entrypoint are put in their respective
sub-folder of front-end. The HTML files load from the new location and
build_release_applications has been updated to load from the correct
location.

R=aerotwist@chromium.org

Bug: 1187573
Change-Id: I4b93f3a2127ef2d3ce7dccefe03f70e79dac1c19
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2818379
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2021-04-12 12:04:18 +00:00
Tim van der Lippe 124fb1d9e6 Replace rjsmin with terser in inspector_overlay
We can use the terser plugin for Rollup (which the frontend also
uses) to minify our source code, rather than the Python-based
minifier.

When using terser, we can reduce the maximum file size from 110000
to 65000 bytes (~40% reduction).

R=alexrudenko@chromium.org

Bug: none
Change-Id: Ib2d7fd296ab20150dab44224f5ced03c725f798b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2815120
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
2021-04-12 11:37:33 +00:00
Tim van der Lippe 732be58da1 Move *.gni files from root to config/gni
This allows us to clean up the OWNERS as well and add a single
OWNERS file in /config/gni to allow all COMMON_OWNERS to make
changes to these files.

DISABLE_THIRD_PARTY_CHECK=File move
R=yangguo@chromium.org

Bug: 1187573
Change-Id: I989caf2762e75725d22fa80f573c72bcf6570dd8
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2817617
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2021-04-12 11:06:13 +00:00
Tim van der Lippe d7e3db8cc5 Remove special_case_namespaces
These were remnants of the Closure Compiler and module.json era,
but we are no longer using these to populate the global scope.

R=jacktfranklin@chromium.org

Bug: none
Change-Id: I61287c81e45207ad7ff0e7fb292d267b41d28f09
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2815121
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2021-04-09 08:50:02 +00:00
Tim van der Lippe d8caac43df Move root to core/root
R=aerotwist@chromium.org

No-Presubmit: true
Bug: 1187573
Change-Id: I243b006f0b96bec4ff251394cb301e01226893ff
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2797216
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2021-03-31 16:21:32 +00:00
Tim van der Lippe f0a9176592 Fix deps in release mode for devtools_entrypoint
In release mode, the devtools_entrypoint prebundle step was missing
the deps. We ran into this issue when we were moving the emulation
panel into panels/emulation, which required some updates to the
toolbox.ts entrypoint (crrev.com/c/2782540).

The missing deps then required the rootdir logic to be changed,
such that deps are correctly resolved relative to the gen-directory,
not the source directory.

This CL might improve build performance in release builds, since
we are now properly using incremental references for our
entrypoints and saving a bit of compilation time.

DISABLE_THIRD_PARTY_CHECK=TypeScript fix
R=aerotwist@chromium.org

Bug: 1187573
Change-Id: I4662ac90ba50116cb668dfe3164fe725b74f9a37
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2782554
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2021-03-24 16:07:44 +00:00
Tim van der Lippe 586c802693 Move console to panels/console
R=aerotwist@chromium.org

Bug: 1187573
Change-Id: I2b14b96b7478c3a140970bff60d5130f28a3d951
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2767268
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2021-03-18 15:48:57 +00:00
Tim van der Lippe 4fea78dcf0 Move accessibility to panels/accessibility
This also updates the Runtime and build_release_applications to use
the correct format for the various files. Most notably, it should
use the basename when concatening file names, since we don't want
to include the `panels/` part in these file names. As such, the
filenames become `panels/accessibility/accessibility_module.js`.

R=aerotwist@chromium.org

Bug: 1187573
Change-Id: I2d3d453ac0e5ea0d4358228531bfe31bde6e7655
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2757147
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2021-03-15 16:29:53 +00:00
Simon Zünd 4277e83c29 Sort svg hashes by filename in optimize_svg.hashes
Relying on the orderedness of python dict was not enough. Luckily,
`json.dump` has an option to sort by keys when dumping JSON.

R=mathiasb@chromium.org

Bug: None
No-try: true
Change-Id: I3fced898d6aa7a36622f895dc06fe5e4372535e1
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2751891
Auto-Submit: Simon Zünd <szuend@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
2021-03-12 09:31:18 +00:00
Simon Zünd fc98c79d15 Upgrade 'optimize_svg_images.py' to Python3
The main reason for the upgrade is that dictionaries become ordered
with Python 3.7. This means that rebasing CLs that add new icons
becomes easier as merging the hashes file is not as tedious.

Bug: None
Change-Id: Id7e0f41262be5952eac56b282ffb52c25f236114
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2751887
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
2021-03-11 08:44:03 +00:00
Christy Chen 141b00cd2c [Loc] Remove devtools_ui_strings generation scripts
All strings have been migrated to V2, so the scripts to generate V1 grd are no longer needed

Bug: 1136655
Change-Id: I96b776cccfb7017a11ead4983770b58962e272b7
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2751608
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Christy Chen <chrche@microsoft.com>
2021-03-11 07:34:57 +00:00
Alex Rudenko 314100ad63 Reland "Exclude data files from inspector_overlay targets"
This is a reland of d5d9b950cb
This CL has to be landed after crrev.com/c/2732043 lands.

Original change's description:
> Exclude data files from inspector_overlay targets
>
> Fixed: chromium:1180230
> Change-Id: I99f736d53f7b653a46da8ecd572e4b3766e1798f
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2716289
> Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
> Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>

Bug: chromium:1180230
Change-Id: I3afb837b8f59a0a11dee9b74e3db54f0e2c4e48f
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2732386
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
2021-03-04 13:45:23 +00:00
Eric Leese a121a6bae6 Revert "Exclude data files from inspector_overlay targets"
This reverts commit d5d9b950cb.

Reason for revert: Seems to have broken the autoroller due to missing files in fuchsia build. Reland if problem doesn't go away.

https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8853712067071111344/+/steps/compile__with_patch_/0/stdout

Original change's description:
> Exclude data files from inspector_overlay targets
>
> Fixed: chromium:1180230
> Change-Id: I99f736d53f7b653a46da8ecd572e4b3766e1798f
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2716289
> Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
> Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>

Change-Id: I044148c6d76898657e52634a7fd0205bad355a7e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2732385
Auto-Submit: Eric Leese <leese@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-03-04 06:55:13 +00:00
Alex Rudenko d5d9b950cb Exclude data files from inspector_overlay targets
Fixed: chromium:1180230
Change-Id: I99f736d53f7b653a46da8ecd572e4b3766e1798f
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2716289
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
2021-03-03 19:13:05 +00:00
Tim van der Lippe ee04160318 Remove resources/inspector output
Now we no longer generate files into the resources/inspector build
output directory.

R=alexrudenko@chromium.org

Bug: 1174013
Change-Id: I89ac495a715c7b68a14c75d1984ba57802e7ac6d
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2732369
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
2021-03-03 15:55:29 +00:00
Tim van der Lippe 46afa7884a Remove copy_gen_to_resources
This template was actually unused.

R=alexrudenko@chromium.org

Bug: 1174013
Change-Id: Ie24f01feb196bd1f37b4434aaa86d52f57444653
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2732188
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
2021-03-03 15:30:50 +00:00
Tim van der Lippe 96278f3164 Remove copy_sources_to_resources
R=alexrudenko@chromium.org

Bug: 1174013
Change-Id: I6a9ac5e5b961b70ab33107fdd352e1a8a64a13ca
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2732367
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
2021-03-03 15:25:29 +00:00
Tim van der Lippe 5233a7b7ec Reland "Stop copying to resources/inspector in devtools_{module,entrypoint}"
This reverts commit bdfb194fcb.

Reason for revert: Upstream reland (https://crrev.com/c/2714599) has landed.

Original change's description:
> Revert "Stop copying to resources/inspector in devtools_{module,entrypoint}"
>
> This reverts commit 037c96df04.
>
> Reason for revert: upstream revert: https://crrev.com/c/2713518
>
> Original change's description:
> > Stop copying to resources/inspector in devtools_{module,entrypoint}
> >
> > This simplifies the JavaScript generating tasks in the DevTools
> > build system to stop copying to resources/inspector. The output
> > to the gen-folder will remain as-is.
> >
> > After this change, it will no longer be possible to use
> > resources/inspector as build output location when using
> > --custom-devtools-frontend. Instead, the location should be
> > updated to use gen/front_end instead. Engineers are encouraged
> > to remove the resources/inspector build output folder to ensure
> > stale build artifacts aren't accidentally used while working
> > on DevTools locally.
> >
> > Note that there are still files in resources/inspector generated by
> > other actions in the build system. We will clean these up in
> > follow-up CLs.
> >
> > R=​alexrudenko@chromium.org,jacktfranklin@chromium.org
> >
> > Bug: 1174013
> > Change-Id: I750d04e58c5fa85054b8451c3582b58a3f7c77ba
> > Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2678696
> > Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
> > Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
> > Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
>
> Bug: 1174013
> Change-Id: I9c4c561a59d808d3fdd1564475ec5ba21955d577
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2714545
> Auto-Submit: Changhao Han <changhaohan@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Simon Zünd <szuend@chromium.org>
> Reviewed-by: Simon Zünd <szuend@chromium.org>

Bug: 1174013
Change-Id: I52c4813c5cf6ec5225f731beb0e501e7b5c6c0be
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2721954
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Changhao Han <changhaohan@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2021-03-03 12:04:29 +00:00
Tim van der Lippe 64b277df88 Remove har_importer/module.json
R=andoli@chromium.org

Bug: 1127902
Change-Id: Ib1d260cc1d58c4517243e477600e4f1815aeef09
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2704478
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Andres Olivares <andoli@chromium.org>
2021-02-26 16:26:45 +00:00
Tim van der Lippe 7265494e1a Add acorn.mjs to data
In debug builds, we don't Rollup into `third_party/acorn/acorn.js`.
Therefore, the `acorn.mjs` from the NPM package should be present.
However, the previous `data` filtering only included `*.js` files
and missed `*.mjs` files. Therefore, add the extra filter to make
sure debug builds work correctly.

R=jacktfranklin@chromium.org

Bug: 1174013, 1180967
Change-Id: I104699f5d5443306f5b0e6017cf9ee418a98143e
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2714551
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2021-02-23 14:42:30 +00:00
Changhao Han bdfb194fcb Revert "Stop copying to resources/inspector in devtools_{module,entrypoint}"
This reverts commit 037c96df04.

Reason for revert: upstream revert: https://crrev.com/c/2713518

Original change's description:
> Stop copying to resources/inspector in devtools_{module,entrypoint}
>
> This simplifies the JavaScript generating tasks in the DevTools
> build system to stop copying to resources/inspector. The output
> to the gen-folder will remain as-is.
>
> After this change, it will no longer be possible to use
> resources/inspector as build output location when using
> --custom-devtools-frontend. Instead, the location should be
> updated to use gen/front_end instead. Engineers are encouraged
> to remove the resources/inspector build output folder to ensure
> stale build artifacts aren't accidentally used while working
> on DevTools locally.
>
> Note that there are still files in resources/inspector generated by
> other actions in the build system. We will clean these up in
> follow-up CLs.
>
> R=​alexrudenko@chromium.org,jacktfranklin@chromium.org
>
> Bug: 1174013
> Change-Id: I750d04e58c5fa85054b8451c3582b58a3f7c77ba
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2678696
> Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
> Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>

Bug: 1174013
Change-Id: I9c4c561a59d808d3fdd1564475ec5ba21955d577
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2714545
Auto-Submit: Changhao Han <changhaohan@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
2021-02-23 10:06:51 +00:00
Tim van der Lippe 037c96df04 Stop copying to resources/inspector in devtools_{module,entrypoint}
This simplifies the JavaScript generating tasks in the DevTools
build system to stop copying to resources/inspector. The output
to the gen-folder will remain as-is.

After this change, it will no longer be possible to use
resources/inspector as build output location when using
--custom-devtools-frontend. Instead, the location should be
updated to use gen/front_end instead. Engineers are encouraged
to remove the resources/inspector build output folder to ensure
stale build artifacts aren't accidentally used while working
on DevTools locally.

Note that there are still files in resources/inspector generated by
other actions in the build system. We will clean these up in
follow-up CLs.

R=alexrudenko@chromium.org,jacktfranklin@chromium.org

Bug: 1174013
Change-Id: I750d04e58c5fa85054b8451c3582b58a3f7c77ba
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2678696
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
2021-02-22 20:11:25 +00:00
Tim van der Lippe e362b0826a Remove javascript_metadata/module.json
R=andoli@chromium.org

Bug: 1127902
Change-Id: I9c3f973582a55ce621b6aa6ecdeac97a3021e181
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2704439
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Andres Olivares <andoli@chromium.org>
Reviewed-by: Andres Olivares <andoli@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
2021-02-18 17:12:24 +00:00
Tim van der Lippe 74e4acb702 Include i18n locales in runtime_deps
In https://crrev.com/c/2684274 the layout tests will use the gen
build output of DevTools. The layout tests are still failing (
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8855048827859077360/+/steps/blink_web_tests__with_patch_/0/logs/outdir_json/0 )
with the following error:

```
PROMISE FAILURE: Error: While loading from url http://localhost:8000/inspector-sources/i18n/locales/en-US.json server responded with a status of 404
  at XMLHttpRequest.n.onreadystatechange (http://localhost:8000/inspector-sources/root/root.js:1:8457)
```

As it turns out, we need to explicitly list the locales as `data`
as well. Rather than updating the `filter_include` to include `*.json`
(which would cause it to include `tsconfig.json` files, which we
don't want), we should instead only include the mapped sources in
the gen-directory. We also can't use the `invoker.sources` array
directly, as that would include `*.ts` files, which don't have a
corresponding `gen` build output file. That would crash the CQ
bots as well, as they ensure that all `runtime_deps` files exist.

R=jacktfranklin@chromium.org

Bug: 1174013
Change-Id: I35623e86c40f5616836c1387c150fc492db527e6
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2700391
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2021-02-17 15:19:02 +00:00
Tim van der Lippe b391dcebc9 Add files generated in gen/front_end to runtime_deps
The previous attempt of this fix was in https://crrev.com/c/2687497
That CL was reverted, as it inadvertently added more files to the
runtime_deps then was intended. Most notably, it erroneously included
`tsconfig.json`, `tsbuildinfo` and `d.ts` files.

Instead, we should manually filter out only those files that we are
interested in. In this case, these are the `js` and `js.map` files.
Once these are added to the runtime_deps, the layout tests can access
them, as they are pushed to the bots.

I have verified that the following command shows the expected output:

gn desc out/Default front_end/platform:bundle runtime_deps

R=jacktfranklin@chromium.org

Bug: 1174013
Change-Id: I6bc25665f06b5968bbd9748696a5723edac84ddc
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2697201
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2021-02-16 15:53:01 +00:00
Tim van der Lippe 7f3180d06d Revert "Add data_deps for ts_library invocations"
This reverts commit 8cf3e61f27.

Reason for revert: Potential suspect for Deterministic Linux builder failurs: https://ci.chromium.org/ui/p/chromium/builders/ci/Deterministic%20Linux/30226/overview

Original change's description:
> Add data_deps for ts_library invocations
>
> Since we are switching over to using `gen/front_end` as the build
> output directory, we need to make sure that these files are included
> as data_deps for the bots. If we don't include these, then the bots
> will not be able to retrieve those files to run the layout tests.
>
> This is required to land https://crrev.com/c/2684274 where we will
> be switching away from resources/inspector to gen/front_end.
>
> R=​jacktfranklin@chromium.org
>
> Bug: 1174013
> Change-Id: I648fe296faea0edb23d4c47af837a9a2e21c2c5a
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2687497
> Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
> Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>

R=jacktfranklin@chromium.org

Bug: 1174013
Change-Id: I2874ed9c7ffb05d75d42769c044b2c670d29afdc
No-Tree-Checks: True
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2690335
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
2021-02-11 15:54:38 +00:00
Tim van der Lippe 8cf3e61f27 Add data_deps for ts_library invocations
Since we are switching over to using `gen/front_end` as the build
output directory, we need to make sure that these files are included
as data_deps for the bots. If we don't include these, then the bots
will not be able to retrieve those files to run the layout tests.

This is required to land https://crrev.com/c/2684274 where we will
be switching away from resources/inspector to gen/front_end.

R=jacktfranklin@chromium.org

Bug: 1174013
Change-Id: I648fe296faea0edb23d4c47af837a9a2e21c2c5a
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2687497
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
2021-02-10 15:44:46 +00:00
Tim van der Lippe 4374b66f2c Remove front_end/toolbox.json
Since all of its modules are removed, we can now remove toolbox
as an entrypoint from build_release_applications and build it
with `devtools_entrypoint`. There was one catch: the copy logic
we use as part of `devtools_entrypoint` was wrong and required
us to remove the trailing slash, since `front_end/toolbox.js` isn't
in a subdirectory.

R=andoli@chromium.org,aerotwist@chromium.org

Bug: 1127902
Change-Id: Ie8b47a5ceae66c8e6b607794d564d17dc6d1e3af
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2678083
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Andres Olivares <andoli@chromium.org>
2021-02-05 14:37:29 +00:00
Tim van der Lippe 30103efb6b Output build_release_applications in gen directory
All relevant build output files are now put into gen/front_end.
To make sure that we don't run into duplicate JS entrypoint
files, we have to turn of the emit of these targets in
front_end/BUILD.gn, such that build_release_applications can
put its output there. Since build_release_applications takes
the files from the front_end source directory, not the gen
directory, this causes no issues.

After this change, it is possible to use --custom-devtools-frontend
with gen/front_end rather than resources/inspector.

DISABLE_THIRD_PARTY_CHECK=Update TypeScript noemit
R=aerotwist@chromium.org

Bug: 1174013
Change-Id: Iad331ff0a28871a0ec297483fa03fbb485d05fb4
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2672031
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2021-02-03 14:09:11 +00:00
Simon Zünd ddeb15e4ee Reland "Support RBE for building TypeScript int DevTools"
This is a reland of 159d86d3fb

The reland fixes the setting of "use_rbe" on the ts_library template
iff RBE is enabled for devtools directly. This prevents an
"unused variable" error when building with "use_rbe=true" and
"devtools_use_rbe=false".

Original change's description:
> Support RBE for building TypeScript int DevTools
>
> This CL implements initial support for executing TSC in the cloud by:
>   1) Introducing a new GN arg "devtools_use_rbe". This is experimental
>      and will be folded into the Chromium "use_rbe" flag once RBE
>      building has stabalized.
>   2) Pass the configured Chromium rewrapper along to ts_library.py.
>   3) Add a new function "runTscRemote" that calculates inputs required
>      and invokes rewrapper
>
> Support is currently very limited:
>   - Only works with a full Chromium checkout (NOT standalone DevTools)
>   - Only works on leaf modules (modules without DEPS)
>
> Modules that can't be currently built in the Cloud are built locally
> as per usual.
>
> DISABLE_THIRD_PARTY_CHECK=Change typescript.gni
>
> R=tvanderlippe@chromium.org
>
> Bug: chromium:1139220
> Change-Id: Id7a1e6c113466414f6daaa661456d8debfe6696d
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2652508
> Commit-Queue: Simon Zünd <szuend@chromium.org>
> Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>

DISABLE_THIRD_PARTY_CHECK=Change typescript.gni
Bug: chromium:1139220
Change-Id: I536fb580c3814a82525344ab5ebd5fb853568387
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2659015
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
2021-01-29 12:55:33 +00:00
Ye Kuang fa8f4702f1 Revert "Support RBE for building TypeScript int DevTools"
This reverts commit 159d86d3fb.

Reason for revert:

This has broken a few re-client builders in Chromium:

* https://ci.chromium.org/p/chromium/builders/ci/Linux%20Builder%20%28reclient%29?limit=200
* https://ci.chromium.org/p/chromium/builders/ci/Linux%20Builder%20%28reclient%29

```
$ gn gen out/rbe-demo --args='use_rbe=true is_debug=false'
ERROR at //third_party/devtools-frontend/src/scripts/build/ninja/devtools_entrypoint.gni:132:19: Assignment had no effect.
        use_rbe = false
                  ^----
You set the variable "use_rbe" here and it was unused before it went
out of scope.
See //third_party/devtools-frontend/src/front_end/common/BUILD.gn:47:1: whence it was called.
```

Original change's description:
> Support RBE for building TypeScript int DevTools
>
> This CL implements initial support for executing TSC in the cloud by:
>   1) Introducing a new GN arg "devtools_use_rbe". This is experimental
>      and will be folded into the Chromium "use_rbe" flag once RBE
>      building has stabalized.
>   2) Pass the configured Chromium rewrapper along to ts_library.py.
>   3) Add a new function "runTscRemote" that calculates inputs required
>      and invokes rewrapper
>
> Support is currently very limited:
>   - Only works with a full Chromium checkout (NOT standalone DevTools)
>   - Only works on leaf modules (modules without DEPS)
>
> Modules that can't be currently built in the Cloud are built locally
> as per usual.
>
> DISABLE_THIRD_PARTY_CHECK=Change typescript.gni
>
> R=​tvanderlippe@chromium.org
>
> Bug: chromium:1139220
> Change-Id: Id7a1e6c113466414f6daaa661456d8debfe6696d
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2652508
> Commit-Queue: Simon Zünd <szuend@chromium.org>
> Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>

TBR=szuend@chromium.org,tvanderlippe@chromium.org

Change-Id: Ie82249ab143f86bc61d706759b7b72c43ba4c53f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1139220
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2658258
Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Ye Kuang <yekuang@google.com>
2021-01-29 03:15:16 +00:00
Simon Zünd 159d86d3fb Support RBE for building TypeScript int DevTools
This CL implements initial support for executing TSC in the cloud by:
  1) Introducing a new GN arg "devtools_use_rbe". This is experimental
     and will be folded into the Chromium "use_rbe" flag once RBE
     building has stabalized.
  2) Pass the configured Chromium rewrapper along to ts_library.py.
  3) Add a new function "runTscRemote" that calculates inputs required
     and invokes rewrapper

Support is currently very limited:
  - Only works with a full Chromium checkout (NOT standalone DevTools)
  - Only works on leaf modules (modules without DEPS)

Modules that can't be currently built in the Cloud are built locally
as per usual.

DISABLE_THIRD_PARTY_CHECK=Change typescript.gni

R=tvanderlippe@chromium.org

Bug: chromium:1139220
Change-Id: Id7a1e6c113466414f6daaa661456d8debfe6696d
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2652508
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
2021-01-28 12:18:47 +00:00
Tim van der Lippe a1ee70e85e Fix node action sources
When rewriting the actions that use Node to node_action,
we missed the "sources" to be forwarded to the action.
This means that a change to a source file does not properly
trigger a rebuild in GN, as GN doesn't understand it
is a source file.

R=jacktfranklin@chromium.org

Bug: None
Change-Id: I0313c6007a83417e1cc5566ae6d9bc379c17b337
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2653086
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2021-01-27 18:08:55 +00:00
Tim van der Lippe 7988ab3e62 Introduce GN node_action template
This template abstracts away from the `node.py` script, as well as
making sure that the JS script is properly added to the inputs
array. Before, it was easy to forget to add the JS script to the
inputs array, which can lead to GN incorrectly determining there
is no need to rebuild, while in fact the script itself changed.

R=szuend@chromium.org

Bug: 1170706
Change-Id: I759f3ef3088381ea7e4cefcb8524d7d240b46fb9
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2650148
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
2021-01-27 12:08:04 +00:00
Bruce Dawson 4239530627 Skip GRD compression in debug builds
GRD compression takes a while. It takes a particularly long while in
debug builds. This change skips compression on debug builds which
takes the GRD step from ~55 seconds to ~5 seconds.

Alternately we could use this framework (passing through the debug state
of the build) to try different compression options as suggested in the
bug.

Test results for debug-component and release builds with this change:
  5.2 weighted s to build gen/content/browser/devtools/devtools_resources_grit.d.stamp, gen... (5.2 s elapsed time)
  24.5 weighted s to build gen/content/browser/devtools/devtools_resources_grit.d.stamp, gen... (24.5 s elapsed time)

Release is unchanged but debug is ~11 times faster.

Bug: 1162467
Change-Id: I017ec872a1645fef55aff09472cdf4427146d17b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2639276
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
2021-01-26 17:46:46 +00:00
Simon Zünd 6d32fb19b0 [ts] Update TypeScript to 4.2.0-beta
TypeScript now ships type definitions for `ResizeObserver` so this
CL also removes the resize_observer.d.ts file and references to it
from build rules.

DISABLE_THIRD_PARTY_CHECK="TypeScript update"

R=tvanderlippe@chromium.org

Bug: chromium:1166169
Change-Id: I4dff6ed9aa4937f0183210cc735405cb2b8abaf6
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2626298
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
2021-01-14 12:42:25 +00:00
Tim van der Lippe 677a98d1c4 Remove component_docs from GRD
These files are not intended to be included in the DevTools release
bundle and therefore should be treated as testonly. This also means
that we should be using `ts_library` instead of `devtools_module`,
as we don't intend to copy these files into `resources/inspector`.

R=jacktfranklin@chromium.org

Fixed: 1152777
Change-Id: Id23d403c64445dd1c0ea59e36117dfc667f7e8e5
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2617796
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2021-01-08 16:09:47 +00:00
Mathias Bynens 2e8ddd343b Include .avif and .webp images in *.grd files
Otherwise, AVIF and WebP images get silently excluded.

Bug: chromium:1161667
Change-Id: Id5cc515a532d1d6033f4bc417b98ff9840a2c741
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2612852
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
2021-01-07 15:12:16 +00:00
Tim van der Lippe 59ff4e28de Move worker integration into entrypoint for wasmparser_worker
This allows us to test the wasmparser_worker implementation
in isolation in unit tests, while extracting out the worker
integration into a separate file. A follow-up CL will migrate
the wasmparser_worker to use URL-based worker construction,
which will allow us to remove the wasmparser_worker-entrypoint
in front_end/ and cleanup the RuntimeInstantiator.js logic.

R=jacktfranklin@chromium.org,bmeurer@chromium.org

Bug: 1009443
Change-Id: I77d04ab870b38ec9f9209c1a156c123c941d169b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2581927
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
2020-12-10 10:21:28 +00:00