0

Simplify pinch flags.

At present, we have two flags to enable two different pinch models:

enable-pinch => enables Android style zoom
enable-pinch + enable-pinch-in-compositor => enables chrome linux/win accelerated zoom

This CL rationalizes the flags so that

enable-css-transform-pinch => enables Android style zoom
enable-pinch => enables chrome linux/win accelerated zoom

and the latter can be controlled via about:flags.

BUG=
NOTRY=TRUE


Review URL: https://chromiumcodereview.appspot.com/11348353

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171309 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
wjmaclean@chromium.org
2012-12-05 21:06:06 +00:00
parent b5746636b6
commit 16ad47f88a
9 changed files with 18 additions and 26 deletions

@ -21,10 +21,6 @@ const char kEnablePartialSwap[] = "enable-partial-swap";
const char kEnablePerTilePainting[] = "enable-per-tile-painting";
// Enables an alternative pinch-zoom gesture support, via the threaded
// compositor.
const char kEnablePinchInCompositor[] = "enable-pinch-in-compositor";
// Number of worker threads used to rasterize content.
const char kNumRasterThreads[] = "num-raster-threads";

@ -20,7 +20,6 @@ CC_EXPORT extern const char kDisableThreadedAnimation[];
CC_EXPORT extern const char kEnableImplSidePainting[];
CC_EXPORT extern const char kEnablePartialSwap[];
CC_EXPORT extern const char kEnablePerTilePainting[];
CC_EXPORT extern const char kEnablePinchInCompositor[];
CC_EXPORT extern const char kJankInsteadOfCheckerboard[];
CC_EXPORT extern const char kNumRasterThreads[];
CC_EXPORT extern const char kShowPropertyChangedRects[];

@ -894,7 +894,7 @@ const Experiment kExperiments[] = {
"enable-pinch",
IDS_FLAGS_ENABLE_PINCH_SCALE_NAME,
IDS_FLAGS_ENABLE_PINCH_SCALE_DESCRIPTION,
kOsAll,
kOsLinux | kOsWin | kOsCrOS,
SINGLE_VALUE_TYPE(switches::kEnablePinch),
},
{

@ -815,7 +815,6 @@ std::string LoginUtilsImpl::GetOffTheRecordCommandLine(
ash::switches::kAshDisablePanelFitting,
cc::switches::kDisableThreadedAnimation,
cc::switches::kEnablePartialSwap,
cc::switches::kEnablePinchInCompositor,
chromeos::switches::kDbusStub,
chromeos::switches::kEnableNewNetworkHandlers,
gfx::switches::kEnableBrowserTextSubpixelPositioning,

@ -51,7 +51,7 @@ void SetContentCommandLineFlags(int max_render_process_count) {
switches::kEnableCompositingForFixedPosition);
parsed_command_line->AppendSwitch(switches::kEnableGestureTapHighlight);
parsed_command_line->AppendSwitch(switches::kEnablePinch);
parsed_command_line->AppendSwitch(switches::kEnableCssTransformPinch);
// Run the GPU service as a thread in the browser instead of as a
// standalone process.

@ -653,7 +653,7 @@ WebPreferences WebContentsImpl::GetWebkitPrefs(RenderViewHost* rvh,
}
prefs.apply_page_scale_factor_in_compositor =
command_line.HasSwitch(cc::switches::kEnablePinchInCompositor);
command_line.HasSwitch(switches::kEnablePinch);
prefs.per_tile_painting_enabled =
command_line.HasSwitch(cc::switches::kEnablePerTilePainting);
prefs.accelerated_animation_enabled =

@ -308,9 +308,12 @@ const char kEnableMonitorProfile[] = "enable-monitor-profile";
// that support it.
const char kEnableUIReleaseFrontSurface[] = "enable-ui-release-front-surface";
// Enables touch-screen pinch gestures.
// Enables compositor-accelerated touch-screen pinch gestures.
const char kEnablePinch[] = "enable-pinch";
// Enables Android-style touch-screen pinch gestures.
const char kEnableCssTransformPinch[] = "enable-css-transform-pinch";
// Enable caching of pre-parsed JS script data. See http://crbug.com/32407.
const char kEnablePreparsedJsCaching[] = "enable-preparsed-js-caching";

@ -108,6 +108,7 @@ CONTENT_EXPORT extern const char kUseFakeDeviceForMediaStream[];
extern const char kEnableMonitorProfile[];
extern const char kEnableUIReleaseFrontSurface[];
extern const char kEnablePinch[];
extern const char kEnableCssTransformPinch[];
extern const char kEnablePreparsedJsCaching[];
CONTENT_EXPORT extern const char kEnablePrivilegedWebGLExtensions[];
extern const char kEnablePruneGpuCommandBuffers[];

@ -3185,25 +3185,19 @@ void RenderViewImpl::ProcessViewLayoutFlags(const CommandLine& command_line) {
void RenderViewImpl::ProcessAcceleratedPinchZoomFlags(
const CommandLine& command_line) {
bool enable_viewport =
command_line.HasSwitch(switches::kEnableViewport);
bool enable_pinch = enable_viewport ||
command_line.HasSwitch(switches::kEnablePinch);
bool enable_pinch_in_compositor =
command_line.HasSwitch(cc::switches::kEnablePinchInCompositor);
if (!webview()->isAcceleratedCompositingActive())
return;
if (!enable_pinch &&
webview()->isAcceleratedCompositingActive() &&
webkit_preferences_.apply_default_device_scale_factor_in_compositor &&
device_scale_factor_ != 1) {
// Page scaling is disabled by default when applying a scale factor in the
// compositor since they are currently incompatible.
webview()->setPageScaleFactorLimits(1, 1);
}
bool enable_viewport = command_line.HasSwitch(switches::kEnableViewport);
bool enable_pinch = command_line.HasSwitch(switches::kEnablePinch);
if (enable_pinch_in_compositor &&
webview()->isAcceleratedCompositingActive())
if (enable_viewport)
return;
if (enable_pinch)
webview()->setPageScaleFactorLimits(1, 4);
else
webview()->setPageScaleFactorLimits(1, 1);
}
void RenderViewImpl::didStartProvisionalLoad(WebFrame* frame) {