Revert of Replace enable-compositing-for-fixed-position with...

Revert of Replace enable-compositing-for-fixed-position with prefer-compositing-to-lcd-text. (patchset #1 of https://codereview.chromium.org/479653003/)

Reason for revert:
Reverting due to compile step failure on Linux ChromiumOS Builder (dbg) (see http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Builder%20%28dbg%29/builds/50238).

Original issue's description:
> 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
> 
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=290155

TBR=piman@chromium.org,rsesek@chromium.org,sky@chromium.org,danakj@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=365851

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

Cr-Commit-Position: refs/heads/master@{#290156}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290156 0039d316-1c4b-4281-b951-d872f2087c98
parent 3f196eb8
......@@ -139,6 +139,16 @@ 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,
......@@ -651,6 +661,13 @@ 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,7 +83,6 @@ std::string DeriveCommandLine(const GURL& start_url,
::switches::kDisableImplSidePainting,
::switches::kDisableLowResTiling,
::switches::kDisableMediaSource,
::switches::kDisablePreferCompositingToLCDText,
::switches::kDisablePrefixedEncryptedMedia,
::switches::kDisablePanelFitting,
::switches::kDisableSeccompFilterSandbox,
......@@ -95,7 +94,7 @@ std::string DeriveCommandLine(const GURL& start_url,
::switches::kEnableAcceleratedFixedRootBackground,
::switches::kEnableAcceleratedOverflowScroll,
::switches::kEnableBeginFrameScheduling,
::switches::kEnablePreferCompositingToLCDText,
::switches::kEnableCompositingForFixedPosition,
::switches::kEnableDelegatedRenderer,
::switches::kEnableDisplayList2dCanvas,
::switches::kEnableEncryptedMedia,
......
......@@ -263,6 +263,7 @@ 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,6 +52,8 @@ 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::kDisablePreferCompositingToLCDText,
switches::kDisableCompositingForFixedPosition,
switches::kDisableCompositingForTransition,
switches::kDisableDatabases,
switches::kDisableDesktopNotifications,
......@@ -1128,7 +1128,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kEnableAcceleratedOverflowScroll,
switches::kEnableBeginFrameScheduling,
switches::kEnableBleedingEdgeRenderingFastPaths,
switches::kEnablePreferCompositingToLCDText,
switches::kEnableCompositingForFixedPosition,
switches::kEnableCompositingForTransition,
switches::kEnableDeferredImageDecoding,
switches::kEnableDisplayList2dCanvas,
......@@ -1139,6 +1139,7 @@ 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";
// Disable the creation of compositing layers when it would prevent LCD text.
const char kDisablePreferCompositingToLCDText[] =
"disable-prefer-compositing-to-lcd-text";
// See comment for kEnableCompositingForFixedPosition.
const char kDisableCompositingForFixedPosition[] =
"disable-fixed-position-compositing";
// See comment for kEnableCompositingForTransition.
const char kDisableCompositingForTransition[] =
......@@ -311,9 +311,18 @@ 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 when it would prevent LCD text.
const char kEnablePreferCompositingToLCDText[] =
"enable-prefer-compositing-to-lcd-text";
// 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/Disable the creation of compositing layers for RenderLayers with a
// transition on a property that supports accelerated animation (that is,
......@@ -364,6 +373,10 @@ 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[];
extern const char kDisablePreferCompositingToLCDText[];
CONTENT_EXPORT extern const char kDisableCompositingForFixedPosition[];
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[];
extern const char kEnablePreferCompositingToLCDText[];
CONTENT_EXPORT extern const char kEnableCompositingForFixedPosition[];
CONTENT_EXPORT extern const char kEnableCompositingForTransition[];
CONTENT_EXPORT extern const char kEnableDeferredImageDecoding[];
CONTENT_EXPORT extern const char kEnableDelegatedRenderer[];
......@@ -108,6 +108,7 @@ 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,12 +399,17 @@ static bool DeviceScaleEnsuresTextQuality(float device_scale_factor) {
}
static bool PreferCompositingToLCDText(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
const CommandLine& command_line = *CommandLine::ForCurrentProcess();
if (command_line.HasSwitch(switches::kDisablePreferCompositingToLCDText))
if (command_line.HasSwitch(switches::kDisableCompositingForFixedPosition))
return false;
if (command_line.HasSwitch(switches::kEnablePreferCompositingToLCDText))
if (command_line.HasSwitch(switches::kEnableCompositingForFixedPosition))
return true;
return DeviceScaleEnsuresTextQuality(device_scale_factor);
}
......@@ -791,8 +796,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()->setPreferCompositingToLCDTextEnabled(
PreferCompositingToLCDText(device_scale_factor_));
webview()->settings()->setAcceleratedCompositingForFixedPositionEnabled(
ShouldUseFixedPositionCompositing(device_scale_factor_));
webview()->settings()->setAcceleratedCompositingForOverflowScrollEnabled(
ShouldUseAcceleratedCompositingForOverflowScroll(device_scale_factor_));
webview()->settings()->setAcceleratedCompositingForTransitionEnabled(
......@@ -3763,8 +3768,8 @@ void RenderViewImpl::SetDeviceScaleFactor(float device_scale_factor) {
RenderWidget::SetDeviceScaleFactor(device_scale_factor);
if (webview()) {
webview()->setDeviceScaleFactor(device_scale_factor);
webview()->settings()->setPreferCompositingToLCDTextEnabled(
PreferCompositingToLCDText(device_scale_factor_));
webview()->settings()->setAcceleratedCompositingForFixedPositionEnabled(
ShouldUseFixedPositionCompositing(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