New issue
Advanced search Search tips

Issue 665820 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Compat

Blocking:
issue 651778



Sign in to add a comment

ScriptValueDeserializer::completeDenseArray() skips an intended "undefined" object

Project Member Reported by nhiroki@chromium.org, Nov 16 2016

Issue description

This fails async_test('array') in imported/wpt/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.html.

This test postMessage an array that contains "undefined" object from a worker to a document, and then verifies the array is correctly re-constructed on the document. As the deserializer skips an intended "undefined" object, the array is re-constructed as a sparse array (ie, hasOwnProperty() returns false at the element) and verification by assert_array_equals() fails.

Note that this test can work well on Firefox and Edge according to issue 651778.

# How to repro:

1) Remove an expectation for structured-clone-message.html from TestExpectations
2) run-webkit-tests --enable-wptserve imported/wpt/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.html
 

Comment 1 by peria@chromium.org, Dec 2 2016

Owner: jbroman@chromium.org
Recently jbroman@ switched to use V8 based structured clone by default.(http://crrev.com/434685)
But this test still fails.

jbroman@, could you take a look?
Without having yet looked at this specific case, this looks like a known confusion between undefined and a missing property, which requires a wire format change to correct.

I plan to deal with a couple such things in the next milestone after the new implementation ships (i.e., M58), to avoid making such a wire format change at a time that it's still possible I might have to revert to the old implementation.

Comment 3 by mek@chromium.org, Dec 9 2016

For what it's worth, (not yet imported)/wpt/webmessaging/with-ports/010.html and webmessaging/without-ports/010.html seem to be other occurrences of this same bug.
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 18 2017

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

commit 09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6
Author: mek <mek@chromium.org>
Date: Wed Jan 18 21:10:59 2017

Import wpt/webmessaging tests

Imports wpt@aae3e1b6ffb8b24acb777450933ceeafd97e3655
Using update-w3c-deps in Chromium 96c89c1cd14f092f9879407f85d7001c246e9687.

NOEXPORT=true

BUG=670024
BUG=660384
BUG= 665820 
BUG= 673526 

Review-Url: https://codereview.chromium.org/2558423002
Cr-Commit-Position: refs/heads/master@{#444478}

[modify] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/W3CImportExpectations
[modify] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/MANIFEST.json
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_DataCloneErr.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_clone_port.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_clone_port_error.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_event_properties.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_ports_readonly_array.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_target_source.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/MessageEvent.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/MessageEvent_properties.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/MessagePort_initial_disabled.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/MessagePort_onmessage_start.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/README.md
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Transferred_objects_unusable.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/broadcastchannel/basics.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/broadcastchannel/blobs.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/broadcastchannel/interface.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/broadcastchannel/resources/sandboxed.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/broadcastchannel/resources/worker.js
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/broadcastchannel/sandbox.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/broadcastchannel/workers.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/event.data.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/event.origin.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/event.ports.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/event.source.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/event.source.xorigin.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/message-channels/001.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/message-channels/002.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/message-channels/003.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/message-channels/004-1.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/message-channels/004-2.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/message-channels/004.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/message-channels/close.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_ArrayBuffer.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_Date.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_Document.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_Function.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_MessagePorts_sorigin.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_MessagePorts_xorigin.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_arrays.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_asterisk_xorigin.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_dup_transfer_objects.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_invalid_targetOrigin.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_objects.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_origin_mismatch.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_origin_mismatch_xorigin.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_solidus_sorigin.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/postMessage_solidus_xorigin.sub.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/support/ChildWindowPostMessage.htm
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/support/compare.js
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/001.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/002.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/003.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/004.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/005.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/006.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/007.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/010.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/011.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/012.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/013.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/014.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/015.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/016.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/017.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/018.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/019.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/020.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/021.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/023.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/024.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/025.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/026.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-ports/027.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/001.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/002.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/003.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/004.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/005.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/006.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/007.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/008.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/009.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/010.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/011.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/012.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/013.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/014.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/015.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/016.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/017.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/018.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/019-1.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/019.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/020-1.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/020.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/021.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/023.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/024.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/025-1.js
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/025.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/026.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/027.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/028.html
[add] https://crrev.com/09f2dd1f7eed9ee0bf7584f93871a117bcdf67c6/third_party/WebKit/LayoutTests/external/wpt/webmessaging/without-ports/029.html

Status: Started (was: Available)
Project Member

Comment 6 by bugdroid1@chromium.org, Jan 30 2017

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

commit b861a8400991976e6fd7d7abc9843e4fe7dc576e
Author: machenbach <machenbach@chromium.org>
Date: Mon Jan 30 19:35:28 2017

Revert of ValueSerializer: Distinguish between 'undefined' and an absent property. (patchset #2 id:20001 of https://codereview.chromium.org/2660093002/ )

Reason for revert:
Seems to break layout tests:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/13146

https://github.com/v8/v8/wiki/Blink-layout-tests

Original issue's description:
> ValueSerializer: Distinguish between 'undefined' and an absent property.
>
> Dealing with this case requires a wire format change. It is possible that an
> element can be absent even in an array where the dense format was chosen
> (because the array initially had no holes), if the elements are modified while
> they are being serialized. In this case, a new tag for the "hole" is emitted.
>
> The logic to treat undefined in dense arrays as an absent property is restricted
> to versions of the wire format that this tag did not exist.
>
> BUG= chromium:686159 , chromium:665820 
>
> Review-Url: https://codereview.chromium.org/2660093002
> Cr-Commit-Position: refs/heads/master@{#42784}
> Committed: https://chromium.googlesource.com/v8/v8/+/dc85f4c8338c1c824af4f7ee3274dc9f95d14e49

TBR=jkummerow@chromium.org,jbroman@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= chromium:686159 , chromium:665820 

Review-Url: https://codereview.chromium.org/2667553003
Cr-Commit-Position: refs/heads/master@{#42788}

[modify] https://crrev.com/b861a8400991976e6fd7d7abc9843e4fe7dc576e/src/value-serializer.cc
[modify] https://crrev.com/b861a8400991976e6fd7d7abc9843e4fe7dc576e/test/unittests/value-serializer-unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 31 2017

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

commit 507c8a3ed5bc7686ac0e7d9a6b9db0d0d413a63b
Author: jbroman <jbroman@chromium.org>
Date: Tue Jan 31 01:20:30 2017

Fix two tests in http/tests/serviceworker/ to handle the correct behavior of undefined in arrays, and suppress them until the fix relands.

These tests currently depend on the incorrect behavior wherein "undefined"
elements are sometimes removed from arrays (when they should be present, but
have the value undefined).

TestExpectations lines will be removed once the V8 change re-rolls.

V8 revert was:
https://chromium.googlesource.com/v8/v8/+/b861a8400991976e6fd7d7abc9843e4fe7dc576e

BUG= chromium:665820 

Review-Url: https://codereview.chromium.org/2662953002
Cr-Commit-Position: refs/heads/master@{#447152}

[modify] https://crrev.com/507c8a3ed5bc7686ac0e7d9a6b9db0d0d413a63b/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/507c8a3ed5bc7686ac0e7d9a6b9db0d0d413a63b/third_party/WebKit/LayoutTests/http/tests/serviceworker/clients-get-client-types.html
[modify] https://crrev.com/507c8a3ed5bc7686ac0e7d9a6b9db0d0d413a63b/third_party/WebKit/LayoutTests/http/tests/serviceworker/clients-matchall-client-types.html

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 31 2017

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

commit 6f1639ed16a21b2395b98e8c61de268a275ee920
Author: jbroman <jbroman@chromium.org>
Date: Tue Jan 31 01:54:26 2017

ValueSerializer: Distinguish between 'undefined' and an absent property.

Dealing with this case requires a wire format change. It is possible that an
element can be absent even in an array where the dense format was chosen
(because the array initially had no holes), if the elements are modified while
they are being serialized. In this case, a new tag for the "hole" is emitted.

The logic to treat undefined in dense arrays as an absent property is restricted
to versions of the wire format that this tag did not exist.

BUG= chromium:686159 , chromium:665820 

Review-Url: https://codereview.chromium.org/2660093002
Cr-Original-Commit-Position: refs/heads/master@{#42784}
Committed: https://chromium.googlesource.com/v8/v8/+/dc85f4c8338c1c824af4f7ee3274dc9f95d14e49
Review-Url: https://codereview.chromium.org/2660093002
Cr-Commit-Position: refs/heads/master@{#42800}

[modify] https://crrev.com/6f1639ed16a21b2395b98e8c61de268a275ee920/src/value-serializer.cc
[modify] https://crrev.com/6f1639ed16a21b2395b98e8c61de268a275ee920/test/unittests/value-serializer-unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jan 31 2017

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

commit 90f3f9f959c9a43aa9dc7666380a5cffb11ca52c
Author: jbroman <jbroman@chromium.org>
Date: Tue Jan 31 14:39:08 2017

Mark external/wpt/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.html as passing.

BUG= 665820 ,655458

Review-Url: https://codereview.chromium.org/2664883002
Cr-Commit-Position: refs/heads/master@{#447232}

[modify] https://crrev.com/90f3f9f959c9a43aa9dc7666380a5cffb11ca52c/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 10 by bugdroid1@chromium.org, Jan 31 2017

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

commit 4aa8cbb78f4dbd9437a460b33b6bb54f1fdc275c
Author: jbroman <jbroman@chromium.org>
Date: Tue Jan 31 19:41:41 2017

Mark clients-{get,matchall}-client-types.html as passing.

The V8 change has rolled into Chromium.

BUG= 665820 

Review-Url: https://codereview.chromium.org/2669613002
Cr-Commit-Position: refs/heads/master@{#447302}

[modify] https://crrev.com/4aa8cbb78f4dbd9437a460b33b6bb54f1fdc275c/third_party/WebKit/LayoutTests/TestExpectations

Status: Fixed (was: Started)
Thank you for fixing this :)

Comment 13 by mek@chromium.org, Jan 31 2017

I think you missed removing some lines from TestExpectations for tests that were marked as failing because of this bug (at least the two webmessaging bugs)?
Status: Started (was: Fixed)
Ah, missed that when scanning. Let me send a CL and see.
Status: Fixed (was: Started)

Sign in to add a comment