Bug 1388910 - Remove -moz-user-modify property. r=dshin

We successfully unshipped it in bug 1920118.

Differential Revision: https://phabricator.services.mozilla.com/D229530
This commit is contained in:
Emilio Cobos Álvarez 2024-11-19 19:35:35 +00:00
parent aa945f1cf5
commit 8f4f441cae
36 changed files with 12 additions and 296 deletions

View File

@ -398,9 +398,6 @@
textarea[readonly] {
color: var(--text-color-deemphasized);
border-color: var(--in-content-border-color);
// Show a text cursor on readonly textareas. Otherwise, they are selectable,
// but there's no cursor to show the caret position.
-moz-user-modify: read-write;
}
.monospace {

View File

@ -312,7 +312,6 @@
.asrouter-admin textarea[readonly] {
color: var(--text-color-deemphasized);
border-color: var(--in-content-border-color);
-moz-user-modify: read-write;
}
.asrouter-admin .monospace {
font-family: "SF Mono", "Monaco", "Inconsolata", "Fira Code", "Fira Mono", "Droid Sans Mono", "Source Code Pro", monospace;

View File

@ -282,7 +282,6 @@
; Style Sheets, Graphics and other Resources used by the layout engine.
@RESPATH@/res/EditorOverride.css
@RESPATH@/res/contenteditable.css
@RESPATH@/res/designmode.css
@RESPATH@/res/table-add-column-after-active.gif
@RESPATH@/res/table-add-column-after-hover.gif
@RESPATH@/res/table-add-column-after.gif

View File

@ -188,7 +188,6 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [
"unicode-bidi",
"-moz-user-focus",
"-moz-user-input",
"-moz-user-modify",
"user-select",
"vector-effect",
"view-transition-name",

View File

@ -47,10 +47,6 @@ const testcases = [
{
property: "-moz-user-input"
},
{
property: "-moz-user-modify",
pref: "layout.css.moz-user-modify.enabled"
},
{
property: "user-select"
},

View File

@ -1368,7 +1368,6 @@ Document::Document(const char* aContentType)
mStyleSetFilled(false),
mQuirkSheetAdded(false),
mContentEditableSheetAdded(false),
mDesignModeSheetAdded(false),
mMayHaveTitleElement(false),
mDOMLoadingSet(false),
mDOMInteractiveSet(false),
@ -3279,17 +3278,12 @@ void Document::FillStyleSet() {
mStyleSetFilled = true;
}
void Document::RemoveContentEditableStyleSheets() {
void Document::RemoveContentEditableStyleSheet() {
MOZ_ASSERT(IsHTMLOrXHTML());
ServoStyleSet& styleSet = EnsureStyleSet();
auto* cache = GlobalStyleSheetCache::Singleton();
bool changed = false;
if (mDesignModeSheetAdded) {
styleSet.RemoveStyleSheet(*cache->DesignModeSheet());
mDesignModeSheetAdded = false;
changed = true;
}
if (mContentEditableSheetAdded) {
styleSet.RemoveStyleSheet(*cache->ContentEditableSheet());
mContentEditableSheetAdded = false;
@ -3301,7 +3295,7 @@ void Document::RemoveContentEditableStyleSheets() {
}
}
void Document::AddContentEditableStyleSheetsToStyleSet(bool aDesignMode) {
void Document::AddContentEditableStyleSheetToStyleSet() {
MOZ_ASSERT(IsHTMLOrXHTML());
MOZ_DIAGNOSTIC_ASSERT(mStyleSetFilled,
"Caller should ensure we're being rendered");
@ -3314,15 +3308,6 @@ void Document::AddContentEditableStyleSheetsToStyleSet(bool aDesignMode) {
mContentEditableSheetAdded = true;
changed = true;
}
if (mDesignModeSheetAdded != aDesignMode) {
if (mDesignModeSheetAdded) {
styleSet.RemoveStyleSheet(*cache->DesignModeSheet());
} else {
styleSet.AppendStyleSheet(*cache->DesignModeSheet());
}
mDesignModeSheetAdded = !mDesignModeSheetAdded;
changed = true;
}
if (changed) {
ApplicableStylesChanged();
}
@ -6037,7 +6022,7 @@ void Document::TearingDownEditor() {
if (IsEditingOn()) {
mEditingState = EditingState::eTearingDown;
if (IsHTMLOrXHTML()) {
RemoveContentEditableStyleSheets();
RemoveContentEditableStyleSheet();
}
}
}
@ -6248,7 +6233,7 @@ nsresult Document::EditingStateChanged() {
// because new style may change whether focused element will be focusable
// or not.
if (IsHTMLOrXHTML()) {
AddContentEditableStyleSheetsToStyleSet(designMode);
AddContentEditableStyleSheetToStyleSet();
}
if (designMode) {
@ -7407,7 +7392,6 @@ void Document::DeletePresShell() {
mStyleSetFilled = false;
mQuirkSheetAdded = false;
mContentEditableSheetAdded = false;
mDesignModeSheetAdded = false;
}
void Document::DisallowBFCaching(uint32_t aStatus) {

View File

@ -4259,8 +4259,8 @@ class Document : public nsINode,
// FIXME(emilio): Can SVG documents be in quirks mode anyway?
return mCompatMode == eCompatibility_NavQuirks && !IsSVGDocument();
}
void AddContentEditableStyleSheetsToStyleSet(bool aDesignMode);
void RemoveContentEditableStyleSheets();
void AddContentEditableStyleSheetToStyleSet();
void RemoveContentEditableStyleSheet();
void AddStyleSheetToStyleSets(StyleSheet&);
void RemoveStyleSheetFromStyleSets(StyleSheet&);
void NotifyStyleSheetApplicableStateChanged();
@ -4816,9 +4816,6 @@ class Document : public nsINode,
// Whether we have a contenteditable.css stylesheet in the style set.
bool mContentEditableSheetAdded : 1;
// Whether we have a designmode.css stylesheet in the style set.
bool mDesignModeSheetAdded : 1;
// True if this document has ever had an HTML or SVG <title> element
// bound to it
bool mMayHaveTitleElement : 1;

View File

@ -3242,8 +3242,6 @@ nsresult nsFocusManager::SetCaretVisible(PresShell* aPresShell, bool aVisible,
// SetCaretDOMSelection
aPresShell->SetCaretEnabled(false);
// Caret must blink on non-editable elements
caret->SetIgnoreUserModify(true);
// Tell the caret which selection to use
caret->SetSelection(domSelection);

View File

@ -17090,23 +17090,6 @@ use.counter.css.page:
send_in_pings:
- use-counters
css_moz_user_modify:
type: counter
description: >
Whether a page used the CSS property -moz-user-modify.
Compare against `use.counter.top_level_content_documents_destroyed`
to calculate the rate.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
notification_emails:
- dom-core@mozilla.com
- emilio@mozilla.com
expires: never
send_in_pings:
- use-counters
css_moz_window_dragging:
type: counter
description: >
@ -29077,23 +29060,6 @@ use.counter.css.doc:
send_in_pings:
- use-counters
css_moz_user_modify:
type: counter
description: >
Whether a document used the CSS property -moz-user-modify.
Compare against `use.counter.content_documents_destroyed`
to calculate the rate.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
notification_emails:
- dom-core@mozilla.com
- emilio@mozilla.com
expires: never
send_in_pings:
- use-counters
css_moz_window_dragging:
type: counter
description: >

View File

@ -1328,23 +1328,6 @@ static inline void MapLangAttributeInto(MappedDeclarationsBuilder& aBuilder) {
*/
void nsGenericHTMLElement::MapCommonAttributesIntoExceptHidden(
MappedDeclarationsBuilder& aBuilder) {
if (!aBuilder.PropertyIsSet(eCSSProperty__moz_user_modify)) {
const nsAttrValue* value = aBuilder.GetAttr(nsGkAtoms::contenteditable);
if (value) {
// FIXME: plaintext-only should be mapped to read-write-plaintext-only
if (value->Equals(nsGkAtoms::_empty, eCaseMatters) ||
value->Equals(nsGkAtoms::_true, eIgnoreCase) ||
(StaticPrefs::dom_element_contenteditable_plaintext_only_enabled() &&
value->Equals(nsGkAtoms::plaintextOnly, eIgnoreCase))) {
aBuilder.SetKeywordValue(eCSSProperty__moz_user_modify,
StyleUserModify::ReadWrite);
} else if (value->Equals(nsGkAtoms::_false, eIgnoreCase)) {
aBuilder.SetKeywordValue(eCSSProperty__moz_user_modify,
StyleUserModify::ReadOnly);
}
}
}
MapLangAttributeInto(aBuilder);
}

View File

@ -403,8 +403,6 @@ skip-if = ["true"] # Disabled for timeouts.
["test_bug441930.html"]
["test_bug442801.html"]
["test_bug445004.html"]
skip-if = ["true"] # Disabled permanently (bug 559932).

View File

@ -1,68 +0,0 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=442801
-->
<head>
<title>Test for Bug 442801</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=442801">Mozilla Bug 442801</a>
<p id="display"></p>
<div id="content" style="display: none">
<div contenteditable="true">
<p id="ce_true" contenteditable="true">contenteditable true</p>
</div>
<div contenteditable="true">
<p id="ce_false" contenteditable="false">contenteditable false</p>
</div>
<div contenteditable="true">
<p id="ce_empty" contenteditable="">contenteditable empty</p>
</div>
<div contenteditable="true">
<p id="ce_inherit" contenteditable="inherit">contenteditable inherit</p>
</div>
<div contenteditable="true">
<p id="ce_none" >contenteditable none</p>
</div>
</div>
<pre id="test">
<script type="application/javascript">
/** Test for Bug 442801 **/
SimpleTest.waitForExplicitFinish();
(async function() {
await SpecialPowers.pushPrefEnv({ set: [["layout.css.moz-user-modify.enabled", true]] });
is(window.getComputedStyle($("ce_true")).getPropertyValue("-moz-user-modify"),
"read-write",
"parent contenteditable is true, contenteditable is true; user-modify should be read-write");
is(window.getComputedStyle($("ce_false")).getPropertyValue("-moz-user-modify"),
"read-only",
"parent contenteditable is true, contenteditable is false; user-modify should be read-only");
is(window.getComputedStyle($("ce_empty")).getPropertyValue("-moz-user-modify"),
"read-write",
"parent contenteditable is true, contenteditable is empty; user-modify should be read-write");
is(window.getComputedStyle($("ce_inherit")).getPropertyValue("-moz-user-modify"),
"read-write",
"parent contenteditable is true, contenteditable is inherit; user-modify should be read-write");
is(window.getComputedStyle($("ce_none")).getPropertyValue("-moz-user-modify"),
"read-write",
"parent contenteditable is true, contenteditable is none; user-modify should be read-write");
SimpleTest.finish();
}())
</script>
</pre>
</body>
</html>

View File

@ -2,10 +2,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
*|* {
-moz-user-modify: read-write;
}
/* Styles to alter look of things in the Editor content window
* that should NOT be removed when we display in completely WYSIWYG
* "Browser Preview" mode.

View File

@ -5588,14 +5588,6 @@ nsresult EditorBase::InitializeSelection(
NS_WARNING_ASSERTION(
NS_SUCCEEDED(rvIgnored),
"nsISelectionController::SetCaretEnabled() failed, but ignored");
// NOTE(emilio): It's important for this call to be after
// SetCaretEnabled(true), since that would override mIgnoreUserModify to true.
//
// Also, make sure to always ignore it for designMode, since that effectively
// overrides everything and we allow to edit stuff with
// contenteditable="false" subtrees in such a document.
caret->SetIgnoreUserModify(aOriginalEventTargetNode.IsInDesignMode());
// Init selection
rvIgnored =
selectionController->SetSelectionFlags(nsISelectionDisplay::DISPLAY_ALL);
@ -5674,7 +5666,6 @@ nsresult EditorBase::FinalizeSelection() {
}
if (RefPtr<nsCaret> caret = GetCaret()) {
caret->SetIgnoreUserModify(true);
DebugOnly<nsresult> rvIgnored = selectionController->SetCaretEnabled(false);
NS_WARNING_ASSERTION(
NS_SUCCEEDED(rvIgnored),

View File

@ -143,7 +143,6 @@ void nsCaret::SetSelection(Selection* aDOMSel) {
void nsCaret::SetVisible(bool aVisible) {
const bool wasVisible = mVisible;
mVisible = aVisible;
mIgnoreUserModify = aVisible;
if (mVisible != wasVisible) {
CaretVisibilityMaybeChanged();
}
@ -500,9 +499,7 @@ nsIFrame* nsCaret::GetPaintGeometry(nsRect* aCaretRect, nsRect* aHookRect,
// Where the selection is targeting the <br>. We want to display the caret,
// since the <br> we're focused at is editable, but we do want to paint it at
// the adjusted frame offset, so that we can see the collapsed whitespace.
const nsStyleUI* ui = unadjustedFrame->StyleUI();
if ((!mIgnoreUserModify && ui->UserModify() == StyleUserModify::ReadOnly) ||
unadjustedFrame->IsContentDisabled()) {
if (unadjustedFrame->IsContentDisabled()) {
return nullptr;
}
@ -728,8 +725,3 @@ void nsCaret::CaretBlinkCallback(nsITimer* aTimer, void* aClosure) {
}
}
}
void nsCaret::SetIgnoreUserModify(bool aIgnoreUserModify) {
mIgnoreUserModify = aIgnoreUserModify;
SchedulePaint();
}

View File

@ -52,15 +52,6 @@ class nsCaret final : public nsISelectionListener {
void SetSelection(mozilla::dom::Selection*);
mozilla::dom::Selection* GetSelection();
/**
* Sets whether the caret should only be visible in nodes that are not
* user-modify: read-only, or whether it should be visible in all nodes.
*
* @param aIgnoreUserModify true to have the cursor visible in all nodes,
* false to have it visible in all nodes except
* those with user-modify: read-only
*/
void SetIgnoreUserModify(bool aIgnoreUserModify);
/**
* SetVisible will set the visibility of the caret
* @param aVisible true to show the caret, false to hide it
@ -253,11 +244,6 @@ class nsCaret final : public nsISelectionListener {
* the selection is not collapsed.
*/
bool mShowDuringSelection = false;
/**
* mIgnoreUserModify is true when the caret should be shown even when
* it's in non-user-modifiable content.
*/
bool mIgnoreUserModify = true;
/**
* If the caret position is fixed, it's been overridden externally and it

View File

@ -468,8 +468,7 @@ static void AdjustCaretFrameForLineEnd(nsIFrame** aFrame, uint32_t* aOffset,
if (aEditableOnly && !r->GetContent()->IsEditable()) {
return;
}
// We found our frame, but we may not be able to properly paint the caret
// if -moz-user-modify differs from our actual frame.
// We found our frame.
MOZ_ASSERT(r->IsTextFrame(), "Expected text frame");
*aFrame = r;
*aOffset = (static_cast<nsTextFrame*>(r))->GetContentEnd();

View File

@ -398,7 +398,6 @@ cbindgen-types = [
{ gecko = "StyleLineClamp", servo = "crate::values::computed::LineClamp" },
{ gecko = "StyleUserFocus", servo = "crate::values::computed::UserFocus" },
{ gecko = "StyleUserInput", servo = "crate::values::computed::UserInput" },
{ gecko = "StyleUserModify", servo = "crate::values::computed::UserModify" },
{ gecko = "StyleUserSelect", servo = "crate::values::computed::UserSelect" },
{ gecko = "StyleBreakBetween", servo = "crate::values::computed::BreakBetween" },
{ gecko = "StyleBreakWithin", servo = "crate::values::computed::BreakWithin" },

View File

@ -22,7 +22,6 @@
STYLE_SHEET(ContentEditable, "resource://gre/res/contenteditable.css", true)
STYLE_SHEET(CounterStyles, "resource://gre-resources/counterstyles.css", true)
STYLE_SHEET(DesignMode, "resource://gre/res/designmode.css", true)
STYLE_SHEET(Forms, "resource://gre-resources/forms.css", true)
STYLE_SHEET(HTML, "resource://gre-resources/html.css", true)
STYLE_SHEET(MathML, "resource://gre-resources/mathml.css", true)

View File

@ -1,8 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
*|* {
-moz-user-modify: read-write;
}

View File

@ -291,7 +291,6 @@ JAR_MANIFESTS += ["jar.mn"]
RESOURCE_FILES += [
"contenteditable.css",
"designmode.css",
]
CONTENT_ACCESSIBLE_FILES += [

View File

@ -3006,7 +3006,6 @@ nsStyleUI::nsStyleUI()
: mInert(StyleInert::None),
mMozTheme(StyleMozTheme::Auto),
mUserInput(StyleUserInput::Auto),
mUserModify(StyleUserModify::ReadOnly),
mUserFocus(StyleUserFocus::Normal),
mPointerEvents(StylePointerEvents::Auto),
mCursor{{}, StyleCursorKind::Auto},
@ -3021,7 +3020,6 @@ nsStyleUI::nsStyleUI(const nsStyleUI& aSource)
: mInert(aSource.mInert),
mMozTheme(aSource.mMozTheme),
mUserInput(aSource.mUserInput),
mUserModify(aSource.mUserModify),
mUserFocus(aSource.mUserFocus),
mPointerEvents(aSource.mPointerEvents),
mCursor(aSource.mCursor),
@ -3067,10 +3065,6 @@ nsChangeHint nsStyleUI::CalcDifference(const nsStyleUI& aNewData) const {
hint |= kPointerEventsHint;
}
if (mUserModify != aNewData.mUserModify) {
hint |= NS_STYLE_HINT_VISUAL;
}
if (mInert != aNewData.mInert) {
// inert affects pointer-events, user-modify, user-select, user-focus and
// -moz-user-input, do the union of all them (minus

View File

@ -1853,7 +1853,6 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUI {
private:
mozilla::StyleUserInput mUserInput;
mozilla::StyleUserModify mUserModify;
mozilla::StyleUserFocus mUserFocus;
mozilla::StylePointerEvents mPointerEvents;
mozilla::StyleCursor mCursor;
@ -1865,10 +1864,6 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUI {
return IsInert() ? mozilla::StyleUserInput::None : mUserInput;
}
mozilla::StyleUserModify UserModify() const {
return IsInert() ? mozilla::StyleUserModify::ReadOnly : mUserModify;
}
mozilla::StyleUserFocus UserFocus() const {
return IsInert() ? mozilla::StyleUserFocus::None : mUserFocus;
}

View File

@ -211,11 +211,6 @@ textarea::-moz-text-control-editing-root {
overflow: inherit;
}
input:read-write,
textarea:read-write {
-moz-user-modify: read-write !important;
}
select {
margin: 0;
border-color: ButtonBorder;

View File

@ -75,8 +75,6 @@ scrollbar, scrollbarbutton, scrollcorner, slider, thumb, resizer {
writing-mode: initial;
-moz-user-focus: ignore;
/* Prevent -moz-user-modify declaration from designmode.css having an effect. */
-moz-user-modify: initial;
user-select: none;
}

View File

@ -11972,19 +11972,6 @@ function get_computed_value(cs, property) {
}
}
if (IsCSSPropertyPrefEnabled("layout.css.moz-user-modify.enabled")) {
Object.assign(gCSSProperties, {
"-moz-user-modify": {
domProp: "MozUserModify",
inherited: true,
type: CSS_TYPE_LONGHAND,
initial_values: ["read-only"],
other_values: ["read-write", "write-only"],
invalid_values: [],
},
});
}
gCSSProperties.rotate = {
domProp: "rotate",
inherited: false,

View File

@ -144,7 +144,6 @@
; Style Sheets, Graphics and other Resources used by the layout engine.
@BINPATH@/res/EditorOverride.css
@BINPATH@/res/contenteditable.css
@BINPATH@/res/designmode.css
@BINPATH@/res/table-add-column-after-active.gif
@BINPATH@/res/table-add-column-after-hover.gif
@BINPATH@/res/table-add-column-after.gif

View File

@ -9116,13 +9116,6 @@
mirror: always
rust: true
# Whether the `-moz-user-modify` property is exposed to content.
- name: layout.css.moz-user-modify.enabled
type: RelaxedAtomicBool
value: false
mirror: always
rust: true
# This pref controls whether the `prefers-color-scheme` value of iframes images
# reacts to the embedder `color-scheme` in content.
- name: layout.css.iframe-embedder-prefers-color-scheme.content.enabled

View File

@ -617,7 +617,6 @@ class Longhand(Property):
"TransformStyle",
"UserFocus",
"UserInput",
"UserModify",
"UserSelect",
"VectorEffect",
"WordBreak",

View File

@ -48,23 +48,6 @@ ${helpers.predefined_type(
affects="",
)}
// This property is marked as enabled_in="chrome" because until we fully remove it, we still need
// the internal uses. It is slightly more convenient to have it as a chrome rather than ua-only
// property (there are tests that parse UA sheets as chrome stylesheets and so).
${helpers.predefined_type(
"-moz-user-modify",
"UserModify",
"specified::UserModify::ReadOnly",
engines="gecko",
gecko_ffi_name="mUserModify",
gecko_pref="layout.css.moz-user-modify.enabled",
enabled_in="chrome",
has_effect_on_gecko_scrollbars=False,
animation_type="discrete",
spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-user-modify)",
affects="",
)}
${helpers.predefined_type(
"-moz-user-focus",
"UserFocus",

View File

@ -116,7 +116,7 @@ pub use self::transform::{TransformOrigin, TransformStyle, Translate};
pub use self::ui::CursorImage;
pub use self::ui::{
BoolInteger, Cursor, Inert, MozTheme, PointerEvents, ScrollbarColor, UserFocus, UserInput,
UserModify, UserSelect,
UserSelect,
};
pub use super::specified::TextTransform;
pub use super::specified::ViewportVariant;

View File

@ -10,8 +10,7 @@ use crate::values::computed::Number;
use crate::values::generics::ui as generics;
pub use crate::values::specified::ui::{
BoolInteger, CursorKind, Inert, MozTheme, PointerEvents, UserFocus, UserInput, UserModify,
UserSelect,
BoolInteger, CursorKind, Inert, MozTheme, PointerEvents, UserFocus, UserInput, UserSelect,
};
/// A computed value for the `cursor` property.

View File

@ -113,7 +113,7 @@ pub use self::transform::{TransformBox, TransformOrigin, TransformStyle, Transla
pub use self::ui::CursorImage;
pub use self::ui::{
BoolInteger, Cursor, Inert, MozTheme, PointerEvents, ScrollbarColor, UserFocus, UserInput,
UserModify, UserSelect,
UserSelect,
};
pub use super::generics::grid::GridTemplateComponent as GenericGridTemplateComponent;

View File

@ -343,31 +343,6 @@ pub enum UserInput {
None,
}
/// Non-standard -moz-user-modify property.
/// https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-user-modify
#[allow(missing_docs)]
#[derive(
Clone,
Copy,
Debug,
Eq,
FromPrimitive,
MallocSizeOf,
Parse,
PartialEq,
SpecifiedValueInfo,
ToComputedValue,
ToCss,
ToResolvedValue,
ToShmem,
)]
#[repr(u8)]
pub enum UserModify {
ReadOnly,
ReadWrite,
WriteOnly,
}
/// Internal -moz-user-focus property.
/// https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-user-focus
#[allow(missing_docs)]

View File

@ -153,7 +153,6 @@ include = [
"UnicodeRange",
"UserInput",
"UserFocus",
"UserModify",
"UserSelect",
"PointerEvents",
"Inert",

View File

@ -5397,7 +5397,7 @@ pub extern "C" fn Servo_DeclarationBlock_SetKeywordValue(
use style::values::generics::font::FontStyle;
use style::values::specified::{
table::CaptionSide, BorderStyle, Clear, Display, Float, TextAlign, TextEmphasisPosition,
TextTransform, UserModify,
TextTransform,
};
fn get_from_computed<T>(value: u32) -> T
@ -5412,7 +5412,6 @@ pub extern "C" fn Servo_DeclarationBlock_SetKeywordValue(
let value = value as u32;
let prop = match_wrap_declared! { long,
MozUserModify => UserModify::from_u32(value).unwrap(),
Direction => get_from_computed::<longhands::direction::SpecifiedValue>(value),
Display => get_from_computed::<Display>(value),
Float => get_from_computed::<Float>(value),