| Index: third_party/WebKit/Source/web/WebViewImpl.cpp
|
| diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp
|
| index aef52af48e53a6930ce04d0d51d81f56ff3a8fa9..45f9ce6c28f8fa60a12f1be83543d891c62e6b91 100644
|
| --- a/third_party/WebKit/Source/web/WebViewImpl.cpp
|
| +++ b/third_party/WebKit/Source/web/WebViewImpl.cpp
|
| @@ -361,7 +361,6 @@ WebViewImpl::WebViewImpl(WebViewClient* client,
|
| m_suppressNextKeypressEvent(false),
|
| m_imeAcceptEvents(true),
|
| m_devToolsEmulator(nullptr),
|
| - m_isTransparent(false),
|
| m_tabsToLinks(false),
|
| m_layerTreeView(nullptr),
|
| m_rootLayer(nullptr),
|
| @@ -374,6 +373,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client,
|
| m_baseBackgroundColor(Color::white),
|
| m_baseBackgroundColorOverrideEnabled(false),
|
| m_baseBackgroundColorOverride(Color::transparent),
|
| + m_backgroundColorOverrideEnabled(false),
|
| m_backgroundColorOverride(Color::transparent),
|
| m_zoomFactorOverride(0),
|
| m_userGestureObserved(false),
|
| @@ -2446,8 +2446,8 @@ bool WebViewImpl::isSelectionAnchorFirst() const {
|
| }
|
|
|
| WebColor WebViewImpl::backgroundColor() const {
|
| - if (isTransparent())
|
| - return Color::transparent;
|
| + if (m_backgroundColorOverrideEnabled)
|
| + return m_backgroundColorOverride;
|
| if (!m_page)
|
| return baseBackgroundColor().rgb();
|
| if (!m_page->mainFrame())
|
| @@ -2455,6 +2455,8 @@ WebColor WebViewImpl::backgroundColor() const {
|
| if (!m_page->mainFrame()->isLocalFrame())
|
| return baseBackgroundColor().rgb();
|
| FrameView* view = m_page->deprecatedLocalMainFrame()->view();
|
| + if (!view)
|
| + return baseBackgroundColor().rgb();
|
| return view->documentBackgroundColor().rgb();
|
| }
|
|
|
| @@ -3517,26 +3519,6 @@ void WebViewImpl::hidePopups() {
|
| cancelPagePopup();
|
| }
|
|
|
| -void WebViewImpl::setIsTransparent(bool isTransparent) {
|
| - // Set any existing frames to be transparent.
|
| - Frame* frame = m_page->mainFrame();
|
| - while (frame) {
|
| - if (frame->isLocalFrame())
|
| - toLocalFrame(frame)->view()->setTransparent(isTransparent);
|
| - frame = frame->tree().traverseNext();
|
| - }
|
| -
|
| - // Future frames check this to know whether to be transparent.
|
| - m_isTransparent = isTransparent;
|
| -
|
| - if (m_layerTreeView)
|
| - m_layerTreeView->setHasTransparentBackground(this->isTransparent());
|
| -}
|
| -
|
| -bool WebViewImpl::isTransparent() const {
|
| - return m_isTransparent;
|
| -}
|
| -
|
| WebInputMethodControllerImpl* WebViewImpl::getActiveWebInputMethodController()
|
| const {
|
| return WebInputMethodControllerImpl::fromFrame(focusedLocalFrameInWidget());
|
| @@ -3584,8 +3566,11 @@ void WebViewImpl::clearBaseBackgroundColorOverride() {
|
|
|
| void WebViewImpl::updateBaseBackgroundColor() {
|
| Color color = baseBackgroundColor();
|
| - if (m_page->mainFrame() && m_page->mainFrame()->isLocalFrame())
|
| - m_page->deprecatedLocalMainFrame()->view()->setBaseBackgroundColor(color);
|
| + if (m_page->mainFrame() && m_page->mainFrame()->isLocalFrame()) {
|
| + FrameView* view = m_page->deprecatedLocalMainFrame()->view();
|
| + view->setBaseBackgroundColor(color);
|
| + view->updateBaseBackgroundColorRecursively(color);
|
| + }
|
| }
|
|
|
| void WebViewImpl::setIsActive(bool active) {
|
| @@ -3711,10 +3696,16 @@ bool WebViewImpl::useExternalPopupMenus() {
|
| }
|
|
|
| void WebViewImpl::setBackgroundColorOverride(WebColor color) {
|
| + m_backgroundColorOverrideEnabled = true;
|
| m_backgroundColorOverride = color;
|
| updateLayerTreeBackgroundColor();
|
| }
|
|
|
| +void WebViewImpl::clearBackgroundColorOverride() {
|
| + m_backgroundColorOverrideEnabled = false;
|
| + updateLayerTreeBackgroundColor();
|
| +}
|
| +
|
| void WebViewImpl::setZoomFactorOverride(float zoomFactor) {
|
| m_zoomFactorOverride = zoomFactor;
|
| setZoomLevel(zoomLevel());
|
| @@ -4024,10 +4015,7 @@ void WebViewImpl::updateLayerTreeViewport() {
|
| void WebViewImpl::updateLayerTreeBackgroundColor() {
|
| if (!m_layerTreeView)
|
| return;
|
| -
|
| - m_layerTreeView->setBackgroundColor(alphaChannel(m_backgroundColorOverride)
|
| - ? m_backgroundColorOverride
|
| - : backgroundColor());
|
| + m_layerTreeView->setBackgroundColor(backgroundColor());
|
| }
|
|
|
| void WebViewImpl::updateLayerTreeDeviceScaleFactor() {
|
|
|