Bug 132066 - REGRESSION (r168046): [New Multicolumn] Selection into and out of column-span elements doesn't work
Summary: REGRESSION (r168046): [New Multicolumn] Selection into and out of column-span...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Dave Hyatt
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-04-23 11:07 PDT by Dave Hyatt
Modified: 2014-05-01 14:00 PDT (History)
4 users (show)

See Also:


Attachments
Patch (7.62 KB, patch)
2014-05-01 09:57 PDT, Dave Hyatt
no flags Details | Formatted Diff | Diff
Patch (7.66 KB, patch)
2014-05-01 11:14 PDT, Dave Hyatt
oliver: review+
commit-queue: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.