Timeline
Sep 28, 2019:
- 10:16 PM Changeset in webkit [250488] by
-
- 22 edits2 adds in trunk
Crash when removing the target element while animating its attributes
https://bugs.webkit.org/show_bug.cgi?id=202247
Reviewed by Darin Adler.
Source/WebCore:
If SMIL is animating a CSS attribute, there is a chance the animation is
ended while it is being started or progressed. For that reason, the member
SVGAnimateElementBase::m_animator has to be made RefPtr and it has to be
be protected in resetAnimatedType() and calculateAnimatedValue().
While SMILTimeContainer::updateAnimations() is calling progress() for the
scheduled animation elements, SMILTimeContainer::unschedule() might get
called if processing an animation causes events to be dispatched. For that
reason we need to copy the scheduled animations Vector before processing
them so we avoid changing the Vector while looping through its items.
Remove the guard SMILTimeContainer::m_preventScheduledAnimationsChanges
which was added in r129670 for debugging purposes. In some situations,
the scheduled animations map could be modified out from under some of the
functions of SMILTimeContainer.
Test: svg/animations/animate-and-remove-target-element.html
- svg/SVGAnimateElementBase.cpp:
(WebCore::SVGAnimateElementBase::resetAnimatedType):
(WebCore::SVGAnimateElementBase::calculateAnimatedValue):
- svg/SVGAnimateElementBase.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::createAnimator):
- svg/SVGElement.h:
- svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::schedule):
(WebCore::SMILTimeContainer::unschedule):
(WebCore::SMILTimeContainer::setElapsed):
(WebCore::SMILTimeContainer::sortByPriority):
(WebCore::SMILTimeContainer::processAnimations):
(WebCore::SMILTimeContainer::processScheduledAnimations):
(WebCore::SMILTimeContainer::updateAnimations):
(WebCore::SMILTimeContainer::~SMILTimeContainer): Deleted.
- svg/animation/SMILTimeContainer.h:
- svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::calculateNextProgressTime const):
- svg/properties/SVGAnimatedPropertyAccessorImpl.h:
- svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
- svg/properties/SVGAnimatedPropertyPairAccessorImpl.h:
- svg/properties/SVGAnimatedPropertyPairAnimator.h:
- svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h:
- svg/properties/SVGAttributeAnimator.h:
- svg/properties/SVGMemberAccessor.h:
(WebCore::SVGMemberAccessor::createAnimator const):
- svg/properties/SVGPrimitivePropertyAnimator.h:
(WebCore::SVGPrimitivePropertyAnimator::create):
- svg/properties/SVGPropertyAnimatorFactory.h:
(WebCore::SVGPropertyAnimatorFactory::createAnimator):
- svg/properties/SVGPropertyOwnerRegistry.h:
- svg/properties/SVGPropertyRegistry.h:
- svg/properties/SVGValuePropertyAnimatorImpl.h:
- svg/properties/SVGValuePropertyListAnimatorImpl.h:
LayoutTests:
- svg/animations/animate-and-remove-target-element-expected.txt: Added.
- svg/animations/animate-and-remove-target-element.html: Added.
- 6:59 PM Changeset in webkit [250487] by
-
- 6 edits in trunk/Source/WebCore
[LFC][IFC] Move horizontal alignment to Line
https://bugs.webkit.org/show_bug.cgi?id=202351
<rdar://problem/55810139>
Reviewed by Antti Koivisto.
Line should be able to finalize the run placement including horizontal alignment.
- layout/Verification.cpp:
(WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded):
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::LineInput::LineInput):
(WebCore::Layout::LineLayout::LineLayout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::computedIntrinsicWidth const):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::verticalAlignContent):
(WebCore::Layout::Line::horizontalAlignContent):
(WebCore::Layout::Line::appendInlineContainerStart):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendHardLineBreak):
(WebCore::Layout::Line::inlineItemContentHeight const):
- layout/inlineformatting/InlineLine.h:
- 5:48 PM Changeset in webkit [250486] by
-
- 2 edits in trunk/Source/JavaScriptCore
[GTK][WPE] Fix non-unified build issue caused by r250440
https://bugs.webkit.org/show_bug.cgi?id=202349
Reviewed by Mark Lam.
- dfg/DFGOSRExit.cpp: Add missing inclusion of the BytecodeUseDef.h header.
- 5:26 PM Changeset in webkit [250485] by
-
- 5 edits in trunk/Source/WebCore
[IDL] Support record<DOMString, *Callback> in bindings
https://bugs.webkit.org/show_bug.cgi?id=202326
Reviewed by Sam Weinig.
Currently, IDLRecord's converter assumes that the value type (template argument V) can be converted by passing
in only an ExecState and the JSValue, since it callsauto typedValue = Converter<V>::convert(state, subValue).
However, IDLCallbackFunctions additionally require the JSDOMGlobalObject (see JSDOMConverterCallbacks.h). This
results in a compilation error in generated code, when attempting to convert the record.
To fix this, teach Converter<IDLRecord<K, V>> to accept three arguments (the ExecState, value, and global
object) in the case where V requires the global object. Additionally, let the bindings generator know that
JSValue to native object conversion requires the global object, by returning whether or not the value type of
the IDL record requires the global object, in the case where the given type is a record.
- bindings/js/JSDOMConvertRecord.h:
- bindings/scripts/CodeGeneratorJS.pm:
(JSValueToNativeDOMConvertNeedsGlobalObject):
- bindings/scripts/test/JS/JSTestObj.cpp:
Test this scenario by augmenting TestObj.idl with record<DOMString, VoidCallback>.
(WebCore::jsTestObjStringVoidCallbackRecordAttrGetter):
(WebCore::jsTestObjStringVoidCallbackRecordAttr):
(WebCore::setJSTestObjStringVoidCallbackRecordAttrSetter):
(WebCore::setJSTestObjStringVoidCallbackRecordAttr):
- bindings/scripts/test/TestObj.idl:
- 4:58 PM Changeset in webkit [250484] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Line::InitialConstraints's heightAndBaseline should be optional
https://bugs.webkit.org/show_bug.cgi?id=202348
Reviewed by Antti Koivisto.
Vertical properties are undefined while computing the preferred width.
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::LineInput::LineInput):
(WebCore::Layout::InlineFormattingContext::InlineLayout::computedIntrinsicWidth const):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Line):
- layout/inlineformatting/InlineLine.h:
- 2:38 PM Changeset in webkit [250483] by
-
- 3 edits in trunk/Source/WebCore
[Experiment][iOS] Add temporary HTTP header to distinguish iPads for requests to Google
https://bugs.webkit.org/show_bug.cgi?id=202335
<rdar://problem/55790994>
Reviewed by Maciej Stachowiak.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
- platform/network/HTTPHeaderNames.in:
- 7:30 AM Changeset in webkit [250482] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Line::Box should have a const public interface
https://bugs.webkit.org/show_bug.cgi?id=202336
<rdar://problem/55798628>
Reviewed by Antti Koivisto.
Clean up Line::Box interface.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::close):
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::displayRun const):
(WebCore::Layout::Line::Run::isVisuallyEmpty const):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::displayRun): Deleted.
- 12:32 AM Changeset in webkit [250481] by
-
- 1 delete in releases/Apple/iOS 13.1.1
Removed the iOS 13.1.1 release tag.
- 12:30 AM Changeset in webkit [250480] by
-
- 8 copies1 add in releases/Apple/iOS 13.1.1
Added a tag for iOS 13.1.1.
Sep 27, 2019:
- 8:40 PM Changeset in webkit [250479] by
-
- 9 edits1 add in trunk
[JSC] Keep JSString::value(ExecState*)'s result as String instead of
const String&
https://bugs.webkit.org/show_bug.cgi?id=202330
Reviewed by Saam Barati.
JSTests:
- stress/to-lower-case-gc-stress.js: Added.
Source/JavaScriptCore:
In toLocaleLowerCase and toLocaleUpperCase, we get
const String&from JSString* and use it.
But if this string is newly created one in toLocaleLowerCase and toLocaleUpperCase (like, passing a number, and number.toString() is called
in C++), after gettingconst String&, our C++ code potentially does not have any reference to the owner of thisconst String&. So, this
JSString* can be collected by GC, whileconst String&is used. This makesconst String&destroyed, and causes crash.
In this patch, we receive it as
Stringinstead ofconst String&to ref it. This ensures that this string is live even if the owner is collected.
I grepped the source code and make this changes conservatively to places which looks dangerous. And I added error checks more after callingvalue(exec).
In this patch, I didn't introduce the change like that:
JSString::value(ExecState*)returnsStringinstead ofconst String&. Some of places are
really performance sensitive and we want to use the current behavior when we can ensure the owners are alive. We could figure out these points, and we
can change the default behavior ofJSString::valuefunction to returningString. But for now, I plan it as a future work.
- dfg/DFGOperations.cpp:
- jsc.cpp:
(GlobalObject::moduleLoaderImportModule):
- runtime/DateConstructor.cpp:
(JSC::constructDate):
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::equalSlowCaseInline):
- runtime/RegExpMatchesArray.h:
(JSC::createRegExpMatchesArray):
- runtime/StringPrototype.cpp:
(JSC::toLocaleCase):
(JSC::stringProtoFuncToLocaleLowerCase):
(JSC::stringProtoFuncToLocaleUpperCase):
- tools/JSDollarVM.cpp:
(JSC::functionCreateBuiltin):
- 6:21 PM Changeset in webkit [250478] by
-
- 4 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r250441. rdar://problem/55801089
[iOS] Vimeo fails to AirPlay in desktop mode
https://bugs.webkit.org/show_bug.cgi?id=202322
Reviewed by Eric Carlson.
Add a Quirk which opts Vimeo out of the preload=auto restriction, and allows their
second video element containing a HLS stream to correctly start AirPlaying when the
system route changes.
- html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::finishInitialization):
- page/Quirks.cpp: (WebCore::Quirks::needsPreloadAutoQuirk const):
- page/Quirks.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250441 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:20 PM Changeset in webkit [250477] by
-
- 2 edits in branches/safari-608-branch/Source/JavaScriptCore
Cherry-pick r250440. rdar://problem/55800893
OSR exit shouldn't bother updating get_by_id array profiles that have changed modes
https://bugs.webkit.org/show_bug.cgi?id=202324
<rdar://problem/52669110>
Reviewed by Yusuke Suzuki.
This is an optimization that avoids polluting the array profile.
- dfg/DFGOSRExit.cpp: (JSC::DFG::OSRExit::executeOSRExit): (JSC::DFG::OSRExit::compileExit):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:20 PM Changeset in webkit [250476] by
-
- 3 edits2 adds in branches/safari-608-branch
Cherry-pick r250432. rdar://problem/55801091
[iOS]: When inserting a photo and then inserting auto-corrected text, the photo is removed
https://bugs.webkit.org/show_bug.cgi?id=202294
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-27
Reviewed by Wenson Hsieh.
Source/WebKit:
WebPage::applyAutocorrectionInternal() calls wordRangeFromPosition() to
calculate the range of the word to be replaced with the auto-corrected
word. But if the text of the range does not match the original text,
applyAutocorrectionInternal() tries to correct the range by moving it
forward such that the length of the text range matches the length of the
original text.
Another case, which should correct the range also, is: the range does not
have a text but it is not collapsed. In this case, we should set the range
back to the selection range so non-text nodes is removed.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applyAutocorrectionInternal):
LayoutTests:
- fast/events/ios/autocorrect-after-image-expected.txt: Added.
- fast/events/ios/autocorrect-after-image.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:00 PM Changeset in webkit [250475] by
-
- 1 copy in tags/Safari-608.2.40.1.1
Tag Safari-608.2.40.1.1.
- 5:59 PM Changeset in webkit [250474] by
-
- 1 delete in tags/Safari-608.2.40.1.1
Delete tag.
- 5:55 PM Changeset in webkit [250473] by
-
- 1 copy in tags/Safari-608.2.30.1.1
Tag Safari-608.2.30.1.1.
- 5:49 PM Changeset in webkit [250472] by
-
- 9 edits in branches/safari-608.2.40.1-branch/Source/WebKit
Perform changes to match Safari-608.2.11.1.9 content.
This reverts commit r250166.
- 5:36 PM Changeset in webkit [250471] by
-
- 2 edits in branches/safari-608.2.30.1-branch/Source/WebCore
Cherry-pick r250459. rdar://problem/55797569
[Win] Crash under FontCache::lastResortFallbackFont
https://bugs.webkit.org/show_bug.cgi?id=202325
<rdar://problem/47856730>
Reviewed by Brent Fulgham.
As demonstrated by crash reports, there seems to be cases where we are not able to create a last resort fallback font
on Windows. If all attempts to create a fallback font fail, create a font from the default UI font.
No new tests. I have not been able to reproduce this issue.
- platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::lastResortFallbackFont):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250459 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:34 PM Changeset in webkit [250470] by
-
- 9 edits in branches/safari-608.2.30.1-branch/Source/WebKit
Perform changes to match Safari-608.2.11.1.9 content.
This commit reverts r250166.
- 5:22 PM Changeset in webkit [250469] by
-
- 1 copy in tags/Safari-608.2.40.1.1
Tag Safari-608.2.40.1.1.
- 4:51 PM Changeset in webkit [250468] by
-
- 7 edits in branches/safari-608.2.40.1-branch/Source
Versioning.
- 4:41 PM Changeset in webkit [250467] by
-
- 1 copy in branches/safari-608.2.40.1-branch
New branch.
- 3:53 PM Changeset in webkit [250466] by
-
- 2 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r250459. rdar://problem/55797570
[Win] Crash under FontCache::lastResortFallbackFont
https://bugs.webkit.org/show_bug.cgi?id=202325
<rdar://problem/47856730>
Reviewed by Brent Fulgham.
As demonstrated by crash reports, there seems to be cases where we are not able to create a last resort fallback font
on Windows. If all attempts to create a fallback font fail, create a font from the default UI font.
No new tests. I have not been able to reproduce this issue.
- platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::lastResortFallbackFont):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250459 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:45 PM Changeset in webkit [250465] by
-
- 15 edits1 add in trunk/Websites/perf.webkit.org
Provide build request status description information on dashboard.
https://bugs.webkit.org/show_bug.cgi?id=199810
Reviewed by Ryosuke Niwa.
Add build request status description to show detailed information for a build and show it in dashboard.
Update SQL for existing instance:
ALTER TABLE build_requests ADD COLUMN IF NOT EXISTS request_status_description varchar(1024) DEFAULT NULL;
- ReadMe.md: Updated instructions for initializing a database to include running 'migrate-database.sql'.
- init-database.sql: Added request_status_description column.
- migrate-database.sql: A file stores migration SQL for existing instance.
- public/api/build-requests.php: Added support for updating request_status_description.
- public/include/build-requests-fetcher.php: Exposed
statusDescriptionto API. - public/v3/components/test-group-revision-table.js: Added UI for showing build request status detail.
(TestGroupRevisionTable.prototype._renderTable):
(TestGroupRevisionTable.prototype._buildDescriptionCell):
(TestGroupRevisionTable.cssTemplate):
- public/v3/components/warning-icon.js: Extended warning icon to be able to customize information on hover.
(WarningIcon):
(WarningIcon.prototype.render):
- public/v3/components/button-base.js: Added a instance method to set button title.
(ButtonBase.prototype.setButtonTitle):
- public/v3/models/build-request.js: Added 'statusDescription' field.
(BuildRequest):
(BuildRequest.prototype.updateSingleton):
(BuildRequest.prototype.statusDescription):
- server-tests/api-build-requests-tests.js: Fixed unit tests.
- server-tests/resources/mock-data.js:
(MockData.set mockTestSyncConfigWithSingleBuilder): Added 'status_description' in buildbot mock data.
(MockData.sampleBuildData):
- server-tests/resources/test-server.js:
(TestServer.prototype.initDatabase): Added code to execute 'migrate-database.sql' on initialization.
- server-tests/tools-sync-buildbot-integration-tests.js: Added unit tests.
- tools/js/buildbot-syncer.js: Added 'statusDescription' field to 'BuildbotBuildEntry'.
(BuildbotBuildEntry.prototype.initialize):
(BuildbotBuildEntry.prototype.statusDescription):
- tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype._pullBuildbotOnAllSyncers):
- unit-tests/buildbot-syncer-tests.js: Added test code for BuildbotBuildEntry.statusDescription.
- 3:42 PM Changeset in webkit [250464] by
-
- 13 edits2 adds in trunk
Pages using WebGLRenderingContext fail to enter the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=202318
<rdar://problem/55783612>
Reviewed by Tim Horton.
Source/WebCore:
Allow pages with a WebGLRenderingContext to enter the back/forward cache by updating the
implementation to use SuspendableTimers to fire JS events. This guarantees that no events
will be fired (and thus no JS will run) while in the page cache.
This was preventing some of the pages on weather.com and facebook.com from entering the
back/forward cache.
Test: fast/canvas/webgl/canvas-webgl-page-cache.html
- dom/DocumentEventQueue.cpp:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::canSuspendForDocumentSuspension const):
(WebCore::WebGLRenderingContextBase::suspend):
(WebCore::WebGLRenderingContextBase::resume):
(WebCore::WebGLRenderingContextBase::dispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedNotification):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedEvent):
- html/canvas/WebGLRenderingContextBase.h:
- page/DOMTimer.cpp:
(WebCore::DOMTimer::DOMTimer):
- page/DOMTimer.h:
- page/SuspendableTimer.cpp:
(WebCore::SuspendableTimerBase::SuspendableTimerBase):
(WebCore::SuspendableTimerBase::hasPendingActivity const):
(WebCore::SuspendableTimerBase::stop):
(WebCore::SuspendableTimerBase::suspend):
(WebCore::SuspendableTimerBase::resume):
(WebCore::SuspendableTimerBase::canSuspendForDocumentSuspension const):
(WebCore::SuspendableTimerBase::didStop):
(WebCore::SuspendableTimerBase::cancel):
(WebCore::SuspendableTimerBase::startRepeating):
(WebCore::SuspendableTimerBase::startOneShot):
(WebCore::SuspendableTimerBase::repeatInterval const):
(WebCore::SuspendableTimerBase::augmentFireInterval):
(WebCore::SuspendableTimerBase::augmentRepeatInterval):
(WebCore::SuspendableTimer::activeDOMObjectName const):
- page/SuspendableTimer.h:
Source/WebKitLegacy/win:
- WebView.cpp:
(WindowCloseTimer::WindowCloseTimer):
(WindowCloseTimer::contextDestroyed):
- WebView.h:
LayoutTests:
Add layout test coverage.
- fast/canvas/webgl/canvas-webgl-page-cache-expected.txt: Added.
- fast/canvas/webgl/canvas-webgl-page-cache.html: Added.
- 3:15 PM Changeset in webkit [250463] by
-
- 8 edits in trunk/Source
[GTK][WPE] Fixes for non-unified builds after r249714
https://bugs.webkit.org/show_bug.cgi?id=202304
Reviewed by Youenn Fablet.
Source/WebCore:
No new tests needed.
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp: Add missing inclusion of Frame.h
to make the compiler stop complaining about Frame being used without being defined.
- inspector/InspectorShaderProgram.h: Add missing inclusion of wtf/Variant.h, where
WTF::Monostate is defined; and prefixed the usage with its namespace.
Source/WebKit:
- NetworkProcess/NetworkLoadChecker.h: Add missing inclusion of the pal/SessionID.h header.
- NetworkProcess/NetworkResourceLoadMap.cpp: Add missing inclusion of the
NetworkResourceLoader.h header.
- UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:
(WKWebsiteDataStoreConfigurationCreate): Add missing namespace to usage of the
WebKit::IsPersistent::Yes value.
- UIProcess/WebPageProxy.cpp: Add missing inclusion of the LegacyGlobalSettings.h header.
- 3:15 PM Changeset in webkit [250462] by
-
- 8 edits2 adds in trunk
Support accessibility for <figure> element on iOS.
https://bugs.webkit.org/show_bug.cgi?id=202272
<rdar://problem/54789907>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-09-27
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/ios-simulator/figure-element.html
Added a role description for the <figure> element.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::roleDescription const):
Tools:
Implemented titleUIElement and roleDescription properties for <figure> elements on iOS.
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::titleUIElement):
(WTR::AccessibilityUIElement::roleDescription):
LayoutTests:
- accessibility/ios-simulator/figure-element-expected.txt: Added.
- accessibility/ios-simulator/figure-element.html: Added.
- 2:56 PM Changeset in webkit [250461] by
-
- 4 edits in trunk/Source/WebKit
Adopt new UIWebGeolocationPolicyDecider SPI to pass a view instead of a window
https://bugs.webkit.org/show_bug.cgi?id=202329
<rdar://problem/25963823>
Reviewed by Wenson Hsieh.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/WKGeolocationProviderIOS.mm:
(-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
- UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm:
(WebKit::decidePolicyForGeolocationRequestFromOrigin):
Switch to newer SPI that takes a UIView instead of a UIWindow, so that
UIWebGeolocationPolicyDecider can find the correct presenting view controller.
- 2:52 PM Changeset in webkit [250460] by
-
- 5 edits in trunk/Source
[iPadOS] Can’t use RalphLauren.com on iPad because hover menus don’t stay up
https://bugs.webkit.org/show_bug.cgi?id=202331
<rdar://problem/55629493>
Reviewed by Tim Horton.
Source/WebCore:
Unfortunately the top level menu items now are ARIA labelled as 'buttons' and that triggers the fast path on content observation.
This patch introduces a quirk on ralphLauren.com to ignore the ARIA labels when checking whether the target node should always click through.
- page/Quirks.cpp:
(WebCore::Quirks::shouldIgnoreAriaForFastPathContentObservationCheck const):
- page/Quirks.h:
Source/WebKit:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleSyntheticClick):
(WebKit::nodeTriggersFastPath): Deleted.
- 2:05 PM Changeset in webkit [250459] by
-
- 2 edits in trunk/Source/WebCore
[Win] Crash under FontCache::lastResortFallbackFont
https://bugs.webkit.org/show_bug.cgi?id=202325
<rdar://problem/47856730>
Reviewed by Brent Fulgham.
As demonstrated by crash reports, there seems to be cases where we are not able to create a last resort fallback font
on Windows. If all attempts to create a fallback font fail, create a font from the default UI font.
No new tests. I have not been able to reproduce this issue.
- platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::lastResortFallbackFont):
- 1:57 PM Changeset in webkit [250458] by
-
- 20 edits in trunk
Move shouldUseTestingNetworkSession from NetworkProcessCreationParameters to NetworkSessionCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=202327
Reviewed by Tim Horton.
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::ensureSession):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- NetworkProcess/curl/RemoteNetworkingContextCurl.cpp:
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
- NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
- NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
- UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:
(WKWebsiteDataStoreConfigurationSetPerOriginStorageQuota):
(WKWebsiteDataStoreConfigurationSetNetworkCacheSpeculativeValidationEnabled):
(WKWebsiteDataStoreConfigurationGetTestingSessionEnabled):
(WKWebsiteDataStoreConfigurationSetTestingSessionEnabled):
- UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::testingSessionEnabled const):
(WebKit::WebsiteDataStoreConfiguration::setTestingSessionEnabled):
Tools:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::websiteDataStore):
- 1:55 PM Changeset in webkit [250457] by
-
- 6 edits in trunk/Source/WebKit
Move legacy custom protocol registration from process pool to NetworkProcessProxy
https://bugs.webkit.org/show_bug.cgi?id=202315
Reviewed by Tim Horton.
Legacy custom protocol registration is a global thing, which is why it's legacy and we're trying to get rid of it.
In the meantime, we don't want it to be in the set of things the NetworkProcess depends on the WebProcessPool for, which should be an empty set.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::registerGlobalURLSchemeAsHavingCustomProtocolHandlers):
(WebKit::WebProcessPool::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers):
(WebKit::WebProcessPool::registerSchemeForCustomProtocol): Deleted.
(WebKit::WebProcessPool::unregisterSchemeForCustomProtocol): Deleted.
- UIProcess/WebProcessPool.h:
- 1:49 PM Changeset in webkit [250456] by
-
- 5 edits in trunk/Source/WebKit
Layout Test http/tests/cache-storage/cache-records-persistency.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=202323
Reviewed by Tim Horton.
This reverts most of r250351.
It turns out NetworkProcessProxy::addSession has some side effects in the UIProcess that are useful for NetworkProcess resumption after crashes. Let's keep that.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- 1:38 PM Changeset in webkit [250455] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r250397.
caused failure on iOS 13
Reverted changeset:
"REGRESSION: [ Catalina WK2 ] http/wpt/webauthn/public-key-
credential-create-success-u2f.https.html is failing"
https://bugs.webkit.org/show_bug.cgi?id=201620
https://trac.webkit.org/changeset/250397
- 1:25 PM Changeset in webkit [250454] by
-
- 4 edits in branches/safari-608-branch
Cherry-pick r250401. rdar://problem/55770702
ContextMenu on a link in an email no longer shows web preview
https://bugs.webkit.org/show_bug.cgi?id=201120
<rdar://54353617>
Reviewed by Wenson Hsieh.
Source/WebKit:
Only go down the image path if we are not also a link.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView continueContextMenuInteraction:]):
Tools:
Test context menus on a link that is also an image.
- TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm: (contextMenuWebViewDriver): (-[TestContextMenuImageWithoutConfigurationUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]): (-[TestContextMenuImageWithoutConfigurationUIDelegate webView:contextMenuWillPresentForElement:]): (-[TestContextMenuImageWithoutConfigurationUIDelegate webView:contextMenuForElement:willCommitWithAnimator:]): (-[TestContextMenuImageWithoutConfigurationUIDelegate webView:contextMenuDidEndForElement:]): (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250401 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [250453] by
-
- 4 edits4 adds in branches/safari-608-branch
Cherry-pick r250392. rdar://problem/55770703
[iOS 13] Tapping on a non-editable text selection should toggle callout bar visibility instead of clearing selection
https://bugs.webkit.org/show_bug.cgi?id=202254
<rdar://problem/54410263>
Reviewed by Megan Gardner.
Source/WebKit:
In iOS 13, tapping a text selection should toggle callout bar visibility (i.e. "selection commands" in UIKit).
This currently does not work for non-editable text, since the synthetic click gesture simultaneously fires
alongside the text interaction assistant's non-editable tap gesture, which dispatches a click to the page which
then clears the selection.
To remedy this and match platform behavior, we avoid recognizing clicks that occur over the text selection, but
only in the case where the bounding rect of the text selection doesn't cover a large portion of the visible
content rect of the web view. This ensures that the user doesn't get stuck in a state where it's impossible to
dismiss a very large text selection (e.g. after selecting all the content on the page).
Tests: editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html
editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text.html
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _shouldToggleSelectionCommandsAfterTapAt:]):
Check the last known selection rects (on _lastSelectionDrawingInfo) to see if the tapped point lies within at
least one of the selection rects.
(-[WKContentView gestureRecognizerShouldBegin:]):
LayoutTests:
- editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text-expected.txt: Added.
- editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html: Added.
Add a new layout test to verify that when tapping in a text selection that encompasses the entire page, we allow
the tap to dismiss the selection instead of toggling callout bar visibility.
- editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text-expected.txt: Added.
- editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text.html: Added.
Add another layout test to verify that when tapping inside a text selection, the callout bar is toggled, and
when tapping outside the selected text, the selection is dismissed.
- resources/ui-helper.js: (window.UIHelper.async.waitForSelectionToAppear): (window.UIHelper.async.waitForSelectionToDisappear):
New helper methods to wait for selection rects to appear or disappear.
(window.UIHelper):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [250452] by
-
- 2 edits in branches/safari-608-branch/Tools
Cherry-pick r250391. rdar://problem/55770728
TestWebKitAPI.WebKit.ReloadWithDifferingInitialScale is failing consistently
https://bugs.webkit.org/show_bug.cgi?id=202273
Reviewed by Aakash Jain.
The content width scaling limits added in r250361 prevent this test from scaling down the content width (2000px
wide) to fit the viewport (375px). To avoid this issue, change the content width from 2000px to 1500px, which is
still a very wide content width for a web page.
- TestWebKitAPI/Tests/WebKitCocoa/ReloadWithDifferingInitialScale.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [250451] by
-
- 2 edits in branches/safari-608-branch/Source/WebKitLegacy/win
Cherry-pick r250374. rdar://problem/55770710
Unreviewed build fix for Windows ports.
https://bugs.webkit.org/show_bug.cgi?id=202125
<rdar://problem/14944104>
- WebCoreSupport/WebEditorClient.h: Added missing subFrameScrollPositionChanged.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250374 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [250450] by
-
- 2 edits in trunk/LayoutTests
fast/images/async-image-multiple-clients-repaint.html
https://bugs.webkit.org/show_bug.cgi?id=202328
Unreviewed test gardening
- platform/ios/TestExpectations:
- 1:25 PM Changeset in webkit [250449] by
-
- 13 edits2 adds in branches/safari-608-branch
Cherry-pick r250365. rdar://problem/55770710
Update selections after scrolling for iframes and hide selections while iframes and overflow scrolls are scrolling.
https://bugs.webkit.org/show_bug.cgi?id=202125
Reviewed by Tim Horton.
Source/WebCore:
Test: editing/selection/ios/update-selection-after-iframe-scroll.html
When we end scrolling, make sure that iframes get a final update to ensure that the
selection is in the correct position. Pipe that to WebKit/UIProcess via
frame specific plath.
- loader/EmptyClients.cpp:
- page/EditorClient.h:
- page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
Source/WebKit:
Add additional calls into UIKit differentiate between main frame scrolling and overflow/iframe scrolling.
Add piping for iframe specific scrolling.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _willStartScrollingOrZooming]): (-[WKContentView _didEndScrollingOrZooming]):
- WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::subFrameScrollPositionChanged):
- WebProcess/WebCoreSupport/WebEditorClient.h:
- WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm: (WebKit::WebEditorClient::subFrameScrollPositionChanged):
Source/WebKitLegacy/mac:
Filling out unused functions needed for new fix.
- WebCoreSupport/WebEditorClient.h:
LayoutTests:
Test that an iframe selection is updated after a scroll is completed.
- editing/selection/ios/update-selection-after-iframe-scroll-expected.txt: Added.
- editing/selection/ios/update-selection-after-iframe-scroll.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250365 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [250448] by
-
- 5 edits2 adds in branches/safari-608-branch
Cherry-pick r250361. rdar://problem/55770728
Page temporarily jumps to an excessively small viewport scale while loading usatoday.com
https://bugs.webkit.org/show_bug.cgi?id=202224
<rdar://problem/52906640>
Reviewed by Tim Horton.
Source/WebCore:
On some pages (e.g. usatoday.com), the content width of the page temporarily becomes very large during page
load. This causes a couple of viewport scaling behaviors (notably, the existing shrink-to-fit heuristic in
ViewportConfiguration::initialScaleFromSize, as well as the new iPad-specific content-aware shrink-to-fit
heuristic in WebPage::immediatelyShrinkToFitContent) to cause the page to shrink down excessively in an attempt
to fit all the content to the viewport. This causes a very ugly flash as the page appears zoomed out initially
during page load, before zooming back in.
To fix this, we add some sanity checks to these viewport scaling heuristics. In ViewportConfiguration's
initialScaleFromSize method, in the codepath where an initial scale is not specified, we always scale to fit the
contents of the page; instead, detect the case where the content width is enormous (with a threshold arbitrarily
chosen to be 1920) and fall back to the scaling to fit the viewport's width, if such a width has been explicitly
set. This ensures that we avoid excessive shrinking in the case where content is extremely wide, but also that
we do scale the viewport down to fit all the content in the case where the content isn't extremely wide (e.g. on
daringfireball.com).
See WebKit ChangeLog for more detail.
Test: fast/viewport/ios/shrink-to-fit-large-content-width.html
- page/ViewportConfiguration.cpp: (WebCore::ViewportConfiguration::initialScaleFromSize const):
Source/WebKit:
Tweaks the content-aware shrink-to-fit algorithm to bail in the case where the content width is extremely large,
such that it bails instead of attempting to fit the entire content of the page. See WebCore ChangeLog for more
details.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::immediatelyShrinkToFitContent):
LayoutTests:
Adds a new layout test to verify that when the content width of the page is excessively large and an explicit
viewport width is specified, we don't attempt to zoom out to fit the larger content width, and instead zoom to
fit the explicit viewport width.
- fast/viewport/ios/shrink-to-fit-large-content-width-expected.txt: Added.
- fast/viewport/ios/shrink-to-fit-large-content-width.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250361 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [250447] by
-
- 8 edits9 adds in branches/safari-608-branch
Cherry-pick r250315. rdar://problem/55770706
[iPadOs] The second click event is missing on double tap when dblclick handler is not present
https://bugs.webkit.org/show_bug.cgi?id=202006
<rdar://problem/51706828>
Reviewed by Wenson Hsieh.
Source/WebKit:
While double tapping,
- the first tap triggers a click event through the normal _singleTapIdentified/_singleTapRecognized codepath.
- and the second tap should trigger either a second single click event or a second single click followed by a dblclick event when dblclick handler is present. However the second click is dropped on the floor when the node under the cursor does not have a dblclick handler (see handleDoubleTapForDoubleClickAtPoint()) -so we end up sending one click event.
This patch fixes this case by sending the second tap through the normal single tap flow when the dblclick handler is not present.
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm: (WebKit::InteractionInformationAtPosition::encode const): (WebKit::InteractionInformationAtPosition::decode):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView gestureRecognizerShouldBegin:]): (WebKit::WebPage::positionInformation): (WebKit::WebPage::requestPositionInformation):
LayoutTests:
- fast/events/touch/ios/double-tap-for-two-clicks1-expected.txt: Added.
- fast/events/touch/ios/double-tap-for-two-clicks1.html: Added.
- fast/events/touch/ios/double-tap-for-two-clicks2-expected.txt: Added.
- fast/events/touch/ios/double-tap-for-two-clicks2.html: Added.
- fast/events/touch/ios/double-tap-for-two-clicks3-expected.txt: Added.
- fast/events/touch/ios/double-tap-for-two-clicks3.html: Added.
- fast/events/touch/ios/double-tap-for-two-clicks4-expected.txt: Added.
- fast/events/touch/ios/double-tap-for-two-clicks4.html: Added.
- fast/events/touch/ios/doubleclick.html: Added.
- fast/events/touch/resources/doubleClickContent.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250315 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [250446] by
-
- 7 edits11 adds in branches/safari-608-branch
Cherry-pick r250300. rdar://problem/55770718
Mixed content blocking is bypassed for WebSockets in Workers (159726)
https://bugs.webkit.org/show_bug.cgi?id=159726
<rdar://problem/27326438>
Patch by Kate Cheney <Kate Cheney> on 2019-09-24
Reviewed by Brady Eidson.
Source/WebCore:
Tests: http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-http-with-embedded-https-with-embedded-http.html
http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-http-with-embedded-https.html
http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-https-with-embedded-http-with-embedded-https.https.html
http/tests/websocket/tests/hybi/non-document-mixed-content-blocked.https.html
- Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::connect):
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp: (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
- loader/MixedContentChecker.cpp: (WebCore::MixedContentChecker::checkForMixedContentInFrameTree):
- loader/MixedContentChecker.h: Patch to block insecure WebSocket URL connection attempts by Workers on secure pages. If the URL is ws, and any embedding iframe has protocol https, and the context is a Worker, the connection should be blocked.
I was unable to write a test case to hit the case where a document
does not have a frame and tries to communicate via a worker to
connect to a WebSocket because after removing the subframe from its
parent, the subframe is unable to perform a postMessage to a worker
even in the same script execution to tell the worker to connect
to a WebSocket.
LayoutTests:
Added 4 test cases and 2 html resources utilized by the tests.
The cases test the following:
- an https page with a worker trying to connect via ws: url --> fails.
- an https page embedded in an http page trying to connect via ws :url (through a worker) --> fails.
- an http page embedded in an https page with an http top frame trying to connect via an insecure ws url fails.
- an https page embedded in an http page embedded in an https page trying to connect to a ws :url via a worker --> fails.
- http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-http-with-embedded-https-expected.txt: Added.
- http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-http-with-embedded-https-with-embedded-http-expected.txt: Added.
- http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-http-with-embedded-https-with-embedded-http.html: Added.
- http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-http-with-embedded-https.html: Added.
- http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-https-with-embedded-http-with-embedded-https.https-expected.txt: Added.
- http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-https-with-embedded-http-with-embedded-https.https.html: Added.
- http/tests/websocket/tests/hybi/non-document-mixed-content-blocked.https-expected.txt: Added.
- http/tests/websocket/tests/hybi/non-document-mixed-content-blocked.https.html: Added.
- http/tests/websocket/tests/hybi/resources/non-document-mixed-content-blocked-embedded-http.https.html: Added.
- http/tests/websocket/tests/hybi/resources/non-document-mixed-content-blocked-embedding-https.js: Added. (handleConnect.self.postMessage): (handleConnect): (runTests.ws.onopen): (runTests.ws.onerror): (runTests):
- http/tests/websocket/tests/hybi/resources/non-document-mixed-content-blocked.html: Added.
- http/tests/websocket/tests/hybi/resources/non-document-mixed-content-blocked.js: Added. (handleConnect.self.postMessage): (handleConnect): (runTests.ws.onopen): (runTests.ws.onerror): (runTests):
- http/tests/workers/service/resources/serviceworker-websocket-worker.js: (async.doTest): Updated previous test which was hitting the fix to use a wss url
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250300 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [250445] by
-
- 3 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r250290. rdar://problem/55770704
AudioTrackPrivateMediaStreamCocoa does not need to manipulate the audio unit in play/pause methods
https://bugs.webkit.org/show_bug.cgi?id=202097
<rdar://problem/51548144>
Reviewed by Eric Carlson.
Instead of manipulating the audio unit in play/pause methods, it is more convenient to do so in audioSamplesAvailable.
play/pause methods only update boolean values that audioSamplesAvailable will read.
In particular, m_autoPlay and m_isPlaying are no longer modified in the audio thread.
Behavior was racy so difficult to reproduce.
- platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp: (WebCore::AudioTrackPrivateMediaStreamCocoa::playInternal): (WebCore::AudioTrackPrivateMediaStreamCocoa::pause): (WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):
- platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250290 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [250444] by
-
- 2 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r250197. rdar://problem/55612001
Fix an assertion failure introduced in r250186.
- UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes): Corrected the assertion.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250197 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [250443] by
-
- 4 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r250186. rdar://problem/55612001
Safari 13 may launch leftover 32-bit plug-in process from Safari 12’s WebKit, which crashes
https://bugs.webkit.org/show_bug.cgi?id=202077
<rdar://problem/55547063>
Reviewed by Sam Weinig.
- Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: (WebKit::getPluginArchitecture): Removed support for i386 plug-ins.
- UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::serviceName): Assert that the requested process type is not Plugin32.
- UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes): Assert that the plug-in architecture is x86_64.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250186 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:56 PM Changeset in webkit [250442] by
-
- 18 edits1 copy2 adds in branches/safari-608-branch
Apply patch. rdar://problem/55608016
- 12:48 PM Changeset in webkit [250441] by
-
- 4 edits in trunk/Source/WebCore
[iOS] Vimeo fails to AirPlay in desktop mode
https://bugs.webkit.org/show_bug.cgi?id=202322
Reviewed by Eric Carlson.
Add a Quirk which opts Vimeo out of the preload=auto restriction, and allows their
second video element containing a HLS stream to correctly start AirPlaying when the
system route changes.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::finishInitialization):
- page/Quirks.cpp:
(WebCore::Quirks::needsPreloadAutoQuirk const):
- page/Quirks.h:
- 12:30 PM Changeset in webkit [250440] by
-
- 2 edits in trunk/Source/JavaScriptCore
OSR exit shouldn't bother updating get_by_id array profiles that have changed modes
https://bugs.webkit.org/show_bug.cgi?id=202324
<rdar://problem/52669110>
Reviewed by Yusuke Suzuki.
This is an optimization that avoids polluting the array profile.
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::executeOSRExit):
(JSC::DFG::OSRExit::compileExit):
- 12:25 PM Changeset in webkit [250439] by
-
- 7 edits in trunk/Source/WebCore
[LFC][IFC] Line::close should merge the text runs.
https://bugs.webkit.org/show_bug.cgi?id=202319
<rdar://problem/55785949>
Reviewed by Antti Koivisto.
Now Line::close returns the final Display::Run list.
- layout/displaytree/DisplayRect.h:
(WebCore::Display::Rect::expandHorizontally):
(WebCore::Display::Rect::expandVertically):
(WebCore::Display::Rect::expand):
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::expandVertically):
(WebCore::Display::Run::expandHorizontally):
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::close):
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::displayRun):
- 12:12 PM Changeset in webkit [250438] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build-fix: wrap the AssertionServicesSPI.h in an IOS_FAMILY check.
- WebProcess/cocoa/WebProcessCocoa.mm:
- 12:09 PM Changeset in webkit [250437] by
-
- 5 edits in trunk
Allow pages served over HTTPS with
Cache-Control: no-storeheader to enter the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=202314
<rdar://problem/55783482>
Reviewed by Alex Christensen.
Source/WebCore:
Allow pages served over HTTPS with
Cache-Control: no-storeheader to enter the back/forward cache.
This was preventing all pages on Facebook.com to enter the back/forward cache.
No new tests, updated existing test.
- history/PageCache.cpp:
(WebCore::canCacheFrame):
LayoutTests:
Update existing test to reflect behavior change.
- http/tests/navigation/https-in-page-cache-expected.txt:
- http/tests/navigation/resources/https-in-page-cache-1.php:
- 11:32 AM Changeset in webkit [250436] by
-
- 13 edits in trunk
Non-standard Error properties should not be enumerable
https://bugs.webkit.org/show_bug.cgi?id=198975
Patch by Alexey Shvayka <Alexey Shvayka> on 2019-09-27
Reviewed by Ross Kirsling.
JSTests:
- ChakraCore/test/Error/NativeErrors_v4.baseline-jsc: Adjust expectations.
- microbenchmarks/let-for-in.js: Adjust test.
- test262/expectations.yaml: Mark 6 test cases as passing.
Source/JavaScriptCore:
Define non-standard Error properties "line", "column", and "sourceURL" as non-enumerable to match other engines.
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::materializeErrorInfoIfNeeded):
LayoutTests:
- inspector/debugger/resources/exception.js: Introduce
stringifyErrorhelper. - inspector/debugger/setPauseOnExceptions-all.html:
- inspector/debugger/setPauseOnExceptions-none.html:
- inspector/debugger/setPauseOnExceptions-uncaught.html:
- js/exception-properties-expected.txt:
- js/script-tests/exception-properties.js:
- 11:28 AM Changeset in webkit [250435] by
-
- 1 edit in branches/safari-608-branch/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
Unreviewed build fix. rdar://problem/55644650
- 10:54 AM Changeset in webkit [250434] by
-
- 3 edits in trunk/Source/WebCore
Flaky Test: inspector/canvas/updateShader.html
https://bugs.webkit.org/show_bug.cgi?id=202186
<rdar://problem/55716053>
Reviewed by Joseph Pecoraro.
If the
WebGLProgramoutlives it'sWebGLRenderingContext, theScriptExecutionContext*
that was provided in the constructor won't be invalidated leading to the bad access crash.
Rather than pass the
ScriptExecutionContext*directly, haveWebGLPrograminherit from
ContextDestructionObserverso that it can propertly invalidate (and notify Web Inspector)
when the related context is about to be destroyed.
Test: inspector/canvas/updateShader.html
- html/canvas/WebGLProgram.h:
(WebCore::WebGLProgram::scriptExecutionContext const): Deleted.
- html/canvas/WebGLProgram.cpp:
(WebCore::WebGLProgram::WebGLProgram):
(WebCore::WebGLProgram::contextDestroyed): Added.
- 10:45 AM Changeset in webkit [250433] by
-
- 1 edit in branches/safari-608-branch/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
Unreviewed build fix. rdar://problem/55644650
- 10:33 AM Changeset in webkit [250432] by
-
- 3 edits2 adds in trunk
[iOS]: When inserting a photo and then inserting auto-corrected text, the photo is removed
https://bugs.webkit.org/show_bug.cgi?id=202294
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-27
Reviewed by Wenson Hsieh.
Source/WebKit:
WebPage::applyAutocorrectionInternal() calls wordRangeFromPosition() to
calculate the range of the word to be replaced with the auto-corrected
word. But if the text of the range does not match the original text,
applyAutocorrectionInternal() tries to correct the range by moving it
forward such that the length of the text range matches the length of the
original text.
Another case, which should correct the range also, is: the range does not
have a text but it is not collapsed. In this case, we should set the range
back to the selection range so non-text nodes is removed.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applyAutocorrectionInternal):
LayoutTests:
- fast/events/ios/autocorrect-after-image-expected.txt: Added.
- fast/events/ios/autocorrect-after-image.html: Added.
- 10:14 AM Changeset in webkit [250431] by
-
- 6 edits2 adds in trunk
Storage Access API: document.hasStorageAccess() should return false by default
https://bugs.webkit.org/show_bug.cgi?id=202281
<rdar://problem/55718526>
Reviewed by Alex Christensen.
document.hasStorageAccess() should return false by default so that it only
returns true if the context has asked for and been granted storage access.
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess):
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess):
LayoutTests:
- http/tests/storageAccess/has-storage-access-false-by-default-expected.txt: Added.
- http/tests/storageAccess/has-storage-access-false-by-default.html: Added.
- platform/ios/TestExpectations:
The new test is marked as [ Pass ].
- platform/mac-wk2/TestExpectations:
The new test is marked as [ Pass ].
- 9:56 AM Changeset in webkit [250430] by
-
- 4 edits2 adds in trunk
[JSC] DFG recursive-tail-call optimization should not emit jump to call-frame with varargs
https://bugs.webkit.org/show_bug.cgi?id=202299
<rdar://problem/52669116>
Reviewed by Saam Barati.
JSTests:
- stress/recursive-tail-call-optimization-should-not-jump-into-call-frame-with-varargs-simple.js: Added.
(foo):
(test):
- stress/recursive-tail-call-optimization-should-not-jump-into-call-frame-with-varargs.js: Added.
(foo):
(C1.prototype.baz):
(C1):
(bar):
(noInline.bar.goo):
(C2.prototype.baz):
(C2):
(test):
Source/JavaScriptCore:
When converting recursive-tail-call to jump to the upper call frame, we picked call-frame which is spread by LoadVarargs.
This is wrong since this call-frame does not know the exact number of arguments. We are using InlineCallFrame::argumentCountIncludingThis,
but this is maximal argumentCountIncludingThis when InlineCallFrame is Varargs call-frame. Let's see the simple example.
'use strict';
var count = 0;
function foo() {
count--;
if (count === 0)
return 30;
return foo(42, 42); HERE
}
function test() {
count = 100;
return foo(...[42, 42]); THERE
}
noInline(test);
In the above case, currently, we convert HERE's foo call to the jump to the prologue of the foo function inlined by "test". But since foo is called
in a varargs form, "test" emits LoadVarargs, and it also emitsSetArgumentMaybefor 1st and 2nd arguments. Since HERE's foo call is actually passing
two arguments, we emit a Phi node which Upsilon is from SetArgumentMaybe and 42 Constant. This is wrong since SetArgumentMaybe should not be used. Later,
SSA conversion phase emits Upsilon with SetArgumentMaybe, and since SetArgumentMaybe is simply removed in SSA conversion phase, it ends up emitting
Upsilon without a child.
We are currently only performing recursive-tail-call optimization when argument count matches. Given this condition, we should not pick varargs CallFrame
as a jump target.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleRecursiveTailCall):
- dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
- 9:49 AM Changeset in webkit [250429] by
-
- 9 edits in trunk/Source/WebCore
[LFC][IFC] Replace Line::Run's logicalRect/textContext with Display::Run
https://bugs.webkit.org/show_bug.cgi?id=202313
<rdar://problem/55782430>
Reviewed by Antti Koivisto.
Display::Run is a container for logical rect and text context. Let's replace Line::Run's logical rect/text context with Display::Run.
- layout/Verification.cpp:
(WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::logicalRect const):
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns):
(WebCore::Layout::InlineFormattingContext::InlineLayout::alignRuns const):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
- layout/inlineformatting/InlineFormattingState.h:
(WebCore::Layout::InlineFormattingState::addInlineRun):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendHardLineBreak):
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::displayRun const):
(WebCore::Layout::Line::Run::logicalRect const):
(WebCore::Layout::Line::Run::adjustLogicalTop):
(WebCore::Layout::Line::Run::moveVertically):
(WebCore::Layout::Line::Run::moveHorizontally):
(WebCore::Layout::Line::Run::textContext const): Deleted.
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputInlineRuns):
- 9:27 AM Changeset in webkit [250428] by
-
- 9 edits in trunk/Source/WebKit
[iOS] Lock screen controls can fail to play web content
https://bugs.webkit.org/show_bug.cgi?id=202279
Reviewed by Chris Dumez.
When playback is paused from the lock screen via Now Playing controls, the WebProcess,
UIProcess, and Network Process will all be suspended. MediaRemote will take an assertion
and wake up the WebProcess when a remote control command to "play" is sent via the Now
Playing controls. However, if a synchronous message to the (suspended) Network or UIProcess
is issued before the notification that the process was unexpectedly unsuspended can be
issued (which will subsequently unsuspend the UIProcess and Network process), we can get
into a deadlocked state where the main thread is blocked on the sync message to a suspended
process.
To work around this problem, move all the processing from ProcessTaskStateObserver to a
WorkQueue / background thread. This requires making the ProcessTaskStateObserver thread-safe,
though its only current client is a Singleton (the WebProcess class), and so the risk of
thread safety issues is currently minimal. Regardless, access to the Client pointer must be
guarded by a Lock, and the Client itself must become ref-counted, so that the
ProcessTaskStateObserver can ref its Client (the WebProcess) during callback processing.
Unfortunately, sendWithAsyncReply() is not thread safe, nor is ProcessAssertion, so instead
just use send() and set a 5-second timeout before expiring the assertion, and just use
BKSProcessStateAssertion directly.
- Shared/Cocoa/ProcessTaskStateObserver.h:
(WebKit::ProcessTaskStateObserver::Client::ref):
(WebKit::ProcessTaskStateObserver::Client::deref):
(WebKit::ProcessTaskStateObserver::setClient): Deleted.
(WebKit::ProcessTaskStateObserver::client): Deleted.
- Shared/Cocoa/ProcessTaskStateObserver.mm:
(-[WKProcessTaskStateObserverDelegate process:taskStateDidChange:]):
(WebKit::ProcessTaskStateObserver::create):
(WebKit::ProcessTaskStateObserver::ProcessTaskStateObserver):
(WebKit::ProcessTaskStateObserver::~ProcessTaskStateObserver):
(WebKit::ProcessTaskStateObserver::invalidate):
(WebKit::ProcessTaskStateObserver::client):
(WebKit::ProcessTaskStateObserver::setTaskState):
- WebProcess/WebProcess.cpp:
(WebKit::m_taskStateObserver):
- WebProcess/WebProcess.h:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::processWasUnexpectedlyUnsuspended):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::processTaskStateDidChange):
- 9:25 AM Changeset in webkit [250427] by
-
- 5 edits in trunk/Source/WebCore
Unreviewed, rolling out r250415.
Broke iOS debug testing with 50 crashes and 850 API failure
Reverted changeset:
"ScrollingTreeScrollingNode: use LayerRepresentation for
scroll container, scrolled contents layers"
https://bugs.webkit.org/show_bug.cgi?id=202256
https://trac.webkit.org/changeset/250415
- 9:07 AM Changeset in webkit [250426] by
-
- 20 edits in trunk
Move service worker process termination delay disabling from process pool to website data store
https://bugs.webkit.org/show_bug.cgi?id=202308
Reviewed by Chris Dumez.
Source/WebCore:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::SWServer):
(WebCore::SWServer::unregisterServiceWorkerClient):
- workers/service/server/SWServer.h:
(WebCore::SWServer::disableServiceWorkerProcessTerminationDelay): Deleted.
Source/WebKit:
It's only there for a test, which still works quickly.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::swServerForSession):
(WebKit::NetworkProcess::addServiceWorkerSession):
(WebKit::NetworkProcess::disableServiceWorkerProcessTerminationDelay): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
- Shared/WebsiteDataStoreParameters.h:
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _disableServiceWorkerProcessTerminationDelay]): Deleted.
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration serviceWorkerProcessTerminationDelayEnabled]):
(-[_WKWebsiteDataStoreConfiguration setServiceWorkerProcessTerminationDelayEnabled:]):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::disableServiceWorkerProcessTerminationDelay): Deleted.
- UIProcess/WebProcessPool.h:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::serviceWorkerProcessTerminationDelayEnabled const):
(WebKit::WebsiteDataStoreConfiguration::setServiceWorkerProcessTerminationDelayEnabled):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- 8:56 AM Changeset in webkit [250425] by
-
- 3 edits2 adds in trunk
IDBRequest should not prevent a page from entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=202270
<rdar://problem/55744717>
Reviewed by Youenn Fablet.
Source/WebCore:
Update IDBRequest::canSuspendForDocumentSuspension() to return true instead of
false. IDBRequest can only fire 2 events (error / success) and for both its
merely enqueues the Event to the DocumentEventQueue. The DocumentEventQueue
uses a SuspendableTimer (which will be suspended while the document is in the
page cache) so there is no risk of firing the events (and thus running script)
while in the page cache.
Test: storage/indexeddb/IDBRequest-page-cache.html
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::canSuspendForDocumentSuspension const):
LayoutTests:
Add layout test coverage.
- storage/indexeddb/IDBRequest-page-cache-expected.txt: Added.
- storage/indexeddb/IDBRequest-page-cache.html: Added.
- 8:55 AM Changeset in webkit [250424] by
-
- 8 edits in trunk/Source/WebKit
Enable and disable ResourceLoadStatistics only by session
https://bugs.webkit.org/show_bug.cgi?id=202298
Reviewed by Chris Dumez.
This is needed to keep per-session things per-session and per-process-pool things per-process-pool.
This was a strange case where we would take the current session's value and apply it globally.
This has no change in behavior because it is globally enabled and disabled by API clients anyways.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setResourceLoadStatisticsEnabled):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setResourceLoadStatisticsEnabled): Deleted.
- UIProcess/WebProcessPool.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):
- 8:31 AM Changeset in webkit [250423] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Remove redundant Line::TextContext member variables
https://bugs.webkit.org/show_bug.cgi?id=202300
<rdar://problem/55769916>
Reviewed by Antti Koivisto.
This is in preparation for using Display::Run in Line::Run instead of Display::Rect + TextContext.
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Run::isWhitespace const):
(WebCore::Layout::Line::Run::canBeExtended const):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::trailingTrimmableWidth const):
(WebCore::Layout::Line::appendTextContent):
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::isVisuallyEmpty const):
(WebCore::Layout::Line::Run::setVisuallyIsEmpty):
(WebCore::Layout::Line::Run::setTextIsCollapsed): Deleted.
- 7:34 AM Changeset in webkit [250422] by
-
- 21 edits2 deletes in trunk
Remove unused WebProcessPool::setCanHandleHTTPSServerTrustEvaluation
https://bugs.webkit.org/show_bug.cgi?id=202285
Reviewed by Youenn Fablet.
Source/WebKit:
The SPI to set this was deprecated in r250377 with a replacement that was adopted in rdar://problem/55731135
I removed a layout test using the old SPI and replaced it with a more precise API test verifying the behavior of the new SPI
before and after the introduction of NSURLSession's _strictTrustEvaluate:queue:completionHandler:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setCanHandleHTTPSServerTrustEvaluation): Deleted.
- NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::canHandleHTTPSServerTrustEvaluation const): Deleted.
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(canNSURLSessionTrustEvaluate): Deleted.
- UIProcess/API/C/WKContext.cpp:
(WKContextSetCanHandleHTTPSServerTrustEvaluation):
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _setCanHandleHTTPSServerTrustEvaluation:]):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation): Deleted.
- UIProcess/WebProcessPool.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(-[ServerTrustDelegate webView:didFinishNavigation:]):
(-[ServerTrustDelegate webView:didFailProvisionalNavigation:withError:]):
(-[ServerTrustDelegate waitForDidFinishNavigation]):
(-[ServerTrustDelegate waitForDidFailProvisionalNavigationError]):
(-[ServerTrustDelegate authenticationChallengeCount]):
(-[ServerTrustDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(TestWebKitAPI::TEST):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setCanHandleHTTPSServerTrustEvaluation): Deleted.
(WTR::TestRunner::canDoServerTrustEvaluationInNetworkProcess): Deleted.
(WTR::TestRunner::serverTrustEvaluationCallbackCallsCount): Deleted.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::didReceiveAuthenticationChallenge):
(WTR::TestController::canDoServerTrustEvaluationInNetworkProcess const): Deleted.
- WebKitTestRunner/TestController.h:
(WTR::TestController::serverTrustEvaluationCallbackCallsCount const): Deleted.
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::canDoServerTrustEvaluationInNetworkProcess const): Deleted.
LayoutTests:
- http/tests/ssl/certificate-validation-expected.txt: Removed.
- http/tests/ssl/certificate-validation.html: Removed.
- 7:05 AM Changeset in webkit [250421] by
-
- 17 edits in trunk
Remove unused APIProcessPoolConfiguration::diskCacheSpeculativeValidationEnabled
https://bugs.webkit.org/show_bug.cgi?id=202290
Reviewed by Carlos Garcia Campos.
Source/WebKit:
The SPI to set this was deprecated in r250377 with a replacement that was adopted in rdar://problem/55731135
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/C/WKContext.cpp:
(WKContextSetDiskCacheSpeculativeValidationEnabled):
- UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:
(WKWebsiteDataStoreConfigurationGetNetworkCacheSpeculativeValidationEnabled):
(WKWebsiteDataStoreConfigurationSetNetworkCacheSpeculativeValidationEnabled):
- UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration diskCacheSpeculativeValidationEnabled]):
(-[_WKProcessPoolConfiguration setDiskCacheSpeculativeValidationEnabled:]):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm:
(TEST):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::websiteDataStore):
(WTR::TestController::generatePageConfiguration):
- 3:48 AM Changeset in webkit [250420] by
-
- 3 edits in trunk/Source/WebCore
[Nicosia] Implement frame scrolling functionality
https://bugs.webkit.org/show_bug.cgi?id=202201
Reviewed by Carlos Garcia Campos.
Implement logic in the ScrollingTreeFrameScrollingNodeNicosia class,
largely following the Mac port's implementation but skipping areas we
don't support or can keep simple, like CSS scroll snap, frame pinning
and more complex wheel event handling through the platform-specific
delegate behavior.
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateAfterChildren):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::adjustedScrollPosition const):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::currentScrollPositionChanged):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::repositionScrollingLayers):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::repositionRelatedLayers):
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
- 3:36 AM Changeset in webkit [250419] by
-
- 2 edits in trunk/Source/WebCore
[Nicosia] ScrollingCoordinatorNicosia should handle wheel events coming from the main thread
https://bugs.webkit.org/show_bug.cgi?id=202275
Reviewed by Carlos Garcia Campos.
- page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:
(WebCore::ScrollingCoordinatorNicosia::handleWheelEvent):
Handle wheel events that get rerouted through the main thread,
dispatching them back to the scrolling thread so that they end up
performing the desired scroll if possible.
- 3:34 AM Changeset in webkit [250418] by
-
- 8 edits in trunk/Source
[CoordinatedGraphics] support bounds origin
https://bugs.webkit.org/show_bug.cgi?id=198998
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Add bounds-origin support to the CoordinatedGraphics stack. Currently we
take the short-cut implementation of just combining the bounds origin
and the position value and incorporating them into the layer transform
we calculate in TextureMapperLayer.
Additional boilerplate code is added, as required, to relay the
WebCore::GraphicsLayer change of bounds origin to the rendering system.
- platform/graphics/nicosia/NicosiaPlatformLayer.h:
(Nicosia::CompositionLayer::flushState):
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeTransformsRecursive):
(WebCore::TextureMapperLayer::setBoundsOrigin):
- platform/graphics/texmap/TextureMapperLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setBoundsOrigin):
(WebCore::CoordinatedGraphicsLayer::computePositionRelativeToBase):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
Source/WebKit:
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::updateSceneState):
Apply bounds origin value to the TextureMapperLayer object.
- 2:04 AM Changeset in webkit [250417] by
-
- 6 edits in trunk
Make IsNSURLSessionWebSocketEnabled an experimental flag
https://bugs.webkit.org/show_bug.cgi?id=202135
<rdar://problem/55694721>
Reviewed by Geoff Garen.
Source/WebKit:
Add C API to switch off this feature in WTR.
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetIsNSURLSessionWebSocketEnabled):
(WKPreferencesGetIsNSURLSessionWebSocketEnabled):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
Tools:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
Set preference to false by default.
- 12:13 AM Changeset in webkit [250416] by
-
- 9 edits in trunk
SubFrameSOAuthorizationSession should ensure messages are posted in the right order to the parent frame
https://bugs.webkit.org/show_bug.cgi?id=202061
<rdar://problem/55485666>
Reviewed by Youenn Fablet.
Source/WebKit:
This patch ensures messages that signal the process of SOAuthorization interception are posted in
the right order to the parent frame. Before this patch, there are chances that SOAuthorizationDidCancel
could be posted to the parent before SOAuthorizationDidStart. There are few causes that lead to
this race condition:
1) SubFrameSOAuthorizationSession::beforeStart posts SOAuthorizationDidStart in the next runloop. So
extension could have the chance to invoke SubFrameSOAuthorizationSession::fallBackToWebPathInternal
before SOAuthorizationDidStart is posted.
2) Even if the order is right in the UI process, it is not guaranteed that Web process will strictly
follow the order as the loading process is async.
To fix the issue:
1) SubFrameSOAuthorizationSession::beforeStart now posts SOAuthorizationDidStart in the same runloop.
2) Observer is introduced in FrameLoadState such that SubFrameSOAuthorizationSession could know if
the loading is finished. With this new capacity, SubFrameSOAuthorizationSession can ensure it only
posts next message when the previous message has been posted.
Implementation wise, a deque to queue requests is provided to maintain order.
1) When new request is added to the deque, SubFrameSOAuthorizationSession will only load the request
if it is the only element in the deque. Otherwise, it does nothing.
2) When SubFrameSOAuthorizationSession receives didFinishLoad, it pops the head of the queue and loads
the next request in the queue if any.
The above design should guarantee all requests are loaded in sequence.
- UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h:
- UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:
(WebKit::SubFrameSOAuthorizationSession::SubFrameSOAuthorizationSession):
(WebKit::SubFrameSOAuthorizationSession::~SubFrameSOAuthorizationSession):
(WebKit::SubFrameSOAuthorizationSession::fallBackToWebPathInternal):
(WebKit::SubFrameSOAuthorizationSession::completeInternal):
(WebKit::SubFrameSOAuthorizationSession::beforeStart):
(WebKit::SubFrameSOAuthorizationSession::didFinishLoad):
(WebKit::SubFrameSOAuthorizationSession::appendRequestToLoad):
(WebKit::SubFrameSOAuthorizationSession::loadRequestToFrame):
(WebKit::SubFrameSOAuthorizationSession::loadDataToFrame): Deleted.
(WebKit::SubFrameSOAuthorizationSession::postDidCancelMessageToParent): Deleted.
- UIProcess/FrameLoadState.cpp:
(WebKit::FrameLoadState::addObserver):
(WebKit::FrameLoadState::removeObserver):
(WebKit::FrameLoadState::didFinishLoad):
- UIProcess/FrameLoadState.h:
Tools:
Adds tests that check the order of messages posted by SubFrameSOAuthorizationSession.
- TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:
(-[TestSOAuthorizationScriptMessageHandler userContentController:didReceiveScriptMessage:]):
(resetState):
(TestWebKitAPI::TEST):