Bug 132066

Summary: REGRESSION (r168046): [New Multicolumn] Selection into and out of column-span elements doesn't work
Product: WebKit Reporter: Dave Hyatt <hyatt>
Component: Layout and RenderingAssignee: Dave Hyatt <hyatt>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, esprehn+autocc, glenn, kondapallykalyan
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch oliver: review+, commit-queue: commit-queue-

Description Dave Hyatt 2014-04-23 11:07:19 PDT
Selection across column-spans doesn't work because the render tree is all scrambled up. We need to patch the iteration in RenderView that walks selection subtrees to do the right thing when it encounters the span's placeholder.
Comment 1 Dave Hyatt 2014-05-01 09:57:07 PDT
Created attachment 230585 [details]
Patch
Comment 2 WebKit Commit Bot 2014-05-01 09:58:01 PDT
Attachment 230585 [details] did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderView.cpp:58:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/rendering/RenderView.cpp:62:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/rendering/RenderView.cpp:67:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/rendering/RenderView.cpp:77:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Dave Hyatt 2014-05-01 11:14:58 PDT
Created attachment 230596 [details]
Patch

pass style queue.
Comment 4 WebKit Commit Bot 2014-05-01 11:16:12 PDT
Attachment 230596 [details] did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderView.cpp:58:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 5 Oliver Hunt 2014-05-01 11:21:28 PDT
Comment on attachment 230596 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=230596&action=review

> Source/WebCore/rendering/RenderView.cpp:59
> +    RenderObject* m_current;

RenderPtr<RenderObject> please - i dream of having these things not disappearing from beneath us :(

Even though the current uses imply no state mutation, i don't like the idea of making an "iterator" that could be accidentally used in a context that leads to mutation
Comment 6 Dave Hyatt 2014-05-01 11:40:18 PDT
(In reply to comment #5)
> (From update of attachment 230596 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=230596&action=review
> 
> > Source/WebCore/rendering/RenderView.cpp:59
> > +    RenderObject* m_current;
> 
> RenderPtr<RenderObject> please - i dream of having these things not disappearing from beneath us :(
> 
> Even though the current uses imply no state mutation, i don't like the idea of making an "iterator" that could be accidentally used in a context that leads to mutation

I don't think this is an appropriate place for RenderPtr. This is just a read-only loop of the selected objects. Nothing is mutated. The iterator is confined to the .cpp file, so it's not going to see any weird usage. If this were longer-lasting or designed for re-use I would see your point, but there's no use case for this that would make any sense in the presence of mutation.
Comment 7 Oliver Hunt 2014-05-01 11:47:12 PDT
Comment on attachment 230596 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=230596&action=review

>>> Source/WebCore/rendering/RenderView.cpp:59
>>> +    RenderObject* m_current;
>> 
>> RenderPtr<RenderObject> please - i dream of having these things not disappearing from beneath us :(
>> 
>> Even though the current uses imply no state mutation, i don't like the idea of making an "iterator" that could be accidentally used in a context that leads to mutation
> 
> I don't think this is an appropriate place for RenderPtr. This is just a read-only loop of the selected objects. Nothing is mutated. The iterator is confined to the .cpp file, so it's not going to see any weird usage. If this were longer-lasting or designed for re-use I would see your point, but there's no use case for this that would make any sense in the presence of mutation.

okie dokie
Comment 8 WebKit Commit Bot 2014-05-01 13:08:52 PDT
Comment on attachment 230596 [details]
Patch

Rejecting attachment 230596 [details] from commit-queue.

Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.appspot.com', '--bot-id=webkit-cq-02', 'apply-attachment', '--no-update', '--non-interactive', 230596, '--port=mac']" exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
 #5 succeeded at 774 (offset 1 line).
Hunk #6 succeeded at 928 (offset 1 line).
Hunk #7 succeeded at 946 (offset 1 line).
Hunk #8 succeeded at 972 (offset 1 line).
Hunk #9 succeeded at 986 (offset 1 line).
Hunk #10 succeeded at 1011 (offset 1 line).
1 out of 10 hunks FAILED -- saving rejects to file Source/WebCore/rendering/RenderView.cpp.rej

Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force', '--reviewer', u'Oliver Hunt']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/6426956396494848
Comment 9 Dave Hyatt 2014-05-01 14:00:51 PDT
Fixed in r168121.