Commit 3f196eb8 authored by danakj@chromium.org's avatar danakj@chromium.org

Replace enable-compositing-for-fixed-position with prefer-compositing-to-lcd-text.

We are adding a --prefer-compositing-to-lcd-text flag to allow promoting
of things that will lose LCD text. Fixed position elements will be the
only thing controlled by this flag in this CL. Other flags will be
merged into it in the future.

R=piman@chromium.org
BUG=365851

Review URL: https://codereview.chromium.org/479653003

Cr-Commit-Position: refs/heads/master@{#290155}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290155 0039d316-1c4b-4281-b951-d872f2087c98
parent 4eb0a857
......@@ -139,16 +139,6 @@ std::set<CommandLine::StringType> ExtractFlagsFromCommandLine(
return flags;
}
const Experiment::Choice kEnableCompositingForFixedPositionChoices[] = {
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
{ IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
switches::kEnableCompositingForFixedPosition, ""},
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
switches::kDisableCompositingForFixedPosition, ""},
{ IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_HIGH_DPI,
switches::kEnableHighDpiCompositingForFixedPosition, ""}
};
const Experiment::Choice kEnableCompositingForTransitionChoices[] = {
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
{ IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
......@@ -661,13 +651,6 @@ const Experiment kExperiments[] = {
SINGLE_VALUE_TYPE(switches::kDisableWebAudio)
},
#endif
{
"enable-compositing-for-fixed-position",
IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_NAME,
IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_DESCRIPTION,
kOsAll,
MULTI_VALUE_TYPE(kEnableCompositingForFixedPositionChoices)
},
{
"enable-compositing-for-transition",
IDS_FLAGS_COMPOSITING_FOR_TRANSITION_NAME,
......
......@@ -83,6 +83,7 @@ std::string DeriveCommandLine(const GURL& start_url,
::switches::kDisableImplSidePainting,
::switches::kDisableLowResTiling,
::switches::kDisableMediaSource,
::switches::kDisablePreferCompositingToLCDText,
::switches::kDisablePrefixedEncryptedMedia,
::switches::kDisablePanelFitting,
::switches::kDisableSeccompFilterSandbox,
......@@ -94,7 +95,7 @@ std::string DeriveCommandLine(const GURL& start_url,
::switches::kEnableAcceleratedFixedRootBackground,
::switches::kEnableAcceleratedOverflowScroll,
::switches::kEnableBeginFrameScheduling,
::switches::kEnableCompositingForFixedPosition,
::switches::kEnablePreferCompositingToLCDText,
::switches::kEnableDelegatedRenderer,
::switches::kEnableDisplayList2dCanvas,
::switches::kEnableEncryptedMedia,
......
......@@ -263,7 +263,6 @@ static bool IsBoringSwitch(const std::string& flag) {
flag == "--flag-switches-end";
#elif defined(OS_CHROMEOS)
static const char* kIgnoreSwitches[] = {
::switches::kEnableCompositingForFixedPosition,
::switches::kEnableImplSidePainting,
::switches::kEnableLogging,
::switches::kFlagSwitchesBegin,
......
......@@ -52,8 +52,6 @@ void SetContentCommandLineFlags(bool single_process,
parsed_command_line->AppendSwitch(switches::kSingleProcess);
}
parsed_command_line->AppendSwitch(
switches::kEnableCompositingForFixedPosition);
parsed_command_line->AppendSwitch(switches::kEnableAcceleratedOverflowScroll);
parsed_command_line->AppendSwitch(switches::kEnableBeginFrameScheduling);
......
......@@ -1096,7 +1096,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kDisableAcceleratedVideoDecode,
switches::kDisableApplicationCache,
switches::kDisableBreakpad,
switches::kDisableCompositingForFixedPosition,
switches::kDisablePreferCompositingToLCDText,
switches::kDisableCompositingForTransition,
switches::kDisableDatabases,
switches::kDisableDesktopNotifications,
......@@ -1128,7 +1128,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kEnableAcceleratedOverflowScroll,
switches::kEnableBeginFrameScheduling,
switches::kEnableBleedingEdgeRenderingFastPaths,
switches::kEnableCompositingForFixedPosition,
switches::kEnablePreferCompositingToLCDText,
switches::kEnableCompositingForTransition,
switches::kEnableDeferredImageDecoding,
switches::kEnableDisplayList2dCanvas,
......@@ -1139,7 +1139,6 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kEnableGPUClientLogging,
switches::kEnableGpuClientTracing,
switches::kEnableGPUServiceLogging,
switches::kEnableHighDpiCompositingForFixedPosition,
switches::kEnableLowResTiling,
switches::kEnableInbandTextTracks,
switches::kEnableLCDText,
......
......@@ -105,9 +105,9 @@ const char kDisableApplicationCache[] = "disable-application-cache";
// users with many windows/tabs and lots of memory.
const char kDisableBackingStoreLimit[] = "disable-backing-store-limit";
// See comment for kEnableCompositingForFixedPosition.
const char kDisableCompositingForFixedPosition[] =
"disable-fixed-position-compositing";
// Disable the creation of compositing layers when it would prevent LCD text.
const char kDisablePreferCompositingToLCDText[] =
"disable-prefer-compositing-to-lcd-text";
// See comment for kEnableCompositingForTransition.
const char kDisableCompositingForTransition[] =
......@@ -311,18 +311,9 @@ const char kEnableContainerCulling[] = "enable-container-culling";
// Use a BeginFrame signal from browser to renderer to schedule rendering.
const char kEnableBeginFrameScheduling[] = "enable-begin-frame-scheduling";
// Enable the creation of compositing layers for fixed position
// elements. Three options are needed to support four possible scenarios:
// 1. Default (disabled)
// 2. Enabled always (to allow dogfooding)
// 3. Disabled always (to give safety fallback for users)
// 4. Enabled only if we detect a highDPI display
//
// Option #4 may soon be the default, because the feature is needed soon for
// high DPI, but cannot be used (yet) for low DPI. Options #2 and #3 will
// override Option #4.
const char kEnableCompositingForFixedPosition[] =
"enable-fixed-position-compositing";
// Enable the creation of compositing layers when it would prevent LCD text.
const char kEnablePreferCompositingToLCDText[] =
"enable-prefer-compositing-to-lcd-text";
// Enable/Disable the creation of compositing layers for RenderLayers with a
// transition on a property that supports accelerated animation (that is,
......@@ -373,10 +364,6 @@ const char kEnableGpuRasterization[] = "enable-gpu-rasterization";
// tiles may be displayed during fast scrolls especially on slower devices.
const char kEnableLowResTiling[] = "enable-low-res-tiling";
// See comment for kEnableCompositingForFixedPosition.
const char kEnableHighDpiCompositingForFixedPosition[] =
"enable-high-dpi-fixed-position-compositing";
// Paint content on the compositor thread instead of the main thread.
const char kEnableImplSidePainting[] = "enable-impl-side-painting";
......
......@@ -39,7 +39,7 @@ CONTENT_EXPORT extern const char kDisableLayerSquashing[];
CONTENT_EXPORT extern const char kDisableAcceleratedVideoDecode[];
CONTENT_EXPORT extern const char kDisableApplicationCache[];
extern const char kDisableBackingStoreLimit[];
CONTENT_EXPORT extern const char kDisableCompositingForFixedPosition[];
extern const char kDisablePreferCompositingToLCDText[];
CONTENT_EXPORT extern const char kDisableCompositingForTransition[];
CONTENT_EXPORT extern const char kDisableDatabases[];
CONTENT_EXPORT extern const char kDisableDelegatedRenderer[];
......@@ -94,7 +94,7 @@ CONTENT_EXPORT extern const char kEnableAcceleratedOverflowScroll[];
CONTENT_EXPORT extern const char kEnableLayerSquashing[];
CONTENT_EXPORT extern const char kEnableContainerCulling[];
CONTENT_EXPORT extern const char kEnableBeginFrameScheduling[];
CONTENT_EXPORT extern const char kEnableCompositingForFixedPosition[];
extern const char kEnablePreferCompositingToLCDText[];
CONTENT_EXPORT extern const char kEnableCompositingForTransition[];
CONTENT_EXPORT extern const char kEnableDeferredImageDecoding[];
CONTENT_EXPORT extern const char kEnableDelegatedRenderer[];
......@@ -108,7 +108,6 @@ CONTENT_EXPORT extern const char kEnableFileCookies[];
extern const char kEnableGpuClientTracing[];
CONTENT_EXPORT extern const char kEnableGpuRasterization[];
CONTENT_EXPORT extern const char kEnableLowResTiling[];
CONTENT_EXPORT extern const char kEnableHighDpiCompositingForFixedPosition[];
CONTENT_EXPORT extern const char kEnableImplSidePainting[];
CONTENT_EXPORT extern const char kEnableInbandTextTracks[];
CONTENT_EXPORT extern const char kEnableLCDText[];
......
......@@ -399,17 +399,12 @@ static bool DeviceScaleEnsuresTextQuality(float device_scale_factor) {
}
static bool ShouldUseFixedPositionCompositing(float device_scale_factor) {
// Compositing for fixed-position elements is dependent on
// device_scale_factor if no flag is set. http://crbug.com/172738
static bool PreferCompositingToLCDText(float device_scale_factor) {
const CommandLine& command_line = *CommandLine::ForCurrentProcess();
if (command_line.HasSwitch(switches::kDisableCompositingForFixedPosition))
if (command_line.HasSwitch(switches::kDisablePreferCompositingToLCDText))
return false;
if (command_line.HasSwitch(switches::kEnableCompositingForFixedPosition))
if (command_line.HasSwitch(switches::kEnablePreferCompositingToLCDText))
return true;
return DeviceScaleEnsuresTextQuality(device_scale_factor);
}
......@@ -796,8 +791,8 @@ void RenderViewImpl::Initialize(RenderViewImplParams* params) {
g_view_map.Get().insert(std::make_pair(webview(), this));
g_routing_id_view_map.Get().insert(std::make_pair(routing_id_, this));
webview()->setDeviceScaleFactor(device_scale_factor_);
webview()->settings()->setAcceleratedCompositingForFixedPositionEnabled(
ShouldUseFixedPositionCompositing(device_scale_factor_));
webview()->settings()->setPreferCompositingToLCDTextEnabled(
PreferCompositingToLCDText(device_scale_factor_));
webview()->settings()->setAcceleratedCompositingForOverflowScrollEnabled(
ShouldUseAcceleratedCompositingForOverflowScroll(device_scale_factor_));
webview()->settings()->setAcceleratedCompositingForTransitionEnabled(
......@@ -3768,8 +3763,8 @@ void RenderViewImpl::SetDeviceScaleFactor(float device_scale_factor) {
RenderWidget::SetDeviceScaleFactor(device_scale_factor);
if (webview()) {
webview()->setDeviceScaleFactor(device_scale_factor);
webview()->settings()->setAcceleratedCompositingForFixedPositionEnabled(
ShouldUseFixedPositionCompositing(device_scale_factor_));
webview()->settings()->setPreferCompositingToLCDTextEnabled(
PreferCompositingToLCDText(device_scale_factor_));
webview()->settings()->setAcceleratedCompositingForOverflowScrollEnabled(
ShouldUseAcceleratedCompositingForOverflowScroll(device_scale_factor_));
webview()->settings()->setAcceleratedCompositingForTransitionEnabled(
......
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