WebKit Bugzilla
Attachment 356349 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-20181202154609.patch (text/plain), 14.57 KB, created by
zalan
on 2018-12-02 15:46:15 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
zalan
Created:
2018-12-02 15:46:15 PST
Size:
14.57 KB
patch
obsolete
>Subversion Revision: 238790 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index 2ffd408d275ac8fc84e4cb34fa1520b269dde80b..602809822d2b14a0fac8bf7c2dc0087b264f4079 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,12 @@ >+2018-12-02 Zalan Bujtas <zalan@apple.com> >+ >+ Add a runtime feature flag for LayoutFormattingContext. >+ https://bugs.webkit.org/show_bug.cgi?id=192280 >+ >+ Reviewed by Simon Fraser. >+ >+ * Configurations/FeatureDefines.xcconfig: >+ > 2018-12-02 Caio Lima <ticaiolima@gmail.com> > > [ESNext][BigInt] Implement support for "<<" and ">>" >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index dcf602f7fb289c5520d07d02d5c7f5ad5f597a3e..d1ac56ff4ac01acd15196428b65162054f0bb8b9 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,17 @@ >+2018-12-02 Zalan Bujtas <zalan@apple.com> >+ >+ Add a runtime feature flag for LayoutFormattingContext. >+ https://bugs.webkit.org/show_bug.cgi?id=192280 >+ >+ Reviewed by Simon Fraser. >+ >+ * 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..c5bdd164d31f3577eb51c328da727419966665cb 100644 >--- a/Source/WebCore/PAL/ChangeLog >+++ b/Source/WebCore/PAL/ChangeLog >@@ -1,3 +1,12 @@ >+2018-12-02 Zalan Bujtas <zalan@apple.com> >+ >+ Add a runtime feature flag for LayoutFormattingContext. >+ https://bugs.webkit.org/show_bug.cgi?id=192280 >+ >+ Reviewed by Simon Fraser. >+ >+ * 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..6ac3e62f45e1b16b97b4059a65e36e529a7bf6a0 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,15 @@ >+2018-12-02 Zalan Bujtas <zalan@apple.com> >+ >+ Add a runtime feature flag for LayoutFormattingContext. >+ https://bugs.webkit.org/show_bug.cgi?id=192280 >+ >+ Reviewed by Simon Fraser. >+ >+ * 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..1efaf52cc017ca68897afe8584b56de5e7b2d674 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,12 @@ >+2018-12-02 Zalan Bujtas <zalan@apple.com> >+ >+ Add a runtime feature flag for LayoutFormattingContext. >+ https://bugs.webkit.org/show_bug.cgi?id=192280 >+ >+ Reviewed by Simon Fraser. >+ >+ * 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/LayoutUnits.h b/Source/WebCore/layout/LayoutUnits.h >index cfe83f52c6787598d78fbb3c2edf7c7f25edeaf1..b1c3d521d455f89beddc59c9cc577e10f6d1966f 100644 >--- a/Source/WebCore/layout/LayoutUnits.h >+++ b/Source/WebCore/layout/LayoutUnits.h >@@ -30,6 +30,7 @@ > #include "LayoutUnit.h" > #include "LayoutPoint.h" > #include "LayoutRect.h" >+#include <wtf/Optional.h> > > namespace WebCore { > namespace Layout { >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..04840314dd66d45ec6f9a916ed64a8e68badf7ec 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()); >@@ -208,7 +211,7 @@ void FrameViewLayoutContext::layout() > #endif > layoutRoot->layout(); > #if ENABLE(LAYOUT_FORMATTING_CONTEXT) >- layoutUsingFormattingContext(*renderView()); >+ layoutUsingFormattingContext(*renderView()); > #endif > ++m_layoutCount; > #if ENABLE(TEXT_AUTOSIZING) >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..6d25e71f13cf26010b9237f73cebc9c9dc26d214 100644 >--- a/Source/WebKit/Shared/WebPreferences.yaml >+++ b/Source/WebKit/Shared/WebPreferences.yaml >@@ -1464,3 +1464,13 @@ DataListElementEnabled: > category: internal > webcoreBinding: RuntimeEnabledFeatures > condition: ENABLE(DATALIST_ELEMENT) >+ >+LayoutFormattingContextEnabled: >+ type: bool >+ defaultValue: false >+ humanReadableName: "Next-gen layout" >+ humanReadableDescription: "Enable next-gen layout" >+ category: internal >+ webcoreBinding: RuntimeEnabledFeatures >+ condition: ENABLE(LAYOUT_FORMATTING_CONTEXT) >+ >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