Bug 1639963 - Define the default size for replaced elements. r=dholbert

Differential Revision: https://phabricator.services.mozilla.com/D81006
This commit is contained in:
Boris Chiou 2020-08-17 07:10:39 +00:00
Родитель cb69cd917a
Коммит 5b6832c5f3
3 изменённых файлов: 13 добавлений и 5 удалений

Просмотреть файл

@ -28,4 +28,10 @@
#define NS_INTRINSIC_ISIZE_UNKNOWN nscoord_MIN
// The fallback size of width is 300px and the aspect-ratio is 2:1, based on the
// spec definition in CSS2 section 10.3.2:
// https://drafts.csswg.org/css2/visudet.html#inline-replaced-width
#define REPLACED_ELEM_FALLBACK_PX_WIDTH 300
#define REPLACED_ELEM_FALLBACK_PX_HEIGHT 150
#endif // LayoutConstants_h___

Просмотреть файл

@ -624,9 +624,11 @@ IntrinsicSize nsSubDocumentFrame::GetIntrinsicSize() {
return {}; // XUL <iframe> and <browser> have no useful intrinsic size
}
// We must be an HTML <iframe>. Default to size of 300px x 150px, for IE
// compat (and per CSS2.1 draft)
return IntrinsicSize(CSSPixel::ToAppUnits(300), CSSPixel::ToAppUnits(150));
// We must be an HTML <iframe>. Default to size of
// REPLACED_ELEM_FALLBACK_PX_WIDTH x REPLACED_ELEM_FALLBACK_PX_HEIGHT (i.e.
// 300px x 150px), for IE compat (and per CSS2.1 draft)
return IntrinsicSize(CSSPixel::ToAppUnits(REPLACED_ELEM_FALLBACK_PX_WIDTH),
CSSPixel::ToAppUnits(REPLACED_ELEM_FALLBACK_PX_HEIGHT));
}
/* virtual */

Просмотреть файл

@ -671,8 +671,8 @@ nsSize nsVideoFrame::GetVideoIntrinsicSize(gfxContext* aRenderingContext) {
return nsSize(0, 0);
}
// Defaulting size to 300x150 if no size given.
nsIntSize size(300, 150);
nsIntSize size(REPLACED_ELEM_FALLBACK_PX_WIDTH,
REPLACED_ELEM_FALLBACK_PX_HEIGHT);
HTMLVideoElement* element = static_cast<HTMLVideoElement*>(GetContent());
if (NS_FAILED(element->GetVideoSize(&size)) && ShouldDisplayPoster()) {