- WebCore/ChangeLog +21 lines
Lines 1-3 WebCore/ChangeLog_sec1
1
2010-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
1
2010-09-20  David Hyatt  <hyatt@apple.com>
22
2010-09-20  David Hyatt  <hyatt@apple.com>
2
23
3
        Reviewed by Dan Bernstein.
24
        Reviewed by Dan Bernstein.
- WebCore/rendering/RenderBoxModelObject.cpp -4 / +40 lines
Lines 432-438 int RenderBoxModelObject::paddingTop(boo WebCore/rendering/RenderBoxModelObject.cpp_sec1
432
    int w = 0;
432
    int w = 0;
433
    Length padding = style()->paddingTop();
433
    Length padding = style()->paddingTop();
434
    if (padding.isPercent())
434
    if (padding.isPercent())
435
        w = containingBlock()->availableWidth();
435
        w = containingBlock()->availableLogicalWidth();
436
    return padding.calcMinValue(w);
436
    return padding.calcMinValue(w);
437
}
437
}
438
438
Lines 441-447 int RenderBoxModelObject::paddingBottom( WebCore/rendering/RenderBoxModelObject.cpp_sec2
441
    int w = 0;
441
    int w = 0;
442
    Length padding = style()->paddingBottom();
442
    Length padding = style()->paddingBottom();
443
    if (padding.isPercent())
443
    if (padding.isPercent())
444
        w = containingBlock()->availableWidth();
444
        w = containingBlock()->availableLogicalWidth();
445
    return padding.calcMinValue(w);
445
    return padding.calcMinValue(w);
446
}
446
}
447
447
Lines 450-456 int RenderBoxModelObject::paddingLeft(bo WebCore/rendering/RenderBoxModelObject.cpp_sec3
450
    int w = 0;
450
    int w = 0;
451
    Length padding = style()->paddingLeft();
451
    Length padding = style()->paddingLeft();
452
    if (padding.isPercent())
452
    if (padding.isPercent())
453
        w = containingBlock()->availableWidth();
453
        w = containingBlock()->availableLogicalWidth();
454
    return padding.calcMinValue(w);
454
    return padding.calcMinValue(w);
455
}
455
}
456
456
Lines 459-465 int RenderBoxModelObject::paddingRight(b WebCore/rendering/RenderBoxModelObject.cpp_sec4
459
    int w = 0;
459
    int w = 0;
460
    Length padding = style()->paddingRight();
460
    Length padding = style()->paddingRight();
461
    if (padding.isPercent())
461
    if (padding.isPercent())
462
        w = containingBlock()->availableWidth();
462
        w = containingBlock()->availableLogicalWidth();
463
    return padding.calcMinValue(w);
464
}
465
466
int 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
475
int 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
484
int 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
493
int RenderBoxModelObject::paddingEnd(bool) const
494
{
495
    int w = 0;
496
    Length padding = style()->paddingEnd();
497
    if (padding.isPercent())
498
        w = containingBlock()->availableLogicalWidth();
463
    return padding.calcMinValue(w);
499
    return padding.calcMinValue(w);
464
}
500
}
465
501
- WebCore/rendering/RenderBoxModelObject.h +4 lines
Lines 70-75 public: WebCore/rendering/RenderBoxModelObject.h_sec1
70
    virtual int paddingBottom(bool includeIntrinsicPadding = true) const;
70
    virtual int paddingBottom(bool includeIntrinsicPadding = true) const;
71
    virtual int paddingLeft(bool includeIntrinsicPadding = true) const;
71
    virtual int paddingLeft(bool includeIntrinsicPadding = true) const;
72
    virtual int paddingRight(bool includeIntrinsicPadding = true) const;
72
    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;
73
77
74
    virtual int borderTop() const { return style()->borderTopWidth(); }
78
    virtual int borderTop() const { return style()->borderTopWidth(); }
75
    virtual int borderBottom() const { return style()->borderBottomWidth(); }
79
    virtual int borderBottom() const { return style()->borderBottomWidth(); }
- LayoutTests/ChangeLog +24 lines
Lines 1-3 LayoutTests/ChangeLog_sec1
1
2010-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
15
2010-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
1
2010-09-20  Eric Carlson  <eric.carlson@apple.com>
25
2010-09-20  Eric Carlson  <eric.carlson@apple.com>
2
26
3
        Rubber-stamped by by Simon Fraser.
27
        Rubber-stamped by by Simon Fraser.
- LayoutTests/fast/blockflow/percentage-padding-expected.txt +1 lines
Line 0 LayoutTests/fast/blockflow/percentage-padding-expected.txt_sec1
1
FAIL: The floating block should be 300x400 pixels in size.
- LayoutTests/fast/blockflow/percentage-padding.html +32 lines
Line 0 LayoutTests/fast/blockflow/percentage-padding.html_sec1
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>
19
if (window.layoutTestController)
20
    window.layoutTestController.dumpAsText();
21
test = document.getElementById("test");
22
rect = test.getBoundingClientRect();
23
width = rect.right - rect.left;
24
height = rect.top - rect.bottom;
25
if (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>

Return to Bug 46124