mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-26 09:07:30 +09:00
Bug 1271549 - Remove details and summary preference.
Tag UXP Issue #1344
This commit is contained in:
parent
e8e20e994d
commit
a2e1955dc6
20 changed files with 21 additions and 121 deletions
|
|
@ -6,39 +6,11 @@
|
||||||
#include "mozilla/dom/HTMLDetailsElement.h"
|
#include "mozilla/dom/HTMLDetailsElement.h"
|
||||||
|
|
||||||
#include "mozilla/dom/HTMLDetailsElementBinding.h"
|
#include "mozilla/dom/HTMLDetailsElementBinding.h"
|
||||||
#include "mozilla/dom/HTMLUnknownElement.h"
|
NS_IMPL_NS_NEW_HTML_ELEMENT(Details)
|
||||||
#include "mozilla/Preferences.h"
|
|
||||||
|
|
||||||
// Expand NS_IMPL_NS_NEW_HTML_ELEMENT(Details) to add pref check.
|
|
||||||
nsGenericHTMLElement*
|
|
||||||
NS_NewHTMLDetailsElement(already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
|
||||||
mozilla::dom::FromParser aFromParser)
|
|
||||||
{
|
|
||||||
if (!mozilla::dom::HTMLDetailsElement::IsDetailsEnabled()) {
|
|
||||||
return new mozilla::dom::HTMLUnknownElement(aNodeInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new mozilla::dom::HTMLDetailsElement(aNodeInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
namespace dom {
|
namespace dom {
|
||||||
|
|
||||||
/* static */ bool
|
|
||||||
HTMLDetailsElement::IsDetailsEnabled()
|
|
||||||
{
|
|
||||||
static bool isDetailsEnabled = false;
|
|
||||||
static bool added = false;
|
|
||||||
|
|
||||||
if (!added) {
|
|
||||||
Preferences::AddBoolVarCache(&isDetailsEnabled,
|
|
||||||
"dom.details_element.enabled");
|
|
||||||
added = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return isDetailsEnabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
HTMLDetailsElement::~HTMLDetailsElement()
|
HTMLDetailsElement::~HTMLDetailsElement()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,6 @@ class HTMLDetailsElement final : public nsGenericHTMLElement
|
||||||
public:
|
public:
|
||||||
using NodeInfo = mozilla::dom::NodeInfo;
|
using NodeInfo = mozilla::dom::NodeInfo;
|
||||||
|
|
||||||
static bool IsDetailsEnabled();
|
|
||||||
|
|
||||||
explicit HTMLDetailsElement(already_AddRefed<NodeInfo>& aNodeInfo)
|
explicit HTMLDetailsElement(already_AddRefed<NodeInfo>& aNodeInfo)
|
||||||
: nsGenericHTMLElement(aNodeInfo)
|
: nsGenericHTMLElement(aNodeInfo)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -14,17 +14,7 @@
|
||||||
#include "mozilla/TextEvents.h"
|
#include "mozilla/TextEvents.h"
|
||||||
#include "nsFocusManager.h"
|
#include "nsFocusManager.h"
|
||||||
|
|
||||||
// Expand NS_IMPL_NS_NEW_HTML_ELEMENT(Summary) to add pref check.
|
NS_IMPL_NS_NEW_HTML_ELEMENT(Summary)
|
||||||
nsGenericHTMLElement*
|
|
||||||
NS_NewHTMLSummaryElement(already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
|
||||||
mozilla::dom::FromParser aFromParser)
|
|
||||||
{
|
|
||||||
if (!mozilla::dom::HTMLDetailsElement::IsDetailsEnabled()) {
|
|
||||||
return new mozilla::dom::HTMLUnknownElement(aNodeInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new mozilla::dom::HTMLSummaryElement(aNodeInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
namespace dom {
|
namespace dom {
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,6 @@ interface GlobalEventHandlers {
|
||||||
[Pref="dom.select_events.enabled"]
|
[Pref="dom.select_events.enabled"]
|
||||||
attribute EventHandler onselectstart;
|
attribute EventHandler onselectstart;
|
||||||
|
|
||||||
[Pref="dom.details_element.enabled"]
|
|
||||||
attribute EventHandler ontoggle;
|
attribute EventHandler ontoggle;
|
||||||
|
|
||||||
// Pointer events handlers
|
// Pointer events handlers
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@
|
||||||
* and create derivative works of this document.
|
* and create derivative works of this document.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
[Pref="dom.details_element.enabled"]
|
|
||||||
interface HTMLDetailsElement : HTMLElement {
|
interface HTMLDetailsElement : HTMLElement {
|
||||||
[SetterThrows]
|
[SetterThrows]
|
||||||
attribute boolean open;
|
attribute boolean open;
|
||||||
|
|
|
||||||
|
|
@ -3563,10 +3563,6 @@ nsCSSFrameConstructor::FindHTMLData(Element* aElement,
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aTag == nsGkAtoms::details && !HTMLDetailsElement::IsDetailsEnabled()) {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const FrameConstructionDataByTag sHTMLData[] = {
|
static const FrameConstructionDataByTag sHTMLData[] = {
|
||||||
SIMPLE_TAG_CHAIN(img, nsCSSFrameConstructor::FindImgData),
|
SIMPLE_TAG_CHAIN(img, nsCSSFrameConstructor::FindImgData),
|
||||||
SIMPLE_TAG_CHAIN(mozgeneratedcontentimage,
|
SIMPLE_TAG_CHAIN(mozgeneratedcontentimage,
|
||||||
|
|
@ -5788,7 +5784,7 @@ nsCSSFrameConstructor::AddFrameConstructionItemsInternal(nsFrameConstructorState
|
||||||
// ::before and ::after); we always want to create "internal" anonymous
|
// ::before and ::after); we always want to create "internal" anonymous
|
||||||
// content.
|
// content.
|
||||||
auto* details = HTMLDetailsElement::FromContentOrNull(parent);
|
auto* details = HTMLDetailsElement::FromContentOrNull(parent);
|
||||||
if (details && details->IsDetailsEnabled() && !details->Open() &&
|
if (details && !details->Open() &&
|
||||||
(!aContent->IsRootOfNativeAnonymousSubtree() ||
|
(!aContent->IsRootOfNativeAnonymousSubtree() ||
|
||||||
aContent->IsGeneratedContentContainerForBefore() ||
|
aContent->IsGeneratedContentContainerForBefore() ||
|
||||||
aContent->IsGeneratedContentContainerForAfter())) {
|
aContent->IsGeneratedContentContainerForAfter())) {
|
||||||
|
|
@ -5956,7 +5952,7 @@ nsCSSFrameConstructor::AddFrameConstructionItemsInternal(nsFrameConstructorState
|
||||||
}
|
}
|
||||||
|
|
||||||
FrameConstructionItem* item = nullptr;
|
FrameConstructionItem* item = nullptr;
|
||||||
if (details && details->IsDetailsEnabled() && details->Open()) {
|
if (details && details->Open()) {
|
||||||
auto* summary = HTMLSummaryElement::FromContentOrNull(aContent);
|
auto* summary = HTMLSummaryElement::FromContentOrNull(aContent);
|
||||||
if (summary && summary->IsMainSummary()) {
|
if (summary && summary->IsMainSummary()) {
|
||||||
// If details is open, the main summary needs to be rendered as if it is
|
// If details is open, the main summary needs to be rendered as if it is
|
||||||
|
|
|
||||||
|
|
@ -606,19 +606,19 @@ pref(layout.css.grid.enabled,true) load 1225376.html
|
||||||
pref(layout.css.grid.enabled,true) load 1225592.html
|
pref(layout.css.grid.enabled,true) load 1225592.html
|
||||||
load 1229437-1.html
|
load 1229437-1.html
|
||||||
load 1229437-2.html
|
load 1229437-2.html
|
||||||
pref(dom.details_element.enabled,true) load details-containing-only-text.html
|
load details-containing-only-text.html
|
||||||
pref(dom.details_element.enabled,true) load details-display-none-summary-1.html
|
load details-display-none-summary-1.html
|
||||||
pref(dom.details_element.enabled,true) load details-display-none-summary-2.html
|
load details-display-none-summary-2.html
|
||||||
pref(dom.details_element.enabled,true) load details-display-none-summary-3.html
|
load details-display-none-summary-3.html
|
||||||
pref(dom.details_element.enabled,true) load details-open-overflow-auto.html
|
load details-open-overflow-auto.html
|
||||||
pref(dom.details_element.enabled,true) load details-open-overflow-hidden.html
|
load details-open-overflow-hidden.html
|
||||||
pref(dom.details_element.enabled,true) load details-three-columns.html
|
load details-three-columns.html
|
||||||
load first-letter-638937-1.html
|
load first-letter-638937-1.html
|
||||||
load first-letter-638937-2.html
|
load first-letter-638937-2.html
|
||||||
load flex-nested-abspos-1.html
|
load flex-nested-abspos-1.html
|
||||||
pref(dom.meta-viewport.enabled,true) test-pref(font.size.inflation.emPerLine,15) asserts(0-100) load font-inflation-762332.html # bug 762332
|
pref(dom.meta-viewport.enabled,true) test-pref(font.size.inflation.emPerLine,15) asserts(0-100) load font-inflation-762332.html # bug 762332
|
||||||
load outline-on-frameset.xhtml
|
load outline-on-frameset.xhtml
|
||||||
pref(dom.details_element.enabled,true) load summary-position-out-of-flow.html
|
load summary-position-out-of-flow.html
|
||||||
load text-overflow-bug666751-1.html
|
load text-overflow-bug666751-1.html
|
||||||
load text-overflow-bug666751-2.html
|
load text-overflow-bug666751-2.html
|
||||||
load text-overflow-bug670564.xhtml
|
load text-overflow-bug670564.xhtml
|
||||||
|
|
|
||||||
|
|
@ -1890,12 +1890,10 @@ nsContainerFrame::RenumberFrameAndDescendants(int32_t* aOrdinal,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do not renumber list for summary elements.
|
// Do not renumber list for summary elements.
|
||||||
if (HTMLDetailsElement::IsDetailsEnabled()) {
|
HTMLSummaryElement* summary =
|
||||||
HTMLSummaryElement* summary =
|
HTMLSummaryElement::FromContent(kid->GetContent());
|
||||||
HTMLSummaryElement::FromContent(kid->GetContent());
|
if (summary && summary->IsMainSummary()) {
|
||||||
if (summary && summary->IsMainSummary()) {
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool kidRenumberedABullet = false;
|
bool kidRenumberedABullet = false;
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<!-- Any copyright is dedicated to the Public Domain.
|
|
||||||
- http://creativecommons.org/publicdomain/zero/1.0/ -->
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<body>
|
|
||||||
<div>
|
|
||||||
<p>This is the details.</p>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<!-- Any copyright is dedicated to the Public Domain.
|
|
||||||
- http://creativecommons.org/publicdomain/zero/1.0/ -->
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<body>
|
|
||||||
<div>
|
|
||||||
<div>Summary</div>
|
|
||||||
<p>This is the details.</p>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,10 +1,4 @@
|
||||||
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
|
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
|
||||||
default-preferences pref(dom.details_element.enabled,true)
|
|
||||||
|
|
||||||
# Disable <details> and <summary>
|
|
||||||
pref(dom.details_element.enabled,false) == single-summary.html single-summary.html
|
|
||||||
pref(dom.details_element.enabled,false) == open-single-summary.html open-single-summary.html
|
|
||||||
pref(dom.details_element.enabled,false) == no-summary.html no-summary.html
|
|
||||||
|
|
||||||
# Basic <summary> handling
|
# Basic <summary> handling
|
||||||
== multiple-summary.html multiple-summary.html
|
== multiple-summary.html multiple-summary.html
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,3 @@
|
||||||
default-preferences pref(dom.details_element.enabled,true)
|
|
||||||
|
|
||||||
# Disable <details> and <summary>
|
|
||||||
pref(dom.details_element.enabled,false) == single-summary.html disabled-single-summary-ref.html
|
|
||||||
pref(dom.details_element.enabled,false) == open-single-summary.html disabled-single-summary-ref.html
|
|
||||||
pref(dom.details_element.enabled,false) == no-summary.html disabled-no-summary-ref.html
|
|
||||||
|
|
||||||
# Basic <summary> handling
|
# Basic <summary> handling
|
||||||
== multiple-summary.html single-summary.html
|
== multiple-summary.html single-summary.html
|
||||||
== open-multiple-summary.html open-multiple-summary-ref.html
|
== open-multiple-summary.html open-multiple-summary-ref.html
|
||||||
|
|
|
||||||
|
|
@ -122,11 +122,6 @@ nsLayoutStylesheetCache::UASheet()
|
||||||
StyleSheet*
|
StyleSheet*
|
||||||
nsLayoutStylesheetCache::HTMLSheet()
|
nsLayoutStylesheetCache::HTMLSheet()
|
||||||
{
|
{
|
||||||
if (!mHTMLSheet) {
|
|
||||||
LoadSheetURL("resource://gre-resources/html.css",
|
|
||||||
&mHTMLSheet, eAgentSheetFeatures, eCrash);
|
|
||||||
}
|
|
||||||
|
|
||||||
return mHTMLSheet;
|
return mHTMLSheet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -322,6 +317,8 @@ nsLayoutStylesheetCache::nsLayoutStylesheetCache(StyleBackendType aType)
|
||||||
// per-profile, since they're profile-invariant.
|
// per-profile, since they're profile-invariant.
|
||||||
LoadSheetURL("resource://gre-resources/counterstyles.css",
|
LoadSheetURL("resource://gre-resources/counterstyles.css",
|
||||||
&mCounterStylesSheet, eAgentSheetFeatures, eCrash);
|
&mCounterStylesSheet, eAgentSheetFeatures, eCrash);
|
||||||
|
LoadSheetURL("resource://gre-resources/html.css",
|
||||||
|
&mHTMLSheet, eAgentSheetFeatures, eCrash);
|
||||||
LoadSheetURL("chrome://global/content/minimal-xul.css",
|
LoadSheetURL("chrome://global/content/minimal-xul.css",
|
||||||
&mMinimalXULSheet, eAgentSheetFeatures, eCrash);
|
&mMinimalXULSheet, eAgentSheetFeatures, eCrash);
|
||||||
LoadSheetURL("resource://gre-resources/quirk.css",
|
LoadSheetURL("resource://gre-resources/quirk.css",
|
||||||
|
|
@ -382,8 +379,6 @@ nsLayoutStylesheetCache::For(StyleBackendType aType)
|
||||||
// "layout.css.example-pref.enabled");
|
// "layout.css.example-pref.enabled");
|
||||||
Preferences::RegisterCallback(&DependentPrefChanged,
|
Preferences::RegisterCallback(&DependentPrefChanged,
|
||||||
"layout.css.grid.enabled");
|
"layout.css.grid.enabled");
|
||||||
Preferences::RegisterCallback(&DependentPrefChanged,
|
|
||||||
"dom.details_element.enabled");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return cache;
|
return cache;
|
||||||
|
|
@ -555,7 +550,6 @@ nsLayoutStylesheetCache::DependentPrefChanged(const char* aPref, void* aData)
|
||||||
gStyleCache_Servo ? &gStyleCache_Servo->sheet_ : nullptr);
|
gStyleCache_Servo ? &gStyleCache_Servo->sheet_ : nullptr);
|
||||||
|
|
||||||
INVALIDATE(mUASheet); // for layout.css.grid.enabled
|
INVALIDATE(mUASheet); // for layout.css.grid.enabled
|
||||||
INVALIDATE(mHTMLSheet); // for dom.details_element.enabled
|
|
||||||
|
|
||||||
#undef INVALIDATE
|
#undef INVALIDATE
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5336,9 +5336,6 @@ pref("dom.audiochannel.mutedByDefault", false);
|
||||||
// HTML <dialog> element
|
// HTML <dialog> element
|
||||||
pref("dom.dialog_element.enabled", false);
|
pref("dom.dialog_element.enabled", false);
|
||||||
|
|
||||||
// Enable <details> and <summary> tags.
|
|
||||||
pref("dom.details_element.enabled", true);
|
|
||||||
|
|
||||||
// Secure Element API
|
// Secure Element API
|
||||||
#ifdef MOZ_SECUREELEMENT
|
#ifdef MOZ_SECUREELEMENT
|
||||||
pref("dom.secureelement.enabled", false);
|
pref("dom.secureelement.enabled", false);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[interfaces.html]
|
[interfaces.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
prefs: [dom.forms.inputmode:true, dom.details_element.enabled:true, dom.dialog_element.enabled:true]
|
prefs: [dom.forms.inputmode:true, dom.dialog_element.enabled:true]
|
||||||
[Document interface: attribute domain]
|
[Document interface: attribute domain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[reflection-misc.html]
|
[reflection-misc.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
prefs: [dom.details_element.enabled: true, dom.dialog_element.enabled: true]
|
prefs: [dom.dialog_element.enabled: true]
|
||||||
[html.tabIndex: setAttribute() to object "3" followed by getAttribute()]
|
[html.tabIndex: setAttribute() to object "3" followed by getAttribute()]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
[details.html]
|
|
||||||
type: testharness
|
|
||||||
prefs: [dom.details_element.enabled:true]
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
[toggleEvent.html]
|
|
||||||
type: testharness
|
|
||||||
prefs: [dom.details_element.enabled:true]
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[interfaces.html]
|
[interfaces.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
prefs: [dom.details_element.enabled: true, dom.dialog_element.enabled: true]
|
prefs: [dom.dialog_element.enabled: true]
|
||||||
[Interfaces for image]
|
[Interfaces for image]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
[interfaces.html]
|
[interfaces.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
prefs: [dom.details_element.enabled:true]
|
|
||||||
[SVGGeometryElement interface: existence and properties of interface object]
|
[SVGGeometryElement interface: existence and properties of interface object]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue