WebKit Bugzilla
Attachment 360859 Details for
Bug 194154
: [LFC] Adjust replaced element's intrinsic ratio
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
Patch.txt (text/plain), 18.71 KB, created by
zalan
on 2019-02-01 05:38:50 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
zalan
Created:
2019-02-01 05:38:50 PST
Size:
18.71 KB
patch
obsolete
>diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 50f7d835fe7..399a7af5ca8 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,26 @@ >+2019-02-01 Zalan Bujtas <zalan@apple.com> >+ >+ [LFC] Adjust replaced element's intrinsic ratio >+ https://bugs.webkit.org/show_bug.cgi?id=194154 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Decouple image and iframe replaced types and set intrinsic ratio accordingly. >+ >+ * layout/layouttree/LayoutBox.cpp: >+ (WebCore::Layout::Box::Box): >+ * layout/layouttree/LayoutBox.h: >+ (WebCore::Layout::Box::isReplaced const): >+ (WebCore::Layout::Box::isIFrame const): >+ (WebCore::Layout::Box::isImage const): >+ * layout/layouttree/LayoutReplaced.cpp: >+ (WebCore::Layout::Replaced::hasIntrinsicRatio const): >+ (WebCore::Layout::Replaced::intrinsicRatio const): >+ (WebCore::Layout::Replaced::hasAspectRatio const): >+ * layout/layouttree/LayoutReplaced.h: >+ * layout/layouttree/LayoutTreeBuilder.cpp: >+ (WebCore::Layout::TreeBuilder::createSubTree): >+ > 2019-01-31 Zalan Bujtas <zalan@apple.com> > > [LFC] Set intrinsic size on Layout::Replaced >diff --git a/Source/WebCore/layout/layouttree/LayoutBox.cpp b/Source/WebCore/layout/layouttree/LayoutBox.cpp >index 392659dfaee..f5872a03e16 100644 >--- a/Source/WebCore/layout/layouttree/LayoutBox.cpp >+++ b/Source/WebCore/layout/layouttree/LayoutBox.cpp >@@ -42,7 +42,7 @@ Box::Box(Optional<ElementAttributes> attributes, RenderStyle&& style, BaseTypeFl > , m_elementAttributes(attributes) > , m_baseTypeFlags(baseTypeFlags) > { >- if (m_elementAttributes && m_elementAttributes.value().elementType == ElementType::Replaced) >+ if (isReplaced()) > m_replaced = std::make_unique<Replaced>(*this); > } > >diff --git a/Source/WebCore/layout/layouttree/LayoutBox.h b/Source/WebCore/layout/layouttree/LayoutBox.h >index 349c7ddcd5a..ba05392d81c 100644 >--- a/Source/WebCore/layout/layouttree/LayoutBox.h >+++ b/Source/WebCore/layout/layouttree/LayoutBox.h >@@ -52,7 +52,8 @@ public: > TableRowGroup, > TableHeaderGroup, > TableFooterGroup, >- Replaced, >+ Image, >+ IFrame, > GenericElement > }; > >@@ -110,6 +111,9 @@ public: > bool isDocumentBox() const { return m_elementAttributes && m_elementAttributes.value().elementType == ElementType::Document; } > bool isBodyBox() const { return m_elementAttributes && m_elementAttributes.value().elementType == ElementType::Body; } > bool isTableCell() const { return m_elementAttributes && m_elementAttributes.value().elementType == ElementType::TableCell; } >+ bool isReplaced() const { return isImage() || isIFrame(); } >+ bool isIFrame() const { return m_elementAttributes && m_elementAttributes.value().elementType == ElementType::IFrame; } >+ bool isImage() const { return m_elementAttributes && m_elementAttributes.value().elementType == ElementType::Image; } > > const Container* parent() const { return m_parent; } > const Box* nextSibling() const { return m_nextSibling; } >diff --git a/Source/WebCore/layout/layouttree/LayoutReplaced.cpp b/Source/WebCore/layout/layouttree/LayoutReplaced.cpp >index 3b8c83bed6a..00cd5d06829 100644 >--- a/Source/WebCore/layout/layouttree/LayoutReplaced.cpp >+++ b/Source/WebCore/layout/layouttree/LayoutReplaced.cpp >@@ -54,7 +54,9 @@ bool Replaced::hasIntrinsicHeight() const > > bool Replaced::hasIntrinsicRatio() const > { >- return m_layoutBox->style().aspectRatioType() == AspectRatioType::FromIntrinsic; >+ if (!hasAspectRatio()) >+ return false; >+ return m_intrinsicSize || m_intrinsicRatio; > } > > LayoutUnit Replaced::intrinsicWidth() const >@@ -75,11 +77,19 @@ LayoutUnit Replaced::intrinsicHeight() const > > LayoutUnit Replaced::intrinsicRatio() const > { >- ASSERT(hasIntrinsicRatio()); >- ASSERT_NOT_IMPLEMENTED_YET(); >+ ASSERT(hasIntrinsicRatio() || (hasIntrinsicWidth() && hasIntrinsicHeight())); >+ if (m_intrinsicRatio) >+ return *m_intrinsicRatio; >+ if (m_intrinsicSize) >+ return m_intrinsicSize->width() / m_intrinsicSize->height(); > return 1; > } > >+bool Replaced::hasAspectRatio() const >+{ >+ return m_layoutBox->isImage() || m_layoutBox->style().aspectRatioType() == AspectRatioType::FromIntrinsic; >+} >+ > } > } > #endif >diff --git a/Source/WebCore/layout/layouttree/LayoutReplaced.h b/Source/WebCore/layout/layouttree/LayoutReplaced.h >index 04856304af7..a1311ad8fe3 100644 >--- a/Source/WebCore/layout/layouttree/LayoutReplaced.h >+++ b/Source/WebCore/layout/layouttree/LayoutReplaced.h >@@ -56,6 +56,8 @@ public: > LayoutUnit intrinsicRatio() const; > > private: >+ bool hasAspectRatio() const; >+ > WeakPtr<const Box> m_layoutBox; > Optional<LayoutSize> m_intrinsicSize; > Optional<LayoutUnit> m_intrinsicRatio; >diff --git a/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp b/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp >index 48302fadd35..5dc5c471355 100644 >--- a/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp >+++ b/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp >@@ -40,6 +40,7 @@ > #include "RenderBlock.h" > #include "RenderChildIterator.h" > #include "RenderElement.h" >+#include "RenderImage.h" > #include "RenderInline.h" > #include "RenderStyle.h" > #include "RenderView.h" >@@ -77,8 +78,10 @@ void TreeBuilder::createSubTree(const RenderElement& rootRenderer, Container& ro > return Box::ElementAttributes { Box::ElementType::TableFooterGroup }; > if (element->hasTagName(HTMLNames::tfootTag)) > return Box::ElementAttributes { Box::ElementType::TableFooterGroup }; >- if (element->hasTagName(HTMLNames::imgTag) || element->hasTagName(HTMLNames::iframeTag)) >- return Box::ElementAttributes { Box::ElementType::Replaced }; >+ if (element->hasTagName(HTMLNames::imgTag)) >+ return Box::ElementAttributes { Box::ElementType::Image }; >+ if (element->hasTagName(HTMLNames::iframeTag)) >+ return Box::ElementAttributes { Box::ElementType::IFrame }; > return Box::ElementAttributes { Box::ElementType::GenericElement }; > } > return WTF::nullopt; >@@ -98,8 +101,13 @@ void TreeBuilder::createSubTree(const RenderElement& rootRenderer, Container& ro > else > box = std::make_unique<InlineBox>(elementAttributes(renderer), RenderStyle::clone(renderer.style())); > // FIXME: We don't yet support all replaced elements. >- if (box->replaced()) >+ if (!renderer.intrinsicSize().isEmpty() && box->replaced()) > box->replaced()->setIntrinsicSize(renderer.intrinsicSize()); >+ if (is<RenderImage>(renderer)) { >+ auto& imageRenderer = downcast<RenderImage>(renderer); >+ if (imageRenderer.imageResource().errorOccurred()) >+ box->replaced()->setIntrinsicRatio(1); >+ } > } else if (is<RenderElement>(child)) { > auto& renderer = downcast<RenderElement>(child); > auto display = renderer.style().display(); >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 7fa214869d5..6b911dd5500 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,14 @@ >+2019-02-01 Zalan Bujtas <zalan@apple.com> >+ >+ [LFC] Adjust replaced element's intrinsic ratio >+ https://bugs.webkit.org/show_bug.cgi?id=194154 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ 761 >+ >+ * LayoutReloaded/misc/LFC-passing-tests.txt: >+ > 2019-01-31 Zalan Bujtas <zalan@apple.com> > > [LFC] Set intrinsic size on Layout::Replaced >diff --git a/Tools/LayoutReloaded/misc/LFC-passing-tests.txt b/Tools/LayoutReloaded/misc/LFC-passing-tests.txt >index 72e5f591df8..16c0dde7f1f 100644 >--- a/Tools/LayoutReloaded/misc/LFC-passing-tests.txt >+++ b/Tools/LayoutReloaded/misc/LFC-passing-tests.txt >@@ -435,64 +435,67 @@ css2.1/t0511-c21-pseud-link-01-e.html > css2.1/t0511-c21-pseud-link-02-e.html > css2.1/t0511-c21-pseud-link-03-e.html > css2.1/t0602-c13-inh-underlin-00-e.html >+css2.1/t0603-c11-import-00-b.html > css2.1/20110323/absolute-replaced-height-001.htm > css2.1/20110323/absolute-replaced-height-002.htm >-css2.1/t0603-c11-import-00-b.html >+css2.1/20110323/absolute-replaced-height-003.htm > css2.1/20110323/absolute-replaced-height-004.htm > css2.1/20110323/absolute-replaced-height-005.htm > css2.1/20110323/absolute-replaced-height-007.htm > css2.1/20110323/absolute-replaced-height-008.htm > css2.1/20110323/absolute-replaced-height-009.htm >+css2.1/20110323/absolute-replaced-height-010.htm > css2.1/20110323/absolute-replaced-height-011.htm > css2.1/20110323/absolute-replaced-height-012.htm > css2.1/20110323/absolute-replaced-height-014.htm > css2.1/20110323/absolute-replaced-height-016.htm >-css2.1/t0803-c5502-imrgn-r-00-b-ag.html >+css2.1/20110323/absolute-replaced-height-017.htm > css2.1/20110323/absolute-replaced-height-018.htm > css2.1/20110323/absolute-replaced-height-019.htm > css2.1/20110323/absolute-replaced-height-021.htm > css2.1/20110323/absolute-replaced-height-022.htm > css2.1/20110323/absolute-replaced-height-023.htm >+css2.1/20110323/absolute-replaced-height-024.htm > css2.1/20110323/absolute-replaced-height-025.htm > css2.1/20110323/absolute-replaced-height-026.htm > css2.1/20110323/absolute-replaced-height-028.htm > css2.1/20110323/absolute-replaced-height-029.htm > css2.1/20110323/absolute-replaced-height-030.htm >+css2.1/20110323/absolute-replaced-height-031.htm > css2.1/20110323/absolute-replaced-height-032.htm > css2.1/20110323/absolute-replaced-height-033.htm > css2.1/20110323/absolute-replaced-height-035.htm > css2.1/20110323/absolute-replaced-height-036.htm > css2.1/20110323/absolute-replaced-width-001.htm > css2.1/20110323/absolute-replaced-width-008.htm >+css2.1/t0803-c5502-imrgn-r-00-b-ag.html > css2.1/t0803-c5502-mrgn-r-02-c.html > css2.1/t0803-c5502-mrgn-r-03-c.html > css2.1/t0803-c5504-imrgn-l-00-b-ag.html > css2.1/t0803-c5504-mrgn-l-00-c-ag.html > css2.1/t0803-c5504-mrgn-l-02-c.html > css2.1/t0803-c5504-mrgn-l-03-c.html >+css2.1/20110323/abspos-containing-block-initial-001.htm >+css2.1/20110323/abspos-containing-block-initial-004a.htm >+css2.1/20110323/abspos-containing-block-initial-004b.htm > css2.1/t0803-c5505-mrgn-00-b-ag.html > css2.1/t0803-c5505-mrgn-03-c-ag.html > css2.1/t0804-c5506-ipadn-t-00-b-a.html > css2.1/t0804-c5506-ipadn-t-01-b-a.html > css2.1/t0804-c5506-ipadn-t-02-b-a.html >+css2.1/20110323/abspos-containing-block-initial-005a.htm > css2.1/t0804-c5507-ipadn-r-00-b-ag.html >-css2.1/20110323/abspos-containing-block-initial-001.htm >-css2.1/20110323/abspos-containing-block-initial-004a.htm >-css2.1/20110323/abspos-containing-block-initial-004b.htm >+css2.1/20110323/abspos-containing-block-initial-005c.htm >+css2.1/20110323/abspos-containing-block-initial-007.htm >+css2.1/20110323/abspos-containing-block-initial-009b.htm >+css2.1/20110323/abspos-containing-block-initial-009e.htm > css2.1/t0804-c5507-padn-r-00-c-ag.html > css2.1/t0804-c5507-padn-r-02-f.html > css2.1/t0804-c5507-padn-r-03-f.html > css2.1/t0804-c5508-ipadn-b-00-b-a.html > css2.1/t0804-c5508-ipadn-b-01-f-a.html > css2.1/t0804-c5508-ipadn-b-02-b-a.html >-css2.1/20110323/abspos-containing-block-initial-005a.htm > css2.1/t0804-c5509-ipadn-l-00-b-ag.html >-css2.1/20110323/abspos-containing-block-initial-005c.htm >-css2.1/20110323/abspos-containing-block-initial-007.htm >-css2.1/20110323/abspos-containing-block-initial-009b.htm >-css2.1/20110323/abspos-containing-block-initial-009e.htm >-css2.1/t0804-c5509-padn-l-00-b-ag.html >-css2.1/t0804-c5509-padn-l-02-f.html > css2.1/20110323/at-import-001.htm > css2.1/20110323/at-import-002.htm > css2.1/20110323/at-import-003.htm >@@ -503,8 +506,14 @@ css2.1/20110323/at-import-007.htm > css2.1/20110323/at-import-009.htm > css2.1/20110323/at-import-010.htm > css2.1/20110323/at-import-011.htm >-css2.1/t0804-c5510-padn-00-b-ag.html > css2.1/20110323/background-intrinsic-003.htm >+css2.1/t0804-c5509-padn-l-00-b-ag.html >+css2.1/t0804-c5509-padn-l-02-f.html >+css2.1/20110323/background-intrinsic-008.htm >+css2.1/20110323/background-intrinsic-009.htm >+css2.1/20110323/block-non-replaced-height-001.htm >+css2.1/t0804-c5510-padn-00-b-ag.html >+css2.1/20110323/block-non-replaced-height-003.htm > css2.1/t0804-c5510-padn-02-f.html > css2.1/t0805-c5511-brdr-tw-01-b-g.html > css2.1/t0805-c5511-brdr-tw-02-b.html >@@ -513,33 +522,27 @@ css2.1/t0805-c5512-brdr-rw-00-b.html > css2.1/t0805-c5512-brdr-rw-01-b-g.html > css2.1/t0805-c5512-brdr-rw-02-b.html > css2.1/t0805-c5512-brdr-rw-03-b.html >-css2.1/20110323/background-intrinsic-008.htm >-css2.1/20110323/background-intrinsic-009.htm >-css2.1/20110323/block-non-replaced-height-001.htm >+css2.1/20110323/block-non-replaced-height-007.htm >+css2.1/20110323/block-non-replaced-height-009.htm > css2.1/t0805-c5513-brdr-bw-01-b-g.html > css2.1/t0805-c5513-brdr-bw-02-b.html > css2.1/t0805-c5513-brdr-bw-03-b.html >-css2.1/20110323/block-non-replaced-height-003.htm >+css2.1/20110323/block-non-replaced-height-011.htm > css2.1/t0805-c5514-brdr-lw-00-b.html > css2.1/t0805-c5514-brdr-lw-01-b-g.html > css2.1/t0805-c5514-brdr-lw-02-b.html > css2.1/t0805-c5514-brdr-lw-03-b.html >+css2.1/20110323/block-non-replaced-height-013.htm > css2.1/t0805-c5515-brdr-w-00-a.html > css2.1/t0805-c5515-brdr-w-01-b-g.html > css2.1/t0805-c5515-brdr-w-02-b.html >+css2.1/20110323/block-non-replaced-height-015.htm > css2.1/t0805-c5516-brdr-c-00-a.html > css2.1/t0805-c5516-ibrdr-c-00-a.html > css2.1/t0805-c5517-brdr-s-00-c.html > css2.1/t0805-c5517-ibrdr-s-00-a.html > css2.1/t0805-c5518-brdr-t-00-a.html >-css2.1/20110323/block-non-replaced-height-007.htm > css2.1/t0805-c5518-ibrdr-t-00-a.html >-css2.1/20110323/block-non-replaced-height-009.htm >-css2.1/20110323/block-non-replaced-height-011.htm >-css2.1/20110323/block-non-replaced-height-013.htm >-css2.1/20110323/block-non-replaced-height-015.htm >-css2.1/t0805-c5520-brdr-b-00-a.html >-css2.1/t0805-c5520-ibrdr-b-00-a.html > css2.1/20110323/block-non-replaced-width-003.htm > css2.1/20110323/block-non-replaced-width-004.htm > css2.1/20110323/block-non-replaced-width-005.htm >@@ -547,14 +550,20 @@ css2.1/20110323/block-non-replaced-width-006.htm > css2.1/20110323/block-non-replaced-width-007.htm > css2.1/20110323/block-non-replaced-width-008.htm > css2.1/20110323/block-replaced-height-001.htm >+css2.1/20110323/block-replaced-height-003.htm > css2.1/20110323/block-replaced-height-004.htm > css2.1/20110323/block-replaced-height-005.htm > css2.1/20110323/block-replaced-height-007.htm > css2.1/20110323/block-replaced-width-001.htm >+css2.1/20110323/block-replaced-width-006.htm >+css2.1/t0805-c5520-brdr-b-00-a.html >+css2.1/t0805-c5520-ibrdr-b-00-a.html > css2.1/t0805-c5522-brdr-00-b.html > css2.1/t0905-c414-flt-00-d.html > css2.1/t0905-c414-flt-01-d-g.html >+css2.1/t0905-c5525-fltclr-00-c-ag.html > css2.1/t0905-c5525-fltinln-00-c-ag.html >+css2.1/t0905-c5526-fltclr-00-c-ag.html > css2.1/t1001-abs-pos-cb-01-b.html > css2.1/t1001-abs-pos-cb-02-b.html > css2.1/t1001-abs-pos-cb-03-b.html >@@ -663,13 +672,14 @@ css2.1/t051103-dom-hover-02-c-io.html > css2.1/t060402-c31-important-00-b.html > css2.1/t060403-c21-pseu-cls-00-e-i.html > css2.1/t060403-c21-pseu-id-00-e-i.html >-css2.1/t090501-c414-flt-00-d.html > css2.1/20110323/clip-001.html > css2.1/20110323/dynamic-top-change-001.htm > css2.1/20110323/dynamic-top-change-004.htm >-css2.1/t100303-c412-blockw-00-d-ag.html >+css2.1/t090501-c414-flt-00-d.html >+css2.1/t090501-c414-flt-02-d-g.html > css2.1/20110323/empty-inline-001.htm > css2.1/20110323/eof-001.htm >+css2.1/t100303-c412-blockw-00-d-ag.html > css2.1/20110323/eof-002.htm > css2.1/20110323/eof-003.htm > css2.1/20110323/eof-004.htm >@@ -683,18 +693,29 @@ css2.1/20110323/float-non-replaced-width-003.htm > css2.1/20110323/float-non-replaced-width-004.htm > css2.1/20110323/float-non-replaced-width-005.htm > css2.1/20110323/float-non-replaced-width-006.htm >+css2.1/20110323/float-non-replaced-width-010.htm > css2.1/t100801-c548-ln-ht-01-b-ag.html > css2.1/t100801-c548-ln-ht-02-b-ag.html > css2.1/t100801-c548-ln-ht-03-d-ag.html > css2.1/t100801-c548-ln-ht-04-d-ag.html > css2.1/t120401-scope-00-b.html >-css2.1/20110323/float-non-replaced-width-010.htm >+css2.1/20110323/float-non-replaced-width-012.htm >+css2.1/20110323/float-replaced-height-001.htm >+css2.1/20110323/float-replaced-height-004.htm >+css2.1/20110323/float-replaced-height-005.htm >+css2.1/20110323/float-replaced-height-007.htm >+css2.1/20110323/float-replaced-width-001.htm >+css2.1/20110323/float-replaced-width-002.htm >+css2.1/20110323/float-replaced-width-003.htm >+css2.1/20110323/float-replaced-width-004.htm >+css2.1/20110323/float-replaced-width-005.htm >+css2.1/20110323/float-replaced-width-006.htm >+css2.1/20110323/float-replaced-width-011.htm > css2.1/t120401-scope-04-d.html > css2.1/t120403-content-none-00-c.html > css2.1/t120403-display-none-00-c.html > css2.1/t120403-visibility-00-c.html >-css2.1/20110323/float-non-replaced-width-012.htm >-css2.1/20110323/float-replaced-height-001.htm >+css2.1/20110323/floats-001.html > css2.1/t140201-c532-bgcolor-01-b.html > css2.1/t140201-c533-bgimage-01-b-g.html > css2.1/t140201-c534-bgre-00-b-ag.html >@@ -709,30 +730,24 @@ css2.1/t140201-c535-bg-fixd-00-b-g.html > css2.1/t140201-c536-bgpos-00-b-ag.html > css2.1/t140201-c536-bgpos-01-b-ag.html > css2.1/t140201-c537-bgfxps-00-c-ag.html >-css2.1/20110323/float-replaced-height-004.htm >-css2.1/20110323/float-replaced-height-005.htm >-css2.1/20110323/float-replaced-height-007.htm >-css2.1/20110323/float-replaced-width-001.htm >-css2.1/20110323/float-replaced-width-002.htm >-css2.1/20110323/float-replaced-width-003.htm >-css2.1/20110323/float-replaced-width-004.htm >-css2.1/20110323/float-replaced-width-005.htm >-css2.1/20110323/float-replaced-width-006.htm >-css2.1/20110323/floats-001.html > css2.1/20110323/inline-block-non-replaced-width-001.htm > css2.1/20110323/inline-block-non-replaced-width-002.htm > css2.1/20110323/inline-block-replaced-height-001.htm > css2.1/20110323/inline-block-replaced-height-002.htm >+css2.1/20110323/inline-block-replaced-height-003.htm > css2.1/20110323/inline-block-replaced-height-004.htm > css2.1/20110323/inline-block-replaced-height-005.htm > css2.1/20110323/inline-block-replaced-height-007.htm > css2.1/20110323/inline-block-replaced-width-001.htm >+css2.1/20110323/inline-block-replaced-width-006.htm > css2.1/20110323/inline-box-002.htm > css2.1/20110323/inline-replaced-height-001.htm > css2.1/20110323/inline-replaced-height-002.htm >+css2.1/20110323/inline-replaced-height-003.htm > css2.1/20110323/inline-replaced-height-004.htm > css2.1/20110323/inline-replaced-height-005.htm > css2.1/20110323/inline-replaced-height-007.htm >+css2.1/20110323/inline-replaced-width-006.htm > css2.1/20110323/inline-replaced-width-011.htm > css2.1/20110323/inline-replaced-width-014.htm > css2.1/20110323/margin-applies-to-009.htm >@@ -743,4 +758,6 @@ css2.1/20110323/outline-color-001.htm > css2.1/20110323/outline-color-applies-to-008.htm > css2.1/20110323/overflow-applies-to-009.htm > css2.1/20110323/overflow-applies-to-012.htm >+css2.1/20110323/vertical-align-boxes-001.htm > css2.1/20110323/width-non-replaced-inline-001.htm >+css2.1/20110323/width-replaced-element-001.htm
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
koivisto
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194154
: 360859