mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-04 06:48:38 +09:00
Issue #1641 - Implement CSS flow-root keyword
This is just a clean port of 1322191 and follow-up 1325970. It really seems to add create a new way to access existing code relating to block formatting and floating elements rather than implementing new functionality, and it is mercifully straightforwards.
This commit is contained in:
parent
0af26afc22
commit
9532970df5
15 changed files with 68 additions and 16 deletions
|
|
@ -149,6 +149,7 @@ using namespace mozilla::gfx;
|
|||
#define GRID_ENABLED_PREF_NAME "layout.css.grid.enabled"
|
||||
#define GRID_TEMPLATE_SUBGRID_ENABLED_PREF_NAME "layout.css.grid-template-subgrid-value.enabled"
|
||||
#define WEBKIT_PREFIXES_ENABLED_PREF_NAME "layout.css.prefixes.webkit"
|
||||
#define DISPLAY_FLOW_ROOT_ENABLED_PREF_NAME "layout.css.display-flow-root.enabled"
|
||||
#define DISPLAY_CONTENTS_ENABLED_PREF_NAME "layout.css.display-contents.enabled"
|
||||
#define TEXT_ALIGN_UNSAFE_ENABLED_PREF_NAME "layout.css.text-align-unsafe-value.enabled"
|
||||
#define FLOAT_LOGICAL_VALUES_ENABLED_PREF_NAME "layout.css.float-logical-values.enabled"
|
||||
|
|
@ -314,6 +315,37 @@ WebkitPrefixEnabledPrefChangeCallback(const char* aPrefName, void* aClosure)
|
|||
}
|
||||
}
|
||||
|
||||
// When the pref "layout.css.display-flow-root.enabled" changes, this function is
|
||||
// invoked to let us update kDisplayKTable, to selectively disable or restore
|
||||
// the entries for "flow-root" in that table.
|
||||
static void
|
||||
DisplayFlowRootEnabledPrefChangeCallback(const char* aPrefName, void* aClosure)
|
||||
{
|
||||
NS_ASSERTION(strcmp(aPrefName, DISPLAY_FLOW_ROOT_ENABLED_PREF_NAME) == 0,
|
||||
"Did you misspell " DISPLAY_FLOW_ROOT_ENABLED_PREF_NAME " ?");
|
||||
|
||||
static bool sIsDisplayFlowRootKeywordIndexInitialized;
|
||||
static int32_t sIndexOfFlowRootInDisplayTable;
|
||||
bool isDisplayFlowRootEnabled =
|
||||
Preferences::GetBool(DISPLAY_FLOW_ROOT_ENABLED_PREF_NAME, false);
|
||||
|
||||
if (!sIsDisplayFlowRootKeywordIndexInitialized) {
|
||||
// First run: find the position of "flow-root" in kDisplayKTable.
|
||||
sIndexOfFlowRootInDisplayTable =
|
||||
nsCSSProps::FindIndexOfKeyword(eCSSKeyword_flow_root,
|
||||
nsCSSProps::kDisplayKTable);
|
||||
sIsDisplayFlowRootKeywordIndexInitialized = true;
|
||||
}
|
||||
|
||||
// OK -- now, stomp on or restore the "flow-root" entry in kDisplayKTable,
|
||||
// depending on whether the pref is enabled vs. disabled.
|
||||
if (sIndexOfFlowRootInDisplayTable >= 0) {
|
||||
nsCSSProps::kDisplayKTable[sIndexOfFlowRootInDisplayTable].mKeyword =
|
||||
isDisplayFlowRootEnabled ? eCSSKeyword_flow_root : eCSSKeyword_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// When the pref "layout.css.display-contents.enabled" changes, this function is
|
||||
// invoked to let us update kDisplayKTable, to selectively disable or restore
|
||||
// the entries for "contents" in that table.
|
||||
|
|
@ -7555,6 +7587,8 @@ static const PrefCallbacks kPrefCallbacks[] = {
|
|||
WebkitPrefixEnabledPrefChangeCallback },
|
||||
{ TEXT_ALIGN_UNSAFE_ENABLED_PREF_NAME,
|
||||
TextAlignUnsafeEnabledPrefChangeCallback },
|
||||
{ DISPLAY_FLOW_ROOT_ENABLED_PREF_NAME,
|
||||
DisplayFlowRootEnabledPrefChangeCallback },
|
||||
{ DISPLAY_CONTENTS_ENABLED_PREF_NAME,
|
||||
DisplayContentsEnabledPrefChangeCallback },
|
||||
{ FLOAT_LOGICAL_VALUES_ENABLED_PREF_NAME,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue