I am not very familiar of this code. I thought as the composited layer bounds is
larger than the layoutObject()-> absoluteBoundingBoxRect() because of the box
shadow and the highlight is offset by the size of the box shadow.
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighligh...
File Source/web/LinkHighlight.cpp (right):
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighligh...
Source/web/LinkHighlight.cpp:216: if
(!paintInvalidationContainer->layer()->hasBoxDecorationsOrBackground() &&
paintInvalidationContainer->layer()->needsCompositedScrolling() &&
m_node->layoutObject() != paintInvalidationContainer)
On 2015/04/27 17:50:03, chrishtr wrote:
> Can you explain why it's not needed if there are box decorations?
I am not very familiar of this code. I thought as the composited layer bounds is
larger than the layoutObject()-> absoluteBoundingBoxRect() because of the box
shadow and the highlight is offset by the size of the box shadow.
chrishtr
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighlight.cpp File Source/web/LinkHighlight.cpp (right): https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighlight.cpp#newcode216 Source/web/LinkHighlight.cpp:216: if (!paintInvalidationContainer->layer()->hasBoxDecorationsOrBackground() && paintInvalidationContainer->layer()->needsCompositedScrolling() && m_node->layoutObject() != paintInvalidationContainer) On ...
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighligh...
File Source/web/LinkHighlight.cpp (right):
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighligh...
Source/web/LinkHighlight.cpp:216: if
(!paintInvalidationContainer->layer()->hasBoxDecorationsOrBackground() &&
paintInvalidationContainer->layer()->needsCompositedScrolling() &&
m_node->layoutObject() != paintInvalidationContainer)
On 2015/04/28 at 10:28:24, pals wrote:
> On 2015/04/27 17:50:03, chrishtr wrote:
> > Can you explain why it's not needed if there are box decorations?
> I am not very familiar of this code. I thought as the composited layer bounds
is larger than the layoutObject()-> absoluteBoundingBoxRect() because of the box
shadow and the highlight is offset by the size of the box shadow.
Ok. I'll need to think about this some more. This whole class is in kind of a
sad state. :(
4 years, 11 months ago
(2015-06-01 03:52:55 UTC)
#6
On 2015/04/29 05:11:42, chrishtr wrote:
>
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighligh...
> File Source/web/LinkHighlight.cpp (right):
>
>
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighligh...
> Source/web/LinkHighlight.cpp:216: if
> (!paintInvalidationContainer->layer()->hasBoxDecorationsOrBackground() &&
> paintInvalidationContainer->layer()->needsCompositedScrolling() &&
> m_node->layoutObject() != paintInvalidationContainer)
> On 2015/04/28 at 10:28:24, pals wrote:
> > On 2015/04/27 17:50:03, chrishtr wrote:
> > > Can you explain why it's not needed if there are box decorations?
> > I am not very familiar of this code. I thought as the composited layer
bounds
> is larger than the layoutObject()-> absoluteBoundingBoxRect() because of the
box
> shadow and the highlight is offset by the size of the box shadow.
>
> Ok. I'll need to think about this some more. This whole class is in kind of a
> sad state. :(
Friendly ping. Please take a look.
chrishtr
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighlight.cpp File Source/web/LinkHighlight.cpp (right): https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighlight.cpp#newcode216 Source/web/LinkHighlight.cpp:216: if (!paintInvalidationContainer->layer()->hasBoxDecorationsOrBackground() && paintInvalidationContainer->layer()->needsCompositedScrolling() && m_node->layoutObject() != paintInvalidationContainer) On ...
4 years, 11 months ago
(2015-06-06 05:28:09 UTC)
#7
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighligh...
File Source/web/LinkHighlight.cpp (right):
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighligh...
Source/web/LinkHighlight.cpp:216: if
(!paintInvalidationContainer->layer()->hasBoxDecorationsOrBackground() &&
paintInvalidationContainer->layer()->needsCompositedScrolling() &&
m_node->layoutObject() != paintInvalidationContainer)
On 2015/04/29 at 05:11:41, chrishtr wrote:
> On 2015/04/28 at 10:28:24, pals wrote:
> > On 2015/04/27 17:50:03, chrishtr wrote:
> > > Can you explain why it's not needed if there are box decorations?
> > I am not very familiar of this code. I thought as the composited layer
bounds is larger than the layoutObject()-> absoluteBoundingBoxRect() because of
the box shadow and the highlight is offset by the size of the box shadow.
>
> Ok. I'll need to think about this some more. This whole class is in kind of a
sad state. :(
I just tried deleting the adjustment hack in lines 216-217 entirely, and all
layout tests passed. Could you update the CL to remove this code, run the tests,
and test various real situations with scrolled areas to make sure they are
correct?
It may be that this hack was compensating for other compositing code, which is
now fixed. Or it could be that we no longer test this situation.. please check
for possible disabled tests of link highlight.
pals
I have removed the hack completely. I have tested few test pages manually with tap ...
4 years, 10 months ago
(2015-06-15 06:01:05 UTC)
#8
I have removed the hack completely. I have tested few test pages manually with
tap highlight and scrolled area which are working as expected. I tried enabling
gesture-tapHighlight-simple-longPress.html from TestExpectation and it is still
failing but this looks an unrelated test for this change.
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighligh...
File Source/web/LinkHighlight.cpp (right):
https://codereview.chromium.org/1096383007/diff/20001/Source/web/LinkHighligh...
Source/web/LinkHighlight.cpp:216: if
(!paintInvalidationContainer->layer()->hasBoxDecorationsOrBackground() &&
paintInvalidationContainer->layer()->needsCompositedScrolling() &&
m_node->layoutObject() != paintInvalidationContainer)
On 2015/06/06 05:28:09, chrishtr wrote:
> On 2015/04/29 at 05:11:41, chrishtr wrote:
> > On 2015/04/28 at 10:28:24, pals wrote:
> > > On 2015/04/27 17:50:03, chrishtr wrote:
> > > > Can you explain why it's not needed if there are box decorations?
> > > I am not very familiar of this code. I thought as the composited layer
> bounds is larger than the layoutObject()-> absoluteBoundingBoxRect() because
of
> the box shadow and the highlight is offset by the size of the box shadow.
> >
> > Ok. I'll need to think about this some more. This whole class is in kind of
a
> sad state. :(
>
> I just tried deleting the adjustment hack in lines 216-217 entirely, and all
> layout tests passed. Could you update the CL to remove this code, run the
tests,
> and test various real situations with scrolled areas to make sure they are
> correct?
>
> It may be that this hack was compensating for other compositing code, which is
> now fixed. Or it could be that we no longer test this situation.. please check
> for possible disabled tests of link highlight.
Done.
chrishtr
The CQ bit was checked by chrishtr@chromium.org
4 years, 10 months ago
(2015-06-25 20:54:00 UTC)
#9
Try jobs failed on following builders: mac_blink_rel on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/mac_blink_rel/builds/60820)
4 years, 10 months ago
(2015-06-25 20:57:26 UTC)
#14
Issue 1096383007: Position adjustment for composited scrolling is not needed if the layer has box decorations.
(Closed)
Created 5 years ago by pals
Modified 4 years, 10 months ago
Reviewers: chrishtr
Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Comments: 5