Commit Graph
68 Commits
Author SHA1 Message Date
Alex Rudenko 7bf4d03c58 Move overlay implementation to DevTools
This CL moves the implementation of inspect_tool_highlight.html to
DevTools, sets up a separate resource build target containing code
bundles produced by rollup. Also, it adds size checks and sets up
an example test. The future CLs will cover the rest of inspector tools
and better tests. A follow-up CL for Chromium to use the newly generated
resource is prepared[1].

[1] https://crrev.com/c/2194865

Bug: 1078267
Change-Id: I1c66e3c2aaec04c2f07fab8623d674ada95d8b24
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2192892
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
2020-05-14 06:05:14 +00:00
Jan Scheffler 68eefdc2c5 Enable TypeScript for PaintProfiler and add Protocol.binary to closure
Bug: chromium:1011811, chromium:1079233
Change-Id: If8f39e531002411524d3ee4ce6b94ca8843dbdc3
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2196384
Commit-Queue: Jan Scheffler <janscheffler@chromium.org>
Auto-Submit: Jan Scheffler <janscheffler@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
2020-05-13 10:24:21 +00:00
Tim van der Lippe 3cccb4f51b Complete typecheck of sdk/NetworkManager.js with TypeScript
What we learnt/changed:
- For invoke_* commands, allow the omission of the request object,
by adding an initializer in the generated code.

R=aerotwist@chromium.org

Bug: 1011811
Change-Id: I04ee0eec703bdcc0235bc5a4a41387af72f912a7
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2173374
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2020-05-04 11:09:51 +00:00
Tim van der Lippe fcf8179a6a Fix issues with SDK compilation
Even though we were using the SDK files in the unittests for SDK,
not all files were included. A CL which attempts to use sdk.js (e.g.
https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2165757)
would then fail on several generated .d.ts issues.

Issues fixed:
- Usage of `Object` instead of `Map` causing issues with a type
alias of `string`, since TypeScript object notation only allows
primitives to be used as indices.
- Missing return types for function types
- A reference to `Protocol.NetworkAgent` which does not exist on
the protocol. Instead, that is part of the protocol-proxy-api.
Therefore, we must include the declaration file in the ts_library.
This also showed that the `ProtocolApi` needs to be exported
instead of declared.

This means that for any future reference to any Protocol type
that is actually an agent, we should be using the
`ProtocolProxyApi` definitions instead. To make sure Closure
understands that type, I aliased it in the externs.

R=jacktfranklin@chromium.org
CC=​sigurds@chromium.org,szuend@chromium.org
DISABLE_THIRD_PARTY_CHECK=Typescript fixes

No-Presubmit: true
Bug: 1011811
Change-Id: I4f5a488edb2d5fa6c5ed12d33411efb5f7fb8133
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2165795
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2020-04-27 14:22:46 +00:00
Tim van der Lippe efb2a94cdc Run Karma unittests on the Ninja output directory
This significantly speeds up Karma execution times to about 12 seconds on an unchanged build folder.
It uses the Ninja build output to find the unittest files.

You can run the new script with:

npm run unittest
npm run unittest -- --target=Release

To make sure you perform a minimal build and run tests right after it, run:

npm run auto-unittest
npm run auto-unittest -- --target=Release

If no ninja-build-name is set, it assumes that `out/Default` exists.
The `auto-unittest` command will run autoninja for you on the output folder.

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

No-Presubmit: true
Bug: 1061125
Change-Id: I45edd11e422c5cdc8a4fc0bbb6bc43e386519aa9
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2102717
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Brandon Goddard <brgoddar@microsoft.com>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2020-04-27 10:16:15 +00:00
Mathias Bynens 51980699f7 Avoid unnecessary use of Object.entries
Previously, the script would output code of the form:

    new Map(Object.entries({
      'word-wrap': 'overflow-wrap'
    }));

This patch simplifies that down to:

    new Map([
      ['word-wrap', 'overflow-wrap']
    ]);

No-Presubmit: true
Bug: chromium:1039620, chromium:1075437
Change-Id: Ia102b46b70bdbb227c5ff41742fcb82940d48eb9
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2165787
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
2020-04-27 09:32:55 +00:00
Andrey Kosyakov be26c1703e Only declare trailing optional param names as {type=} in generated JSDoc
This fixes front-end compilation in case a parameter that was previously
non-optional is made optional in the protocol.

Change-Id: I86f02d3dbdccff5a65636a98edcfe81476c8455e
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2150158
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
2020-04-16 00:14:59 +00:00
Tim van der Lippe 5d2d79b814 Fix presubmit check to always run when generated files change
We are changing the build output in the generated file, but were not
properly checking that these were changed, as the presubmit check
was ignoring files in the `front_end/generated` folder.

Also fix the issue where the InspectorBackendCommands.js would be
changed to not emit the typedef.

R=szuend@chromium.org

Bug: 1011811
Change-Id: I2e09bce9cae69f4191d93de177b5ab5bb7da46c0
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2115630
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
2020-03-23 12:34:41 +00:00
Simon Zünd b6414c9da6 Rename legacy global for protocol_client to ProtocolClient
R=tvanderlippe@chromium.org

Bug: chromium:1011811
Change-Id: Ibe6de479bcc18d28dceb7fa2266388ca0d65eae2
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2107558
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
2020-03-19 12:48:42 +00:00
Simon Zünd 3b0c540211 Rename front_end/protocol to front_end/protocol_client
This CL is part of the work to switch over to the TypeScript compiler
for type checking.

R=tvanderlippe@chromium.org

Bug: chromium:1011811
Change-Id: Ic709a193b252df7e9027c00cf20d8afe525a215a
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2107539
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
2020-03-18 18:06:20 +00:00
Tim van der Lippe 6d51bf00ea Factor out Runtime to root/Runtime.js
front_end/Runtime.js was doing multiple things: it was instantiating
side-effecty descriptors and initializing applications, as well as
storing all state for the modules/extensions, etc...

To support proper ES Modules, we need to separate these. root/Runtime.js
contains simple classes that store the data and can be retrieved, as well
as some helper functions that will load the respective data.

The RuntimeInstantiator.js code includes the start functions used in the
entrypoints themselves. They will use an instance of the Runtime to
properly load the application.

Along the way, I also fixed various TypeScript errors, mostly around
incorrect or missing type definitions.

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

Bug: 1011811
Change-Id: If3ddea9267813691b3faeb6ea4b0cf64edbde1f4
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2107523
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2020-03-18 12:19:29 +00:00
Tim van der Lippe c19ea32ca5 Fix protocol generator formats
- The protocol files were generated without license headers
- There were whitespace issues in the .d.ts files

Change-Id: I19572989360a4a537fdfe829f212587ae70e180f
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2107217
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Philip Pfaffe <pfaffe@chromium.org>
2020-03-17 12:34:08 +00:00
Tim van der Lippe ba26b2b503 Run ESLint on the scripts directory
We weren't running ESLint on this directory and, as it turns out, there
are quite a few linter errors in this folder.

R=jacktfranklin@chromium.org

Change-Id: Ic6cb9f6ad4858f69114e0c433a954041215b49e2
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2096705
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2020-03-11 14:47:51 +00:00
Changhao Han 1e4c9dd21a use "alias_for" from css_properties.json5 to get canonical css property names
Bug: chromium:1039620
Change-Id: I3be48ee7da959fa500c8775323aa416de520353e
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2089908
Commit-Queue: Changhao Han <changhaohan@chromium.org>
Reviewed-by: Wolfgang Beyer <wolfi@chromium.org>
2020-03-09 21:49:48 +00:00
Tim van der Lippe 6a0c2e2f5b Sort generated property values on keys
When dumping the JSON object, we have to ensure that the keys are in the
same order. Otherwise, the generated file is non-deterministic.

We hit this issue when we made a subsequent update in
https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2089908
where we are adding an additional dictionary to the file, causing
failures on Windows.

R=changhaohan@chromium.org

Bug: 1039620
Change-Id: Iec33962d4fd5dff461bc2930db54e5c85ce645b7
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2095300
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Changhao Han <changhaohan@chromium.org>
Reviewed-by: Changhao Han <changhaohan@chromium.org>
2020-03-09 18:00:38 +00:00
Tim van der Lippe 8bdbc7af8c Use rollup to bundle module entrypoints
Settting the Ninja arg `is_debug` will retain the old behavior. However,
setting that flag to `false` will start using Rollup. Rollup will bundle
everything into an entrypoint, but will avoid bundling module
dependencies.

For example, if a file in `ui` depends on `common`, then everything in
`ui` will be bundled into `ui/ui.js`. But, it will retain all imports to
`common` as `import * as Common from '../common/common.js';`.

This also caught an issue with misconfiguration in the
wasmparser_worker, which should import the files directly and can't use
it in the dependencies array of the module.json

Lastly, the BUILD.gn definition is significantly cleaned up. In the
process of doing all this work, I discovered that we can simply use
`foreach` to iterate through all source files. This removes the
duplication of both `fron_end` and `$resources_out_dir` and
significantly reduces the amount of clutter in BUILD.gn.

As such, update check-gn.js to check for the correct GN variables.

roll CodeMirror: ignore

Bug: 1046596
Change-Id: I7dcda7949e79e001c8a11307dc902f96a8fa6696
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2089906
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2020-03-09 10:59:37 +00:00
Tim van der Lippe f5b833c6d2 Remove useless content read
This logic was only performed for the shell.js, which is essentially
empty. As such, we can remove it.

Bug: 1046596
Change-Id: I0218e0a7264594b588080e36c73b498c06e0d160
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2035793
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2020-03-05 16:01:24 +00:00
Tim van der Lippe a092065b44 Remove unused methods
They are not referenced anywhere in this file

Bug: 1046596
Change-Id: If9a76df7ee83d2d95a3c8185371a01fee71fa283
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2035792
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2020-03-05 15:42:13 +00:00
Tim van der Lippe e894e9c586 Stop rewriting html entrypoints
This adds the necessary ES imports to the various entrypoints to
properly load their dependencies. This means that we can stop rewriting
the HTML entrypoints and simply copy them over to the build directory.

Bug: 1046596
Change-Id: If1182ed051a22cc2bb0c77456456ab039f63cec2
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2035791
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2020-03-04 17:19:45 +00:00
Tim van der Lippe b3b90761b1 Generate InspectorBackendCommands.js on presubmit
This checks in the InspectorBackendCommands in the source tree file
and ensures that it is kept in sync whenever the third_party
location has been updated.

In the process, I discovered multiple misconfigurations in the formatting
presubmit check. First of all, it was never running, because the
.eslintignore had an empty line. Second of all, it was running twice,
which is unnecessary since we now check for changed files at the end
of the presubmit. Lastly, it was only formatting JS files, while it
should check all files.

I have also updated the _CheckGeneratedFiles check to only run if it
is actually necessary. If there are no changes made to any affected of
the files, it will skip the step. This should thus reduce the presubmit
time and we will only pay the cost if we actually update any of the
files.

Lastly, it will now properly format and lint the generated files. This
makes reading the code a lot easier and makes it easier to digest the
diff when a protocol update goes through. I have verified that, in a
full build, the files are still minified. Thus, this has no impact on
the loading performance.

DISABLE_THIRD_PARTY_CHECK=Updating protocol generation

Fixed: 1056614
Change-Id: If49b0e749978ea1a7838992ec13507ee761ad76c
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2087765
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2020-03-04 15:52:35 +00:00
Tim van der Lippe f664763cdf Generate SupportedCSSProperties.js on presubmit
This checks in the SupportedCSSProperties in the source tree file
and ensures that it is kept in sync whenever the third_party
location has been updated.

Bug: 1056614
Change-Id: If0ff2ba0f94f1f0eded2792922e9a917820d9772
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2087762
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2020-03-04 14:23:14 +00:00
Tim van der Lippe 4d004ec2b8 Generate ARIAProperties.js on presubmit
This checks in the ARIAProperties in the source tree file and ensures
that it is kept in sync whenever the third_party location has been
updated.

Bug: 1056614
Change-Id: Ic48b6cba17fe0a3c6b7d28dd3f74483ceac2969b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2085176
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2020-03-04 12:07:04 +00:00
Tim van der Lippe 1418552cad Remove bundled Runtime.js
After
https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2030781
all entrypoints properly import the Runtime.js. As such, we no longer
need to force-bundle the Runtime in any entrypoint.

Bug: 1046596, 1006759
Change-Id: I0b1d14f3857b4c9511e14f416ddf7774e7d0071b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2031122
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2020-02-03 13:50:28 +00:00
Brandon Goddard 53faba1c7d Reland "Add script that checks license headers of JavaScript files"
This reverts commit 27f15d113a.

Reason for revert: script is fixed on Windows

Original change's description:
> Revert "Add script that checks license headers of JavaScript files"
>
> This reverts commit 6122ebd2f9.
>
> Reason for revert: Presubmit fails on windows due to relative
> path comparison with excluded files
>
> Original change's description:
> > Add script that checks license headers of JavaScript files
> >
> > The script checks if the license header is the BSD-3 license header that
> > DevTools is licensed under. It excludes files that have license headers
> > that reference non-Google/non-Chromium authors or are third_party
> > bundles that are checked into a non-third_party folder.
> >
> > Change-Id: I35f78036b48d3d7b7dcb9db1e070691282e27a02
> > Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2016747
> > Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
> > Reviewed-by: Liviu Rau <liviurau@chromium.org>
> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
>
> TBR=bmeurer@chromium.org,aerotwist@chromium.org,tvanderlippe@chromium.org,liviurau@chromium.org
>
> Change-Id: Idc27e9b78d5ac314176c71f8f4a7a2257da08be9
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2019019
> Reviewed-by: Lorne Mitchell <lomitch@microsoft.com>
> Reviewed-by: Brandon Goddard <brgoddar@microsoft.com>
> Commit-Queue: Brandon Goddard <brgoddar@microsoft.com>

TBR=bmeurer@chromium.org,aerotwist@chromium.org,lomitch@microsoft.com,brgoddar@microsoft.com,tvanderlippe@chromium.org,liviurau@chromium.org

Change-Id: I191665c8e3fdbee7f3c5c312b5ba00513502e080
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2019021
Reviewed-by: Fabio Rocha <fabio.rocha@microsoft.com>
Commit-Queue: Brandon Goddard <brgoddar@microsoft.com>
2020-01-24 18:16:35 +00:00
Brandon Goddard 27f15d113a Revert "Add script that checks license headers of JavaScript files"
This reverts commit 6122ebd2f9.

Reason for revert: Presubmit fails on windows due to relative
path comparison with excluded files

Original change's description:
> Add script that checks license headers of JavaScript files
> 
> The script checks if the license header is the BSD-3 license header that
> DevTools is licensed under. It excludes files that have license headers
> that reference non-Google/non-Chromium authors or are third_party
> bundles that are checked into a non-third_party folder.
> 
> Change-Id: I35f78036b48d3d7b7dcb9db1e070691282e27a02
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2016747
> Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
> Reviewed-by: Liviu Rau <liviurau@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>

TBR=bmeurer@chromium.org,aerotwist@chromium.org,tvanderlippe@chromium.org,liviurau@chromium.org

Change-Id: Idc27e9b78d5ac314176c71f8f4a7a2257da08be9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2019019
Reviewed-by: Lorne Mitchell <lomitch@microsoft.com>
Reviewed-by: Brandon Goddard <brgoddar@microsoft.com>
Commit-Queue: Brandon Goddard <brgoddar@microsoft.com>
2020-01-24 16:50:05 +00:00
Tim van der Lippe 6122ebd2f9 Add script that checks license headers of JavaScript files
The script checks if the license header is the BSD-3 license header that
DevTools is licensed under. It excludes files that have license headers
that reference non-Google/non-Chromium authors or are third_party
bundles that are checked into a non-third_party folder.

Change-Id: I35f78036b48d3d7b7dcb9db1e070691282e27a02
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2016747
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
2020-01-24 11:51:49 +00:00
Tim van der Lippe 4d1ddf7f73 Migrates protocol/ to ESM internally
Bug: 1006759
Change-Id: I99743fcf3d33bc1e5a3b729c2c544826e1d8e923
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2013156
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2020-01-23 13:19:20 +00:00
Tim van der Lippe 6d1e03c598 Reland "Migrate accessibility/ to ESM internally"
This reverts commit 5a8f4d89e1.

Reason for revert: Use fix as we did for CSSProperties

Original change's description:
> Revert "Migrate accessibility/ to ESM internally"
>
> This reverts commit 785c6a4f1c.
>
> Reason for revert: Suspected to break "run_type_check.py" on the bot.
> https://ci.chromium.org/p/chromium/builders/try/linux-rel/279842
>
> Original change's description:
> > Migrate accessibility/ to ESM internally
> >
> > Bug: 1006759
> > Change-Id: I9d801349fd73a06d7f72933acfa65b103531a278
> > Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1991511
> > Commit-Queue: Paul Lewis <aerotwist@chromium.org>
> > Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
>
> TBR=aerotwist@chromium.org,tvanderlippe@chromium.org
>
> Change-Id: Ie4fe54b84cf91cd034bfdb21c20b97eaacdb3599
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 1006759
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1994960
> Commit-Queue: Simon Zünd <szuend@chromium.org>
> Reviewed-by: Simon Zünd <szuend@chromium.org>

Bug: 1006759
Change-Id: I7e3b3eafd608aa2fa7d05319a9ff0d4947a2dc88
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2013148
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2020-01-22 14:48:24 +00:00
Tim van der Lippe 9293af7230 Migrate sdk/ to ESM internally
Bug: 1006759
Change-Id: I2bb0c8eaa4fdc89edd8da2b12d9fd0e08d427174
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2003327
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2020-01-17 15:17:17 +00:00
Rob Paveza 41120592d3 Refactor of the 'copy_all_modules' build step
I've sporadically seen the same CreateProcess failure in ninja recently
that we'd been seeing for the GRD script [1]. This failure is related to
the copy_devtools_modules script.

As part of this change I've also corrected some linting errors that I
had made with the previous fix.

[1] The previous fix can be found at
https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1992319

Change-Id: Ic9a66160acddfc929fdd43f20572435ceff3724c
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1997723
Commit-Queue: Robert Paveza <Rob.Paveza@microsoft.com>
Reviewed-by: Lorne Mitchell <lomitch@microsoft.com>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
2020-01-13 19:07:47 +00:00
Simon Zünd 5a8f4d89e1 Revert "Migrate accessibility/ to ESM internally"
This reverts commit 785c6a4f1c.

Reason for revert: Suspected to break "run_type_check.py" on the bot.
https://ci.chromium.org/p/chromium/builders/try/linux-rel/279842

Original change's description:
> Migrate accessibility/ to ESM internally
> 
> Bug: 1006759
> Change-Id: I9d801349fd73a06d7f72933acfa65b103531a278
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1991511
> Commit-Queue: Paul Lewis <aerotwist@chromium.org>
> Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>

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

Change-Id: Ie4fe54b84cf91cd034bfdb21c20b97eaacdb3599
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1006759
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1994960
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
2020-01-10 06:01:18 +00:00
Paul Lewis 785c6a4f1c Migrate accessibility/ to ESM internally
Bug: 1006759
Change-Id: I9d801349fd73a06d7f72933acfa65b103531a278
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1991511
Commit-Queue: Paul Lewis <aerotwist@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
2020-01-09 17:06:11 +00:00
Rob Paveza 4947355c94 Fix for too-long length of command line in Windows build.
Apparently related to the changes to ESM, the Windows build command
line has started to exceed 32kb. This is running into a fault within
ninja in which the call to CreateProcess fails as a result of the
command line being an invalid parameter.

This fix addresses it by dumping the file list into a GN "response
file" which is then fed into the corresponding Python script, as
indicated by the GN docs. See:
https://gn.googlesource.com/gn/+/master/docs/reference.md#var_response_file_contents

Bug: 1040233
Change-Id: Ie421a09d2a23756e9195e3ad84b941187de6e3c0
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1992319
Reviewed-by: John Emau <John.Emau@microsoft.com>
Reviewed-by: Mike Jackson <mjackson@microsoft.com>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Robert Paveza <Rob.Paveza@microsoft.com>
2020-01-08 22:17:55 +00:00
Tim van der Lippe 0c21af5553 Use module scope for workers
This changes the Common.Worker to create Workers that use the module
scope rather than the global scope. It allows us to use es-imports,
which consequently allows us to remove the bundling during the build
step. This should hopefully improve the Ninja non-determinism that we
were facing when making changes to files that are used in the various
workers.

Bug: 1006759
Change-Id: I7ac209817b1576d2accd790f1bf7ef6a658f5605
Fixed: 1013129
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1981615
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2020-01-08 15:12:05 +00:00
Mathias Bynens f885d2e6f8 Prefer Brotli over gzip for compressing webui resources
This makes resources.pak another 228.1 kB smaller (from 7,070,021
bytes down to 6,841,901 bytes).

Bug: chromium:1025041
Change-Id: I0d45e3b40f5765bcb5c2266750698d33b6adcae2
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1964350
Auto-Submit: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
2019-12-12 14:36:14 +00:00
Mathias Bynens 4d4e51aa31 Set compress='gzip' for SVG resources
This saves some more bytes in the total image size, which is important for Chrome OS.

Follow-up to:
https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1918736

Bug: chromium:1025041
Change-Id: I01167d35ae6d693428dfd44252b7f86940f416b7
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1962301
Auto-Submit: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
2019-12-12 13:41:04 +00:00
Steven Bennetts 457ff4a215 Set compress='gzip' for webui resources
This adds the compress="gzip" entry to webui (html, js, css) files in
devtools_resources.grd.

This will save 4.8 MB in the image size, which is critical for
Crhrome OS.

Bug: chromium:1025041
Change-Id: I0357fc1cc677f83f1f36fb39ca586543e37d124c
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1918736
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
2019-12-12 12:54:23 +00:00
Changhao Han b8b4fef645 Autogenerate CSS autocomplete values with extra manual entries.
Bug: chromium:1021810
Change-Id: Ifd6ed31b31c61fc5b509ffe049d961cc68e7bcc4
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1953616
Commit-Queue: Changhao Han <changhaohan@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
2019-12-11 15:38:04 +00:00
vidorteg 7a077810bd Updating paths on generate_devtools_ui_strings.js
Localization scripts got moved from localization_utils to
localization/utils, this script needs to be updated to reflect the
change.

Change-Id: I0a942d928687e3df767e508b25a286be026f0dcb
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1959090
Reviewed-by: Mandy Chen <mandy.chen@microsoft.com>
Reviewed-by: Lorne Mitchell <lomitch@microsoft.com>
Commit-Queue: Vidal Diazleal <vidorteg@microsoft.com>
2019-12-10 00:11:50 +00:00
Tim van der Lippe e6974cd0ab Fix duplicate skip_compilation files
modular_build can compute all skip_compilation files, which saves us
some duplication run_type_check

Bug:1006759
Change-Id: Id8eff10fa716f7cb17d36aa18b54605f26dba713
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1934219
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2019-11-27 16:16:43 +00:00
Yang Guo ad4f252783 Ensure building again is a no-op
GN does not handle timestamps well if an action that is not copy
copies or symlinks files. Work around this by using a build stamp
file.

R=szuend@chromium.org

Bug: 1012239
Change-Id: I81da7d206f71031d401ffa38beac7983eb732c14
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1924188
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
2019-11-19 12:27:04 +00:00
Tim van der Lippe fd90361fad Rollup workers and migrate dependent modules
Since workers do not support modules [1], it is not possible to
currently import any ESM DevTools module. To be able to migrate
text_utils/ to ESM, we would need to duplicate a large portion of
text_utils/, which would be unmaintainable.

We already had the same situation when we migrated platform/ to ESM and
decided to copy the relevant functions, but this time around that is no
longer an option.

Thus, the 2 workers (heap_snapshot_worker and formatter_worker) are now
being bundled on build time. This means that in a release build, the
respective entrypoints are bundled and inserted in the output.

To bundle, we use `rollup`, which is a bundler only concerned with
rolling up ES modules. All other functionality of rollup (such as
tree-shaking) is unused. We can revisit later if we need a bundler for
the rest of devtools, but since we are in active migration to ESM that
is infeasible at this point in time.

As part of this CL, the following folders are migrated to ESM:
- cm_headless/
- formatter_worker/
- heap_snapshot_model/
- heap_snapshot_worker/
- text_utils/

Since text_utils is also an autostart module for the shell, this is the
only module that is imported from root.js.

Some of these modules also include files that are annotated with
skip_compilation and thus run with dummy files during Closure
compilation.

Note that, because of the usages of import-statements in the workers
and the blocking bug [1], the workers are generated even when Chromium
is built with `debug_devtools=true`.

Since heap_snapshot_model/ also used in the profiler, we have to eagerly
load this module in root.js. Once all other dependencies of the profiler
have been migrated to ESM, we can remove this import-statement.

[1]: crbug.com/680046

Bug:1013129,1006759
Change-Id: I4c03c7b8a1f351ae9693cbcd922412083dd34bba
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1883707
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2019-11-07 11:55:25 +00:00
Tim van der Lippe 647e33b2a1 Reland "Implement lazy loading of modules"
This reverts commit cc75dee3ba.

Reason for revert: Race-condition fixed in devtools-compatibility.js

Original change's description:
> Revert "Implement lazy loading of modules"
> 
> This reverts commit 7c08ccfd54.
> 
> Reason for revert:
> 
> Breaks browser_tests. Steps to reproduce:
> - Build Chromium's browser_tests target
> - Run `xvfb-run -s "-screen 0 1024x768x24" out/Default/browser_tests --gtest_filter=DevToolsExtensionTest.TestDevToolsExtensionAPI`
> - Observe this failure: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8897915672067501312/+/steps/browser_tests__with_patch_/0/logs/Deterministic_failure:_DevToolsExtensionTest.TestDevToolsExtensionAPI__status_FAILURE_/0
> 
> Original change's description:
> > Implement lazy loading of modules
> > 
> > Any module that is not autostart and has `modules` specified in its `module.json`
> > will now have its entrypoint dynamically imported. Update the release build script
> > to output the `modules` array as well so that the Runtime can load it.
> > 
> > Add additional entrypoints to `platform` and `dom_extension` to be consistent
> > with the naming patterns of all other modules
> > 
> > Bug:1006759
> > Change-Id: If6d10a13a62354079e3f8ee49bee4ecdcffa6758
> > Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1893085
> > Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
> > Reviewed-by: Paul Lewis <aerotwist@chromium.org>
> 
> TBR=yangguo@chromium.org,aerotwist@chromium.org,tvanderlippe@chromium.org
> 
> Change-Id: I22e8a341e841a99df0df9808a419cc070dd81bea
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 1006759
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1893087
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Commit-Queue: Yang Guo <yangguo@chromium.org>

TBR=yangguo@chromium.org,aerotwist@chromium.org,tvanderlippe@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 1006759
Change-Id: Id69542e883fc4b852a79e83373773de256976f83
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1897686
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2019-11-04 19:25:35 +00:00
Yang Guo cc75dee3ba Revert "Implement lazy loading of modules"
This reverts commit 7c08ccfd54.

Reason for revert:

Breaks browser_tests. Steps to reproduce:
- Build Chromium's browser_tests target
- Run `xvfb-run -s "-screen 0 1024x768x24" out/Default/browser_tests --gtest_filter=DevToolsExtensionTest.TestDevToolsExtensionAPI`
- Observe this failure: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8897915672067501312/+/steps/browser_tests__with_patch_/0/logs/Deterministic_failure:_DevToolsExtensionTest.TestDevToolsExtensionAPI__status_FAILURE_/0

Original change's description:
> Implement lazy loading of modules
> 
> Any module that is not autostart and has `modules` specified in its `module.json`
> will now have its entrypoint dynamically imported. Update the release build script
> to output the `modules` array as well so that the Runtime can load it.
> 
> Add additional entrypoints to `platform` and `dom_extension` to be consistent
> with the naming patterns of all other modules
> 
> Bug:1006759
> Change-Id: If6d10a13a62354079e3f8ee49bee4ecdcffa6758
> Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1893085
> Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
> Reviewed-by: Paul Lewis <aerotwist@chromium.org>

TBR=yangguo@chromium.org,aerotwist@chromium.org,tvanderlippe@chromium.org

Change-Id: I22e8a341e841a99df0df9808a419cc070dd81bea
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1006759
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1893087
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
2019-11-02 10:05:43 +00:00
Tim van der Lippe 7c08ccfd54 Implement lazy loading of modules
Any module that is not autostart and has `modules` specified in its `module.json`
will now have its entrypoint dynamically imported. Update the release build script
to output the `modules` array as well so that the Runtime can load it.

Add additional entrypoints to `platform` and `dom_extension` to be consistent
with the naming patterns of all other modules

Bug:1006759
Change-Id: If6d10a13a62354079e3f8ee49bee4ecdcffa6758
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1893085
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2019-11-01 16:38:43 +00:00
Lorne Mitchell 0a1c649850 DevTools: Updated the generate_devtools_ui_strings.js/.py scripts to reference the new repo location.
Bug: 941561
Change-Id: I80d8f3a2a6fe3662985c257786e9a7cecfa5a53b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1888518
Reviewed-by: Mike Jackson <mjackson@microsoft.com>
Reviewed-by: Vidal Diazleal <vidorteg@microsoft.com>
Commit-Queue: Lorne Mitchell <lomitch@microsoft.com>
2019-10-30 15:15:34 +00:00
Yang Guo 75beda900f Move test scripts to scripts/test
R=aerotwist@chromium.org, liviurau@chromium.org, machenbach@chromium.org

Bug: 1018122
Change-Id: I7cc3a1a9ab01c649b3c7fe8ba5d5254adc631634
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1880033
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
2019-10-28 07:57:59 +00:00
Yang Guo 4fd355cc40 Switch to new repository 2019-10-21 08:08:56 +02:00
Tim van der Lippe 226fc2224b Migrate extensions/ to ESM
Bug: 1006759
Change-Id: I55ff55840cbf00a108cb0f3630cf5b489bf3aac2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1849386
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#704574}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a332bbea8c8a4c485dc20685b810c082c14a7b70
2019-10-10 12:17:12 +00:00
Tim van der Lippe bc38bd6964 Minify ES Modules files
After converting the `ui/` folder to ESM, there was a significant performance
regression in terms of file size of the `resources.pak`. It turns out that we
were not minifying ESM files, but we did do that before with Closure.

Update the `copy_devtools_modules` to also invoke rjsmin to minify the
JavaScript source code.

Before:
$ du -h -B K out/Default/resources.pak
12096K	out/Default/resources.pak

After:
$ du -h -B K out/Default/resources.pak
11752K	out/Default/resources.pak

Before the original CL transforming `ui/` landed:
$ du -h -B K out/Default/resources.pak
11860K	out/Default/resources.pak

This means that after converting `ui/` to ESM, we saved 90KB. We suspect
this is because we are no longer transpiling to ES5, but instead serve
source ES6.

Bug: 1010910
Change-Id: I7dd07ff788d014e9f9a8e25e168c58c010cd00af
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1837814
Commit-Queue: Tim Van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#702500}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8d2021d8394b9a248436fb6976070629cdffd961
2019-10-03 18:36:31 +00:00