summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreveman@google.com <reveman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 20:40:15 +0000
committerreveman@google.com <reveman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 20:40:15 +0000
commitdb543d32157df951f29f7a731dd2f5995ab2e5de (patch)
tree2551597c2e46597651ac5227c4d683921143ad10
parentca929ed34121d8f90788f16dfd1fe555bb5701ae (diff)
downloadchromium_src-db543d32157df951f29f7a731dd2f5995ab2e5de.zip
chromium_src-db543d32157df951f29f7a731dd2f5995ab2e5de.tar.gz
chromium_src-db543d32157df951f29f7a731dd2f5995ab2e5de.tar.bz2
Add a command-line switch --enable-per-tile-painting and make it consistent by changing --enable-accelerated-drawing to --enable-accelerated-painting.
With this switch, webkit compositor will paint tiles separately. BUG=none TEST=no behavior change in existing browser tests and ui tests Review URL: http://codereview.chromium.org/8771056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114694 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/app/generated_resources.grd14
-rw-r--r--chrome/browser/about_flags.cc19
-rw-r--r--chrome/browser/tab_contents/render_view_host_delegate_helper.cc9
-rw-r--r--content/common/view_messages.h3
-rw-r--r--content/public/common/content_switches.cc10
-rw-r--r--content/public/common/content_switches.h4
-rw-r--r--webkit/glue/webpreferences.cc12
-rw-r--r--webkit/glue/webpreferences.h3
8 files changed, 50 insertions, 24 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index b4e9a27..1f3d5b1 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -4730,11 +4730,11 @@ Keep your key file in a safe place. You will need it to create new versions of y
<message name="IDS_FLAGS_COMPOSITED_LAYER_BORDERS_DESCRIPTION" desc="Description of the 'Composited layer borders' lab.">
Renders a border around composited Render Layers to help debug and study layer compositing.
</message>
- <message name="IDS_FLAGS_ACCELERATED_DRAWING_NAME" desc="Title for the flag to enable accelerated drawing">
- GPU Accelerated Drawing
+ <message name="IDS_FLAGS_ACCELERATED_PAINTING_NAME" desc="Title for the flag to enable accelerated painting">
+ GPU Accelerated Painting
</message>
- <message name="IDS_FLAGS_ACCELERATED_DRAWING_DESCRIPTION" desc="Description for the flag to enable accelerated drawing">
- Enable GPU accelerated drawing of page contents when compositing is enabled.
+ <message name="IDS_FLAGS_ACCELERATED_PAINTING_DESCRIPTION" desc="Description for the flag to enable accelerated painting">
+ Enable GPU accelerated painting of page contents when compositing is enabled.
</message>
<message name="IDS_FLAGS_SHOW_FPS_COUNTER" desc="Name of the 'Show FPS counter' lab.">
FPS counter
@@ -5004,6 +5004,12 @@ Keep your key file in a safe place. You will need it to create new versions of y
<message name="IDS_FLAGS_ENABLE_GAMEPAD_DESCRIPTION" desc="Description for the flag to enable gamepad support.">
This API allows web applications to access data from gamepad devices connected to the system.
</message>
+ <message name="IDS_FLAGS_PER_TILE_PAINTING_NAME" desc="Title for the flag to enable per-tile painting">
+ Per-tile Painting
+ </message>
+ <message name="IDS_FLAGS_PER_TILE_PAINTING_DESCRIPTION" desc="Description for the flag to enable per-tile painting">
+ Enable per-tile painting of page contents when compositing is enabled.
+ </message>
<!-- Crashes -->
<message name="IDS_CRASHES_TITLE" desc="Title for the chrome://crashes page.">
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index c983e2d..7386c5c 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -154,15 +154,15 @@ const Experiment kExperiments[] = {
SINGLE_VALUE_TYPE(switches::kShowCompositedLayerBorders)
},
{
- "accelerated-drawing",
- IDS_FLAGS_ACCELERATED_DRAWING_NAME,
- IDS_FLAGS_ACCELERATED_DRAWING_DESCRIPTION,
+ "accelerated-painting",
+ IDS_FLAGS_ACCELERATED_PAINTING_NAME,
+ IDS_FLAGS_ACCELERATED_PAINTING_DESCRIPTION,
#if defined(USE_SKIA)
kOsAll,
#else
0,
#endif
- SINGLE_VALUE_TYPE(switches::kEnableAcceleratedDrawing)
+ SINGLE_VALUE_TYPE(switches::kEnableAcceleratedPainting)
},
{
"show-fps-counter",
@@ -457,6 +457,17 @@ const Experiment kExperiments[] = {
SINGLE_VALUE_TYPE(switches::kAuraLaptopMode)
},
#endif
+ {
+ "per-tile-painting",
+ IDS_FLAGS_PER_TILE_PAINTING_NAME,
+ IDS_FLAGS_PER_TILE_PAINTING_DESCRIPTION,
+#if defined(USE_SKIA)
+ kOsAll,
+#else
+ 0,
+#endif
+ SINGLE_VALUE_TYPE(switches::kEnablePerTilePainting)
+ },
};
const Experiment* experiments = kExperiments;
diff --git a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
index a8ad499..499af98 100644
--- a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
+++ b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
@@ -458,9 +458,9 @@ WebPreferences RenderViewHostDelegateHelper::GetWebkitPrefs(
web_prefs.accelerated_2d_canvas_enabled =
GpuProcessHost::gpu_enabled() &&
!command_line.HasSwitch(switches::kDisableAccelerated2dCanvas);
- web_prefs.accelerated_drawing_enabled =
+ web_prefs.accelerated_painting_enabled =
GpuProcessHost::gpu_enabled() &&
- command_line.HasSwitch(switches::kEnableAcceleratedDrawing);
+ command_line.HasSwitch(switches::kEnableAcceleratedPainting);
web_prefs.accelerated_filters_enabled =
GpuProcessHost::gpu_enabled() &&
command_line.HasSwitch(switches::kEnableAcceleratedFilters);
@@ -506,9 +506,10 @@ WebPreferences RenderViewHostDelegateHelper::GetWebkitPrefs(
web_prefs.visual_word_movement_enabled =
command_line.HasSwitch(switches::kEnableVisualWordMovement);
-
web_prefs.unified_textchecker_enabled =
command_line.HasSwitch(switches::kExperimentalSpellcheckerFeatures);
+ web_prefs.per_tile_painting_enabled =
+ command_line.HasSwitch(switches::kEnablePerTilePainting);
}
{ // Certain GPU features might have been blacklisted.
@@ -568,7 +569,7 @@ WebPreferences RenderViewHostDelegateHelper::GetWebkitPrefs(
web_prefs.accelerated_compositing_enabled = false;
web_prefs.accelerated_2d_canvas_enabled = false;
web_prefs.accelerated_video_enabled = false;
- web_prefs.accelerated_drawing_enabled = false;
+ web_prefs.accelerated_painting_enabled = false;
web_prefs.accelerated_plugins_enabled = false;
}
diff --git a/content/common/view_messages.h b/content/common/view_messages.h
index c10934d..c811301 100644
--- a/content/common/view_messages.h
+++ b/content/common/view_messages.h
@@ -219,7 +219,7 @@ IPC_STRUCT_TRAITS_BEGIN(WebPreferences)
IPC_STRUCT_TRAITS_MEMBER(composite_to_texture_enabled)
IPC_STRUCT_TRAITS_MEMBER(fixed_position_compositing_enabled)
IPC_STRUCT_TRAITS_MEMBER(accelerated_2d_canvas_enabled)
- IPC_STRUCT_TRAITS_MEMBER(accelerated_drawing_enabled)
+ IPC_STRUCT_TRAITS_MEMBER(accelerated_painting_enabled)
IPC_STRUCT_TRAITS_MEMBER(accelerated_filters_enabled)
IPC_STRUCT_TRAITS_MEMBER(accelerated_plugins_enabled)
IPC_STRUCT_TRAITS_MEMBER(accelerated_layers_enabled)
@@ -231,6 +231,7 @@ IPC_STRUCT_TRAITS_BEGIN(WebPreferences)
IPC_STRUCT_TRAITS_MEMBER(allow_running_insecure_content)
IPC_STRUCT_TRAITS_MEMBER(enable_scroll_animator)
IPC_STRUCT_TRAITS_MEMBER(visual_word_movement_enabled)
+ IPC_STRUCT_TRAITS_MEMBER(per_tile_painting_enabled)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(WebMenuItem)
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
index 8b0463d..c3bb782 100644
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
@@ -170,11 +170,8 @@ const char kDisableWebSockets[] = "disable-web-sockets";
// Enable gpu-accelerated 2d canvas.
const char kEnableAccelerated2dCanvas[] = "enable-accelerated-2d-canvas";
-// Enable hardware accelerated page drawing.
-// Please note that this flag is honored only if chromium is compiled with
-// SKIA_GPU flag, which can be enabled by setting use_skia_gpu variable to 1
-// in build/features_override.gypi.
-const char kEnableAcceleratedDrawing[] = "enable-accelerated-drawing";
+// Enable hardware accelerated page painting.
+const char kEnableAcceleratedPainting[] = "enable-accelerated-painting";
// Enable gpu-accelerated SVG/W3C filters.
const char kEnableAcceleratedFilters[] = "enable-accelerated-filters";
@@ -559,4 +556,7 @@ const char kUseSystemSSL[] = "use-system-ssl";
const char kRendererCheckFalseTest[] = "renderer-check-false-test";
#endif
+// Enable per-tile page painting.
+const char kEnablePerTilePainting[] = "enable-per-tile-painting";
+
} // namespace switches
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
index 4aefed1..6a28d5d 100644
--- a/content/public/common/content_switches.h
+++ b/content/public/common/content_switches.h
@@ -65,7 +65,7 @@ extern const char kDisableSpellcheckAPI[];
CONTENT_EXPORT extern const char kDisableWebAudio[];
extern const char kDisableWebSockets[];
extern const char kEnableAccelerated2dCanvas[];
-CONTENT_EXPORT extern const char kEnableAcceleratedDrawing[];
+CONTENT_EXPORT extern const char kEnableAcceleratedPainting[];
CONTENT_EXPORT extern const char kEnableAcceleratedFilters[];
extern const char kEnableAccessibility[];
extern const char kEnableAccessibilityLogging[];
@@ -180,6 +180,8 @@ extern const char kUseSystemSSL[];
CONTENT_EXPORT extern const char kRendererCheckFalseTest[];
#endif
+extern const char kEnablePerTilePainting[];
+
} // namespace switches
#endif // CONTENT_PUBLIC_COMMON_CONTENT_SWITCHES_H_
diff --git a/webkit/glue/webpreferences.cc b/webkit/glue/webpreferences.cc
index 71cd35f..4a81945 100644
--- a/webkit/glue/webpreferences.cc
+++ b/webkit/glue/webpreferences.cc
@@ -85,7 +85,7 @@ WebPreferences::WebPreferences()
accelerated_layers_enabled(false),
accelerated_video_enabled(false),
accelerated_2d_canvas_enabled(false),
- accelerated_drawing_enabled(false),
+ accelerated_painting_enabled(false),
accelerated_filters_enabled(false),
accelerated_plugins_enabled(false),
memory_info_enabled(false),
@@ -96,7 +96,8 @@ WebPreferences::WebPreferences()
should_print_backgrounds(false),
enable_scroll_animator(false),
hixie76_websocket_protocol_enabled(false),
- visual_word_movement_enabled(false) {
+ visual_word_movement_enabled(false),
+ per_tile_painting_enabled(false) {
}
WebPreferences::~WebPreferences() {
@@ -279,8 +280,8 @@ void WebPreferences::Apply(WebView* web_view) const {
// Enable gpu-accelerated 2d canvas if requested on the command line.
settings->setAccelerated2dCanvasEnabled(accelerated_2d_canvas_enabled);
- // Enable gpu-accelerated drawing if requested on the command line.
- settings->setAcceleratedDrawingEnabled(accelerated_drawing_enabled);
+ // Enable gpu-accelerated painting if requested on the command line.
+ settings->setAcceleratedPaintingEnabled(accelerated_painting_enabled);
// Enable gpu-accelerated filters if requested on the command line.
settings->setAcceleratedFiltersEnabled(accelerated_filters_enabled);
@@ -330,5 +331,8 @@ void WebPreferences::Apply(WebView* web_view) const {
hixie76_websocket_protocol_enabled);
settings->setVisualWordMovementEnabled(visual_word_movement_enabled);
+ // Enable per-tile painting if requested on the command line.
+ settings->setPerTilePaintingEnabled(per_tile_painting_enabled);
+
WebNetworkStateNotifier::setOnLine(is_online);
}
diff --git a/webkit/glue/webpreferences.h b/webkit/glue/webpreferences.h
index a7cdfc1..8c3f70fc 100644
--- a/webkit/glue/webpreferences.h
+++ b/webkit/glue/webpreferences.h
@@ -99,7 +99,7 @@ struct WEBKIT_GLUE_EXPORT WebPreferences {
bool accelerated_layers_enabled;
bool accelerated_video_enabled;
bool accelerated_2d_canvas_enabled;
- bool accelerated_drawing_enabled;
+ bool accelerated_painting_enabled;
bool accelerated_filters_enabled;
bool accelerated_plugins_enabled;
bool memory_info_enabled;
@@ -111,6 +111,7 @@ struct WEBKIT_GLUE_EXPORT WebPreferences {
bool enable_scroll_animator;
bool hixie76_websocket_protocol_enabled;
bool visual_word_movement_enabled;
+ bool per_tile_painting_enabled;
// We try to keep the default values the same as the default values in
// chrome, except for the cases where it would require lots of extra work for
// the embedder to use the same default value.