New issue
Advanced search Search tips

Issue 705364 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocked on:
issue 585185
issue 759333



Sign in to add a comment

DevToolsEmulator does not emulate correctly

Project Member Reported by peria@chromium.org, Mar 27 2017

Issue description

Chrome Version: trunk (refs/heads/master@#459418)
OS: All

What steps will reproduce the problem?
(1) Run following layout tests

inspector-protocol/emulation/device-emulation-320-2x.html
inspector-protocol/emulation/device-emulation-320-only-viewport.html
inspector-protocol/emulation/device-emulation-320.html
inspector-protocol/emulation/device-emulation-980-2x.html
inspector-protocol/emulation/device-emulation-980-only-viewport.html
inspector-protocol/emulation/device-emulation-980.html
inspector-protocol/emulation/device-emulation-controls.html
inspector-protocol/emulation/device-emulation-dw-2x.html
inspector-protocol/emulation/device-emulation-dw.html
inspector-protocol/emulation/device-emulation-initial-scale.html
inspector-protocol/emulation/device-emulation-insets.html
inspector-protocol/emulation/device-emulation-none-2x.html
inspector-protocol/emulation/device-emulation-none.html
inspector-protocol/emulation/device-emulation-restore.html
inspector-protocol/emulation/device-emulation-small-dw.html
inspector-protocol/emulation/device-emulation-small.html


What is the expected result?
Those tests should expect "window.orientation = 0" and pass

What happens instead?
They expect "window.orientation" and pass.
It means they expect "orientation" property is undefined on window.


The problem here is that DevToolsEmulator::enableMobileEmulation()
sets a runtime-enabled flag orientationEvent true, but it happens
after Blink instantiates function templates of Window interfaces in
bindings layer (V8DOMConfiguration::domClassTemplate()), so the flag
does not have effects in Javascript world.

This runtime-enabled flag should enable a new API window.orientation
but it is not installed in the template, and as a result, it is not
defined on "window" instance in Javascript.
 

Comment 1 by peria@chromium.org, Mar 27 2017

I think removing handling of orientationEvent flag in DevToolsEmulator is a solution, but I'm not sure it is acceptable.
Components: Blink>Bindings
IIRC, there is a mechanism to dynamically change binding templates now (used for origin trials or something similar). Can we use it here? Can anyone from bindings team comment on this?

Comment 3 by peria@chromium.org, Mar 27 2017

There is a method to install some runtime-enabed features dynamically, and yes, it can be a
short-term fix for this issue.
But if possible, we want to avoid using the method, because it only adds features (cannot remove
features), and works slowly. Plus, if we take the way, we don't simulate devices practically.

Why do you set RuntimeEnabledFeatures::orientationEvent there? If it has no meaning, we can simply
remove it. If it is needed, those tests' expectation must be updated and the behavior also needs
to be fixed.
Project Member

Comment 4 by bugdroid1@chromium.org, Jul 28 2017

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

commit 54afe29f866e4c3878242de7a78941fc363791e9
Author: peria <peria@chromium.org>
Date: Fri Jul 28 08:55:22 2017

Create and use V8 context snapshots.

This CL does two things.

1. In compile time, creates a snapshot file, which consists of V8 contexts.
2. Creates v8::Context from the snapshot in LocalWindowProxy::CreateContext().

We expect this speeds up context creation for 3 times faster on Android.
Detailed information is described in the design doc [1].

[1] Design doc: https://docs.google.com/document/d/1jpQQX0piaxcHJPWakp_Kr_03g5Gnma5h5-Kdlqu7jVQ/edit#heading=h.k6iklq6rvd30

Test expectations are changed due to http://crbug.com/705364

BUG=588893,  617892 , 705364

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

[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/build/config/features.gni
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/chrome/BUILD.gn
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/content/app/content_main_runner.cc
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/content/public/app/mojo/content_renderer_manifest.json
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/content/public/common/content_descriptor_keys.cc
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/content/public/common/content_descriptor_keys.h
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/content/shell/BUILD.gn
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/extensions/shell/BUILD.gn
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/gin/isolate_holder.cc
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/gin/public/isolate_holder.h
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/gin/v8_initializer.cc
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/gin/v8_initializer.h
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-2x-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-only-viewport-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-2x-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-only-viewport-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-controls-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-2x-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-initial-scale-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-insets-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-2x-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-restore-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-dw-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-expected.txt
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/bindings.gni
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.cpp
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.h
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/core/v8/V8Initializer.h
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/modules/v8/BUILD.gn
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/modules/v8/V8ContextSnapshotExternalReferences.h
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/modules/v8/generated.gni
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/modules/v8/v8.gni
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/scripts/generate_v8_context_snapshot_external_references.py
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/templates/external_reference_table.cpp.tmpl
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/bindings/templates/templates.gni
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/controller/BlinkInitializer.cpp
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/core/exported/BUILD.gn
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/core/exported/WebV8ContextSnapshot.cpp
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.h
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/platform/bindings/ScriptWrappable.h
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/platform/bindings/V8PerContextData.cpp
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.cpp
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/public/platform/Platform.h
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/third_party/WebKit/public/web/WebV8ContextSnapshot.h
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/tools/v8_context_snapshot/BUILD.gn
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/tools/v8_context_snapshot/DEPS
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/tools/v8_context_snapshot/OWNERS
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/tools/v8_context_snapshot/run.py
[add] https://crrev.com/54afe29f866e4c3878242de7a78941fc363791e9/tools/v8_context_snapshot/v8_context_snapshot_generator.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 28 2017

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

commit 45b25591b1a63b27f59b95aee8ad0d88aa9833f8
Author: blundell <blundell@chromium.org>
Date: Fri Jul 28 09:48:17 2017

Revert of [Bindings] Create and use V8 context snapshots (patchset #22 id:520001 of https://codereview.chromium.org/2841443005/ )

Reason for revert:
Causes compile to fail on MSAN because of usage
of uninitialized memory:

https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.webkit%2FWebKit_Linux_Trusty_MSAN%2F2265%2F%2B%2Frecipes%2Fsteps%2Fcompile%2F0%2Fstdout

Original issue's description:
> Create and use V8 context snapshots.
>
> This CL does two things.
>
> 1. In compile time, creates a snapshot file, which consists of V8 contexts.
> 2. Creates v8::Context from the snapshot in LocalWindowProxy::CreateContext().
>
> We expect this speeds up context creation for 3 times faster on Android.
> Detailed information is described in the design doc [1].
>
>
> [1] Design doc: https://docs.google.com/document/d/1jpQQX0piaxcHJPWakp_Kr_03g5Gnma5h5-Kdlqu7jVQ/edit#heading=h.k6iklq6rvd30
>
>
>
> Test expectations are changed due to http://crbug.com/705364
>
> BUG=588893,  617892 , 705364
>
> Review-Url: https://codereview.chromium.org/2841443005
> Cr-Commit-Position: refs/heads/master@{#490329}
> Committed: https://chromium.googlesource.com/chromium/src/+/54afe29f866e4c3878242de7a78941fc363791e9

TBR=jochen@chromium.org,agrieve@chromium.org,brettw@chromium.org,dcheng@chromium.org,eroman@chromium.org,haraken@chromium.org,jam@chromium.org,mlippautz@chromium.org,rkc@chromium.org,thakis@chromium.org,yukishiino@chromium.org,kinuko@chromium.org,peria@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=588893,  617892 , 705364

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

[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/build/config/features.gni
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/chrome/BUILD.gn
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/content/app/content_main_runner.cc
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/content/public/app/mojo/content_renderer_manifest.json
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/content/public/common/content_descriptor_keys.cc
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/content/public/common/content_descriptor_keys.h
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/content/shell/BUILD.gn
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/extensions/shell/BUILD.gn
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/gin/isolate_holder.cc
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/gin/public/isolate_holder.h
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/gin/v8_initializer.cc
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/gin/v8_initializer.h
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-2x-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-only-viewport-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-2x-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-only-viewport-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-controls-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-2x-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-initial-scale-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-insets-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-2x-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-restore-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-dw-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-expected.txt
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/bindings/bindings.gni
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.cpp
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.h
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/bindings/core/v8/V8Initializer.h
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/bindings/modules/v8/BUILD.gn
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/third_party/WebKit/Source/bindings/modules/v8/V8ContextSnapshotExternalReferences.h
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/bindings/modules/v8/generated.gni
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/bindings/modules/v8/v8.gni
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/third_party/WebKit/Source/bindings/scripts/generate_v8_context_snapshot_external_references.py
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/third_party/WebKit/Source/bindings/templates/external_reference_table.cpp.tmpl
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/bindings/templates/templates.gni
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/controller/BlinkInitializer.cpp
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/core/exported/BUILD.gn
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/third_party/WebKit/Source/core/exported/WebV8ContextSnapshot.cpp
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.h
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/platform/bindings/ScriptWrappable.h
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/platform/bindings/V8PerContextData.cpp
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.cpp
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/45b25591b1a63b27f59b95aee8ad0d88aa9833f8/third_party/WebKit/public/platform/Platform.h
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/third_party/WebKit/public/web/WebV8ContextSnapshot.h
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/tools/v8_context_snapshot/BUILD.gn
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/tools/v8_context_snapshot/DEPS
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/tools/v8_context_snapshot/OWNERS
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/tools/v8_context_snapshot/run.py
[delete] https://crrev.com/1bcf48d2b98be4823891f46ef2b402d4e157d630/tools/v8_context_snapshot/v8_context_snapshot_generator.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 1 2017

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

commit 59784d15a14347cd2e36769429ea0178f5c464b6
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Tue Aug 01 13:02:27 2017

(Reland)[Bindings] Create and use V8 context snapshots.

This CL does two things.

1. In compile time, creates a snapshot file, which consists of V8 contexts.
2. Creates v8::Context from the snapshot in LocalWindowProxy::CreateContext().

We expect this speeds up context creation for 3 times faster on Android.
Detailed information is described in the design doc [1].


[1] Design doc: https://docs.google.com/document/d/1jpQQX0piaxcHJPWakp_Kr_03g5Gnma5h5-Kdlqu7jVQ/edit#heading=h.k6iklq6rvd30


This CL is a re-land of https://codereview.chromium.org/2841443005 (and the 1st patch is same with it)
Test expectations are changed due to http://crbug.com/705364

BUG=588893,  617892 , 705364
TBR=rkc, jochen, dchen, kinuko, eroman, thakis

Change-Id: If85e68a6498f7d35a0c59f4af9323ba72fc36d5f
Reviewed-on: https://chromium-review.googlesource.com/594608
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490955}
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/build/config/features.gni
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/chrome/BUILD.gn
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/content/app/content_main_runner.cc
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/content/public/app/mojo/content_renderer_manifest.json
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/content/public/common/content_descriptor_keys.cc
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/content/public/common/content_descriptor_keys.h
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/content/shell/BUILD.gn
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/extensions/shell/BUILD.gn
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/gin/isolate_holder.cc
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/gin/public/isolate_holder.h
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/gin/v8_initializer.cc
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/gin/v8_initializer.h
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-2x-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-only-viewport-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-2x-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-only-viewport-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-controls-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-2x-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-initial-scale-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-insets-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-2x-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-restore-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-dw-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-expected.txt
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/bindings.gni
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.cpp
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.h
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/core/v8/V8Initializer.h
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/modules/v8/BUILD.gn
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/modules/v8/V8ContextSnapshotExternalReferences.h
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/modules/v8/generated.gni
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/modules/v8/v8.gni
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/scripts/generate_v8_context_snapshot_external_references.py
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/templates/external_reference_table.cpp.tmpl
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/bindings/templates/templates.gni
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/controller/BlinkInitializer.cpp
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/core/exported/BUILD.gn
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/core/exported/WebV8ContextSnapshot.cpp
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.h
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/platform/bindings/ScriptWrappable.h
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/platform/bindings/V8PerContextData.cpp
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.cpp
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/public/platform/Platform.h
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/third_party/WebKit/public/web/WebV8ContextSnapshot.h
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/tools/v8_context_snapshot/BUILD.gn
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/tools/v8_context_snapshot/DEPS
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/tools/v8_context_snapshot/OWNERS
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/tools/v8_context_snapshot/run.py
[add] https://crrev.com/59784d15a14347cd2e36769429ea0178f5c464b6/tools/v8_context_snapshot/v8_context_snapshot_generator.cc

Project Member

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

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

commit 9f043c3f6c2e9ea2e3903964a3b917276661085d
Author: Jan Krcal <jkrcal@chromium.org>
Date: Tue Aug 01 13:50:48 2017

Revert "(Reland)[Bindings] Create and use V8 context snapshots."

This reverts commit 59784d15a14347cd2e36769429ea0178f5c464b6.

Reason for revert: it breaks compilation (linking of v8_context_snapshot_generator), see https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Linux%20x64/builds/19741

Original change's description:
> (Reland)[Bindings] Create and use V8 context snapshots.
> 
> This CL does two things.
> 
> 1. In compile time, creates a snapshot file, which consists of V8 contexts.
> 2. Creates v8::Context from the snapshot in LocalWindowProxy::CreateContext().
> 
> We expect this speeds up context creation for 3 times faster on Android.
> Detailed information is described in the design doc [1].
> 
> 
> [1] Design doc: https://docs.google.com/document/d/1jpQQX0piaxcHJPWakp_Kr_03g5Gnma5h5-Kdlqu7jVQ/edit#heading=h.k6iklq6rvd30
> 
> 
> This CL is a re-land of https://codereview.chromium.org/2841443005 (and the 1st patch is same with it)
> Test expectations are changed due to http://crbug.com/705364
> 
> BUG=588893,  617892 , 705364
> TBR=rkc, jochen, dchen, kinuko, eroman, thakis
> 
> Change-Id: If85e68a6498f7d35a0c59f4af9323ba72fc36d5f
> Reviewed-on: https://chromium-review.googlesource.com/594608
> Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
> Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#490955}

TBR=rkc@chromium.org,dcheng@chromium.org,peria@chromium.org,kinuko@chromium.org,thakis@chromium.org,eroman@chromium.org,yukishiino@chromium.org,haraken@chromium.org,jochen@chromium.org

Change-Id: I67f166ae37b2103100c066334586a3b49a3a21e1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 588893,  617892 , 705364
Reviewed-on: https://chromium-review.googlesource.com/596087
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Commit-Queue: Jan Krcal <jkrcal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490973}
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/build/config/features.gni
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/chrome/BUILD.gn
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/content/app/content_main_runner.cc
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/content/public/app/mojo/content_renderer_manifest.json
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/content/public/common/content_descriptor_keys.cc
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/content/public/common/content_descriptor_keys.h
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/content/shell/BUILD.gn
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/extensions/shell/BUILD.gn
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/gin/isolate_holder.cc
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/gin/public/isolate_holder.h
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/gin/v8_initializer.cc
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/gin/v8_initializer.h
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-2x-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-only-viewport-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-2x-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-only-viewport-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-controls-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-2x-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-initial-scale-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-insets-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-2x-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-restore-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-dw-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-expected.txt
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/bindings/bindings.gni
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.cpp
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.h
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/bindings/core/v8/V8Initializer.h
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/bindings/modules/v8/BUILD.gn
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/third_party/WebKit/Source/bindings/modules/v8/V8ContextSnapshotExternalReferences.h
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/bindings/modules/v8/generated.gni
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/bindings/modules/v8/v8.gni
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/third_party/WebKit/Source/bindings/scripts/generate_v8_context_snapshot_external_references.py
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/third_party/WebKit/Source/bindings/templates/external_reference_table.cpp.tmpl
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/bindings/templates/templates.gni
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/controller/BlinkInitializer.cpp
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/core/exported/BUILD.gn
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/third_party/WebKit/Source/core/exported/WebV8ContextSnapshot.cpp
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.h
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/platform/bindings/ScriptWrappable.h
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/platform/bindings/V8PerContextData.cpp
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.cpp
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/9f043c3f6c2e9ea2e3903964a3b917276661085d/third_party/WebKit/public/platform/Platform.h
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/third_party/WebKit/public/web/WebV8ContextSnapshot.h
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/tools/v8_context_snapshot/BUILD.gn
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/tools/v8_context_snapshot/DEPS
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/tools/v8_context_snapshot/OWNERS
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/tools/v8_context_snapshot/run.py
[delete] https://crrev.com/d54a0d68ce4215279cb6da590bb4693ac17fa3c7/tools/v8_context_snapshot/v8_context_snapshot_generator.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 17 2017

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

commit f6a5016d0313daf6e798a568c31124e159569bb5
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Thu Aug 17 08:13:59 2017

(Reland)[Bindings] Create and use V8 context snapshots.

This CL does two things.

1. In compile time, creates a snapshot file, which consists of V8 contexts.
2. Creates v8::Context from the snapshot in LocalWindowProxy::CreateContext().

We expect this speeds up context creation for 3 times faster on Android.
Detailed information is described in the design doc [1].


[1] Design doc: https://docs.google.com/document/d/1jpQQX0piaxcHJPWakp_Kr_03g5Gnma5h5-Kdlqu7jVQ/edit#heading=h.k6iklq6rvd30


This CL is a re-land of https://chromium-review.googlesource.com/c/594608/
Test expectations are changed due to http://crbug.com/705364

BUG=588893,  617892 , 705364
TBR=rkc, jochen, dchen, kinuko, eroman, thakis

Change-Id: I8e98ff881a2219380edc3c48de38bc661c139fb1
Reviewed-on: https://chromium-review.googlesource.com/596167
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495105}
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/build/config/features.gni
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/chrome/BUILD.gn
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/content/app/content_main_runner.cc
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/content/public/app/mojo/content_renderer_manifest.json
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/content/public/common/content_descriptor_keys.cc
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/content/public/common/content_descriptor_keys.h
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/content/shell/BUILD.gn
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/extensions/shell/BUILD.gn
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/gin/isolate_holder.cc
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/gin/public/isolate_holder.h
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/gin/v8_initializer.cc
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/gin/v8_initializer.h
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-2x-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-only-viewport-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-2x-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-only-viewport-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-controls-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-2x-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-initial-scale-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-insets-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-2x-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-restore-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-dw-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-expected.txt
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/bindings.gni
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.cpp
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.h
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/core/v8/V8Initializer.h
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/modules/v8/BUILD.gn
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/modules/v8/V8ContextSnapshotExternalReferences.h
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/modules/v8/generated.gni
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/modules/v8/v8.gni
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/scripts/generate_v8_context_snapshot_external_references.py
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/templates/external_reference_table.cpp.tmpl
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/bindings/templates/templates.gni
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/controller/BlinkInitializer.cpp
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/core/exported/BUILD.gn
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/core/exported/WebV8ContextSnapshot.cpp
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.h
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/platform/bindings/ScriptWrappable.h
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/platform/bindings/V8PerContextData.cpp
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.cpp
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/public/platform/Platform.h
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/third_party/WebKit/public/web/WebV8ContextSnapshot.h
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/tools/v8_context_snapshot/BUILD.gn
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/tools/v8_context_snapshot/DEPS
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/tools/v8_context_snapshot/OWNERS
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/tools/v8_context_snapshot/run.py
[add] https://crrev.com/f6a5016d0313daf6e798a568c31124e159569bb5/tools/v8_context_snapshot/v8_context_snapshot_generator.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Aug 17 2017

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

commit f0d13c9a82041e4c47245aff80556cf3c0c7a7ac
Author: Max Morin <maxmorin@chromium.org>
Date: Thu Aug 17 10:04:59 2017

Revert "(Reland)[Bindings] Create and use V8 context snapshots."

This reverts commit f6a5016d0313daf6e798a568c31124e159569bb5.

Reason for revert: Speculative revert for failing webkit tests at https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Trusty%20%28dbg%29/builds/4057.

Original change's description:
> (Reland)[Bindings] Create and use V8 context snapshots.
> 
> This CL does two things.
> 
> 1. In compile time, creates a snapshot file, which consists of V8 contexts.
> 2. Creates v8::Context from the snapshot in LocalWindowProxy::CreateContext().
> 
> We expect this speeds up context creation for 3 times faster on Android.
> Detailed information is described in the design doc [1].
> 
> 
> [1] Design doc: https://docs.google.com/document/d/1jpQQX0piaxcHJPWakp_Kr_03g5Gnma5h5-Kdlqu7jVQ/edit#heading=h.k6iklq6rvd30
> 
> 
> This CL is a re-land of https://chromium-review.googlesource.com/c/594608/
> Test expectations are changed due to http://crbug.com/705364
> 
> BUG=588893,  617892 , 705364
> TBR=rkc, jochen, dchen, kinuko, eroman, thakis
> 
> Change-Id: I8e98ff881a2219380edc3c48de38bc661c139fb1
> Reviewed-on: https://chromium-review.googlesource.com/596167
> Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
> Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#495105}

TBR=rkc@chromium.org,dcheng@chromium.org,peria@chromium.org,kinuko@chromium.org,thakis@chromium.org,eroman@chromium.org,yukishiino@chromium.org,haraken@chromium.org,yangguo@chromium.org,jochen@chromium.org

Change-Id: I1050b0b84372ec683f3409ef77b9e9c45e39528f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 588893,  617892 , 705364
Reviewed-on: https://chromium-review.googlesource.com/618746
Reviewed-by: Max Morin <maxmorin@chromium.org>
Commit-Queue: Max Morin <maxmorin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495122}
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/build/config/features.gni
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/chrome/BUILD.gn
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/content/app/content_main_runner.cc
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/content/public/app/mojo/content_renderer_manifest.json
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/content/public/common/content_descriptor_keys.cc
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/content/public/common/content_descriptor_keys.h
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/content/shell/BUILD.gn
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/extensions/shell/BUILD.gn
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/gin/isolate_holder.cc
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/gin/public/isolate_holder.h
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/gin/v8_initializer.cc
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/gin/v8_initializer.h
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-2x-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-only-viewport-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-2x-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-only-viewport-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-controls-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-2x-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-initial-scale-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-insets-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-2x-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-restore-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-dw-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-expected.txt
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/bindings/bindings.gni
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.cpp
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.h
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/bindings/core/v8/V8Initializer.h
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/bindings/modules/v8/BUILD.gn
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/third_party/WebKit/Source/bindings/modules/v8/V8ContextSnapshotExternalReferences.h
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/bindings/modules/v8/generated.gni
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/bindings/modules/v8/v8.gni
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/third_party/WebKit/Source/bindings/scripts/generate_v8_context_snapshot_external_references.py
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/third_party/WebKit/Source/bindings/templates/external_reference_table.cpp.tmpl
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/bindings/templates/templates.gni
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/controller/BlinkInitializer.cpp
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/core/exported/BUILD.gn
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/third_party/WebKit/Source/core/exported/WebV8ContextSnapshot.cpp
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.h
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/platform/bindings/ScriptWrappable.h
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/platform/bindings/V8PerContextData.cpp
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.cpp
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/f0d13c9a82041e4c47245aff80556cf3c0c7a7ac/third_party/WebKit/public/platform/Platform.h
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/third_party/WebKit/public/web/WebV8ContextSnapshot.h
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/tools/v8_context_snapshot/BUILD.gn
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/tools/v8_context_snapshot/DEPS
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/tools/v8_context_snapshot/OWNERS
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/tools/v8_context_snapshot/run.py
[delete] https://crrev.com/a08575b866a0b09ff0167af860040320944618e0/tools/v8_context_snapshot/v8_context_snapshot_generator.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Aug 22 2017

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

commit f2f50dec16d633a28d799ee5c3223159444e9e46
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Tue Aug 22 13:23:55 2017

(Reland)[Bindings] Create and use V8 context snapshots.

This CL does two things.

1. In compile time, creates a snapshot file, which consists of V8 contexts.
2. Creates v8::Context from the snapshot in LocalWindowProxy::CreateContext().

We expect this speeds up context creation for 3 times faster on Android.
Detailed information is described in the design doc [1].

[1] Design doc: https://docs.google.com/document/d/1jpQQX0piaxcHJPWakp_Kr_03g5Gnma5h5-Kdlqu7jVQ/edit#heading=h.k6iklq6rvd30

This CL is a re-land of https://chromium-review.googlesource.com/c/594608/
Test expectations are changed due to http://crbug.com/705364

TBR=rkc, jochen, dchen, kinuko, eroman, thakis

BUG: 588893,  617892 , 705364
Change-Id: I2065fbf13991cddac3e9586beb6aecd879b1ad36
Reviewed-on: https://chromium-review.googlesource.com/623287
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496290}
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/build/config/features.gni
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/chrome/BUILD.gn
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/content/app/content_main_runner.cc
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/content/public/app/mojo/content_renderer_manifest.json
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/content/public/common/content_descriptor_keys.cc
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/content/public/common/content_descriptor_keys.h
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/content/shell/BUILD.gn
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/extensions/shell/BUILD.gn
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/gin/isolate_holder.cc
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/gin/public/isolate_holder.h
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/gin/v8_initializer.cc
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/gin/v8_initializer.h
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/SlowTests
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-2x-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-320-only-viewport-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-2x-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-980-only-viewport-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-controls-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-2x-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-dw-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-initial-scale-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-insets-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-2x-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-none-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-restore-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-dw-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/LayoutTests/inspector-protocol/emulation/device-emulation-small-expected.txt
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/bindings.gni
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.cpp
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.h
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/core/v8/V8Initializer.h
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/modules/v8/BUILD.gn
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/modules/v8/V8ContextSnapshotExternalReferences.h
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/modules/v8/generated.gni
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/modules/v8/v8.gni
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/scripts/generate_v8_context_snapshot_external_references.py
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/templates/external_reference_table.cpp.tmpl
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/bindings/templates/templates.gni
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/controller/BlinkInitializer.cpp
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/core/exported/BUILD.gn
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/core/exported/WebV8ContextSnapshot.cpp
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.h
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/platform/bindings/ScriptWrappable.h
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/platform/bindings/V8PerContextData.cpp
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.cpp
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/public/platform/Platform.h
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/third_party/WebKit/public/web/WebV8ContextSnapshot.h
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/tools/v8_context_snapshot/BUILD.gn
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/tools/v8_context_snapshot/DEPS
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/tools/v8_context_snapshot/OWNERS
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/tools/v8_context_snapshot/run.py
[add] https://crrev.com/f2f50dec16d633a28d799ee5c3223159444e9e46/tools/v8_context_snapshot/v8_context_snapshot_generator.cc

Comment 11 by kbr@chromium.org, Aug 26 2017

Blockedon: 759333

Comment 12 by peria@chromium.org, Aug 29 2017

Blockedon: -759333

Comment 13 by kbr@chromium.org, Sep 5 2017

Blockedon: 759333

Sign in to add a comment