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 06929e6b8a22cd9333fdd33c337cc241dab11422..1337be9f5b8176b0cfdc5bf6f088694cbb359504 100644 |
--- a/content/renderer/gpu/render_widget_compositor.cc |
+++ b/content/renderer/gpu/render_widget_compositor.cc |
@@ -77,6 +77,21 @@ bool GetSwitchValueAsFloat( |
} // namespace |
+static SkColor StringToSkColor(const std::string& str, SkColor& color) { |
aelias_OOO_until_Jul13
2013/06/28 22:07:58
Did you mean to change the return value to 'bool'?
wjmaclean
2013/06/29 01:00:38
Gah! Yes, this should be bool!! I forgot SkColor r
|
+ 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]); |
aelias_OOO_until_Jul13
2013/06/28 22:07:58
Should be "return true;" after this?
wjmaclean
2013/06/29 01:00:38
Yes, fixed.
|
+ } |
+ |
+ return false; |
+} |
+ |
// static |
scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
RenderWidget* widget) { |
@@ -271,12 +286,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 = 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>(); |