Timeline
Dec 8, 2019:
- 11:25 PM Changeset in webkit [253282] by
-
- 5 edits in trunk/Tools
REGRESSION: Crash under UIScriptControllerIOS::simulateAccessibilitySettingsChangeNotification
https://bugs.webkit.org/show_bug.cgi?id=205002
Reviewed by Wenson Hsieh.
Keep a strong reference to the UIScriptController while running async tasks.
UIScriptContext will be nulled out if the view was torn down, but this way
we keep the UIScriptController itself and can find the null UIScriptContext
reliably.
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::doAsyncTask):
(WTR::UIScriptControllerIOS::zoomToScale):
- DumpRenderTree/mac/UIScriptControllerMac.mm:
(WTR::UIScriptControllerMac::doAsyncTask):
(WTR::UIScriptControllerMac::activateDataListSuggestion):
(WTR::UIScriptControllerMac::removeViewFromWindow):
(WTR::UIScriptControllerMac::addViewToWindow):
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::doAfterPresentationUpdate):
(WTR::UIScriptControllerIOS::doAfterNextStablePresentationUpdate):
(WTR::UIScriptControllerIOS::ensurePositionInformationIsUpToDateAt):
(WTR::UIScriptControllerIOS::doAfterVisibleContentRectUpdate):
(WTR::UIScriptControllerIOS::zoomToScale):
(WTR::UIScriptControllerIOS::retrieveSpeakSelectionContent):
(WTR::UIScriptControllerIOS::simulateAccessibilitySettingsChangeNotification):
(WTR::UIScriptControllerIOS::touchDownAtPoint):
(WTR::UIScriptControllerIOS::liftUpAtPoint):
(WTR::UIScriptControllerIOS::twoFingerSingleTapAtPoint):
(WTR::UIScriptControllerIOS::doubleTapAtPoint):
(WTR::UIScriptControllerIOS::stylusDownAtPoint):
(WTR::UIScriptControllerIOS::stylusMoveToPoint):
(WTR::UIScriptControllerIOS::stylusUpAtPoint):
(WTR::UIScriptControllerIOS::stylusTapAtPointWithModifiers):
(WTR::UIScriptControllerIOS::dragFromPointToPoint):
(WTR::UIScriptControllerIOS::longPressAtPoint):
(WTR::UIScriptControllerIOS::typeCharacterUsingHardwareKeyboard):
(WTR::UIScriptControllerIOS::dismissFilePicker):
(WTR::UIScriptControllerIOS::applyAutocorrection):
(WTR::UIScriptControllerIOS::simulateRotation):
(WTR::UIScriptControllerIOS::simulateRotationLikeSafari):
(WTR::UIScriptControllerIOS::setDidStartFormControlInteractionCallback):
(WTR::UIScriptControllerIOS::setDidEndFormControlInteractionCallback):
(WTR::UIScriptControllerIOS::setDidShowContextMenuCallback):
(WTR::UIScriptControllerIOS::setDidDismissContextMenuCallback):
(WTR::UIScriptControllerIOS::setWillBeginZoomingCallback):
(WTR::UIScriptControllerIOS::setDidEndZoomingCallback):
(WTR::UIScriptControllerIOS::setDidShowKeyboardCallback):
(WTR::UIScriptControllerIOS::setDidHideKeyboardCallback):
(WTR::UIScriptControllerIOS::setWillPresentPopoverCallback):
(WTR::UIScriptControllerIOS::setDidDismissPopoverCallback):
(WTR::UIScriptControllerIOS::setDidEndScrollingCallback):
(WTR::UIScriptControllerIOS::activateDataListSuggestion):
(WTR::UIScriptControllerIOS::doAfterDoubleTapDelay):
- WebKitTestRunner/mac/UIScriptControllerMac.mm:
(WTR::UIScriptControllerMac::zoomToScale):
(WTR::UIScriptControllerMac::simulateAccessibilitySettingsChangeNotification):
(WTR::UIScriptControllerMac::chooseMenuAction):
(WTR::UIScriptControllerMac::activateAtPoint):
- 5:52 PM Changeset in webkit [253281] by
-
- 5 edits in trunk/Source/JavaScriptCore
[WinCairo] Refine initialization and error handling in RemoteInspectorSocket
https://bugs.webkit.org/show_bug.cgi?id=204338
Reviewed by Fujii Hironori.
RemoteInspectorSocket socket error handling is not enough,
which should be refined to avoid error cases.
- inspector/remote/socket/RemoteInspectorSocket.h: Modifed return value checks to hanlde error cases.
- inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp: Refined check error handling.
(Inspector::RemoteInspectorSocketEndpoint::createListener):
- inspector/remote/socket/posix/RemoteInspectorSocketPOSIX.cpp: Ditto
(Inspector::Socket::connect):
(Inspector::Socket::listen):
(Inspector::Socket::setup):
(Inspector::Socket::isListening):
(Inspector::Socket::getPort):
(Inspector::Socket::preparePolling):
- inspector/remote/socket/win/RemoteInspectorSocketWin.cpp: Ditto
(Inspector::Socket::Socket::create):
(Inspector::Socket::setOpt):
(Inspector::Socket::bindAndListen):
(Inspector::Socket::connect):
(Inspector::Socket::accept):
(Inspector::Socket::createPair):
(Inspector::Socket::setup):
(Inspector::Socket::isListening):
(Inspector::Socket::getPort):
(Inspector::Socket::read):
(Inspector::Socket::write):
(Inspector::Socket::preparePolling): Initialized 'poll' with zero
- 5:35 PM Changeset in webkit [253280] by
-
- 3 edits1 add in trunk
[WebAssembly] Fix LLIntGenerator's checkConsistency contract
https://bugs.webkit.org/show_bug.cgi?id=204998
<rdar://problem/57733405>
Reviewed by Mark Lam.
JSTests:
- wasm/regress/stack-consistency.js: Added.
Source/JavaScriptCore:
We check the consistency of the WebAssembly parser's expression stack every time the LLIntGenerator calls
push to allocate a new stack value. However, if we call push more than once (e.g. in a loop), the stack
is no longer consistent, since those values have not yet been placed in the parser's expression stack, so
the generator and parser's stacks are out of sync. Instead, whenever we need to push multiple values, we
should first manually call checkConsistency before any pushes, and all pushes after that should be replaced
with push(NoConsistencyCheck).
- wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::addArguments):
(JSC::Wasm::LLIntGenerator::addLocal):
- 3:27 PM Changeset in webkit [253279] by
-
- 11 edits in trunk/Source/WebCore
There should be one MicrotaskQueue per EventLoop
https://bugs.webkit.org/show_bug.cgi?id=204492
<rdar://problem/57420645>
Reviewed by Antti Koivisto.
This patch makes microtask queue and the microtasks for mutation observers and custom elements
specific to each event loop so that only similar origin windows share the same microtask queue
and mutation observer's compound microtask or custom element's backup element queue.
As a result, we can remove the workaround we added in r247222.
Because microtasks for mutation observers and custom elements are shared across similar origin
window agents, we can't use any one document's task group to schedule these. Instead, we create
a new "perpetual" task group in WindowEventLoop which is never suspended or stopped. It's the
responsibility of mutation observer and custom elements' code to deal with suspened or stopped
documents as it has been the case.
See also: https://dom.spec.whatwg.org/#queue-a-mutation-observer-compound-microtask
https://html.spec.whatwg.org/multipage/custom-elements.html#backup-element-queue
Test: editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html
- dom/CustomElementReactionQueue.cpp:
(WebCore::CustomElementQueue::add): Renamed from CustomElementReactionQueue::ElementQueue to
allow forward declaration in EventLoop.h.
(WebCore::CustomElementQueue::invokeAll): Ditto.
(WebCore::CustomElementQueue::processQueue): Ditto.
(WebCore::CustomElementReactionQueue::enqueueElementOnAppropriateElementQueue):
(WebCore::CustomElementReactionQueue::processBackupQueue):
(WebCore::CustomElementReactionQueue::ensureBackupQueue): Deleted. Moved to WindowEventLoop.
(WebCore::CustomElementReactionQueue::backupElementQueue): Ditto.
- dom/CustomElementReactionQueue.h:
(WebCore::CustomElementQueue): Renamed from CustomElementReactionQueue::ElementQueue to allow
forward declaration in EventLoop.h.
- dom/Document.cpp:
(WebCore::Document::finishedParsing): Removed the workaround added in r247222.
(WebCore::Document::eventLoop):
(WebCore::Document::windowEventLoop): Added.
- dom/Document.h:
- dom/MutationObserver.cpp:
(WebCore::activeMutationObservers): Deleted. Moved to WindowEventLoop.
(WebCore::suspendedMutationObservers): Ditto.
(WebCore::signalSlotList): Ditto.
(WebCore::MutationObserver::queueMutationObserverCompoundMicrotask): Ditto.
(WebCore::MutationObserver::enqueueMutationRecord):
(WebCore::MutationObserver::enqueueSlotChangeEvent):
(WebCore::MutationObserver::setHasTransientRegistration):
(WebCore::MutationObserver::notifyMutationObservers): Now takes WindowEventLoop since various
lists and hash maps are specific to each WindowEventLoop.
- dom/MutationObserver.h:
- dom/WindowEventLoop.cpp:
(WebCore::WindowEventLoop::WindowEventLoop): Create m_perpetualTaskGroupForSimilarOriginWindowAgents.
(WebCore::WindowEventLoop::microtaskQueue):
(WebCore::WindowEventLoop::queueMutationObserverCompoundMicrotask):
(WebCore::WindowEventLoop::backupElementQueue):
- dom/WindowEventLoop.h:
- editing/markup.cpp:
(WebCore::createPageForSanitizingWebContent): Removed the workaround added in r247222.
- page/Page.h:
(WebCore::Page::setIsForSanitizingWebContent): Ditto.
(WebCore::Page::isForSanitizingWebContent const): Ditto.
- 1:31 PM Changeset in webkit [253278] by
-
- 5 edits in trunk/Source
Move WebCore::Path encoders and decoders into WebCore from WebCoreArgumentCoders
https://bugs.webkit.org/show_bug.cgi?id=204993
Reviewed by Tim Horton.
Source/WebCore:
Move encoding and decoding logic from WebCoreArgumentCoders into WebCore. The ability to encode or decode Paths
is needed in order to encode or decode DisplayListItems that contain Paths; since these encoders live in
WebCore, the encoders for Paths should live there as well.
No change in behavior.
- platform/graphics/Path.cpp:
- platform/graphics/Path.h:
Also fixes up the indentation of the Path class in this header, such that the class declaration isn't indented
one level past the namespace.
(WebCore::Path::isNull const):
(WebCore::Path::platformPath const):
(WebCore::Path::circleControlPoint):
(WebCore::Path::encode const):
(WebCore::Path::decode):
Source/WebKit:
Remove Encoder/Decoder support for WebCore::Path.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::pathEncodeApplierFunction): Deleted.
(IPC::ArgumentCoder<Path>::encode): Deleted.
(IPC::ArgumentCoder<Path>::decode): Deleted.
- Shared/WebCoreArgumentCoders.h:
- 1:30 PM Changeset in webkit [253277] by
-
- 17 edits in trunk
Preconnect to server as early as possible in WebPage::LoadRequest
https://bugs.webkit.org/show_bug.cgi?id=204992
Reviewed by Antti Koivisto.
Preconnect to server as early as possible in WebPage::LoadRequest. This avoids delaying the
connection to the server until after the policy check and is a ~1.3% progression on PLT5 on
both macOS and iOS.
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::preconnectTo):
- WebProcess/Network/WebLoaderStrategy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
- 11:10 AM Changeset in webkit [253276] by
-
- 16 edits in trunk/Source/WebCore
Do not use DOMGuarded for maplike
https://bugs.webkit.org/show_bug.cgi?id=204879
Reviewed by Darin Adler.
Update maplike according setlike model where we support syncing at creation of the JS wrapper
and syncing whenever setlike/maplike methods are called.
Removing DOMGuardedObject makes implementation more lightweight, there is less things to implement on DOM side
and it allows collecting the private map to free memory if needed.
Covered by existing tests and rebased binding tests.
- Modules/highlight/HighlightMap.cpp:
(WebCore::HighlightMap::initializeMapLike):
- Modules/highlight/HighlightMap.h:
(WebCore::HighlightMap::synchronizeBackingMap): Deleted.
(WebCore::HighlightMap::backingMap): Deleted.
- Modules/mediastream/RTCStatsReport.h:
(WebCore::RTCStatsReport::create):
(WebCore::RTCStatsReport::initializeMapLike):
(WebCore::RTCStatsReport::RTCStatsReport):
(WebCore::RTCStatsReport::synchronizeBackingMap): Deleted.
(WebCore::RTCStatsReport::backingMap): Deleted.
(WebCore::RTCStatsReport::addStats): Deleted.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::createStatsCollector):
- Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:
(WebCore::LibWebRTCStatsCollector::~LibWebRTCStatsCollector):
(WebCore::initializeRTCStatsReportBackingMap):
(WebCore::LibWebRTCStatsCollector::OnStatsDelivered):
- Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h:
- bindings/js/JSDOMMapLike.cpp:
(WebCore::getBackingMap):
(WebCore::clearBackingMap):
(WebCore::setToBackingMap):
(WebCore::forwardAttributeGetterToBackingMap):
(WebCore::forwardFunctionCallToBackingMap):
(WebCore::forwardForEachCallToBackingMap):
(WebCore::initializeBackingMap): Deleted.
(WebCore::createBackingMap): Deleted.
- bindings/js/JSDOMMapLike.h:
(WebCore::DOMMapAdapter::DOMMapAdapter):
(WebCore::DOMMapAdapter::set):
(WebCore::DOMMapAdapter::clear):
(WebCore::getAndInitializeBackingMap):
(WebCore::forwardSizeToMapLike):
(WebCore::forwardEntriesToMapLike):
(WebCore::forwardKeysToMapLike):
(WebCore::forwardValuesToMapLike):
(WebCore::forwardClearToMapLike):
(WebCore::forwardForEachToMapLike):
(WebCore::forwardGetToMapLike):
(WebCore::forwardHasToMapLike):
(WebCore::forwardSetToMapLike):
(WebCore::forwardDeleteToMapLike):
(): Deleted.
(WebCore::DOMMapLike::set): Deleted.
(WebCore::synchronizeBackingMap): Deleted.
- bindings/js/JSDOMSetLike.cpp:
- bindings/js/JSDOMSetLike.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/test/JS/JSMapLike.cpp:
(WebCore::JSMapLike::finishCreation):
- bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
(WebCore::JSReadOnlyMapLike::finishCreation):
- testing/InternalsMapLike.cpp:
(WebCore::InternalsMapLike::initializeMapLike):
(WebCore::InternalsMapLike::synchronizeBackingMap): Deleted.
- testing/InternalsMapLike.h:
(WebCore::InternalsMapLike::backingMap): Deleted.
- 11:10 AM Changeset in webkit [253275] by
-
- 17 edits in trunk
Support different resolutions for video tracks captured from UIProcess
https://bugs.webkit.org/show_bug.cgi?id=204945
Reviewed by Eric Carlson.
Source/WebCore:
Remove whether the a source is remote or not.
Previously we were doing the distinction as resizing would happen in WebProcess and not in UIProcess.
We are now moving away from doing resizing in WebProcess.
Covered by existing tests.
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/RealtimeMediaSourceFactory.h:
- platform/mediastream/RealtimeVideoCaptureSource.cpp:
(WebCore::RealtimeVideoCaptureSource::adaptVideoSample):
For remote tracks, we also update the size for observers.
- platform/mediastream/RealtimeVideoSource.cpp:
(WebCore::m_source):
(WebCore::RealtimeVideoSource::sourceSettingsChanged):
Update computation of size based on rotation.
This makes sure we have resizing done right.
- platform/mediastream/RealtimeVideoSource.h:
- platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
(WebCore::DisplayCaptureSourceCocoa::emitFrame):
Source/WebKit:
Change video capture in uiprocess to an experimental flag.
Add support for remote video source cloning by sending some IPC to UIProcess and cloning the source there.
This triggers IPC for both cloning and cloned sources but this allows to do resizing in UIProcess instead of WebProcess.
We thus disable video capture resizing in WebProcess.
- Shared/WebPreferences.yaml:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::start):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::stop):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::requestToEnd):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::preventSourceFromStopping):
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::startProducingData):
(WebKit::UserMediaCaptureManagerProxy::stopProducingData):
(WebKit::UserMediaCaptureManagerProxy::clone):
(WebKit::UserMediaCaptureManagerProxy::requestToEnd):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::Source::sourceID const):
(WebKit::UserMediaCaptureManager::Source::settings const):
(WebKit::UserMediaCaptureManager::Source::remoteVideoSampleAvailable):
(WebKit::UserMediaCaptureManager::Source::requestToEnd):
(WebKit::UserMediaCaptureManager::Source::stopBeingObserved):
(WebKit::UserMediaCaptureManager::cloneSource):
(WebKit::UserMediaCaptureManager::cloneVideoSource):
(WebKit::UserMediaCaptureManager::requestToEnd):
(WebKit::UserMediaCaptureManager::VideoFactory::setVideoCapturePageState):
- WebProcess/cocoa/UserMediaCaptureManager.h:
LayoutTests:
- fast/mediastream/mediastreamtrack-video-clone-expected.txt:
- fast/mediastream/mediastreamtrack-video-clone.html:
- 8:41 AM Changeset in webkit [253274] by
-
- 2 edits in trunk/Source/WebKit
Tighten Mac sandbox by removing microphone access
https://bugs.webkit.org/show_bug.cgi?id=204939
Reviewed by Brent Fulgham.
No change of behavior, we do audio capture in UIProcess.
- WebProcess/com.apple.WebProcess.sb.in:
- 8:29 AM Changeset in webkit [253273] by
-
- 3 edits in trunk/JSTests
[ARMv7] Skip flaky stress tests
https://bugs.webkit.org/show_bug.cgi?id=204996
Unreviewed gardening.
- stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:
- stress/sampling-profiler-should-not-sample-beyond-stack-bounds.js:
- 8:14 AM Changeset in webkit [253272] by
-
- 2 edits in trunk/Source/WebKit
Add logging to NetworkRTCMonitor
https://bugs.webkit.org/show_bug.cgi?id=204850
<rdar://problem/57618773>
Reviewed by Eric Carlson.
Add logging and send IPC message back to WebProcess even if monitoring is stopped.
No observable change of behavior.
- NetworkProcess/webrtc/NetworkRTCMonitor.cpp:
(WebKit::NetworkRTCMonitor::startUpdatingIfNeeded):
(WebKit::NetworkRTCMonitor::stopUpdating):
(WebKit::NetworkRTCMonitor::onNetworksChanged):
- 7:58 AM Changeset in webkit [253271] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
Add more logging to physical socket server when a socket file descriptor is invalid
https://bugs.webkit.org/show_bug.cgi?id=204948
Reviewed by Darin Adler.
- Source/webrtc/rtc_base/physical_socket_server.cc:
- 7:30 AM Changeset in webkit [253270] by
-
- 5 edits in trunk/Source/WebCore
[LFC][Integration] Collect overflow from lines
https://bugs.webkit.org/show_bug.cgi?id=204994
Reviewed by Zalan Bujtas.
- layout/displaytree/DisplayLineBox.h:
(WebCore::Display::LineBox::logicalRect const):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::computeVisualOverflow):
(WebCore::LayoutIntegration::LineLayout::collectOverflow):
- layout/integration/LayoutIntegrationLineLayout.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
Connect to LFC layout.
- 7:10 AM Changeset in webkit [253269] by
-
- 10 edits in trunk/Source/WebCore
[LFC][IFC] Switch over to float based types in inline layout
https://bugs.webkit.org/show_bug.cgi?id=204995
<rdar://problem/57733349>
Reviewed by Antti Koivisto.
Due to the relatively significant difference between float and LayoutUnit's precision, IFC
is unable to produce matching layout under the same constraints.
Let's switch over to float based types until after either CLL switches over to LayoutUnit
or LayoutUnit gains high enough precision.
See webkit.org/b/204986 for more info.
- layout/LayoutUnits.h:
(WebCore::Layout::maxInlineLayoutUnit):
- layout/Verification.cpp:
(WebCore::Layout::areEssentiallyEqual):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineHeightConstraints const):
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::alignContentHorizontally const):
(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):
(WebCore::Layout::LineBuilder::halfLeadingMetrics):
(WebCore::Layout::LineBuilder::TrimmableContent::append):
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::inlineItemWidth):
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::fixedPitchWidth):
(WebCore::Layout::TextUtil::split):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::firstLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::lastLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::paint):
Dec 7, 2019:
- 9:59 PM Changeset in webkit [253268] by
-
- 42 edits in trunk
Make ColorSpace an enum class
https://bugs.webkit.org/show_bug.cgi?id=204970
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-12-07
Reviewed by Sam Weinig.
Source/WebCore:
So it can be encoded and decoded through the IPC messages.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
- html/CustomPaintCanvas.cpp:
(WebCore::CustomPaintCanvas::copiedImage const):
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer const):
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawTextInternal):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawImage):
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern):
- platform/graphics/Color.cpp:
(WebCore::operator<<):
- platform/graphics/Color.h:
(WebCore::Color::Color):
- platform/graphics/ColorSpace.h:
(): Deleted.
- platform/graphics/CustomPaintImage.cpp:
(WebCore::CustomPaintImage::drawPattern):
- platform/graphics/ExtendedColor.cpp:
(WebCore::ExtendedColor::create):
(WebCore::ExtendedColor::cssText const):
- platform/graphics/ExtendedColor.h:
- platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::drawPattern):
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::transformColorSpace):
- platform/graphics/ImageBuffer.h:
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer):
- platform/graphics/cg/ColorCG.cpp:
(WebCore::leakCGColor):
- platform/graphics/cg/GraphicsContextCG.h:
(WebCore::cachedCGColorSpace):
- platform/graphics/filters/FEFlood.h:
- platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::drawLighting):
- platform/graphics/filters/FETile.cpp:
(WebCore::FETile::platformApplySoftware):
- platform/graphics/filters/FilterEffect.h:
- platform/graphics/filters/SourceGraphic.h:
(WebCore::SourceGraphic::SourceGraphic):
- platform/graphics/win/ImageBufferDirect2D.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer):
- platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::buildReferenceFilter):
(WebCore::CSSFilter::build):
(WebCore::CSSFilter::apply):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/RenderLayerBacking.cpp:
(WebCore::patternForTouchAction):
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintProgressBar):
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives const):
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):
- rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient):
- rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
- rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage const):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::bufferForeground):
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer):
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):
Source/WebKit:
- Shared/WebCoreArgumentCoders.h:
Tools:
- TestWebKitAPI/Tests/WebCore/ExtendedColor.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::makeColor):
- 7:57 PM Changeset in webkit [253267] by
-
- 24 edits4 adds in trunk
[iOS] WKWebView touch event gesture recognition should not block the application process main thread when possible
https://bugs.webkit.org/show_bug.cgi?id=204664
<rdar://problem/38670692>
Reviewed by Tim Horton.
Source/WebKit:
Adds a mechanism that allows some sync touch events on iOS to be sent asynchronously. To do this, we use the
deferring gesture mechanism introduced in trac.webkit.org/r253005 to defer all gestures under WKContentView (and
WebKit-owned scroll views) when a touch starts, such that they will not recognize until we know that the page
has either prevented default or not (assuming that the touch was over an active listener). See below for more
details.
Tests: fast/events/touch/ios/prevent-default-on-touch-start-with-slow-event-listener.html
fast/events/touch/ios/scroll-on-touch-start-with-slow-event-listener.html
- UIProcess/GenericCallback.h:
- UIProcess/PageClient.h:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
(-[WKChildScrollView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]):
(-[WKChildScrollView gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:]):
Implement gesture recognizer delegate hooks to add dynamic failure requirements between a child scroll view's
gestures and the new deferring gesture recognizers on WKContentView. This allows pan gestures over a scrollable
container to hold off on recognizing while the deferring gesture recognizer has not failed yet.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handlePreventableTouchEvent):
(WebKit::WebPageProxy::handleUnpreventableTouchEvent):
Rename handleTouchEventSynchronously and handleTouchEventAsynchronously to handlePreventableTouchEvent and
handleUnpreventableTouchEvent, respectively. Instead of always sending touchstart events that may prevent native
gestures synchronously, we may now go through the sameEventDispatcher::TouchEventcodepath used when
dispatching touch events in passive tracking regions. However, in the case of preventable touchstarts, we
additionally store a completion callback that is invoked after the touch event has been handled by the page; we
then either un-defer or prevent native gestures here (depending on whether the page prevented default) by
calling PageClient::doneDeferringNativeGestures.
Non-touchstart events are still dispatched synchronously, to ensure that calling preventDefault() on touchmove
and touchend continue to prevent default gestures from recognizing.
(WebKit::WebPageProxy::boolCallback):
(WebKit::WebPageProxy::handleTouchEventSynchronously): Deleted.
(WebKit::WebPageProxy::handleTouchEventAsynchronously): Deleted.
See above.
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::isHandlingPreventableTouchStart const):
This is used in WKContentView to determine whether deferring gestures need to remain active after the touch
ends. See below for more detail.
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::doneDeferringNativeGestures):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[UIGestureRecognizer _wk_cancel]):
(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
Add and remove the new deferring gesture recognizers here.
(-[WKContentView _webTouchEventsRecognized:]):
(-[WKContentView _webTouchEvent:preventsNativeGestures:]):
(-[WKContentView _doneDeferringNativeGestures:]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView ensurePositionInformationIsUpToDate:]):
Drive-by fix: add a missing hasRunningProcess check that causes a flaky assertion under
AuxiliaryProcessProxy::connection()in layout tests.
(-[WKContentView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:]):
Add dynamic failure requirements between WKContentView's gestures (including all text interaction, context menu,
and drag and drop gestures) and the new deferring gesture recognizers.
(-[WKContentView _didStartProvisionalLoadForMainFrame]):
Force the two-finger double tap gesture recognizer to reset when loading a new page. Without this, the layout
test fast/events/ios/click-event-while-editing-node.html will rarely fail when run after a test that dispatches
a two-finger tap, such as fast/events/ios/click-event-two-finger-single-tap-meta-key.html. This is because the
new deferring gestures will temporarily unite multi-finger tap gestures with one-finger double tap gestures in
the same subgraph when performing a tap gesture with more than one finger. This means that there's a 300 ms
delay before a normal single tap can be recognized again, which (without forcing the two-finger double tap to
reset) would cause a subsequent test that loads in under 300 ms and attempts to send a tap to fail.
(-[WKContentView deferringGestureRecognizer:shouldDeferGesturesAfterBeginningTouchesWithEvent:]):
Avoid deferring native gestures if the scroll view is decelerating; this matches behavior of the web touch event
gesture recognizer.
(-[WKContentView deferringGestureRecognizer:shouldDeferGesturesAfterEndingTouchesWithEvent:]):
Normally, after -touchesEnded:withEvent:, we stop deferring native gesture recognizers by failing the deferring
gestures. However, if we're still waiting for a response from the web process, then let
-_doneDeferringNativeGestures: handle this instead.
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
(-[WKContentView deferringGestureRecognizer:shouldDeferGesturesWithEvent:]): Deleted.
Renamed to -shouldDeferGesturesAfterBeginningTouchesWithEvent:.
- UIProcess/ios/WKDeferringGestureRecognizer.h:
- UIProcess/ios/WKDeferringGestureRecognizer.mm:
(-[WKDeferringGestureRecognizer touchesBegan:withEvent:]):
(-[WKDeferringGestureRecognizer touchesEnded:withEvent:]):
Override this and add a new delegate hook to determine whether we want the deferring gesture recognizer to
immediately fail when touches end. It's important to override this and transition to failure state in this case,
since not doing so could mean that the deferring gestures stay in Possible state forever; this may lead to the
gesture subgraph containing these deferring gestures being unable to reset, since it's waiting for the deferring
gesture to either fail or end.
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]):
(-[WKScrollView gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:]):
Defer more scroll view gestures.
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::touchEvent):
Add an optional CallbackID parameter to this IPC message. If a callback ID is given, then we avoid coalescing
the touch event. To implement this, we additionally refactor the queued touch events map to contain lists of
<WebTouchEvent, Optional<CallbackID>> pairs; if a queued touch event has a corresponding CallbackID, then we
fire the callback corresponding to the ID, indicating whether the touch event was handled by the page.
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dispatchAsynchronousTouchEvents):
LayoutTests:
- fast/events/touch/ios/prevent-default-on-touch-start-with-slow-event-listener-expected.txt: Added.
- fast/events/touch/ios/prevent-default-on-touch-start-with-slow-event-listener.html: Added.
- fast/events/touch/ios/scroll-on-touch-start-with-slow-event-listener-expected.txt: Added.
- fast/events/touch/ios/scroll-on-touch-start-with-slow-event-listener.html: Added.
Add new layout tests to cover behaviors when panning over active touchstart handlers that spin for an extended
length of time (in this case, 400 milliseconds) in overflow scrolling containers. A touchstart handler that
prevents default should still block scrolling, and a touchstart handler that does not should still allow the
user to scroll.
- fast/events/touch/ios/show-modal-alert-during-touch-start.html:
- http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
- http/tests/security/anchor-download-block-crossorigin-expected.txt:
Rebaseline these tests by changing some line numbers.
- resources/ui-helper.js:
(window.UIHelper.sendEventStream.return.new.Promise):
(window.UIHelper.sendEventStream):
Add a new UIHelper method to send a JSON object as an event stream.
(UIHelper.EventStreamBuilder.prototype._reset):
(UIHelper.EventStreamBuilder.prototype.begin):
(UIHelper.EventStreamBuilder.prototype.move):
(UIHelper.EventStreamBuilder.prototype.end):
(UIHelper.EventStreamBuilder.prototype.takeResult):
Add a new helper class to make it easier to construct event streams, for the purposes of sending to
UIScriptController::sendEventStream.
- 7:00 PM Changeset in webkit [253266] by
-
- 6 edits in trunk/Source/WebCore
[LFC][IFC] Convert InlineLayoutUnit/Point/Rect to LayoutUnit/Point/Rect when crossing inline/block boundary
https://bugs.webkit.org/show_bug.cgi?id=204991
<rdar://problem/57730383>
Reviewed by Sam Weinig.
Float -> LayoutUnit requires explicit conversion due to precision loss. Use these functions when
feeding inline box geometry information back to block layout.
Implicit floor will do for now (might need to call round though).
This is in preparation for using float based types in IFC. See webkit.org/b/204986 for more info.
- layout/LayoutUnits.h:
(WebCore::Layout::toLayoutUnit):
(WebCore::Layout::toLayoutPoint):
(WebCore::Layout::toLayoutRect):
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
- layout/displaytree/DisplayInlineContent.cpp:
(WebCore::Display:: const):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::paint):
- 4:41 PM Changeset in webkit [253265] by
-
- 13 edits9 adds in trunk
Unique origin's window must get its own event loop
https://bugs.webkit.org/show_bug.cgi?id=204978
Reviewed by Antti Koivisto.
Source/WebCore:
This patch fixes the bug that unique origin documents and documents of the same registrable domains
with different schemes / protocols were sharing the same event loop. Note that we continue to share
the event loop across file URI documents.
We now use the agent cluster key to looking up the event loop to better match the HTML5 spec:
https://html.spec.whatwg.org/multipage/webappapis.html#obtain-agent-cluster-key
Tests: fast/eventloop/data-uri-document-has-its-own-event-loop.html
fast/eventloop/queue-task-across-frames-in-file-uri.html
http/tests/eventloop/documents-with-different-protocols-do-not-share-event-loop.html
- dom/Document.cpp:
(WebCore::Document::eventLoop):
- dom/EventLoop.h:
(WebCore::EventLoopTaskGroup::hasSameEventLoopAs): Added for testing purposes.
- dom/WindowEventLoop.cpp:
(WebCore::agentClusterKeyOrNullIfUnique): Added.
(WebCore::WindowEventLoop::eventLoopForSecurityOrigin): Replaced ensureForRegistrableDomain.
(WebCore::WindowEventLoop::create): Added.
(WebCore::WindowEventLoop::WindowEventLoop):
(WebCore::WindowEventLoop::~WindowEventLoop):
- dom/WindowEventLoop.h:
- testing/Internals.cpp:
(WebCore::Internals::hasSameEventLoopAs): Added for testing purposes.
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Added tests to make sure data URI documents continue to use the same event loop but documents of
unique origin and of different schemes will use distinct event loops using newly added internals
method (hasSameEventLoopAs). Also added assertions to the existing tests using this new method.
- fast/eventloop: Added.
- fast/eventloop/data-uri-document-has-its-own-event-loop-expected.txt: Added.
- fast/eventloop/data-uri-document-has-its-own-event-loop.html: Added.
- fast/eventloop/queue-task-across-frames-in-file-uri-expected.txt: Added.
- fast/eventloop/queue-task-across-frames-in-file-uri.html: Added.
- fast/eventloop/resources: Added.
- fast/eventloop/resources/eventloop-helper.html: Added.
- http/tests/eventloop/documents-with-different-protocols-do-not-share-event-loop-expected.txt: Added.
- http/tests/eventloop/documents-with-different-protocols-do-not-share-event-loop.html: Added.
- http/tests/eventloop/queue-task-across-cross-site-frames-expected.txt:
- http/tests/eventloop/queue-task-across-cross-site-frames.html:
- http/tests/eventloop/queue-task-across-frames-expected.txt:
- http/tests/eventloop/queue-task-across-frames.html:
- 2:57 PM Changeset in webkit [253264] by
-
- 3 edits1 add in trunk
Object.prototype.isPrototypeOf() should check if the passed in value is a non-object first.
https://bugs.webkit.org/show_bug.cgi?id=204971
<rdar://problem/57730080>
Reviewed by Saam Barati.
JSTests:
- stress/object-prototype-isPrototypeOf-should-check-for-non-object-first.js: Added.
Source/JavaScriptCore:
The spec says Object.prototype.isPrototypeOf() should do checks in the following
order:
- If Type(V) is not Object, return false.
- Let O be ? ToObject(this value).
...
We were previously checking (2) before (1). This patch fixes this order.
Ref: http://www.ecma-international.org/ecma-262/10.0/index.html#sec-object.prototype.isprototypeof
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncIsPrototypeOf):
- 2:25 PM Changeset in webkit [253263] by
-
- 13 edits1 add1 delete in trunk/Source/JavaScriptCore
Unreviewed. Roll out r253201. It was not a progression on any benchmarks, and was 8% slower on JetStream 2 ML.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.rb:
- bytecode/GetByValHistory.h: Added.
(JSC::GetByValHistory::observeNonUID):
(JSC::GetByValHistory::observe):
(JSC::GetByValHistory::count const):
(JSC::GetByValHistory::filter const):
(JSC::GetByValHistory::update):
- bytecode/PointerHistory.h: Removed.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGGraph.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetById):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
- generator/DSL.rb:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/OptionsList.h:
- 2:20 PM Changeset in webkit [253262] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Display::LineBox should adopt to InlineLayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=204990
<rdar://problem/57730105>
Reviewed by Sam Weinig.
This is in preparation for using float based types in IFC. See webkit.org/b/204986 for more info.
- layout/displaytree/DisplayLineBox.h:
(WebCore::Display::LineBox::logicalTopLeft const):
(WebCore::Display::LineBox::setLogicalTopLeft):
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::logicalTopLeft const):
(WebCore::Display::Run::logicalLeft const):
(WebCore::Display::Run::logicalRight const):
(WebCore::Display::Run::logicalTop const):
(WebCore::Display::Run::logicalBottom const):
(WebCore::Display::Run::logicalWidth const):
(WebCore::Display::Run::logicalHeight const):
(WebCore::Display::Run::setLogicalWidth):
(WebCore::Display::Run::setLogicalTop):
(WebCore::Display::Run::setLogicalLeft):
(WebCore::Display::Run::moveVertically):
(WebCore::Display::Run::moveHorizontally):
(WebCore::Display::Run::expandVertically):
(WebCore::Display::Run::expandHorizontally):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::constraintsForLine):
- layout/inlineformatting/InlineFormattingContext.h:
- 12:34 PM Changeset in webkit [253261] by
-
- 22 edits in trunk
Implementation of additional attribute caching in the IsolatedTree.
https://bugs.webkit.org/show_bug.cgi?id=204918
Reviewed by Chris Fleizach.
Source/WebCore:
No new tests, no new functionality. Updated several tests to fixed
expected output.
- Implementation of around 200 methods in the AXIsolatedObject class.
- The pending method implementations have an ASSERT_NOT_REACHED.
- Support for dispatching to the main thread some
WebAccessibilityObjectWrapper methods that cannot be run in the
secondary thread.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::createIsolatedTreeHierarchy):
(WebCore::AXObjectCache::generateIsolatedTree):
- accessibility/AXObjectCache.h:
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::ariaLabeledByText const):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::actionVerb const):
(WebCore::AccessibilityObject::datetimeAttributeValue const):
(WebCore::AccessibilityObject::linkRelValue const):
(WebCore::AccessibilityObject::isInlineText const):
(WebCore::AccessibilityObject::identifierAttribute const):
(WebCore::AccessibilityObject::documentURI const):
(WebCore::AccessibilityObject::documentEncoding const):
(WebCore::AccessibilityObject::sessionID const):
(WebCore::AccessibilityObject::tagName const):
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityText::AccessibilityText):
(WebCore::AccessibilityObject::actionVerb const):
- accessibility/AccessibilityObjectInterface.h: Base implementation for
several isXXX methods that rely on the object roleValue.
(WebCore::AXCoreObject::isImageMap const):
(WebCore::AXCoreObject::isWebArea const):
(WebCore::AXCoreObject::isCheckbox const):
(WebCore::AXCoreObject::isRadioButton const):
(WebCore::AXCoreObject::isListBox const):
(WebCore::AXCoreObject::isSpinButton const):
(WebCore::AXCoreObject::isSwitch const):
(WebCore::AXCoreObject::isToggleButton const):
(WebCore::AXCoreObject::isTabList const):
(WebCore::AXCoreObject::isTabItem const):
(WebCore::AXCoreObject::isRadioGroup const):
(WebCore::AXCoreObject::isComboBox const):
(WebCore::AXCoreObject::isTree const):
(WebCore::AXCoreObject::isTreeGrid const):
(WebCore::AXCoreObject::isTreeItem const):
(WebCore::AXCoreObject::isScrollbar const):
(WebCore::AXCoreObject::isListItem const):
(WebCore::AXCoreObject::isCheckboxOrRadio const):
(WebCore::AXCoreObject::isScrollView const):
(WebCore::AXCoreObject::isCanvas const):
(WebCore::AXCoreObject::isPopUpButton const):
(WebCore::AXCoreObject::isColorWell const):
(WebCore::AXCoreObject::isSplitter const):
(WebCore::AXCoreObject::isToolbar const):
(WebCore::AXCoreObject::isSummary const):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessKey const):
(WebCore::AccessibilityRenderObject::actionVerb const):
- accessibility/AccessibilityRenderObject.h:
- accessibility/AccessibilitySpinButton.h:
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::setRootNode):
(WebCore::AXIsolatedTree::setRoot): Renamed setRootNode.
- accessibility/isolatedtree/AXIsolatedTree.h:
- accessibility/isolatedtree/AXIsolatedTreeNode.cpp: Implementation of
around 200 methods in the AXIsolatedObject class. The methods that are
pending, have a stub implemetation with an ASSERT_NOT_REACHED.
(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::create):
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::setMathscripts):
(WebCore::AXIsolatedObject::setObjectVectorProperty):
(WebCore::AXIsolatedObject::isDetached const):
(WebCore::AXIsolatedObject::isDetachedFromParent):
(WebCore::AXIsolatedObject::accessibilityText const):
(WebCore::AXIsolatedObject::classList const):
(WebCore::AXIsolatedObject::sessionID const):
(WebCore::AXIsolatedObject::documentURI const):
(WebCore::AXIsolatedObject::preventKeyboardDOMEventDispatch const):
(WebCore::AXIsolatedObject::documentEncoding const):
(WebCore::AXIsolatedObject::insertMathPairs):
(WebCore::AXIsolatedObject::mathPrescripts):
(WebCore::AXIsolatedObject::mathPostscripts):
(WebCore::AXIsolatedObject::scrollBar):
(WebCore::AXIsolatedObject::colorValue const):
(WebCore::AXIsolatedObject::intPointAttributeValue const):
(WebCore::AXIsolatedObject::vectorAttributeValue const):
(WebCore::AXIsolatedObject::optionSetAttributeValue const):
(WebCore::AXIsolatedObject::uint64AttributeValue const):
(WebCore::AXIsolatedObject::urlAttributeValue const):
(WebCore::AXIsolatedObject::colorAttributeValue const):
(WebCore::AXIsolatedObject::floatAttributeValue const):
(WebCore::AXIsolatedObject::fillChildrenVectorForProperty const):
(WebCore::AXIsolatedObject::replaceTextInRange):
(WebCore::AXIsolatedObject::insertText):
(WebCore::AXIsolatedObject::press):
(WebCore::AXIsolatedObject::performDefaultAction):
(WebCore::AXIsolatedObject::isAccessibilityObject const):
(WebCore::AXIsolatedObject::isAccessibilityNodeObject const):
(WebCore::AXIsolatedObject::isAccessibilityRenderObject const):
(WebCore::AXIsolatedObject::isAccessibilityScrollbar const):
(WebCore::AXIsolatedObject::isAccessibilityScrollView const):
(WebCore::AXIsolatedObject::isAccessibilitySVGRoot const):
(WebCore::AXIsolatedObject::isAccessibilitySVGElement const):
(WebCore::AXIsolatedObject::containsText const):
(WebCore::AXIsolatedObject::isAttachmentElement const):
(WebCore::AXIsolatedObject::isNativeImage const):
(WebCore::AXIsolatedObject::isImageButton const):
(WebCore::AXIsolatedObject::isContainedByPasswordField const):
(WebCore::AXIsolatedObject::passwordFieldOrContainingPasswordField):
(WebCore::AXIsolatedObject::isNativeTextControl const):
(WebCore::AXIsolatedObject::isNativeListBox const):
(WebCore::AXIsolatedObject::isListBoxOption const):
(WebCore::AXIsolatedObject::isSliderThumb const):
(WebCore::AXIsolatedObject::isInputSlider const):
(WebCore::AXIsolatedObject::isLabel const):
(WebCore::AXIsolatedObject::isDataTable const):
(WebCore::AXIsolatedObject::isImageMapLink const):
(WebCore::AXIsolatedObject::isNativeSpinButton const):
(WebCore::AXIsolatedObject::isSpinButtonPart const):
(WebCore::AXIsolatedObject::isMockObject const):
(WebCore::AXIsolatedObject::isMediaObject const):
(WebCore::AXIsolatedObject::isARIATextControl const):
(WebCore::AXIsolatedObject::isNonNativeTextControl const):
(WebCore::AXIsolatedObject::isBlockquote const):
(WebCore::AXIsolatedObject::isLandmark const):
(WebCore::AXIsolatedObject::isFigureElement const):
(WebCore::AXIsolatedObject::isKeyboardFocusable const):
(WebCore::AXIsolatedObject::isHovered const):
(WebCore::AXIsolatedObject::isIndeterminate const):
(WebCore::AXIsolatedObject::isLoaded const):
(WebCore::AXIsolatedObject::isOnScreen const):
(WebCore::AXIsolatedObject::isOffScreen const):
(WebCore::AXIsolatedObject::isPressed const):
(WebCore::AXIsolatedObject::isUnvisited const):
(WebCore::AXIsolatedObject::isLinked const):
(WebCore::AXIsolatedObject::isVisible const):
(WebCore::AXIsolatedObject::isCollapsed const):
(WebCore::AXIsolatedObject::isSelectedOptionActive const):
(WebCore::AXIsolatedObject::hasBoldFont const):
(WebCore::AXIsolatedObject::hasItalicFont const):
(WebCore::AXIsolatedObject::hasMisspelling const):
(WebCore::AXIsolatedObject::hasPlainText const):
(WebCore::AXIsolatedObject::hasSameFont const):
(WebCore::AXIsolatedObject::hasSameFontColor const):
(WebCore::AXIsolatedObject::hasSameStyle const):
(WebCore::AXIsolatedObject::isStaticText const):
(WebCore::AXIsolatedObject::hasUnderline const):
(WebCore::AXIsolatedObject::hasHighlighting const):
(WebCore::AXIsolatedObject::element const):
(WebCore::AXIsolatedObject::node const):
(WebCore::AXIsolatedObject::renderer const):
(WebCore::AXIsolatedObject::defaultObjectInclusion const):
(WebCore::AXIsolatedObject::accessibilityIsIgnoredByDefault const):
(WebCore::AXIsolatedObject::stepValueForRange const):
(WebCore::AXIsolatedObject::selectedListItem):
(WebCore::AXIsolatedObject::ariaActiveDescendantReferencingElements const):
(WebCore::AXIsolatedObject::ariaControlsReferencingElements const):
(WebCore::AXIsolatedObject::ariaDescribedByElements const):
(WebCore::AXIsolatedObject::ariaDescribedByReferencingElements const):
(WebCore::AXIsolatedObject::ariaDetailsReferencingElements const):
(WebCore::AXIsolatedObject::ariaErrorMessageReferencingElements const):
(WebCore::AXIsolatedObject::ariaFlowToReferencingElements const):
(WebCore::AXIsolatedObject::ariaLabelledByElements const):
(WebCore::AXIsolatedObject::ariaLabelledByReferencingElements const):
(WebCore::AXIsolatedObject::ariaOwnsReferencingElements const):
(WebCore::AXIsolatedObject::hasDatalist const):
(WebCore::AXIsolatedObject::supportsHasPopup const):
(WebCore::AXIsolatedObject::supportsPressed const):
(WebCore::AXIsolatedObject::supportsChecked const):
(WebCore::AXIsolatedObject::ignoredFromModalPresence const):
(WebCore::AXIsolatedObject::isModalDescendant const):
(WebCore::AXIsolatedObject::isModalNode const):
(WebCore::AXIsolatedObject::elementAccessibilityHitTest const):
(WebCore::AXIsolatedObject::firstChild const):
(WebCore::AXIsolatedObject::lastChild const):
(WebCore::AXIsolatedObject::previousSibling const):
(WebCore::AXIsolatedObject::nextSibling const):
(WebCore::AXIsolatedObject::nextSiblingUnignored const):
(WebCore::AXIsolatedObject::previousSiblingUnignored const):
(WebCore::AXIsolatedObject::parentObjectIfExists const):
(WebCore::AXIsolatedObject::isDescendantOfBarrenParent const):
(WebCore::AXIsolatedObject::isDescendantOfRole const):
(WebCore::AXIsolatedObject::observableObject const):
(WebCore::AXIsolatedObject::correspondingLabelForControlElement const):
(WebCore::AXIsolatedObject::correspondingControlForLabelElement const):
(WebCore::AXIsolatedObject::isPresentationalChildOfAriaRole const):
(WebCore::AXIsolatedObject::ariaRoleHasPresentationalChildren const):
(WebCore::AXIsolatedObject::inheritsPresentationalRole const):
(WebCore::AXIsolatedObject::setAccessibleName):
(WebCore::AXIsolatedObject::hasAttributesRequiredForInclusion const):
(WebCore::AXIsolatedObject::accessibilityDescription const):
(WebCore::AXIsolatedObject::title const):
(WebCore::AXIsolatedObject::helpText const):
(WebCore::AXIsolatedObject::isARIAStaticText const):
(WebCore::AXIsolatedObject::stringValue const):
(WebCore::AXIsolatedObject::text const):
(WebCore::AXIsolatedObject::ariaLabeledByAttribute const):
(WebCore::AXIsolatedObject::ariaDescribedByAttribute const):
(WebCore::AXIsolatedObject::accessibleNameDerivesFromContent const):
(WebCore::AXIsolatedObject::elementsFromAttribute const):
(WebCore::AXIsolatedObject::axObjectCache const):
(WebCore::AXIsolatedObject::anchorElement const):
(WebCore::AXIsolatedObject::actionElement const):
(WebCore::AXIsolatedObject::elementPath const):
(WebCore::AXIsolatedObject::supportsPath const):
(WebCore::AXIsolatedObject::textIteratorBehaviorForTextRange const):
(WebCore::AXIsolatedObject::widget const):
(WebCore::AXIsolatedObject::widgetForAttachmentView const):
(WebCore::AXIsolatedObject::page const):
(WebCore::AXIsolatedObject::document const):
(WebCore::AXIsolatedObject::documentFrameView const):
(WebCore::AXIsolatedObject::frame const):
(WebCore::AXIsolatedObject::mainFrame const):
(WebCore::AXIsolatedObject::topDocument const):
(WebCore::AXIsolatedObject::scrollViewAncestor const):
(WebCore::AXIsolatedObject::childrenChanged):
(WebCore::AXIsolatedObject::textChanged):
(WebCore::AXIsolatedObject::updateAccessibilityRole):
(WebCore::AXIsolatedObject::addChildren):
(WebCore::AXIsolatedObject::addChild):
(WebCore::AXIsolatedObject::insertChild):
(WebCore::AXIsolatedObject::shouldIgnoreAttributeRole const):
(WebCore::AXIsolatedObject::canHaveChildren const):
(WebCore::AXIsolatedObject::hasChildren const):
(WebCore::AXIsolatedObject::setNeedsToUpdateChildren):
(WebCore::AXIsolatedObject::setNeedsToUpdateSubtree):
(WebCore::AXIsolatedObject::clearChildren):
(WebCore::AXIsolatedObject::needsToUpdateChildren const):
(WebCore::AXIsolatedObject::detachFromParent):
(WebCore::AXIsolatedObject::shouldFocusActiveDescendant const):
(WebCore::AXIsolatedObject::activeDescendant const):
(WebCore::AXIsolatedObject::handleActiveDescendantChanged):
(WebCore::AXIsolatedObject::handleAriaExpandedChanged):
(WebCore::AXIsolatedObject::isDescendantOfObject const):
(WebCore::AXIsolatedObject::isAncestorOfObject const):
(WebCore::AXIsolatedObject::firstAnonymousBlockChild const):
(WebCore::AXIsolatedObject::hasAttribute const):
(WebCore::AXIsolatedObject::getAttribute const):
(WebCore::AXIsolatedObject::hasTagName const):
(WebCore::AXIsolatedObject::stringValueForMSAA const):
(WebCore::AXIsolatedObject::stringRoleForMSAA const):
(WebCore::AXIsolatedObject::nameForMSAA const):
(WebCore::AXIsolatedObject::descriptionForMSAA const):
(WebCore::AXIsolatedObject::roleValueForMSAA const):
(WebCore::AXIsolatedObject::passwordFieldValue const):
(WebCore::AXIsolatedObject::liveRegionAncestor const):
(WebCore::AXIsolatedObject::hasContentEditableAttributeSet const):
(WebCore::AXIsolatedObject::supportsReadOnly const):
(WebCore::AXIsolatedObject::supportsAutoComplete const):
(WebCore::AXIsolatedObject::supportsARIAAttributes const):
(WebCore::AXIsolatedObject::scrollByPage const):
(WebCore::AXIsolatedObject::scrollPosition const):
(WebCore::AXIsolatedObject::scrollContentsSize const):
(WebCore::AXIsolatedObject::scrollVisibleContentRect const):
(WebCore::AXIsolatedObject::scrollToMakeVisible const):
(WebCore::AXIsolatedObject::lastKnownIsIgnoredValue):
(WebCore::AXIsolatedObject::setLastKnownIsIgnoredValue):
(WebCore::AXIsolatedObject::notifyIfIgnoredValueChanged):
(WebCore::AXIsolatedObject::isMathScriptObject const):
(WebCore::AXIsolatedObject::isMathMultiscriptObject const):
(WebCore::AXIsolatedObject::isAXHidden const):
(WebCore::AXIsolatedObject::isDOMHidden const):
(WebCore::AXIsolatedObject::isHidden const):
(WebCore::AXIsolatedObject::overrideAttachmentParent):
(WebCore::AXIsolatedObject::accessibilityIgnoreAttachment const):
(WebCore::AXIsolatedObject::accessibilityPlatformIncludesObject const):
(WebCore::AXIsolatedObject::hasApplePDFAnnotationAttribute const):
(WebCore::AXIsolatedObject::ancestorAccessibilityScrollView const):
(WebCore::AXIsolatedObject::setIsIgnoredFromParentData):
(WebCore::AXIsolatedObject::clearIsIgnoredFromParentData):
(WebCore::AXIsolatedObject::setIsIgnoredFromParentDataForChild):
- accessibility/isolatedtree/AXIsolatedTreeNode.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Added
dispatching to the main thread some of the methods that cannot be run
in the secondary thread.
(performAccessibilityFunctionOnMainThread):
(retrieveAccessibilityValueFromMainThread):
(-[WebAccessibilityObjectWrapper attachmentView]):
(-[WebAccessibilityObjectWrapper screenToContents:]):
(-[WebAccessibilityObjectWrapper renderWidgetChildren]):
(-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
(-[WebAccessibilityObjectWrapper associatedPluginParent]):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper scrollViewParent]):
(-[WebAccessibilityObjectWrapper windowElement:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
(-[WebAccessibilityObjectWrapper _accessibilityShowContextMenu]):
(-[WebAccessibilityObjectWrapper _convertToNSRange:]):
(-[WebAccessibilityObjectWrapper _textMarkerForIndex:]):
LayoutTests:
The AXStart/EndTextMarker attributes were being computed for
AccessibilityObjects that had a renderer object. With this change,
AXStart/EndTextMarker are computed for all AccessibilityObjects. Thus
the expected output for the following tests changed from null value for
these attributes to valid object values.
- accessibility/image-map2-expected.txt:
- accessibility/mac/document-links-expected.txt:
- accessibility/table-attributes-expected.txt:
- accessibility/table-sections-expected.txt:
- 12:16 PM Changeset in webkit [253260] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove invalid assertion in FTL's allocateJSArray().
https://bugs.webkit.org/show_bug.cgi?id=204987
<rdar://problem/57280725>
Reviewed by Saam Barati.
The assertion (in the compiler thread) does not take into account that the mutator
may be in the process of transiting to HavingABadTime. As a result, the assertion
may fail intermittently. This patch fixes this issue by removing this bad
assertion.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
- 11:53 AM Changeset in webkit [253259] by
-
- 7 edits in trunk/Source/WebCore
[LFC][IFC] Initialize InlineLayoutUnit variables to 0
https://bugs.webkit.org/show_bug.cgi?id=204989
Reviewed by Antti Koivisto.
This is in preparation for using float based types in IFC. See webkit.org/b/204986 for more info.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
- layout/inlineformatting/InlineLineBreaker.h:
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::justifyRuns const):
(WebCore::Layout::LineBuilder::TrimmableContent::append):
(WebCore::Layout::LineBuilder::TrimmableContent::trim):
(WebCore::Layout::LineBuilder::TrimmableContent::trimTrailingRun):
- layout/inlineformatting/InlineLineBuilder.h:
- layout/inlineformatting/text/TextUtil.h:
- 11:04 AM Changeset in webkit [253258] by
-
- 7 edits1 add in trunk/Source/WebCore
[LFC][IFC] Introduce InlineRect
https://bugs.webkit.org/show_bug.cgi?id=204988
<rdar://problem/57729049>
Reviewed by Antti Koivisto.
This is in preparation for using float based types in IFC. See webkit.org/b/204986 for more info.
- WebCore.xcodeproj/project.pbxproj:
- layout/LayoutUnits.h:
- layout/displaytree/DisplayInlineRect.h: Added.
(WebCore::Display::InlineRect::expandHorizontally):
(WebCore::Display::InlineRect::expandVertically):
(WebCore::Display::InlineRect::invalidateTop):
(WebCore::Display::InlineRect::invalidateLeft):
(WebCore::Display::InlineRect::invalidateWidth):
(WebCore::Display::InlineRect::invalidateHeight):
(WebCore::Display::InlineRect::hasValidPosition const):
(WebCore::Display::InlineRect::hasValidSize const):
(WebCore::Display::InlineRect::hasValidGeometry const):
(WebCore::Display::InlineRect::InlineRect):
(WebCore::Display::InlineRect::invalidatePosition):
(WebCore::Display::InlineRect::setHasValidPosition):
(WebCore::Display::InlineRect::setHasValidSize):
(WebCore::Display::InlineRect::top const):
(WebCore::Display::InlineRect::left const):
(WebCore::Display::InlineRect::bottom const):
(WebCore::Display::InlineRect::right const):
(WebCore::Display::InlineRect::topLeft const):
(WebCore::Display::InlineRect::size const):
(WebCore::Display::InlineRect::width const):
(WebCore::Display::InlineRect::height const):
(WebCore::Display::InlineRect::setTopLeft):
(WebCore::Display::InlineRect::setTop):
(WebCore::Display::InlineRect::setLeft):
(WebCore::Display::InlineRect::setWidth):
(WebCore::Display::InlineRect::setHeight):
(WebCore::Display::InlineRect::moveHorizontally):
(WebCore::Display::InlineRect::moveVertically):
(WebCore::Display::InlineRect::expand):
(WebCore::Display::InlineRect::operator InlineLayoutRect const):
- layout/displaytree/DisplayLineBox.h:
(WebCore::Display::LineBox::LineBox):
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::logicalRect const):
(WebCore::Display::Run::setLogicalLeft):
(WebCore::Display::Run::Run):
(WebCore::Display::Run::setLogicalRight): Deleted.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::ContinousContent::close):
(WebCore::Layout::LineBuilder::Run::Run):
(WebCore::Layout::LineBuilder::initialize):
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::Run::logicalRect const):
- 10:56 AM Changeset in webkit [253257] by
-
- 2 edits in trunk/Source/JavaScriptCore
Build fix for: The compiler thread should not adjust Identifier refCounts.
https://bugs.webkit.org/show_bug.cgi?id=204919
<rdar://problem/57426861>
Not reviewed.
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeFor):
- 10:46 AM Changeset in webkit [253256] by
-
- 6 edits in trunk/Source/WebKit
REGRESSION(r253231): Debug assertion failures under ~WebDeviceOrientationUpdateProvider(Proxy)
https://bugs.webkit.org/show_bug.cgi?id=204977
rdar://problem/57724251
Reviewed by Per Arne Vollan.
In the UI process, have the WebPageProxy swap out its WebDeviceOrientationUpdateProviderProxy whenever
it connects to a new process, instead of creating one on construction and holding onto it for the rest
of the WebPageProxy lifetime. The …UpdateProviderProxy assumes that its page will have the same ID
at the time of registering as a message receiver and later unregistering, but the page ID could change
if the WebPageProxy swaps web processes. Using a new instance per web page ID ensures that the
updater is always able to successfully remove itself as a message receiver when deallocating.
In the Web process, ~WebDeviceOrientationUpdateProvider() should remove itself as a message receiver
specifically for its page ID, rather than as a global message receiver.
No new tests -- existing tests (at least the ProcessSwap API tests) revealed the regression.
- UIProcess/WebPageProxy.cpp:
(WebKit::m_tryCloseTimeoutTimer):
(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::resetState):
(WebKit::m_webDeviceOrientationUpdateProviderProxy): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.h:
- WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.cpp:
(WebKit::WebDeviceOrientationUpdateProvider::WebDeviceOrientationUpdateProvider):
(WebKit::WebDeviceOrientationUpdateProvider::~WebDeviceOrientationUpdateProvider):
- WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.h:
- 10:18 AM Changeset in webkit [253255] by
-
- 15 edits in trunk/Source/WebCore
[LFC][IFC] Introduce InlineLayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=204986
<rdar://problem/57728333>
Reviewed by Antti Koivisto.
While IFC uses LayoutUnit type solely to compute inline geometry, complex line layout (CLL) has
adopted several different types over time (int, float and LayoutUnit). These types all have different precisions.
In order to match CLL's output (inline tree geometry) IFC needs to use a type that has
roughly the same precision as what CLL uses.
LayoutUnit currently does not have high enough precision (1/64) to produce matching results.
This patch introduces InlineLayoutUnit. It is going to be mapped to 'float' for now (in a subsequent patch).
It helps to keep one uniform type across the IFC codebase and we could also just re-map it to something
more appropriate in the future.
- layout/LayoutUnits.h:
- layout/displaytree/DisplayLineBox.h:
(WebCore::Display::LineBox::Baseline::height const):
(WebCore::Display::LineBox::logicalLeft const):
(WebCore::Display::LineBox::logicalRight const):
(WebCore::Display::LineBox::logicalTop const):
(WebCore::Display::LineBox::logicalBottom const):
(WebCore::Display::LineBox::logicalWidth const):
(WebCore::Display::LineBox::logicalHeight const):
(WebCore::Display::LineBox::setLogicalHeight):
(WebCore::Display::LineBox::setLogicalWidth):
(WebCore::Display::LineBox::moveHorizontally):
(WebCore::Display::LineBox::expandHorizontally):
(WebCore::Display::LineBox::shrinkHorizontally):
(WebCore::Display::LineBox::expandVertically):
(WebCore::Display::LineBox::shrinkVertically):
(WebCore::Display::LineBox::LineBox):
(WebCore::Display::LineBox::setLogicalHeightIfGreater):
(WebCore::Display::LineBox::setBaselineOffsetIfGreater):
(WebCore::Display::LineBox::setAscentIfGreater):
(WebCore::Display::LineBox::setDescentIfGreater):
(WebCore::Display::LineBox::baselineOffset const):
(WebCore::Display::LineBox::Baseline::Baseline):
(WebCore::Display::LineBox::Baseline::setAscent):
(WebCore::Display::LineBox::Baseline::setDescent):
(WebCore::Display::LineBox::Baseline::ascent const):
(WebCore::Display::LineBox::Baseline::descent const):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineHeightConstraints const):
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::shouldWrapFloatBox):
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
(WebCore::Layout::LineBreaker::Content::append):
- layout/inlineformatting/InlineLineBreaker.h:
(WebCore::Layout::LineBreaker::Content::width const):
(WebCore::Layout::LineBreaker::Content::nonTrimmableWidth const):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::Run::setComputedHorizontalExpansion):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::justifyRuns const):
(WebCore::Layout::LineBuilder::alignContentHorizontally const):
(WebCore::Layout::LineBuilder::moveLogicalLeft):
(WebCore::Layout::LineBuilder::moveLogicalRight):
(WebCore::Layout::LineBuilder::append):
(WebCore::Layout::LineBuilder::appendNonBreakableSpace):
(WebCore::Layout::LineBuilder::appendInlineContainerStart):
(WebCore::Layout::LineBuilder::appendInlineContainerEnd):
(WebCore::Layout::LineBuilder::appendTextContent):
(WebCore::Layout::LineBuilder::appendNonReplacedInlineBox):
(WebCore::Layout::LineBuilder::appendReplacedInlineBox):
(WebCore::Layout::LineBuilder::runContentHeight const):
(WebCore::Layout::LineBuilder::halfLeadingMetrics):
(WebCore::Layout::LineBuilder::TrimmableContent::append):
(WebCore::Layout::LineBuilder::TrimmableContent::trim):
(WebCore::Layout::LineBuilder::TrimmableContent::trimTrailingRun):
(WebCore::Layout::LineBuilder::InlineItemRun::InlineItemRun):
(WebCore::Layout::LineBuilder::InlineItemRun::trailingLetterSpacing const):
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::availableWidth const):
(WebCore::Layout::LineBuilder::trailingTrimmableWidth const):
(WebCore::Layout::LineBuilder::Run::adjustLogicalTop):
(WebCore::Layout::LineBuilder::Run::moveHorizontally):
(WebCore::Layout::LineBuilder::Run::moveVertically):
(WebCore::Layout::LineBuilder::Run::setLogicalHeight):
(WebCore::Layout::LineBuilder::logicalTop const):
(WebCore::Layout::LineBuilder::logicalBottom const):
(WebCore::Layout::LineBuilder::logicalLeft const):
(WebCore::Layout::LineBuilder::logicalRight const):
(WebCore::Layout::LineBuilder::logicalWidth const):
(WebCore::Layout::LineBuilder::logicalHeight const):
(WebCore::Layout::LineBuilder::contentLogicalWidth const):
(WebCore::Layout::LineBuilder::contentLogicalRight const):
(WebCore::Layout::LineBuilder::baselineOffset const):
(WebCore::Layout::LineBuilder::InlineItemRun::logicalLeft const):
(WebCore::Layout::LineBuilder::InlineItemRun::logicalWidth const):
(WebCore::Layout::LineBuilder::InlineItemRun::moveHorizontally):
(WebCore::Layout::LineBuilder::TrimmableContent::width const):
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::createWhitespaceItem):
(WebCore::Layout::InlineTextItem::createNonWhitespaceItem):
(WebCore::Layout::InlineTextItem::InlineTextItem):
- layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::width const):
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::inlineItemWidth):
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::fixedPitchWidth):
(WebCore::Layout::TextUtil::split):
- layout/inlineformatting/text/TextUtil.h:
- 7:21 AM Changeset in webkit [253254] by
-
- 10 edits1 move1 add in trunk/Source/WebCore
[LFC][IFC] Move LineBox to Display namespace
https://bugs.webkit.org/show_bug.cgi?id=204984
Reviewed by Zalan Bujtas.
It is a display type, like Display::Run.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/displaytree/DisplayInlineContent.cpp: Added.
Also added a cpp for Display::InlineContent.
(WebCore::Display:: const):
- layout/displaytree/DisplayInlineContent.h:
(WebCore::Display::InlineContent::lineBoxForRun const):
(WebCore::Display:: const): Deleted.
- layout/displaytree/DisplayLineBox.h: Renamed from Source/WebCore/layout/inlineformatting/InlineLineBox.h.
(WebCore::Display::LineBox::LineBox):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineHeightConstraints const):
- layout/inlineformatting/InlineFormattingState.h:
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::halfLeadingMetrics):
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::lineBox const):
- layout/inlineformatting/LineLayoutContext.h:
- 6:49 AM Changeset in webkit [253253] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add support for breaking at previous breaking opportunities when the overflown content is unbreakable
https://bugs.webkit.org/show_bug.cgi?id=204985
<rdar://problem/57727436>
Reviewed by Antti Koivisto.
<span>first</span><span style="word-break: break-all">second</span><span>third</span
In case of multiple runs in one commit content [firstsecondthrid], if the overflown run [thrid] does not have
a breaking opportunity, we need to backtrack the last breakable run [second] and break right there. ->
"firstsecond
third"
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::isContentWrappingAllowed):
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
- 6:02 AM Changeset in webkit [253252] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Fix css1/formatting_model/floating_elements.html
https://bugs.webkit.org/show_bug.cgi?id=204983
<rdar://problem/57727197>
Reviewed by Antti Koivisto.
Adjacent non-whitespace inline items are guaranteed to be on commit boundary when they both belong
to the same layout box (<div>text-content</div> [text-][content] vs <div>textcontent</div> [textcontent]).
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::Content::isAtContentBoundary):
- 5:56 AM Changeset in webkit [253251] by
-
- 5 edits in trunk/Source/WebCore
[LFC][Integration] Layout test assert and crash fixes
https://bugs.webkit.org/show_bug.cgi?id=204982
Reviewed by Zalan Bujtas.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::firstLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::lastLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::textBoxesFor const):
Don't 0-initialize Optional.
- layout/integration/LayoutIntegrationLineLayout.h:
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLayoutBox):
Remember to add line break renderer to the renderer->layout box map.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::markLinesDirtyInBlockRange):
Invalidate layout path with LFC.
(WebCore::RenderBlockFlow::firstLineBaseline const):
(WebCore::RenderBlockFlow::inlineBlockBaseline const):
Call LFC baseline functions.
- 5:46 AM Changeset in webkit [253250] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed. Remove the build warning below since r250009.
warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
This patch typecasts the "maybe signed" one as unsigned, which is the
same what the compilers would do, but making the typecast explicit
so that the warning go away.
- b3/air/testair.cpp:
- 5:30 AM Changeset in webkit [253249] by
-
- 29 edits in trunk/Source
Implement encoding for DrawImage and DrawRoundedRect display list items
https://bugs.webkit.org/show_bug.cgi?id=204881
Reviewed by Simon Fraser.
Source/WebCore:
Make InterpolationQuality an enum class.
Make ImagePaintingOptions and all of its children encodable.
Make DrawImage and DrawRoundedRect encodable.
Add ImageHandle, which right now just wraps WebCore::Image, but
later could carry identifiers. This allows us to implement image encoding
in WebKit code, which can then use ShareableBitmap to A) decode the image
in the Web Content process and B) use shared memory to transmit the
decoded image data to the GPU process.
- html/CanvasBase.cpp:
- html/ImageBitmap.cpp:
(WebCore::interpolationQualityForResizeQuality):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::smoothingToInterpolationQuality):
(WebCore::CanvasRenderingContext2DBase::setImageSmoothingEnabled):
- platform/graphics/DecodingOptions.h:
- platform/graphics/GraphicsContext.h:
(WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer):
- platform/graphics/GraphicsTypes.h:
- platform/graphics/ImageOrientation.h:
- platform/graphics/ImagePaintingOptions.h:
(WebCore::ImagePaintingOptions::ImagePaintingOptions):
(WebCore::ImagePaintingOptions::encode const):
(WebCore::ImagePaintingOptions::decode):
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::paint):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator):
- platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::drawSurface):
- platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::paintToCanvas):
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::convertInterpolationQuality):
(WebCore::GraphicsContext::setPlatformImageInterpolationQuality):
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::FillRoundedRect::FillRoundedRect):
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::DrawImage::encode const):
(WebCore::DisplayList::DrawImage::decode):
(WebCore::DisplayList::FillRoundedRect::create):
(WebCore::DisplayList::FillRoundedRect::encode const):
(WebCore::DisplayList::FillRoundedRect::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):
(WebCore::DisplayList::FillRoundedRect::FillRoundedRect): Deleted.
- platform/graphics/ios/IconIOS.mm:
(WebCore::Icon::paint):
- platform/graphics/texmap/BitmapTexture.cpp:
(WebCore::BitmapTexture::updateContents):
- platform/graphics/win/GraphicsContextDirect2D.cpp:
(WebCore::GraphicsContext::setPlatformImageInterpolationQuality):
- platform/ios/wak/WAKView.mm:
(toCGInterpolationQuality):
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::imageBuffer const):
- rendering/ImageQualityController.cpp:
(WebCore::ImageQualityController::interpolationQualityFromStyle):
(WebCore::ImageQualityController::chooseInterpolationQuality):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::paintIntoRect):
Source/WebKit:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<DisplayList::ImageHandle>::encode):
(IPC::ArgumentCoder<DisplayList::ImageHandle>::decode):
- Shared/WebCoreArgumentCoders.h:
Source/WebKitLegacy/mac:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
- 3:22 AM Changeset in webkit [253248] by
-
- 9 edits in trunk/Source/WebCore
macCatalyst: REGRESSION (r251320): WebKit-native media controls do not respond to hover or click
https://bugs.webkit.org/show_bug.cgi?id=204543
<rdar://problem/57208621>
Reviewed by Antoine Quint.
Adopt pointer events for media controls, in order to make them input-device agnostic.
- Modules/modern-media-controls/controls/auto-hide-controller.js:
(AutoHideController):
(AutoHideController.prototype.set fadesWhileIdle):
(AutoHideController.prototype.handleEvent):
(AutoHideController.prototype._autoHideTimerFired):
Instead of tracking state in a single bit (_disableAutoHiding), keep track
of sets of pointers that are active, for hover and for actual touch/click.
- Modules/modern-media-controls/controls/slider.js:
(Slider.prototype.handleEvent):
(Slider.prototype._handlePointerdownEvent):
(Slider.prototype._handlePointerupEvent):
(Slider.prototype._handleMousedownEvent): Deleted.
(Slider.prototype._handleTouchstartEvent): Deleted.
(Slider.prototype._handleMouseupEvent): Deleted.
(Slider.prototype._handleTouchendEvent): Deleted.
Adopt pointer events.
- Modules/modern-media-controls/gesture-recognizers/gesture-recognizer.js:
(GestureRecognizer):
(GestureRecognizer.prototype.get numberOfTouches):
(GestureRecognizer.prototype.locationInElement):
(GestureRecognizer.prototype.locationInClient):
(GestureRecognizer.prototype.touchesBegan):
(GestureRecognizer.prototype.handleEvent):
(GestureRecognizer.prototype._updateBaseListeners):
(GestureRecognizer.prototype._removeTrackingListeners):
(GestureRecognizer.prototype._updateTargetTouches):
(GestureRecognizer.prototype.locationOfTouchInElement): Deleted.
Instead of keeping track of Touches, keep track of the currently-active set of PointerEvents.
We just store events by pointerId, and update them when they change, so we can
later retrieve e.g. points.
Remove locationOfTouchInElement which seems to not be used.
- html/RangeInputType.cpp:
- html/RangeInputType.h:
- html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::dragFrom):
(WebCore::SliderThumbElement::defaultEventHandler):
- html/shadow/SliderThumbElement.h:
Allow range inputs to accept mouse events everywhere.
- WebCore.xcodeproj/project.pbxproj:
Add some missing files to the project.
- 2:00 AM Changeset in webkit [253247] by
-
- 12 edits in trunk/Source/JavaScriptCore
[JSC] Put JSWrapperObject derived classes in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=204976
Reviewed by Mark Lam.
Put JSWrapperObject derived classes in IsoSubspace.
- StringObject
- NumberObject
- SymbolObject
- BigIntObject
- BooleanObject
- runtime/BigIntObject.h:
- runtime/BooleanObject.h:
(JSC::BooleanObject::subspaceFor):
- runtime/BooleanPrototype.h:
- runtime/JSWrapperObject.h:
(JSC::JSWrapperObject::subspaceFor):
- runtime/NumberObject.h:
(JSC::NumberObject::subspaceFor):
- runtime/NumberPrototype.h:
- runtime/StringObject.h:
(JSC::StringObject::subspaceFor):
- runtime/StringPrototype.h:
- runtime/SymbolObject.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- 1:28 AM Changeset in webkit [253246] by
-
- 8 edits in trunk/Source
Web Inspector: non-regex Local Overrides and Script Blackboxing shouldn't apply to scripts that just contain the URL
https://bugs.webkit.org/show_bug.cgi?id=204954
Reviewed by Joseph Pecoraro.
If
isRegexis false, add^and$to the beginning and end of the search string to
ensure that the search string is exactly matched, not just contained within the potentially
intercepted URL.
This doesn't actually change functionality because the Web Inspector frontend wouldn't
replace the network response for these containing matches, as the frontend JavaScript
already correctly performed this logic, and would thereforeNetwork.interceptContinue.
Source/JavaScriptCore:
- inspector/ContentSearchUtilities.h:
- inspector/ContentSearchUtilities.cpp:
(Inspector::ContentSearchUtilities::escapeStringForRegularExpressionSource): Added.
(Inspector::ContentSearchUtilities::createRegularExpressionForSearchString): Added.
(Inspector::ContentSearchUtilities::searchInTextByLines):
(Inspector::ContentSearchUtilities::createSearchRegexSource): Deleted.
(Inspector::ContentSearchUtilities::createSearchRegex): Deleted.
Rename functions for clarity.
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::shouldBlackboxURL const):
Source/WebCore:
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::shouldIntercept):
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::breakOnURLIfNeeded):
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::searchInResources):
Use renamedContentSearchUtilitiesfunction.
- 12:42 AM Changeset in webkit [253245] by
-
- 2 edits in trunk/Source/bmalloc
[bmalloc] Decommit unused region in chunk metadata.
https://bugs.webkit.org/show_bug.cgi?id=204810
Reviewed by Yusuke Suzuki.
There is an unused memory region from just after Chunk object to next page border.
We can decommit those memory to kernel at the initialization of Chunk.
- bmalloc/Heap.cpp:
(bmalloc::Heap::allocateSmallChunk):