Timeline
Jan 21, 2020:
- 11:00 PM Changeset in webkit [254900] by
-
- 9 edits1 move1 add in trunk/Source/WebCore
Move ImageBuffer utilities function to separate files
https://bugs.webkit.org/show_bug.cgi?id=206519
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-21
Reviewed by Tim Horton.
These utilities function are merely related to the ImageData.
- SourcesGTK.txt:
- html/HTMLCanvasElement.cpp:
- platform/SourcesCairo.txt:
- platform/graphics/ImageBuffer.h:
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::toData const):
(WebCore::writeFunction): Deleted.
(WebCore::encodeImage): Deleted.
- platform/graphics/cairo/ImageBufferUtilitiesCairo.cpp: Added.
(WebCore::writeFunction):
(WebCore::encodeImage):
(WebCore::data):
- platform/graphics/cairo/ImageBufferUtilitiesCairo.h: Added.
- platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::jpegUTI): Deleted.
(WebCore::utiFromImageBufferMIMEType): Deleted.
(WebCore::encodeImage): Deleted.
(WebCore::dataURL): Deleted.
(WebCore::dataVector): Deleted.
(WebCore::cfData): Deleted.
(WebCore::data): Deleted.
- platform/graphics/cg/ImageBufferDataCG.h:
- platform/graphics/cg/ImageBufferUtilitiesCG.cpp:
(WebCore::jpegUTI):
(WebCore::utiFromImageBufferMIMEType):
(WebCore::encodeImage):
(WebCore::cfData):
(WebCore::dataURL):
(WebCore::dataVector):
(WebCore::data):
- platform/graphics/cg/ImageBufferUtilitiesCG.h:
- platform/graphics/gtk/ImageBufferGtk.cpp: Removed.
- 7:11 PM Changeset in webkit [254899] by
-
- 5 edits in trunk/Source
[JSC] Date parse logic should be less redundant
https://bugs.webkit.org/show_bug.cgi?id=206560
Reviewed by Darin Adler.
Source/JavaScriptCore:
Our date parsing logic is doing an excessive amount of NaN-checking;
let's streamline this by having one JSC-side helper function instead of two.
- runtime/JSDateMath.cpp:
(JSC::parseDate):
(JSC::parseDateFromNullTerminatedCharacters): Deleted.
(JSC::parseES5DateFromNullTerminatedCharacters): Deleted.
Source/WTF:
- wtf/DateMath.cpp:
(WTF::parseDateFromNullTerminatedCharacters):
- wtf/DateMath.h:
Align function signature with parseES5DateFromNullTerminatedCharacters.
Namely, drop the integer out param and flip the boolean one.
- 5:59 PM Changeset in webkit [254898] by
-
- 9 edits2 adds in trunk
A partially selected RTL text is placed at a wrong vertical position if it has a vertical initial advance
https://bugs.webkit.org/show_bug.cgi?id=205990
Reviewed by Darin Adler.
Source/WebCore:
FontCascade::getGlyphsAndAdvancesForComplexText returned only X
position of the first glyph, but Y position.
Because GlyphBuffer is using glyph advances instead glyph
positions, it's not simple to get the first glyph position of the
part of a RTL texts.
FontCascade::getGlyphsAndAdvancesForComplexText is calculating the
X position of it by subtracting right side part width from the
total width. It should do same for Y position.
macOS and iOS ports don't use the code to draw selected texts.
Test: fast/text/initial-advance-selected-text.html
- platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::offsetForPosition):
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
- platform/graphics/ComplexTextController.h: Replaced m_totalWidth with m_totalAdvance.
(WebCore::ComplexTextController::totalWidth const): Removed.
(WebCore::ComplexTextController::totalAdvance const): Added.
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::glyphBufferForTextRun const): Changed the return type from float to FloatSize.
(WebCore::FontCascade::drawText const):
(WebCore::FontCascade::displayListForTextRun const):
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText const): Changed the return type from float to FloatSize.
(WebCore::FontCascade::drawGlyphBuffer const):
(WebCore::FontCascade::floatWidthForComplexText const):
(WebCore::FontCascade::adjustSelectionRectForComplexText const):
(WebCore::FontCascade::drawEmphasisMarksForComplexText const):
(WebCore::FontCascade::dashesForIntersectionsWithRect const):
- platform/graphics/FontCascade.h:
- platform/graphics/GlyphBuffer.h:
(WebCore::toFloatSize): Added.
Tools:
- TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:
Replaced all "controller.totalWidth()" with "controller.totalAdvance().width()".
LayoutTests:
- fast/text/initial-advance-selected-text-expected.html: Added.
- fast/text/initial-advance-selected-text.html: Added.
- 5:54 PM Changeset in webkit [254897] by
-
- 2 edits in trunk/Source/WebKit
[Win][WK2] Pressing space key on text input form scrolls the page
https://bugs.webkit.org/show_bug.cgi?id=201632
Reviewed by Ross Kirsling.
r223262 was add WebPage::performDefaultBehaviorForKeyEvent for
Windows port by copying GTK port's implementation. But, Windows
port is using unique key event processing. It dispatches
WebEvent::RawKeyDown and WebEvent::Char separately even though
other ports dispatch only WebEvent::KeyDown by unifying them.
Because WebPage::performDefaultBehaviorForKeyEvent handled
WebEvent::RawKeyDown of space key to scroll page, and consumed the
event, the keypress event of space key wasn't dispatched.
The keypress event of a space key is handled in
EventHandler::defaultSpaceEventHandler.
performDefaultBehaviorForKeyEvent don't need to do it.
Tests: Coverted by fast/events/space-scroll-event.html
- WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::performDefaultBehaviorForKeyEvent): Don't handle VK_SPACE.
- 5:45 PM Changeset in webkit [254896] by
-
- 2 edits in trunk/Source/WebCore
[EME] Only emit an array of persistent-usage-records when we discover > 1
https://bugs.webkit.org/show_bug.cgi?id=206205
<rdar://problem/58691769>
Patch by Jer Noble <jer.noble@apple.com> on 2020-01-21
Reviewed by Eric Carlson.
The persistent-usage-record cache should never have more than one record per sessionId, but
that assumption is not enforced in the file format. To not break clients that aren't
expecting a serialized plist array, only emit an array when more than one matching data item
is found.
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
- 5:30 PM Changeset in webkit [254895] by
-
- 4 edits in trunk/Source/WebCore
Add missing NS_NOESCAPE to CFNetwork SPI
https://bugs.webkit.org/show_bug.cgi?id=206561
<rdar://problem/58774422>
Reviewed by Joe Pecoraro.
Source/WebCore:
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
- 5:25 PM Changeset in webkit [254894] by
-
- 5 edits in trunk
[WebAuthn] Incorporate more detailed UnknownError messages for LocalAuthenticator
https://bugs.webkit.org/show_bug.cgi?id=191530
Reviewed by Brent Fulgham.
Source/WebKit:
This patch replaces UnknownError messages within LocalAuthenticator with the LOG_ERROR
messages. At the meantime, it enhances MockLocalConnection::getAttestation to return
errors instead of assertions.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::getAttestation const):
LayoutTests:
- http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
- 4:26 PM Changeset in webkit [254893] by
-
- 36 edits2 copies in trunk/Source
Make RenderingMode and AlphaPremultiplication enum classes and move them to separate headers
https://bugs.webkit.org/show_bug.cgi?id=206516
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-21
Reviewed by Tim Horton.
Source/WebCore:
RenderingMode and AlphaPremultiplication need to be encoded and decoded
when they are sent from the WebProcess to the GPUProcess.
- Headers.cmake:
- Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readImageBitmap):
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
- html/CustomPaintCanvas.cpp:
(WebCore::CustomPaintCanvas::copiedImage const):
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer const):
- html/ImageBitmap.cpp:
- html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::transferToImageBitmap):
(WebCore::OffscreenCanvas::createImageBuffer const):
(WebCore::OffscreenCanvas::takeImageBuffer const):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::createCompositingBuffer):
(WebCore::CanvasRenderingContext2DBase::createPattern):
- html/canvas/ImageBitmapRenderingContext.cpp:
(WebCore::ImageBitmapRenderingContext::isAccelerated const):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
- page/FrameSnapshotting.cpp:
(WebCore::snapshotFrameRectWithClip):
- platform/graphics/AlphaPremultiplication.h: Added.
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::nativeImageForCurrentFrameRespectingOrientation):
- platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::renderingMode const):
- platform/graphics/GraphicsTypes.cpp:
- platform/graphics/GraphicsTypes.h:
- platform/graphics/ImageBuffer.h:
- platform/graphics/RenderingMode.h: Added.
- platform/graphics/ShadowBlur.cpp:
(WebCore::ScratchBuffer::getScratchBuffer):
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawShadowLayer):
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBufferData::~ImageBufferData):
(WebCore::ImageBuffer::ImageBuffer):
- platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::ImageBuffer):
- platform/graphics/cg/ImageBufferDataCG.h:
- platform/graphics/filters/Filter.h:
- platform/graphics/texmap/BitmapTexture.cpp:
(WebCore::BitmapTexture::updateContents):
- platform/graphics/win/ImageBufferDirect2D.cpp:
(WebCore::ImageBuffer::ImageBuffer):
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::imageBuffer const):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
- rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
- rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::nativeImageForCurrentFrame):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebContextMenuClient.mm:
(WebContextMenuClient::imageForCurrentSharingServicePickerItem):
- 4:08 PM Changeset in webkit [254892] by
-
- 9 edits in trunk/Source/WebKit
[IPC Hardening] Only process Messages::NetworkProcess messages when sent by the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=206558
<rdar://problem/58733679>
Reviewed by Alex Christensen.
Port UpdateQuotaBasedOnSpaceUsageForTesting IPC from the NetworkProcess to the NetworkConnectionToWebProcess
since it is sent by the WebContent process. As a result, we can now stop forwarding all Messages::NetworkProcess
IPC messages from the WebContent process to the NetworkProcess class.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::updateQuotaBasedOnSpaceUsageForTesting):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::didReceiveSyncMessage):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- Platform/IPC/StringReference.h:
(IPC::StringReference::operator!=):
- WebProcess/Cache/WebCacheStorageConnection.cpp:
(WebKit::WebCacheStorageConnection::updateQuotaBasedOnSpaceUsage):
- 3:53 PM Changeset in webkit [254891] by
-
- 1 copy in tags/Safari-608.5.12
Tag Safari-608.5.12.
- 3:38 PM Changeset in webkit [254890] by
-
- 46 edits in trunk
Unreviewed, rolling out r254807 and r254849.
https://bugs.webkit.org/show_bug.cgi?id=206559
Broke page up/page down on macOW (Requested by smfr on
#webkit).
Reverted changesets:
"Add support for scroll behavior relies on ScrollAnimation of
the Web process"
https://bugs.webkit.org/show_bug.cgi?id=204882
https://trac.webkit.org/changeset/254807
"Add support for scroll behavior relies on ScrollAnimation of
the Web process"
https://bugs.webkit.org/show_bug.cgi?id=204882
https://trac.webkit.org/changeset/254849
- 3:33 PM Changeset in webkit [254889] by
-
- 1 copy in tags/Safari-609.1.15
Tag Safari-609.1.15.
- 3:32 PM Changeset in webkit [254888] by
-
- 2 edits in trunk/LayoutTests
imported/w3c/web-platform-tests/html/dom/idlharness.worker.html is timing out on Mojave wk1 debug EWS
https://bugs.webkit.org/show_bug.cgi?id=206503
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations: Mark the test as failing to speed up EWS while we investigate.
- 3:27 PM Changeset in webkit [254887] by
-
- 2 edits in trunk/Source/WebCore
Build fix.
- rendering/updating/RenderTreeBuilderInline.cpp:
Add missing include.
- 3:10 PM Changeset in webkit [254886] by
-
- 18 edits2 adds in trunk
Add Legacy WebKit SPI and WebKit IPI to show and hide placeholder
https://bugs.webkit.org/show_bug.cgi?id=206459
<rdar://problem/58700534>
Reviewed by Wenson Hsieh.
Source/WebCore:
Adds setter and getter to update whether the placeholder can be shown.
Test: fast/forms/placeholder-show-and-hide-via-setCanShowPlaceholder.html
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::HTMLTextFormControlElement): Initialize state. Default to can show
the placeholder to keep the behavior we have currently.
(WebCore::HTMLTextFormControlElement::placeholderShouldBeVisible const): Modified to account for m_canShowPlaceholder.
(WebCore::HTMLTextFormControlElement::setCanShowPlaceholder): Added. Update state and invalidate style.
- html/HTMLTextFormControlElement.h:
(WebCore::HTMLTextFormControlElement::canShowPlaceholder const): Added.
- testing/Internals.cpp:
(WebCore::Internals::setCanShowPlaceholder): Added. For testing purposes.
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Add Modern WebKit IPI to control whether the placeholder can be shown or not when a form
control is empty. This is for aesthetics.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setCanShowPlaceholder): Added.
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setCanShowPlaceholder): Added. Maps the input text to its element. If it's
a HTML text form control element then calls through to HTMLTextFormControlElement::setCanShowPlaceholder().
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Added new message.
Source/WebKitLegacy/mac:
Add Legacy WebKit SPI to allow a client to control whether the placeholder can be shown or
not when a form control is empty. This is for aesthetics.
- DOM/DOMHTMLInputElement.mm:
(-[DOMHTMLInputElement canShowPlaceholder]): Added.
(-[DOMHTMLInputElement setCanShowPlaceholder:]): Added.
- DOM/DOMHTMLInputElementPrivate.h:
- DOM/DOMHTMLTextAreaElement.mm:
(-[DOMHTMLTextAreaElement canShowPlaceholder]): Added.
(-[DOMHTMLTextAreaElement setCanShowPlaceholder:]): Added.
- DOM/DOMHTMLTextAreaElementPrivate.h:
LayoutTests:
Adds a new test to ensure that HTMLTextFormControlElement::setCanShowPlaceholder() works.
- fast/forms/placeholder-show-and-hide-via-setCanShowPlaceholder-expected.txt: Added.
- fast/forms/placeholder-show-and-hide-via-setCanShowPlaceholder.html: Added.
- 2:57 PM Changeset in webkit [254885] by
-
- 2 edits in trunk/Tools
REGRESSION (r254856?): [Win] http/tests/security/same-origin-websql-blocked.html and 2 fast/dom/Window/window-function-* tests failing
https://bugs.webkit.org/show_bug.cgi?id=206552
Unreviewed fix after r254856. r254856 wanted to enable WebSQL on layout tests but enableWebSQL was set to false.
- DumpRenderTree/TestOptions.h:
- 2:51 PM Changeset in webkit [254884] by
-
- 6 edits in trunk
ProvisionalPageProxy::loadData should pass last navigation's shouldOpenExternalURLsPolicy flag to WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=206462
<rdar://problem/57468718>
Reviewed by Chris Dumez.
Source/WebKit:
Covered by API tests.
This patch also does it for ProvisionalPageProxy::loadRequest.
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::continueNavigationInNewProcess):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:
(TestWebKitAPI::TEST):
- 2:33 PM Changeset in webkit [254883] by
-
- 22 edits in trunk
Add build flag for stale-while-revalidate
https://bugs.webkit.org/show_bug.cgi?id=204169
Patch by Rob Buis <rbuis@igalia.com> on 2020-01-21
Reviewed by Youenn Fablet.
.:
Add build flag for stale-while-revalidate to make it
independent from the NETWORK_CACHE_SPECULATIVE_REVALIDATION build flag.
- Source/cmake/OptionsFTW.cmake:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/WebKitFeatures.cmake:
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
- NetworkProcess/cache/AsyncRevalidation.cpp:
- NetworkProcess/cache/AsyncRevalidation.h:
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::responseNeedsRevalidation):
(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::Cache::retrieve):
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- 2:13 PM Changeset in webkit [254882] by
-
- 2 edits in trunk/Source/WebKit
IPC::Decoder should use nullptr as invalid value
<https://webkit.org/b/203880>
<rdar://problem/53159906>
Follow-up fix noticed by Chris Dumez.
- Platform/IPC/Decoder.cpp:
(IPC::alignedBufferIsLargeEnoughToContain): Fix typo in comment.
- 2:05 PM Changeset in webkit [254881] by
-
- 19 edits in trunk
[WTF] AtomStringTable should be small
https://bugs.webkit.org/show_bug.cgi?id=206400
Reviewed by Sam Weinig.
Source/WebCore:
- dom/GCReachableRef.h:
(WebCore::GCReachableRef::GCReachableRef):
- dom/QualifiedName.h:
(WebCore::QualifiedName::hashTableDeletedValue):
Source/WTF:
AtomStringTable is the largest hashtable typically. It takes more
than 256KB per WebProcess (sometimes, it took 1MB or more).
This patch leverages PackedPtr to compact it from 8 bytes per entry
to 6 bytes per entry.
While this is still large, we should investigate how to compact C++
pointers in 4 bytes[1] to shrink memory footprint, since WebKit
memory is used by Vector and HashTable fulfilled with pointers.
[1]: https://bugs.webkit.org/show_bug.cgi?id=206469
- wtf/DumbPtrTraits.h:
(WTF::DumbPtrTraits::hashTableDeletedValue):
(WTF::DumbPtrTraits::isHashTableDeletedValue):
- wtf/Forward.h:
- wtf/HashTraits.h:
- wtf/Packed.h:
(WTF::Packed<T::Packed):
(WTF::Packed<T::isHashTableDeletedValue const):
(WTF::GetPtrHelper<PackedPtr<T>>::getPtr):
(WTF::PackedPtrTraits::hashTableDeletedValue):
(WTF::PackedPtrTraits::isHashTableDeletedValue):
(WTF::alignof): Deleted.
- wtf/Ref.h:
(WTF::Ref::Ref):
(WTF::Ref::isHashTableDeletedValue const):
(WTF::Ref::hashTableDeletedValue): Deleted.
- wtf/RefPtr.h:
(WTF::RefPtr::RefPtr):
(WTF::RefPtr::isHashTableDeletedValue const):
(WTF::RefPtr::hashTableDeletedValue): Deleted.
- wtf/text/AtomStringImpl.cpp:
(WTF::addToStringTable):
(WTF::CStringTranslator::equal):
(WTF::CStringTranslator::translate):
(WTF::UCharBufferTranslator::equal):
(WTF::UCharBufferTranslator::translate):
(WTF::HashAndUTF8CharactersTranslator::equal):
(WTF::HashAndUTF8CharactersTranslator::translate):
(WTF::SubstringTranslator::translate):
(WTF::SubstringTranslator8::equal):
(WTF::SubstringTranslator16::equal):
(WTF::LCharBufferTranslator::equal):
(WTF::LCharBufferTranslator::translate):
(WTF::BufferFromStaticDataTranslator::equal):
(WTF::BufferFromStaticDataTranslator::translate):
(WTF::AtomStringImpl::addSlowCase):
(WTF::AtomStringImpl::remove):
(WTF::AtomStringImpl::lookUpSlowCase):
(WTF::AtomStringImpl::lookUp):
- wtf/text/AtomStringTable.cpp:
(WTF::AtomStringTable::~AtomStringTable):
- wtf/text/AtomStringTable.h:
(WTF::AtomStringTable::table):
(): Deleted.
- wtf/text/StringHash.h:
(WTF::StringHash::hash):
(WTF::StringHash::equal):
(WTF::ASCIICaseInsensitiveHash::hash):
(WTF::ASCIICaseInsensitiveHash::equal):
- wtf/text/StringImpl.h:
Tools:
- TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/HashSet.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/Packed.cpp:
(TestWebKitAPI::TEST):
- 2:04 PM Changeset in webkit [254880] by
-
- 4 edits in trunk/Source/WebKit
[macOS] Add managed preference to allow synchronous XHR during page dismissal
https://bugs.webkit.org/show_bug.cgi?id=206540
<rdar://problem/58644447>
Reviewed by Alex Christensen.
Add managed preference to allow synchronous XHR during page dismissal. This is temporarily needed by some
enterprise products until they can update their code.
- Shared/WebPreferences.yaml:
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultDisallowSyncXHRDuringPageDismissalEnabled):
- Shared/WebPreferencesDefaultValues.h:
- 2:02 PM Changeset in webkit [254879] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, rolling out r254876.
Broke Catalina builds.
Reverted changeset:
"Fix SDK availability macros"
https://bugs.webkit.org/show_bug.cgi?id=206463
https://trac.webkit.org/changeset/254876
- 1:44 PM Changeset in webkit [254878] by
-
- 10 edits2 moves in trunk/Source
[iPad] YouTube does not automatically AirPlay when a route is selected from Control Center
https://bugs.webkit.org/show_bug.cgi?id=206539
Source/WebCore:
Patch by Jer Noble <jer.noble@apple.com> on 2020-01-21
Reviewed by Eric Carlson.
No new tests; change affects an interaction with two platform features (local AirPlay
route picking and actual remote playback over AirPlay routes) that is not testable in
an automated fashion.
The underlying source of the bug is the difference in how the platform communitcates that an
AirPlay route was picked between iOS and macOS. On iOS, route changes are global and are
generally pushed up from AVPlayer notifications. On macOS, route changes are local to the
app and are pushed down from the UIProcess. But when MSE playback was enabled on iPadOS,
there was now a limbo where media playback was no longer using an AVPlayer, but at the same
time, route changes could be initiated globally. The end result is that MSE-based media
elements are never notified that they "should play to playback target", and no remote
playback events are ever fired.
To re-create the same macOS behavior when MSE-backed media elements are used on iPadOS,
re-use the existing route change detection logic in MediaSessionManageriOS to query whether
the newly established route supports AirPlay Video, and if so, send a message to the "now
playing" media element that it should begin AirPlaying, which will fail, but will trigger
the YouTube player to switch to a HLS-backed media element.
This requires renaming MediaPlaybackTargetMac -> MediaPlaybackTargetCocoa.
- SourcesCocoa.txt:
- PlatformMac.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/audio/ios/MediaSessionManagerIOS.h:
- platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::activeVideoRouteDidChange):
(-[WebMediaSessionHelper activeAudioRouteDidChange:]):
- platform/graphics/avfoundation/MediaPlaybackTargetCocoa.h: Renamed from Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetMac.h.
(WebCore::MediaPlaybackTargetCocoa::outputContext const):
- platform/graphics/avfoundation/MediaPlaybackTargetCocoa.mm: Renamed from Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetMac.mm.
(WebCore::MediaPlaybackTargetCocoa::create):
(WebCore::MediaPlaybackTargetCocoa::MediaPlaybackTargetCocoa):
(WebCore::MediaPlaybackTargetCocoa::~MediaPlaybackTargetCocoa):
(WebCore::MediaPlaybackTargetCocoa::targetContext const):
(WebCore::MediaPlaybackTargetCocoa::hasActiveRoute const):
(WebCore::MediaPlaybackTargetCocoa::deviceName const):
(WebCore::toMediaPlaybackTargetCocoa):
- platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(WebCore::MediaPlaybackTargetPickerMac::playbackTarget):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget):
Source/WebKit:
<rdar://problem/54173689>
Patch by Jer Noble <jer.noble@apple.com> on 2020-01-21
Reviewed by Eric Carlson.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::playbackTargetSelected const):
- 1:25 PM Changeset in webkit [254877] by
-
- 17 edits in trunk
Add SPI on WKURLSchemeTask to access WKFrameInfo of originating frame
https://bugs.webkit.org/show_bug.cgi?id=204265
<rdar://57193883>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-01-21
Reviewed by Brady Eidson.
Source/WebKit:
Covered by API tests.
- Shared/URLSchemeTaskParameters.cpp:
(WebKit::URLSchemeTaskParameters::encode const):
(WebKit::URLSchemeTaskParameters::decode):
- Shared/URLSchemeTaskParameters.h:
- UIProcess/API/Cocoa/WKURLSchemeTask.mm:
(-[WKURLSchemeTaskImpl _frame]):
- UIProcess/API/Cocoa/WKURLSchemeTaskPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::startURLSchemeTaskShared):
(WebKit::WebPageProxy::loadSynchronousURLSchemeTask):
- UIProcess/WebURLSchemeHandler.cpp:
(WebKit::WebURLSchemeHandler::startTask):
- UIProcess/WebURLSchemeHandler.h:
- UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::create):
(WebKit::WebURLSchemeTask::WebURLSchemeTask):
- UIProcess/WebURLSchemeTask.h:
(WebKit::WebURLSchemeTask::frameInfo const):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler):
- WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:
(WebKit::WebURLSchemeHandlerProxy::startNewTask):
- WebProcess/WebPage/WebURLSchemeHandlerProxy.h:
- WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
(WebKit::WebURLSchemeTaskProxy::WebURLSchemeTaskProxy):
(WebKit::WebURLSchemeTaskProxy::startLoading):
(WebKit::WebURLSchemeTaskProxy::stopLoading):
(WebKit::WebURLSchemeTaskProxy::didComplete):
(WebKit::WebURLSchemeTaskProxy::hasLoader):
- WebProcess/WebPage/WebURLSchemeTaskProxy.h:
(WebKit::WebURLSchemeTaskProxy::create):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
(-[FrameSchemeHandler waitForAllRequests]):
(-[FrameSchemeHandler setExpectedWebView:]):
(-[FrameSchemeHandler webView:startURLSchemeTask:]):
(-[FrameSchemeHandler webView:stopURLSchemeTask:]):
- 1:12 PM Changeset in webkit [254876] by
-
- 2 edits in trunk/Source/WebKit
Fix SDK availability macros
https://bugs.webkit.org/show_bug.cgi?id=206463
<rdar://problem/58581906>
Reviewed by Timothy Hatcher.
Bug 197841 updated WebKit.xcconfig with regards to when it runs a
header post-processing script. This post-processing script grovels
over our exported headers, changing macros like WK_API_AVAILABLE to
the standard API_AVAILABLE. Because of the change in Bug 197841, the
script was no longer being run when preparing macOS 10.15 SDKs, which
was breaking those SDKs. Fix this by reverting the change, allowing
the macros to be replaced for macOS 10.15.
No new tests - no added or changed functionality.
- Configurations/WebKit.xcconfig:
- 1:08 PM Changeset in webkit [254875] by
-
- 12 edits in trunk/Source/WebCore
[LFC] Typed accessors for formatting states
https://bugs.webkit.org/show_bug.cgi?id=206538
Reviewed by Zalan Bujtas.
Almost all clients know what sort of formatting state they want and immediately cast it.
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth):
- layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::createFormattingContext):
- layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::formattingStateForBox const):
(WebCore::Layout::LayoutState::establishedFormattingState const):
(WebCore::Layout::LayoutState::establishedInlineFormattingState const):
(WebCore::Layout::LayoutState::establishedBlockFormattingState const):
(WebCore::Layout::LayoutState::establishedTableFormattingState const):
Typed function for getting established states.
(WebCore::Layout::LayoutState::ensureFormattingState):
(WebCore::Layout::LayoutState::ensureInlineFormattingState):
Also add a fast path for integrated layout.
(WebCore::Layout::LayoutState::ensureBlockFormattingState):
(WebCore::Layout::LayoutState::ensureTableFormattingState):
Typed function for creating states.
(WebCore::Layout::LayoutState::createFormattingStateForFormattingRootIfNeeded): Deleted.
- layout/LayoutState.h:
(WebCore::Layout::LayoutState::hasInlineFormattingState const):
(WebCore::Layout::LayoutState::hasFormattingState const): Deleted.
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):
- layout/displaytree/DisplayPainter.cpp:
(WebCore::Display::paintSubtree):
(WebCore::Display::Painter::paintInlineFlow):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::LineLayout):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputInlineRuns):
- 1:07 PM Changeset in webkit [254874] by
-
- 2 edits in trunk/Source/WebKit
macCatalyst: Two-finger click is dispatched to DOM as left click
https://bugs.webkit.org/show_bug.cgi?id=206549
Reviewed by Simon Fraser.
- UIProcess/ios/WKMouseGestureRecognizer.mm:
(-[WKMouseGestureRecognizer createMouseEventWithType:forEvent:]):
(-[WKMouseGestureRecognizer touchesBegan:withEvent:]):
(-[WKMouseGestureRecognizer touchesMoved:withEvent:]):
(-[WKMouseGestureRecognizer touchesEnded:withEvent:]):
(-[WKMouseGestureRecognizer _hoverEntered:withEvent:]):
(-[WKMouseGestureRecognizer _hoverMoved:withEvent:]):
(-[WKMouseGestureRecognizer _hoverExited:withEvent:]):
(-[WKMouseGestureRecognizer createMouseEventWithType:]): Deleted.
We correctly say button=2 for ctrl-click, but not for secondary-button click.
- 12:58 PM Changeset in webkit [254873] by
-
- 11 edits in trunk/Source/WebKit
Revert suppressesConnectionTerminationOnSystemChange part of r254081
https://bugs.webkit.org/show_bug.cgi?id=205751
<rdar://problem/58725096>
There was an API client that still hadn't migrated to the replacement SPI.
- NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const):
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]):
(-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
- 12:34 PM Changeset in webkit [254872] by
-
- 2 edits in trunk/Source/WebKit
Performance tests fail if stderr logging is encountered
https://bugs.webkit.org/show_bug.cgi?id=206544
<rdar://problem/58714766>
Reviewed by Per Arne Vollan.
Switch to LOG_ERROR, rather than WTFLogAlways, to avoid confusing the PerformanceTests system.
- Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtension::createHandleForReadByAuditToken):
- 12:33 PM Changeset in webkit [254871] by
-
- 3 edits in trunk/Source/bmalloc
[bmalloc] Make use of LockHolder strict in some methods of Scavenger
https://bugs.webkit.org/show_bug.cgi?id=206460
Reviewed by Darin Adler.
For instance, Scavenger::runHoldingLock() assume the caller has lock and express that by its function name. This rule can be
strict by passing LockHolder and that's the way as other code do.
Same change to runSoonHoldingLock and scheduleIfUnderMemoryPressureHoldingLock.
- bmalloc/Scavenger.cpp:
(bmalloc::Scavenger::run):
(bmalloc::Scavenger::runSoon):
(bmalloc::Scavenger::scheduleIfUnderMemoryPressure):
(bmalloc::Scavenger::schedule):
(bmalloc::Scavenger::runHoldingLock): Renamed.
(bmalloc::Scavenger::runSoonHoldingLock): Renamed.
(bmalloc::Scavenger::scheduleIfUnderMemoryPressureHoldingLock): Renamed.
- bmalloc/Scavenger.h:
- 12:05 PM Changeset in webkit [254870] by
-
- 4 edits in trunk/Tools
[ews] commit-queue should check cq+ flag
https://bugs.webkit.org/show_bug.cgi?id=206530
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
ValidatePatch._is_patch_cq_plus): Method to check cq+ flag on patch.
(ValidatePatch.start):
- BuildSlaveSupport/ews-build/factories.py:
- BuildSlaveSupport/ews-build/factories_unittest.py: Updated unit-tests.
- 11:48 AM Changeset in webkit [254869] by
-
- 10 edits in trunk
[WebGL2] Sampler objects
https://bugs.webkit.org/show_bug.cgi?id=126941
<rdar://problem/15002402>
Source/WebCore:
Implement enough of Samplers to pass the "samplers" conformance tests with ANGLE enabled.
Reviewed by Dean Jackson.
Covered by webgl/2.0.0/conformance2/samplers directory of tests.
- bindings/js/JSDOMConvertWebGL.cpp:
(WebCore::convertToJSValue):
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::initializeSamplerCache):
(WebCore::WebGL2RenderingContext::createSampler):
(WebCore::WebGL2RenderingContext::deleteSampler):
(WebCore::WebGL2RenderingContext::isSampler):
(WebCore::WebGL2RenderingContext::bindSampler):
(WebCore::WebGL2RenderingContext::samplerParameteri):
(WebCore::WebGL2RenderingContext::samplerParameterf):
(WebCore::WebGL2RenderingContext::getSamplerParameter):
(WebCore::WebGL2RenderingContext::bindTransformFeedback):
(WebCore::WebGL2RenderingContext::getParameter):
- html/canvas/WebGL2RenderingContext.h:
- html/canvas/WebGLAny.h:
- html/canvas/WebGLSampler.cpp:
(WebCore::WebGLSampler::WebGLSampler):
(WebCore::WebGLSampler::deleteObjectImpl):
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::createSampler):
(WebCore::GraphicsContextGLOpenGL::deleteSampler):
(WebCore::GraphicsContextGLOpenGL::isSampler):
(WebCore::GraphicsContextGLOpenGL::bindSampler):
(WebCore::GraphicsContextGLOpenGL::samplerParameteri):
(WebCore::GraphicsContextGLOpenGL::samplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterfv):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteriv):
LayoutTests:
Reviewed by Dean Jackson.
Update to passing expectations, though these tests remain skipped until ANGLE backend is enabled.
- webgl/2.0.0/conformance2/samplers/sampler-drawing-test-expected.txt:
- webgl/2.0.0/conformance2/samplers/samplers-expected.txt:
- 11:40 AM Changeset in webkit [254868] by
-
- 9 edits in trunk
Fix tvOS values in SUPPORTED_PLATFORMS
https://bugs.webkit.org/show_bug.cgi?id=206435
<rdar://problem/58674587>
Reviewed by Alexey Proskuryakov.
A number of targets in WebKit have 'tvos' and 'tvsimulator' in
SUPPORTED_PLATFORMS. The correct values are 'appletvos' and
'appletvsimulator'. These should be updated to the correct ones as the
wrong values prevent the tvOS run destination from being usable in the
UI to build for tvOS.
Source/ThirdParty:
- gtest/xcode/Config/General.xcconfig:
Source/WebInspectorUI:
- Configurations/Base.xcconfig:
Tools:
- DumpRenderTree/mac/Configurations/Base.xcconfig:
- ImageDiff/cg/Configurations/Base.xcconfig:
- MiniBrowser/Configurations/Base.xcconfig:
- WebKitTestRunner/Configurations/Base.xcconfig:
- 11:36 AM Changeset in webkit [254867] by
-
- 6 edits in trunk/Source/WebKit
Provide camera/microphone sandbox extensions to GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=206531
Reviewed by Eric Carlson.
Send at creation of GPUProcess sandbox extensions to camera and microphone.
This is currently gated by the UIProcess application being Safari.
This should be changed to checks based on camera/microphone entitlements.
Extensions are provided at creation of the GPUProcess as it is as trusted as the UIProcess.
We do not make it conditional to getUserMedia being enabled as GPUProcess may be created for more than one configuration.
Relax the GPUProcess sandbox on MacOS to allow microphone access until we can use microphone sandbox extension for that purpose.
Manually tested by capturing audio/video with real devices.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::initializeGPUProcess):
- GPUProcess/GPUProcessCreationParameters.cpp:
(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):
- GPUProcess/GPUProcessCreationParameters.h:
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::isSafari):
(WebKit::shouldCreateCameraSandboxExtension):
(WebKit::shouldCreateMicrophoneSandboxExtension):
(WebKit::GPUProcessProxy::singleton):
- 11:36 AM Changeset in webkit [254866] by
-
- 3 edits1 add in trunk
JSTests:
Object allocation sinking is missing PutHint for allocations unreachable in the graph
https://bugs.webkit.org/show_bug.cgi?id=203799
<rdar://problem/56852162>
Reviewed by Saam Barati.
- stress/allocation-sinking-puthint-control-flow-2.js: Added.
(f.handler.construct):
(f):
Source/JavaScriptCore:
Object allocation sinking is missing PutHint for sunken allocations
https://bugs.webkit.org/show_bug.cgi?id=203799
<rdar://problem/56852162>
Reviewed by Saam Barati.
Consider the following graph:
Block #0:
1: PhantomCreateActivation()
2: PhantomNewFunction()
PutHint(@2, @1, FunctionActivationPLoc)
Branch(#1, #2)
Block #1:
3: MaterializeCreateActivation()
PutHint(@2, @3, FunctionActivationPLoc)
Upsilon(@3, 5)
Jump(#3)
Block #2:
4: MaterializeCreateActivation()
PutHint(@2, @4, FunctionActivationPLoc)
Upsilon(@4, 5)
Jump(#3)
Block #3:
5: Phi()
ExitOK()
On Block #3, we need to emit a PutHint after the Phi, since we might exit after it. However,
object allocation sinking skipped this Phi because it was checking whether the base of the
location that caused us to create this Phi (@2) was live, but it's dead in the graph (there
are no pointers to it). The issue is that, even though there are no pointers to the base, the
locationPromotedHeapLocation(@2, FunctionActivationPLoc)is still live, so we should PutHint
to it. We fix it by checking for liveness of the location rather than its base.
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- 11:30 AM Changeset in webkit [254865] by
-
- 183 edits7 deletes in branches/safari-609-branch
Cherry-pick r254632. rdar://problem/58764714
Revert bytecode checkpoints since it breaks watch
https://bugs.webkit.org/show_bug.cgi?id=206301
Unreviewed, revert.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:16 AM Changeset in webkit [254864] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r254125. rdar://problem/58353217
Fix non GPUProcess build issue in UserMediaCaptureManager
https://bugs.webkit.org/show_bug.cgi?id=205851
Reviewed by Eric Carlson.
Build fix, no change of behavior.
- WebProcess/cocoa/UserMediaCaptureManager.cpp: (WebKit::UserMediaCaptureManager::Source::connection):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254125 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:58 AM Changeset in webkit [254863] by
-
- 3 edits2 adds in trunk
Disallow setting SVGElement currentScale to non-finite values
https://bugs.webkit.org/show_bug.cgi?id=206019
Align SVGElement currentScale definition to SVG2 section 5.14.2
(https://www.w3.org/TR/SVG2/struct.html#InterfaceSVGSVGElement)
Patch by Sunny He <sunny_he@apple.com> on 2020-01-21
Reviewed by Darin Adler.
Source/WebCore:
Test: svg/dom/set-currentScale-nonfinite.html
- svg/SVGSVGElement.idl:
LayoutTests:
- svg/dom/set-currentScale-nonfinite-expected.txt: Added.
- svg/dom/set-currentScale-nonfinite.html: Added.
- 10:42 AM Changeset in webkit [254862] by
-
- 8 edits in trunk/Source/WebKit
API::(User)ContentWorld cleanup
https://bugs.webkit.org/show_bug.cgi?id=206509
Reviewed by Darin Adler.
No behavior change.
- Give (User)ContentWorld a shared base class for upcoming work.
- Reference them by identifier instead of object instance whenever possible.
- Other shared class cleanup.
- UIProcess/API/APIContentWorld.cpp:
(API::ContentWorldBase::generateIdentifier):
(API::ContentWorld::ContentWorld):
(API::ContentWorld::~ContentWorld):
- UIProcess/API/APIContentWorld.h:
(API::ContentWorldBase::identifier const):
(API::ContentWorldBase::name const):
(API::ContentWorldBase::worldData const):
(API::ContentWorldBase::ContentWorldBase):
- UIProcess/API/APIUserContentWorld.cpp:
(API::UserContentWorld::UserContentWorld):
(API::UserContentWorld::generateIdentifier): Deleted.
- UIProcess/API/APIUserContentWorld.h:
- UIProcess/UserContent/WebScriptMessageHandler.h:
(WebKit::WebScriptMessageHandler::world):
(WebKit::WebScriptMessageHandler::userContentWorld const): Deleted.
(WebKit::WebScriptMessageHandler::userContentWorld): Deleted.
- UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addUserContentWorldUse):
(WebKit::WebUserContentControllerProxy::shouldSendRemoveUserContentWorldsMessage):
(WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler):
(WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName):
(WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers):
- UIProcess/UserContent/WebUserContentControllerProxy.h:
- 10:28 AM Changeset in webkit [254861] by
-
- 26 edits16 adds in trunk
-webkit-image-set should support all the image functions WebKit supports, not just url()
https://bugs.webkit.org/show_bug.cgi?id=81941
Patch by Noam Rosenthal <Noam Rosenthal> on 2020-01-21
Reviewed by Darin Adler.
Source/WebCore:
Separate StyleCachedImage to 4 classes:
- StyleCachedImage: for single images only
- StyleMultiImage: for values that can contain multiple images: like cursor/image-set
- StyleImageSet
- StyleCursorImage
The new classes only deal with their own value type. Before, ImageSet and cursor were resolved
as a StyleCachedImage, which is no longer a valid assumption if image-set can contain generated images.
Though cursors still can only contain cached images, it was cleaner to refactor it out as well.
Refactored best-fit image selection from loading. Now StyleCachedImage is in charge of loading
the actual image, and StyleImageSet/StyleCursorImage perform the source selection.
Also, added the necessary logic in the CSS parser to consume generated images inside image-sets, excluding
when the image-set is a cursor value.
Tests: fast/css/image-set-parsing-generated.html
fast/hidpi/image-set-cross-fade.html
fast/hidpi/image-set-gradient-multi.html
fast/hidpi/image-set-gradient-single.html
fast/hidpi/image-set-gradient.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Added new files
- css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::selectBestFitImage):
(WebCore::CSSCursorImageValue::loadImage): Deleted.
- css/CSSCursorImageValue.h:
Instead of cursor loading the image, it selects an image CSS value
- css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::CSSImageSetValue):
(WebCore::CSSImageSetValue::fillImageSet):
(WebCore::CSSImageSetValue::cachedImage const):
(WebCore::CSSImageSetValue::selectBestFitImage):
(WebCore::CSSImageSetValue::updateDeviceScaleFactor):
(WebCore::CSSImageSetValue::imageSetWithStylesResolved):
(WebCore::CSSImageSetValue::traverseSubresources const):
(WebCore::CSSImageSetValue::loadBestFitImage): Deleted.
- css/CSSImageSetValue.h:
Refactor CSSImageSetValue to include non-cachedImage images
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeCursor):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeImageSet):
(WebCore::CSSPropertyParserHelpers::consumeImage):
(WebCore::CSSPropertyParserHelpers::consumeUrlOrStringAsStringView): Deleted.
- css/parser/CSSPropertyParserHelpers.h:
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
When blending two images, get the selected images in case it is an image-set
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/RenderImageResourceStyleImage.cpp:
(WebCore::RenderImageResourceStyleImage::initialize):
- rendering/RenderLayerBacking.cpp:
(WebCore::canDirectlyCompositeBackgroundBackgroundImage):
- rendering/style/ShapeValue.cpp:
(WebCore::ShapeValue::isImageValid const):
Use hasCachedImage() instead of isCachedImage() as a StyleImageSet is no longer an isCachedImage()
- rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::StyleCachedImage):
(WebCore::StyleCachedImage::imageURL):
(WebCore::StyleCachedImage::load):
- rendering/style/StyleCachedImage.h:
- rendering/style/StyleCursorImage.h:
- rendering/style/StyleCursorImage.cpp:
- rendering/style/StyleMultiImage.h:
- rendering/style/StyleMultiImage.cpp:
- rendering/style/StyleImageSet.h:
- rendering/style/StyleImageSet.cpp:
- rendering/style/StyleImage.h:
(WebCore::StyleImage::selectedImage):
(WebCore::StyleImage::selectedImage const):
(WebCore::StyleImage::isCursorImage const):
(WebCore::StyleImage::isImageSet const):
(WebCore::StyleImage::hasCachedImage const):
(WebCore::StyleImage::StyleImage):
Separate cursor/image-set related stuff away from StyleCachedImage.
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueContent):
- style/StyleBuilderState.cpp:
(WebCore::Style::BuilderState::resolveImageStyles):
(WebCore::Style::BuilderState::createStyleImage):
- style/StyleBuilderState.h:
Match the CSS values with the correct Style class. Also, ensure image-sets resolve their
images' styles as they may contain gradients and other context-aware values.
LayoutTests:
- fast/css/cursor-parsing-expected.txt:
- fast/css/cursor-parsing.html:
Added parsing test to ensure arrow image-sets disable generated images
- fast/css/image-set-parsing-generated-expected.txt: Added.
- fast/css/image-set-parsing-generated.html: Added.
- fast/css/image-set-parsing-invalid-expected.txt:
- fast/css/image-set-parsing-invalid.html:
Added parsing tests for new generated-inside-image-set use cases
Test that image-set inside image-set is not supported
- fast/hidpi/image-set-cross-fade-expected.html: Added.
- fast/hidpi/image-set-cross-fade.html: Added.
- fast/hidpi/image-set-gradient-expected.html: Added.
- fast/hidpi/image-set-gradient-multi-expected.html: Added.
- fast/hidpi/image-set-gradient-multi.html: Added.
- fast/hidpi/image-set-gradient-single-expected.html: Added.
- fast/hidpi/image-set-gradient-single.html: Added.
- fast/hidpi/image-set-gradient.html: Added.
Added ref-tests for several generated-inside-image-set use-cases
- 10:07 AM Changeset in webkit [254860] by
-
- 2 edits2 adds in trunk/LayoutTests
Regression r254652: fast/xmlhttprequest/xmlhttprequest-multiple-sync-xhr-during-unload.html fails on windows
https://bugs.webkit.org/show_bug.cgi?id=206474
Unreviewed, land Windows-specific baseline and unskip the test.
- platform/win/TestExpectations:
- platform/win/fast/xmlhttprequest/xmlhttprequest-multiple-sync-xhr-during-unload-expected.txt: Added.
- 9:57 AM Changeset in webkit [254859] by
-
- 15 edits in trunk/Source
Minor improvements to StorageAreaMap
https://bugs.webkit.org/show_bug.cgi?id=206433
Reviewed by Darin Adler.
Source/WebCore:
Use inline initialization for some of StorageMap's data member.
Also specify uint8_t as underlying type of StorageType enum class for better packing.
- inspector/InspectorInstrumentation.h:
- storage/StorageArea.h:
- storage/StorageMap.cpp:
(WebCore::StorageMap::StorageMap):
- storage/StorageMap.h:
- storage/StorageType.h:
Source/WebKit:
Minor improvements to StorageAreaMap:
- The class does not need to be RefCounted, as it is solely owned by StorageNamespaceImpl. Having it RefCounted was actually dangerous because StorageAreaMap had a raw pointer data member to its owner: m_storageNamespace. This raw pointer could become stale if you extend the lifetime of the StorageAreaMap object to outlive its StorageNamespaceImpl.
- Make StorageAreaMap::connect() private as it is never called from outside the class
- Reorder data members for better packing
- Use modern loops in the implementation
- Rename loadValuesIfNeeded() to ensureStorageMap() and have it return the StorageMap object. This makes calls site more concise and it makes it clearer when this method needs to be called.
- Mark class as final
- Replace LOG_ERROR() with RELEASE_LOG_ERROR() so that we can see error logging in sysdiagnoses
- Use more references instead of raw pointers to make it clear when null checks are not needed
- WebProcess/WebStorage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::create):
(WebKit::StorageAreaImpl::StorageAreaImpl):
- WebProcess/WebStorage/StorageAreaImpl.h:
- WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::length):
(WebKit::StorageAreaMap::key):
(WebKit::StorageAreaMap::item):
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::contains):
(WebKit::StorageAreaMap::resetValues):
(WebKit::StorageAreaMap::ensureStorageMap):
(WebKit::StorageAreaMap::applyChange):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):
(WebKit::StorageAreaMap::connect):
(WebKit::StorageAreaMap::disconnect):
- WebProcess/WebStorage/StorageAreaMap.h:
- WebProcess/WebStorage/StorageAreaMap.messages.in:
- WebProcess/WebStorage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::storageArea):
- WebProcess/WebStorage/StorageNamespaceImpl.h:
- 9:55 AM Changeset in webkit [254858] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, add comment to make it clearer that the code restored in r254857 is not dead
- page/DOMWindow.cpp:
(WebCore::DOMWindow::prewarmLocalStorageIfNecessary):
- 9:52 AM Changeset in webkit [254857] by
-
- 6 edits in trunk/Source/WebCore
Unreviewed, rolling out r254753.
It turns out this is not dead code
Reverted changeset:
"Drop dead code related to local storage prewarming"
https://bugs.webkit.org/show_bug.cgi?id=206418
https://trac.webkit.org/changeset/254753
- 9:51 AM Changeset in webkit [254856] by
-
- 17 edits in trunk
Disable WebSQL everywhere by default except in tests
https://bugs.webkit.org/show_bug.cgi?id=204907
Reviewed by Ryosuke Niwa.
Source/WebCore:
No new tests. All WebSQL tests are enabled for now.
- page/RuntimeEnabledFeatures.h:
Source/WebKitLegacy/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences webSQLEnabled]):
(-[WebPreferences setWebSQLEnabled:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKitLegacy/win:
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::webSQLEnabled):
(WebPreferences::setWebSQLEnabled):
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Tools:
- DumpRenderTree/TestOptions.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
- DumpRenderTree/win/DumpRenderTree.cpp:
(setWebPreferencesForTestOptions):
- 9:05 AM Changeset in webkit [254855] by
-
- 2 edits in trunk/Tools
[ews] Add build and layout-test steps for commit-queue in new ews
https://bugs.webkit.org/show_bug.cgi?id=206510
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/factories.py:
- 8:12 AM Changeset in webkit [254854] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Gardening, mark remote-playback tests as failure
https://bugs.webkit.org/show_bug.cgi?id=206529
Unreviewed gardening.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 8:07 AM Changeset in webkit [254853] by
-
- 7 edits in trunk/Source/WebCore
[LFC][Integration] Use InlineFormattingContext directly
https://bugs.webkit.org/show_bug.cgi?id=206526
Reviewed by Zalan Bujtas.
Stop using LayoutContext (which is more of a full tree layout thing) and use InlineFormattingContext directly instead.
This has a side benefit of not needing to setup a root display box.
- layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
- layout/blockformatting/BlockFormattingContext.h:
- layout/inlineformatting/InlineFormattingContext.h:
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::LineLayout):
(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::displayInlineContent const):
(WebCore::LayoutIntegration::LineLayout::prepareRootGeometryForLayout): Deleted.
- layout/integration/LayoutIntegrationLineLayout.h:
- layout/tableformatting/TableFormattingContext.h:
- 7:39 AM Changeset in webkit [254852] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] TestWebKitUserContentFilterStore is crashing
https://bugs.webkit.org/show_bug.cgi?id=206527
Patch by Alejandro G. Castro <alex@igalia.com> on 2020-01-21
Reviewed by Adrian Perez de Castro.
We are asserting looking for a category of error when converting
in the toGError function, but depending on the function called the
category can be different.
- UIProcess/API/glib/WebKitUserContentFilterStore.cpp:
(toGError):
(webkitUserContentFilterStoreSaveBytes): Moved the ASSERT to the
function that uses this category, the other functions calling
toGError were already ASSERTing the correct category.
- 7:38 AM Changeset in webkit [254851] by
-
- 2 edits in trunk/LayoutTests
Layout Test fast/xmlhttprequest/xmlhttprequest-multiple-sync-xhr-during-unload.html is failing
https://bugs.webkit.org/show_bug.cgi?id=206515
Unreviewed test gardening.
- platform/win/TestExpectations:
- 5:30 AM Changeset in webkit [254850] by
-
- 2 edits1 add in trunk/LayoutTests/imported/w3c
Fix fetch/api/policies/referrer-origin-worker.html
https://bugs.webkit.org/show_bug.cgi?id=206520
Patch by Rob Buis <rbuis@igalia.com> on 2020-01-21
Reviewed by Youenn Fablet.
Fix fetch/api/policies/referrer-origin-worker.html by adding
referrer-origin-worker.html.headers, which got lost in the
automated import process.
- web-platform-tests/fetch/api/policies/referrer-origin-worker-expected.txt:
- web-platform-tests/fetch/api/policies/referrer-origin-worker.html.headers: Added.
- 4:25 AM Changeset in webkit [254849] by
-
- 46 edits in trunk
Add support for scroll behavior relies on ScrollAnimation of the Web process
https://bugs.webkit.org/show_bug.cgi?id=204882
Reviewed by Frédéric Wang
Based on the patch by Frédéric Wang.
LayoutTests/imported/w3c:
Enable CSSOMViewSmoothScrollingEnabled on scroll behavior tests and update expectations.
- web-platform-tests/css/cssom-view/scroll-behavior-default-css-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-default-css.html:
- web-platform-tests/css/cssom-view/scroll-behavior-element-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-element.html:
- web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root.html:
- web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window.html:
- web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested.html:
- web-platform-tests/css/cssom-view/scroll-behavior-smooth-positions.html:
- web-platform-tests/css/cssom-view/scroll-behavior-subframe-root-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-subframe-root.html:
- web-platform-tests/css/cssom-view/scroll-behavior-subframe-window-expected.txt:
- web-platform-tests/css/cssom-view/scroll-behavior-subframe-window.html:
Source/WebCore:
This patch introduces a programmatic smooth scrolling in WebKit from the CSSOM View
specification [1]. To use this effect, web developers can pass a behavior parameter (auto,
smooth, or instant) to Element.scroll, Element.scrollTo, Element.scrollBy,
Element.scrollIntoView, Window.scroll, Window.scrollTo or Window.scrollBy [2]. When behavior
is auto, the instant/smooth characteristic is actually taken from the value of a new CSS
scroll-behavior property [3]. Both the new CSS and DOM behavior are protected by a runtime
flag.
[1] https://drafts.csswg.org/cssom-view
[2] https://drafts.csswg.org/cssom-view/#dictdef-scrolloptions
[3] https://drafts.csswg.org/cssom-view/#propdef-scroll-behavior
Tests: imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-default-css.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-element.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-smooth-positions.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-subframe-root.html
imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-subframe-window.html
- Sources.txt: Build ScrollAnimationSmooth.cpp on all platforms.
- SourcesGTK.txt: Remove ScrollAnimationSmooth.cpp since it is built on all platforms now.
- dom/Element.cpp:
(WebCore::Element::scrollIntoView): Pass scroll behavior, if any.
(WebCore::Element::scrollBy):
(WebCore::Element::scrollTo): Handle the case when scroll behavior is smooth.
(WebCore::Element::setScrollLeft): Handle the case when scroll behavior is smooth.
(WebCore::Element::setScrollTop): Handle the case when scroll behavior is smooth.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::scrollBy const):
(WebCore::DOMWindow::scrollTo const): Handle the case when scroll behavior is smooth.
The optimization of cancel (0, 0) scrolling is skipped if an animated scroll is in progress.
Otherwise, the previous scroll won't be stopped by a follow-up scroll.
- page/FrameView.cpp:
(WebCore::FrameView::setScrollPosition):
(WebCore::FrameView::scrollToOffsetWithAnimation): Start an animated scroll.
- page/FrameView.h:
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
- platform/ScrollAnimation.h:
(WebCore::ScrollAnimation::scroll): Function to animate scrolling to a specified position.
- platform/ScrollAnimationSmooth.cpp: Build this file on all platforms. Add a
smoothFactorForProgrammaticScroll parameter to slow down the smooth scrolling.
(WebCore::ScrollAnimationSmooth::scroll):
(WebCore::ScrollAnimationSmooth::updatePerAxisData): Scale the time parameters of the
animation so that it looks smoother.
- platform/ScrollAnimationSmooth.h: Declare the class on all platforms.
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::ScrollAnimator): Initialize animation member for programmatic scrolling.
(WebCore::ScrollAnimator::scrollToOffset): Animate scrolling to the specified position.
(WebCore::ScrollAnimator::cancelAnimations): Copy logic from ScrollAnimationSmooth.cpp.
(WebCore::ScrollAnimator::serviceScrollAnimations): Ditto.
(WebCore::ScrollAnimator::willEndLiveResize): Ditto.
(WebCore::ScrollAnimator::didAddVerticalScrollbar): Ditto.
(WebCore::ScrollAnimator::didAddHorizontalScrollbar): Ditto.
- platform/ScrollAnimator.h: New animation member for smooth programmatic scrolling.
(WebCore::ScrollAnimator::ScrollAnimator::cancelAnimations): Deleted.
(WebCore::ScrollAnimator::ScrollAnimator::serviceScrollAnimations): Deleted.
(WebCore::ScrollAnimator::ScrollAnimator::willEndLiveResize): Deleted.
(WebCore::ScrollAnimator::ScrollAnimator::didAddVerticalScrollbar): Deleted.
(WebCore::ScrollAnimator::ScrollAnimator::didAddHorizontalScrollbar): Deleted.
- platform/ScrollTypes.h: Add ScrollBehaviorStatus to indicate the status of scrolling.
- platform/ScrollView.cpp:
(WebCore::ScrollView::setScrollPosition): Follow the CSSOM View spec: If a scroll is in
progress, we interrupt it and continue the scroll call (even when we are at the final position).
- platform/ScrollView.h:
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollToOffsetWithAnimation):
(WebCore::ScrollableArea::setScrollOffsetFromInternals):
(WebCore::ScrollableArea::setScrollOffsetFromAnimation): To avoid iterate calling,
move the requestScrollPositionUpdate(position) checking out of setScrollOffsetFromAnimation().
- platform/ScrollableArea.h:
(WebCore::ScrollableArea::currentScrollBehaviorStatus const): Maintain currentScrollBehaviorStatus.
(WebCore::ScrollableArea::setScrollBehaviorStatus):
- platform/generic/ScrollAnimatorGeneric.cpp:
(WebCore::ScrollAnimatorGeneric::updatePosition):
- platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::cancelAnimations): Call parent member to handle programmatic scrolling.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::setScrollLeft): Add flag to indicate animated or not.
(WebCore::RenderBox::setScrollTop): Ditto.
(WebCore::RenderBox::setScrollPosition):
- rendering/RenderBox.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollToXPosition): Ditto.
(WebCore::RenderLayer::scrollToYPosition): Ditto.
(WebCore::RenderLayer::scrollToPosition):
(WebCore::RenderLayer::scrollToOffset): Follow the CSSOM View spec: If a scroll is in
progress, we interrupt it and continue the scroll call (even when we are at the final
position). It's ScrollBehaviorType::Instant scroll.
(WebCore::RenderLayer::requestScrollPositionUpdate):
(WebCore::RenderLayer::scrollToOffsetWithAnimation): Ditto. This is similar to scrollToOffset
but animates the scroll. It's ScrollBehaviorType::Smooth scroll.
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::scrollRectToVisible): Again don't do an early return if scroll is in
progress. We call scrollToOffsetWithAnimation instead of scrollToOffset when appropriate.
Note that this function may not work well for several nested scroll boxes with at least one
element with smooth behavior. It will handled in bug Follow.
- rendering/RenderLayer.h: Add scroll behavior to ScrollTectToVisibleOptions.
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::setScrollLeft): Add animated flag.
(WebCore::RenderListBox::setScrollTop): Ditto.
- rendering/RenderListBox.h:
- rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::setScrollLeft):
(WebCore::RenderTextControlSingleLine::setScrollTop):
- rendering/RenderTextControlSingleLine.h:
- testing/Internals.cpp:
(WebCore::Internals::unconstrainedScrollTo):
LayoutTests:
- platform/mac-wk1/TestExpectations: Skip these tests on WK1 as they don't work for now.
- 3:28 AM Changeset in webkit [254848] by
-
- 4 edits in trunk
[GTK][WPE] Enable WebGL by default
https://bugs.webkit.org/show_bug.cgi?id=205335
Reviewed by Adrian Perez de Castro.
Source/WebKit:
- UIProcess/API/glib/WebKitSettings.cpp:
(webkit_settings_class_init):
Tools:
Update the unit test.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
(testWebKitSettings):
- 3:15 AM Changeset in webkit [254847] by
-
- 4 edits in trunk
[GTK][WPE] Enable WebAudio by default
https://bugs.webkit.org/show_bug.cgi?id=205334
Reviewed by Adrian Perez de Castro.
Source/WebKit:
- UIProcess/API/glib/WebKitSettings.cpp:
(webkit_settings_class_init):
Tools:
Update the unit test.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
(testWebKitSettings):
- 1:41 AM Changeset in webkit [254846] by
-
- 3 edits in trunk/Source/JavaScriptCore
Rename JSPromiseFields abstract heap to JSInternalFields.
https://bugs.webkit.org/show_bug.cgi?id=206518
<rdar://problem/58751778>
Reviewed by Yusuke Suzuki.
This is because it is used for all internal fields, not just the ones in JSPromise.
- dfg/DFGAbstractHeap.h:
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- 12:03 AM Changeset in webkit [254845] by
-
- 2 edits in trunk/Source/WebKit
Log the destination of a load when hitting network process
https://bugs.webkit.org/show_bug.cgi?id=206422
Reviewed by Darin Adler.
- NetworkProcess/NetworkResourceLoader.cpp:
No change of behavior, adding more precise logging.
Jan 20, 2020:
- 11:21 PM Changeset in webkit [254844] by
-
- 2 edits8 adds in trunk/LayoutTests
[GTK] Gardening, update TestExpectations and baselines
https://bugs.webkit.org/show_bug.cgi?id=206501
Unreviewed gardening.
- platform/gtk/TestExpectations:
- platform/gtk/compositing/visibility/visibility-change-in-subframe-expected.txt: Added.
- platform/gtk/editing/input/scroll-to-edge-if-line-break-at-end-of-document-contenteditable-expected.txt: Added.
- platform/gtk/fast/block/basic/fieldset-stretch-to-legend-expected.txt: Added.
- platform/gtk/js/dom/navigator-maxtouchpoints-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt: Added.
- platform/gtk/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt: Added.
- 8:01 PM Changeset in webkit [254843] by
-
- 40 edits in trunk
Platform.h is out of control Part 8: Macros are used inconsistently
https://bugs.webkit.org/show_bug.cgi?id=206425
Reviewed by Darin Adler.
Source/bmalloc:
- bmalloc/BPlatform.h:
Update OS_EFFECTIVE_ADDRESS_WIDTH to match WTF definition, add needed OS macros.
Source/JavaScriptCore:
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::cacheFlush):
(JSC::ARM64Assembler::xOrSp):
(JSC::ARM64Assembler::xOrZr):
- assembler/ARM64Registers.h:
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::cacheFlush):
- assembler/ARMv7Registers.h:
- assembler/AssemblerCommon.h:
(JSC::isDarwin):
- b3/air/AirCCallingConvention.cpp:
- jit/ExecutableAllocator.h:
- jit/ThunkGenerators.cpp:
- jsc.cpp:
- runtime/MathCommon.cpp:
Use OS(DARWIN) more consistently for darwin level functionality.
- bytecode/CodeOrigin.h:
- runtime/JSString.h:
Update to use OS_CONSTANT.
- disassembler/ARM64/A64DOpcode.cpp:
- disassembler/ARM64Disassembler.cpp:
- disassembler/UDis86Disassembler.cpp:
- disassembler/UDis86Disassembler.h:
- disassembler/X86Disassembler.cpp:
- disassembler/udis86/udis86.c:
- disassembler/udis86/udis86_decode.c:
- disassembler/udis86/udis86_itab_holder.c:
- disassembler/udis86/udis86_syn-att.c:
- disassembler/udis86/udis86_syn-intel.c:
- disassembler/udis86/udis86_syn.c:
- interpreter/Interpreter.cpp:
- interpreter/Interpreter.h:
- interpreter/InterpreterInlines.h:
(JSC::Interpreter::getOpcodeID):
- llint/LowLevelInterpreter.cpp:
- tools/SigillCrashAnalyzer.cpp:
Switch to using ENABLE rather than USE for features internal to WebKit
Source/WTF:
Start addressing FIXMEs added to Platform.h (and helper files) during previous
cleanup work.
- Renames WTF_CPU_EFFECTIVE_ADDRESS_WIDTH to WTF_OS_CONSTANT_EFFECTIVE_ADDRESS_WIDTH, making it available via new macro OS_CONSTANT(...), and syncs bmalloc redefinition.
- Renames:
USE_LLINT_EMBEDDED_OPCODE_ID to ENABLE_LLINT_EMBEDDED_OPCODE_ID
USE_UDIS86 to ENABLE_UDIS86
USE_ARM64_DISASSEMBLER to ENABLE_ARM64_DISASSEMBLER
Enable is more appropriate here as these enable functionality within webkit.
- Removes undefs that are no longer needed due to only defining the macro once now.
- Removes dead defined(LP64) check after PLATFORM(MAC) macOS is always 64-bit these days.
- wtf/Packed.h:
(WTF::alignof):
- wtf/Platform.h:
- wtf/PlatformEnable.h:
- wtf/PlatformOS.h:
- wtf/WTFAssertions.cpp:
- wtf/text/StringCommon.h:
Tools:
- TestWebKitAPI/Tests/WTF/Packed.cpp:
(TestWebKitAPI::TEST):
Update to use OS_CONSTANT.
- 7:48 PM Changeset in webkit [254842] by
-
- 9 edits1 add in trunk
Remove own toString from NativeError prototype
https://bugs.webkit.org/show_bug.cgi?id=204629
Patch by Gus Caplan <me@gus.host> on 2020-01-20
Reviewed by Ross Kirsling.
NativeError prototypes are expected to inherit toString from
Error.prototype. See https://github.com/tc39/ecma262/issues/1794
for additional details.
JSTests:
- stress/nativeerror-prototype-tostring.js:
Source/JavaScriptCore:
- runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototypeBase::ErrorPrototypeBase):
(JSC::ErrorPrototypeBase::finishCreation):
(JSC::ErrorPrototype::ErrorPrototype):
(JSC::ErrorPrototype::create): Deleted.
(JSC::ErrorPrototype::finishCreation): Deleted.
- runtime/ErrorPrototype.h:
(JSC::ErrorPrototype::createStructure): Deleted.
- runtime/NativeErrorPrototype.cpp:
(JSC::NativeErrorPrototype::NativeErrorPrototype):
- runtime/NativeErrorPrototype.h:
LayoutTests:
- http/tests/security/regress-52192-expected.txt:
- http/tests/security/regress-52192.html:
- 6:54 PM Changeset in webkit [254841] by
-
- 9 edits6 adds in trunk
EXIF orientation is ignored for some CSS images
https://bugs.webkit.org/show_bug.cgi?id=203355
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-20
Reviewed by Simon Fraser.
Source/WebCore:
Unlike GraphicsContext::drawNativeImage(), GraphicsContext::drawPattern()
can't change the coordinates system before drawing the image to respect
the EXIF orientation. Drawing a pattern tries to fill the destination
rectangle with the image according to the GraphicsContext origin and the
direction of its axes. So we need to create temporary NativeImage with
respecting the EXIF orientation and then use it to draw the pattern.
Tests: fast/images/exif-orientation-background-image-no-repeat.html
fast/images/exif-orientation-background-image-repeat.html
fast/images/exif-orientation-border-image.html
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::nativeImageForCurrentFrameRespectingOrientation):
(WebCore::BitmapImage::drawPattern):
- platform/graphics/BitmapImage.h:
- platform/graphics/Image.h:
(WebCore::Image::nativeImage):
(WebCore::Image::nativeImageForCurrentFrameRespectingOrientation):
(WebCore::Image::nativeImageOfSize):
- platform/graphics/ImageBuffer.h:
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawPattern):
- platform/graphics/cg/NativeImageCG.cpp:
(WebCore::drawNativeImage):
- rendering/style/NinePieceImage.cpp:
(WebCore::NinePieceImage::paint const):
LayoutTests:
- fast/images/exif-orientation-background-image-no-repeat-expected.html: Added.
- fast/images/exif-orientation-background-image-no-repeat.html: Added.
- fast/images/exif-orientation-background-image-repeat-expected.html: Added.
- fast/images/exif-orientation-background-image-repeat.html: Added.
- fast/images/exif-orientation-border-image-expected.html: Added.
- fast/images/exif-orientation-border-image.html: Added.
- 5:48 PM Changeset in webkit [254840] by
-
- 2 edits in trunk/Source/WebCore
Update status of Resize Observer to "Supported In Preview"
https://bugs.webkit.org/show_bug.cgi?id=206513
Reviewed by Darin Adler.
No new tests. Just updating status.
- features.json: Update Resize Observer to "Supported In Preview"
- 5:35 PM Changeset in webkit [254839] by
-
- 47 edits in trunk
Unreviewed, rolling out r254807.
Breaks Apple internal builds.
Reverted changeset:
"Add support for scroll behavior relies on ScrollAnimation of
the Web process"
https://bugs.webkit.org/show_bug.cgi?id=204882
https://trac.webkit.org/changeset/254807
- 3:55 PM Changeset in webkit [254838] by
-
- 2 edits in trunk/Tools
REGRESSION(r254788): mozilla-tests.yaml/js1_5/Regress/regress-191633.js.mozilla fails
https://bugs.webkit.org/show_bug.cgi?id=206477
<rdar://problem/58714886>
Unreviewed.
In r232603 when we added test specific options, the implementation did not
clear the test specific options before parsing each test inside a yaml
file. It only worked for tests where we ran each js file inside a directory.
This patch makes it also work for yaml files.
- Scripts/run-jsc-stress-tests:
- 3:32 PM Changeset in webkit [254837] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] InlineFormattingContext::lineLayout should take a InlineItem range
https://bugs.webkit.org/show_bug.cgi?id=206507
<rdar://problem/58742468>
Reviewed by Antti Koivisto.
This is in preparation for being able to run inline layout on partial IFC content.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::nextWrapOpportunity):
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::close):
(WebCore::Layout::LineLayoutContext::nextContentForLine):
- layout/inlineformatting/LineLayoutContext.h:
- 1:21 PM Changeset in webkit [254836] by
-
- 42 edits5 deletes in trunk
Fix missing header guards and clean up empty files in WebCore, WebKitLegacy, WebKit, Tools
<https://webkit.org/b/206505>
Reviewed by Eric Carlson.
Source/WebCore:
- bindings/js/StructuredClone.h:
- bridge/npruntime_internal.h:
- editing/cocoa/AutofillElements.h:
- platform/graphics/FormatConverter.h:
- platform/graphics/ImageBufferData.h:
- platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h:
- platform/ios/wak/WebCoreThreadSystemInterface.h:
- platform/network/mac/WebCoreURLResponse.h:
- Add #pragma once statement.
- platform/cocoa/SystemVersion.h:
- platform/mac/WebNSAttributedStringExtras.h:
- Add @class declarations as hint that this header is only used by Objective-C[++] source files.
- platform/mediastream/libwebrtc/VideoToolBoxDecoderFactory.cpp: Remove.
- platform/mediastream/libwebrtc/VideoToolBoxDecoderFactory.h: Remove.
- platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp: Remove.
- platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h: Remove.
- Remove unused, empty files.
- platform/network/HTTPStatusCodes.h: Remove.
- Remove unused header.
Source/WebCore/PAL:
- pal/ios/QuickLookSoftLink.h:
- pal/spi/ios/SQLite3SPI.h:
- Add #pragma once statement.
Source/WebKit:
- Platform/IPC/Attachment.h:
- Fix "# pragma" formatting. (It functioned, but WebKit style doesn't indent macros like this.)
- Platform/ios/AccessibilityIOS.h:
- Shared/ShareSheetCallbackID.h:
- Shared/mac/SecItemShim.h:
- UIProcess/API/C/WKPageRenderingProgressEventsInternal.h:
- UIProcess/API/Cocoa/WKNavigationData.h:
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- UIProcess/API/Cocoa/WKWebArchive.h:
- Add #pragma once statement.
Source/WebKitLegacy:
- WebCoreSupport/WebViewGroup.h:
- Add #pragma once statement.
Source/WebKitLegacy/mac:
- Misc/WebKitStatisticsPrivate.h:
- Misc/WebLocalizableStrings.h: Modernize OBJC and cplusplus checks.
- Misc/WebTypesInternal.h:
- WebView/WebMediaPlaybackTargetPicker.h:
- Add #pragma once statement.
Source/WebKitLegacy/win:
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebContextMenuClient.h:
- WebCoreSupport/WebDesktopNotificationsDelegate.h:
- WebCoreSupport/WebDragClient.h:
- WebDocumentLoader.h:
- WebKitStatisticsPrivate.h:
- WebPreferenceKeysPrivate.h:
- Add #pragma once statement.
Tools:
- DumpRenderTree/TestNetscapePlugIn/TestObject.h:
- TestWebKitAPI/JavaScriptTest.h:
- TestWebKitAPI/Tests/WebCore/DFAHelpers.h:
- Add #pragma once statement.
- 1:00 PM Changeset in webkit [254835] by
-
- 4 edits in trunk/LayoutTests
inspector/heap/getRemoteObject.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=156077
<rdar://problem/25469998>
Reviewed by Darin Adler.
Instead of blindly assuming that the first object is the
windowglobal object, iterate all
the objects found byWI.HeapSnapshotProxy.prototype.instancesWithClassNameand check that
we see at least onewindowglobal object.
- inspector/heap/getRemoteObject.html:
- inspector/heap/getRemoteObject-expected.txt:
- platform/mac-wk2/TestExpectations:
- 12:51 PM Changeset in webkit [254834] by
-
- 4 edits in trunk/LayoutTests
REGRESSION (r250655?): [ Mac Debug ] inspector/runtime/promise-native-getter.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=206303
<rdar://problem/58612520>
Reviewed by Darin Adler.
Rework the test to not be reliant on real world timing.
- inspector/runtime/promise-native-getter.html:
- inspector/runtime/promise-native-getter-expected.txt:
- platform/mac/TestExpectations:
- 12:24 PM Changeset in webkit [254833] by
-
- 2 edits2 adds in trunk/LayoutTests
Add a test to verify that the callout bar appears after selecting a word
https://bugs.webkit.org/show_bug.cgi?id=206488
<rdar://problem/58661768>
Reviewed by Darin Adler.
- editing/selection/ios/show-callout-bar-after-selecting-word-expected.txt: Added.
- editing/selection/ios/show-callout-bar-after-selecting-word.html: Added.
Add the new layout test.
- resources/ui-helper.js:
(window.UIHelper.rectForMenuAction):
Wrap this UI script in its own function scope, such that it can be used multiple times in the same layout test.
- 12:17 PM Changeset in webkit [254832] by
-
- 10 edits4 deletes in trunk/Source
Fix missing header guards and clean up empty files in bmalloc, WTF, JavaScriptCore
<https://webkit.org/b/206481>
Reviewed by Darin Adler.
Source/bmalloc:
- bmalloc/PerThread.cpp: Remove empty file.
- bmalloc/ScopeExit.h: Add #pragma once.
Source/JavaScriptCore:
- dfg/DFGPrePostNumbering.cpp: Remove empty file.
- dfg/DFGPrePostNumbering.h: Remove empty file.
- runtime/OptionEntry.h: Remove empty file.
- API/JSCallbackObjectFunctions.h:
- b3/testb3.h:
- heap/IsoInlinedHeapCellType.h:
- wasm/WasmGeneratorTraits.h:
- Add #pragma once.
Source/WTF:
- wtf/cocoa/Entitlements.h:
- wtf/win/PathWalker.h:
- Add #pragma once.
- 10:07 AM Changeset in webkit [254831] by
-
- 3 edits in trunk/Tools
check-webkit-style: Improve header guard checks
<https://webkit.org/b/206480>
Reviewed by Darin Adler.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_for_header_guard):
- Add
file_path(filename) argument to check for config.h and *Prefix.h headers. - Use hints in header file to determine if this is a header file only used by Objective-C or not.
- Change #ifndef/#define check to use both lines instead of assuming a format for the macro.
- Emit new 'build/header_guard_missing' error.
(_process_lines):
- Pass
filenameargument to check_for_header_guard().
(CppChecker):
- Enable new 'build/header_guard_missing' check.
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTestBase.perform_header_guard_check):
(CppStyleTestBase.assert_header_guard):
- Move default
filenameargument from perform_header_guard_check() to assert_header_guard() so tests may pass in different values for header paths.
(CppStyleTest):
- Add tests for config.h, *Prefix.h headers.
- Update test for `build/header_guard' (legacy header guard) error.
- Update test for missing header guard so that it now expects a 'build/header_guard_missing' error message.
- Add tests for Objective-C headers with and without OBJC checks.
- 8:56 AM Changeset in webkit [254830] by
-
- 1 copy in releases/WPE WebKit/webkit-2.27.4
WPE WebKit 2.27.4
- 8:55 AM Changeset in webkit [254829] by
-
- 4 edits in trunk
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.27.4 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.27.4
- 8:17 AM Changeset in webkit [254828] by
-
- 12 edits2 adds in trunk
[WPE] Add WebKitRectangle, use it for WebKitWebView's SHOW_MENU signal
https://bugs.webkit.org/show_bug.cgi?id=206495
Reviewed by Carlos Garcia Campos.
Source/WebKit:
Add WebKitRectangle, a new boxed-type API containing information about
a simple rectangle consisting of integer coordinates. This would
correspond to types like GdkRectangle or cairo_rectangle_int_t.
Objects of this type are for now needed to inform the position and size
of the option menu. Theshow-menusignal signature is adjusted
accordingly.
No new tests -- the relevant test was updated.
- PlatformWPE.cmake:
- SourcesWPE.txt:
- UIProcess/API/glib/WebKitWebView.cpp:
(WebKitWebViewClient::showOptionMenu):
(webkit_web_view_class_init):
(webkitWebViewShowOptionMenu):
- UIProcess/API/glib/WebKitWebViewPrivate.h:
- UIProcess/API/wpe/WebKitPopupMenu.cpp:
(WebKit::WebKitPopupMenu::showPopupMenu):
- UIProcess/API/wpe/WebKitRectangle.cpp: Added.
(webkit_rectangle_copy):
(webkit_rectangle_free):
- UIProcess/API/wpe/WebKitRectangle.h: Added.
- UIProcess/API/wpe/WebKitWebView.h:
- UIProcess/API/wpe/WebKitWebViewClient.h:
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
- UIProcess/API/wpe/docs/wpe-docs.sgml:
Tools:
Update the TestOptionMenu test case for WPE now that a rectangle object
is also passed through to the signal handler.
- TestWebKitAPI/Tests/WebKitGLib/TestOptionMenu.cpp:
(OptionMenuTest::showOptionMenuCallback):
(OptionMenuTest::showOptionMenu):
- 8:06 AM Changeset in webkit [254827] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Add support for the rare case of revert
https://bugs.webkit.org/show_bug.cgi?id=206486
<rdar://problem/58720638>
Reviewed by Antti Koivisto.
This patch re-introduces the support for revert when a previous wrap position turns out to be the line end position.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::clearContent):
- layout/inlineformatting/InlineLineBuilder.h:
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::rebuildLineForRevert):
- layout/inlineformatting/LineLayoutContext.h:
- 7:52 AM Changeset in webkit [254826] by
-
- 3 edits in trunk/Source/WebKit
[GTK][WPE] InputMethodFilter: do not notify about focus in when only content type changed
https://bugs.webkit.org/show_bug.cgi?id=206502
Reviewed by Adrian Perez de Castro.
That's unbalancing the focus in/out notifications.
- UIProcess/API/glib/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::setContext): Always call notifyContentType().
(WebKit::InputMethodFilter::setState): Only call notifyFocusedIn() and notifyFocusedOut when there's a focus change.
(WebKit::InputMethodFilter::notifyContentType): Notify content type if changed.
(WebKit::InputMethodFilter::notifyFocusedIn): Move the content type notification to its own function.
- UIProcess/API/glib/InputMethodFilter.h:
- 7:43 AM Changeset in webkit [254825] by
-
- 2 edits in trunk/Source/WebCore
Invalid usage of ENABLE() before it's defined in WebCore/layout/integration/LayoutIntegrationBoxTree.cpp
https://bugs.webkit.org/show_bug.cgi?id=206500
Reviewed by Žan Doberšek.
No new tests needed.
- layout/integration/LayoutIntegrationBoxTree.cpp: Include "config.h"
before using the ENABLE() macro, to make sure that it gets defined.
- 7:20 AM Changeset in webkit [254824] by
-
- 3 edits in trunk/LayoutTests
[GTK] Gardening, remove expected to fail but pass
https://bugs.webkit.org/show_bug.cgi?id=206493
Unreviewed gardening.
- platform/gtk/TestExpectations:
- 7:07 AM Changeset in webkit [254823] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION: ( r254256 ) [ Mojave wk2 ] http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206437
<rdar://problem/58692880>
Reviewed by Eric Carlson.
Hypothesis from flakiness is that, in GPUProcess, the call to stopRecording is not synchronously followed by a call to fetchData.
If too much time happened between the two calls, stopRecording will trigger setting m_isStopped and m_hasStartedWriting to false.
Any further call to fetchData will then fail.
To circumvent this issue, we add a flag m_isStopping.
If we are stopping, the completionHandler to fetchData call is delayed until stopRecording is fully finished.
When stopping will be finished, the completionHandler will send back the data.
This also allows to read the file in a background thread.
No new tests, this should unflake the flaky test.
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
(WebCore::MediaRecorderPrivateWriter::stopRecording):
(WebCore::MediaRecorderPrivateWriter::fetchData):
- 6:46 AM Changeset in webkit [254822] by
-
- 14 edits in trunk
[GTK][WPE] Also include the selection index in webkit_input_method_context_notify_surrounding()
https://bugs.webkit.org/show_bug.cgi?id=206497
Reviewed by Adrian Perez de Castro.
Source/WebKit:
Input methods also want to know the selection.
- Shared/EditorState.cpp:
(WebKit::EditorState::PostLayoutData::encode const): Encode paragraphContextSelectionPosition.
(WebKit::EditorState::PostLayoutData::decode): Decode paragraphContextSelectionPosition.
- Shared/EditorState.h: Add paragraphContextSelectionPosition.
- UIProcess/API/glib/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::notifySurrounding): Also include the selection index.
- UIProcess/API/glib/InputMethodFilter.h:
- UIProcess/API/glib/WebKitInputMethodContext.cpp:
(webkit_input_method_context_notify_surrounding):
- UIProcess/API/gtk/WebKitInputMethodContext.h:
- UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:
(webkitInputMethodContextImplGtkNotifySurrounding): Ignore the selection index, since GtkIMContext doesn't
support it.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseUpdateTextInputState): Pass paragraphContextSelectionPosition to InputMethodFilter::notifySurrounding().
- UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::selectionDidChange): Ditto.
- UIProcess/API/wpe/WebKitInputMethodContext.h:
- WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::platformEditorState const): Get the selection index too.
Tools:
Add new test case to check the selection index when there's a selection.
- TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:
(webkitInputMethodContextMockNotifySurrounding):
(webkitInputMethodContextMockReset):
(testWebKitInputMethodContextSurrounding):
- 6:43 AM Changeset in webkit [254821] by
-
- 4 edits in trunk
Implement "create a potential-CORS request"
https://bugs.webkit.org/show_bug.cgi?id=205326
Patch by Rob Buis <rbuis@igalia.com> on 2020-01-20
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Update improved test result.
- web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin-network-expected.txt:
Source/WebCore:
The storedCredentialsPolicy should be calculated using a same origin
check when credentials are computed as same-origin.
Test: imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin-network.html
- loader/CrossOriginAccessControl.cpp:
(WebCore::createPotentialAccessControlRequest):
- 6:28 AM Changeset in webkit [254820] by
-
- 9 edits in trunk/JSTests
Skip tests when there is no JIT build on ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=206496
Unreviewed gardening.
- microbenchmarks/bit-test-constant.js:
- microbenchmarks/bit-test-nonconstant.js:
- microbenchmarks/memcpy-typed-loop-large.js:
- microbenchmarks/memcpy-typed-loop-small.js:
- microbenchmarks/mul-immediate-sub.js:
- stress/dont-range-based-iterate-vector-that-is-mutated.js:
- stress/int8-repeat-in-then-out-of-bounds.js:
- stress/sampling-profiler-richards.js:
- 3:24 AM Changeset in webkit [254819] by
-
- 14 edits6 adds1 delete in trunk
[WPE] Expose the WebKitOptionMenu APIs
https://bugs.webkit.org/show_bug.cgi?id=206287
Source/WebKit:
Reviewed by Carlos Garcia Campos.
Enable the GLib-based API covering option menu functionality for WPE.
Most of this can be shared with the GTK port. The only difference is in
the two additional parameters emitted on the WebKitWebView's "show-menu"
signal (GdkEvent and GdkRectangle) that WPE doesn't support at the
moment. The rectangle information will be possible to emit in the near
future once a usable API type is available for this information.
The WebKitPopupMenu implementation for WPE would only work with the
GLib-based API. To avoid using it with other APIs, this is implemented
only on the WebKitWebViewClient interface (renamed from 'WebViewClient'
and its declaration moved into a separate header file) inheriting from
API::ViewClient.
The relevant API test is enabled for WPE.
- PlatformWPE.cmake:
- SourcesWPE.txt:
- UIProcess/API/glib/WebKitWebView.cpp:
(WebKitWebViewClient::WebKitWebViewClient):
(WebKitWebViewClient::showOptionMenu):
(WebKitWebViewClient::handleDownloadRequest):
(WebKitWebViewClient::frameDisplayed):
(WebKitWebViewClient::willStartLoad):
(WebKitWebViewClient::didChangePageID):
(WebKitWebViewClient::didReceiveUserMessage):
(webkitWebViewConstructed):
(webkit_web_view_class_init):
(webkitWebViewShowOptionMenu):
- UIProcess/API/glib/WebKitWebViewPrivate.h:
- UIProcess/API/wpe/APIViewClient.h:
(API::ViewClient::isGLibBasedAPI):
- UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::createPopupMenuProxy):
- UIProcess/API/wpe/WPEView.h:
(WKWPE::View::client const):
- UIProcess/API/wpe/WebKitOptionMenu.h: Added.
- UIProcess/API/wpe/WebKitOptionMenuItem.h: Added.
- UIProcess/API/wpe/WebKitPopupMenu.cpp: Added.
(WebKit::WebKitPopupMenu::create):
(WebKit::WebKitPopupMenu::WebKitPopupMenu):
(WebKit::menuCloseCallback):
(WebKit::WebKitPopupMenu::showPopupMenu):
(WebKit::WebKitPopupMenu::hidePopupMenu):
(WebKit::WebKitPopupMenu::cancelTracking):
(WebKit::WebKitPopupMenu::selectItem):
(WebKit::WebKitPopupMenu::activateItem):
- UIProcess/API/wpe/WebKitPopupMenu.h: Added.
- UIProcess/API/wpe/WebKitWebView.h:
- UIProcess/API/wpe/WebKitWebViewClient.h: Added.
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
- UIProcess/API/wpe/webkit.h:
Tools:
Move TestOptionMenu under the WebKitGLib directory, adding the
appropriate adjustments for the WPE variant of the API
- TestWebKitAPI/Tests/WebKitGLib/TestOptionMenu.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKitGtk/TestOptionMenu.cpp.
(OptionMenuTest::OptionMenuTest):
(OptionMenuTest::~OptionMenuTest):
(OptionMenuTest::destroyMenu):
(OptionMenuTest::showOptionMenuCallback):
(OptionMenuTest::menuCloseCallback):
(OptionMenuTest::showOptionMenu):
(OptionMenuTest::clickAtPositionAndWaitUntilOptionMenuShown):
(OptionMenuTest::close):
(OptionMenuTest::activateItem):
(OptionMenuTest::selectItem):
(testOptionMenuSimple):
(testOptionMenuGroups):
(testOptionMenuActivate):
(testOptionMenuSelect):
(beforeAll):
(afterAll):
- TestWebKitAPI/glib/CMakeLists.txt:
- TestWebKitAPI/glib/PlatformGTK.cmake:
- 2:59 AM Changeset in webkit [254818] by
-
- 5 edits in trunk
Make isValidUserAgentHeaderValue GLib only
https://bugs.webkit.org/show_bug.cgi?id=206475
Patch by Rob Buis <rbuis@igalia.com> on 2020-01-20
Reviewed by Youenn Fablet.
Source/WebCore:
The function isValidUserAgentHeaderValue is only used
by code that requires GLib, so move it behind USE(GLIB).
- platform/network/HTTPParsers.cpp:
- platform/network/HTTPParsers.h:
Tools:
Make the unit test that tests isValidUserAgentHeaderValue
depend on USE(GLIB) as well.
- TestWebKitAPI/Tests/WebCore/HTTPParsers.cpp:
- 2:39 AM Changeset in webkit [254817] by
-
- 26 edits3 copies10 adds in trunk/Source
Add support for MediaStream video track rendering in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=206286
Reviewed by Eric Carlson.
Source/WebCore:
Add a way for WebKit layer to create its own specific SampleBufferDisplayLayer.
WebKit layer can set a function pointer that will be used to create SampleBufferDisplayLayer.
If none is provided, LocalSampleBufferDisplayLayer is used.
Update MediaPlayerPrivateMediaStreamAVFObjC to monitor itself its root layer bounds change.
Conversely, LocalSampleBufferDisplayLayer no longer monitors its root layer bounds change.
This removes the need for SampleBufferDisplayLayer::Client to be notified of bounds change.
We add an API to update the root layer bounds of a LocalSampleBufferDisplayLayer as well,
this API being used by GPUProcess to mirror changes done to WebProcess root layer.
WebRTC incoming video tracks do not have presentation timestamps so we mark them as kCMSampleAttachmentKey_DisplayImmediately.
This is currently lost when doing IPC from WebProcess to NetworkProcess. Add this information for every enqueued sample in LocalSampleBufferDisplayLayer.
We might want in the future to serialize all attachments of the sample.
Manually tested.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/avfoundation/SampleBufferDisplayLayer.cpp: Added.
(WebCore::SampleBufferDisplayLayer::setCreator):
(WebCore::SampleBufferDisplayLayer::create):
- platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
(-[WebAVSampleBufferStatusChangeListener invalidate]):
(-[WebAVSampleBufferStatusChangeListener start]):
(-[WebAVSampleBufferStatusChangeListener stop]):
(-[WebAVSampleBufferStatusChangeListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::LocalSampleBufferDisplayLayer::LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::~LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::updateBoundsAndPosition):
(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(-[WebRootSampleBufferBoundsChangeListener initWithParent:]):
(-[WebRootSampleBufferBoundsChangeListener dealloc]):
(-[WebRootSampleBufferBoundsChangeListener invalidate]):
(-[WebRootSampleBufferBoundsChangeListener start]):
(-[WebRootSampleBufferBoundsChangeListener stop]):
(-[WebRootSampleBufferBoundsChangeListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayer const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayerBoundsDidChange):
- platform/graphics/cg/PDFDocumentImage.cpp:
Unified build fix.
Source/WebKit:
Implement WebProcess SampleBufferDisplayLayer and GPUProcess RemoteSampleBufferDisplayLayer.
RemoteSampleBufferDisplayLayer is a wrapper around LocalSampleBufferDisplayLayer.
A synchronous IPC is used at creation time of the layer to make sure we have a shared layer synchronously.
Future refactoring should allow to remove that constraint as done in regular video playing.
Override SampleBufferDisplayLayer create function pointer when rendering is to be done in GPUProcess.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::sampleBufferDisplayLayerManager):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):
(WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp: Added.
(WebKit::RemoteSampleBufferDisplayLayer::create):
(WebKit::RemoteSampleBufferDisplayLayer::RemoteSampleBufferDisplayLayer):
(WebKit::RemoteSampleBufferDisplayLayer::~RemoteSampleBufferDisplayLayer):
(WebKit::RemoteSampleBufferDisplayLayer::contextID):
(WebKit::RemoteSampleBufferDisplayLayer::bounds const):
(WebKit::RemoteSampleBufferDisplayLayer::updateDisplayMode):
(WebKit::RemoteSampleBufferDisplayLayer::updateAffineTransform):
(WebKit::RemoteSampleBufferDisplayLayer::updateBoundsAndPosition):
(WebKit::RemoteSampleBufferDisplayLayer::flush):
(WebKit::RemoteSampleBufferDisplayLayer::flushAndRemoveImage):
(WebKit::RemoteSampleBufferDisplayLayer::enqueueSample):
(WebKit::RemoteSampleBufferDisplayLayer::clearEnqueuedSamples):
(WebKit::RemoteSampleBufferDisplayLayer::messageSenderConnection const):
(WebKit::RemoteSampleBufferDisplayLayer::sampleBufferDisplayLayerStatusDidChange):
(WebKit::RemoteSampleBufferDisplayLayer::streamTime const):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h: Added.
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in: Added.
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp: Added.
(WebKit::RemoteSampleBufferDisplayLayerManager::RemoteSampleBufferDisplayLayerManager):
(WebKit::RemoteSampleBufferDisplayLayerManager::didReceiveLayerMessage):
(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):
(WebKit::RemoteSampleBufferDisplayLayerManager::releaseLayer):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h: Added.
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.messages.in: Added.
- Scripts/webkit/messages.py:
- Shared/WebCoreArgumentCoders.h:
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<CGRect>::encode):
(IPC::ArgumentCoder<CGRect>::decode):
(IPC::ArgumentCoder<CGSize>::encode):
(IPC::ArgumentCoder<CGSize>::decode):
(IPC::ArgumentCoder<CGPoint>::encode):
(IPC::ArgumentCoder<CGPoint>::decode):
(IPC::ArgumentCoder<CGAffineTransform>::encode):
(IPC::ArgumentCoder<CGAffineTransform>::decode):
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::sampleBufferDisplayLayerManager):
(WebKit::GPUProcessConnection::didReceiveMessage):
- WebProcess/GPU/GPUProcessConnection.h:
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::updatePreferences):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp: Added.
(WebKit::SampleBufferDisplayLayer::create):
(WebKit::SampleBufferDisplayLayer::SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::~SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::didFail const):
(WebKit::SampleBufferDisplayLayer::updateDisplayMode):
(WebKit::SampleBufferDisplayLayer::bounds const):
(WebKit::SampleBufferDisplayLayer::updateAffineTransform):
(WebKit::SampleBufferDisplayLayer::updateBoundsAndPosition):
(WebKit::SampleBufferDisplayLayer::flush):
(WebKit::SampleBufferDisplayLayer::flushAndRemoveImage):
(WebKit::SampleBufferDisplayLayer::enqueueSample):
(WebKit::SampleBufferDisplayLayer::clearEnqueuedSamples):
(WebKit::SampleBufferDisplayLayer::rootLayer):
(WebKit::SampleBufferDisplayLayer::setDidFail):
(WebKit::SampleBufferDisplayLayer::boundsChanged):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h: Added.
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.messages.in: Added.
- WebProcess/GPU/webrtc/SampleBufferDisplayLayerIdentifier.h: Added.
- WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.cpp: Added.
(WebKit::SampleBufferDisplayLayerManager::didReceiveLayerMessage):
(WebKit::SampleBufferDisplayLayerManager::createLayer):
(WebKit::SampleBufferDisplayLayerManager::addLayer):
(WebKit::SampleBufferDisplayLayerManager::removeLayer):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.h: Added.
- WebProcess/WebProcess.h:
- 1:49 AM Changeset in webkit [254816] by
-
- 2 edits6 moves in trunk/LayoutTests
[css-grid] Import grid-align-content-distribution tests to WebKit
https://bugs.webkit.org/show_bug.cgi?id=205926
Patch by Rossana Monteriso <rmonteriso@igalia.com> on 2020-01-20
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:
Add align-content-distribution tests, checked and adapted to the WPT project,
to the css-grid/alignment folder for imported tests inside WebKit.
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-lr-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-rl-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-lr.html:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-rl.html:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution.html:
LayoutTests:
Remove align-content-distribution tests that are being replaced by newer tests, adapted to the WPT project and imported
to the corresponding css-grid folder inside WebKit.
- fast/css-grid-layout/grid-align-content-distribution-expected.txt: Removed.
- fast/css-grid-layout/grid-align-content-distribution-vertical-lr-expected.txt: Removed.
- fast/css-grid-layout/grid-align-content-distribution-vertical-rl-expected.txt: Removed.
- fast/css-grid-layout/grid-align-content-distribution.html: Removed.
- fast/css-grid-layout/grid-align-content-distribution-vertical-lr.html: Removed.
- fast/css-grid-layout/grid-align-content-distribution-vertical-rl.html: Removed.
- 1:44 AM Changeset in webkit [254815] by
-
- 3 edits in trunk/Source/ThirdParty/libwebrtc
Setting kVTCompressionPropertyKey_DataRateLimits on RTCVideoEncoderH264 fails
https://bugs.webkit.org/show_bug.cgi?id=206402
Reviewed by Eric Carlson.
Add helper routine dedicated to setting VTB/VCP array value properties.
Logging shows the bitrate is then set appropriately.
- Source/webrtc/sdk/objc/components/video_codec/helpers.cc:
- Source/webrtc/sdk/objc/components/video_codec/helpers.h:
- 1:23 AM Changeset in webkit [254814] by
-
- 4 edits4 adds in trunk
Video sound sometimes keeps playing in page cache
https://bugs.webkit.org/show_bug.cgi?id=206408
<rdar://problem/58654047>
Reviewed by Eric Carlson.
Source/WebCore:
In r253375, we made sure to enqueue calls that would trigger state changes, to ensure we would not start playing while in page cache.
But this delayed the order to pause the video when entering page cache.
Fix this by synchronously updating playing state when being suspended for page cache.
Test: http/tests/navigation/page-cache-video.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::pauseAndUpdatePlayStateImmediately):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
- html/HTMLMediaElement.h:
LayoutTests:
- http/tests/media/resources/sound_5.mp3: Added.
File comes from WPT and is 5 seconds long.
- http/tests/navigation/page-cache-video-expected.txt: Added.
- http/tests/navigation/page-cache-video.html: Added.
- http/tests/navigation/resources/page-cache-video-helper.html: Added.
- 1:19 AM Changeset in webkit [254813] by
-
- 5 edits3 adds in trunk/Source/WebCore
Introduce an abstract SampleBufferDisplayLayer
https://bugs.webkit.org/show_bug.cgi?id=206066
Reviewed by Eric Carlson.
Move use of display layers in MediaPlayerPrivateMediaStreamAVFObjC to a new class LocalSampleBufferDisplayLayer
that implements an interface named SampleBufferDisplayLayer.
A future patch will implement this interface by IPCing to GPUProcess.
We move both layers and handling of the sample queue to LocalSampleBufferDisplayLayer.
Contrary to previously, we do not call again enqueueVideoSample in case we enqueued a sample for later use in the display layer.
Instead, we directly render it, which should not change much since this is a realtime track and in the future the buffer will be in GPUProcess anyway.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/avfoundation/SampleBufferDisplayLayer.h: Added.
(WebCore::SampleBufferDisplayLayer::SampleBufferDisplayLayer):
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h: Added.
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm: Added.
(-[WebAVSampleBufferStatusChangeListener initWithParent:]):
(-[WebAVSampleBufferStatusChangeListener dealloc]):
(-[WebAVSampleBufferStatusChangeListener invalidate]):
(-[WebAVSampleBufferStatusChangeListener beginObservingLayers]):
(-[WebAVSampleBufferStatusChangeListener stopObservingLayers]):
(-[WebAVSampleBufferStatusChangeListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::runWithoutAnimations):
(WebCore::LocalSampleBufferDisplayLayer::LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::~LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::layerStatusDidChange):
(WebCore::LocalSampleBufferDisplayLayer::layerErrorDidChange):
(WebCore::LocalSampleBufferDisplayLayer::rootLayerBoundsDidChange):
(WebCore::LocalSampleBufferDisplayLayer::displayLayer):
(WebCore::LocalSampleBufferDisplayLayer::rootLayer):
(WebCore::LocalSampleBufferDisplayLayer::didFail const):
(WebCore::LocalSampleBufferDisplayLayer::updateDisplayMode):
(WebCore::LocalSampleBufferDisplayLayer::bounds const):
(WebCore::LocalSampleBufferDisplayLayer::updateAffineTransform):
(WebCore::LocalSampleBufferDisplayLayer::updateBoundsAndPosition):
(WebCore::LocalSampleBufferDisplayLayer::ensureLayers):
(WebCore::LocalSampleBufferDisplayLayer::flush):
(WebCore::LocalSampleBufferDisplayLayer::flushAndRemoveImage):
(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
(WebCore::LocalSampleBufferDisplayLayer::removeOldSamplesFromPendingQueue):
(WebCore::LocalSampleBufferDisplayLayer::addSampleToPendingQueue):
(WebCore::LocalSampleBufferDisplayLayer::clearEnqueuedSamples):
(WebCore::LocalSampleBufferDisplayLayer::requestNotificationWhenReadyForVideoData):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueCorrectedVideoSample):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferDisplayLayerStatusDidChange):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::applicationDidBecomeActive):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushRenderers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::displayLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setBufferingPolicy):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferDisplayLayerBoundsDidChange):
- 1:02 AM Changeset in webkit [254812] by
-
- 2 edits in trunk/Source/WebCore
ASSERT in case a service worker cannot be terminated in a timely manner
https://bugs.webkit.org/show_bug.cgi?id=206413
Reviewed by Alexey Proskuryakov.
No change of behavior, the process will still exit if it does not succeed in stopping a service worker.
In Debug, a crash log will be collected which will allow to help identifying other crashes.
- workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::serviceWorkerFailedToTerminate):
- 12:07 AM Changeset in webkit [254811] by
-
- 6 edits1 add in trunk
KeyedDecoderGeneric crashes when it accesses data with non-existing key
https://bugs.webkit.org/show_bug.cgi?id=205902
Patch by Takashi Komori <Takashi.Komori@sony.com> on 2020-01-20
Reviewed by Fujii Hironori.
Source/WebCore:
Add null check function for KeyedDecoderGeneric.
Test: TestWebKitAPI/Tests/WebCore/KeyedCodingGeneric.cpp
- platform/generic/KeyedDecoderGeneric.cpp:
(WebCore::KeyedDecoderGeneric::Dictionary::get):
(WebCore::KeyedDecoderGeneric::getPointerFromDictionaryStack):
(WebCore::KeyedDecoderGeneric::decodeSimpleValue):
(WebCore::KeyedDecoderGeneric::decodeBytes):
(WebCore::KeyedDecoderGeneric::decodeBool):
(WebCore::KeyedDecoderGeneric::decodeUInt32):
(WebCore::KeyedDecoderGeneric::decodeUInt64):
(WebCore::KeyedDecoderGeneric::decodeInt32):
(WebCore::KeyedDecoderGeneric::decodeInt64):
(WebCore::KeyedDecoderGeneric::decodeFloat):
(WebCore::KeyedDecoderGeneric::decodeDouble):
(WebCore::KeyedDecoderGeneric::decodeString):
(WebCore::KeyedDecoderGeneric::beginObject):
(WebCore::KeyedDecoderGeneric::beginArray):
- platform/generic/KeyedDecoderGeneric.h:
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/KeyedCoding.cpp: Added.
(TestWebKitAPI::checkDecodedBytes):
(TestWebKitAPI::TEST):
(TestWebKitAPI::testSimpleValue):
(TestWebKitAPI::KeyedCodingTestObject::encode):
(TestWebKitAPI::KeyedCodingTestObject::decode):
(TestWebKitAPI::KeyedCodingTestObject::KeyedCodingTestObject):
(TestWebKitAPI::KeyedCodingTestObject::equals const):
(TestWebKitAPI::operator==):