Changeset 150234 in webkit
- Timestamp:
- May 16, 2013 8:14:09 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r150225 r150234 1 2013-05-16 Jaehun Lim <ljaehun.lim@samsung.com> 2 3 Frame flattening prevents <HTML> in <OBJECT> from having scrollbars 4 https://bugs.webkit.org/show_bug.cgi?id=115884 5 6 Reviewed by Antonio Gomes. 7 8 Frame flattening should be applied when the frame owner is frame or iframe. But when 9 the frame owner is object element, frame flattening prevents it from having scrollbars. 10 In this situation, we can't scroll the html document in object element. 11 12 This patch adds two helper functions to verify flattening conditions. 13 14 * fast/frames/flattening/scrolling-in-object-expected.html: Added. 15 * fast/frames/flattening/scrolling-in-object.html: Added. 16 1 17 2013-05-16 Lamarque V. Souza <Lamarque.Souza@basyskom.com> 2 18 -
trunk/Source/WebCore/ChangeLog
r150231 r150234 1 2013-05-16 Jaehun Lim <ljaehun.lim@samsung.com> 2 3 Frame flattening prevents <HTML> in <OBJECT> from having scrollbars 4 https://bugs.webkit.org/show_bug.cgi?id=115884 5 6 Reviewed by Antonio Gomes. 7 8 Frame flattening should be applied when the frame owner is frame or iframe. But when 9 the frame owner is object element, frame flattening prevents it from having scrollbars. 10 In this situation, we can't scroll the html document in object element. 11 12 This patch adds two helper functions to verify flattening conditions. 13 14 Test: fast/frames/flattening/scrolling-in-object.html 15 16 * page/FrameView.cpp: 17 (WebCore::frameFlatteningEnabled): Added. Helper to check whether flattening is enabled or not. 18 (WebCore::supportsFrameFlattening): Added. Helper to check whether the frame owner is <frame> or <iframe>. 19 (WebCore::FrameView::avoidScrollbarCreation): 20 (WebCore::FrameView::calculateScrollbarModesForLayout): Use frameFlatteningEnabled(). 21 (WebCore::FrameView::layout): Use frameFlatteningEnabled(). 22 (WebCore::FrameView::isInChildFrameWithFrameFlattening): Use frameFlatteningEnabled(). 23 1 24 2013-05-16 Patrick Gansterer <paroga@webkit.org> 2 25 -
trunk/Source/WebCore/page/FrameView.cpp
r150214 r150234 512 512 } 513 513 514 static bool frameFlatteningEnabled(Frame* frame) 515 { 516 return frame && frame->settings() && frame->settings()->frameFlatteningEnabled(); 517 } 518 519 static bool supportsFrameFlattening(Frame* frame) 520 { 521 if (!frame) 522 return false; 523 524 // Frame flattening is valid only for <frame> and <iframe>. 525 HTMLFrameOwnerElement* owner = frame->ownerElement(); 526 return owner && (owner->hasTagName(frameTag) || owner->hasTagName(iframeTag)); 527 } 528 514 529 bool FrameView::avoidScrollbarCreation() const 515 530 { … … 520 535 // our flattening policy using that. 521 536 522 if (!m_frame->ownerElement()) 523 return false; 524 525 if (!m_frame->settings() || m_frame->settings()->frameFlatteningEnabled()) 526 return true; 527 528 return false; 537 return frameFlatteningEnabled(frame()) && supportsFrameFlattening(frame()); 529 538 } 530 539 … … 737 746 Node* body = document->body(); 738 747 if (body && body->renderer()) { 739 if (body->hasTagName(framesetTag) && m_frame->settings() && !m_frame->settings()->frameFlatteningEnabled()) {748 if (body->hasTagName(framesetTag) && !frameFlatteningEnabled(frame())) { 740 749 vMode = ScrollbarAlwaysOff; 741 750 hMode = ScrollbarAlwaysOff; … … 1232 1241 Node* body = document->body(); 1233 1242 if (body && body->renderer()) { 1234 if (body->hasTagName(framesetTag) && m_frame->settings() && !m_frame->settings()->frameFlatteningEnabled()) {1243 if (body->hasTagName(framesetTag) && !frameFlatteningEnabled(frame())) { 1235 1244 body->renderer()->setChildNeedsLayout(true); 1236 1245 } else if (body->hasTagName(bodyTag)) { … … 3395 3404 } 3396 3405 3397 if (! m_frame->settings() || !m_frame->settings()->frameFlatteningEnabled())3406 if (!frameFlatteningEnabled(frame())) 3398 3407 return false; 3399 3408
Note: See TracChangeset
for help on using the changeset viewer.