New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 891377 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
Last visit > 30 days ago
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: ----



Sign in to add a comment

Add binary data type to DevTools protocol.

Project Member Reported by johannes@chromium.org, Oct 2

Issue description

Currently, the DevTools protocol has a string data type, but not a data type for binary blobs. This means that clients of the protocol must base64 encode binary blobs into string fields of requests and decode base64 binary blobs from string fields of responses.

I'd like to introduce a new data type, "binary", which makes it so that the base64 encoding for the JSON wire format will be taken care of in the generated code / protocol layer, as opposed to within the clients of the protocol or the handlers for the protocol.

A WIP PR is available here:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

Roughly:
- The format (.pdl) files for the protocol specification need to support this new data type, binary.
- Code generation (templates and code generator need to be updated accordingly).
- In each of the code locations, the appropriate routine for base64 encoding / decoding needs to be invoked. This will get done by adding a couple of static encode / decode routines to StringUtil, which is already referenced by the generated code for string conversions, json parsing, etc.
- In a last step, once the support for the binary type exists, fields that are currently base64 encoded strings can be migrated. Thus far this works well for string fields that are always base64 encoded. The wire format doesn't change, the Javascript access doesn't change, but the C++ access will then just use std::vector<uint8_t> and let the protocol layer handle the encoding / decoding. This means that handlers are slightly shorter and no longer reference base64 libraries, and C++ client code needs to be updated.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 15

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3ef5743aac6979dac400628c22c85c37d96083b4

commit 3ef5743aac6979dac400628c22c85c37d96083b4
Author: Johannes Henkel <johannes@chromium.org>
Date: Mon Oct 15 18:29:44 2018

Add protocol::Binary type to string-util.h.

This is in preparation of referencing this type from the code
generated by third_party/inspector_protocol/code_generator.py.
v8 will not use protocol::Binary, that is, the .pdl file for
v8 won't have binary fields. Therefore, we need not provide
an implementation for this type.

My overall WIP change is in here, and happy to explain more:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

Bug: chromium:891377
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I7336be5f6a60e6ad143290eca09dea59ff4b56a8
Reviewed-on: https://chromium-review.googlesource.com/c/1277714
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56658}
[modify] https://crrev.com/3ef5743aac6979dac400628c22c85c37d96083b4/src/inspector/BUILD.gn
[modify] https://crrev.com/3ef5743aac6979dac400628c22c85c37d96083b4/src/inspector/string-util.h

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/719629d34caae2c98b184f4a3c96f6cf7edf2e05

commit 719629d34caae2c98b184f4a3c96f6cf7edf2e05
Author: Johannes Henkel <johannes@chromium.org>
Date: Tue Oct 16 17:55:58 2018

[DevTools] Interpret 'binary' as 'string' on frontend

This means it's up to the client of the protocol layer to decode
the base64, just like before the introduction of 'binary'.

My overall WIP change is in here, and happy to explain more:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

Bug: chromium:891377
Change-Id: I60762ff2a815afe2bb0b69480340f1904a1d9909
Reviewed-on: https://chromium-review.googlesource.com/c/1281877
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600039}
[modify] https://crrev.com/719629d34caae2c98b184f4a3c96f6cf7edf2e05/third_party/blink/renderer/devtools/scripts/build/code_generator_frontend.py
[modify] https://crrev.com/719629d34caae2c98b184f4a3c96f6cf7edf2e05/third_party/blink/renderer/devtools/scripts/build/generate_protocol_externs.py

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e39f8a7846c061170f57fa70dc8f771a3ef311c9

commit e39f8a7846c061170f57fa70dc8f771a3ef311c9
Author: Johannes Henkel <johannes@chromium.org>
Date: Tue Oct 16 18:25:45 2018

[DevTools] Add protocol::Binary to protocol_string.h

This is in preparation of referencing this type from the code
generated by third_party/inspector_protocol/code_generator.py.

My overall WIP change is in here, and happy to explain more:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

Bug: chromium:891377
Change-Id: I9fbb8b980e522c0063f96a8a2a42498903d445a8
Reviewed-on: https://chromium-review.googlesource.com/c/1282208
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600051}
[modify] https://crrev.com/e39f8a7846c061170f57fa70dc8f771a3ef311c9/chrome/browser/devtools/protocol_string.h

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fc963e2f9333ef22b1116af0b4921e920cef65c0

commit fc963e2f9333ef22b1116af0b4921e920cef65c0
Author: Johannes Henkel <johannes@chromium.org>
Date: Tue Oct 16 18:26:10 2018

[DevTools] Add protocol::Binary to ui_devtools/string_util.h.

This is in preparation of referencing this type from the code
generated by third_party/inspector_protocol/code_generator.py.

My overall WIP change is in here, and happy to explain more:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

Bug: chromium:891377
Change-Id: I2e59d49bbe333bb132ea8e16fcac2dace589f163
Reviewed-on: https://chromium-review.googlesource.com/c/1282224
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600052}
[modify] https://crrev.com/fc963e2f9333ef22b1116af0b4921e920cef65c0/components/ui_devtools/string_util.h

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/cf1660723ff0ed9f01953a3acb506f0510cac1c0

commit cf1660723ff0ed9f01953a3acb506f0510cac1c0
Author: Johannes Henkel <johannes@chromium.org>
Date: Tue Oct 16 21:55:12 2018

[DevTools] Rename Binary::createFromBase64 -> fromBase64.

This will be more consistent with other creation methods,
as discovered in
https://chromium-review.googlesource.com/c/chromium/src/+/1281166/4/headless/lib/browser/protocol/protocol_string.h

Sorry about the Churn. And it turns out I was wrong I'll have to
send one more PR for two other renames. Sorry!

Bug: chromium:891377
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I10ed870bcf065c1913971ec8c194fa1c8149a2b4
Reviewed-on: https://chromium-review.googlesource.com/c/1284789
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56708}
[modify] https://crrev.com/cf1660723ff0ed9f01953a3acb506f0510cac1c0/src/inspector/string-util.h

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5fd6d7378fcbaceb59af9a07888c5c256c84efad

commit 5fd6d7378fcbaceb59af9a07888c5c256c84efad
Author: Johannes Henkel <johannes@chromium.org>
Date: Tue Oct 16 22:24:13 2018

[DevTools] Binary::createFromBase64 -> fromBase64

To be consistent with the other creation methods.
See also:
https://chromium-review.googlesource.com/c/chromium/src/+/1281166/4/headless/lib/browser/protocol/protocol_string.h

Bug: chromium:891377
Change-Id: I4cf9a3ccd1dc91b428aa10e28ddbb49c56195622
Reviewed-on: https://chromium-review.googlesource.com/c/1284910
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600152}
[modify] https://crrev.com/5fd6d7378fcbaceb59af9a07888c5c256c84efad/chrome/browser/devtools/protocol_string.h
[modify] https://crrev.com/5fd6d7378fcbaceb59af9a07888c5c256c84efad/components/ui_devtools/string_util.h

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d5f73ba89a508cc9c9e40aa279f68eca82e4f1ce

commit d5f73ba89a508cc9c9e40aa279f68eca82e4f1ce
Author: Johannes Henkel <johannes@chromium.org>
Date: Tue Oct 16 22:47:43 2018

[DevTools] Add headless::protocol::Binary to protocol_string{.h,cc}.

This is in preparation of referencing this type from the code
generated by third_party/inspector_protocol/code_generator.py /
headless/lib/browser/devtools_api/client_api_generator.py.

My overall WIP change is in here, and happy to explain more:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

Bug: chromium:891377
Change-Id: I1d053de59f0e6c07cfe42b29a3e09aaab91ac330
Reviewed-on: https://chromium-review.googlesource.com/c/1281166
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600160}
[modify] https://crrev.com/d5f73ba89a508cc9c9e40aa279f68eca82e4f1ce/headless/BUILD.gn
[modify] https://crrev.com/d5f73ba89a508cc9c9e40aa279f68eca82e4f1ce/headless/lib/browser/protocol/protocol_string.cc
[modify] https://crrev.com/d5f73ba89a508cc9c9e40aa279f68eca82e4f1ce/headless/lib/browser/protocol/protocol_string.h
[add] https://crrev.com/d5f73ba89a508cc9c9e40aa279f68eca82e4f1ce/headless/lib/browser/protocol/protocol_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0b0ff2391bfc692c62f7252ccc86378973bb3279

commit 0b0ff2391bfc692c62f7252ccc86378973bb3279
Author: Johannes Henkel <johannes@chromium.org>
Date: Wed Oct 17 18:09:45 2018

[DevTools] Add binary type support for headless.

This adds support for protocol::Binary to the headless
client API generator, so that the headless shell may
take advantage of fields in the protocol that are
marked binary.

My overall WIP change is in here, and happy to explain more:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

Bug: chromium:891377
Change-Id: I4e46d4b94ad019be62a9a31867d956b00d718adf
Reviewed-on: https://chromium-review.googlesource.com/c/1285356
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600480}
[modify] https://crrev.com/0b0ff2391bfc692c62f7252ccc86378973bb3279/headless/lib/browser/devtools_api/client_api_generator.py
[modify] https://crrev.com/0b0ff2391bfc692c62f7252ccc86378973bb3279/headless/lib/browser/devtools_api/domain_h.template
[modify] https://crrev.com/0b0ff2391bfc692c62f7252ccc86378973bb3279/headless/lib/browser/devtools_api/domain_types_h.template
[modify] https://crrev.com/0b0ff2391bfc692c62f7252ccc86378973bb3279/headless/public/internal/value_conversions.h

Project Member

Comment 9 by bugdroid1@chromium.org, Oct 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4990e61dc5aed7db2d25fc71f011863baa10b9c5

commit 4990e61dc5aed7db2d25fc71f011863baa10b9c5
Author: Johannes Henkel <johannes@chromium.org>
Date: Fri Oct 19 00:15:26 2018

[DevTools] Add protocol::content::Binary to protocol_string{.h,.cc}.

This is in preparation of referencing this type from the code
generated by third_party/inspector_protocol/code_generator.py.

My overall WIP change is in here, and happy to explain more:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

Bug: chromium:891377
Change-Id: I66f75e2b53f30944fecbfdc22c396799c15593b8
Reviewed-on: https://chromium-review.googlesource.com/c/1280555
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600978}
[modify] https://crrev.com/4990e61dc5aed7db2d25fc71f011863baa10b9c5/content/browser/devtools/protocol_string.cc
[modify] https://crrev.com/4990e61dc5aed7db2d25fc71f011863baa10b9c5/content/browser/devtools/protocol_string.h
[add] https://crrev.com/4990e61dc5aed7db2d25fc71f011863baa10b9c5/content/browser/devtools/protocol_unittest.cc
[modify] https://crrev.com/4990e61dc5aed7db2d25fc71f011863baa10b9c5/content/test/BUILD.gn

Project Member

Comment 10 by bugdroid1@chromium.org, Oct 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5a188171871ad205bcda506badef423eb6f7e29c

commit 5a188171871ad205bcda506badef423eb6f7e29c
Author: Johannes Henkel <johannes@chromium.org>
Date: Fri Oct 19 01:27:15 2018

[DevTools] Compatibility for autofill assistant for protocol::Binary.

I'm introducing a binary type to the devtools protocol;
autofill assistant uses a forked version of our client code generator
against the .pdl files and third_party/inspector_protocol/pdl.py.

So here, I'd like to map binary to string, to avoid having to
backport the protocol::Binary support for the autofill assistant.
This means that just like now, this code will have to base64decode
the strings manually to get the payload.

My overall WIP change is in here, and happy to explain more:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

I'm adding a TODO to this script to later follow up with
protocol::Binary support. See http://crbug.com/896940.

Bug: chromium:891377
Change-Id: I29613a787c037fada0845372a84f3d283906f153
Reviewed-on: https://chromium-review.googlesource.com/c/1285751
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Ganggui Tang <gogerald@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601011}
[modify] https://crrev.com/5a188171871ad205bcda506badef423eb6f7e29c/components/autofill_assistant/browser/devtools/devtools_api/client_api_generator.py

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 23

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/35ba7448515f62f57e17bfd972e48b5caf35b38a

commit 35ba7448515f62f57e17bfd972e48b5caf35b38a
Author: Johannes Henkel <johannes@chromium.org>
Date: Tue Oct 23 19:52:26 2018

[DevTools] Add blink::protocol::Binary to v8_inspector_string{.cc,.h}.

This is in preparation of referencing this type from the code
generated by third_party/inspector_protocol/code_generator.py.

My overall WIP change is in here, and happy to explain more:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

Bug: chromium:891377
Change-Id: I74836b74df4a3009670d8193c6b6bbd179c22fb8
Reviewed-on: https://chromium-review.googlesource.com/c/1280210
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602062}
[modify] https://crrev.com/35ba7448515f62f57e17bfd972e48b5caf35b38a/third_party/blink/renderer/core/BUILD.gn
[add] https://crrev.com/35ba7448515f62f57e17bfd972e48b5caf35b38a/third_party/blink/renderer/core/inspector/protocol_unittest.cc
[modify] https://crrev.com/35ba7448515f62f57e17bfd972e48b5caf35b38a/third_party/blink/renderer/core/inspector/v8_inspector_string.cc
[modify] https://crrev.com/35ba7448515f62f57e17bfd972e48b5caf35b38a/third_party/blink/renderer/core/inspector/v8_inspector_string.h

Project Member

Comment 12 by bugdroid1@chromium.org, Oct 23

The following revision refers to this bug:
  https://chromium.googlesource.com/deps/inspector_protocol/+/460186cff1f0eead0d418626e7e75f52105182b2

commit 460186cff1f0eead0d418626e7e75f52105182b2
Author: Johannes Henkel <johannes@chromium.org>
Date: Tue Oct 23 22:33:17 2018

[DevTools] Support the binary type in .pdl files.

In .pdl files, we may then specify 'binary' as type instead
of 'string', indicating that for JSON, it's a base64 encoded
payload that's being transported as a string.

For C++ bindings, the protocol layer will then take care
of the encoding / decoding, so therefore, code_generator.py
references a new protocol::Binary type, which holds a
vector of uint8 internally, with variations to avoid
copying (e.g. reference counted buffer, etc.).
I'm adding this type to the string support libraries
that are part of the inspector protocol - e.g.
v8_inspector_string.h in Chromium.

The important part is that the binary type
- can be instantiated from a protocol::String (by base64 decoding),
- can be converted to a protocol::String (by base64 encoding), and
- provides access to the binary payload via ::data() and ::size().

convert_protocol_to_json.py now includes a backwards compatibility
escape hatch --map_binary_to_string, which makes it so that
in the .json protocol description files, all fields of
type 'binary' remain 'string' for now. I will enable this mode
for the protocol viewer, by adding the flag here:
https://github.com/ChromeDevTools/devtools-protocol/blob/master/scripts/update-to-latest.sh#L38-L41%5C

For Chromium, the .json protocol description files will contain the
binary type because these files are generated and consumed by
code generators, so in the Chromium / v8 code base we won't set the
compatibility flag.

My overall WIP change is in here, and happy to explain more:
https://chromium-review.googlesource.com/c/chromium/src/+/1244719

Bug: chromium:891377
Change-Id: I386014d22a3882541282e7d431f42f05c12643a5
[modify] https://crrev.com/460186cff1f0eead0d418626e7e75f52105182b2/pdl.py
[modify] https://crrev.com/460186cff1f0eead0d418626e7e75f52105182b2/check_protocol_compatibility.py
[modify] https://crrev.com/460186cff1f0eead0d418626e7e75f52105182b2/lib/Maybe_h.template
[modify] https://crrev.com/460186cff1f0eead0d418626e7e75f52105182b2/lib/ValueConversions_h.template
[modify] https://crrev.com/460186cff1f0eead0d418626e7e75f52105182b2/code_generator.py
[modify] https://crrev.com/460186cff1f0eead0d418626e7e75f52105182b2/convert_protocol_to_json.py

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 24

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e99349a9e93542e073fdb249d7ad5a67615cf996

commit e99349a9e93542e073fdb249d7ad5a67615cf996
Author: Johannes Henkel <johannes@chromium.org>
Date: Wed Oct 24 01:05:53 2018

Roll inspector_protocol to 460186cff1f0eead0d418626e7e75f52105182b2.

See
https://chromium.googlesource.com/deps/inspector_protocol/+/460186cff1f0eead0d418626e7e75f52105182b2

Bug: chromium:891377
Change-Id: I10332e68fb33f8bc06a489162171c52675373536
Reviewed-on: https://chromium-review.googlesource.com/c/1297591
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56922}
[modify] https://crrev.com/e99349a9e93542e073fdb249d7ad5a67615cf996/third_party/inspector_protocol/README.v8
[modify] https://crrev.com/e99349a9e93542e073fdb249d7ad5a67615cf996/third_party/inspector_protocol/check_protocol_compatibility.py
[modify] https://crrev.com/e99349a9e93542e073fdb249d7ad5a67615cf996/third_party/inspector_protocol/code_generator.py
[modify] https://crrev.com/e99349a9e93542e073fdb249d7ad5a67615cf996/third_party/inspector_protocol/convert_protocol_to_json.py
[modify] https://crrev.com/e99349a9e93542e073fdb249d7ad5a67615cf996/third_party/inspector_protocol/lib/DispatcherBase_cpp.template
[modify] https://crrev.com/e99349a9e93542e073fdb249d7ad5a67615cf996/third_party/inspector_protocol/lib/Maybe_h.template
[modify] https://crrev.com/e99349a9e93542e073fdb249d7ad5a67615cf996/third_party/inspector_protocol/lib/Object_h.template
[modify] https://crrev.com/e99349a9e93542e073fdb249d7ad5a67615cf996/third_party/inspector_protocol/lib/ValueConversions_h.template
[modify] https://crrev.com/e99349a9e93542e073fdb249d7ad5a67615cf996/third_party/inspector_protocol/pdl.py

Project Member

Comment 14 by bugdroid1@chromium.org, Oct 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/556b6e31f56e60044ebf484bbca48e39b42e5899

commit 556b6e31f56e60044ebf484bbca48e39b42e5899
Author: Johannes Henkel <johannes@chromium.org>
Date: Wed Oct 24 17:35:43 2018

Roll inspector_protocol to 460186cff1f0eead0d418626e7e75f52105182b2.

See
https://chromium.googlesource.com/deps/inspector_protocol/+/460186cff1f0eead0d418626e7e75f52105182b2

Bug: chromium:891377
Change-Id: I77a350b5338d17c9cd0bf18423abcfe2d6f1e4eb
Reviewed-on: https://chromium-review.googlesource.com/c/1297606
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602381}
[modify] https://crrev.com/556b6e31f56e60044ebf484bbca48e39b42e5899/third_party/inspector_protocol/README.chromium
[modify] https://crrev.com/556b6e31f56e60044ebf484bbca48e39b42e5899/third_party/inspector_protocol/check_protocol_compatibility.py
[modify] https://crrev.com/556b6e31f56e60044ebf484bbca48e39b42e5899/third_party/inspector_protocol/code_generator.py
[modify] https://crrev.com/556b6e31f56e60044ebf484bbca48e39b42e5899/third_party/inspector_protocol/convert_protocol_to_json.py
[modify] https://crrev.com/556b6e31f56e60044ebf484bbca48e39b42e5899/third_party/inspector_protocol/lib/Maybe_h.template
[modify] https://crrev.com/556b6e31f56e60044ebf484bbca48e39b42e5899/third_party/inspector_protocol/lib/ValueConversions_h.template
[modify] https://crrev.com/556b6e31f56e60044ebf484bbca48e39b42e5899/third_party/inspector_protocol/pdl.py

Project Member

Comment 15 by bugdroid1@chromium.org, Oct 25

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/18d189ddbd55dd3e6710f7449e8270c4743c997e

commit 18d189ddbd55dd3e6710f7449e8270c4743c997e
Author: Johannes Henkel <johannes@chromium.org>
Date: Thu Oct 25 00:34:24 2018

[DevTools] Switch compilation cache to protocol::Binary.

This moves base64 encoding / decoding into the protocol layer.
It takes advantage of these recently landed changes:

Supporting binary in .pdl files:
https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/1285695
Rolled into Chromium / v8.

Add protocol::Binary to v8_inspector_string:
https://chromium-review.googlesource.com/c/chromium/src/+/1280210

Bug: chromium:891377
Change-Id: I6a2712ad9556da5961565da95452aee47838e10a
Reviewed-on: https://chromium-review.googlesource.com/c/1298247
Reviewed-by: Paul Irish <paulirish@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602539}
[modify] https://crrev.com/18d189ddbd55dd3e6710f7449e8270c4743c997e/third_party/blink/renderer/core/inspector/browser_protocol.pdl
[modify] https://crrev.com/18d189ddbd55dd3e6710f7449e8270c4743c997e/third_party/blink/renderer/core/inspector/inspector_page_agent.cc
[modify] https://crrev.com/18d189ddbd55dd3e6710f7449e8270c4743c997e/third_party/blink/renderer/core/inspector/inspector_page_agent.h

Project Member

Comment 16 by bugdroid1@chromium.org, Oct 26

Project Member

Comment 17 by bugdroid1@chromium.org, Oct 27

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c37fea63d2871bdb3053be5f43d80cf0b12c9df2

commit c37fea63d2871bdb3053be5f43d80cf0b12c9df2
Author: Johannes Henkel <johannes@chromium.org>
Date: Sat Oct 27 01:06:41 2018

[DevTools] Switch rawResponse in request interception to binary.

This changes the type in the .pdl file to binary.
Wire representation remains as is, but now the protocol
layer handles the encoding / decoding into base64,
and we use protocol::Binary instead of std::string.

Relevant prereqs:
Supporting binary in .pdl files:
https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/1285695
Rolled into Chromium / v8.

Add protocol::content::Binary to protocol_string{.h,.cc}.
https://chromium-review.googlesource.com/c/chromium/src/+/1280555

Bug: chromium:891377

Change-Id: I2a392fcdaca8c695bd1227c8cb68513a675c22fd
Reviewed-on: https://chromium-review.googlesource.com/c/1298022
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603280}
[modify] https://crrev.com/c37fea63d2871bdb3053be5f43d80cf0b12c9df2/content/browser/devtools/devtools_url_interceptor_request_job.cc
[modify] https://crrev.com/c37fea63d2871bdb3053be5f43d80cf0b12c9df2/content/browser/devtools/protocol/network_handler.cc
[modify] https://crrev.com/c37fea63d2871bdb3053be5f43d80cf0b12c9df2/content/browser/devtools/protocol/network_handler.h
[modify] https://crrev.com/c37fea63d2871bdb3053be5f43d80cf0b12c9df2/third_party/blink/renderer/core/inspector/browser_protocol.pdl

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c58a4aef82457f8295843864ae11e9071a50da53

commit c58a4aef82457f8295843864ae11e9071a50da53
Author: Johannes Henkel <johannes@chromium.org>
Date: Mon Oct 29 22:39:53 2018

[DevTools] Use binary in protocol.pdl for screenshots and PDFs.

These changes affect the headless shell also, and similar to this,
C++ code elsewhere which is generated from the .pdl file, e.g.
client code, may be affected. However since the wire format
isn't changing, such code continues to work if it sticks with
string (and continues to encode/decode base64 manually).

Relevant prereqs:
Supporting binary in .pdl files:
https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/1285695
Rolled into Chromium / v8.

Add protocol::content::Binary to protocol_string{.h,.cc}.
https://chromium-review.googlesource.com/c/chromium/src/+/1280555
https://chromium-review.googlesource.com/c/chromium/src/+/1281166

[DevTools] Add blink::protocol::Binary to v8_inspector_string{.cc,.h}.
https://chromium-review.googlesource.com/c/chromium/src/+/1280210

Bug: chromium:891377
Change-Id: Ie959e251730b68929440385be24075fb430bcb0b
Reviewed-on: https://chromium-review.googlesource.com/c/1303410
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603665}
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/content/browser/devtools/protocol/page_handler.cc
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/content/browser/devtools/protocol/page_handler.h
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/headless/app/headless_shell.cc
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/headless/app/headless_shell.h
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/headless/lib/browser/headless_print_manager.cc
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/headless/lib/browser/headless_print_manager.h
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/headless/lib/browser/protocol/headless_handler.cc
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/headless/lib/browser/protocol/page_handler.cc
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/headless/lib/headless_web_contents_browsertest.cc
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/third_party/blink/renderer/core/inspector/browser_protocol.pdl
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/third_party/blink/renderer/core/inspector/inspector_audits_agent.cc
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/third_party/blink/renderer/core/inspector/inspector_audits_agent.h
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/third_party/blink/renderer/platform/graphics/picture_snapshot.cc
[modify] https://crrev.com/c58a4aef82457f8295843864ae11e9071a50da53/third_party/blink/renderer/platform/graphics/picture_snapshot.h

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c3dcd2c8ca06099a3e3cdf13791a43af8e3e9c5c

commit c3dcd2c8ca06099a3e3cdf13791a43af8e3e9c5c
Author: Johannes Henkel <johannes@chromium.org>
Date: Mon Oct 29 23:09:44 2018

[DevTools] Switch CachedResponse.body to binary.

This changes the type in the .pdl file to binary.
Wire representation remains as is, but now the protocol
layer handles the encoding / decoding into base64,
and we use protocol::Binary instead of std::string.

Relevant prereqs:
Supporting binary in .pdl files:
https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/1285695
Rolled into Chromium / v8.

Add protocol::content::Binary to protocol_string{.h,.cc}.
https://chromium-review.googlesource.com/c/chromium/src/+/1280555

Bug: chromium:891377
Change-Id: Ifc38332ce49c12bb1082ee165de04caa18a7f1ae
Reviewed-on: https://chromium-review.googlesource.com/c/1303558
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603678}
[modify] https://crrev.com/c3dcd2c8ca06099a3e3cdf13791a43af8e3e9c5c/third_party/blink/renderer/core/inspector/browser_protocol.pdl
[modify] https://crrev.com/c3dcd2c8ca06099a3e3cdf13791a43af8e3e9c5c/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc

Labels: Pri-2
Setting defect without priority to Pri-2.

Sign in to add a comment