| 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 073fd94702d908912e0ea6bccc215fb88555156e..adb998f0666f096766da8f39439dc7d22ba10688 100644
|
| --- a/third_party/WebKit/Source/web/WebViewImpl.cpp
|
| +++ b/third_party/WebKit/Source/web/WebViewImpl.cpp
|
| @@ -359,7 +359,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),
|
| @@ -372,6 +371,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),
|
| @@ -2438,8 +2438,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())
|
| @@ -2447,6 +2447,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();
|
| }
|
|
|
| @@ -3509,26 +3511,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());
|
| @@ -3576,8 +3558,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) {
|
| @@ -3703,10 +3688,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());
|
| @@ -4027,10 +4018,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() {
|
|
|