WebKit Bugzilla
Attachment 356331 Details for
Bug 192280
: Add a runtime feature flag for LayoutFormattingContext.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192280-20181201184745.patch (text/plain), 13.88 KB, created by
zalan
on 2018-12-01 18:47:53 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
zalan
Created:
2018-12-01 18:47:53 PST
Size:
13.88 KB
patch
obsolete
>Subversion Revision: 238789 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index ee484a9dfeafeb3c4675c256390a88184847c8dd..053c3f812a31c188497a06918b1b8dfa4bab1200 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,12 @@ >+2018-12-01 Zalan Bujtas <zalan@apple.com> >+ >+ Add a runtime feature flag for LayoutFormattingContext. >+ https://bugs.webkit.org/show_bug.cgi?id=192280 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Configurations/FeatureDefines.xcconfig: >+ > 2018-12-01 Simon Fraser <simon.fraser@apple.com> > > Heap.h refers to the non-existent HeapStatistics >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index dcf602f7fb289c5520d07d02d5c7f5ad5f597a3e..c6b3fe771a7e8568034959f16d7b8a7187907d32 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,17 @@ >+2018-12-01 Zalan Bujtas <zalan@apple.com> >+ >+ Add a runtime feature flag for LayoutFormattingContext. >+ https://bugs.webkit.org/show_bug.cgi?id=192280 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Configurations/FeatureDefines.xcconfig: >+ * page/FrameViewLayoutContext.cpp: >+ (WebCore::layoutUsingFormattingContext): >+ * page/RuntimeEnabledFeatures.h: >+ (WebCore::RuntimeEnabledFeatures::setLayoutFormattingContextEnabled): >+ (WebCore::RuntimeEnabledFeatures::layoutFormattingContextEnabled const): >+ > 2018-12-01 Brent Fulgham <bfulgham@apple.com> > > Lifetime of HTMLMediaElement is not properly handled in asynchronous actions >diff --git a/Source/WebCore/PAL/ChangeLog b/Source/WebCore/PAL/ChangeLog >index 463be2fd8a0e3d87069dcd7136b97b962dc196c4..a3fb049f869f61fdaa888edc43607efcd362d518 100644 >--- a/Source/WebCore/PAL/ChangeLog >+++ b/Source/WebCore/PAL/ChangeLog >@@ -1,3 +1,12 @@ >+2018-12-01 Zalan Bujtas <zalan@apple.com> >+ >+ Add a runtime feature flag for LayoutFormattingContext. >+ https://bugs.webkit.org/show_bug.cgi?id=192280 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Configurations/FeatureDefines.xcconfig: >+ > 2018-12-01 Alexey Proskuryakov <ap@apple.com> > > Modernize version check for _suppressedAutoAddedHTTPHeaders >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 9783723a2578e59a8bac716a1d67f7d3ce1485e0..ee91ea62e6c1281379f75c21878fa59d65d7bd09 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,15 @@ >+2018-12-01 Zalan Bujtas <zalan@apple.com> >+ >+ Add a runtime feature flag for LayoutFormattingContext. >+ https://bugs.webkit.org/show_bug.cgi?id=192280 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Configurations/FeatureDefines.xcconfig: >+ * Shared/WebPreferences.yaml: >+ * WebProcess/InjectedBundle/InjectedBundle.cpp: >+ (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): >+ > 2018-12-01 Chris Dumez <cdumez@apple.com> > > [PSON] process-swapping may occur even though opener has handle to openee >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index 281551fdcd93becaa00073d1f759bd91fcedba20..d5be801ddeee39b2529a0d606684577a81f68473 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,12 @@ >+2018-12-01 Zalan Bujtas <zalan@apple.com> >+ >+ Add a runtime feature flag for LayoutFormattingContext. >+ https://bugs.webkit.org/show_bug.cgi?id=192280 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Configurations/FeatureDefines.xcconfig: >+ > 2018-11-30 Alex Christensen <achristensen@webkit.org> > > Move URL from WebCore to WTF >diff --git a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig >index de8c44c9e16496dfef5212262e882a092bd021f9..f4993e58feed0f618c0880a91a716fad262b3374 100644 >--- a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig >+++ b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig >@@ -228,7 +228,7 @@ ENABLE_KEYBOARD_CODE_ATTRIBUTE = ENABLE_KEYBOARD_CODE_ATTRIBUTE; > > ENABLE_KEYBOARD_KEY_ATTRIBUTE = ENABLE_KEYBOARD_KEY_ATTRIBUTE; > >-ENABLE_LAYOUT_FORMATTING_CONTEXT = ; >+ENABLE_LAYOUT_FORMATTING_CONTEXT = ENABLE_LAYOUT_FORMATTING_CONTEXT; > > ENABLE_LEGACY_CSS_VENDOR_PREFIXES = ENABLE_LEGACY_CSS_VENDOR_PREFIXES; > >diff --git a/Source/WebCore/Configurations/FeatureDefines.xcconfig b/Source/WebCore/Configurations/FeatureDefines.xcconfig >index de8c44c9e16496dfef5212262e882a092bd021f9..f4993e58feed0f618c0880a91a716fad262b3374 100644 >--- a/Source/WebCore/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebCore/Configurations/FeatureDefines.xcconfig >@@ -228,7 +228,7 @@ ENABLE_KEYBOARD_CODE_ATTRIBUTE = ENABLE_KEYBOARD_CODE_ATTRIBUTE; > > ENABLE_KEYBOARD_KEY_ATTRIBUTE = ENABLE_KEYBOARD_KEY_ATTRIBUTE; > >-ENABLE_LAYOUT_FORMATTING_CONTEXT = ; >+ENABLE_LAYOUT_FORMATTING_CONTEXT = ENABLE_LAYOUT_FORMATTING_CONTEXT; > > ENABLE_LEGACY_CSS_VENDOR_PREFIXES = ENABLE_LEGACY_CSS_VENDOR_PREFIXES; > >diff --git a/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig b/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig >index de8c44c9e16496dfef5212262e882a092bd021f9..f4993e58feed0f618c0880a91a716fad262b3374 100644 >--- a/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig >@@ -228,7 +228,7 @@ ENABLE_KEYBOARD_CODE_ATTRIBUTE = ENABLE_KEYBOARD_CODE_ATTRIBUTE; > > ENABLE_KEYBOARD_KEY_ATTRIBUTE = ENABLE_KEYBOARD_KEY_ATTRIBUTE; > >-ENABLE_LAYOUT_FORMATTING_CONTEXT = ; >+ENABLE_LAYOUT_FORMATTING_CONTEXT = ENABLE_LAYOUT_FORMATTING_CONTEXT; > > ENABLE_LEGACY_CSS_VENDOR_PREFIXES = ENABLE_LEGACY_CSS_VENDOR_PREFIXES; > >diff --git a/Source/WebCore/layout/Verification.cpp b/Source/WebCore/layout/Verification.cpp >index 79de1783d6064fe25e4f686049a90b732fe853d9..b433c4dd1c08e9525f62475d8c3993f5cf15ec9d 100644 >--- a/Source/WebCore/layout/Verification.cpp >+++ b/Source/WebCore/layout/Verification.cpp >@@ -46,7 +46,7 @@ static bool areEssentiallyEqual(float a, LayoutUnit b) > if (a == b.toFloat()) > return true; > >- return ::abs(a - b.toFloat()) <= 4 * LayoutUnit::epsilon(); >+ return fabs(a - b.toFloat()) <= 4 * LayoutUnit::epsilon(); > } > > static bool outputMismatchingSimpleLineInformationIfNeeded(TextStream& stream, const LayoutState& layoutState, const RenderBlockFlow& blockFlow, const Container& inlineFormattingRoot) >diff --git a/Source/WebCore/layout/inlineformatting/InlineFormattingContextGeometry.cpp b/Source/WebCore/layout/inlineformatting/InlineFormattingContextGeometry.cpp >index 35f77c0cc6071480aa7d4239b43c4a12d93ebfc8..453b2167df3671e232fb7659bebecde892abfac2 100644 >--- a/Source/WebCore/layout/inlineformatting/InlineFormattingContextGeometry.cpp >+++ b/Source/WebCore/layout/inlineformatting/InlineFormattingContextGeometry.cpp >@@ -181,7 +181,9 @@ LayoutUnit InlineFormattingContext::Geometry::runWidth(const InlineContent& inli > LayoutUnit width; > auto startPosition = from; > auto iterator = inlineContent.find(const_cast<InlineItem*>(&inlineItem)); >+#if !ASSERT_DISABLED > auto inlineItemEnd = inlineContent.end(); >+#endif > while (length) { > ASSERT(iterator != inlineItemEnd); > auto& currentInlineItem = **iterator; >diff --git a/Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp b/Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp >index 688234e38a918e4719b5f134fceb4628d140c093..4096e42d7275d94a124a695e726206116c74602a 100644 >--- a/Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp >+++ b/Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp >@@ -162,7 +162,9 @@ LayoutUnit InlineLineBreaker::textWidth(const InlineRunProvider::Run& inlineRun, > // FIXME: It does not do proper kerning/ligature handling. > LayoutUnit width; > auto iterator = m_inlineContent.find(const_cast<InlineItem*>(&inlineItem)); >+#if !ASSERT_DISABLED > auto inlineItemEnd = m_inlineContent.end(); >+#endif > while (length) { > ASSERT(iterator != inlineItemEnd); > auto& currentInlineItem = **iterator; >diff --git a/Source/WebCore/page/FrameViewLayoutContext.cpp b/Source/WebCore/page/FrameViewLayoutContext.cpp >index 7a9957a17f86b7fdb018d2b5e7acdcab7cfa3ffb..8e946390833aed06346ee92bc70da7e63adb66d6 100644 >--- a/Source/WebCore/page/FrameViewLayoutContext.cpp >+++ b/Source/WebCore/page/FrameViewLayoutContext.cpp >@@ -36,6 +36,7 @@ > #include "Logging.h" > #include "RenderElement.h" > #include "RenderView.h" >+#include "RuntimeEnabledFeatures.h" > #include "ScriptDisallowedScope.h" > #include "Settings.h" > >@@ -55,6 +56,8 @@ namespace WebCore { > #if ENABLE(LAYOUT_FORMATTING_CONTEXT) > static void layoutUsingFormattingContext(const RenderView& renderView) > { >+ if (!RuntimeEnabledFeatures::sharedFeatures().layoutFormattingContextEnabled()) >+ return; > auto initialContainingBlock = Layout::TreeBuilder::createLayoutTree(renderView); > auto layoutState = std::make_unique<Layout::LayoutState>(*initialContainingBlock, renderView.size()); > layoutState->setInQuirksMode(renderView.document().inQuirksMode()); >diff --git a/Source/WebCore/page/RuntimeEnabledFeatures.h b/Source/WebCore/page/RuntimeEnabledFeatures.h >index ac795057f545d96e0158d56993ff2051b774afa6..d28a8f7648bc8a911963b95a8b22e86f9590b6d3 100644 >--- a/Source/WebCore/page/RuntimeEnabledFeatures.h >+++ b/Source/WebCore/page/RuntimeEnabledFeatures.h >@@ -178,6 +178,11 @@ public: > void setPointerEventsEnabled(bool isEnabled) { m_pointerEventsEnabled = isEnabled; } > bool pointerEventsEnabled() const { return m_pointerEventsEnabled; } > >+#if ENABLE(LAYOUT_FORMATTING_CONTEXT) >+ void setLayoutFormattingContextEnabled(bool isEnabled) { m_layoutFormattingContextEnabled = isEnabled; } >+ bool layoutFormattingContextEnabled() const { return m_layoutFormattingContextEnabled; } >+#endif >+ > #if ENABLE(CSS_PAINTING_API) > void setCSSPaintingAPIEnabled(bool isEnabled) { m_CSSPaintingAPIEnabled = isEnabled; } > bool cssPaintingAPIEnabled() const { return m_CSSPaintingAPIEnabled; } >@@ -372,6 +377,10 @@ private: > bool m_pointerEventsEnabled { false }; > bool m_webSQLEnabled { true }; > >+#if ENABLE(LAYOUT_FORMATTING_CONTEXT) >+ bool m_layoutFormattingContextEnabled { false }; >+#endif >+ > #if ENABLE(CSS_PAINTING_API) > bool m_CSSPaintingAPIEnabled { false }; > #endif >diff --git a/Source/WebKit/Configurations/FeatureDefines.xcconfig b/Source/WebKit/Configurations/FeatureDefines.xcconfig >index de8c44c9e16496dfef5212262e882a092bd021f9..f4993e58feed0f618c0880a91a716fad262b3374 100644 >--- a/Source/WebKit/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebKit/Configurations/FeatureDefines.xcconfig >@@ -228,7 +228,7 @@ ENABLE_KEYBOARD_CODE_ATTRIBUTE = ENABLE_KEYBOARD_CODE_ATTRIBUTE; > > ENABLE_KEYBOARD_KEY_ATTRIBUTE = ENABLE_KEYBOARD_KEY_ATTRIBUTE; > >-ENABLE_LAYOUT_FORMATTING_CONTEXT = ; >+ENABLE_LAYOUT_FORMATTING_CONTEXT = ENABLE_LAYOUT_FORMATTING_CONTEXT; > > ENABLE_LEGACY_CSS_VENDOR_PREFIXES = ENABLE_LEGACY_CSS_VENDOR_PREFIXES; > >diff --git a/Source/WebKit/Shared/WebPreferences.yaml b/Source/WebKit/Shared/WebPreferences.yaml >index 6e6836b0a43ef21fe2c49b3063a873fdcdfe05c8..a37ba990513bb28dbdcb3ab8c155f8f05179726a 100644 >--- a/Source/WebKit/Shared/WebPreferences.yaml >+++ b/Source/WebKit/Shared/WebPreferences.yaml >@@ -1326,6 +1326,15 @@ DarkModeCSSEnabled: > category: experimental > condition: ENABLE(DARK_MODE_CSS) > >+LayoutFormattingContextEnabled: >+ type: bool >+ defaultValue: false >+ humanReadableName: "Next-gen layout" >+ humanReadableDescription: "Enable next-gen layout" >+ webcoreBinding: RuntimeEnabledFeatures >+ category: experimental >+ condition: ENABLE(LAYOUT_FORMATTING_CONTEXT) >+ > CSSPaintingAPIEnabled: > type: bool > defaultValue: false >diff --git a/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp b/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp >index a0a2fc8b49254fc758de43e8758d34547b6506ce..88054071b6afcadd4a1a821e3c59007713478867 100644 >--- a/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp >+++ b/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp >@@ -256,6 +256,11 @@ void InjectedBundle::overrideBoolPreferenceForTestRunner(WebPageGroupProxy* page > if (preference == "CSSCustomPropertiesAndValuesEnabled") > RuntimeEnabledFeatures::sharedFeatures().setCSSCustomPropertiesAndValuesEnabled(enabled); > >+#if ENABLE(LAYOUT_FORMATTING_CONTEXT) >+ if (preference == "LayoutFormattingContextEnabled") >+ RuntimeEnabledFeatures::sharedFeatures().setLayoutFormattingContextEnabled(enabled); >+#endif >+ > #if ENABLE(CSS_PAINTING_API) > if (preference == "CSSPaintingAPIEnabled") > RuntimeEnabledFeatures::sharedFeatures().setCSSPaintingAPIEnabled(enabled); >diff --git a/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig b/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig >index de8c44c9e16496dfef5212262e882a092bd021f9..f4993e58feed0f618c0880a91a716fad262b3374 100644 >--- a/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig >@@ -228,7 +228,7 @@ ENABLE_KEYBOARD_CODE_ATTRIBUTE = ENABLE_KEYBOARD_CODE_ATTRIBUTE; > > ENABLE_KEYBOARD_KEY_ATTRIBUTE = ENABLE_KEYBOARD_KEY_ATTRIBUTE; > >-ENABLE_LAYOUT_FORMATTING_CONTEXT = ; >+ENABLE_LAYOUT_FORMATTING_CONTEXT = ENABLE_LAYOUT_FORMATTING_CONTEXT; > > ENABLE_LEGACY_CSS_VENDOR_PREFIXES = ENABLE_LEGACY_CSS_VENDOR_PREFIXES; > >diff --git a/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig b/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig >index de8c44c9e16496dfef5212262e882a092bd021f9..f4993e58feed0f618c0880a91a716fad262b3374 100644 >--- a/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig >+++ b/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig >@@ -228,7 +228,7 @@ ENABLE_KEYBOARD_CODE_ATTRIBUTE = ENABLE_KEYBOARD_CODE_ATTRIBUTE; > > ENABLE_KEYBOARD_KEY_ATTRIBUTE = ENABLE_KEYBOARD_KEY_ATTRIBUTE; > >-ENABLE_LAYOUT_FORMATTING_CONTEXT = ; >+ENABLE_LAYOUT_FORMATTING_CONTEXT = ENABLE_LAYOUT_FORMATTING_CONTEXT; > > ENABLE_LEGACY_CSS_VENDOR_PREFIXES = ENABLE_LEGACY_CSS_VENDOR_PREFIXES; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192280
:
356321
|
356322
|
356331
|
356336
|
356349