Bug 127101 - [CSS Regions] Fix selection and hover effect of content in region with overflow:hidden
Summary: [CSS Regions] Fix selection and hover effect of content in region with overfl...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Mihai Maerean
URL:
Keywords: AdobeTracked
Depends on:
Blocks: 57312
  Show dependency treegraph
 
Reported: 2014-01-16 05:26 PST by Mihai Maerean
Modified: 2014-02-03 23:27 PST (History)
7 users (show)

See Also:


Attachments
sample html file (322 bytes, text/html)
2014-01-16 05:26 PST, Mihai Maerean
no flags Details
sample html file (344 bytes, text/html)
2014-01-16 05:40 PST, Mihai Maerean
no flags Details
patch (4.10 KB, patch)
2014-01-27 09:56 PST, Mihai Maerean
mihnea: review+
mihnea: commit-queue-
Details | Formatted Diff | Diff
patch for landing (4.16 KB, patch)
2014-02-03 02:25 PST, Mihai Maerean
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mihai Maerean 2014-01-16 05:26:32 PST
Created attachment 221368 [details]
sample html file

The content that's flowed into a region with overflow:hidden can't be selected and the hover css class is not activated.
Comment 1 Mihai Maerean 2014-01-16 05:40:32 PST
Created attachment 221370 [details]
sample html file
Comment 2 Mihai Maerean 2014-01-27 09:56:44 PST
Created attachment 222331 [details]
patch
Comment 3 Mihnea Ovidenie 2014-01-29 05:29:34 PST
I am not a big fan of the proposed solution. The function isHitCandidate was added for https://bugs.webkit.org/show_bug.cgi?id=24686 in a different context. This function is run after the hit testing was done for a layer, but in the case of RenderNamedFlowFragment, we know upfront that is not a hit candidate. I would like you to investigate other options that would skip calling hit testing methods for this case before settling for this solution (or if you did investigate other options, i think it is worth mentioning here).
Comment 4 Mihai Maerean 2014-01-31 01:25:43 PST
(In reply to comment #3)
> I am not a big fan of the proposed solution. The function isHitCandidate was added for https://bugs.webkit.org/show_bug.cgi?id=24686 in a different context. This function is run after the hit testing was done for a layer, but in the case of RenderNamedFlowFragment, we know upfront that is not a hit candidate. I would like you to investigate other options that would skip calling hit testing methods for this case before settling for this solution (or if you did investigate other options, i think it is worth mentioning here).

This is how the tree looks like for the layout test:
Named flows
  Named flow 'flow'
    layer 0x7fd410e582c0 at (0,0) size 991x38
      RenderNamedFlowThread 0x7fd410e6b5a0 at (0,0) size 991x38
        RenderBlock 0x7fd410e4eb50 {DIV} at (10,10) size 971x18 class="content" (layout overflow 0,0 971x18) (visual overflow -10,-10 991x38)
          RenderText 0x7fd410e4ec50 {#text} at (0,0) size 60x18
            text run at (0,0) width 60: "hover me"

The proposed fix for this bug is called from the last if(isSelfPaintingLayer()) instruction in RenderLayer::hitTestLayer.
Moving the check more up front would make it less intuitive (than returning false when asked if it's a hit candidate) or just incorrect because the code wouldn't hit the contents of the region any more.
Also, isHitCandidate is called in 4 different places so RenderNamedFlowThread will be skipped in all those situations too.
Comment 5 Mihnea Ovidenie 2014-02-02 22:32:22 PST
Comment on attachment 222331 [details]
patch

r=me
Comment 6 Mihai Maerean 2014-02-03 02:25:15 PST
Created attachment 222973 [details]
patch for landing
Comment 7 WebKit Commit Bot 2014-02-03 05:10:27 PST
Comment on attachment 222973 [details]
patch for landing

Rejecting attachment 222973 [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-03', 'land-attachment', '--force-clean', '--non-interactive', '--parent-command=commit-queue', 222973, '--port=mac']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ubmit
    return self.open(self.click(*args, **kwds))
  File "/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_mechanize.py", line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File "/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_mechanize.py", line 255, in _mech_open
    raise response
webkitpy.thirdparty.autoinstalled.mechanize._response.httperror_seek_wrapper: HTTP Error 500: Internal Server Error

Full output: http://webkit-queues.appspot.com/results/4876789134393344
Comment 8 Mihnea Ovidenie 2014-02-03 05:20:21 PST
Comment on attachment 222973 [details]
patch for landing

Retrying...
Comment 9 WebKit Commit Bot 2014-02-03 05:49:45 PST
Comment on attachment 222973 [details]
patch for landing

Clearing flags on attachment: 222973

Committed r163302: <http://trac.webkit.org/changeset/163302>