Commit 793ff51f authored by rajendrant's avatar rajendrant Committed by Commit Bot

LazyLoad: Add feature and flags for lazyloading image

Subsequent CLs will implement the feature.

Bug: 846170
Change-Id: Idf8e6352d3c0573a0cf014cc89b2f63251e26607
Reviewed-on: https://chromium-review.googlesource.com/1157143
Commit-Queue: rajendrant <rajendrant@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582216}
parent bab4b77b
......@@ -3937,6 +3937,11 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kEnableLayoutNGDescription, kOsAll,
FEATURE_VALUE_TYPE(blink::features::kLayoutNG)},
{"enable-lazy-image-loading",
flag_descriptions::kEnableLazyImageLoadingName,
flag_descriptions::kEnableLazyImageLoadingDescription, kOsAll,
FEATURE_VALUE_TYPE(features::kLazyImageLoading)},
{"enable-lazy-frame-loading",
flag_descriptions::kEnableLazyFrameLoadingName,
flag_descriptions::kEnableLazyFrameLoadingDescription, kOsAll,
......
......@@ -570,6 +570,10 @@ const char kEnableLazyFrameLoadingDescription[] =
"Defers the loading of certain cross-origin frames until the page is "
"scrolled down near them.";
const char kEnableLazyImageLoadingName[] = "Enable lazy image loading";
const char kEnableLazyImageLoadingDescription[] =
"Defers the loading of images until the page is scrolled down near them.";
const char kEnableMacMaterialDesignDownloadShelfName[] =
"Enable Material Design download shelf";
......
......@@ -372,6 +372,9 @@ extern const char kEnableLayoutNGDescription[];
extern const char kEnableLazyFrameLoadingName[];
extern const char kEnableLazyFrameLoadingDescription[];
extern const char kEnableLazyImageLoadingName[];
extern const char kEnableLazyImageLoadingDescription[];
extern const char kEnableMacMaterialDesignDownloadShelfName[];
extern const char kEnableMacMaterialDesignDownloadShelfDescription[];
......
......@@ -415,6 +415,10 @@ void SetRuntimeFeaturesDefaultsAndUpdateFromArgs(
WebRuntimeFeatures::EnableLazyFrameLoading(true);
if (base::FeatureList::IsEnabled(features::kLazyFrameVisibleLoadTimeMetrics))
WebRuntimeFeatures::EnableLazyFrameVisibleLoadTimeMetrics(true);
if (base::FeatureList::IsEnabled(features::kLazyImageLoading))
WebRuntimeFeatures::EnableLazyImageLoading(true);
if (base::FeatureList::IsEnabled(features::kLazyImageVisibleLoadTimeMetrics))
WebRuntimeFeatures::EnableLazyImageVisibleLoadTimeMetrics(true);
WebRuntimeFeatures::EnableV8ContextSnapshot(
base::FeatureList::IsEnabled(features::kV8ContextSnapshot));
......
......@@ -208,6 +208,10 @@ const base::Feature kLazyFrameLoading{"LazyFrameLoading",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kLazyFrameVisibleLoadTimeMetrics{
"LazyFrameVisibleLoadTimeMetrics", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kLazyImageLoading{"LazyImageLoading",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kLazyImageVisibleLoadTimeMetrics{
"LazyImageVisibleLoadTimeMetrics", base::FEATURE_DISABLED_BY_DEFAULT};
// Enable lazy initialization of the media controls.
const base::Feature kLazyInitializeMediaControls{
......
......@@ -57,6 +57,8 @@ CONTENT_EXPORT extern const base::Feature kKeyboardLockAPI;
CONTENT_EXPORT extern const base::Feature kLayeredAPI;
CONTENT_EXPORT extern const base::Feature kLazyFrameLoading;
CONTENT_EXPORT extern const base::Feature kLazyFrameVisibleLoadTimeMetrics;
CONTENT_EXPORT extern const base::Feature kLazyImageLoading;
CONTENT_EXPORT extern const base::Feature kLazyImageVisibleLoadTimeMetrics;
CONTENT_EXPORT extern const base::Feature kLazyInitializeMediaControls;
CONTENT_EXPORT extern const base::Feature kLazyParseCSS;
CONTENT_EXPORT extern const base::Feature kLowPriorityIframes;
......
......@@ -99,6 +99,8 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableLayoutNG(bool);
BLINK_PLATFORM_EXPORT static void EnableLazyFrameLoading(bool);
BLINK_PLATFORM_EXPORT static void EnableLazyFrameVisibleLoadTimeMetrics(bool);
BLINK_PLATFORM_EXPORT static void EnableLazyImageLoading(bool);
BLINK_PLATFORM_EXPORT static void EnableLazyImageVisibleLoadTimeMetrics(bool);
BLINK_PLATFORM_EXPORT static void EnableLazyParseCSS(bool);
BLINK_PLATFORM_EXPORT static void EnableMediaCapture(bool);
BLINK_PLATFORM_EXPORT static void EnableMediaSession(bool);
......
......@@ -200,6 +200,14 @@ void WebRuntimeFeatures::EnableLazyFrameVisibleLoadTimeMetrics(bool enable) {
RuntimeEnabledFeatures::SetLazyFrameVisibleLoadTimeMetricsEnabled(enable);
}
void WebRuntimeFeatures::EnableLazyImageLoading(bool enable) {
RuntimeEnabledFeatures::SetLazyImageLoadingEnabled(enable);
}
void WebRuntimeFeatures::EnableLazyImageVisibleLoadTimeMetrics(bool enable) {
RuntimeEnabledFeatures::SetLazyImageVisibleLoadTimeMetricsEnabled(enable);
}
void WebRuntimeFeatures::EnableLazyParseCSS(bool enable) {
RuntimeEnabledFeatures::SetLazyParseCSSEnabled(enable);
}
......
......@@ -630,6 +630,12 @@
{
name: "LazyFrameVisibleLoadTimeMetrics",
},
{
name: "LazyImageLoading",
},
{
name: "LazyImageVisibleLoadTimeMetrics",
},
{
name: "LazyInitializeMediaControls",
// This is enabled by features::kLazyInitializeMediaControls.
......
......@@ -28152,6 +28152,7 @@ from previous Chrome versions.
<int value="-1126217973" label="IdleTimeSpellChecking:disabled"/>
<int value="-1125840399" label="ViewsBrowserWindows:enabled"/>
<int value="-1125133283" label="disable-threaded-scrolling"/>
<int value="-1122853453" label="LazyImageLoading:enabled"/>
<int value="-1121931029" label="DownloadsForeground:enabled"/>
<int value="-1119700637" label="ui-disable-partial-swap"/>
<int value="-1112782121" label="AndroidSigninPromos:disabled"/>
......@@ -28428,6 +28429,7 @@ from previous Chrome versions.
<int value="-536230323" label="SingleClickAutofill:disabled"/>
<int value="-535662704" label="BundledConnectionHelp:enabled"/>
<int value="-535208779" label="enable-native-cups"/>
<int value="-534221085" label="LazyImageLoading:disabled"/>
<int value="-533552313"
label="AutofillUpstreamEditableCardholderName:enabled"/>
<int value="-531810064" label="saveas-menu-label"/>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment