WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
81685
[New Multicolumn] Add RenderMultiColumnFlowThread class and refactor the base class
https://bugs.webkit.org/show_bug.cgi?id=81685
Summary
[New Multicolumn] Add RenderMultiColumnFlowThread class and refactor the base...
Dave Hyatt
Reported
2012-03-20 11:26:30 PDT
Add RenderMultiColumnFlowThread class. This will handle holding the content that should be part of the flow thread.
Attachments
Patch
(13.87 KB, patch)
2012-03-20 11:28 PDT
,
Dave Hyatt
no flags
Details
Formatted Diff
Diff
Patch
(109.95 KB, patch)
2012-03-23 13:56 PDT
,
Dave Hyatt
no flags
Details
Formatted Diff
Diff
Patch that should pass style check
(109.98 KB, patch)
2012-03-23 14:09 PDT
,
Dave Hyatt
webkit.review.bot
: commit-queue-
Details
Formatted Diff
Diff
Archive of layout-test-results from ec2-cr-linux-01
(18.20 MB, application/zip)
2012-03-23 15:28 PDT
,
WebKit Review Bot
no flags
Details
Patch
(123.33 KB, patch)
2012-03-28 09:48 PDT
,
Dave Hyatt
no flags
Details
Formatted Diff
Diff
Patch
(123.36 KB, patch)
2012-03-28 12:24 PDT
,
Dave Hyatt
jchaffraix
: review+
webkit.review.bot
: commit-queue-
Details
Formatted Diff
Diff
Archive of layout-test-results from ec2-cr-linux-02
(10.10 MB, application/zip)
2012-03-28 14:40 PDT
,
WebKit Review Bot
no flags
Details
Show Obsolete
(5)
View All
Add attachment
proposed patch, testcase, etc.
Dave Hyatt
Comment 1
2012-03-20 11:28:30 PDT
Created
attachment 132863
[details]
Patch
WebKit Review Bot
Comment 2
2012-03-20 11:31:21 PDT
Attachment 132863
[details]
did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/CMakeLists.txt', u'Source/W..." exit_code: 1 Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp:27: You should add a blank line after implementation file's own header. [build/include_order] [4] Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp:41: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 2 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
Dimitri Glazkov (Google)
Comment 3
2012-03-20 11:51:55 PDT
Comment on
attachment 132863
[details]
Patch stubbity-stub.
Dave Hyatt
Comment 4
2012-03-23 13:56:11 PDT
Created
attachment 133552
[details]
Patch
WebKit Review Bot
Comment 5
2012-03-23 13:59:47 PDT
Attachment 133552
[details]
did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'LayoutTests/ChangeLog', u'LayoutTests/plat..." exit_code: 1 Source/WebCore/ChangeLog:13: You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible. [changelog/nonewtests] [5] Source/WebCore/rendering/RenderNamedFlowThread.cpp:27: You should add a blank line after implementation file's own header. [build/include_order] [4] Source/WebCore/rendering/RenderView.cpp:34: Alphabetical sorting problem. [build/include_order] [4] Source/WebCore/rendering/RenderObject.cpp:54: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 4 in 62 files If any of these errors are false positives, please file a bug against check-webkit-style.
Dave Hyatt
Comment 6
2012-03-23 14:09:23 PDT
Created
attachment 133555
[details]
Patch that should pass style check
WebKit Review Bot
Comment 7
2012-03-23 15:28:40 PDT
Comment on
attachment 133555
[details]
Patch that should pass style check
Attachment 133555
[details]
did not pass chromium-ews (chromium-xvfb): Output:
http://queues.webkit.org/results/12114876
New failing tests: fast/repaint/region-painting-invalidation.html fast/repaint/overflow-flipped-writing-mode-block-in-regions.html fast/repaint/region-painting-via-layout.html
WebKit Review Bot
Comment 8
2012-03-23 15:28:50 PDT
Created
attachment 133572
[details]
Archive of layout-test-results from ec2-cr-linux-01 The attached test failures were seen while running run-webkit-tests on the chromium-ews. Bot: ec2-cr-linux-01 Port: <class 'webkitpy.common.config.ports.ChromiumXVFBPort'> Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick
Julien Chaffraix
Comment 9
2012-03-23 18:52:56 PDT
Comment on
attachment 133555
[details]
Patch that should pass style check View in context:
https://bugs.webkit.org/attachment.cgi?id=133555&action=review
I won't comment on the CSS region specific details as I don't have enough knowledge. As far as the refactoring goes, it's pretty neat.
> Source/WebCore/rendering/RenderFlowThread.h:73 > + virtual void addRegionToThread(RenderRegion*); > + virtual void removeRegionFromThread(RenderRegion*);
It's sad that we don't share any of the implementation of those functions between the 2 classes. Looking at RenderNamedFlowThread, I would have expected the low-level plumbing to go through this class' implementation but that's not the case. This makes me wonder if they shouldn't be pure virtual, pushed to the 2 child classes and the pure virtual renderName() removed.
> Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp:29 > +using namespace std;
Unneeded.
> Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp:40 > + return "RenderMultiColumnFlowThread";
I already mentioned that for a previous new class but it would be neat to dump if they are virtual, generated, ... even if we don't expect this class to be. Some classes are stuck with the current bad dumps that we can't easily change now that lots of baselines depends on it. It's also something that could document an intent if you add the proper ASSERT now (there are lots of rendering invariants that are not documented and unfortunately get broken). The other class' dump would be more difficult to change as some baselines depends on it but this comments also cover it.
> Source/WebCore/rendering/RenderMultiColumnFlowThread.h:39 > + virtual const char* renderName() const;
OVERRIDE.
> Source/WebCore/rendering/RenderNamedFlowThread.cpp:33 > +using namespace std;
I don't think this is needed too.
> Source/WebCore/rendering/RenderNamedFlowThread.h:62 > + virtual void addRegionToThread(RenderRegion*); > + virtual void removeRegionFromThread(RenderRegion*);
OVERRIDE.
> Source/WebCore/rendering/RenderNamedFlowThread.h:68 > + virtual const char* renderName() const; > + virtual bool isRenderNamedFlowThread() const { return true; }
OVERRIDE too.
> LayoutTests/ChangeLog:46 > + * platform/mac/fast/regions/webkit-flow-inlines-inside-regions-bounds-vertical-rl-expected.txt:
It looks like there is a couple of (mostly repaint) tests that needs to be updated too. Also other platforms would need to have their text_expectations.txt / Skipped files changed before landing.
Eric Seidel (no email)
Comment 10
2012-03-27 12:46:28 PDT
Comment on
attachment 132863
[details]
Patch Cleared Dimitri Glazkov's review+ from obsolete
attachment 132863
[details]
so that this bug does not appear in
http://webkit.org/pending-commit
.
Dave Hyatt
Comment 11
2012-03-28 09:48:20 PDT
Created
attachment 134319
[details]
Patch
Dave Hyatt
Comment 12
2012-03-28 09:50:21 PDT
New patch is up. To respond to specific comments, I don't want to make the add/remove functions pure virtual, since there will eventually be a RenderPageFlowThread that will share the implementation. As for including "anonymous", "generated" etc. in RenderMultiColumnFlowThread, this is just not necessary. Flow threads are internal implementation details. You can't get at them in any way, so they can't be customized at all. I'll add some asserts as the class grows to test for invariants, i.e., that the flow thread is never used outside of the multi-column block that it belongs to, etc.
Dave Hyatt
Comment 13
2012-03-28 12:24:08 PDT
Created
attachment 134368
[details]
Patch
Julien Chaffraix
Comment 14
2012-03-28 14:17:25 PDT
Comment on
attachment 134368
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=134368&action=review
r=me provided it passes the EWS.
> Source/WebCore/rendering/RenderNamedFlowThread.cpp:91 > + // Do not add anonymous objects. > + if (!newChild->node()) > + return;
That's weird, normally anonymous objects have node() set to the Document. It's unrelated to your change though.
> Source/WebCore/rendering/RenderNamedFlowThread.h:47 > + AtomicString name() const { return m_name; }
I am not a huge fan of name() as it is very generic and would convey something similar to renderName() in my view. How about flowName() or flowThreadName()?
> LayoutTests/ChangeLog:17 > + * fast/repaint/inline-relative-positioned-expected.txt: > + * fast/repaint/overflow-clip-subtree-layout-expected.txt: > + * fast/repaint/subtree-root-clip-2-expected.txt: > + * fast/repaint/subtree-root-clip-3-expected.txt: > + * fast/repaint/subtree-root-clip-expected.txt:
Those baselines are a fallout of lazily allocating layers. They are orthogonal and preferably landed in a separate patch as they are right!
WebKit Review Bot
Comment 15
2012-03-28 14:40:01 PDT
Comment on
attachment 134368
[details]
Patch
Attachment 134368
[details]
did not pass chromium-ews (chromium-xvfb): Output:
http://queues.webkit.org/results/12151444
New failing tests: fast/repaint/region-painting-invalidation.html
WebKit Review Bot
Comment 16
2012-03-28 14:40:10 PDT
Created
attachment 134405
[details]
Archive of layout-test-results from ec2-cr-linux-02 The attached test failures were seen while running run-webkit-tests on the chromium-ews. Bot: ec2-cr-linux-02 Port: <class 'webkitpy.common.config.ports.ChromiumXVFBPort'> Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick
Dave Hyatt
Comment 17
2012-03-28 15:15:57 PDT
Fixed in
r112453
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug