Chromium Code Reviews| 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..8317b7c018557593327e7a9ad20d0229c5329096 100644 |
| --- a/content/renderer/gpu/render_widget_compositor.cc |
| +++ b/content/renderer/gpu/render_widget_compositor.cc |
| @@ -77,6 +77,22 @@ bool GetSwitchValueAsFloat( |
| } // namespace |
| +static bool StringToSkColor(const std::string& str, SkColor& color) { |
|
jochen (gone - plz use gerrit)
2013/06/30 08:13:07
nit. move into the anonymous namespace instead of
wjmaclean
2013/07/02 13:50:31
Done.
|
| + 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; |
| +} |
| + |
| // static |
| scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
| RenderWidget* widget) { |
| @@ -271,12 +287,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)) |
|
jochen (gone - plz use gerrit)
2013/06/30 08:13:07
what happens if the thickness is negative or zero?
wjmaclean
2013/07/02 13:50:31
Done.
Change so that if the user enters a negativ
|
| + 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>(); |