WebCore/ChangeLog

 12010-09-20 David Hyatt <hyatt@apple.com>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 https://bugs.webkit.org/show_bug.cgi?id=46124, add support for logical padding accessors to
 6 RenderBoxModelObject.
 7
 8 Added fast/blockflow/percentage-padding.html even though it fails, so that when more of layout is patched
 9 we can see it start passing.
 10
 11 * rendering/RenderBoxModelObject.cpp:
 12 (WebCore::RenderBoxModelObject::paddingTop):
 13 (WebCore::RenderBoxModelObject::paddingBottom):
 14 (WebCore::RenderBoxModelObject::paddingLeft):
 15 (WebCore::RenderBoxModelObject::paddingRight):
 16 (WebCore::RenderBoxModelObject::paddingBefore):
 17 (WebCore::RenderBoxModelObject::paddingAfter):
 18 (WebCore::RenderBoxModelObject::paddingStart):
 19 (WebCore::RenderBoxModelObject::paddingEnd):
 20 * rendering/RenderBoxModelObject.h:
 21
1222010-09-20 David Hyatt <hyatt@apple.com>
223
324 Reviewed by Dan Bernstein.
67884

WebCore/rendering/RenderBoxModelObject.cpp

@@int RenderBoxModelObject::paddingTop(boo
432432 int w = 0;
433433 Length padding = style()->paddingTop();
434434 if (padding.isPercent())
435  w = containingBlock()->availableWidth();
 435 w = containingBlock()->availableLogicalWidth();
436436 return padding.calcMinValue(w);
437437}
438438

@@int RenderBoxModelObject::paddingBottom(
441441 int w = 0;
442442 Length padding = style()->paddingBottom();
443443 if (padding.isPercent())
444  w = containingBlock()->availableWidth();
 444 w = containingBlock()->availableLogicalWidth();
445445 return padding.calcMinValue(w);
446446}
447447

@@int RenderBoxModelObject::paddingLeft(bo
450450 int w = 0;
451451 Length padding = style()->paddingLeft();
452452 if (padding.isPercent())
453  w = containingBlock()->availableWidth();
 453 w = containingBlock()->availableLogicalWidth();
454454 return padding.calcMinValue(w);
455455}
456456

@@int RenderBoxModelObject::paddingRight(b
459459 int w = 0;
460460 Length padding = style()->paddingRight();
461461 if (padding.isPercent())
462  w = containingBlock()->availableWidth();
 462 w = containingBlock()->availableLogicalWidth();
 463 return padding.calcMinValue(w);
 464}
 465
 466int RenderBoxModelObject::paddingBefore(bool) const
 467{
 468 int w = 0;
 469 Length padding = style()->paddingBefore();
 470 if (padding.isPercent())
 471 w = containingBlock()->availableLogicalWidth();
 472 return padding.calcMinValue(w);
 473}
 474
 475int RenderBoxModelObject::paddingAfter(bool) const
 476{
 477 int w = 0;
 478 Length padding = style()->paddingAfter();
 479 if (padding.isPercent())
 480 w = containingBlock()->availableLogicalWidth();
 481 return padding.calcMinValue(w);
 482}
 483
 484int RenderBoxModelObject::paddingStart(bool) const
 485{
 486 int w = 0;
 487 Length padding = style()->paddingStart();
 488 if (padding.isPercent())
 489 w = containingBlock()->availableLogicalWidth();
 490 return padding.calcMinValue(w);
 491}
 492
 493int RenderBoxModelObject::paddingEnd(bool) const
 494{
 495 int w = 0;
 496 Length padding = style()->paddingEnd();
 497 if (padding.isPercent())
 498 w = containingBlock()->availableLogicalWidth();
463499 return padding.calcMinValue(w);
464500}
465501
67860

WebCore/rendering/RenderBoxModelObject.h

@@public:
7070 virtual int paddingBottom(bool includeIntrinsicPadding = true) const;
7171 virtual int paddingLeft(bool includeIntrinsicPadding = true) const;
7272 virtual int paddingRight(bool includeIntrinsicPadding = true) const;
 73 virtual int paddingBefore(bool includeIntrinsicPadding = true) const;
 74 virtual int paddingAfter(bool includeIntrinsicPadding = true) const;
 75 virtual int paddingStart(bool includeIntrinsicPadding = true) const;
 76 virtual int paddingEnd(bool includeIntrinsicPadding = true) const;
7377
7478 virtual int borderTop() const { return style()->borderTopWidth(); }
7579 virtual int borderBottom() const { return style()->borderBottomWidth(); }
67860

LayoutTests/ChangeLog

 12010-09-20 David Hyatt <hyatt@apple.com>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 https://bugs.webkit.org/show_bug.cgi?id=46124, add support for logical padding accessors to
 6 RenderBoxModelObject.
 7
 8 Added fast/blockflow/percentage-padding.html even though it fails, so that when more of layout is patched
 9 we can see it start passing.
 10
 11 * fast/blockflow: Added.
 12 * fast/blockflow/percentage-padding-expected.txt: Added.
 13 * fast/blockflow/percentage-padding.html: Added.
 14
 152010-09-20 David Hyatt <hyatt@apple.com>
 16
 17 Reviewed by NOBODY (OOPS!).
 18
 19 Need a short description and bug URL (OOPS!)
 20
 21 * fast/blockflow: Added.
 22 * fast/blockflow/percentage-padding-expected.txt: Added.
 23 * fast/blockflow/percentage-padding.html: Added.
 24
1252010-09-20 Eric Carlson <eric.carlson@apple.com>
226
327 Rubber-stamped by by Simon Fraser.
67884

LayoutTests/fast/blockflow/percentage-padding-expected.txt

 1FAIL: The floating block should be 300x400 pixels in size.
0

LayoutTests/fast/blockflow/percentage-padding.html

 1<html>
 2<head>
 3<style>
 4.block
 5{
 6 width:100px;
 7 height:200px;
 8 padding:50%;
 9 background-color:green;
 10}
 11</style>
 12</head>
 13<body>
 14<div style="width:100px;height:200px; -webkit-block-flow:lr;">
 15<div id="test" class="block"></div>
 16</div>
 17<div id="console"></div>
 18<script>
 19if (window.layoutTestController)
 20 window.layoutTestController.dumpAsText();
 21test = document.getElementById("test");
 22rect = test.getBoundingClientRect();
 23width = rect.right - rect.left;
 24height = rect.top - rect.bottom;
 25if (width != 300 || height != 400) {
 26 document.getElementById('console').innerHTML = "FAIL: The floating block should be 300x400 pixels in size.";
 27 test.style.backgroundColor = 'red';
 28} else
 29 document.getElementById('console').innerHTML = "PASS: The floating block is the correct size.";
 30</script>
 31</body>
 32</html>
0