WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED INVALID
61621
Use RenderBlock::layout() in RenderSlider
https://bugs.webkit.org/show_bug.cgi?id=61621
Summary
Use RenderBlock::layout() in RenderSlider
Kent Tamura
Reported
2011-05-27 03:35:25 PDT
Use RenderBlock::layout() in RenderSlider
Attachments
Patch
(8.75 KB, patch)
2011-05-27 03:45 PDT
,
Kent Tamura
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ec2-cr-linux-02
(1.19 MB, application/zip)
2011-05-27 04:03 PDT
,
WebKit Review Bot
no flags
Details
Patch 2
(10.59 KB, patch)
2011-05-27 04:27 PDT
,
Kent Tamura
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Kent Tamura
Comment 1
2011-05-27 03:45:29 PDT
Created
attachment 95152
[details]
Patch
Kent Tamura
Comment 2
2011-05-27 04:02:45 PDT
Comment on
attachment 95152
[details]
Patch Oops, the patch doesn't respect baseSize in RenderSlider::layout().
WebKit Review Bot
Comment 3
2011-05-27 04:03:45 PDT
Comment on
attachment 95152
[details]
Patch
Attachment 95152
[details]
did not pass chromium-ews (chromium-xvfb): Output:
http://queues.webkit.org/results/8741362
New failing tests: fast/multicol/client-rects.html
WebKit Review Bot
Comment 4
2011-05-27 04:03:49 PDT
Created
attachment 95154
[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: Chromium Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick
Kent Tamura
Comment 5
2011-05-27 04:27:53 PDT
Created
attachment 95155
[details]
Patch 2
Dimitri Glazkov (Google)
Comment 6
2011-05-27 08:52:54 PDT
Comment on
attachment 95155
[details]
Patch 2 View in context:
https://bugs.webkit.org/attachment.cgi?id=95155&action=review
I think this patch might be a tactical win, but not much more. We should still use CSS machinery here.
> Source/WebCore/html/shadow/SliderThumbElement.cpp:-90 > - // FIXME: Move the logic of positioning the thumb here.
I don' think this should be removed. It's still the right place to position.
> Source/WebCore/html/shadow/SliderThumbElement.cpp:139 > +inline static bool hasVerticalAppearance(HTMLInputElement* input) > +{ > + RenderStyle* sliderStyle = input->renderer()->style(); > + return sliderStyle->appearance() == SliderVerticalPart || sliderStyle->appearance() == MediaVolumeSliderPart; > +} > + > +// Returns a value between 0 and 1. > +inline static double sliderPosition(HTMLInputElement* element) > +{ > + StepRange range(element); > + return range.proportionFromValue(range.valueFromElement(element)); > +} > + > +void SliderThumbElement::setPositionDuringLayout() > +{ > + HTMLInputElement* input = hostInput(); > + ASSERT(input); > + if (!input || !input->renderBox() || !renderBox()) > + return; > + > + RenderBox* hostBox = input->renderBox(); > + RenderBox* box = renderBox(); > + double fraction = sliderPosition(input); > + IntRect hostRect = hostBox->contentBoxRect(); > + double x, y; > + if (hasVerticalAppearance(input)) { > + x = hostRect.x() + (hostRect.width() - box->width()) / 2; > + y = hostRect.y() + nextafter((hostRect.height() - box->height()) + 1, 0) * (1 - fraction); > + } else { > + x = hostRect.x() + nextafter((hostRect.width() - box->width()) + 1, 0) * fraction; > + y = hostRect.y() + (hostRect.height() - box->height()) / 2; > + } > + box->setX(clampToInteger(x)); > + box->setY(clampToInteger(y)); > +}
I don't understand why you moved such RenderObject-heavy logic into an Element? Seems like you're mixing render tree and DOM tree logic here. Can this live in RenderSlider?
> Source/WebCore/html/shadow/SliderThumbElement.cpp:164 > + // Ditto.
This comment is in danger of losing context. You should explicitly refer to the comment above.
> Source/WebCore/rendering/RenderSlider.cpp:117 > + thumbElement->setPositionDuringLayout();
You might still need LayoutStateMaintainer here. You're changing coordinates, but not accounting for any transforms.
Kent Tamura
Comment 7
2011-05-30 03:22:28 PDT
I understand CSS works.
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
Otomatik - 17.33.192.145
CloudFlare DNS
Türk Telekom DNS
Google DNS
Open DNS
OSZAR »