[webkit-changes] [250497] trunk/Source/WTF
Title: [250497] trunk/Source/WTF Revision 250497 Author krol...@apple.com Date 2019-09-29 19:21:48 -0700 (Sun, 29 Sep 2019) Log Message Address static analysis warning in ParkingLot.cpp: Access to field 'size' results in a dereference of a null pointer https://bugs.webkit.org/show_bug.cgi?id=202154 Reviewed by Brent Fulgham. Static analysis reports the following: .../OpenSource/Source/WTF/wtf/ParkingLot.cpp:376:30: warning: Access to field 'size' results in a dereference of a null pointer (loaded from variable 'oldHashtable') RELEASE_ASSERT(newSize > oldHashtable->size); ^~ This warning arises because earlier code checks to see if oldHashtable is NULL, leading the static analyzer to think that it *could* be NULL. However, even earlier code actually ensures that oldHashtable will not be NULL. Address this by removing the NULL check, and back it up with an ASSERT to ensure that it's not NULL. * wtf/ParkingLot.cpp: Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/wtf/ParkingLot.cpp Diff Modified: trunk/Source/WTF/ChangeLog (250496 => 250497) --- trunk/Source/WTF/ChangeLog 2019-09-30 01:56:43 UTC (rev 250496) +++ trunk/Source/WTF/ChangeLog 2019-09-30 02:21:48 UTC (rev 250497) @@ -1,3 +1,25 @@ +2019-09-29 Keith Rollin + +Address static analysis warning in ParkingLot.cpp: Access to field 'size' results in a dereference of a null pointer +https://bugs.webkit.org/show_bug.cgi?id=202154 + + +Reviewed by Brent Fulgham. + +Static analysis reports the following: + +.../OpenSource/Source/WTF/wtf/ParkingLot.cpp:376:30: warning: Access to field 'size' results in a dereference of a null pointer (loaded from variable 'oldHashtable') +RELEASE_ASSERT(newSize > oldHashtable->size); + ^~ + +This warning arises because earlier code checks to see if oldHashtable +is NULL, leading the static analyzer to think that it *could* be NULL. +However, even earlier code actually ensures that oldHashtable will not +be NULL. Address this by removing the NULL check, and back it up with +an ASSERT to ensure that it's not NULL. + +* wtf/ParkingLot.cpp: + 2019-09-26 Alexey Shvayka toExponential, toFixed, and toPrecision should allow arguments up to 100 Modified: trunk/Source/WTF/wtf/ParkingLot.cpp (250496 => 250497) --- trunk/Source/WTF/wtf/ParkingLot.cpp 2019-09-30 01:56:43 UTC (rev 250496) +++ trunk/Source/WTF/wtf/ParkingLot.cpp 2019-09-30 02:21:48 UTC (rev 250497) @@ -355,7 +355,8 @@ // Check again, since the hashtable could have rehashed while we were locking it. Also, // lockHashtable() creates an initial hashtable for us. oldHashtable = hashtable.load(); -if (oldHashtable && static_cast(oldHashtable->size) / static_cast(numThreads) >= maxLoadFactor) { +RELEASE_ASSERT(oldHashtable); +if (static_cast(oldHashtable->size) / static_cast(numThreads) >= maxLoadFactor) { if (verbose) dataLog(toString(Thread::current(), ": after locking, no need to rehash because ", oldHashtable->size, " / ", numThreads, " >= ", maxLoadFactor, "\n")); unlockHashtable(bucketsToUnlock); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250494] branches/safari-608-branch
Title: [250494] branches/safari-608-branch Revision 250494 Author alanc...@apple.com Date 2019-09-29 18:56:32 -0700 (Sun, 29 Sep 2019) Log Message Cherry-pick r249893. rdar://problem/55825342 Expose misspelling ranges for editable content to accessibility clients. https://bugs.webkit.org/show_bug.cgi?id=201752 Patch by Andres Gonzalez on 2019-09-16 Reviewed by Chris Fleizach. Source/WebCore: Test: accessibility/misspelling-range.html Added [WebAccessibilityObjectWrapper misspellingTextMarkerRange] and underlying AccessibilityObject implementation to expose misspellings to accessibility clients that provide an alternative user interface to spell checking. * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::getMisspellingRange const): * accessibility/AccessibilityObject.h: * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper misspellingTextMarkerRange:direction:]): * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (accessibilityMisspellingSearchCriteriaForParameterizedAttribute): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): Tools: Test code needed for LayoutTests/accessibility/misspelling-range.html. * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::misspellingTextMarkerRange): (WTR::AccessibilityUIElement::indexForTextMarker): * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::misspellingSearchParameterizedAttributeForCriteria): (WTR::AccessibilityUIElement::misspellingTextMarkerRange): LayoutTests: * accessibility/misspelling-range-expected.txt: Added. * accessibility/misspelling-range.html: Added. * platform/ios-simulator/TestExpectations: git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249893 268f45cc-cd09-0410-ab3c-d52691b4dbfc Modified Paths branches/safari-608-branch/LayoutTests/ChangeLog branches/safari-608-branch/LayoutTests/platform/ios-simulator/TestExpectations branches/safari-608-branch/LayoutTests/platform/win/TestExpectations branches/safari-608-branch/Source/WebCore/ChangeLog branches/safari-608-branch/Source/WebCore/accessibility/AccessibilityObject.cpp branches/safari-608-branch/Source/WebCore/accessibility/AccessibilityObject.h branches/safari-608-branch/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm branches/safari-608-branch/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm branches/safari-608-branch/Tools/ChangeLog branches/safari-608-branch/Tools/DumpRenderTree/AccessibilityUIElement.cpp branches/safari-608-branch/Tools/DumpRenderTree/AccessibilityUIElement.h branches/safari-608-branch/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm branches/safari-608-branch/Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm branches/safari-608-branch/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp branches/safari-608-branch/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h branches/safari-608-branch/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl branches/safari-608-branch/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm branches/safari-608-branch/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm Added Paths branches/safari-608-branch/LayoutTests/accessibility/misspelling-range-expected.txt branches/safari-608-branch/LayoutTests/accessibility/misspelling-range.html Diff Modified: branches/safari-608-branch/LayoutTests/ChangeLog (250493 => 250494) --- branches/safari-608-branch/LayoutTests/ChangeLog 2019-09-29 23:50:52 UTC (rev 250493) +++ branches/safari-608-branch/LayoutTests/ChangeLog 2019-09-30 01:56:32 UTC (rev 250494) @@ -1,3 +1,63 @@ +2019-09-29 Alan Coon + +Cherry-pick r249893. rdar://problem/55825342 + +Expose misspelling ranges for editable content to accessibility clients. +https://bugs.webkit.org/show_bug.cgi?id=201752 + + +Patch by Andres Gonzalez on 2019-09-16 +Reviewed by Chris Fleizach. + +Source/WebCore: + +Test: accessibility/misspelling-range.html + +Added [WebAccessibilityObjectWrapper misspellingTextMarkerRange] and +underlying AccessibilityObject implementation to expose misspellings to +accessibility clients that provide an alternative user interface to +spell checking. +* accessibility/AccessibilityObject.cpp: +(WebCore::AccessibilityObject::getMisspellingRange const): +* accessibility/AccessibilityObject.h: +* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: +(-[WebAccessibilityObjectWrapper misspellingTextMarkerRange:direction:]): +*
[webkit-changes] [250495] branches/safari-608-branch
Title: [250495] branches/safari-608-branch Revision 250495 Author alanc...@apple.com Date 2019-09-29 18:56:41 -0700 (Sun, 29 Sep 2019) Log Message Cherry-pick r250345. rdar://problem/55825352 [iPadOS] [DataActivation] Focus moves away after focusing input fields on www.att.com https://bugs.webkit.org/show_bug.cgi?id=202167 Reviewed by Tim Horton. Source/WebCore: Adds a new site-specific quirk. See WebKit ChangeLog for more details. * page/Quirks.cpp: (WebCore::Quirks::shouldUseLegacySelectPopoverDismissalBehaviorInDataActivation const): * page/Quirks.h: * platform/RuntimeApplicationChecks.h: * platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::IOSApplication::isDataActivation): Source/WebKit: When using the data activation page on www.att.com, one of the sections on the page contains several select elements; in the case where the user agent: 1. contains the string "iPad", and 2. does not contain the string "Safari" ...www.att.com's data activation page will opt into a mode where it adds blur event listeners to the select elements; in this blur event listener, www.att.com proceeds to programmatically focus a non-editable div element after a 1 second timeout. The reasons for this behavior remain unclear to me, though it's worth noting that the blur event handler name is "screenReaderFocus", which suggests that this is in place to ensure compatibility with screen readers. In iOS 12, dismissing the popover would blur the focused select menu with an animation. Since the animation would take a slightly less than 1 second, www.att.com's logic would have the effect of moving focus to the div element shortly after dismissing the select menu. However, after r243808, we no longer attempt to blur the focused select element when dismissing the popover. This means that the select element is only blurred the next time the user activates another focused element, such as one of the input fields on the page, or a different select element. Consequently, the logic to move focus into a div element now occurs only after a different element has already been focused; this results in focus moving away from newly focused elements after 1 second in the case where a select element has previously focused. To mitigate this, restore iOS 12 behavior behind a site- and app-specific quirk. See comments below for more details. * Shared/FocusedElementInformation.cpp: (WebKit::FocusedElementInformation::encode const): (WebKit::FocusedElementInformation::decode): * Shared/FocusedElementInformation.h: Add a new behavioral quirk flag to FocusedElementInformation to determine whether we should use "legacy" select popover dismissal behavior (i.e. blurring the focused select element when dismissing the select popover, as well as dismissing the popover with animation). * Shared/WebPreferences.yaml: Enable site-specific quirks by default in WKWebView. With regards to this bug, this change allows for site-specific hacks (namely, legacy select popover dismissal) in DataActivation. However, this also fixes various known bugs that are otherwise addressed in Safari only, via site-specific quirks. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _initializeWithConfiguration:]): For apps linked on or before iOS 13 and macOS 10.15, revert the default of value of NeedsSiteSpecificQuirks to false. This is done here instead of in a default value function in WebPreferencesDefaultValues to prevent the default values of NeedsSiteSpecificQuirks in the web process and UI process from going out of sync, since the web process is not necessarily linked against the same SDK as the application. * UIProcess/Cocoa/VersionChecks.h: Add a new DYLD version check for the first version of iOS and macOS where site-specific quirks are enabled by default. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]): (-[WKContentView _elementDidBlur]): (-[WKContentView _shouldUseLegacySelectPopoverDismissalBehavior]): We only use "legacy" select popover dismissal behavior in the case where the site-specific quirk flag is on, a select popover is used (i.e. the device is an iPad and a select element is focused), and the application bundle is "com.apple.DataActivation". * UIProcess/ios/forms/WKFormSelectPopover.mm: (-[WKSelectTableViewController shouldDismissWithAnimation]): Keyed off of _shouldUseLegacySelectPopoverDismissalBehavior. (-[WKSelectPopover controlEndEditing]): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getFocusedElementInformation): Source/WTF: Declare DYLD_IOS_VERSION_13_2. * wtf/spi/darwin/dyldSPI.h: Tools: Rebaseline an API test.
[webkit-changes] [250496] branches/safari-608-branch/Source/WebCore
Title: [250496] branches/safari-608-branch/Source/WebCore Revision 250496 Author alanc...@apple.com Date 2019-09-29 18:56:43 -0700 (Sun, 29 Sep 2019) Log Message Cherry-pick r250483. rdar://problem/55825351 [Experiment][iOS] Add temporary HTTP header to distinguish iPads for requests to Google https://bugs.webkit.org/show_bug.cgi?id=202335 Reviewed by Maciej Stachowiak. * loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::requestResource): * platform/network/HTTPHeaderNames.in: git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250483 268f45cc-cd09-0410-ab3c-d52691b4dbfc Modified Paths branches/safari-608-branch/Source/WebCore/ChangeLog branches/safari-608-branch/Source/WebCore/loader/cache/CachedResourceLoader.cpp branches/safari-608-branch/Source/WebCore/platform/network/HTTPHeaderNames.in Diff Modified: branches/safari-608-branch/Source/WebCore/ChangeLog (250495 => 250496) --- branches/safari-608-branch/Source/WebCore/ChangeLog 2019-09-30 01:56:41 UTC (rev 250495) +++ branches/safari-608-branch/Source/WebCore/ChangeLog 2019-09-30 01:56:43 UTC (rev 250496) @@ -1,5 +1,33 @@ 2019-09-29 Alan Coon +Cherry-pick r250483. rdar://problem/55825351 + +[Experiment][iOS] Add temporary HTTP header to distinguish iPads for requests to Google +https://bugs.webkit.org/show_bug.cgi?id=202335 + + +Reviewed by Maciej Stachowiak. + +* loader/cache/CachedResourceLoader.cpp: +(WebCore::CachedResourceLoader::requestResource): +* platform/network/HTTPHeaderNames.in: + +git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250483 268f45cc-cd09-0410-ab3c-d52691b4dbfc + +2019-09-28 Chris Dumez + +[Experiment][iOS] Add temporary HTTP header to distinguish iPads for requests to Google +https://bugs.webkit.org/show_bug.cgi?id=202335 + + +Reviewed by Maciej Stachowiak. + +* loader/cache/CachedResourceLoader.cpp: +(WebCore::CachedResourceLoader::requestResource): +* platform/network/HTTPHeaderNames.in: + +2019-09-29 Alan Coon + Cherry-pick r250345. rdar://problem/55825352 [iPadOS] [DataActivation] Focus moves away after focusing input fields on www.att.com Modified: branches/safari-608-branch/Source/WebCore/loader/cache/CachedResourceLoader.cpp (250495 => 250496) --- branches/safari-608-branch/Source/WebCore/loader/cache/CachedResourceLoader.cpp 2019-09-30 01:56:41 UTC (rev 250495) +++ branches/safari-608-branch/Source/WebCore/loader/cache/CachedResourceLoader.cpp 2019-09-30 01:56:43 UTC (rev 250496) @@ -87,6 +87,10 @@ #include "CachedTextTrack.h" #endif +#if PLATFORM(IOS_FAMILY) +#include "Device.h" +#endif + #undef RELEASE_LOG_IF_ALLOWED #define RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(isAlwaysOnLoggingAllowed(), Network, "%p - CachedResourceLoader::" fmt, this, ##__VA_ARGS__) @@ -867,6 +871,18 @@ } } +// FIXME: This is temporary for . +#if PLATFORM(IOS) && !PLATFORM(IOSMAC) +if (!page.sessionID().isEphemeral() && deviceHasIPadCapability() && request.resourceRequest().url().protocolIs("https")) { +RegistrableDomain registrableDomain(request.resourceRequest().url()); +if (registrableDomain.string().startsWith("google.")) { +auto host = request.resourceRequest().url().host(); +if (host.startsWithIgnoringASCIICase("google.") || host.startsWithIgnoringASCIICase("www.google.") || host.startsWithIgnoringASCIICase("images.google.")) +request.resourceRequest().setHTTPHeaderField(HTTPHeaderName::XTempTablet, "1"_s); +} +} +#endif + LoadTiming loadTiming; loadTiming.markStartTimeAndFetchStart(); InitiatorContext initiatorContext = request.options().initiatorContext; Modified: branches/safari-608-branch/Source/WebCore/platform/network/HTTPHeaderNames.in (250495 => 250496) --- branches/safari-608-branch/Source/WebCore/platform/network/HTTPHeaderNames.in 2019-09-30 01:56:41 UTC (rev 250495) +++ branches/safari-608-branch/Source/WebCore/platform/network/HTTPHeaderNames.in 2019-09-30 01:56:43 UTC (rev 250496) @@ -104,6 +104,7 @@ X-WebKit-CSP X-WebKit-CSP-Report-Only X-XSS-Protection +X-Temp-Tablet // These headers are specific to GStreamer. Icy-MetaInt ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [250493] branches/safari-608-branch
Title: [250493] branches/safari-608-branch Revision 250493 Author bshaf...@apple.com Date 2019-09-29 16:50:52 -0700 (Sun, 29 Sep 2019) Log Message Apply patch. rdar://problem/55801087 Modified Paths branches/safari-608-branch/LayoutTests/ChangeLog branches/safari-608-branch/LayoutTests/http/tests/blink/sendbeacon/beacon-cross-origin-expected.txt branches/safari-608-branch/LayoutTests/http/tests/navigation/ping-attribute/anchor-cross-origin.html branches/safari-608-branch/LayoutTests/http/tests/navigation/ping-attribute/area-cross-origin.html branches/safari-608-branch/LayoutTests/http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http-http.html branches/safari-608-branch/LayoutTests/http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http.https.html branches/safari-608-branch/LayoutTests/http/tests/referrer-policy/no-referrer-when-downgrade/same-origin.html branches/safari-608-branch/LayoutTests/http/tests/referrer-policy/unsafe-url/cross-origin-http-http.html branches/safari-608-branch/LayoutTests/http/tests/referrer-policy/unsafe-url/cross-origin-http.https.html branches/safari-608-branch/LayoutTests/http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.php branches/safari-608-branch/LayoutTests/http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.php branches/safari-608-branch/LayoutTests/http/tests/security/referrer-policy-header.html branches/safari-608-branch/LayoutTests/platform/ios/TestExpectations branches/safari-608-branch/LayoutTests/platform/ios-wk2/TestExpectations branches/safari-608-branch/LayoutTests/platform/mac-wk1/TestExpectations branches/safari-608-branch/LayoutTests/platform/mac-wk2/TestExpectations branches/safari-608-branch/LayoutTests/platform/win/TestExpectations branches/safari-608-branch/LayoutTests/platform/wincairo/TestExpectations branches/safari-608-branch/LayoutTests/platform/wk2/TestExpectations branches/safari-608-branch/LayoutTests/resources/js-test.js branches/safari-608-branch/LayoutTests/resources/testharnessreport.js branches/safari-608-branch/Source/WebKit/ChangeLog branches/safari-608-branch/Source/WebKit/NetworkProcess/NetworkProcess.cpp branches/safari-608-branch/Source/WebKit/NetworkProcess/NetworkProcess.h branches/safari-608-branch/Source/WebKit/NetworkProcess/NetworkProcess.messages.in branches/safari-608-branch/Source/WebKit/NetworkProcess/NetworkSession.cpp branches/safari-608-branch/Source/WebKit/NetworkProcess/NetworkSession.h branches/safari-608-branch/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h branches/safari-608-branch/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm branches/safari-608-branch/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp branches/safari-608-branch/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h branches/safari-608-branch/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h branches/safari-608-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp branches/safari-608-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h branches/safari-608-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp branches/safari-608-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h branches/safari-608-branch/Tools/ChangeLog branches/safari-608-branch/Tools/TestWebKitAPI/WKWebViewConfigurationExtras.h branches/safari-608-branch/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl branches/safari-608-branch/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp branches/safari-608-branch/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp branches/safari-608-branch/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h branches/safari-608-branch/Tools/WebKitTestRunner/TestController.cpp branches/safari-608-branch/Tools/WebKitTestRunner/TestController.h branches/safari-608-branch/Tools/WebKitTestRunner/TestInvocation.cpp branches/safari-608-branch/Tools/WebKitTestRunner/TestInvocation.h Added Paths branches/safari-608-branch/LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-redirects-expected.txt branches/safari-608-branch/LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-redirects.html branches/safari-608-branch/LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-requests-expected.txt branches/safari-608-branch/LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-requests.html Removed Paths branches/safari-608-branch/LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-expected.txt branches/safari-608-branch/LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects.html
[webkit-changes] [250492] trunk/Source/WebCore
Title: [250492] trunk/Source/WebCore Revision 250492 Author bfulg...@apple.com Date 2019-09-29 12:33:37 -0700 (Sun, 29 Sep 2019) Log Message [FTW] Correct compositing, shadow, and radial gradient implementations https://bugs.webkit.org/show_bug.cgi?id=202177 Reviewed by Fujii Hironori. This patch corrects a number of implementation errors in basic Canvas drawing operations. Tested by canvas/philip/tests * platform/graphics/win/Direct2DOperations.cpp: (WebCore::Direct2D::State::setCompositeOperation): Initialize blend and composite modes to correct defaults. (WebCore::Direct2D::drawWithShadowHelper): Correct value used for blur standard deviation to more closely match other browser output. * platform/graphics/win/Direct2DUtilities.cpp: (WebCore::Direct2D::createBitmapCopyFromContext): Added helper function. * platform/graphics/win/Direct2DUtilities.h: * platform/graphics/win/GradientDirect2D.cpp: (WebCore::Gradient::generateGradient): Properly handle the case of a non-zero initial gradient radius. Properly compute the final radius. * platform/graphics/win/ImageBufferDataDirect2D.cpp: (WebCore::ImageBufferData::readDataFromBitmapIfNeeded const): Update to use ID2D1DeviceContext from platformContext, rather than searching for it each time. (WebCore::ImageBufferData::compatibleBitmap): Ditto. * platform/graphics/win/PlatformContextDirect2D.cpp: (WebCore::PlatformContextDirect2D::PlatformContextDirect2D): Grab the ID2D1DeviceContext for the RenderTarget at construction time. (WebCore::PlatformContextDirect2D::setRenderTarget): Ditto. (WebCore::PlatformContextDirect2D::endDraw): Perform compositing operations when needed. (WebCore::PlatformContextDirect2D::compositeIfNeeded): Added. (WebCore::PlatformContextDirect2D::setBlendAndCompositeMode): Update to properly set the blend and compositing mode (depending on global value set for the canvas.) * platform/graphics/win/PlatformContextDirect2D.h: (WebCore::PlatformContextDirect2D::deviceContext): (WebCore::PlatformContextDirect2D::setRenderTarget): Deleted. (WebCore::PlatformContextDirect2D::setBlendMode): Deleted. (WebCore::PlatformContextDirect2D::setCompositeMode): Deleted. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/Path.h trunk/Source/WebCore/platform/graphics/win/Direct2DOperations.cpp trunk/Source/WebCore/platform/graphics/win/Direct2DOperations.h trunk/Source/WebCore/platform/graphics/win/Direct2DUtilities.cpp trunk/Source/WebCore/platform/graphics/win/Direct2DUtilities.h trunk/Source/WebCore/platform/graphics/win/GradientDirect2D.cpp trunk/Source/WebCore/platform/graphics/win/ImageBufferDataDirect2D.cpp trunk/Source/WebCore/platform/graphics/win/PathDirect2D.cpp trunk/Source/WebCore/platform/graphics/win/PlatformContextDirect2D.cpp trunk/Source/WebCore/platform/graphics/win/PlatformContextDirect2D.h Diff Modified: trunk/Source/WebCore/ChangeLog (250491 => 250492) --- trunk/Source/WebCore/ChangeLog 2019-09-29 17:25:43 UTC (rev 250491) +++ trunk/Source/WebCore/ChangeLog 2019-09-29 19:33:37 UTC (rev 250492) @@ -1,3 +1,44 @@ +2019-09-28 Brent Fulgham + +[FTW] Correct compositing, shadow, and radial gradient implementations +https://bugs.webkit.org/show_bug.cgi?id=202177 + +Reviewed by Fujii Hironori. + +This patch corrects a number of implementation errors in basic Canvas +drawing operations. + +Tested by canvas/philip/tests + +* platform/graphics/win/Direct2DOperations.cpp: +(WebCore::Direct2D::State::setCompositeOperation): Initialize blend and +composite modes to correct defaults. +(WebCore::Direct2D::drawWithShadowHelper): Correct value used for blur +standard deviation to more closely match other browser output. +* platform/graphics/win/Direct2DUtilities.cpp: +(WebCore::Direct2D::createBitmapCopyFromContext): Added helper function. +* platform/graphics/win/Direct2DUtilities.h: +* platform/graphics/win/GradientDirect2D.cpp: +(WebCore::Gradient::generateGradient): Properly handle the case of a non-zero +initial gradient radius. Properly compute the final radius. +* platform/graphics/win/ImageBufferDataDirect2D.cpp: +(WebCore::ImageBufferData::readDataFromBitmapIfNeeded const): Update to use ID2D1DeviceContext +from platformContext, rather than searching for it each time. +(WebCore::ImageBufferData::compatibleBitmap): Ditto. +* platform/graphics/win/PlatformContextDirect2D.cpp: +(WebCore::PlatformContextDirect2D::PlatformContextDirect2D): Grab the ID2D1DeviceContext for +the RenderTarget at construction time. +(WebCore::PlatformContextDirect2D::setRenderTarget): Ditto. +(WebCore::PlatformContextDirect2D::endDraw): Perform compositing operations when needed. +(WebCore::PlatformContextDirect2D::compositeIfNeeded): Added. +
[webkit-changes] [250490] trunk/Source/WebCore
Title: [250490] trunk/Source/WebCore Revision 250490 Author za...@apple.com Date 2019-09-29 08:08:41 -0700 (Sun, 29 Sep 2019) Log Message [LFC][IFC] Remove InlineLayout abstraction layer https://bugs.webkit.org/show_bug.cgi?id=202352 Reviewed by Antti Koivisto. Move InlineLayout functions to InlineFormattingContext. Now inline layout has 1. InlineFormattingContext -high level layout and preferred width computation, collecting inline content, constructing display boxes 2. LineLayout -responsible for placing inline content on the current line (partial inline content handling, line breaking etc) 3. Line -represents an actual line, turns inline content into runs. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * layout/inlineformatting/InlineFormattingContext.cpp: (WebCore::Layout::InlineFormattingContext::layoutInFlowContent): (WebCore::Layout::InlineFormattingContext::lineLayout): (WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints): (WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const): (WebCore::Layout::InlineFormattingContext::initialConstraintsForLine): (WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine): * layout/inlineformatting/InlineFormattingContext.h: (WebCore::Layout::InlineFormattingContext::InlineLayout::layoutState const): Deleted. (WebCore::Layout::InlineFormattingContext::InlineLayout::formattingContext const): Deleted. (WebCore::Layout::InlineFormattingContext::InlineLayout::formattingRoot const): Deleted. (WebCore::Layout::InlineFormattingContext::InlineLayout::formattingState): Deleted. (WebCore::Layout::InlineFormattingContext::InlineLayout::widthConstraint const): Deleted. * layout/inlineformatting/InlineFormattingContextLineLayout.cpp: Removed. * layout/inlineformatting/InlineFormattingState.h: (WebCore::Layout::InlineFormattingState::inlineItems const): * layout/inlineformatting/InlineLineLayout.cpp: Added. (WebCore::Layout::inlineItemWidth): (WebCore::Layout::LineLayout::LineInput::LineInput): (WebCore::Layout::LineLayout::UncommittedContent::add): (WebCore::Layout::LineLayout::UncommittedContent::reset): (WebCore::Layout::LineLayout::LineLayout): (WebCore::Layout::LineLayout::commitPendingContent): (WebCore::Layout::LineLayout::close): (WebCore::Layout::LineLayout::placeInlineItem): (WebCore::Layout::LineLayout::layout): * layout/inlineformatting/InlineLineLayout.h: Added. (WebCore::Layout::LineLayout::formattingContext const): (WebCore::Layout::LineLayout::UncommittedContent::runs): (WebCore::Layout::LineLayout::UncommittedContent::isEmpty const): (WebCore::Layout::LineLayout::UncommittedContent::size const): (WebCore::Layout::LineLayout::UncommittedContent::width const): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Sources.txt trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.cpp trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h trunk/Source/WebCore/layout/inlineformatting/InlineFormattingState.h Added Paths trunk/Source/WebCore/layout/inlineformatting/InlineLineLayout.cpp trunk/Source/WebCore/layout/inlineformatting/InlineLineLayout.h Removed Paths trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (250489 => 250490) --- trunk/Source/WebCore/ChangeLog 2019-09-29 08:56:34 UTC (rev 250489) +++ trunk/Source/WebCore/ChangeLog 2019-09-29 15:08:41 UTC (rev 250490) @@ -1,3 +1,51 @@ +2019-09-29 Zalan Bujtas + +[LFC][IFC] Remove InlineLayout abstraction layer +https://bugs.webkit.org/show_bug.cgi?id=202352 + + +Reviewed by Antti Koivisto. + +Move InlineLayout functions to InlineFormattingContext. Now inline layout has +1. InlineFormattingContext -high level layout and preferred width computation, collecting inline content, constructing display boxes +2. LineLayout -responsible for placing inline content on the current line (partial inline content handling, line breaking etc) +3. Line -represents an actual line, turns inline content into runs. + +* Sources.txt: +* WebCore.xcodeproj/project.pbxproj: +* layout/inlineformatting/InlineFormattingContext.cpp: +(WebCore::Layout::InlineFormattingContext::layoutInFlowContent): +(WebCore::Layout::InlineFormattingContext::lineLayout): +(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints): +(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const): +(WebCore::Layout::InlineFormattingContext::initialConstraintsForLine): +(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine): +* layout/inlineformatting/InlineFormattingContext.h: +(WebCore::Layout::InlineFormattingContext::InlineLayout::layoutState const): Deleted. +