Reviewed by Geoff.
Make relative-size SVGs work in border-image.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calculateBackgroundSize):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintBorderImage):
LayoutTests:
Reviewed by Geoff.
Tests for SVG as border-image.
* fast/borders/resources/green-fixed-size-rect.svg: Added.
* fast/borders/resources/green-relative-size-rect.svg: Added.
* fast/borders/svg-as-border-image-2.html: Added.
* fast/borders/svg-as-border-image.html: Added.
* platform/mac/fast/borders/svg-as-border-image-2-expected.checksum: Added.
* platform/mac/fast/borders/svg-as-border-image-2-expected.png: Added.
* platform/mac/fast/borders/svg-as-border-image-2-expected.txt: Added.
* platform/mac/fast/borders/svg-as-border-image-expected.checksum: Added.
* platform/mac/fast/borders/svg-as-border-image-expected.png: Added.
* platform/mac/fast/borders/svg-as-border-image-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28778
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2007-12-16 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Geoff.
+
+ Tests for SVG as border-image.
+
+ * fast/borders/resources/green-fixed-size-rect.svg: Added.
+ * fast/borders/resources/green-relative-size-rect.svg: Added.
+ * fast/borders/svg-as-border-image-2.html: Added.
+ * fast/borders/svg-as-border-image.html: Added.
+ * platform/mac/fast/borders/svg-as-border-image-2-expected.checksum: Added.
+ * platform/mac/fast/borders/svg-as-border-image-2-expected.png: Added.
+ * platform/mac/fast/borders/svg-as-border-image-2-expected.txt: Added.
+ * platform/mac/fast/borders/svg-as-border-image-expected.checksum: Added.
+ * platform/mac/fast/borders/svg-as-border-image-expected.png: Added.
+ * platform/mac/fast/borders/svg-as-border-image-expected.txt: Added.
+
2007-12-16 Andrew Wellington <proton@wiretapped.net>
Reviewed by Darin.
--- /dev/null
+<svg xmlns="http://www.w3.org/2000/svg" width='100px' height='100px'>
+ <rect fill='green' width='100px' height='100px' />
+</svg>
--- /dev/null
+<svg xmlns="http://www.w3.org/2000/svg" width='100%' height='100%'>
+ <rect fill='green' width='100px' height='100px' />
+</svg>
--- /dev/null
+<html>
+<head>
+<style>
+ div {
+ border-width: 30px 30px 30px 30px;
+ height: 100px;
+ width: 100px;
+ margin: 10px;
+ display: inline-block;
+ }
+
+ div.rr {
+ -webkit-border-image: url("resources/green-relative-size-rect.svg") 30 30 30 30 repeat repeat;
+ }
+
+ div.rs {
+ -webkit-border-image: url("resources/green-relative-size-rect.svg") 30 30 30 30 repeat stretch;
+ }
+
+ div.sr {
+ -webkit-border-image: url("resources/green-relative-size-rect.svg") 30 30 30 30 stretch repeat;
+ }
+
+ div.ss {
+ -webkit-border-image: url("resources/green-relative-size-rect.svg") 30 30 30 30 stretch stretch;
+ }
+</style>
+</head>
+<body>
+
+ <div class="rr"></div>
+ <div class="rs"></div>
+ <br>
+ <div class="sr"></div>
+ <div class="ss"></div>
+
+</body>
+</html>
--- /dev/null
+<html>
+<head>
+<style>
+ div {
+ border-width: 30px 30px 30px 30px;
+ height: 100px;
+ width: 100px;
+ margin: 10px;
+ display: inline-block;
+ }
+
+ div.rr {
+ -webkit-border-image: url("resources/green-fixed-size-rect.svg") 30 30 30 30 repeat repeat;
+ }
+
+ div.rs {
+ -webkit-border-image: url("resources/green-fixed-size-rect.svg") 30 30 30 30 repeat stretch;
+ }
+
+ div.sr {
+ -webkit-border-image: url("resources/green-fixed-size-rect.svg") 30 30 30 30 stretch repeat;
+ }
+
+ div.ss {
+ -webkit-border-image: url("resources/green-fixed-size-rect.svg") 30 30 30 30 stretch stretch;
+ }
+</style>
+</head>
+<body>
+
+ <div class="rr"></div>
+ <div class="rs"></div>
+ <br>
+ <div class="sr"></div>
+ <div class="ss"></div>
+
+</body>
+</html>
--- /dev/null
+06ecd0c2e20378429642fa56d97c8ec3
\ No newline at end of file
--- /dev/null
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderBlock {DIV} at (10,10) size 160x160 [border: (30px none #000000)]
+ RenderText {#text} at (180,166) size 4x18
+ text run at (180,166) width 4: " "
+ RenderBlock {DIV} at (194,10) size 160x160 [border: (30px none #000000)]
+ RenderText {#text} at (364,166) size 4x18
+ text run at (364,166) width 4: " "
+ RenderBR {BR} at (0,0) size 0x0
+ RenderBlock {DIV} at (10,194) size 160x160 [border: (30px none #000000)]
+ RenderText {#text} at (180,350) size 4x18
+ text run at (180,350) width 4: " "
+ RenderBlock {DIV} at (194,194) size 160x160 [border: (30px none #000000)]
+ RenderText {#text} at (0,0) size 0x0
+ RenderText {#text} at (0,0) size 0x0
+ RenderText {#text} at (0,0) size 0x0
--- /dev/null
+06ecd0c2e20378429642fa56d97c8ec3
\ No newline at end of file
--- /dev/null
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderBlock {DIV} at (10,10) size 160x160 [border: (30px none #000000)]
+ RenderText {#text} at (180,166) size 4x18
+ text run at (180,166) width 4: " "
+ RenderBlock {DIV} at (194,10) size 160x160 [border: (30px none #000000)]
+ RenderText {#text} at (364,166) size 4x18
+ text run at (364,166) width 4: " "
+ RenderBR {BR} at (0,0) size 0x0
+ RenderBlock {DIV} at (10,194) size 160x160 [border: (30px none #000000)]
+ RenderText {#text} at (180,350) size 4x18
+ text run at (180,350) width 4: " "
+ RenderBlock {DIV} at (194,194) size 160x160 [border: (30px none #000000)]
+ RenderText {#text} at (0,0) size 0x0
+ RenderText {#text} at (0,0) size 0x0
+ RenderText {#text} at (0,0) size 0x0
+2007-12-16 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Geoff.
+
+ Make relative-size SVGs work in border-image.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::calculateBackgroundSize):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::paintBorderImage):
+
2007-12-16 Darin Adler <darin@apple.com>
- fix Tiger build (my fault it was broken)
IntSize RenderBox::calculateBackgroundSize(const BackgroundLayer* bgLayer, int scaledWidth, int scaledHeight) const
{
CachedImage* bg = bgLayer->backgroundImage();
+ bg->setImageContainerSize(IntSize(m_width, m_height));
if (bgLayer->isBackgroundSizeSet()) {
int w = scaledWidth;
}
}
return IntSize(max(1, w), max(1, h));
- } else {
- bg->setImageContainerSize(IntSize(m_width, m_height));
+ } else
return bg->imageSize();
- }
}
void RenderBox::imageChanged(CachedImage* image)
clipped = true;
}
+ borderImage->setImageContainerSize(IntSize(w, h));
int imageWidth = borderImage->image()->width();
int imageHeight = borderImage->image()->height();