Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(458)

Issue 2405153003: [wasm] support for recompilation if deserialization fails (Closed)

Created:
4 years, 2 months ago by Mircea Trofin
Modified:
4 years, 2 months ago
CC:
blink-reviews, blink-reviews-bindings_chromium.org, chromium-reviews, jbroman+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[wasm] support for recompilation if deserialization fails When serializing wasm, append the uncompiled bytes explicitly. Use them when deserializing to ensure structured cloning succeeds even after chrome updates. Currently, the canonical uncompiled bytes representation is bytes - stored as a String object on the v8 side. Eventually, we want to move to a less memory-intensive option, such as Blobs. There are challenges with adopting a different representation, one being that Blobs aren't a V8 concept. In addition, we may want to explore that option in conjunction with adding support for streamed compilation, since the choice of APIs there may impact choices we make for internal representation of uncompiled bytes, and it'd be more maintainable to have one common such representation, if possible. Meanwhile, we store the payload as raw bytes, and tag that payload to make sure we can later introduce a different representation while still supporting the current one. BUG= Committed: https://crrev.com/15aaa54e5fe36c2d2bf1a53e1410be5ea274fec6 Cr-Commit-Position: refs/heads/master@{#426268}

Patch Set 1 #

Patch Set 2 : behavior when breaking changes #

Total comments: 13

Patch Set 3 : post-feedback #

Patch Set 4 : post-feedback #

Patch Set 5 : IndexedDB tests #

Patch Set 6 : cleaner invalidation #

Total comments: 1

Patch Set 7 : uncompiled->wire #

Messages

Total messages: 57 (37 generated)
Mircea Trofin
4 years, 2 months ago (2016-10-12 01:10:11 UTC) #9
jochen (gone - plz use gerrit)
https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp (right): https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode2033 third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp:2033: CHECK(!retval.IsEmpty()); I don't think we should crash here. Downgrading ...
4 years, 2 months ago (2016-10-12 09:34:59 UTC) #13
jbroman
I hope you don't mind if I drop in here. https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp (right): https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode1283 ...
4 years, 2 months ago (2016-10-12 15:05:38 UTC) #15
titzer
https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp (right): https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode1272 third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp:1272: v8::Local<v8::String> uncompiledBytes = wasmModule->GetUncompiledBytes(); UncompiledBytes isn't a very good ...
4 years, 2 months ago (2016-10-12 15:09:53 UTC) #16
Mircea Trofin
https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp (right): https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode1272 third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp:1272: v8::Local<v8::String> uncompiledBytes = wasmModule->GetUncompiledBytes(); On 2016/10/12 15:09:53, titzer wrote: ...
4 years, 2 months ago (2016-10-12 16:01:07 UTC) #17
titzer
https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp (right): https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode1272 third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp:1272: v8::Local<v8::String> uncompiledBytes = wasmModule->GetUncompiledBytes(); On 2016/10/12 16:01:07, Mircea Trofin ...
4 years, 2 months ago (2016-10-12 16:15:31 UTC) #18
Mircea Trofin
On 2016/10/12 16:15:31, titzer wrote: > https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp > File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp > (right): > > https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode1272 ...
4 years, 2 months ago (2016-10-12 16:16:44 UTC) #19
titzer
On 2016/10/12 16:15:31, titzer wrote: > https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp > File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp > (right): > > https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode1272 ...
4 years, 2 months ago (2016-10-12 17:05:14 UTC) #20
titzer
On 2016/10/12 16:16:44, Mircea Trofin wrote: > On 2016/10/12 16:15:31, titzer wrote: > > > ...
4 years, 2 months ago (2016-10-12 17:09:16 UTC) #21
Mircea Trofin
On 2016/10/12 17:09:16, titzer wrote: > On 2016/10/12 16:16:44, Mircea Trofin wrote: > > On ...
4 years, 2 months ago (2016-10-12 17:46:11 UTC) #22
Mircea Trofin
On 2016/10/12 17:05:14, titzer wrote: > On 2016/10/12 16:15:31, titzer wrote: > > > https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp ...
4 years, 2 months ago (2016-10-12 17:47:11 UTC) #23
Mircea Trofin
4 years, 2 months ago (2016-10-13 23:35:06 UTC) #26
Mircea Trofin
https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp (right): https://codereview.chromium.org/2405153003/diff/20001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode1272 third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp:1272: v8::Local<v8::String> uncompiledBytes = wasmModule->GetUncompiledBytes(); On 2016/10/12 16:15:30, titzer wrote: ...
4 years, 2 months ago (2016-10-14 06:20:18 UTC) #31
Mircea Trofin
ptal.
4 years, 2 months ago (2016-10-18 23:38:27 UTC) #38
jochen (gone - plz use gerrit)
lgtm
4 years, 2 months ago (2016-10-19 14:23:34 UTC) #44
titzer
lgtm https://codereview.chromium.org/2405153003/diff/100001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp (right): https://codereview.chromium.org/2405153003/diff/100001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp#newcode1983 third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp:1983: SerializationTag uncompiledBytesFormat = InvalidTag; wireBytesFormat?
4 years, 2 months ago (2016-10-19 14:27:35 UTC) #45
Mircea Trofin
On 2016/10/19 14:27:35, titzer wrote: > lgtm > > https://codereview.chromium.org/2405153003/diff/100001/third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp > File third_party/WebKit/Source/bindings/core/v8/ScriptValueSerializer.cpp > (right): ...
4 years, 2 months ago (2016-10-19 18:25:56 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2405153003/120001
4 years, 2 months ago (2016-10-19 18:47:56 UTC) #53
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 2 months ago (2016-10-19 20:27:10 UTC) #55
commit-bot: I haz the power
4 years, 2 months ago (2016-10-21 13:11:00 UTC) #57
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/15aaa54e5fe36c2d2bf1a53e1410be5ea274fec6
Cr-Commit-Position: refs/heads/master@{#426268}

Powered by Google App Engine
This is Rietveld 408576698