Timeline
May 6, 2019:
- 11:41 PM Changeset in webkit [245003] by
-
- 7 edits in tags/Safari-608.1.22.1/Source
Versioning.
- 11:17 PM Changeset in webkit [245002] by
-
- 1 copy in tags/Safari-608.1.22.1
New tag.
- 10:05 PM Changeset in webkit [245001] by
-
- 2 edits in trunk/JSTests
Update test262 expectations for Proxy passes
https://bugs.webkit.org/show_bug.cgi?id=197628
Reviewed by Yusuke Suzuki.
There are two consistent passes in Proxy.ownKeys.
- test262/expectations.yaml:
- 8:51 PM Changeset in webkit [245000] by
-
- 4 edits in trunk/Source
Improve coordination for creating UIWindow instances.
https://bugs.webkit.org/show_bug.cgi?id=197578.
<rdar://problem/50456965>.
Patch by James Savage <James Savage> on 2019-05-06
Reviewed by Wenson Hsieh.
Source/WebCore:
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
(makeWindowFromView): Pull out window creation.
(VideoFullscreenInterfaceAVKit::doSetup): Call new helper function.
Source/WebKit:
- UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(makeWindowFromView): Pull out window creation.
(-[WKFullScreenWindowController enterFullScreen]): Call new helper function.
- 6:23 PM Changeset in webkit [244999] by
-
- 3 edits in trunk/Source/JavaScriptCore
JSWrapperMap should check if existing prototype properties are wrappers when copying exported methods.
https://bugs.webkit.org/show_bug.cgi?id=197324
<rdar://problem/50253144>
Reviewed by Saam Barati.
The current implementation prevents using JSExport to shadow a
method from a super class. This was because we would only add a
method if the prototype didn't already claim to have the
property. Normally this would only happen if an Objective-C super
class already exported a ObjCCallbackFunction for the method,
however, if the user exports a property that is already on
Object.prototype the overriden method won't be exported.
This patch fixes the object prototype issue by checking if the
property on the prototype chain is an ObjCCallbackFunction, if
it's not then it adds an override.
- API/JSWrapperMap.mm:
(copyMethodsToObject):
- API/tests/testapi.mm:
(-[ToStringClass toString]):
(-[ToStringClass other]):
(-[ToStringSubclass toString]):
(-[ToStringSubclassNoProtocol toString]):
(testToString):
(testObjectiveCAPI):
- 6:03 PM Changeset in webkit [244998] by
-
- 9 edits in trunk
_overrideViewportWithArguments does not work when called before loading
https://bugs.webkit.org/show_bug.cgi?id=197638
<rdar://problem/50505111>
Reviewed by Wenson Hsieh.
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::viewportArguments const):
(WebCore::Document::updateViewportArguments):
(WebCore::Document::setOverrideViewportArguments): Deleted.
- dom/Document.h:
(WebCore::Document::viewportArguments const): Deleted.
- page/Page.cpp:
(WebCore::Page::setOverrideViewportArguments):
- page/Page.h:
(WebCore::Page::overrideViewportArguments const):
- page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::setViewportArguments):
Move overrideViewportArguments to Page, since it is view-global in the API.
Source/WebKit:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setOverrideViewportArguments):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/OverrideViewportArguments.mm:
(TEST):
- 5:42 PM Changeset in webkit [244997] by
-
- 2 edits in trunk/Source/WebKit
ASSERT at WebKit::NetworkCache::makeSafeToUseMemoryMapForPath under Storage::StoreBodyAsBlob when running WebDriver tests
https://bugs.webkit.org/show_bug.cgi?id=197635
<rdar://problem/50473149>
Reviewed by Geoffrey Garen.
We need to make sure the the path at blobPathString exists before calling FileSystem::makeSafeToUseMemoryMapForPath().
If the blob does not already exist when BlobStorage::add() is called, what will create it is the call to Data::mapToFile().
- NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
(WebKit::NetworkCache::BlobStorage::add):
- 5:29 PM Changeset in webkit [244996] by
-
- 8 edits1 add in trunk
[JSC] We should check OOM for description string of Symbol
https://bugs.webkit.org/show_bug.cgi?id=197634
Reviewed by Keith Miller.
JSTests:
- stress/check-symbol-description-oom.js: Added.
(shouldThrow):
Source/JavaScriptCore:
When resoling JSString for description of Symbol, we should check OOM error.
We also change JSValueMakeSymbol(..., nullptr) to returning a symbol value
without description, (1) to simplify the code and (2) give a way for JSC API
to create a symbol value without description.
- API/JSValueRef.cpp:
(JSValueMakeSymbol):
- API/tests/testapi.cpp:
(TestAPI::symbolsTypeof):
(TestAPI::symbolsDescription):
(testCAPIViaCpp):
- dfg/DFGOperations.cpp:
- runtime/Symbol.cpp:
(JSC::Symbol::createWithDescription):
- runtime/Symbol.h:
- runtime/SymbolConstructor.cpp:
(JSC::callSymbol):
- 5:21 PM Changeset in webkit [244995] by
-
- 5 edits in trunk/Source/WebCore
Add assertions to JSLazyEventListener to help catch the cause of a crash
https://bugs.webkit.org/show_bug.cgi?id=197617
Reviewed by Alexey Proskuryakov.
Add assertions to JSLazyEventListener to help catch the cause of <rdar://problem/24314027>.
- bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::checkValidityForEventTarget):
- bindings/js/JSLazyEventListener.h:
- dom/EventListener.h:
(WebCore::EventListener::checkValidityForEventTarget):
- dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::innerInvokeEventListeners):
- 5:20 PM Changeset in webkit [244994] by
-
- 2 edits in trunk/Source/WTF
[JSC] Respect already defined USE_LLINT_EMBEDDED_OPCODE_ID compiler variable.
https://bugs.webkit.org/show_bug.cgi?id=197633
Reviewed by Don Olmstead.
When the variable
USE_LLINT_EMBEDDED_OPCODE_IDis defined, stop defining
its value with platform default one.
- wtf/Platform.h:
- 5:08 PM Changeset in webkit [244993] by
-
- 2 edits in trunk/Source/WebKit
Occasional crashes in layout tests when firing the shrink-to-fit-content timer
https://bugs.webkit.org/show_bug.cgi?id=197629
<rdar://problem/50514382>
Reviewed by Tim Horton.
Fixes several crashing layout tests by stopping the shrink-to-fit-content timer when the page closes.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
- 5:04 PM Changeset in webkit [244992] by
-
- 2 edits14 adds in trunk/Websites/webkit.org
[Web GPU] Add demos to webkit.org
https://bugs.webkit.org/show_bug.cgi?id=196951
Reviewed by Dean Jackson.
Add simple triangle and spinning textured cube demos to the website.
Add Web GPU to experimental-features.html.
- demos/webgpu/css/style.css: Added.
(body):
(canvas):
(body.error canvas):
(h1):
(#container):
(select):
(div#log):
(body.error):
(body.error #contents):
(#error):
(@media (max-width: 480px)):
(body.error #error):
(#error h2):
(#error p):
- demos/webgpu/hello-cube.html: Added.
- demos/webgpu/hello-triangle.html: Added.
- demos/webgpu/index.html: Added.
- demos/webgpu/resources/circle.svg: Added.
- demos/webgpu/resources/hello-cube.png: Added.
- demos/webgpu/resources/hello-triangle.png: Added.
- demos/webgpu/resources/safari-alpha.png: Added.
- demos/webgpu/scripts/gl-matrix-min.js: Added.
(return.n):
(return.n.d):
(return.):
(return.get n.n):
(return.n.o):
- demos/webgpu/scripts/hello-triangle.js: Added.
(async.helloTriangle):
- experimental-features.html:
- 4:49 PM Changeset in webkit [244991] by
-
- 7 edits in trunk/Source
Versioning.
- 4:46 PM Changeset in webkit [244990] by
-
- 7 edits in tags/Safari-608.1.22/Source
Versioning.
- 4:43 PM Changeset in webkit [244989] by
-
- 1 copy in tags/Safari-608.1.22
New tag.
- 4:29 PM Changeset in webkit [244988] by
-
- 7 edits in trunk
-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:] doesn't delete _WKWebsiteDataTypeCredentials
https://bugs.webkit.org/show_bug.cgi?id=197510
Source/WebCore:
<rdar://problem/50372338>
Reviewed by Alex Christensen.
This patch implements deletion of non persistent credentials for a set of origins. In order for this to work, fetching
credentials from the credential storage needs to return a set of SecurityOriginData objects, instead of a set of origin
strings. This is implemented by iterating over all the elements in the credential map, and creating a SecurityOriginData
object for each credential based on the protection space.
API test: WKWebsiteDataStore.RemoveNonPersistentCredentials
- platform/network/CredentialStorage.cpp:
(WebCore::CredentialStorage::removeCredentialsWithOrigin):
(WebCore::CredentialStorage::originsWithCredentials const):
- platform/network/CredentialStorage.h:
(WebCore::CredentialStorage::originsWithCredentials const): Deleted.
Source/WebKit:
Reviewed by Alex Christensen.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
Tools:
Reviewed by Alex Christensen.
- TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
(TestWebKitAPI::TEST):
- 4:13 PM Changeset in webkit [244987] by
-
- 9 edits in trunk
Temporarily disable generate-xcfilelists
https://bugs.webkit.org/show_bug.cgi?id=197619
<rdar://problem/50507392>
Reviewed by Alex Christensen.
We need to perform a significant update to the generate-xcfilelist
scripts. This work involves coordinated work with another facility. If
the work does not occur in tandem, the build will be broken. To avoid
this, disable the invoking of the scripts during the transition. The
checking will be restored once the new scripts are in place.
Source/JavaScriptCore:
- Scripts/check-xcfilelists.sh:
Source/WebCore:
No new tests -- no change in user-visible functionality.
- Scripts/check-xcfilelists.sh:
Source/WebKit:
- Scripts/check-xcfilelists.sh:
Tools:
- DumpRenderTree/Scripts/check-xcfilelists.sh:
- WebKitTestRunner/Scripts/check-xcfilelists.sh:
- 4:10 PM Changeset in webkit [244986] by
-
- 4 edits in trunk/Source/JavaScriptCore
[PlayStation] Fix build break since r244919
https://bugs.webkit.org/show_bug.cgi?id=197627
Reviewed by Ross Kirsling.
Bugfix for POSIX socket implementation and suppress warnings.
- inspector/remote/socket/RemoteInspectorConnectionClient.h:
(Inspector::RemoteInspectorConnectionClient::didAccept):
- inspector/remote/socket/posix/RemoteInspectorSocketPOSIX.cpp:
(Inspector::Socket::getPort):
- 4:07 PM Changeset in webkit [244985] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix after r244984.
- WebProcess/cocoa/WebProcessCocoa.mm:
- 3:47 PM Changeset in webkit [244984] by
-
- 3 edits in trunk/Source/WebKit
Prewarmed WebContent processes never app nap
https://bugs.webkit.org/show_bug.cgi?id=197630
Reviewed by Geoffrey Garen.
Do not require actually having a WebPage in the WebContent process to App Nap.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updateThrottleState):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 3:33 PM Changeset in webkit [244983] by
-
- 6 edits4 adds in trunk
Hitpoint for link which spans two lines in web content is incorrect
https://bugs.webkit.org/show_bug.cgi?id=197511
<rdar://problem/49971483>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-05-06
Reviewed by Chris Fleizach.
Source/WebCore:
- Special case for links to return first char location as clickPoint instead of middle point of bounding rect.
- Modified iOS ActivationPoint to use clickPoint. This way all code paths go through the same function.
- Made boundsForRects to return content coordinates in all platforms. Adjusted all callers, directly or indirectly, appropriately.
Tests: accessibility/ios-simulator/links-activation.html
accessibility/links-activation.html
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::clickPoint):
(WebCore::AccessibilityRenderObject::boundsForRects):
(WebCore::AccessibilityRenderObject::boundsForRects const): Deleted.
- accessibility/AccessibilityRenderObject.h:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
LayoutTests:
- Added LayoutTest.
- accessibility/ios-simulator/links-activation-expected.txt: Added.
- accessibility/ios-simulator/links-activation.html: Added.
- accessibility/links-activation-expected.txt: Added.
- accessibility/links-activation.html: Added.
- 3:28 PM Changeset in webkit [244982] by
-
- 2 edits in trunk/Source/WebKit
Fix the build after r244975
(https://bugs.webkit.org/show_bug.cgi?id=197474)
Actually make use of the Keyboard Event when building with USE(UIKIT_KEYBOARD_ADDITIONS)
and substitute -> for . since it's now passed by reference.
- WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
(WebKit::WebEditorClient::handleInputMethodKeydown):
- 3:26 PM Changeset in webkit [244981] by
-
- 1 edit1 add in trunk/JSTests
Unreviewed, land one more test
https://bugs.webkit.org/show_bug.cgi?id=197587
- stress/setter-frame-flush.js: Added.
(setter):
(foo):
(bar):
- 3:22 PM Changeset in webkit [244980] by
-
- 8 edits2 moves2 adds in trunk/Source
Adopt AVStreamDataParser.audiovisualMIMETypes
https://bugs.webkit.org/show_bug.cgi?id=197581
<rdar://problem/50458981>
Reviewed by Eric Carlson.
Source/WebCore:
Add a new singleton class, AVStreamDataParserMIMETypeCache, and rename AVFoundationMIMETypeCache to the more precise
AVAssetMIMETypeCache. Update all the old AVFoundationMIMETypeCache with the new name.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.h: Renamed from Source/WebCore/platform/graphics/avfoundation/objc/AVFoundationMIMETypeCache.h.
(WebCore::AVAssetMIMETypeCache::setCacheMIMETypesCallback):
- platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm: Renamed from Source/WebCore/platform/graphics/avfoundation/objc/AVFoundationMIMETypeCache.mm.
(WebCore::AVAssetMIMETypeCache::singleton):
(WebCore::AVAssetMIMETypeCache::setSupportedTypes):
(WebCore::AVAssetMIMETypeCache::types):
(WebCore::AVAssetMIMETypeCache::supportsContentType):
(WebCore::AVAssetMIMETypeCache::canDecodeType):
(WebCore::AVAssetMIMETypeCache::isAvailable const):
(WebCore::AVAssetMIMETypeCache::loadMIMETypes):
- platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.h: Added.
- platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm: Added.
(WebCore::AVStreamDataParserMIMETypeCache::singleton):
(WebCore::AVStreamDataParserMIMETypeCache::types):
(WebCore::AVStreamDataParserMIMETypeCache::supportsContentType):
(WebCore::AVStreamDataParserMIMETypeCache::canDecodeType):
(WebCore::AVStreamDataParserMIMETypeCache::isAvailable const):
(WebCore::AVStreamDataParserMIMETypeCache::loadMIMETypes):
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
(WebCore::ImageDecoderAVFObjC::create):
(WebCore::ImageDecoderAVFObjC::supportsMediaType):
(WebCore::ImageDecoderAVFObjC::supportsContentType):
(WebCore::ImageDecoderAVFObjC::canDecodeType):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateAVFoundationObjC::getSupportedTypes):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::getSupportedTypes):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):
Source/WebKit:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformTerminate):
(WebKit::WebProcess::setMediaMIMETypes):
- 2:44 PM Changeset in webkit [244979] by
-
- 4 edits in trunk/Source/WebKit
Terminate service workers that use too much CPU / power
https://bugs.webkit.org/show_bug.cgi?id=197626
<rdar://problem/50374707>
Reviewed by Geoffrey Garen.
Terminate service worker processes that use over 50% CPU on average over the last 8 minutes,
similarly to what we do for background WebContent processes.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didExceedCPULimit):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::updateCPULimit):
(WebKit::WebProcess::updateCPUMonitorState):
- 2:33 PM Changeset in webkit [244978] by
-
- 38 edits11 adds in trunk
TemplateObject passed to template literal tags are not always identical for the same source location.
https://bugs.webkit.org/show_bug.cgi?id=190756
Reviewed by Saam Barati.
JSTests:
- complex.yaml:
- complex/tagged-template-regeneration-after.js: Added.
(shouldBe):
- complex/tagged-template-regeneration.js: Added.
(call):
(test):
- modules/tagged-template-inside-module.js: Added.
(from.string_appeared_here.call):
- modules/tagged-template-inside-module/other-tagged-templates.js: Added.
(call):
(export.otherTaggedTemplates):
- stress/call-and-construct-should-return-same-tagged-templates.js: Added.
(shouldBe):
(call):
(poly):
- stress/tagged-templates-in-direct-eval-should-not-produce-same-site-object.js: Added.
(shouldBe):
(call):
- stress/tagged-templates-in-global-function-should-not-produce-same-site-object.js: Added.
(shouldBe):
(call):
- stress/tagged-templates-in-indirect-eval-should-not-produce-same-site-object.js: Added.
(shouldBe):
(call):
- stress/tagged-templates-in-multiple-functions.js: Added.
(shouldBe):
(call):
(a):
(b):
(c):
Source/JavaScriptCore:
Tagged template literal requires that the site object is allocated per source location. Previously, we create the site object
when linking CodeBlock and cache it in CodeBlock. But this is wrong because,
- CodeBlock can be jettisoned and regenerated. So every time CodeBlock is regenerated, we get the different site object.
- Call and Construct can have different CodeBlock. Even if the function is called in call-form or construct-form, we should return the same site object.
In this patch, we start caching these site objects in the top-level ScriptExecutable, this matches the spec's per source location since the only one top-level
ScriptExecutable is created for the given script code. Each ScriptExecutable of JSFunction can be created multiple times because CodeBlock creates it.
But the top-level one is not created by CodeBlock. This top-level ScriptExecutable is well-aligned to the Script itself. The top-level ScriptExecutable now has HashMap,
which maps source locations to cached site objects.
- This patch threads the top-level ScriptExecutable to each FunctionExecutable creation. Each FunctionExecutable has a reference to the top-level ScriptExecutable.
- We put TemplateObjectMap in ScriptExecutable, which manages cached template objects.
- We move FunctionExecutable::m_cachedPolyProtoStructure to the FunctionExecutable::RareDate to keep FunctionExecutable 128 bytes.
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
- Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
- Scripts/wkbuiltins/builtins_templates.py:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantRegisters):
- bytecode/CodeBlock.h:
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::link):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::addTemplateObjectConstant):
(JSC::BytecodeGenerator::emitGetTemplateObject):
- bytecompiler/BytecodeGenerator.h:
- runtime/CachedTypes.cpp:
(JSC::CachedTemplateObjectDescriptor::encode):
(JSC::CachedTemplateObjectDescriptor::decode const):
(JSC::CachedJSValue::encode):
(JSC::CachedJSValue::decode const):
- runtime/EvalExecutable.cpp:
(JSC::EvalExecutable::ensureTemplateObjectMap):
(JSC::EvalExecutable::visitChildren):
- runtime/EvalExecutable.h:
- runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::finishCreation):
(JSC::FunctionExecutable::visitChildren):
(JSC::FunctionExecutable::fromGlobalCode):
(JSC::FunctionExecutable::ensureRareDataSlow):
(JSC::FunctionExecutable::ensureTemplateObjectMap):
- runtime/FunctionExecutable.h:
- runtime/JSModuleRecord.cpp:
(JSC::JSModuleRecord::instantiateDeclarations):
- runtime/JSTemplateObjectDescriptor.cpp:
(JSC::JSTemplateObjectDescriptor::JSTemplateObjectDescriptor):
(JSC::JSTemplateObjectDescriptor::create):
- runtime/JSTemplateObjectDescriptor.h:
- runtime/ModuleProgramExecutable.cpp:
(JSC::ModuleProgramExecutable::ensureTemplateObjectMap):
(JSC::ModuleProgramExecutable::visitChildren):
- runtime/ModuleProgramExecutable.h:
- runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::ensureTemplateObjectMap):
(JSC::ProgramExecutable::visitChildren):
- runtime/ProgramExecutable.h:
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::topLevelExecutable):
(JSC::ScriptExecutable::createTemplateObject):
(JSC::ScriptExecutable::ensureTemplateObjectMap):
- runtime/ScriptExecutable.h:
- tools/JSDollarVM.cpp:
(JSC::functionCreateBuiltin):
(JSC::functionDeleteAllCodeWhenIdle):
(JSC::JSDollarVM::finishCreation):
- 2:14 PM Changeset in webkit [244977] by
-
- 6 edits3 adds in trunk
WebAudio Node JS wrappers should not be collected if events can be fired
https://bugs.webkit.org/show_bug.cgi?id=197533
Reviewed by Jer Noble.
Source/WebCore:
Before the patch, some web audio nodes could fire event listeners, but were not protected from GC.
Use CustomIsReachable to ensure theses nodes can be collected if:
- their AudioContext is stopped (typically due to document being navigated away).
- their AudioContext is closed.
- nodes do not have event listeners.
Covered by WPT mediacapture-streams/MediaStreamTrack-MediaElement-disabled-audio-is-silence.https.html and
WPT webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html
and web audio WebRTC tests.
Specific newly added test: webaudio/webaudio-gc.html
- Modules/webaudio/AudioContext.h:
(WebCore::AudioContext::isClosed const):
- Modules/webaudio/AudioNode.idl:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSAudioNodeCustom.cpp: Added.
(WebCore::JSAudioNodeOwner::isReachableFromOpaqueRoots):
LayoutTests:
- webaudio/webaudio-gc-expected.txt: Added.
- webaudio/webaudio-gc.html: Added.
- 1:44 PM Changeset in webkit [244976] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: Layout test imported/w3c/web-platform-tests/resource-timing/resource-timing-level1.sub.html is frequently failing on EWS
https://bugs.webkit.org/show_bug.cgi?id=197473
Unreviewed test gardening.
- platform/ios/TestExpectations: Mark test as flaky on iOS.
- 1:41 PM Changeset in webkit [244975] by
-
- 16 edits in trunk/Source
Google Docs & Yahoo! Japan: Can’t compose characters with Chinese or Japanese keyboard
https://bugs.webkit.org/show_bug.cgi?id=197474
<rdar://problem/47219324>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Fix up some #if defs to compile more Mac code when building on iOS.
- dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent):
- platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
Source/WebKit:
Adopt UIKit SPI (added in <rdar://problem/50181162>) to ask the Input Manager to handle
the key event. If the Input Manager handled it then we pass along this information to
WebCore, just as we do for Mac, so that it can alter its event handling logic. Otherwise,
we handle the event as we do now.
A large part of this patch is fixing up #if defs to compile more Mac code when building
on iOS.
- Platform/spi/ios/UIKitSPI.h: Expose more SPI.
- Shared/NativeWebKeyboardEvent.h:
- Shared/WebEvent.h:
- Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):
- Shared/WebKeyboardEvent.cpp:
(WebKit::WebKeyboardEvent::WebKeyboardEvent):
(WebKit::WebKeyboardEvent::encode const):
(WebKit::WebKeyboardEvent::decode):
- Shared/ios/NativeWebKeyboardEventIOS.mm:
(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
- Shared/ios/WebIOSEventFactory.h:
- Shared/ios/WebIOSEventFactory.mm:
(WebIOSEventFactory::createWebKeyboardEvent):
Compile more Mac code on iOS. Just like on Mac we maintain some bookkeeping on
whether an event was handled by the Input Manager.
- UIProcess/Automation/ios/WebAutomationSessionIOS.mm:
(WebKit::WebAutomationSession::sendSynthesizedEventsToPage): Pass NativeWebKeyboardEvent::HandledByInputMethod::No
to keep the behavior we have now.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanupInteraction]):
(-[WKContentView shouldSuppressUpdateCandidateView]): Added. Used to tell UIKit whether to
suppress updating/showing the candidate view.
(-[WKContentView setMarkedText:selectedRange:]):
Bookkeeping to track whether we need to delay showing/updating the inline candidate view.
The concept in UIKit is deferment, but at the time of writing its simply a request to delay
the update for 0.4 seconds. We opt into this delay only for the first key that begins
marked text (i.e. the transition from no marked text to marked text). We do this because we
may not have up-to-date editor state at the time UIKit is ready to show/update the inline
candidate view for us to answer -textFirstRect and -textLastRect, which UIKit calls as part
of computing the frame rect for the inline candidate view on screen. Once we receive up-to-date
editor state, in -selectionChanged, we tell UIKit to layout the keyboard, which ultimately
causes it to re-compute the frame rect for the inline candidate view and show it.
(-[WKContentView handleKeyWebEvent:]): Pass NativeWebKeyboardEvent::HandledByInputMethod::No
to keep the behavior we have now.
(-[WKContentView handleKeyWebEvent:withCompletionHandler:]): Ask the keyboard to handle the
event using the Input Manager. If it was handled then there is no need to delay calling the
completion handler, call it, then tell the web process about the key event and that it was
already handled by the Input Manager.
(-[WKContentView _selectionChanged]): Tell the keyboard to update the candidate view, if needed.
- WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
(WebKit::WebEditorClient::handleInputMethodKeydown): Mark the event as default handled if
the UI process told us that the event was handled by the Input Manager just like we do on Mac.
- 1:39 PM Changeset in webkit [244974] by
-
- 16 edits in trunk/LayoutTests
Tests under pointerevents/ios are flaky
https://bugs.webkit.org/show_bug.cgi?id=197624
Reviewed by Dean Jackson.
Tests under pointerevents/ios generate touches that use UIScriptController may not succeed if ran in multiple iterations or in a specific
order due to not ensuring that all touches are released when the test completes. We now ensure that we do when running swipes, taps, and pinches.
- pointerevents/ios/pointer-events-dispatch-on-stylus.html: Use the new ui.tapStylus() method to generate a tap with the stylus which ensures all
touches are removed upon completion.
- pointerevents/ios/pointer-events-dispatch-on-touch.html: Use a tap to ensure all touches are removed upon completion.
- pointerevents/ios/pointer-events-implicit-capture-has-pointer-capture-in-pointer-down.html: Use a tap to ensure all touches are removed upon completion.
- pointerevents/ios/pointer-events-implicit-capture-release-exception.html: Use a tap to ensure all touches are removed upon completion.
- pointerevents/ios/pointer-events-implicit-capture-release.html: Use a tap to ensure all touches are removed upon completion.
- pointerevents/ios/pointer-events-prevent-default-allows-click-event.html: Ensure both the "click" event and the tap generation have succeeded before
marking the test as complete.
- pointerevents/ios/pointer-events-set-pointer-capture-exceptions.html: Use a tap to ensure all touches are removed upon completion.
- pointerevents/ios/touch-action-none-link-traversal.html: Ensure both the "load" event and the tap generation have succeeded before marking the test
as complete.
- pointerevents/ios/touch-action-pan-x-pan-y.html: Remove the requestAnimationFrame() call since ui.swipe() now resolves its promise once all touches
have completed.
- pointerevents/ios/touch-action-pan-x.html: Remove the requestAnimationFrame() call since ui.swipe() now resolves its promise once all touches
have completed.
- pointerevents/ios/touch-action-pan-y.html: Remove the requestAnimationFrame() call since ui.swipe() now resolves its promise once all touches
have completed.
- pointerevents/ios/touch-action-pinch-zoom-allows-zooming.html: Remove the requestAnimationFrame() call since ui.pinchOut() now resolves its promise
once all touches have completed.
- pointerevents/ios/touch-action-pointercancel-pan-x.html: We don't need to track "pointermove" events since dispatch of "pointercancel" is asynchronous
and the number of "pointermove" events prior to its dispatch can legitimately vary.
- pointerevents/ios/touch-action-pointercancel-pan-y.html: We don't need to track "pointermove" events since dispatch of "pointercancel" is asynchronous
and the number of "pointermove" events prior to its dispatch can legitimately vary.
- pointerevents/utils.js:
(const.ui.new.UIController.prototype.swipe): Wait until the swipe is complete before resolving the promise.
(const.ui.new.UIController.prototype.pinchOut): Use a custom sequence to ensure that the pinch releases touches upon completion.
(const.ui.new.UIController.prototype.tapStylus): Introduce this new method to perform a stylus tap which ensures all touches are complete before resolving
the promise.
(const.ui.new.UIController.prototype.beginTouches): Deleted.
(const.ui.new.UIController.prototype.beginStylus): Deleted.
- 1:36 PM Changeset in webkit [244973] by
-
- 2 edits in trunk/PerformanceTests
JS2 should print scores for different categories
https://bugs.webkit.org/show_bug.cgi?id=197605
Reviewed by Yusuke Suzuki.
- JetStream2/JetStreamDriver.js:
(displayCategoryScores):
(isInBrowser.document.onkeydown):
(Driver.prototype.async.start):
(Driver.prototype.async.reportScoreToRunBenchmarkRunner):
- 1:27 PM Changeset in webkit [244972] by
-
- 2 edits3 adds in trunk/JSTests
[PlayStation] JSC Stress tests failing due to timezone printing
https://bugs.webkit.org/show_bug.cgi?id=197615
PlayStation's strftime does not give timezone strings, which
results in time strings like "Wed Oct 23 1974 11:45:01 GMT-0700"
rather than "Wed Oct 23 1974 11:45:01 GMT-0700 (Pacific Daylight Time)"
which causes diff failures with the expectations. Add expectations
without the timezone string and use those on playstation.
Reviewed by Ross Kirsling.
- ChakraCore.yaml: Update these tests to use alternate expectation file on PlayStation
- ChakraCore/test/GlobalFunctions/InternalToString.baseline-jsc-playstation: Added.
- ChakraCore/test/Operators/equals.baseline-jsc-playstation: Added.
- ChakraCore/test/fieldopts/objtypespec-newobj.2.baseline-jsc-playstation: Added.
- 1:25 PM Changeset in webkit [244971] by
-
- 4 edits in trunk/Source/WebCore
Add assertions to CachedFrame to help figure out crash in CachedFrame constructor
https://bugs.webkit.org/show_bug.cgi?id=197621
Reviewed by Geoffrey Garen.
Add release assertions to try and figure out who is sometimes detaching the document from its
frame while constructing CachedFrames for its descendants.
- dom/Document.cpp:
(WebCore::Document::detachFromFrame):
- dom/Document.h:
(WebCore::Document::setMayBeDetachedFromFrame):
- history/CachedFrame.cpp:
(WebCore::CachedFrame::CachedFrame):
- 1:24 PM Changeset in webkit [244970] by
-
- 2 edits in trunk/Source/WebKit
Null check m_mainFrame in WebPageProxy.cpp
https://bugs.webkit.org/show_bug.cgi?id=197618
<rdar://problem/47463054>
Patch by Alex Christensen <achristensen@webkit.org> on 2019-05-06
Reviewed by Geoffrey Garen.
It's already null checked in some places, and the places where it isn't are causing crashes.
Let's fix all of them.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::createNewPage):
- 1:14 PM Changeset in webkit [244969] by
-
- 2 edits in trunk/Source/WebKit
Use more efficient path resolution logic
https://bugs.webkit.org/show_bug.cgi?id=197389
<rdar://problem/50268491>
Reviewed by Maciej Stachowiak.
The code in SandboxExtensionsCocoa.mm 'resolveSymlinksInPath' is pretty inefficient, and tries to reproduce (badly)
logic that is already provided by the operating system.
To make matters worse, 'resolvePathForSandboxExtension' was effectively performing the work of fully resolving
symlinks twice, since NSString's 'stringByStandardizingPath' method does some of this already.
Instead, we should just use NSString's 'stringByResolvingSymlinksInPath', which does the symlink resolution
using more efficient logic than our 'resolveSymlinksInPath' code.
- Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::resolveSymlinksInPath): Removed.
(WebKit::resolvePathForSandboxExtension): Remove redundant call to 'resolveSymlinksInPath', and switches from
'stringByStandardizingPath' to 'stringByResolvingSymlinksInPath', which can take the place of both calls.
(WebKit::stringByResolvingSymlinksInPath): Switch to call 'stringByResolvingSymlinksInPath'.
- 11:32 AM Changeset in webkit [244968] by
-
- 7 edits in tags/Safari-608.1.21/Source
Versioning.
- 11:28 AM Changeset in webkit [244967] by
-
- 1 copy in tags/Safari-608.1.21
New tag.
- 10:50 AM Changeset in webkit [244966] by
-
- 6 edits in trunk/Source/WebKit
Introduce SPI to request modern compatibility mode but defer to site-specific quirks
https://bugs.webkit.org/show_bug.cgi?id=197614
<rdar://problem/50208577>
Reviewed by Tim Horton.
Add plumbing for a new _allowSiteSpecificQuirksToOverrideCompatibilityMode SPI property on
WKWebpagePreferences.
- UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::copy const):
- UIProcess/API/APIWebsitePolicies.h:
- UIProcess/API/Cocoa/WKWebpagePreferences.mm:
(-[WKWebpagePreferences _allowSiteSpecificQuirksToOverrideCompatibilityMode]):
(-[WKWebpagePreferences _setAllowSiteSpecificQuirksToOverrideCompatibilityMode:]):
- UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
- UIProcess/WebPageProxy.cpp:
Use currentRequest instead of originalRequest; see internal change for more details.
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
- 10:50 AM Changeset in webkit [244965] by
-
- 2 edits in trunk/LayoutTests
Fix typo in https://trac.webkit.org/changeset/244962/webkit
https://bugs.webkit.org/show_bug.cgi?id=136627
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 10:23 AM Changeset in webkit [244964] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, rolling out r244917.
Caused
TestWebKitAPI.WKWebView.InitializingWebViewWithEphemeralStorageDoesNotLog
failure on debug bots.
Reverted changeset:
"Use more efficient path resolution logic"
https://bugs.webkit.org/show_bug.cgi?id=197389
https://trac.webkit.org/changeset/244917
- 10:07 AM Changeset in webkit [244963] by
-
- 7 edits in trunk/Source
Versioning.
- 9:14 AM Changeset in webkit [244962] by
-
- 2 edits in trunk/LayoutTests
mark media/track/track-cue-rendering-vertical.html as failing for Mojave after r244891 unmarked it.
https://bugs.webkit.org/show_bug.cgi?id=136627
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:03 AM Changeset in webkit [244961] by
-
- 2 edits in trunk/Source/WebCore
[GLib] WebCore::MainThreadSharedTimer should use the appropriate GSource priority, name
https://bugs.webkit.org/show_bug.cgi?id=197606
Reviewed by Carlos Garcia Campos.
- platform/MainThreadSharedTimer.cpp:
(WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
Use the MainThreadSharedTimer GLib priority for this timer. The name is
also adjusted accordingly.
- 12:54 AM Changeset in webkit [244960] by
-
- 2 edits in trunk
[CMake] fuse-ld should also be set in module linker flags
https://bugs.webkit.org/show_bug.cgi?id=197583
Reviewed by Michael Catanzaro.
Add fuse-ld to CMAKE_MODULE_LINKER_FLAGS.
- Source/cmake/OptionsCommon.cmake:
- 12:04 AM Changeset in webkit [244959] by
-
- 1 edit1 add in trunk/JSTests
[JSC] Add more tests for DFG SetLocal emission for adhoc SetterCall frame
https://bugs.webkit.org/show_bug.cgi?id=197587
Reviewed by Sam Weinig.
This patch adds more tests to r244939. It also inlines setter calls, and eventually see that no PutStack is emitted because MovHint's KillStack kills it.
- stress/adhoc-setter-frame-should-not-be-killed.js: Added.
May 5, 2019:
- 10:18 PM Changeset in webkit [244958] by
-
- 7 edits in tags/Safari-608.1.20.0.2/Source
Versioning.
- 10:16 PM Changeset in webkit [244957] by
-
- 1 copy in tags/Safari-608.1.20.0.2
New tag.
- 3:45 AM Changeset in webkit [244956] by
-
- 2 edits in trunk/Source/WebCore
fast/attachment/attachment-folder-icon.html is an Image Only failure on recent macOS builds
https://bugs.webkit.org/show_bug.cgi?id=197593
<rdar://problem/50379267>
Reviewed by Tim Horton.
On recent versions of macOS, -[NSWorkspace iconForFileType:] returns the generic document icon for
"public.directory". Instead of using this UTI to generate attachment icons for "multipart/x-folder" and
"application/vnd.apple.folder", we should instead be using "public.folder", which has a folder icon. This fixes
the existing test fast/attachment/attachment-folder-icon.html, which currently results in an image diff on these
builds of macOS.
- rendering/RenderThemeMac.mm:
(WebCore::iconForAttachment):