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

Side by Side Diff: Source/WebCore/rendering/RenderFlowThread.cpp

Issue 9371032: Merge 106694 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1025/
Patch Set: Created 8 years, 10 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/rendering/RenderFlexibleBox.cpp ('k') | Source/WebCore/rendering/RenderRegion.h » ('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 2011 Adobe Systems Incorporated. All Rights Reserved. 2 * Copyright 2011 Adobe Systems Incorporated. All Rights Reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above 8 * 1. Redistributions of source code must retain the above
9 * copyright notice, this list of conditions and the following 9 * copyright notice, this list of conditions and the following
10 * disclaimer. 10 * disclaimer.
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 } 197 }
198 198
199 renderRegion->setIsValid(true); 199 renderRegion->setIsValid(true);
200 200
201 invalidateRegions(); 201 invalidateRegions();
202 } 202 }
203 203
204 void RenderFlowThread::removeRegionFromThread(RenderRegion* renderRegion) 204 void RenderFlowThread::removeRegionFromThread(RenderRegion* renderRegion)
205 { 205 {
206 ASSERT(renderRegion); 206 ASSERT(renderRegion);
207
207 m_regionRangeMap.clear(); 208 m_regionRangeMap.clear();
208 m_regionList.remove(renderRegion); 209 m_regionList.remove(renderRegion);
209 210
210 if (renderRegion->parentFlowThread()) { 211 if (renderRegion->parentFlowThread()) {
211 if (!renderRegion->isValid()) { 212 if (!renderRegion->isValid()) {
212 renderRegion->parentFlowThread()->m_observerThreadsSet.remove(this); 213 renderRegion->parentFlowThread()->m_observerThreadsSet.remove(this);
213 // No need to invalidate the regions rectangles. The removed region 214 // No need to invalidate the regions rectangles. The removed region
214 // was not taken into account. Just return here. 215 // was not taken into account. Just return here.
215 return; 216 return;
216 } 217 }
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 } 622 }
622 623
623 void RenderFlowThread::removeRenderBoxRegionInfo(RenderBox* box) 624 void RenderFlowThread::removeRenderBoxRegionInfo(RenderBox* box)
624 { 625 {
625 if (!hasRegions()) 626 if (!hasRegions())
626 return; 627 return;
627 628
628 RenderRegion* startRegion; 629 RenderRegion* startRegion;
629 RenderRegion* endRegion; 630 RenderRegion* endRegion;
630 getRegionRangeForBox(box, startRegion, endRegion); 631 getRegionRangeForBox(box, startRegion, endRegion);
631 632
632 for (RenderRegionList::iterator iter = m_regionList.find(startRegion); iter != m_regionList.end(); ++iter) { 633 for (RenderRegionList::iterator iter = m_regionList.find(startRegion); iter != m_regionList.end(); ++iter) {
633 RenderRegion* region = *iter; 634 RenderRegion* region = *iter;
634 if (!region->isValid()) 635 if (!region->isValid())
635 continue; 636 continue;
636 region->removeRenderBoxRegionInfo(box); 637 region->removeRenderBoxRegionInfo(box);
637 if (region == endRegion) 638 if (region == endRegion)
638 break; 639 break;
639 } 640 }
640 641
642 #ifndef NDEBUG
643 // We have to make sure we did not left any boxes with region info attached in regions.
644 for (RenderRegionList::iterator iter = m_regionList.begin(); iter != m_regio nList.end(); ++iter) {
645 RenderRegion* region = *iter;
646 if (!region->isValid())
647 continue;
648 ASSERT(!region->renderBoxRegionInfo(box));
649 }
650 #endif
651
641 m_regionRangeMap.remove(box); 652 m_regionRangeMap.remove(box);
642 } 653 }
643 654
644 bool RenderFlowThread::logicalWidthChangedInRegions(const RenderBlock* block, La youtUnit offsetFromLogicalTopOfFirstPage) 655 bool RenderFlowThread::logicalWidthChangedInRegions(const RenderBlock* block, La youtUnit offsetFromLogicalTopOfFirstPage)
645 { 656 {
646 if (!hasRegions() || block == this) // Not necessary, since if any region ch anges, we do a full pagination relayout anyway. 657 if (!hasRegions() || block == this) // Not necessary, since if any region ch anges, we do a full pagination relayout anyway.
647 return false; 658 return false;
648 659
649 RenderRegion* startRegion; 660 RenderRegion* startRegion;
650 RenderRegion* endRegion; 661 RenderRegion* endRegion;
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 829
819 WebKitNamedFlow* RenderFlowThread::ensureNamedFlow() 830 WebKitNamedFlow* RenderFlowThread::ensureNamedFlow()
820 { 831 {
821 if (!m_namedFlow) 832 if (!m_namedFlow)
822 m_namedFlow = WebKitNamedFlow::create(); 833 m_namedFlow = WebKitNamedFlow::create();
823 834
824 return m_namedFlow.get(); 835 return m_namedFlow.get();
825 } 836 }
826 837
827 } // namespace WebCore 838 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/WebCore/rendering/RenderFlexibleBox.cpp ('k') | Source/WebCore/rendering/RenderRegion.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698