author | Daniel Holbert <dholbert@cs.stanford.edu> |
Sun, 20 Mar 2016 23:06:53 -0700 | |
changeset 289626 | ba8af3fc0676f40d206c2133d71bc873cdec2e3d |
parent 289625 | a76f6237641fc0720f9d9a8cebab335d0e8434c6 |
child 289627 | 6e705888d2a854f60deadc23d1382fbba2ef7dc2 |
push id | 30108 |
push user | cbook@mozilla.com |
push date | Tue, 22 Mar 2016 11:14:31 +0000 |
treeherder | mozilla-central@ea6298e1b4f7 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | corey |
bugs | 1257938 |
milestone | 48.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp @@ -137,17 +137,16 @@ using namespace mozilla; using namespace mozilla::dom; using namespace mozilla::image; using namespace mozilla::layers; using namespace mozilla::layout; 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 STICKY_ENABLED_PREF_NAME "layout.css.sticky.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" #ifdef DEBUG // TODO: remove, see bug 598468. bool nsLayoutUtils::gPreventAssertInCompareTreePosition = false; #endif // DEBUG @@ -218,49 +217,16 @@ GridEnabledPrefChangeCallback(const char isGridEnabled ? eCSSKeyword_grid : eCSSKeyword_UNKNOWN; } if (sIndexOfInlineGridInDisplayTable >= 0) { nsCSSProps::kDisplayKTable[sIndexOfInlineGridInDisplayTable].mKeyword = isGridEnabled ? eCSSKeyword_inline_grid : eCSSKeyword_UNKNOWN; } } -// When the pref "layout.css.sticky.enabled" changes, this function is invoked -// to let us update kPositionKTable, to selectively disable or restore the -// entry for "sticky" in that table. -static void -StickyEnabledPrefChangeCallback(const char* aPrefName, void* aClosure) -{ - MOZ_ASSERT(strncmp(aPrefName, STICKY_ENABLED_PREF_NAME, - ArrayLength(STICKY_ENABLED_PREF_NAME)) == 0, - "We only registered this callback for a single pref, so it " - "should only be called for that pref"); - - static int32_t sIndexOfStickyInPositionTable; - static bool sIsStickyKeywordIndexInitialized; // initialized to false - - bool isStickyEnabled = - Preferences::GetBool(STICKY_ENABLED_PREF_NAME, false); - - if (!sIsStickyKeywordIndexInitialized) { - // First run: find the position of "sticky" in kPositionKTable. - sIndexOfStickyInPositionTable = - nsCSSProps::FindIndexOfKeyword(eCSSKeyword_sticky, - nsCSSProps::kPositionKTable); - MOZ_ASSERT(sIndexOfStickyInPositionTable >= 0, - "Couldn't find sticky in kPositionKTable"); - sIsStickyKeywordIndexInitialized = true; - } - - // OK -- now, stomp on or restore the "sticky" entry in kPositionKTable, - // depending on whether the sticky pref is enabled vs. disabled. - nsCSSProps::kPositionKTable[sIndexOfStickyInPositionTable].mKeyword = - isStickyEnabled ? eCSSKeyword_sticky : 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. static void DisplayContentsEnabledPrefChangeCallback(const char* aPrefName, void* aClosure) { NS_ASSERTION(strcmp(aPrefName, DISPLAY_CONTENTS_ENABLED_PREF_NAME) == 0, "Did you misspell " DISPLAY_CONTENTS_ENABLED_PREF_NAME " ?"); @@ -7594,19 +7560,16 @@ nsLayoutUtils::Initialize() Preferences::AddBoolVarCache(&sInterruptibleReflowEnabled, "layout.interruptible-reflow.enabled"); Preferences::AddBoolVarCache(&sSVGTransformBoxEnabled, "svg.transform-box.enabled"); Preferences::RegisterCallback(GridEnabledPrefChangeCallback, GRID_ENABLED_PREF_NAME); GridEnabledPrefChangeCallback(GRID_ENABLED_PREF_NAME, nullptr); - Preferences::RegisterCallback(StickyEnabledPrefChangeCallback, - STICKY_ENABLED_PREF_NAME); - StickyEnabledPrefChangeCallback(STICKY_ENABLED_PREF_NAME, nullptr); Preferences::RegisterCallback(TextAlignUnsafeEnabledPrefChangeCallback, TEXT_ALIGN_UNSAFE_ENABLED_PREF_NAME); Preferences::RegisterCallback(DisplayContentsEnabledPrefChangeCallback, DISPLAY_CONTENTS_ENABLED_PREF_NAME); DisplayContentsEnabledPrefChangeCallback(DISPLAY_CONTENTS_ENABLED_PREF_NAME, nullptr); TextAlignUnsafeEnabledPrefChangeCallback(TEXT_ALIGN_UNSAFE_ENABLED_PREF_NAME, nullptr); @@ -7624,19 +7587,16 @@ nsLayoutUtils::Shutdown() { if (sContentMap) { delete sContentMap; sContentMap = nullptr; } Preferences::UnregisterCallback(GridEnabledPrefChangeCallback, GRID_ENABLED_PREF_NAME); - Preferences::UnregisterCallback(StickyEnabledPrefChangeCallback, - STICKY_ENABLED_PREF_NAME); - nsComputedDOMStyle::UnregisterPrefChangeCallbacks(); } /* static */ void nsLayoutUtils::RegisterImageRequest(nsPresContext* aPresContext, imgIRequest* aRequest, bool* aRequestRegistered)
--- a/layout/style/nsCSSProps.cpp +++ b/layout/style/nsCSSProps.cpp @@ -1857,22 +1857,21 @@ const KTableEntry nsCSSProps::kPointerEv { eCSSKeyword_painted, NS_STYLE_POINTER_EVENTS_PAINTED }, { eCSSKeyword_fill, NS_STYLE_POINTER_EVENTS_FILL }, { eCSSKeyword_stroke, NS_STYLE_POINTER_EVENTS_STROKE }, { eCSSKeyword_all, NS_STYLE_POINTER_EVENTS_ALL }, { eCSSKeyword_auto, NS_STYLE_POINTER_EVENTS_AUTO }, { eCSSKeyword_UNKNOWN, -1 } }; -KTableEntry nsCSSProps::kPositionKTable[] = { +const KTableEntry nsCSSProps::kPositionKTable[] = { { eCSSKeyword_static, NS_STYLE_POSITION_STATIC }, { eCSSKeyword_relative, NS_STYLE_POSITION_RELATIVE }, { eCSSKeyword_absolute, NS_STYLE_POSITION_ABSOLUTE }, { eCSSKeyword_fixed, NS_STYLE_POSITION_FIXED }, - // The next entry is controlled by the layout.css.sticky.enabled pref. { eCSSKeyword_sticky, NS_STYLE_POSITION_STICKY }, { eCSSKeyword_UNKNOWN, -1 } }; const KTableEntry nsCSSProps::kRadialGradientShapeKTable[] = { { eCSSKeyword_circle, NS_STYLE_GRADIENT_SHAPE_CIRCULAR }, { eCSSKeyword_ellipse, NS_STYLE_GRADIENT_SHAPE_ELLIPTICAL }, { eCSSKeyword_UNKNOWN, -1 }
--- a/layout/style/nsCSSProps.h +++ b/layout/style/nsCSSProps.h @@ -789,19 +789,17 @@ public: static const KTableEntry kOverflowSubKTable[]; static const KTableEntry kOverflowClipBoxKTable[]; static const KTableEntry kPageBreakKTable[]; static const KTableEntry kPageBreakInsideKTable[]; static const KTableEntry kPageMarksKTable[]; static const KTableEntry kPageSizeKTable[]; static const KTableEntry kPitchKTable[]; static const KTableEntry kPointerEventsKTable[]; - // Not const because we modify its entries when the pref - // "layout.css.sticky.enabled" changes: - static KTableEntry kPositionKTable[]; + static const KTableEntry kPositionKTable[]; static const KTableEntry kRadialGradientShapeKTable[]; static const KTableEntry kRadialGradientSizeKTable[]; static const KTableEntry kRadialGradientLegacySizeKTable[]; static const KTableEntry kResizeKTable[]; static const KTableEntry kRubyAlignKTable[]; static const KTableEntry kRubyPositionKTable[]; static const KTableEntry kScrollBehaviorKTable[]; static const KTableEntry kScrollSnapTypeKTable[];
--- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -2335,19 +2335,16 @@ pref("layout.css.scroll-snap.prediction- // scroll frame is integrated over this duration, in seconds. The snap point // best suited for this position is selected, enabling the user to perform fling // gestures. pref("layout.css.scroll-snap.prediction-sensitivity", "0.750"); // Is support for basic shapes in clip-path enabled? pref("layout.css.clip-path-shapes.enabled", false); -// Is support for CSS sticky positioning enabled? -pref("layout.css.sticky.enabled", true); - // Is support for DOMPoint enabled? pref("layout.css.DOMPoint.enabled", true); // Is support for DOMQuad enabled? pref("layout.css.DOMQuad.enabled", true); // Is support for DOMMatrix enabled? pref("layout.css.DOMMatrix.enabled", true);