66725a537e
This changes remoteObjectId format from "{injectedScriptId:123,id:456}" to "<isolateId>.<contextId>.<id>". Prepending isolateId fixes the problem that remote object ids clash between processes. This is especially troubling during cross-process navigation in Chromium, see bug. We also stop producing and parsing unnecessary json for object ids. Drive-by: fixed some tests dumping object ids. Most tests avoid dumping unstable values like ids, but there were few that still did. BUG=chromium:1137143 Change-Id: Ia019757fb95704ccb718d3ea6cc54bde1a133382 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461731 Commit-Queue: Dmitry Gozman <dgozman@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#70592}
329 lines
6.8 KiB
Plaintext
329 lines
6.8 KiB
Plaintext
RemoteObject.CustomPreview
|
|
Dump custom previews..
|
|
{
|
|
bodyGetterId : <bodyGetterId>
|
|
header : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Header formatted by 1
|
|
[3] : a
|
|
]
|
|
}
|
|
{
|
|
id : <messageId>
|
|
result : {
|
|
result : {
|
|
type : object
|
|
value : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Body formatted by 1
|
|
[3] : a
|
|
[4] : [
|
|
[0] : object
|
|
[1] : {
|
|
className : Object
|
|
description : Object
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
}
|
|
{
|
|
bodyGetterId : <bodyGetterId>
|
|
header : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Header formatted by 2
|
|
[3] : b
|
|
]
|
|
}
|
|
{
|
|
id : <messageId>
|
|
result : {
|
|
result : {
|
|
type : object
|
|
value : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Body formatted by 2
|
|
[3] : b
|
|
]
|
|
}
|
|
}
|
|
}
|
|
{
|
|
bodyGetterId : <bodyGetterId>
|
|
header : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Header formatted by 1
|
|
[3] : c
|
|
]
|
|
}
|
|
{
|
|
id : <messageId>
|
|
result : {
|
|
result : {
|
|
type : object
|
|
value : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Body formatted by 1
|
|
[3] : c
|
|
[4] : [
|
|
[0] : object
|
|
[1] : {
|
|
className : Object
|
|
description : Object
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
}
|
|
{
|
|
header : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Formatter with config
|
|
[3] : [
|
|
[0] : object
|
|
[1] : {
|
|
className : Object
|
|
customPreview : {
|
|
bodyGetterId : <bodyGetterId>
|
|
header : ["span",{},"Header ","info: ","additional info"]
|
|
}
|
|
description : Object
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
]
|
|
]
|
|
}
|
|
Change formatters order and dump again..
|
|
{
|
|
bodyGetterId : <bodyGetterId>
|
|
header : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Header formatted by 1
|
|
[3] : a
|
|
]
|
|
}
|
|
{
|
|
id : <messageId>
|
|
result : {
|
|
result : {
|
|
type : object
|
|
value : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Body formatted by 1
|
|
[3] : a
|
|
[4] : [
|
|
[0] : object
|
|
[1] : {
|
|
className : Object
|
|
description : Object
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
}
|
|
{
|
|
bodyGetterId : <bodyGetterId>
|
|
header : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Header formatted by 2
|
|
[3] : b
|
|
]
|
|
}
|
|
{
|
|
id : <messageId>
|
|
result : {
|
|
result : {
|
|
type : object
|
|
value : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Body formatted by 2
|
|
[3] : b
|
|
]
|
|
}
|
|
}
|
|
}
|
|
{
|
|
bodyGetterId : <bodyGetterId>
|
|
header : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Header formatted by 2
|
|
[3] : c
|
|
]
|
|
}
|
|
{
|
|
id : <messageId>
|
|
result : {
|
|
result : {
|
|
type : object
|
|
value : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Body formatted by 2
|
|
[3] : c
|
|
]
|
|
}
|
|
}
|
|
}
|
|
{
|
|
header : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Formatter with config
|
|
[3] : [
|
|
[0] : object
|
|
[1] : {
|
|
className : Object
|
|
customPreview : {
|
|
bodyGetterId : <bodyGetterId>
|
|
header : ["span",{},"Header ","info: ","additional info"]
|
|
}
|
|
description : Object
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
]
|
|
]
|
|
}
|
|
Test Runtime.getProperties
|
|
{
|
|
bodyGetterId : <bodyGetterId>
|
|
header : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Header formatted by 1
|
|
[3] : a
|
|
]
|
|
}
|
|
{
|
|
id : <messageId>
|
|
result : {
|
|
result : {
|
|
type : object
|
|
value : [
|
|
[0] : span
|
|
[1] : {
|
|
}
|
|
[2] : Body formatted by 1
|
|
[3] : a
|
|
[4] : [
|
|
[0] : object
|
|
[1] : {
|
|
className : Object
|
|
description : Object
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
}
|
|
Try to break custom preview..
|
|
{
|
|
method : Runtime.consoleAPICalled
|
|
params : {
|
|
args : [
|
|
[0] : {
|
|
type : string
|
|
value : Custom Formatter Failed: Uncaught 1
|
|
}
|
|
]
|
|
executionContextId : <executionContextId>
|
|
timestamp : <timestamp>
|
|
type : error
|
|
}
|
|
}
|
|
{
|
|
method : Runtime.consoleAPICalled
|
|
params : {
|
|
args : [
|
|
[0] : {
|
|
type : string
|
|
value : Custom Formatter Failed: Uncaught 1
|
|
}
|
|
]
|
|
executionContextId : <executionContextId>
|
|
timestamp : <timestamp>
|
|
type : error
|
|
}
|
|
}
|
|
{
|
|
method : Runtime.consoleAPICalled
|
|
params : {
|
|
args : [
|
|
[0] : {
|
|
type : string
|
|
value : Custom Formatter Failed: Uncaught 2
|
|
}
|
|
]
|
|
executionContextId : <executionContextId>
|
|
timestamp : <timestamp>
|
|
type : error
|
|
}
|
|
}
|
|
{
|
|
method : Runtime.consoleAPICalled
|
|
params : {
|
|
args : [
|
|
[0] : {
|
|
type : string
|
|
value : Custom Formatter Failed: Uncaught 3
|
|
}
|
|
]
|
|
executionContextId : <executionContextId>
|
|
timestamp : <timestamp>
|
|
type : error
|
|
}
|
|
}
|
|
{
|
|
method : Runtime.consoleAPICalled
|
|
params : {
|
|
args : [
|
|
[0] : {
|
|
type : string
|
|
value : Custom Formatter Failed: Uncaught 4
|
|
}
|
|
]
|
|
executionContextId : <executionContextId>
|
|
timestamp : <timestamp>
|
|
type : error
|
|
}
|
|
}
|