Index: content/renderer/gpu/render_widget_compositor.cc |
diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc |
index f5914f50dfe6bacbe8d932884590825d332e66a9..8d00dfda5c6235f06ac23e4c9143c63dfbec6e2b 100644 |
--- a/content/renderer/gpu/render_widget_compositor.cc |
+++ b/content/renderer/gpu/render_widget_compositor.cc |
@@ -74,6 +74,22 @@ bool GetSwitchValueAsFloat( |
} |
} |
+bool StringToSkColor(const std::string& str, SkColor& color) { |
+ std::string prefix = str.substr(0,2); |
+ int offset = (prefix == "0x" || prefix == "0X") ? 2 : 0; |
+ |
+ std::vector<uint8> values; |
+ if (base::HexStringToBytes(str.substr(offset), &values)) { |
+ if (values.size() != 4) |
+ return false; |
+ |
+ color = SkColorSetARGB(values[0], values[1], values[2], values[3]); |
+ return true; |
+ } |
+ |
+ return false; |
+} |
+ |
} // namespace |
@@ -269,12 +285,29 @@ scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
settings.can_use_lcd_text = false; |
settings.max_partial_texture_updates = 0; |
settings.use_linear_fade_scrollbar_animator = true; |
- settings.solid_color_scrollbars = true; |
- settings.solid_color_scrollbar_color = SkColorSetARGB(128, 128, 128, 128); |
- settings.solid_color_scrollbar_thickness_dip = 3; |
settings.highp_threshold_min = 2048; |
#endif |
+ if (cmd->HasSwitch(cc::switches::kForceSolidColorScrollbars)) |
+ settings.force_solid_color_scrollbars = true; |
+ |
+ if (cmd->HasSwitch(cc::switches::kSolidColorScrollbarThickness)) { |
+ std::string str = |
+ cmd->GetSwitchValueASCII(cc::switches::kSolidColorScrollbarThickness); |
+ int thickness; |
+ if (base::StringToInt(str, &thickness)) |
+ settings.solid_color_scrollbar_thickness_dip = std::max(0, thickness); |
+ } |
+ |
+ if (cmd->HasSwitch(cc::switches::kSolidColorScrollbarColor)) { |
+ std::string str = |
+ cmd->GetSwitchValueASCII(cc::switches::kSolidColorScrollbarColor); |
+ |
+ SkColor scrollbar_color; |
+ if (StringToSkColor(str, scrollbar_color)) |
+ settings.solid_color_scrollbar_color = scrollbar_color; |
+ } |
+ |
if (!compositor->initialize(settings)) |
return scoped_ptr<RenderWidgetCompositor>(); |