New issue
Advanced search Search tips

Issue 789964 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Feature

Blocked on:
issue 793480

Blocking:
issue 764576
issue 796846
issue 801546
issue 801731



Sign in to add a comment

Make Chromium independent from snapshot_blob.bin

Project Member Reported by peria@chromium.org, Nov 30 2017

Issue description

Currently, the snapshot feature of Blink requires two blob files, snapshot_blob.bin and v8_context_snapshot.bin.
There were some technical issues to use both of them, but now v8_context_snapshot.bin contains information in snapshot_blob.bin, and all other technical issues are cleared, so we can make Chromium independent from snapshot_blob.bin as an executable file. (We still need it as a build system.)
Then we can unship snapshot_blob.bin and it reduces the binary size and file I/O.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 7 2017

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

commit ae5d02013e0e22300beb5ec52a268c4deb9a1f5f
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Thu Dec 07 00:54:48 2017

media: Make media/ work with v8_context_snapshot.bin

We are planning to replace snapshot_blob.bin with v8_context_snapshot.bin.
This CL makes media/ code to load v8_context_snapshot.bin to work with it.


Bug:  789964 , 764576
Change-Id: Idfa5ad0d1407f364430170f485e854413ed8d9f0
Reviewed-on: https://chromium-review.googlesource.com/810326
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522282}
[modify] https://crrev.com/ae5d02013e0e22300beb5ec52a268c4deb9a1f5f/media/blink/BUILD.gn
[modify] https://crrev.com/ae5d02013e0e22300beb5ec52a268c4deb9a1f5f/media/blink/run_all_unittests.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Dec 7 2017

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

commit e7d4cc43f5b8dac02b92e1d03ebdff925be31a5b
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Thu Dec 07 23:31:24 2017

services: Make services/ work with v8_context_snapshot.bin

We are planning to replace snapshot_blob.bin with v8_context_snapshot.bin.
This CL makes services/ code to load v8_context_snapshot.bin to work with it.

Bug:  789964 , 764576
Change-Id: I13da27dea66210e6b68424fbd7b9baeb8a94452e
Reviewed-on: https://chromium-review.googlesource.com/810349
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522611}
[modify] https://crrev.com/e7d4cc43f5b8dac02b92e1d03ebdff925be31a5b/services/data_decoder/BUILD.gn
[modify] https://crrev.com/e7d4cc43f5b8dac02b92e1d03ebdff925be31a5b/services/data_decoder/image_decoder_impl_unittest.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Dec 8 2017

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

commit f07e903f08d16bf8cdf7fac86ae50f4d9b2d7177
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Fri Dec 08 00:41:18 2017

net: Make net/ work with v8_context_snapshot.bin

We are planning to replace snapshot_blob.bin with v8_context_snapshot.bin.
This CL makes net/ code to load v8_context_snapshot.bin to work with it.

Bug:  789964 , 764576
Change-Id: Ifcbe58d632dd76fd4bcc02182044d1e111f4267a
Reviewed-on: https://chromium-review.googlesource.com/810347
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522648}
[modify] https://crrev.com/f07e903f08d16bf8cdf7fac86ae50f4d9b2d7177/net/BUILD.gn
[modify] https://crrev.com/f07e903f08d16bf8cdf7fac86ae50f4d9b2d7177/net/proxy/proxy_resolver_v8.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Dec 8 2017

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

commit 231de835ae50977881282c8c7fbbc2a93388d4b6
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Fri Dec 08 01:06:33 2017

gin: Set V8 context snapshot as a default snapshot

Thanks to the change in V8 to make external reference table optional,
we can always use v8_context_snapshot.bin on platforms where it is
avaiable.

This CL sets the file as the default snapshot blob, and removes
setting snapshot in Isolate::CreateParam.


Bug: 764576,  789964 
Change-Id: I16654eef810efcd0103e9a29659f4616c61f790b
Reviewed-on: https://chromium-review.googlesource.com/802654
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522662}
[modify] https://crrev.com/231de835ae50977881282c8c7fbbc2a93388d4b6/gin/BUILD.gn
[modify] https://crrev.com/231de835ae50977881282c8c7fbbc2a93388d4b6/gin/isolate_holder.cc
[modify] https://crrev.com/231de835ae50977881282c8c7fbbc2a93388d4b6/gin/public/isolate_holder.h
[modify] https://crrev.com/231de835ae50977881282c8c7fbbc2a93388d4b6/gin/shell/gin_main.cc
[modify] https://crrev.com/231de835ae50977881282c8c7fbbc2a93388d4b6/gin/shell_runner_unittest.cc
[modify] https://crrev.com/231de835ae50977881282c8c7fbbc2a93388d4b6/gin/test/file_runner.cc
[modify] https://crrev.com/231de835ae50977881282c8c7fbbc2a93388d4b6/gin/test/v8_test.cc
[modify] https://crrev.com/231de835ae50977881282c8c7fbbc2a93388d4b6/gin/v8_initializer.cc
[modify] https://crrev.com/231de835ae50977881282c8c7fbbc2a93388d4b6/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.cpp

Comment 5 by kbr@chromium.org, Dec 9 2017

Blockedon: 793480
Note: yzshen@ found that https://chromium-review.googlesource.com/802654 caused  Issue 793480 .

Project Member

Comment 6 by bugdroid1@chromium.org, Dec 15 2017

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

commit 1e7eb050792f146187cafb4e3122a1f4d99f5ee3
Author: Robert Liao <robliao@chromium.org>
Date: Fri Dec 15 00:30:05 2017

Revert "gin: Set V8 context snapshot as a default snapshot"

This reverts commit 231de835ae50977881282c8c7fbbc2a93388d4b6.

Reason for revert: This change seems to break per-build bisects on Windows.

Command run:
python bisect_builds.py -o -a win64 -g 64.0.3282.24 -b 65.0.3294.0 -p S:\src\bisect\profile --use-local-cache

Result:
You are probably looking for a change made after 522661 (known good), but no later than 522662 (first known bad).
CHANGELOG URL:
The script might not always return single CL as suspect as some perf builds might get missing due to failure.
  https://chromium.googlesource.com/chromium/src/+log/bf8135d0bce64496b872062a07b427ddff825ec5..231de835ae50977881282c8c7fbbc2a93388d4b6

Original change's description:
> gin: Set V8 context snapshot as a default snapshot
> 
> Thanks to the change in V8 to make external reference table optional,
> we can always use v8_context_snapshot.bin on platforms where it is
> avaiable.
> 
> This CL sets the file as the default snapshot blob, and removes
> setting snapshot in Isolate::CreateParam.
> 
> 
> Bug: 764576,  789964 
> Change-Id: I16654eef810efcd0103e9a29659f4616c61f790b
> Reviewed-on: https://chromium-review.googlesource.com/802654
> Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#522662}

TBR=peria@chromium.org,rmcilroy@chromium.org,haraken@chromium.org

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

Bug: 764576,  789964 
Change-Id: Ibe8ddd99b86fd00c2c2586645350401896c49084
Reviewed-on: https://chromium-review.googlesource.com/827705
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524261}
[modify] https://crrev.com/1e7eb050792f146187cafb4e3122a1f4d99f5ee3/gin/BUILD.gn
[modify] https://crrev.com/1e7eb050792f146187cafb4e3122a1f4d99f5ee3/gin/isolate_holder.cc
[modify] https://crrev.com/1e7eb050792f146187cafb4e3122a1f4d99f5ee3/gin/public/isolate_holder.h
[modify] https://crrev.com/1e7eb050792f146187cafb4e3122a1f4d99f5ee3/gin/shell/gin_main.cc
[modify] https://crrev.com/1e7eb050792f146187cafb4e3122a1f4d99f5ee3/gin/shell_runner_unittest.cc
[modify] https://crrev.com/1e7eb050792f146187cafb4e3122a1f4d99f5ee3/gin/test/v8_test.cc
[modify] https://crrev.com/1e7eb050792f146187cafb4e3122a1f4d99f5ee3/gin/v8_initializer.cc
[modify] https://crrev.com/1e7eb050792f146187cafb4e3122a1f4d99f5ee3/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.cpp

Project Member

Comment 7 by bugdroid1@chromium.org, Dec 20 2017

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

commit f84dd03781e2df91f343e3474a65e05edd3f7ac7
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Wed Dec 20 08:03:17 2017

Revert "net: Make net/ work with v8_context_snapshot.bin"

This reverts commit f07e903f08d16bf8cdf7fac86ae50f4d9b2d7177.

Reason for revert: This CL makes net/ depend on Blink, and it makes build time of net/ very long.

Original change's description:
> net: Make net/ work with v8_context_snapshot.bin
> 
> We are planning to replace snapshot_blob.bin with v8_context_snapshot.bin.
> This CL makes net/ code to load v8_context_snapshot.bin to work with it.
> 
> Bug:  789964 , 764576
> Change-Id: Ifcbe58d632dd76fd4bcc02182044d1e111f4267a
> Reviewed-on: https://chromium-review.googlesource.com/810347
> Reviewed-by: Matt Menke <mmenke@chromium.org>
> Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#522648}

TBR=peria@chromium.org,mmenke@chromium.org

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

Bug:  789964 , 764576,  794234 
Change-Id: I1e92c339914a6e2b1f33d280e4b41207213688b9
Reviewed-on: https://chromium-review.googlesource.com/836247
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525286}
[modify] https://crrev.com/f84dd03781e2df91f343e3474a65e05edd3f7ac7/net/BUILD.gn
[modify] https://crrev.com/f84dd03781e2df91f343e3474a65e05edd3f7ac7/net/proxy/proxy_resolver_v8.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 11 2018

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

commit 2ee0de571572f625c344e6af12030d2c5ee31483
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Thu Jan 11 09:27:36 2018

Automatically add data dependency on v8_context_snapshot.bin

In past builds, we had a strange error that some unit tests
cannot load v8_context_snapshot.bin, and they couldn't be
reproduced on local mahcines.

This CL adds an explicit data dependency on the snapshot file,
and expects those tests can load the file.

Bug:  789964 
Change-Id: Ib6a555add46c429f76df74795599175084c86956
Reviewed-on: https://chromium-review.googlesource.com/861584
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528587}
[modify] https://crrev.com/2ee0de571572f625c344e6af12030d2c5ee31483/tools/v8_context_snapshot/BUILD.gn

Comment 9 by peria@chromium.org, Jan 15 2018

Blocking: 801731

Comment 10 by peria@chromium.org, Jan 15 2018

Blocking: 801546

Comment 11 by peria@chromium.org, Jan 15 2018

Blocking: 796846
Project Member

Comment 12 by bugdroid1@chromium.org, Jan 19 2018

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

commit 9aff02e57fa82b584e238390f1739ff410dfd377
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Fri Jan 19 16:55:03 2018

gin: Make v8_context_snapshot.bin as a default snapshot blob

To make Chrome independent from snapshot_blob.bin, this CL
makes v8_context_snapshot.bin as the default snapshot.

As a background issue, if we want to use JS (=V8), we have to
load a snapshot file on most platforms. It means we have to
load either snapshot_blob.bin or v8_context_snapshot.bin.

And some unit tests, e.g. net_unittests, do not need to use
v8_context_snapshot.bin, and they don't want to depend on
blink component. (It takes very long time just to create the
snapshot.)

This CL makes it possible to load either snapshot file
depending on the order of function calls, and make dependencies
clear.

TBR=liberato

Bug:  789964 
Change-Id: I4df90ed5fe7be37ab969a7f7d5db79bf572ed02a
Reviewed-on: https://chromium-review.googlesource.com/859577
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530539}
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/content/app/BUILD.gn
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/content/app/content_main_runner.cc
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/content/public/test/content_test_suite_base.cc
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/content/shell/BUILD.gn
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/content/test/test_blink_web_unit_test_support.cc
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/gin/isolate_holder.cc
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/gin/public/isolate_holder.h
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/gin/v8_initializer.cc
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/gin/v8_initializer.h
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/media/blink/run_all_unittests.cc
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/services/data_decoder/image_decoder_impl_unittest.cc
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.cpp
[modify] https://crrev.com/9aff02e57fa82b584e238390f1739ff410dfd377/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h

Project Member

Comment 13 by bugdroid1@chromium.org, Jan 22 2018

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

commit 8b6254d72354e61e9976d1b0817477689ec9eec7
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Mon Jan 22 00:50:13 2018

bindings: Enable V8ContextSnasphot on fuzzers

Currently fuzzer does not load v8_context_snapsot.bin, and
fail to set up blink.
This CL makes fuzzers to load v8_context_snapshot.bin
to work with it.



Bug:  789964 , 804073 , 804006 
Change-Id: I332586ccaf9d348fc5af3e22acdaf579624575e5
Reviewed-on: https://chromium-review.googlesource.com/876744
Reviewed-by: Oliver Chang <ochang@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530795}
[modify] https://crrev.com/8b6254d72354e61e9976d1b0817477689ec9eec7/content/test/fuzzer/BUILD.gn
[modify] https://crrev.com/8b6254d72354e61e9976d1b0817477689ec9eec7/content/test/fuzzer/fuzzer_support.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Jan 23 2018

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

commit b550792f0f9357f380d501288f368e85d43279b8
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Tue Jan 23 11:00:01 2018

chrome: Unship snapshot_blob.bin from Win/Mac/Linux

We are shipping snapshot_blob.bin and v8_context_snapshot.bin with
Chrome for speed up of launching V8 environments.
Beside it, v8_context_snapshot.bin contains all information in
snapshot_blob.bin, and we no longer need snapshot_blob.bin if
v8_context_snapshot.bin is available.

This CL drops snapshot_blob.bin from Chrome for such platforms
to reduce the size of shipping binaries and memory usages.


Bug:  789964 ,  796127 
Change-Id: I4c17f803212b845b2021936d7eb1eec913d76c68
Reviewed-on: https://chromium-review.googlesource.com/812587
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Greg Thompson <grt@chromium.org>
Reviewed-by: Michael Giuffrida <michaelpg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531204}
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/chrome/BUILD.gn
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/chrome/installer/linux/common/installer.include
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/chrome/installer/mini_installer/BUILD.gn
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/chrome/installer/mini_installer/chrome.release
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/chrome/tools/build/linux/FILES.cfg
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/chrome/tools/build/mac/FILES.cfg
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/chrome/tools/build/win/FILES.cfg
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/content/app/content_main_runner.cc
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/content/public/app/mojo/content_renderer_manifest.json
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/content/public/app/mojo/content_utility_manifest.json
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/content/shell/BUILD.gn
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/extensions/shell/BUILD.gn
[modify] https://crrev.com/b550792f0f9357f380d501288f368e85d43279b8/extensions/shell/installer/linux/common/installer.include

Comment 15 by peria@chromium.org, Jan 29 2018

Status: Fixed (was: Started)
The CL in #12 seems to again break per-build bisects on Windows; trying to run bisect builds after 530539 crash each tab on creation? This seems to have happened the first time this landed and got reverted at #6 above?

python C:/src/python_tests/bisect-builds.py -o -a win64 -g 530369 -b 537342 --user-data-dir=C:/temp/tmpr -- --no-first-run

Sign in to add a comment