Bug 1799580 - Remove display: -moz-popup. r=TYLin

We already rely on it applying only to XULPopupElement's. Make it
explicit and remove the CSS value.

Differential Revision: https://phabricator.services.mozilla.com/D161552
This commit is contained in:
Emilio Cobos Álvarez 2022-11-09 14:19:22 +00:00
Родитель 5c5c337a98
Коммит 58a308d108
28 изменённых файлов: 56 добавлений и 173 удалений

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

@ -284,7 +284,7 @@ function is_hidden(element) {
if (style.visibility != "visible") {
return true;
}
if (style.display == "-moz-popup") {
if (XULPopupElement.isInstance(element)) {
return ["hiding", "closed"].includes(element.state);
}

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

@ -5596,7 +5596,7 @@ class OverflowableToolbar {
let style = win.getComputedStyle(child);
if (
style.display == "none" ||
style.display == "-moz-popup" ||
win.XULPopupElement.isInstance(child) ||
(style.position != "static" && style.position != "relative")
) {
continue;

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

@ -39,14 +39,15 @@ const EVENT_TYPES = [
* they need to read style or layout information, like other code normally does.
*/
function is_visible(element) {
var style = element.ownerGlobal.getComputedStyle(element);
let win = element.ownerGlobal;
let style = win.getComputedStyle(element);
if (style.display == "none") {
return false;
}
if (style.visibility != "visible") {
return false;
}
if (style.display == "-moz-popup" && element.state != "open") {
if (win.XULPopupElement.isInstance(element) && element.state != "open") {
return false;
}

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

@ -68,14 +68,15 @@ function taskify(fun) {
}
function is_hidden(element) {
var style = element.ownerGlobal.getComputedStyle(element);
let win = element.ownerGlobal;
let style = win.getComputedStyle(element);
if (style.display == "none") {
return true;
}
if (style.visibility != "visible") {
return true;
}
if (style.display == "-moz-popup") {
if (win.XULPopupElement.isInstance(element)) {
return ["hiding", "closed"].includes(element.state);
}
@ -88,14 +89,15 @@ function is_hidden(element) {
}
function is_visible(element) {
var style = element.ownerGlobal.getComputedStyle(element);
let win = element.ownerGlobal;
let style = win.getComputedStyle(element);
if (style.display == "none") {
return false;
}
if (style.visibility != "visible") {
return false;
}
if (style.display == "-moz-popup" && element.state != "open") {
if (win.XULPopupElement.isInstance(element) && element.state != "open") {
return false;
}

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

@ -3486,7 +3486,7 @@ nsresult EventStateManager::PostHandleEvent(nsPresContext* aPresContext,
// If the mousedown happened inside a popup, don't try to set focus on
// one of its containing elements
if (frame->StyleDisplay()->mDisplay == StyleDisplay::MozPopup) {
if (frame->IsMenuPopupFrame()) {
newFocus = nullptr;
break;
}

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

@ -8,14 +8,13 @@ function init()
var c1 = document.getElementById("c1");
var f1 = document.getElementById("f1");
var a1 = document.getElementById("a1");
function first()
{
f1.style.display = "-moz-popup";
c1.style.height = "2em";
window.status = "A";
}
function second()
{
c1.style.position = "absolute";

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

@ -1,9 +0,0 @@
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<body>
<div style="display: -moz-popup"></div>
</body>
</html>

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

@ -113,7 +113,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
</q>
</q>
</p>
<p style=" display: -moz-popup; direction: ltr;">
<p style=" direction: ltr;">
<q style=" display: table-header-group; ">
<q style=" display: table-cell; ">
<q style=" display: table; direction: ltr;">
@ -314,7 +314,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" position: fixed; direction: rtl;">
<s style=" display: -moz-inline-box; direction: rtl;">mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
</s>
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
</bdo>
</s>
</bdo>
@ -345,7 +345,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<s style=" position: fixed; direction: rtl;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden; ">
<q style=" display: list-item; direction: ltr;">
</q>
</bdo>
@ -378,12 +378,12 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<s style=" position: fixed; direction: rtl;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
</q>
</bdo>
</s>
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
</q>
</bdo>
@ -414,7 +414,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
</q>
</bdo>
@ -448,7 +448,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
</q>
</bdo>
@ -479,7 +479,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<samp style=" display: inherit; position: fixed; direction: ltr;">mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<nobr style=" display: -moz-inline-box; position: absolute; direction: ltr;">
@ -553,7 +553,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">
<s style="overflow: auto; display: inline-table; ">
<s style=" display: table-column-group; direction: rtl;">
@ -598,7 +598,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">
<s style="overflow: auto; display: inline-table; ">
<s style=" display: table-column-group; direction: rtl;">
@ -639,7 +639,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">
<s style="overflow: auto; display: inline-table; ">
<s style=" display: table-column-group; direction: rtl;">
@ -699,7 +699,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">
<s style="overflow: auto; display: inline-table; ">
<s style=" display: table-column-group; direction: rtl;">
@ -740,7 +740,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">
<s style="overflow: auto; display: inline-table; ">
<s style=" display: table-column-group; direction: rtl;">
@ -780,7 +780,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<q style=" display: list-item; direction: ltr;">
<s style="overflow: auto; display: inline-table; ">
<s style=" display: table-column-group; direction: rtl;">
@ -880,7 +880,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<s style="overflow: auto; display: inline-table; ">
<s style=" display: table-column-group; direction: rtl;">
<bdo style=" display: inline-block; direction: rtl;">
@ -919,7 +919,7 @@ mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m mm m
<s style=" display: table-cell;">
<bdo style=" display: -moz-box;">
<bdo style="overflow: scroll; display: -moz-box; float: right;">
<bdo style="overflow: hidden; display: -moz-popup; ">
<bdo style="overflow: hidden;">
<s style="overflow: auto; display: inline-table; ">
<s style=" display: table-column-group; direction: rtl;">
<bdo style=" display: inline-block; direction: rtl;">

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

@ -1,3 +1,3 @@
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" style="display: table;">
<box style="display: -moz-popup;"/>
</window>
<panel/>
</window>

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

@ -1,12 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg"><foreignObject id="fo">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: -moz-popup;"></div></foreignObject><script>
function boom()
{
document.getElementById("fo").style.MozAppearance = "menuitem";
}
window.addEventListener("load", boom, false);
</script></svg>

До

Ширина:  |  Высота:  |  Размер: 320 B

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

@ -137,7 +137,6 @@ load 369547-2.html
load 369945-1.xhtml
load 371681-1.xhtml
load 372237-1.html
load 372475-1.xhtml
load 372550-1.html
load 373628-1.html
load 374297-1.html
@ -328,7 +327,6 @@ load 595039-1.html
load 597924-1.html
load 606432-1.html
load 609821-1.xhtml
load 613817-1.svg
load 615146-1.html
load 615781-1.xhtml
load 616495-single-side-composite-color-border.html

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

@ -2399,14 +2399,12 @@ nsIFrame* nsCSSFrameConstructor::ConstructDocElementFrame(
} else if (display->mDisplay == StyleDisplay::Flex ||
display->mDisplay == StyleDisplay::WebkitBox ||
display->mDisplay == StyleDisplay::Grid ||
display->mDisplay == StyleDisplay::MozBox ||
display->mDisplay == StyleDisplay::MozPopup) {
display->mDisplay == StyleDisplay::MozBox) {
auto func = [&] {
if (display->mDisplay == StyleDisplay::Grid) {
return NS_NewGridContainerFrame;
}
if ((display->mDisplay == StyleDisplay::MozBox ||
display->mDisplay == StyleDisplay::MozPopup) &&
if (display->mDisplay == StyleDisplay::MozBox &&
!computedStyle->StyleVisibility()->EmulateMozBoxWithFlex()) {
return NS_NewBoxFrame;
}
@ -4022,6 +4020,8 @@ const nsCSSFrameConstructor::FrameConstructionData*
nsCSSFrameConstructor::FindXULTagData(const Element& aElement,
ComputedStyle& aStyle) {
MOZ_ASSERT(aElement.IsXULElement());
static constexpr FrameConstructionData kPopupData(
NS_NewMenuPopupFrame, FCDATA_IS_POPUP | FCDATA_SKIP_ABSPOS_PUSH);
static constexpr FrameConstructionDataByTag sXULTagData[] = {
SIMPLE_XUL_CREATE(image, NS_NewImageBoxFrame),
@ -4047,7 +4047,11 @@ nsCSSFrameConstructor::FindXULTagData(const Element& aElement,
SIMPLE_XUL_CREATE(splitter, NS_NewSplitterFrame),
SIMPLE_XUL_CREATE(slider, NS_NewSliderFrame),
SIMPLE_XUL_CREATE(scrollbar, NS_NewScrollbarFrame),
SIMPLE_XUL_CREATE(scrollbarbutton, NS_NewScrollbarButtonFrame)};
SIMPLE_XUL_CREATE(scrollbarbutton, NS_NewScrollbarButtonFrame),
{nsGkAtoms::panel, kPopupData},
{nsGkAtoms::menupopup, kPopupData},
{nsGkAtoms::tooltip, kPopupData},
};
return FindDataByTag(aElement, aStyle, sXULTagData, ArrayLength(sXULTagData));
}
@ -4457,11 +4461,6 @@ nsCSSFrameConstructor::FindDisplayData(const nsStyleDisplay& aDisplay,
FCDATA_DESIRED_PARENT_TYPE_TO_BITS(eTypeRuby));
return &data;
}
case StyleDisplayInside::MozPopup: {
static constexpr FrameConstructionData data(
NS_NewMenuPopupFrame, FCDATA_IS_POPUP | FCDATA_SKIP_ABSPOS_PUSH);
return &data;
}
default:
MOZ_ASSERT_UNREACHABLE("unknown 'display' value");
return nullptr;
@ -5465,15 +5464,6 @@ void nsCSSFrameConstructor::ConstructFramesFromItem(
nsContainerFrame* aParentFrame, nsFrameList& aFrameList) {
FrameConstructionItem& item = aIter.item();
ComputedStyle* computedStyle = item.mComputedStyle;
const auto* disp = computedStyle->StyleDisplay();
MOZ_ASSERT(!disp->IsAbsolutelyPositionedStyle() ||
disp->DisplayInside() != StyleDisplayInside::MozBox,
"This may be a frame that was previously blockified "
"but isn't any longer! It probably needs explicit "
"'display:block' to preserve behavior");
Unused << disp; // (unused in configs that define the assertion away)
if (item.mIsText) {
// If this is collapsible whitespace next to a line boundary,
// don't create a frame. item.IsWhitespace() also sets the
@ -5843,10 +5833,6 @@ bool nsCSSFrameConstructor::IsValidSibling(nsIFrame* aSibling,
}
StyleDisplay display = aDisplay.value();
if (LayoutFrameType::Menu == parentType) {
return (StyleDisplay::MozPopup == display) ==
(StyleDisplay::MozPopup == siblingDisplay);
}
// To have decent performance we want to return false in cases in which
// reordering the two siblings has no effect on display. To ensure
// correctness, we MUST return false in cases where the two siblings have

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

@ -422,8 +422,7 @@ bool nsFrameIterator::IsPopupFrame(nsIFrame* aFrame) {
if (mSkipPopupChecks) {
return false;
}
return (aFrame && aFrame->StyleDisplay()->mDisplay == StyleDisplay::MozPopup);
return aFrame && aFrame->IsMenuPopupFrame();
}
// nsVisualIterator implementation

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

@ -1,8 +0,0 @@
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div>Foo</div>
</body>
</html>

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

@ -1,8 +0,0 @@
<!DOCTYPE html>
<html>
<head>
</head>
<body onload="document.getElementById('f1').style.display = '';">
<div id="f1" style="display: -moz-popup;">Foo</div>
</body>
</html>

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

@ -1314,7 +1314,6 @@ fuzzy(0-1,0-5) == 482659-1d.html 482659-1-ref.html
== 488685-1.html 488685-1-ref.html
== 488692-1.html 488692-1-ref.html
== 489868-1.svg 489868-1-ref.svg
== 490173-1.html 490173-1-ref.html
== 490173-2.html 490173-2-ref.html
== 490176-1.html 490176-1-ref.html
== 490177-1.svg 490177-1-ref.svg

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

@ -68,7 +68,7 @@ window.addEventListener("MozReftestInvalidate", boom);
</div>
<div style="display:table; border-spacing:10px; background-color:teal">
<div id="target10" style="display:-moz-popup">target</div>
<div id="target10">target</div>
</div>
<div style="display:table; border-spacing:10px; background-color:SkyBlue ">

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

@ -91,8 +91,6 @@ enum class StyleDisplay : uint16_t {
StyleDisplayFrom(StyleDisplayOutside::Block, StyleDisplayInside::MozBox),
MozInlineBox =
StyleDisplayFrom(StyleDisplayOutside::Inline, StyleDisplayInside::MozBox),
MozPopup =
StyleDisplayFrom(StyleDisplayOutside::XUL, StyleDisplayInside::MozPopup),
};
// The order of the StyleDisplay values isn't meaningful.
bool operator<(const StyleDisplay&, const StyleDisplay&) = delete;

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

@ -19,7 +19,6 @@ const NON_CONTENT_ACCESSIBLE_VALUES = {
"-moz-autofill-background",
],
"display": [
"-moz-popup",
"-moz-box",
"-moz-inline-box",
],

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

@ -1,8 +0,0 @@
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="Crash [@ DoDeletingFrameSubtree] after reloading a xul page a few times with display: -moz-popup and menuitem">
<menuitem style="display: -moz-popup;">
<box style="display: -moz-popup;">
<box style="display: -moz-popup;"/>
</box>
</menuitem>
</window>

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

@ -16,7 +16,6 @@ skip-if(Android) load chrome://reftest/content/crashtests/layout/xul/crashtests/
load 329407-1.xml
load chrome://reftest/content/crashtests/layout/xul/crashtests/336962-1.xhtml
skip-if(Android) load chrome://reftest/content/crashtests/layout/xul/crashtests/344228-1.xhtml
load chrome://reftest/content/crashtests/layout/xul/crashtests/350460.xhtml
skip-if(Android) load chrome://reftest/content/crashtests/layout/xul/crashtests/365151.xhtml
load chrome://reftest/content/crashtests/layout/xul/crashtests/366112-1.xhtml
skip-if(Android) load chrome://reftest/content/crashtests/layout/xul/crashtests/366203-1.xhtml

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

@ -15,7 +15,6 @@ support-files =
[test_blockify_moz_box.html]
[test_bug159346.xhtml]
[test_bug372685.xhtml]
[test_bug381167.xhtml]
[test_bug398982-1.xhtml]
[test_bug398982-2.xhtml]

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

@ -1,49 +0,0 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
title="Test for Bug 372685">
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=372685
-->
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<menuitem id="a" style="display: -moz-box;">
<box id="b" style="display: -moz-popup; ">
<box id="c" style="position: fixed; display: block;"></box>
</box>
</menuitem>
<script class="testbody" type="application/javascript">
<![CDATA[
function removestyles(i){
document.getElementById('a').removeAttribute('style');
var x=document.getElementById('html_body').offsetHeight;
is(0, 0, "this is a crash test, so always ok if we survive this far");
SimpleTest.finish();
}
function do_test() {
setTimeout(removestyles,200);
}
SimpleTest.waitForExplicitFinish();
]]>
</script>
<body id="html_body" xmlns="http://www.w3.org/1999/xhtml">
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=372685">Mozilla Bug 372685</a>
<p id="display"></p>
<pre id="test">
</pre>
<script>
addLoadEvent(do_test);
</script>
</body>
</window>

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

@ -104,8 +104,6 @@ pub enum DisplayInside {
WebkitBox,
#[cfg(feature = "gecko")]
MozBox,
#[cfg(feature = "gecko")]
MozPopup,
}
#[allow(missing_docs)]
@ -217,8 +215,6 @@ impl Display {
pub const MozBox: Self = Self::new(DisplayOutside::Block, DisplayInside::MozBox);
#[cfg(feature = "gecko")]
pub const MozInlineBox: Self = Self::new(DisplayOutside::Inline, DisplayInside::MozBox);
#[cfg(feature = "gecko")]
pub const MozPopup: Self = Self::new(DisplayOutside::XUL, DisplayInside::MozPopup);
/// Make a raw display value from <display-outside> and <display-inside> values.
#[inline]
@ -597,8 +593,6 @@ impl Parse for Display {
"-moz-box" if moz_display_values_enabled(context) => Display::MozBox,
#[cfg(feature = "gecko")]
"-moz-inline-box" if moz_display_values_enabled(context) => Display::MozInlineBox,
#[cfg(feature = "gecko")]
"-moz-popup" if moz_display_values_enabled(context) => Display::MozPopup,
})
}
}

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

@ -295,14 +295,15 @@ var BrowserTestUtils = {
* @return {boolean}
*/
is_hidden(element) {
var style = element.ownerGlobal.getComputedStyle(element);
let win = element.ownerGlobal;
let style = win.getComputedStyle(element);
if (style.display == "none") {
return true;
}
if (style.visibility != "visible") {
return true;
}
if (style.display == "-moz-popup") {
if (win.XULPopupElement.isInstance(element)) {
return ["hiding", "closed"].includes(element.state);
}
@ -323,14 +324,15 @@ var BrowserTestUtils = {
* @return {boolean}
*/
is_visible(element) {
var style = element.ownerGlobal.getComputedStyle(element);
let win = element.ownerGlobal;
let style = win.getComputedStyle(element);
if (style.display == "none") {
return false;
}
if (style.visibility != "visible") {
return false;
}
if (style.display == "-moz-popup" && element.state != "open") {
if (win.XULPopupElement.isInstance(element) && element.state != "open") {
return false;
}

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

@ -27,12 +27,15 @@ var NarrateTestUtils = {
FORWARD: ".narrate-skip-next",
isVisible(element) {
let style = element.ownerGlobal.getComputedStyle(element);
let win = element.ownerGlobal;
let style = win.getComputedStyle(element);
if (style.display == "none") {
return false;
} else if (style.visibility != "visible") {
}
if (style.visibility != "visible") {
return false;
} else if (style.display == "-moz-popup" && element.state != "open") {
}
if (win.XULPopupElement.isInstance(element) && element.state != "open") {
return false;
}

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

@ -182,7 +182,7 @@
return NodeFilter.FILTER_REJECT;
}
// but it may be a popup element, in which case we look at "state"...
if (cs.display == "-moz-popup" && node.state != "open") {
if (XULPopupElement.isInstance(node) && node.state != "open") {
return NodeFilter.FILTER_REJECT;
}
// OK - the node seems visible, so it is a candidate.

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

@ -270,7 +270,6 @@ panel {
menupopup,
panel,
tooltip {
display: -moz-popup;
position: absolute;
-moz-top-layer: top;
/* Popups can't have overflow */