diff options
author | marja <marja@chromium.org> | 2014-09-18 01:51:47 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-18 08:52:02 +0000 |
commit | aaf6266635e4e7228a569be50b14f7668eaca62f (patch) | |
tree | 038655a9a89407847b47baa23654f32f56a12901 | |
parent | f1ae325a5db81e728b4e3075546cfdd1f24bc304 (diff) | |
download | chromium_src-aaf6266635e4e7228a569be50b14f7668eaca62f.zip chromium_src-aaf6266635e4e7228a569be50b14f7668eaca62f.tar.gz chromium_src-aaf6266635e4e7228a569be50b14f7668eaca62f.tar.bz2 |
Add a command line option and a Finch experiment for script streaming.
Script streaming is implemented here: https://codereview.chromium.org/368283002
BUG=
Review URL: https://codereview.chromium.org/547373002
Cr-Commit-Position: refs/heads/master@{#295437}
-rw-r--r-- | chrome/browser/chrome_browser_field_trials.cc | 1 | ||||
-rw-r--r-- | content/browser/renderer_host/render_view_host_impl.cc | 5 | ||||
-rw-r--r-- | content/public/common/common_param_traits_macros.h | 1 | ||||
-rw-r--r-- | content/public/common/content_switches.cc | 3 | ||||
-rw-r--r-- | content/public/common/content_switches.h | 1 | ||||
-rw-r--r-- | content/public/common/web_preferences.cc | 1 | ||||
-rw-r--r-- | content/public/common/web_preferences.h | 1 | ||||
-rw-r--r-- | content/renderer/render_view_impl.cc | 2 |
8 files changed, 15 insertions, 0 deletions
diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chrome_browser_field_trials.cc index 4fd69b8..398305e 100644 --- a/chrome/browser/chrome_browser_field_trials.cc +++ b/chrome/browser/chrome_browser_field_trials.cc @@ -54,6 +54,7 @@ void ChromeBrowserFieldTrials::InstantiateDynamicTrials() { base::FieldTrialList::FindValue("MouseEventPreconnect"); base::FieldTrialList::FindValue("UnauthorizedPluginInfoBar"); base::FieldTrialList::FindValue("DisplayList2dCanvas"); + base::FieldTrialList::FindValue("V8ScriptStreaming"); // Activate the autocomplete dynamic field trials. OmniboxFieldTrial::ActivateDynamicTrials(); } diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc index 8f497f7..222f263 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc @@ -15,6 +15,7 @@ #include "base/i18n/rtl.h" #include "base/json/json_reader.h" #include "base/message_loop/message_loop.h" +#include "base/metrics/field_trial.h" #include "base/metrics/histogram.h" #include "base/stl_util.h" #include "base/strings/string_util.h" @@ -477,6 +478,10 @@ WebPreferences RenderViewHostImpl::ComputeWebkitPrefs(const GURL& url) { } } + prefs.v8_script_streaming_enabled = + command_line.HasSwitch(switches::kEnableV8ScriptStreaming) || + base::FieldTrialList::FindFullName("V8ScriptStreaming") == "Enabled"; + GetContentClient()->browser()->OverrideWebkitPrefs(this, url, &prefs); return prefs; } diff --git a/content/public/common/common_param_traits_macros.h b/content/public/common/common_param_traits_macros.h index 56b23e4..eede504 100644 --- a/content/public/common/common_param_traits_macros.h +++ b/content/public/common/common_param_traits_macros.h @@ -176,6 +176,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences) IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop) IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled) IPC_STRUCT_TRAITS_MEMBER(v8_cache_options) + IPC_STRUCT_TRAITS_MEMBER(v8_script_streaming_enabled) IPC_STRUCT_TRAITS_MEMBER(pepper_accelerated_video_decode_enabled) #if defined(OS_ANDROID) IPC_STRUCT_TRAITS_MEMBER(text_autosizing_enabled) diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc index 0fdcfe2..c429372 100644 --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc @@ -452,6 +452,9 @@ const char kEnableTracingOutput[] = "enable-tracing-output"; const char kEnableUserMediaScreenCapturing[] = "enable-usermedia-screen-capturing"; +// Enables streaming scripts to V8 while loading. +const char kEnableV8ScriptStreaming[] = "enable-v8-script-streaming"; + // Enables the use of the @viewport CSS rule, which allows // pages to control aspects of their own layout. This also turns on touch-screen // pinch gestures. diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h index 1c4493c..5196e83 100644 --- a/content/public/common/content_switches.h +++ b/content/public/common/content_switches.h @@ -133,6 +133,7 @@ CONTENT_EXPORT extern const char kEnableThreadedCompositing[]; CONTENT_EXPORT extern const char kEnableTracing[]; CONTENT_EXPORT extern const char kEnableTracingOutput[]; CONTENT_EXPORT extern const char kEnableUserMediaScreenCapturing[]; +extern const char kEnableV8ScriptStreaming[]; CONTENT_EXPORT extern const char kEnableViewport[]; CONTENT_EXPORT extern const char kEnableViewportMeta[]; CONTENT_EXPORT extern const char kMainFrameResizesAreOrientationChanges[]; diff --git a/content/public/common/web_preferences.cc b/content/public/common/web_preferences.cc index d1e656d..32f7987 100644 --- a/content/public/common/web_preferences.cc +++ b/content/public/common/web_preferences.cc @@ -136,6 +136,7 @@ WebPreferences::WebPreferences() use_solid_color_scrollbars(false), navigate_on_drag_drop(true), v8_cache_options(V8_CACHE_OPTIONS_OFF), + v8_script_streaming_enabled(false), cookie_enabled(true), pepper_accelerated_video_decode_enabled(false) #if defined(OS_ANDROID) diff --git a/content/public/common/web_preferences.h b/content/public/common/web_preferences.h index 496a347..b0a95ca 100644 --- a/content/public/common/web_preferences.h +++ b/content/public/common/web_preferences.h @@ -142,6 +142,7 @@ struct CONTENT_EXPORT WebPreferences { bool use_solid_color_scrollbars; bool navigate_on_drag_drop; V8CacheOptions v8_cache_options; + bool v8_script_streaming_enabled; // This flags corresponds to a Page's Settings' setCookieEnabled state. It // only controls whether or not the "document.cookie" field is properly diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 83ad060..eba0382 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -1069,6 +1069,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, settings->setV8CacheOptions( static_cast<WebSettings::V8CacheOptions>(prefs.v8_cache_options)); + settings->setV8ScriptStreamingEnabled(prefs.v8_script_streaming_enabled); + #if defined(OS_ANDROID) settings->setAllowCustomScrollbarInMainFrame(false); settings->setTextAutosizingEnabled(prefs.text_autosizing_enabled); |