Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Side by Side Diff: Source/core/page/FrameView.cpp

Issue 15973002: Remove NonCompositedContentHost -- Take 2 (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase, update comments, add FrameView::didChangeBackgroundOpaqueness Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/page/FrameView.h ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999 Lars Knoll <knoll@kde.org> 3 * 1999 Lars Knoll <knoll@kde.org>
4 * 1999 Antti Koivisto <koivisto@kde.org> 4 * 1999 Antti Koivisto <koivisto@kde.org>
5 * 2000 Dirk Mueller <mueller@kde.org> 5 * 2000 Dirk Mueller <mueller@kde.org>
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
9 * Copyright (C) 2009 Google Inc. All rights reserved. 9 * Copyright (C) 2009 Google Inc. All rights reserved.
10 * 10 *
(...skipping 2025 matching lines...) Expand 10 before | Expand all | Expand 10 after
2036 } 2036 }
2037 2037
2038 bool FrameView::isTransparent() const 2038 bool FrameView::isTransparent() const
2039 { 2039 {
2040 return m_isTransparent; 2040 return m_isTransparent;
2041 } 2041 }
2042 2042
2043 void FrameView::setTransparent(bool isTransparent) 2043 void FrameView::setTransparent(bool isTransparent)
2044 { 2044 {
2045 m_isTransparent = isTransparent; 2045 m_isTransparent = isTransparent;
2046 didChangeBackgroundOpaqueness();
2046 } 2047 }
2047 2048
2048 bool FrameView::hasOpaqueBackground() const 2049 bool FrameView::hasOpaqueBackground() const
2049 { 2050 {
2050 return !m_isTransparent && !m_baseBackgroundColor.hasAlpha(); 2051 return !m_isTransparent && !m_baseBackgroundColor.hasAlpha();
2051 } 2052 }
2052 2053
2053 Color FrameView::baseBackgroundColor() const 2054 Color FrameView::baseBackgroundColor() const
2054 { 2055 {
2055 return m_baseBackgroundColor; 2056 return m_baseBackgroundColor;
2056 } 2057 }
2057 2058
2058 void FrameView::setBaseBackgroundColor(const Color& backgroundColor) 2059 void FrameView::setBaseBackgroundColor(const Color& backgroundColor)
2059 { 2060 {
2060 if (!backgroundColor.isValid()) 2061 if (!backgroundColor.isValid())
2061 m_baseBackgroundColor = Color::white; 2062 m_baseBackgroundColor = Color::white;
2062 else 2063 else
2063 m_baseBackgroundColor = backgroundColor; 2064 m_baseBackgroundColor = backgroundColor;
2064 2065
2066 didChangeBackgroundOpaqueness();
2065 recalculateScrollbarOverlayStyle(); 2067 recalculateScrollbarOverlayStyle();
2066 } 2068 }
2067 2069
2068 void FrameView::updateBackgroundRecursively(const Color& backgroundColor, bool t ransparent) 2070 void FrameView::updateBackgroundRecursively(const Color& backgroundColor, bool t ransparent)
2069 { 2071 {
2070 for (Frame* frame = m_frame.get(); frame; frame = frame->tree()->traverseNex t(m_frame.get())) { 2072 for (Frame* frame = m_frame.get(); frame; frame = frame->tree()->traverseNex t(m_frame.get())) {
2071 if (FrameView* view = frame->view()) { 2073 if (FrameView* view = frame->view()) {
2072 view->setTransparent(transparent); 2074 view->setTransparent(transparent);
2073 view->setBaseBackgroundColor(backgroundColor); 2075 view->setBaseBackgroundColor(backgroundColor);
2074 } 2076 }
2075 } 2077 }
2076 } 2078 }
2077 2079
2080 void FrameView::didChangeBackgroundOpaqueness()
jamesr 2013/05/28 23:03:52 I think this function would be clearer if this jus
2081 {
2082 if (!m_frame->page() || m_frame->page()->mainFrame() != m_frame.get())
2083 return;
2084 if (!renderView() || !renderView()->layer()->backing())
2085 return;
2086 if (GraphicsLayer* layer = renderView()->layer()->backing()->graphicsLayer() )
2087 layer->setContentsOpaque(hasOpaqueBackground());
2088 }
2089
2078 bool FrameView::shouldUpdateWhileOffscreen() const 2090 bool FrameView::shouldUpdateWhileOffscreen() const
2079 { 2091 {
2080 return m_shouldUpdateWhileOffscreen; 2092 return m_shouldUpdateWhileOffscreen;
2081 } 2093 }
2082 2094
2083 void FrameView::setShouldUpdateWhileOffscreen(bool shouldUpdateWhileOffscreen) 2095 void FrameView::setShouldUpdateWhileOffscreen(bool shouldUpdateWhileOffscreen)
2084 { 2096 {
2085 m_shouldUpdateWhileOffscreen = shouldUpdateWhileOffscreen; 2097 m_shouldUpdateWhileOffscreen = shouldUpdateWhileOffscreen;
2086 } 2098 }
2087 2099
(...skipping 1315 matching lines...) Expand 10 before | Expand all | Expand 10 after
3403 } 3415 }
3404 3416
3405 AXObjectCache* FrameView::axObjectCache() const 3417 AXObjectCache* FrameView::axObjectCache() const
3406 { 3418 {
3407 if (frame() && frame()->document()) 3419 if (frame() && frame()->document())
3408 return frame()->document()->existingAXObjectCache(); 3420 return frame()->document()->existingAXObjectCache();
3409 return 0; 3421 return 0;
3410 } 3422 }
3411 3423
3412 } // namespace WebCore 3424 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/page/FrameView.h ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698