summaryrefslogtreecommitdiff
path: root/Source/WebCore/page/FrameView.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-05-11 09:43:24 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-05-11 09:43:24 +0200
commit1b914638db989aaa98631a1c1e02c7b2d44805d8 (patch)
tree87f4fd2c7b38db320079a5de8877890d2ca3c485 /Source/WebCore/page/FrameView.cpp
parent2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (diff)
downloadqtwebkit-1b914638db989aaa98631a1c1e02c7b2d44805d8.tar.gz
Imported WebKit commit 9a52e27980f47e8b0d8f8b7cc0fd7b5741bceb92 (http://svn.webkit.org/repository/webkit/trunk@116736)
New snapshot to include QDeclarative* -> QQml* build fixes
Diffstat (limited to 'Source/WebCore/page/FrameView.cpp')
-rw-r--r--Source/WebCore/page/FrameView.cpp54
1 files changed, 19 insertions, 35 deletions
diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp
index bbe2e8577..25531b08b 100644
--- a/Source/WebCore/page/FrameView.cpp
+++ b/Source/WebCore/page/FrameView.cpp
@@ -482,12 +482,12 @@ PassRefPtr<Scrollbar> FrameView::createScrollbar(ScrollbarOrientation orientatio
// Try the <body> element first as a scrollbar source.
Element* body = doc ? doc->body() : 0;
if (body && body->renderer() && body->renderer()->style()->hasPseudoStyle(SCROLLBAR))
- return RenderScrollbar::createCustomScrollbar(this, orientation, body->renderer()->enclosingBox());
+ return RenderScrollbar::createCustomScrollbar(this, orientation, body);
// If the <body> didn't have a custom style, then the root element might.
Element* docElement = doc ? doc->documentElement() : 0;
if (docElement && docElement->renderer() && docElement->renderer()->style()->hasPseudoStyle(SCROLLBAR))
- return RenderScrollbar::createCustomScrollbar(this, orientation, docElement->renderBox());
+ return RenderScrollbar::createCustomScrollbar(this, orientation, docElement);
// If we have an owning iframe/frame element, then it can set the custom scrollbar also.
RenderPart* frameRenderer = m_frame->ownerRenderer();
@@ -2161,7 +2161,7 @@ void FrameView::unscheduleRelayout()
}
#if ENABLE(REQUEST_ANIMATION_FRAME)
-void FrameView::serviceScriptedAnimations(double monotonicAnimationStartTime)
+void FrameView::serviceScriptedAnimations(DOMTimeStamp time)
{
for (Frame* frame = m_frame.get(); frame; frame = frame->tree()->traverseNext()) {
frame->view()->serviceScrollAnimations();
@@ -2173,7 +2173,7 @@ void FrameView::serviceScriptedAnimations(double monotonicAnimationStartTime)
documents.append(frame->document());
for (size_t i = 0; i < documents.size(); ++i)
- documents[i]->serviceScriptedAnimations(monotonicAnimationStartTime);
+ documents[i]->serviceScriptedAnimations(time);
}
#endif
@@ -2279,7 +2279,7 @@ void FrameView::updateWidget(RenderEmbeddedObject* object)
return;
// No need to update if it's already crashed or known to be missing.
- if (object->pluginCrashedOrWasMissing())
+ if (object->showsUnavailablePluginIndicator())
return;
// FIXME: This could turn into a real virtual dispatch if we defined
@@ -2558,30 +2558,31 @@ IntRect FrameView::windowClipRect(bool clipToContents) const
if (!m_frame || !m_frame->ownerElement())
return clipRect;
- // Take our owner element and get the clip rect from the enclosing layer.
- Element* elt = m_frame->ownerElement();
- // The renderer can sometimes be null when style="display:none" interacts
- // with external content and plugins.
- RenderLayer* layer = elt->renderer() ? elt->renderer()->enclosingLayer() : 0;
- if (!layer)
- return clipRect;
- FrameView* parentView = elt->document()->view();
- clipRect.intersect(parentView->windowClipRectForLayer(layer, true));
+ // Take our owner element and get its clip rect.
+ HTMLFrameOwnerElement* ownerElement = m_frame->ownerElement();
+ FrameView* parentView = ownerElement->document()->view();
+ clipRect.intersect(parentView->windowClipRectForFrameOwner(ownerElement, true));
return clipRect;
}
-IntRect FrameView::windowClipRectForLayer(const RenderLayer* layer, bool clipToLayerContents) const
+IntRect FrameView::windowClipRectForFrameOwner(const HTMLFrameOwnerElement* ownerElement, bool clipToLayerContents) const
{
+ // The renderer can sometimes be null when style="display:none" interacts
+ // with external content and plugins.
+ if (!ownerElement->renderer())
+ return windowClipRect();
+
// If we have no layer, just return our window clip rect.
- if (!layer)
+ const RenderLayer* enclosingLayer = ownerElement->renderer()->enclosingLayer();
+ if (!enclosingLayer)
return windowClipRect();
// Apply the clip from the layer.
IntRect clipRect;
if (clipToLayerContents)
- clipRect = pixelSnappedIntRect(layer->childrenClipRect());
+ clipRect = pixelSnappedIntRect(enclosingLayer->childrenClipRect());
else
- clipRect = pixelSnappedIntRect(layer->selfClipRect());
+ clipRect = pixelSnappedIntRect(enclosingLayer->selfClipRect());
clipRect = contentsToWindow(clipRect);
return intersection(clipRect, windowClipRect());
}
@@ -2912,23 +2913,6 @@ bool FrameView::hasCustomScrollbars() const
return false;
}
-void FrameView::clearOwningRendererForCustomScrollbars(RenderBox* box)
-{
- const HashSet<RefPtr<Widget> >* viewChildren = children();
- HashSet<RefPtr<Widget> >::const_iterator end = viewChildren->end();
- for (HashSet<RefPtr<Widget> >::const_iterator current = viewChildren->begin(); current != end; ++current) {
- Widget* widget = current->get();
- if (widget->isScrollbar()) {
- Scrollbar* scrollbar = static_cast<Scrollbar*>(widget);
- if (scrollbar->isCustomScrollbar()) {
- RenderScrollbar* customScrollbar = toRenderScrollbar(scrollbar);
- if (customScrollbar->owningRenderer() == box)
- customScrollbar->clearOwningRenderer();
- }
- }
- }
-}
-
FrameView* FrameView::parentFrameView() const
{
if (Widget* parentView = parent()) {