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

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

Issue 10442005: Merge 116476 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1132/
Patch Set: Created 8 years, 7 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
« no previous file with comments | « Source/WebCore/page/FrameView.h ('k') | Source/WebCore/rendering/RenderBox.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 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 } 475 }
476 476
477 PassRefPtr<Scrollbar> FrameView::createScrollbar(ScrollbarOrientation orientatio n) 477 PassRefPtr<Scrollbar> FrameView::createScrollbar(ScrollbarOrientation orientatio n)
478 { 478 {
479 // FIXME: We need to update the scrollbar dynamically as documents change (o r as doc elements and bodies get discovered that have custom styles). 479 // FIXME: We need to update the scrollbar dynamically as documents change (o r as doc elements and bodies get discovered that have custom styles).
480 Document* doc = m_frame->document(); 480 Document* doc = m_frame->document();
481 481
482 // Try the <body> element first as a scrollbar source. 482 // Try the <body> element first as a scrollbar source.
483 Element* body = doc ? doc->body() : 0; 483 Element* body = doc ? doc->body() : 0;
484 if (body && body->renderer() && body->renderer()->style()->hasPseudoStyle(SC ROLLBAR)) 484 if (body && body->renderer() && body->renderer()->style()->hasPseudoStyle(SC ROLLBAR))
485 return RenderScrollbar::createCustomScrollbar(this, orientation, body->r enderer()->enclosingBox()); 485 return RenderScrollbar::createCustomScrollbar(this, orientation, body);
486 486
487 // If the <body> didn't have a custom style, then the root element might. 487 // If the <body> didn't have a custom style, then the root element might.
488 Element* docElement = doc ? doc->documentElement() : 0; 488 Element* docElement = doc ? doc->documentElement() : 0;
489 if (docElement && docElement->renderer() && docElement->renderer()->style()- >hasPseudoStyle(SCROLLBAR)) 489 if (docElement && docElement->renderer() && docElement->renderer()->style()- >hasPseudoStyle(SCROLLBAR))
490 return RenderScrollbar::createCustomScrollbar(this, orientation, docElem ent->renderBox()); 490 return RenderScrollbar::createCustomScrollbar(this, orientation, docElem ent);
491 491
492 // If we have an owning iframe/frame element, then it can set the custom scr ollbar also. 492 // If we have an owning iframe/frame element, then it can set the custom scr ollbar also.
493 RenderPart* frameRenderer = m_frame->ownerRenderer(); 493 RenderPart* frameRenderer = m_frame->ownerRenderer();
494 if (frameRenderer && frameRenderer->style()->hasPseudoStyle(SCROLLBAR)) 494 if (frameRenderer && frameRenderer->style()->hasPseudoStyle(SCROLLBAR))
495 return RenderScrollbar::createCustomScrollbar(this, orientation, 0, m_fr ame.get()); 495 return RenderScrollbar::createCustomScrollbar(this, orientation, 0, m_fr ame.get());
496 496
497 // Nobody set a custom style, so we just use a native scrollbar. 497 // Nobody set a custom style, so we just use a native scrollbar.
498 return ScrollView::createScrollbar(orientation); 498 return ScrollView::createScrollbar(orientation);
499 } 499 }
500 500
(...skipping 2404 matching lines...) Expand 10 before | Expand all | Expand 10 after
2905 } else if (widget->isScrollbar()) { 2905 } else if (widget->isScrollbar()) {
2906 Scrollbar* scrollbar = static_cast<Scrollbar*>(widget); 2906 Scrollbar* scrollbar = static_cast<Scrollbar*>(widget);
2907 if (scrollbar->isCustomScrollbar()) 2907 if (scrollbar->isCustomScrollbar())
2908 return true; 2908 return true;
2909 } 2909 }
2910 } 2910 }
2911 2911
2912 return false; 2912 return false;
2913 } 2913 }
2914 2914
2915 void FrameView::clearOwningRendererForCustomScrollbars(RenderBox* box)
2916 {
2917 const HashSet<RefPtr<Widget> >* viewChildren = children();
2918 HashSet<RefPtr<Widget> >::const_iterator end = viewChildren->end();
2919 for (HashSet<RefPtr<Widget> >::const_iterator current = viewChildren->begin( ); current != end; ++current) {
2920 Widget* widget = current->get();
2921 if (widget->isScrollbar()) {
2922 Scrollbar* scrollbar = static_cast<Scrollbar*>(widget);
2923 if (scrollbar->isCustomScrollbar()) {
2924 RenderScrollbar* customScrollbar = toRenderScrollbar(scrollbar);
2925 if (customScrollbar->owningRenderer() == box)
2926 customScrollbar->clearOwningRenderer();
2927 }
2928 }
2929 }
2930 }
2931
2932 FrameView* FrameView::parentFrameView() const 2915 FrameView* FrameView::parentFrameView() const
2933 { 2916 {
2934 if (Widget* parentView = parent()) { 2917 if (Widget* parentView = parent()) {
2935 if (parentView->isFrameView()) 2918 if (parentView->isFrameView())
2936 return static_cast<FrameView*>(parentView); 2919 return static_cast<FrameView*>(parentView);
2937 } 2920 }
2938 return 0; 2921 return 0;
2939 } 2922 }
2940 2923
2941 bool FrameView::isInChildFrameWithFrameFlattening() 2924 bool FrameView::isInChildFrameWithFrameFlattening()
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after
3568 } 3551 }
3569 3552
3570 AXObjectCache* FrameView::axObjectCache() const 3553 AXObjectCache* FrameView::axObjectCache() const
3571 { 3554 {
3572 if (frame() && frame()->document() && frame()->document()->axObjectCacheExis ts()) 3555 if (frame() && frame()->document() && frame()->document()->axObjectCacheExis ts())
3573 return frame()->document()->axObjectCache(); 3556 return frame()->document()->axObjectCache();
3574 return 0; 3557 return 0;
3575 } 3558 }
3576 3559
3577 } // namespace WebCore 3560 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/WebCore/page/FrameView.h ('k') | Source/WebCore/rendering/RenderBox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698