| Index: Source/web/WebViewImpl.cpp
|
| diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp
|
| index e525031ce93686e42f3caf18ad834c0a7c5ad6bd..acc2f8a8a9f01728edfe29b2b62b5b159d4934aa 100644
|
| --- a/Source/web/WebViewImpl.cpp
|
| +++ b/Source/web/WebViewImpl.cpp
|
| @@ -138,7 +138,6 @@
|
| #include "core/platform/chromium/KeyboardCodes.h"
|
| #include "core/platform/chromium/TraceEvent.h"
|
| #include "core/platform/chromium/support/WebActiveGestureAnimation.h"
|
| -#include "core/platform/graphics/Color.h"
|
| #include "core/platform/graphics/ColorSpace.h"
|
| #include "core/platform/graphics/Extensions3D.h"
|
| #include "core/platform/graphics/FontCache.h"
|
| @@ -427,6 +426,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client)
|
| , m_showDebugBorders(false)
|
| , m_continuousPaintingEnabled(false)
|
| , m_showScrollBottleneckRects(false)
|
| + , m_baseBackgroundColor(Color::white)
|
| {
|
| Page::PageClients pageClients;
|
| pageClients.chromeClient = &m_chromeClientImpl;
|
| @@ -2459,11 +2459,11 @@ WebColor WebViewImpl::backgroundColor() const
|
| if (isTransparent())
|
| return Color::transparent;
|
| if (!m_page)
|
| - return Color::white;
|
| + return m_baseBackgroundColor.rgb();
|
| FrameView* view = m_page->mainFrame()->view();
|
| Color backgroundColor = view->documentBackgroundColor();
|
| if (!backgroundColor.isValid())
|
| - return Color::white;
|
| + return m_baseBackgroundColor.rgb();
|
| return backgroundColor.rgb();
|
| }
|
|
|
| @@ -3571,6 +3571,20 @@ void WebViewImpl::setIsTransparent(bool isTransparent)
|
| m_isTransparent = isTransparent;
|
| }
|
|
|
| +void WebViewImpl::setBaseBackgroundColor(WebColor color)
|
| +{
|
| + Color c(static_cast<RGBA32>(color));
|
| + if (m_baseBackgroundColor == c)
|
| + return;
|
| +
|
| + m_baseBackgroundColor = c;
|
| +
|
| + m_page->mainFrame()->view()->updateBackgroundRecursively(c, m_isTransparent);
|
| +
|
| + if (m_layerTreeView)
|
| + m_layerTreeView->setBackgroundColor(backgroundColor());
|
| +}
|
| +
|
| bool WebViewImpl::isTransparent() const
|
| {
|
| return m_isTransparent;
|
|
|