| Index: chrome/browser/ui/libgtkui/gtk_util.cc
|
| diff --git a/chrome/browser/ui/libgtkui/gtk_util.cc b/chrome/browser/ui/libgtkui/gtk_util.cc
|
| index 826af71dd3016bc2c85745439b350af735af74da..81fefa61d5249e56a8007adbb555deca41fcf528 100644
|
| --- a/chrome/browser/ui/libgtkui/gtk_util.cc
|
| +++ b/chrome/browser/ui/libgtkui/gtk_util.cc
|
| @@ -394,6 +394,13 @@ class PixelSurface {
|
| cairo_t* cairo_;
|
| };
|
|
|
| +void RenderBackground(cairo_t* cr, GtkStyleContext* context) {
|
| + if (!context)
|
| + return;
|
| + RenderBackground(cr, gtk_style_context_get_parent(context));
|
| + gtk_render_background(context, cr, 0, 0, 1, 1);
|
| +}
|
| +
|
| SkColor GetBgColor(const char* css_selector) {
|
| // Backgrounds are more general than solid colors (eg. gradients),
|
| // but chromium requires us to boil this down to one color. We
|
| @@ -404,7 +411,7 @@ SkColor GetBgColor(const char* css_selector) {
|
| auto context = GetStyleContextFromCss(css_selector);
|
| RemoveBorders(context);
|
| PixelSurface surface;
|
| - gtk_render_background(context, surface.cairo(), 0, 0, 1, 1);
|
| + RenderBackground(surface.cairo(), context);
|
| return surface.GetPixelValue();
|
| }
|
|
|
| @@ -426,6 +433,7 @@ SkColor GetBorderColor(const char* css_selector) {
|
|
|
| AddBorders(context);
|
| PixelSurface surface;
|
| + RenderBackground(surface.cairo(), context);
|
| gtk_render_frame(context, surface.cairo(), 0, 0, 1, 1);
|
| return surface.GetPixelValue();
|
| }
|
|
|