Timeline
May 27, 2016:
- 10:51 PM Changeset in webkit [201482] by
-
- 60 edits1 copy in trunk/Source
callOnMainThread() should not copy captured lambda variables
https://bugs.webkit.org/show_bug.cgi?id=158166
Reviewed by Brady Eidson.
Source/WebCore:
callOnMainThread() should not copy captured lambda variables. This
function is usually called cross-thread with a lambda and copying
the lambda (and its captured variables) can lead to thread-safety
issues.
This patch updates callOnMainThread() to take a NoncopyableFunction&&
in parameter instead of a std::function. The call sites of
callOnMainThread() have also been updated to use C++14's lambda
capture with initializer.
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
- Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::didCompletePermissionCheck):
(WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest):
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::runTask):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::constraintsValidated):
(WebCore::UserMediaRequest::userMediaAccessGranted):
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::scheduleNodeDeletion):
(WebCore::AudioContext::isPlayingAudioDidChange):
- dom/Document.cpp:
(WebCore::Document::postTask):
(WebCore::Document::pendingTasksTimerFired): Deleted.
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript):
- fileapi/AsyncFileStream.cpp:
(WebCore::callOnFileThread):
(WebCore::AsyncFileStream::~AsyncFileStream):
(WebCore::AsyncFileStream::perform):
- fileapi/AsyncFileStream.h:
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerFileBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
(WebCore::ThreadableBlobRegistry::blobSize):
(WebCore::ThreadableBlobRegistry::unregisterBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked): Deleted.
- loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::dispatchDidImportIconURLForPageURLOnMainThread):
(WebCore::IconDatabase::dispatchDidImportIconDataForPageURLOnMainThread):
- page/ResourceUsageThread.cpp:
(WebCore::ResourceUsageThread::notifyObservers):
(WebCore::ResourceUsageThread::threadBody):
- page/ResourceUsageThread.h:
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::dispatchBarrier):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
- page/scrolling/ScrollingThread.h:
- page/scrolling/ios/ScrollingTreeIOS.cpp:
(WebCore::ScrollingTreeIOS::invalidate):
(WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
(WebCore::ScrollingTreeIOS::currentSnapPointIndicesDidChange):
(WebCore::ScrollingTreeIOS::createScrollingTreeNode): Deleted.
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::releaseReferencesToScrollerImpsOnTheMainThread):
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::releaseMemory):
- platform/audio/ios/MediaSessionManagerIOS.mm:
(-[WebMediaSessionHelper dealloc]):
(-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
(-[WebMediaSessionHelper stopMonitoringAirPlayRoutes]):
- platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::prepare):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
(-[WebCDMSessionAVFoundationObjCListener observeValueForKeyPath:ofObject:change:context:]):
- platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(-[WebAVOutputDeviceMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForResponseToAuthenticationChallenge:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::CMTimebaseEffectiveRateChangedCallback):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::scheduleDeferredTask):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]):
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]):
(-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]):
(-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
(-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):
(-[WebAVSampleBufferErrorListener layerFailedToDecode:]):
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::patternReleaseCallback):
- platform/graphics/cg/PatternCG.cpp:
(WebCore::patternReleaseCallback):
- platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::scheduleDeferredTask):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/mac/AVMediaCaptureSource.h:
- platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::scheduleDeferredTask):
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::getMediaStreamTrackSources):
- platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:
(WebCore::WebAudioSourceProviderAVFObjC::prepare):
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::getMediaStreamTrackSources):
- platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::start):
(WebCore::BlobResourceHandle::notifyFinish):
- platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::decode):
- platform/network/DataURLDecoder.h:
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSession dealloc]):
(-[WebCoreNSURLSessionDataTask cancel]):
(-[WebCoreNSURLSessionDataTask suspend]):
(-[WebCoreNSURLSessionDataTask resume]):
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::didReceiveHeader):
(WebCore::CurlDownload::didReceiveData): Deleted.
Source/WebKit:
callOnMainThread() should not copy captured lambda variables. This
function is usually called cross-thread with a lambda and copying
the lambda (and its captured variables) can lead to thread-safety
issues.
This patch updates callOnMainThread() to take a NoncopyableFunction&&
in parameter instead of a std::function. The call sites of
callOnMainThread() have also been updated to use C++14's lambda
capture with initializer.
- Storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::deleteEmptyDatabase):
- Storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::dispatch):
- Storage/StorageSyncManager.h:
- Storage/StorageThread.cpp:
(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):
(WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
- Storage/StorageThread.h:
- Storage/StorageTracker.cpp:
(WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
(WebCore::StorageTracker::setOriginDetails):
Source/WebKit/mac:
callOnMainThread() should not copy captured lambda variables. This
function is usually called cross-thread with a lambda and copying
the lambda (and its captured variables) can lead to thread-safety
issues.
This patch updates callOnMainThread() to take a NoncopyableFunction&&
in parameter instead of a std::function. The call sites of
callOnMainThread() have also been updated to use C++14's lambda
capture with initializer.
- Storage/WebDatabaseManagerClient.mm:
(DidModifyOriginData::dispatchToMainThread):
(DidModifyOriginData::DidModifyOriginData): Deleted.
- Storage/WebStorageTrackerClient.mm:
(WebStorageTrackerClient::dispatchDidModifyOrigin):
Source/WTF:
callOnMainThread() should not copy captured lambda variables. This
function is usually called cross-thread with a lambda and copying
the lambda (and its captured variables) can lead to thread-safety
issues.
This patch updates callOnMainThread() to take a NoncopyableFunction&&
in parameter instead of a std::function. The call sites of
callOnMainThread() have also been updated to use C++14's lambda
capture with initializer.
- WTF.xcodeproj/project.pbxproj:
- wtf/FunctionDispatcher.h:
- wtf/NoncopyableFunction.h:
- Moved NoncopyableFunction from FunctionDispatcher.h to NoncopyableFunction.h.
- Add a new operator=(nullptr_t) operator to NoncopyableFunction to match std::function, as one of the call sites needed it.
- wtf/MainThread.cpp:
(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
- wtf/MainThread.h:
- 10:44 PM Changeset in webkit [201481] by
-
- 54 edits15 adds in trunk/Source
[JSC] implement async functions proposal
https://bugs.webkit.org/show_bug.cgi?id=156147
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Adds support for
async
functions, proposed in https://tc39.github.io/ecmascript-asyncawait/.
On the front-end side, "await" becomes a contextual keyword when used within an async function,
which triggers parsing an AwaitExpression. "await" becomes an illegal identifier name within
these contexts. The bytecode generated from an "await" expression is identical to that generated
in a "yield" expression in a Generator, as AsyncFunction reuses generator's state machine mechanism.
There are numerous syntactic forms for language features, including a variation on ArrowFunctions,
requiring the keywordasync
to precede ArrowFormalParameters, and similarly, MethodDefinitions,
which are ordinary MethodDefinitions preceded by the keywordasync
.
An async function desugars to the following:
`
async function asyncFn() {
}
becomes:
function asyncFn() {
let generator = {
@generatorNext: function(@generator, @generatorState, @generatorValue, @generatorResumeMode) {
generator state machine stuff here
},
@generatorState: 0,
@generatorThis: this,
@generatorFrame: null
};
return @asyncFunctionResume(generator, undefined, GeneratorResumeMode::NormalMode);
}
`
@asyncFunctionResume()
is similar to@generatorResume
, with the exception that it will wrap the
result of invoking@generatorNext()
in a Promise, and will avoid allocating an iterator result
object.
If the generator has yielded (an AwaitExpression has occurred), resumption will occur automatically
once the await-expression operand is finished, via Promise chaining.
- API/JSScriptRef.cpp:
(parseScript):
- CMakeLists.txt:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/AsyncFunctionPrototype.js: Added.
(asyncFunctionResume):
- builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createExecutable):
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finishCreation):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::isArrowFunction):
(JSC::UnlinkedCodeBlock::isOrdinaryArrowFunction):
(JSC::UnlinkedCodeBlock::isAsyncArrowFunction):
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitNewMethodDefinition):
(JSC::BytecodeGenerator::emitNewFunction):
(JSC::BytecodeGenerator::emitLoadArrowFunctionLexicalEnvironment):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::makeFunction):
- bytecompiler/NodesCodegen.cpp:
(JSC::FunctionNode::emitBytecode):
- inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::parse):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emitNewFuncCommon):
(JSC::JIT::emit_op_new_async_func):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_async_func_exp):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jsc.cpp:
(runInteractive):
(printUsageStatement):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createAsyncFunctionBody):
- parser/Keywords.table:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionDeclarationStatement):
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseAwaitExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseAsyncFunctionExpression):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):
(JSC::Parser<LexerType>::printUnexpectedTokenText):
- parser/Parser.h:
(JSC::isIdentifierOrKeyword):
(JSC::Scope::Scope):
(JSC::Scope::setSourceParseMode):
(JSC::Scope::isAsyncFunction):
(JSC::Scope::isAsyncFunctionBoundary):
(JSC::Scope::isModule):
(JSC::Scope::setIsFunction):
(JSC::Scope::setIsAsyncArrowFunction):
(JSC::Scope::setIsAsyncFunction):
(JSC::Scope::setIsAsyncFunctionBody):
(JSC::Scope::setIsAsyncArrowFunctionBody):
(JSC::Parser::ExpressionErrorClassifier::forceClassifyExpressionError):
(JSC::Parser::ExpressionErrorClassifier::propagateExpressionErrorClass):
(JSC::Parser::ExpressionErrorClassifier::indicatesPossibleAsyncArrowFunction):
(JSC::Parser::forceClassifyExpressionError):
(JSC::Parser::declarationTypeToVariableKind):
(JSC::Parser::closestParentOrdinaryFunctionNonLexicalScope):
(JSC::Parser::pushScope):
(JSC::Parser::popScopeInternal):
(JSC::Parser::matchSpecIdentifier):
(JSC::Parser::isDisallowedIdentifierAwait):
(JSC::Parser::disallowedIdentifierAwaitReason):
(JSC::parse):
- parser/ParserModes.h:
(JSC::isFunctionParseMode):
(JSC::isAsyncFunctionParseMode):
(JSC::isAsyncArrowFunctionParseMode):
(JSC::isAsyncFunctionWrapperParseMode):
(JSC::isAsyncFunctionBodyParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):
(JSC::constructAbilityForParseMode):
- parser/ParserTokens.h:
- parser/SourceCodeKey.h:
(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::runtimeFlags):
(JSC::SourceCodeKey::operator==):
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createAsyncFunctionBody):
- runtime/AsyncFunctionConstructor.cpp: Added.
(JSC::AsyncFunctionConstructor::AsyncFunctionConstructor):
(JSC::AsyncFunctionConstructor::finishCreation):
(JSC::callAsyncFunctionConstructor):
(JSC::constructAsyncFunctionConstructor):
(JSC::AsyncFunctionConstructor::getCallData):
(JSC::AsyncFunctionConstructor::getConstructData):
- runtime/AsyncFunctionConstructor.h: Added.
(JSC::AsyncFunctionConstructor::create):
(JSC::AsyncFunctionConstructor::createStructure):
- runtime/AsyncFunctionPrototype.cpp: Added.
(JSC::AsyncFunctionPrototype::AsyncFunctionPrototype):
(JSC::AsyncFunctionPrototype::finishCreation):
- runtime/AsyncFunctionPrototype.h: Added.
(JSC::AsyncFunctionPrototype::create):
(JSC::AsyncFunctionPrototype::createStructure):
- runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
- runtime/CodeCache.h:
- runtime/CommonIdentifiers.h:
- runtime/Completion.cpp:
(JSC::checkSyntax):
(JSC::checkModuleSyntax):
- runtime/Completion.h:
- runtime/Executable.cpp:
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ProgramExecutable::checkSyntax):
- runtime/Executable.h:
- runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
- runtime/FunctionConstructor.h:
- runtime/JSAsyncFunction.cpp: Added.
(JSC::JSAsyncFunction::JSAsyncFunction):
(JSC::JSAsyncFunction::createImpl):
(JSC::JSAsyncFunction::create):
(JSC::JSAsyncFunction::createWithInvalidatedReallocationWatchpoint):
- runtime/JSAsyncFunction.h: Added.
(JSC::JSAsyncFunction::allocationSize):
(JSC::JSAsyncFunction::createStructure):
- runtime/JSFunction.cpp:
(JSC::JSFunction::getOwnPropertySlot):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::asyncFunctionPrototype):
(JSC::JSGlobalObject::asyncFunctionStructure):
- runtime/ModuleLoaderObject.cpp:
(JSC::moduleLoaderObjectParseModule):
- runtime/RuntimeFlags.h:
(JSC::RuntimeFlags::operator==):
(JSC::RuntimeFlags::operator!=):
- tests/stress/async-await-basic.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrow):
(shouldThrowAsync):
(let.AsyncFunction.async):
(async.asyncFunctionForProto):
(Object.getPrototypeOf.async):
(Object.getPrototypeOf.async.method):
(async):
(async.method):
(async.asyncNonConstructorDecl):
(shouldThrow.new.async):
(shouldThrow.new.async.nonConstructor):
(async.asyncDecl):
(async.f):
(MyError):
(async.asyncDeclThrower):
(shouldThrowAsync.async):
(resolveLater):
(rejectLater):
(async.resumeAfterNormal):
(O.async.resumeAfterNormal):
(resumeAfterNormalArrow.async):
(async.resumeAfterThrow):
(O.async.resumeAfterThrow):
(resumeAfterThrowArrow.async):
(catch):
- tests/stress/async-await-module-reserved-word.js: Added.
(shouldThrow):
(SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await):
(checkModuleSyntaxError.String.raw.await):
(checkModuleSyntaxError.String.raw.async.await):
(SyntaxError.Cannot.declare.named):
- tests/stress/async-await-mozilla.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrow):
(shouldThrowAsync):
(assert):
(shouldThrowSyntaxError):
(mozSemantics.async.empty):
(mozSemantics.async.simpleReturn):
(mozSemantics.async.simpleAwait):
(mozSemantics.async.simpleAwaitAsync):
(mozSemantics.async.returnOtherAsync):
(mozSemantics.async.simpleThrower):
(mozSemantics.async.delegatedThrower):
(mozSemantics.async.tryCatch):
(mozSemantics.async.tryCatchThrow):
(mozSemantics.async.wellFinally):
(mozSemantics.async.finallyMayFail):
(mozSemantics.async.embedded.async.inner):
(mozSemantics.async.embedded):
(mozSemantics.async.fib):
(mozSemantics.async.isOdd.async.isEven):
(mozSemantics.async.isOdd):
(mozSemantics.hardcoreFib.async.fib2):
(mozSemantics.namedAsyncExpr.async.simple):
(mozSemantics.async.executionOrder.async.first):
(mozSemantics.async.executionOrder.async.second):
(mozSemantics.async.executionOrder.async.third):
(mozSemantics.async.executionOrder):
(mozSemantics.async.miscellaneous):
(mozSemantics.thrower):
(mozSemantics.async.defaultArgs):
(mozSemantics.shouldThrow):
(mozSemantics):
(mozMethods.X):
(mozMethods.X.prototype.async.getValue):
(mozMethods.X.prototype.setValue):
(mozMethods.X.prototype.async.increment):
(mozMethods.X.prototype.async.getBaseClassName):
(mozMethods.X.async.getStaticValue):
(mozMethods.Y.prototype.async.getBaseClassName):
(mozMethods.Y):
(mozFunctionNameInferrence.async.test):
(mozSyntaxErrors):
- tests/stress/async-await-reserved-word.js: Added.
(assert):
(shouldThrowSyntaxError):
(AsyncFunction.async):
- tests/stress/async_arrow_functions_lexical_arguments_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrowAsync):
(noArgumentsArrow2.async):
- tests/stress/async_arrow_functions_lexical_new.target_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrowAsync):
(C1):
(C2):
(shouldThrowAsync.async):
- tests/stress/async_arrow_functions_lexical_super_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(BaseClass.prototype.baseClassValue):
(BaseClass):
(ChildClass.prototype.asyncSuperProp):
(ChildClass.prototype.asyncSuperProp2):
(ChildClass):
- tests/stress/async_arrow_functions_lexical_this_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(d.y):
Source/WebKit/mac:
- WebView/WebPreferencesPrivate.h:
Source/WebKit/win:
- Interfaces/IWebPreferencesPrivate.idl:
Source/WebKit2:
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- 9:48 PM Changeset in webkit [201480] by
-
- 2 edits in trunk/Source/WebKit2
Improve lambda capture in NetworkCache::Storage::synchronize()
https://bugs.webkit.org/show_bug.cgi?id=158176
Reviewed by Brady Eidson.
Improve lambda capture in NetworkCache::Storage::synchronize(). We can
now capture the std::unique_ptr<> variables directly thanks to:
- C++14's support for initializer's in lambda captures
- RunLoop::dispatch() now takes a NoncopyableFunction in instead of a std::function, allowing us to capture non-copyable variables.
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::synchronize):
- 9:18 PM Changeset in webkit [201479] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, build fix for JSCOnly port.
https://bugs.webkit.org/show_bug.cgi?id=158111
Use NoncopyableFunction instead of std::function<>.
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::TimerBase::ScheduledTask::create):
(WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
- 6:22 PM Changeset in webkit [201478] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r190574): Swipe snapshots are always black on iPhone 5
https://bugs.webkit.org/show_bug.cgi?id=158171
<rdar://problem/24639709>
Reviewed by Beth Dakin.
- platform/graphics/cocoa/IOSurface.mm:
(optionsForBiplanarSurface):
(optionsFor32BitSurface):
(IOSurface::IOSurface):
(IOSurface::format):
We are supposed to be using bi-planar 422f, not yuvf. They're the same
size, but different formats, and 422f is supported in more places.
Clean up the IOSurface constructor so we don't have a switch inside an if
with random ASSERT_NOT_REACHED, making helper functions to build the
options dictionary for arbitrary-size biplanar and 32-bit single-planar
surfaces.
I don't know how to write a test because IOSurface is not supported
in the simulator.
- 5:44 PM Changeset in webkit [201477] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Not all transitively dominated nodes display their retained size
https://bugs.webkit.org/show_bug.cgi?id=158174
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-27
Reviewed by Timothy Hatcher.
- UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._isDominatedByNonBaseParent):
Use the parent reference changing in the loop instead of always using the same parent.
- 5:07 PM Changeset in webkit [201476] by
-
- 5 edits2 adds in trunk
EventHandler finds incorrect scrollable container.
https://bugs.webkit.org/show_bug.cgi?id=158132
<rdar://problem/26423126>
Reviewed by Brent Fulgham.
Fix the logic that checks whether we are at the beginning or at the end of the container (horizontally).
While scrolling to the right, deltaX has negative values. So in case of deltaX < 0, we need to check if
the container is not scrolled all the way to the right.
Source/WebCore:
Test: fast/scrolling/scroll-container-horizontally.html
- page/mac/EventHandlerMac.mm:
(WebCore::findEnclosingScrollableContainer):
LayoutTests:
- fast/scrolling/scroll-container-horizontally-expected.txt: Added.
- fast/scrolling/scroll-container-horizontally.html: Added.
- platform/ios-simulator/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 5:06 PM Changeset in webkit [201475] by
-
- 10 edits2 copies1 add in trunk/Tools
Display failing JSC stress tests in buildbot dashboard
https://bugs.webkit.org/show_bug.cgi?id=156595
Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-05-27
Reviewed by Alexey Proskuryakov.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js:
(Buildbot.prototype.javaScriptCoreTestFailuresURLForIteration):
(Buildbot.prototype.javaScriptCoreTestStdioUrlForIteration):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:
(BuildbotCombinedQueueView.prototype.update):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration):
(BuildbotIteration.prototype._parseData):
(BuildbotIteration.prototype.loadLayoutTestResults):
(BuildbotIteration.prototype.):
(BuildbotIteration.prototype.loadJavaScriptCoreTestResults):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype._createLoadingIndicator):
(BuildbotQueueView.prototype.):
(BuildbotQueueView.prototype._onPopoverCopy):
(BuildbotQueueView.prototype._popoverContentForJavaScriptCoreTestRegressions):
(BuildbotQueueView.prototype._presentPopoverForJavaScriptCoreTestRegressions):
(BuildbotQueueView.prototype._addIterationHeadingToPopover):
(BuildbotQueueView.prototype._testStepFailureDescription):
(BuildbotQueueView.prototype._testStepFailureDescriptionWithCount):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTestResults.js:
(BuildbotTestResults.prototype.addJavaScriptCoreTestFailures):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.appendBuilderQueueStatus):
(BuildbotTesterQueueView.prototype.update):
(BuildbotTesterQueueView.prototype._popoverContentForLayoutTestRegressions):
(BuildbotTesterQueueView.prototype._presentPopoverForLayoutTestRegressions):
(BuildbotTesterQueueView.prototype._testStepFailureDescription): Deleted.
(BuildbotTesterQueueView.prototype._testStepFailureDescriptionWithCount): Deleted.
(BuildbotTesterQueueView.prototype.): Deleted.
(BuildbotTesterQueueView.prototype.content.oncopy): Deleted.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/index.html:
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbot.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbotQueue.js.
(MockBuildbot):
(MockBuildbot.prototype.buildPageURLForIteration):
(MockBuildbot.prototype.javaScriptCoreTestFailuresURLForIteration):
(MockBuildbot.prototype.javaScriptCoreTestStdioUrlForIteration):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbotQueue.js:
(MockBuildbotQueue):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbotTestResults.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbotQueue.js.
(MockBuildbotTestResults):
(MockBuildbotTestResults.prototype.addJavaScriptCoreTestFailures):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/test-jsc-results.json: Added.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/tests.js:
- 4:58 PM Changeset in webkit [201474] by
-
- 23 edits in trunk/Source
Decrease flicker when changing video presentation mode.
https://bugs.webkit.org/show_bug.cgi?id=158148
rdar://problem/24476949
Patch by Jeremy Jones <jeremyj@apple.com> on 2016-05-27
Source/WebCore:
Reviewed by Jer Noble.
No new tests because there is no behavior change. This change is about the timing of
moving AVPlayerLayers between layers to prevent flicker.
1) Moving an AVPlayerLayer between CAContexts can flicker. So always keep two
AVPlayerLayers around and add and remove them from the inline and fullscreen contexts.
2) Wait to show the inline placeholder until the fullscreen video layer has been installed.
3) Wait to remove the fullscreen video layer until the placeholder has been removed.
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::isVideoLayerInline): Expose isVideoLayerInline to the shadow DOM.
(WebCore::MediaControlsHost::setPreparedForInline): Expose setPreparedForInline to the shadow DOM.
- Modules/mediacontrols/MediaControlsHost.h: Add setPreparedForInline and isVideoLayerInline
- Modules/mediacontrols/MediaControlsHost.idl: Add setPreparedForInline and isVideoLayerInline
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.showInlinePlaybackPlaceholderWhenSafe): Wait to show placeholder when entering fullscreen.
(Controller.prototype.handlePresentationModeChange): Wait to show placeholder, and notify when placeholder is removed.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setPreparedForInline):
(WebCore::HTMLMediaElement::waitForPreparedForInlineThen): Used to delay fullscreen cleanup until placeholder is removed.
(WebCore::HTMLMediaElement::setVideoFullscreenLayer): Add a callback so we can wait until this completes before continuing.
- html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::isVideoLayerInline):
(WebCore::HTMLMediaElement::waitForPreparedForInlineThen):
(WebCore::HTMLMediaElement::setVideoFullscreenLayer): Add completionHandler.
- platform/cocoa/WebVideoFullscreenModelVideoElement.h:
(WebCore::WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): Add completionHandler.
(WebCore::WebVideoFullscreenModelVideoElement::waitForPreparedForInlineThen): Added.
- platform/cocoa/WebVideoFullscreenModelVideoElement.mm:
(WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): Add completionHandler.
(WebVideoFullscreenModelVideoElement::waitForPreparedForInlineThen):
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::setVideoFullscreenLayer): Add completionHandler.
- platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayer::setVideoFullscreenLayer): Add completionHandler.
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenLayer): Add completionHandler.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): Create two video layers.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Allow two video layers.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): Add completionHandler.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity): Allow two video layers.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Allow two video layers.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer): Add completionHandler.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers): Allow two video layers.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenLayer): Add completionHandler.
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h:
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm:
(WebCore::VideoFullscreenLayerManager::setVideoLayers): Allow two video layers.
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer): Add completionHandler.
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenFrame): Allow two video layers.
(WebCore::VideoFullscreenLayerManager::didDestroyVideoLayer): Allow two video layers.
(WebCore::VideoFullscreenLayerManager::setVideoLayer): Deleted.
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::didSetupFullscreen): Use completionHandler.
(WebVideoFullscreenControllerContext::didExitFullscreen): Use completionHandler.
Source/WebKit2:
Reviewed by Tim Horton.
Prevent flicker by using setVideoFullscreenLayer with a completion handler to delay
enter fullscreen and cleanup fullscreen until the video layer has completely been
installed or removed.
- WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::didSetupFullscreen):
(WebKit::WebVideoFullscreenManager::didExitFullscreen):
- 4:42 PM Changeset in webkit [201473] by
-
- 3 edits3 adds in trunk
DebuggerCallFrame crashes when updated with the globalExec because neither ShadowChicken's algorithm nor StackVisitor's algorithm reasons about the globalExec
https://bugs.webkit.org/show_bug.cgi?id=158104
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
I think globalExec is a special enough case that it should be handled
at the layers above ShadowChicken and StackVisitor. Those APIs should
deal with real stack frames on the machine stack, not a heap constructed frame.
This patch makes DebuggerCallFrame::create aware that it may be
created with the globalObject->globalExec() by having it construct
a single DebuggerCallFrame that wraps the globalExec.
This fixes a crasher because we will construct a DebuggerCallFrame
with the globalExec when the Inspector is set to pause on all uncaught
exceptions and the JS program has a syntax error. Because the program
hasn't begun execution, there is no machine JS stack frame yet. So
DebuggerCallFrame is created with globalExec, which will cause it
to hit an assertion that dictates that the stack have size greater
than zero.
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::create):
LayoutTests:
- inspector/debugger/breakpoint-syntax-error-top-level-expected.txt: Added.
- inspector/debugger/breakpoint-syntax-error-top-level.html: Added.
- inspector/debugger/resources/file-with-syntax-error.js: Added.
- 4:34 PM Changeset in webkit [201472] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test fix after r201468.
Correct output handling to reduce flakiness on test bots.
- http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html:
- 3:31 PM Changeset in webkit [201471] by
-
- 15 edits2 adds in trunk
Crash in TreeScope::focusedElement
https://bugs.webkit.org/show_bug.cgi?id=158108
Reviewed by Enrica Casucci.
Source/WebCore:
The bug was caused by a flawed sequence of steps we took to remove an element. When an element is removed,
willRemoveChild and willRemoveChildren fire blur events on removed focused element and its ancestors and
unload event on any removed iframes. However, it was possible to focus an element on which we had fired blur
during an unload event, leaving m_focusedElement point to an element that's not in the document anymore.
Changing the order doesn't help because that would make it possible to insert the removed iframes back into
the document inside a event listener of the blur event, which was specifically fixed by r127534 four years ago.
Instead, fix the bug by not firing blur and change events on removed nodes. New behavior matches Firefox and HTML5
specification: https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule-one
Test: fast/shadow-dom/shadow-root-active-element-crash.html
- dom/ContainerNode.cpp:
(WebCore::willRemoveChild): Made this function static local since it didn't need to have access to any private
member variables. Call Document::nodeWillBeRemoved after disconnecting iframes since unload event handler could
allocate new Ranges just like mutation events.
(WebCore::willRemoveChildren): Ditto.
(WebCore::ContainerNode::removeChild): Removed the calls to removeFullScreenElementOfSubtree and
removeFocusedNodeOfSubtree as they're now called in Document::nodeWillBeRemoved.
(WebCore::ContainerNode::removeChildren): Ditto.
- dom/ContainerNode.h:
- dom/Document.cpp:
(WebCore::Document::removeFocusedNodeOfSubtree): Don't dispatch blur and change events when a node is removed.
(WebCore::Document::setFocusedElement): Added FocusRemovalEventsMode as the third argument. Avoid dispatching blur
and change events when FocusRemovalEventsMode::Dispatch is set.
(WebCore::Document::nodeChildrenWillBeRemoved): Added calls to removeFullScreenElementOfSubtree and
removeFocusedNodeOfSubtree. Also assert that no events are fired within this function. If we ever fire an event here,
"unloaded" iframes can be inserted back into a document before ContainerNode::removeChild actually removes them.
(WebCore::Document::nodeWillBeRemoved): Ditto.
- dom/Document.h:
- dom/TreeScope.cpp:
(WebCore::TreeScope::focusedElement): Added a release assertion to make sure the focused element is in the document
of the tree scope, and added an explicit type check just in case.
LayoutTests:
Added a regression test for accessing shadowRoot.activeElement after re-focusing an element
inside DOMNodeRemovedFromDocument event and unload events.
This patch also restores the expected result of fast/events/onblur-remove.html to that of when
the test was in r15720 and updated in r19014. The expected result was changed in r85495 as it was
converted to a eventSender test.
- fast/dom/Range/range-created-during-remove-children-expected.txt:
- fast/dom/Range/range-created-during-remove-children.html: Update the test to use unload event
of an iframe since we no longer fire blur event when removing a focused element.
- fast/dom/adopt-node-prevented-expected.txt:
- fast/dom/adopt-node-prevented.html: Ditto.
- fast/dom/remove-body-during-body-replacement2.html: Ditto. Use DOMNodeRemoved instead.
- fast/events/nested-event-remove-node-crash.html: Ditto. Use DOMNodeRemovedFromDocument instead.
- fast/events/onblur-remove-expected.txt:
- fast/events/onblur-remove.html: See above.
- fast/shadow-dom/shadow-root-active-element-crash-expected.txt: Added.
- fast/shadow-dom/shadow-root-active-element-crash.html: Added.
- 3:29 PM Changeset in webkit [201470] by
-
- 3 edits1 add in trunk/Source/JavaScriptCore
DFG::LazyJSValue::tryGetStringImpl() crashes for empty values
https://bugs.webkit.org/show_bug.cgi?id=158170
Reviewed by Michael Saboff.
The problem here is that jsDynamicCast<>() is evil! It avoids checking for the empty
value, presumably because this makes it soooper fast. In DFG IR, empty values can appear
anywhere because of TDZ.
This patch doesn't change jsDynamicCast<>(), but it hardens our wrappers for it in the DFG
and it has the affected code use one of those wrappers.
- dfg/DFGFrozenValue.h:
(JSC::DFG::FrozenValue::dynamicCast): Harden this.
(JSC::DFG::FrozenValue::cast):
- dfg/DFGLazyJSValue.cpp:
(JSC::DFG::LazyJSValue::tryGetStringImpl): Use the hardened wrapper.
- tests/stress/strcat-emtpy.js: Added. This used to crash every time.
(foo):
(i.catch):
- 2:42 PM Changeset in webkit [201469] by
-
- 5 edits in tags/Safari-602.1.34.1/Source
Versioning
- 1:50 PM Changeset in webkit [201468] by
-
- 6 edits in trunk
CSP: Fire 'load' events even when blocking loads via 'frame-src'.
https://bugs.webkit.org/show_bug.cgi?id=153150
<rdar://problem/24383162>
Reviewed by Daniel Bates.
Source/WebCore:
Always fire a load event, even when the load is blocked by CSP rules, so that
attackers cannot gain knowledge about the URL in the frame by blocking the
load and waiting long enough to be sure that a 'load' event would have
fired if the load wasn't blocked.
Inspired by Blink patch:
<https://src.chromium.org/viewvc/blink?view=rev&revision=165743>
Tests: http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html
- loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
LayoutTests:
- TestExpectations: Unskip the cross-origin load test.
- http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load-expected.txt: Update to match
our message format.
- 1:45 PM Changeset in webkit [201467] by
-
- 3 edits2 adds in trunk/Source/JavaScriptCore
regExpProtoFuncSplitFast should OOM before it swaps
https://bugs.webkit.org/show_bug.cgi?id=158157
Reviewed by Mark Lam.
This is a huge speed-up on some jsfunfuzz test cases because it makes us realize much
sooner that running a regexp split will result in swapping. It uses the same basic
approach as http://trac.webkit.org/changeset/201451: if the result array crosses a certain
size threshold, we proceed with a dry run to see how big the array will get before
allocating anything else. This way, bogus uses of split that would have OOMed only after
killing the user's machine will now OOM before killing the user's machine.
This is an enormous speed-up on some jsfunfuzz tests: they go from running for a long
time to running instantly.
- runtime/RegExpPrototype.cpp:
(JSC::advanceStringIndex):
(JSC::genericSplit):
(JSC::regExpProtoFuncSplitFast):
- runtime/StringObject.h:
(JSC::jsStringWithReuse):
(JSC::jsSubstring):
- tests/stress/big-split-captures.js: Added.
- tests/stress/big-split.js: Added.
- 1:32 PM Changeset in webkit [201466] by
-
- 2 edits in trunk/Source/WebCore
Document abandons its EventTargetData.
<https://webkit.org/b/158158>
Reviewed by Darin Adler.
Node::willBeDeletedFrom() is called when destroying all Node types *except* Document.
If a Document had an associated EventTargetData, it would not get cleaned up.
This patch moves the EventTargetData cleanup to ~Node() where it's guaranteed to run.
- dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::willBeDeletedFrom):
- 1:26 PM Changeset in webkit [201465] by
-
- 4 edits3 adds in trunk
ShadowChicken/DebuggerCallFrame don't properly handle when the entry stack frame is a tail deleted frame
https://bugs.webkit.org/show_bug.cgi?id=158131
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
There were bugs both in DebuggerCallFrame and ShadowChicken when the entry stack
frame(s) are tail deleted.
DebuggerCallFrame had an assertion saying that the entry frame shouldn't be
tail deleted. This is clearly wrong. The following program proves that this assertion
was misguided:
`
"use strict";
setTimeout(function foo() { return bar(); }, 0);
`
ShadowChicken had a very subtle bug when creating the shadow stack when
the entry frames of the stack were tail deleted. Because it places frames into its shadow
stack by walking the machine frame and looking up entries in the log,
the machine frame doesn't have any notion of those tail deleted frames
at the entry of execution. ShadowChicken would never find those frames
because it would look for tail deleted frames *before* consulting the
current machine frame. This is wrong because if the entry frames
are tail deleted, then there is no machine frame for them because there
is no machine frame before them! Therefore, we must search for tail deleted
frames *after* consulting a machine frame. This is sound because we will always
have at least one machine frame on the stack (when we are using StackVisitor on a valid ExecState).
So when we consult the machine frame that is the entry frame on the machine stack,
we will search for tail deleted frames that come before it in the shadow stack.
This will allow us to find those tail deleted frames that are the entry frames
for the shadow stack.
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::create):
- interpreter/ShadowChicken.cpp:
(JSC::ShadowChicken::Packet::dump):
(JSC::ShadowChicken::update):
(JSC::ShadowChicken::dump):
LayoutTests:
- inspector/debugger/resources/tail-deleted-frames-from-vm-entry.js: Added.
(timeout):
(bar):
- inspector/debugger/tail-deleted-frames-from-vm-entry-expected.txt: Added.
- inspector/debugger/tail-deleted-frames-from-vm-entry.html: Added.
- 1:22 PM Changeset in webkit [201464] by
-
- 26 edits in trunk
WorkQueue::dispatch() / RunLoop::dispatch() should not copy captured lambda variables
https://bugs.webkit.org/show_bug.cgi?id=158111
Reviewed by Darin Adler.
WorkQueue::dispatch() / RunLoop::dispatch() should not copy captured lambda variables.
These are often used cross-thread and copying the captured lambda variables can be
dangerous (e.g. we do not want to copy a String after calling isolatedCopy() upon
capture).
Source/JavaScriptCore:
- runtime/Watchdog.cpp:
(JSC::Watchdog::startTimer):
(JSC::Watchdog::Watchdog): Deleted.
(JSC::Watchdog::setTimeLimit): Deleted.
- runtime/Watchdog.h:
Source/WebKit2:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::clearDiskCacheEntries):
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::clear):
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
- Platform/IPC/Connection.cpp:
(IPC::Connection::processIncomingMessage):
- UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
- UIProcess/Storage/StorageManager.h:
Source/WTF:
This patch introduces a new NoncopyableFunction type that behaves similarly to
std::function but guarantees that the passed-in lambda (and its captured variables)
cannot be copied. This new NoncopyableFunction type is now used for
WorkQueue / RunLoop's dispatch() / dispatchAfter() which are commonly used
cross-thread. This should now allow us to call WorkQueue::dispatch() with a lambda
that captures a String like so:
[str = str.isolatedCopy()]() { }
Also note that even though this is not leveraged in this patch, NoncopyableFunction
would allow us to capture move-only types such as std::unique_ptr as so:
[p = WTFMove(p)]() { }
This does not work if we convert the lambda into an std::function because
std::function requires the lambda to be copyable, NoncopyableFunction does not.
- wtf/FunctionDispatcher.h:
(WTF::CallableWrapperBase::~CallableWrapperBase):
(WTF::NoncopyableFunction::NoncopyableFunction):
(WTF::NoncopyableFunction::operator()):
(WTF::NoncopyableFunction::operator bool):
(WTF::NoncopyableFunction::operator=):
- wtf/RunLoop.cpp:
(WTF::RunLoop::performWork):
(WTF::RunLoop::dispatch):
- wtf/RunLoop.h:
- wtf/WorkQueue.h:
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/efl/DispatchQueueWorkItemEfl.h:
(WorkItem::WorkItem):
(TimerWorkItem::create):
(TimerWorkItem::TimerWorkItem):
- wtf/efl/WorkQueueEfl.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::dispatchAfter):
- wtf/generic/WorkQueueGeneric.cpp:
(WorkQueue::dispatch):
(WorkQueue::dispatchAfter):
- wtf/glib/RunLoopGLib.cpp:
(WTF::DispatchAfterContext::DispatchAfterContext):
(WTF::RunLoop::dispatchAfter):
- wtf/win/WorkItemWin.cpp:
(WTF::WorkItemWin::WorkItemWin):
(WTF::WorkItemWin::create):
(WTF::HandleWorkItem::HandleWorkItem):
(WTF::HandleWorkItem::createByAdoptingHandle):
- wtf/win/WorkItemWin.h:
(WTF::WorkItemWin::function):
- wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::timerCallback):
(WTF::WorkQueue::dispatchAfter):
Tools:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::decidePolicyForNavigationAction):
- 1:14 PM Changeset in webkit [201463] by
-
- 3 edits in trunk/Source/WebCore
Attempt to fix the iOS build.
Unreviewed build fix.
- platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerLayer layoutSublayers]):
- 12:50 PM Changeset in webkit [201462] by
-
- 2 edits in trunk/Source/JavaScriptCore
Removed unused headers from ExecutableAllocatorFixedVMPool.cpp.
https://bugs.webkit.org/show_bug.cgi?id=158159
Reviewed by Darin Adler.
- jit/ExecutableAllocatorFixedVMPool.cpp:
- 12:45 PM Changeset in webkit [201461] by
-
- 5 edits3 adds in trunk
Modern IDB: After closing a Netflix video, trying to watch it again fails.
<rdar://problem/25092473> and https://bugs.webkit.org/show_bug.cgi?id=158160
Reviewed by Alex Christensen.
Source/WebCore:
New APITest: IndexedDB.WebProcessKillIDBCleanup
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::stop):
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient): All active transactions need to be aborted
(without callback, since there's no connection to callback to).
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup-1.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup-2.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm: Added.
- 12:22 PM Changeset in webkit [201460] by
-
- 2 edits in tags/Safari-602.1.34.1/Source/WebKit2
Merge r201453. rdar://problem/26502712
- 12:08 PM Changeset in webkit [201459] by
-
- 1 copy in tags/Safari-602.1.34.1
New Tag.
- 12:08 PM Changeset in webkit [201458] by
-
- 5 edits in trunk
AX: [ATK] accessibility/gtk/no-notification-for-unrendered-iframe-children.html began failing after r201416
https://bugs.webkit.org/show_bug.cgi?id=158152
Reviewed by Chris Fleizach.
The failure is actually a bug fix because only one child is being added, but two
notifications were being emitted. Now there is only one notification. To verify
this was the case, we really should examine the child reportedly being added. That
child is the ATK event's any_data, so pass along that child to the listener.
Tools:
- WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
LayoutTests:
The failing test and associated expectations were modified to remove the duplicate
notification and include the title of the added child for the notification we get.
- accessibility/gtk/no-notification-for-unrendered-iframe-children.html: Updated.
- accessibility/gtk/no-notification-for-unrendered-iframe-children-expected.txt: Updated.
- 11:50 AM Changeset in webkit [201457] by
-
- 8 edits in trunk
Expose content extension failure error codes in SPI
https://bugs.webkit.org/show_bug.cgi?id=158095
rdar://problem/26475651
Reviewed by Anders Carlsson.
Source/WebKit2:
- UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::synchronousRemoveAllContentExtensions):
(API::UserContentExtensionStore::invalidateContentExtensionVersion):
Added for testing.
(API::userContentExtensionStoreErrorCategory):
- UIProcess/API/APIUserContentExtensionStore.h:
- UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
Added the new enum, _WKUserContentExtensionStoreErrorCode.
- UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
Sometimes the error code returned by UserContentExtensionStore::compileContentExtension has the error code from compileRuleList.
When this happens, we want to get the message from the internal compiler error, but we want the NSError's code to always be CompileFailed.
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore _removeAllContentExtensions]):
(-[_WKUserContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]):
- UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h:
Added new invalidator for testing.
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/_WKUserContentExtensionStore.mm:
(checkDomain):
(TEST_F):
Add tests that use the new enum.
- 11:36 AM Changeset in webkit [201456] by
-
- 12 edits in trunk/Source/JavaScriptCore
get_by_id should support caching unset properties in the LLInt
https://bugs.webkit.org/show_bug.cgi?id=158136
Reviewed by Benjamin Poulain.
Recently, we started supporting prototype load caching for get_by_id
in the LLInt. This patch extends that to caching unset properties.
While it is uncommon in general for a program to see a single structure
without a given property, the Array.prototype.concat function needs to
lookup the Symbol.isConcatSpreadable property. For any existing code
That property will never be set as it did not exist prior to ES6.
Similarly to the get_by_id_proto_load bytecode, this patch adds a new
bytecode, get_by_id_unset that checks the structureID of the base and
assigns undefined to the result.
There are no new tests here since we already have many tests that
incidentally cover this change.
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::printGetByIdOp):
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFromLLInt):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setupGetByIdPrototypeCache):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- 11:35 AM Changeset in webkit [201455] by
-
- 9 edits1 add in trunk
WebRTC: Update RTCPeerConnection overloaded legacy operations to return a Promise
https://bugs.webkit.org/show_bug.cgi?id=158114
Reviewed by Eric Carlson.
Source/WebCore:
Update overloaded operations so that the legacy callback versions also return a promise
and never throw [1].
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#legacy-interface-extensions
Updated existing tests.
- fast/mediastream/RTCPeerConnection-overloaded-operations-params.html
- fast/mediastream/RTCPeerConnection-overloaded-operations.html
- Modules/mediastream/RTCPeerConnection.idl:
Updated legacy signatures (just for documentation purposes)
- Modules/mediastream/RTCPeerConnection.js:
Implements the promise overload and the legacy callbacks overload (using the promise version)
as specified in [1] (above).
(createOffer):
(createAnswer):
(setLocalDescription):
(setRemoteDescription):
(addIceCandidate):
(getStats):
- Modules/mediastream/RTCPeerConnectionInternals.js:
Added helper functions objectAndCallbacksOverload and callbacksAndDictionaryOverload that
process an argument list and determine which overloaded version to use.
(callbacksAndDictionaryOverload):
(setLocalOrRemoteDescription): Deleted.
(extractCallbackArg): Deleted.
LayoutTests:
Updated existing tests (see below).
- fast/mediastream/RTCPeerConnection-overloaded-operations-expected.txt:
- fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt:
- fast/mediastream/RTCPeerConnection-overloaded-operations-params.html:
Test various combinations of good and bad arguments and verify that no errors are thrown.
- fast/mediastream/RTCPeerConnection-overloaded-operations.html:
Test that all overloaded versions return a promise.
- fast/mediastream/resources/promise-utils.js: Added.
Shared utils to make it easier to test async promise APIs.
(ensurePromise):
(promiseShouldReject):
(promiseShouldNotRejectWithTypeError.):
- 11:33 AM Changeset in webkit [201454] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Add indicators to show nesting levels inside DOM Tree
https://bugs.webkit.org/show_bug.cgi?id=157468
<rdar://problem/26162640>
Patch by Devin Rousso <Devin Rousso> on 2016-05-27
Reviewed by Timothy Hatcher.
Add CSS rules to give all expanded node children lists a small line on the
left border indicating that all items under the line are descendants.
- UserInterface/Views/DOMTreeOutline.css:
(.tree-outline.dom li .selection):
(.tree-outline.dom li > span):
(.tree-outline.dom ol):
(.tree-outline.dom .tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded):
(.tree-outline.dom li.selected + ol.children.expanded):
(.tree-outline.dom li.parent::before):
- 10:09 AM Changeset in webkit [201453] by
-
- 2 edits in trunk/Source/WebKit2
Regression(r200972): Webcore::Range::collectSelectionsRects() asserts in startContainer() while selecting text.
https://bugs.webkit.org/show_bug.cgi?id=158155
<rdar://problem/26502712>
Reviewed by Chris Dumez.
This patch ensures that we still have a valid paragraphRange after returning from enclosingTextUnitOfGranularity().
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectTextWithGranularityAtPoint):
- 9:05 AM Changeset in webkit [201452] by
-
- 2 edits2 deletes in trunk/Source/bmalloc
[cmake] Deduplicated bmalloc/Zone.cpp handling.
https://bugs.webkit.org/show_bug.cgi?id=158154
Reviewed by Alex Christensen.
File bmalloc/Zone.cpp is required on Darwin irrespectively from what
port is being built.
Also I removed WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS() because it's
unlikely that bmalloc will ever need port-specific customizations (as
opposed to OS-specific customizations which should be done in
CMakeLists.txt).
- CMakeLists.txt: Added bmalloc/Zone.cpp for Darwin.
- PlatformGTK.cmake: Removed.
- PlatformMac.cmake: Removed.
- 7:59 AM Changeset in webkit [201451] by
-
- 7 edits2 adds in trunk/Source/JavaScriptCore
Bogus uses of regexp matching should realize that they will OOM before they start swapping
https://bugs.webkit.org/show_bug.cgi?id=158142
Reviewed by Michael Saboff.
Refactored the RegExpObject::matchGlobal() code so that there is less duplication. Took
advantage of this to make the code more resilient in case of absurd situations: if the
result array gets large, it proceeds with a dry run to detect how many matches there will
be. This allows it to OOM before it starts swapping.
This also improves the overall performance of the code by using lightweight substrings and
skipping the whole intermediate argument array.
This makes some jsfunfuzz tests run a lot faster and use a lot less memory.
- builtins/RegExpPrototype.js:
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/MatchResult.cpp: Added.
(JSC::MatchResult::dump):
- runtime/MatchResult.h:
(JSC::MatchResult::empty):
(MatchResult::empty): Deleted.
- runtime/RegExpObject.cpp:
(JSC::RegExpObject::match):
(JSC::collectMatches):
(JSC::RegExpObject::matchGlobal):
- runtime/StringObject.h:
(JSC::jsStringWithReuse):
(JSC::jsSubstring):
- tests/stress/big-match.js: Added. Make sure that this optimization doesn't break big matches.
- 6:51 AM Changeset in webkit [201450] by
-
- 3 edits3 adds in trunk
Video play glyph not visible if initially invisible when contained in a "-webkit-overflow-scrolling: touch" container
https://bugs.webkit.org/show_bug.cgi?id=158146
<rdar://problem/25816307>
Patch by Antoine Quint <Antoine Quint> on 2016-05-27
Reviewed by Dean Jackson.
Source/WebCore:
We now force the <video> controls play glyph into being composited due to webkit.org/b/158147. In most scenarios,
this element gets composited anyway, this is just to ensure that this happens in all cases until we get the
general fix for webkit.org/b/158147.
Test: platform/ios-simulator/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html
- Modules/mediacontrols/mediaControlsiOS.css:
(video::-webkit-media-controls-start-playback-button .webkit-media-controls-start-playback-glyph):
LayoutTests:
Testing that on iOS the play glyph for <video> controls when play button would be initially invisible when contained
in a scrollable container is indeed composited.
- platform/ios-simulator/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt: Added.
- platform/ios-simulator/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html: Added.
- 12:18 AM Changeset in webkit [201449] by
-
- 2 edits in trunk/Tools
New intl-numberformat.js test fails on many Linux platforms
https://bugs.webkit.org/show_bug.cgi?id=154530
Reviewed by Darin Adler.
The test is actually failing because of a bug in the icu version installed in the bots, using a newer version of
icu makes the tests pass and explains why it worked for some people. So, let's add icu 55.1 to the internal
jhbuild to ensure JSC tests pass in the bots no matter what the icu version installed is.
- gtk/jhbuild.modules:
- 12:09 AM Changeset in webkit [201448] by
-
- 68 edits in trunk/Source/JavaScriptCore
Static table property lookup should not require getOwnPropertySlot override.
https://bugs.webkit.org/show_bug.cgi?id=158059
Reviewed by Darin Adler.
Currently JSObject does not handle property lookup of entries in the static
table. Each subclass with static properties mut override getOwnPropertySlot,
and explicitly call the lookup functions. This has the following drawbacks:
- Performance: for any class with static properties, property acces becomes virtual (via method table).
- Poor encapsulation: implementation detail of static property access is spread throughout & cross projects, rather than being contained in JSObject.
- Code size: this results in a great many additional functions.
- Inconsistency: static table presence has to be be taken into account in many other operations, e.g. presence of read-only properties for put.
- Memory: in order to avoid the virtual lookup, DOM prototypes eagerly reify all properties. This is likely suboptimal.
Instead, JSObject::getPropertySlot / JSObject::getOwnPropertySlot should be
able to handle static properties.
This is actually a fairly small & simple change.
The common pattern is for subclasses of JObject to override getOwnPropertySlot
to first defer to JSObject for property storage lookup, and only if this fails
consult the static table. They just want the static tables to be consulted after
regular property storgae lookup. So just add a fast flag in TypeInfo for JSObject
to check, and where it is set, do so. Then it's just a question of switching
classes over to start setting this flag, and drop the override.
The new mechanism does change static table lookup order from oldest-ancestor
first to most-derived first. The new ordering makes more sense (means derived
class static tables can now override entries from parents), and shoudn't affect
any existing code (since overriding didn't previously work, there likely aren't
shadowing properties in more derived types).
This patch changes all classes in JavaScriptCore over to using the new mechanism,
except JSGlobalObject. I'll move classes in WebCore over as a separate patch
(this is also why I've not moved JSGlobalObject in this patch - doing so would
move JSDOMWindow, and I'd rather handle that separately).
- runtime/JSTypeInfo.h:
(JSC::TypeInfo::hasStaticPropertyTable):
- Add HasStaticPropertyTable flag.
- runtime/Lookup.cpp:
(JSC::setUpStaticFunctionSlot):
- Change setUpStaticFunctionSlot to take a VM&.
- runtime/Lookup.h:
(JSC::getStaticPropertySlotFromTable):
- Added helper function to perform static lookup alone.
(JSC::getStaticPropertySlot):
(JSC::getStaticFunctionSlot):
- setUpStaticFunctionSlot changed to take a VM&.
- runtime/JSObject.cpp:
(JSC::JSObject::getOwnStaticPropertySlot):
- Added, walks ClassInfo chain looking for static properties.
- runtime/JSObject.h:
(JSC::JSObject::getOwnNonIndexPropertySlot):
- getOwnNonIndexPropertySlot is used internally by getPropertySlot & getOwnPropertySlot. If property is not present in storage array then check the static table.
- runtime/ArrayConstructor.cpp:
(JSC::ArrayConstructor::finishCreation):
(JSC::constructArrayWithSizeQuirk):
(JSC::ArrayConstructor::getOwnPropertySlot): Deleted.
- runtime/ArrayConstructor.h:
(JSC::ArrayConstructor::create):
- runtime/ArrayIteratorPrototype.cpp:
(JSC::ArrayIteratorPrototype::finishCreation):
(JSC::ArrayIteratorPrototype::getOwnPropertySlot): Deleted.
- runtime/ArrayIteratorPrototype.h:
(JSC::ArrayIteratorPrototype::create):
(JSC::ArrayIteratorPrototype::ArrayIteratorPrototype):
- runtime/BooleanPrototype.cpp:
(JSC::BooleanPrototype::finishCreation):
(JSC::booleanProtoFuncToString):
(JSC::BooleanPrototype::getOwnPropertySlot): Deleted.
- runtime/BooleanPrototype.h:
(JSC::BooleanPrototype::create):
- runtime/DateConstructor.cpp:
(JSC::DateConstructor::finishCreation):
(JSC::millisecondsFromComponents):
(JSC::DateConstructor::getOwnPropertySlot): Deleted.
- runtime/DateConstructor.h:
(JSC::DateConstructor::create):
- runtime/DatePrototype.cpp:
(JSC::DatePrototype::finishCreation):
(JSC::dateProtoFuncToString):
(JSC::DatePrototype::getOwnPropertySlot): Deleted.
- runtime/DatePrototype.h:
(JSC::DatePrototype::create):
- runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototype::finishCreation):
(JSC::ErrorPrototype::getOwnPropertySlot): Deleted.
- runtime/ErrorPrototype.h:
(JSC::ErrorPrototype::create):
- runtime/GeneratorPrototype.cpp:
(JSC::GeneratorPrototype::finishCreation):
(JSC::GeneratorPrototype::getOwnPropertySlot): Deleted.
- runtime/GeneratorPrototype.h:
(JSC::GeneratorPrototype::create):
(JSC::GeneratorPrototype::createStructure):
(JSC::GeneratorPrototype::GeneratorPrototype):
- runtime/InspectorInstrumentationObject.cpp:
(JSC::InspectorInstrumentationObject::finishCreation):
(JSC::InspectorInstrumentationObject::isEnabled):
(JSC::InspectorInstrumentationObject::getOwnPropertySlot): Deleted.
- runtime/InspectorInstrumentationObject.h:
(JSC::InspectorInstrumentationObject::create):
(JSC::InspectorInstrumentationObject::createStructure):
- runtime/IntlCollatorConstructor.cpp:
(JSC::IntlCollatorConstructor::getCallData):
(JSC::IntlCollatorConstructorFuncSupportedLocalesOf):
(JSC::IntlCollatorConstructor::getOwnPropertySlot): Deleted.
- runtime/IntlCollatorConstructor.h:
- runtime/IntlCollatorPrototype.cpp:
(JSC::IntlCollatorPrototype::finishCreation):
(JSC::IntlCollatorFuncCompare):
(JSC::IntlCollatorPrototype::getOwnPropertySlot): Deleted.
- runtime/IntlCollatorPrototype.h:
- runtime/IntlDateTimeFormatConstructor.cpp:
(JSC::IntlDateTimeFormatConstructor::getCallData):
(JSC::IntlDateTimeFormatConstructorFuncSupportedLocalesOf):
(JSC::IntlDateTimeFormatConstructor::getOwnPropertySlot): Deleted.
- runtime/IntlDateTimeFormatConstructor.h:
- runtime/IntlDateTimeFormatPrototype.cpp:
(JSC::IntlDateTimeFormatPrototype::finishCreation):
(JSC::IntlDateTimeFormatFuncFormatDateTime):
(JSC::IntlDateTimeFormatPrototype::getOwnPropertySlot): Deleted.
- runtime/IntlDateTimeFormatPrototype.h:
- runtime/IntlNumberFormatConstructor.cpp:
(JSC::IntlNumberFormatConstructor::getCallData):
(JSC::IntlNumberFormatConstructorFuncSupportedLocalesOf):
(JSC::IntlNumberFormatConstructor::getOwnPropertySlot): Deleted.
- runtime/IntlNumberFormatConstructor.h:
- runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototype::finishCreation):
(JSC::IntlNumberFormatFuncFormatNumber):
(JSC::IntlNumberFormatPrototype::getOwnPropertySlot): Deleted.
- runtime/IntlNumberFormatPrototype.h:
- runtime/JSDataViewPrototype.cpp:
(JSC::JSDataViewPrototype::createStructure):
(JSC::getData):
(JSC::JSDataViewPrototype::getOwnPropertySlot): Deleted.
- runtime/JSDataViewPrototype.h:
- runtime/JSInternalPromiseConstructor.cpp:
(JSC::JSInternalPromiseConstructor::getCallData):
(JSC::JSInternalPromiseConstructor::getOwnPropertySlot): Deleted.
- runtime/JSInternalPromiseConstructor.h:
- runtime/JSONObject.cpp:
(JSC::Walker::Walker):
(JSC::JSONObject::getOwnPropertySlot): Deleted.
- runtime/JSONObject.h:
(JSC::JSONObject::create):
- runtime/JSPromiseConstructor.cpp:
(JSC::JSPromiseConstructor::getCallData):
(JSC::JSPromiseConstructor::getOwnPropertySlot): Deleted.
- runtime/JSPromiseConstructor.h:
- runtime/JSPromisePrototype.cpp:
(JSC::JSPromisePrototype::addOwnInternalSlots):
(JSC::JSPromisePrototype::getOwnPropertySlot): Deleted.
- runtime/JSPromisePrototype.h:
- runtime/MapPrototype.cpp:
(JSC::MapPrototype::finishCreation):
(JSC::getMap):
(JSC::MapPrototype::getOwnPropertySlot): Deleted.
- runtime/MapPrototype.h:
(JSC::MapPrototype::create):
(JSC::MapPrototype::MapPrototype):
- runtime/ModuleLoaderObject.cpp:
(JSC::ModuleLoaderObject::finishCreation):
(JSC::printableModuleKey):
(JSC::ModuleLoaderObject::getOwnPropertySlot): Deleted.
- runtime/ModuleLoaderObject.h:
- runtime/NumberPrototype.cpp:
(JSC::NumberPrototype::finishCreation):
(JSC::toThisNumber):
(JSC::NumberPrototype::getOwnPropertySlot): Deleted.
- runtime/NumberPrototype.h:
(JSC::NumberPrototype::create):
- runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::addDefineProperty):
(JSC::constructObject):
(JSC::ObjectConstructor::getOwnPropertySlot): Deleted.
- runtime/ObjectConstructor.h:
(JSC::ObjectConstructor::create):
(JSC::ObjectConstructor::createStructure):
- runtime/ReflectObject.cpp:
(JSC::ReflectObject::finishCreation):
(JSC::ReflectObject::getOwnPropertySlot): Deleted.
- runtime/ReflectObject.h:
(JSC::ReflectObject::create):
(JSC::ReflectObject::createStructure):
- runtime/RegExpConstructor.cpp:
(JSC::RegExpConstructor::getRightContext):
(JSC::regExpConstructorDollar):
(JSC::RegExpConstructor::getOwnPropertySlot): Deleted.
- runtime/RegExpConstructor.h:
(JSC::RegExpConstructor::create):
(JSC::RegExpConstructor::createStructure):
- runtime/SetPrototype.cpp:
(JSC::SetPrototype::finishCreation):
(JSC::getSet):
(JSC::SetPrototype::getOwnPropertySlot): Deleted.
- runtime/SetPrototype.h:
(JSC::SetPrototype::create):
(JSC::SetPrototype::SetPrototype):
- runtime/StringConstructor.cpp:
(JSC::StringConstructor::finishCreation):
(JSC::stringFromCharCodeSlowCase):
(JSC::StringConstructor::getOwnPropertySlot): Deleted.
- runtime/StringConstructor.h:
(JSC::StringConstructor::create):
- runtime/StringIteratorPrototype.cpp:
(JSC::StringIteratorPrototype::finishCreation):
(JSC::StringIteratorPrototype::getOwnPropertySlot): Deleted.
- runtime/StringIteratorPrototype.h:
(JSC::StringIteratorPrototype::create):
(JSC::StringIteratorPrototype::StringIteratorPrototype):
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::create):
(JSC::substituteBackreferencesSlow):
(JSC::StringPrototype::getOwnPropertySlot): Deleted.
- runtime/StringPrototype.h:
- runtime/SymbolConstructor.cpp:
(JSC::SymbolConstructor::finishCreation):
(JSC::callSymbol):
(JSC::SymbolConstructor::getOwnPropertySlot): Deleted.
- runtime/SymbolConstructor.h:
(JSC::SymbolConstructor::create):
- runtime/SymbolPrototype.cpp:
(JSC::SymbolPrototype::finishCreation):
(JSC::SymbolPrototype::getOwnPropertySlot): Deleted.
- runtime/SymbolPrototype.h:
(JSC::SymbolPrototype::create):
- remove getOwnPropertySlot, replace OverridesGetOwnPropertySlot flag with HasStaticPropertyTable.
May 26, 2016:
- 10:43 PM Changeset in webkit [201447] by
-
- 3 edits4 adds in trunk
Preload single download tests.
https://bugs.webkit.org/show_bug.cgi?id=157988
Reviewed by Alex Christensen.
Source/WebCore:
ResourceTiming entries for some subresource weren't registered as resource->response().isHTTP() was false, since
resource->response().url() was empty. I switched the check to use resource->resourceRequest().url() directly instead.
Test: http/tests/preload/single_download_preload_runner.html
- loader/ResourceTimingInformation.cpp:
(WebCore::ResourceTimingInformation::addResourceTiming):
LayoutTests:
Make sure preload is only downloading a single resource, which is properly reused.
- http/tests/preload/resources/single_download_preload.html: Added.
- http/tests/preload/single_download_preload_runner-expected.txt: Added.
- http/tests/preload/single_download_preload_runner.html: Added.
- 10:40 PM Changeset in webkit [201446] by
-
- 2 edits in trunk/LayoutTests
Unreviewed EFL gardening.
Release some passing tests which have been marked to Crash, Failure.
- platform/efl/TestExpectations:
- 8:31 PM Changeset in webkit [201445] by
-
- 7 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r201436.
https://bugs.webkit.org/show_bug.cgi?id=158143
Caused 30% regression on Dromaeo DOM core tests (Requested by
rniwa on #webkit).
Reverted changeset:
"REGRESSION: JSBench spends a lot of time transitioning
to/from dictionary"
https://bugs.webkit.org/show_bug.cgi?id=158045
http://trac.webkit.org/changeset/201436
- 8:19 PM Changeset in webkit [201444] by
-
- 2 edits in trunk/Source/WebKit2
Certain NetworkResourceLoader callbacks can deref a null m_networkLoad.
https://bugs.webkit.org/show_bug.cgi?id=158134
Reviewed by Alex Christensen.
It's legit for m_networkLoad to be null in these callbacks.
We need null checks, just like we have in many other callbacks in this class.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::continueCanAuthenticateAgainstProtectionSpace):
- 6:41 PM Changeset in webkit [201443] by
-
- 3 edits2 adds in trunk
AX: Wrong CharacterOffset from VisiblePosition with composed characters
https://bugs.webkit.org/show_bug.cgi?id=158138
Reviewed by Chris Fleizach.
Source/WebCore:
The conversion logic is not correct when the text node contains composed characters.
We should use VisiblePosition's offset directly for text nodes so we won't mess things up.
Test: accessibility/mac/character-offset-visible-position-conversion-with-emoji.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::visiblePositionFromCharacterOffset):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
LayoutTests:
- accessibility/mac/character-offset-visible-position-conversion-with-emoji-expected.txt: Added.
- accessibility/mac/character-offset-visible-position-conversion-with-emoji.html: Added.
- 5:40 PM Changeset in webkit [201442] by
-
- 29 edits in trunk
[JSC] Allow JSBench to use precise time
https://bugs.webkit.org/show_bug.cgi?id=158050
Reviewed by Geoffrey Garen.
PerformanceTests:
- JSBench/amazon-chrome-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/amazon-chrome/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/amazon-firefox-win/urm.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/amazon-firefox/urm.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/amazon-safari/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/facebook-chrome-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/facebook-chrome/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/facebook-firefox-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/facebook-firefox/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/facebook-safari/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/google-chrome-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/google-chrome/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/google-firefox-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/google-firefox/uem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/google-safari/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/harness.js:
(runBenchmark.window.currentTimeInMS):
(runBenchmark.else.window.currentTimeInMS):
- JSBench/twitter-chrome-win/rem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/twitter-chrome/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/twitter-firefox-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/twitter-firefox/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/twitter-safari/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/yahoo-chrome-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/yahoo-chrome/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/yahoo-firefox-win/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/yahoo-firefox/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
- JSBench/yahoo-safari/urem.js:
(else.window.performance.window.performance.now.currentTimeInMS):
(else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
(else.else.currentTimeInMS):
(onload.cb):
(onload):
Tools:
JSBench use
new Date().getTime()
without options and there is no way to use precise time.
This patch modifies the JSBench code to inject the code taking the precise time.
currentTimeInMS
is given by the benchmerk harness and JSBench uses it.
run-jsc-benchmark switches this function's implementation betweenDate.now()
and
testRunner's precise time one.
While this patch modifies the code of JSBench, the last release of JSBench is Jan 2013 and
the contents are not changed for a long time. As described in the original paper[1], the
tests can be generated by using JSBench's record & replay system, but in that case, we can
adopt this modification by changing the tool side.
We also add currentTimeInMS implementation in harness.js and u?rem.js directly.
u?rem.js implementation is required when it is executed in u?rem.html without harness.
And harness.js implementation is required when it is executed in the JSBench's harness.
In these implementation, we follow the JetStream's time measuring function: performance.now(),
preciseTime(), or Date.now().
[1]: http://dl.acm.org/citation.cfm?id=2048119
- Scripts/run-jsc-benchmarks:
- 5:05 PM Changeset in webkit [201441] by
-
- 59 edits in trunk/Source
Media queries and platform screen modernization and streamlining
https://bugs.webkit.org/show_bug.cgi?id=158067
Reviewed by Alex Christensen.
Source/WebCore:
- bindings/objc/DOM.mm:
(-[DOMHTMLLinkElement _mediaQueryMatches]): Use references, use fastGetAttribute,
pass a document instead of a frame to the media query evaluator and a reference instead
of a pointer.
- css/CSSGrammar.y.in: Use "expression" instead of "exp" for media query expressions.
Update vectors and arguments to move media query expressions instead of using unique_ptr.
- css/CSSImportRule.h: Use pragma once. Removed unneeded forward declarations.
Made more overrides private and marked them final.
- css/CSSParser.cpp:
(WebCore::CSSParser::SourceSize::SourceSize): Added missing WTFMove to avoid reference
count churn. Changed type of expression to no longer use unique_ptr.
(WebCore::CSSParser::sourceSize): Ditto.
- css/CSSParser.h: Changed SourceSize::expression to no longer use unique_ptr.
Also changed SourceSize::length to be Ref instead of RefPtr.
- css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::appendAuthorStyleSheets): Updated for changes to
MediaQueryEvaluator.
- css/MediaFeatureNames.cpp:
(WebCore::MediaFeatureNames::init): Streamlined a bit. Removed "MediaFeature" suffix from
names of media feature strings.
- css/MediaFeatureNames.h: Use pragma once. Changed media feature name globals
to use normal WebKit naming style instead of all lowercase with underscores.
Sorted alphabetically. Removed "MediaFeature" suffix from names of media feature strings.
- css/MediaList.cpp:
(WebCore::MediaQuerySet::MediaQuerySet): Simplified copy constructor since the queries
vector can now be copied normally.
(WebCore::parseMediaDescriptor): Normalized types and changed to use isASCIIAlphanumeric.
The old code was not handling '0' the way the comment said it did.
(WebCore::MediaQuerySet::internalParse): Added. Helper function to cut down on redundant
code in functions below.
(WebCore::MediaQuerySet::parse): Use stripLeadingAndTrailingHTMLSpaces instead of
stripWhiteSpace. Streamlined logic using helper function. Updated to use a vector of
queries instead of a vector of unique_ptr.
(WebCore::MediaQuerySet::add): Use internalParse.
(WebCore::MediaQuerySet::remove): Ditto.
(WebCore::MediaQuerySet::addMediaQuery): Changed argument type to not be unique_ptr.
(WebCore::MediaQuerySet::mediaText): Use modern for loop.
(WebCore::MediaList::MediaList): Initialize pointers to null in the class definition
rather than in these constructors.
(WebCore::MediaList::setMediaText): Removed unhelpful local variable.
(WebCore::MediaList::item): Updated since queries no longer use unique_ptr.
(WebCore::addResolutionWarningMessageToConsole): Changed argument types to references
instead of pointers with assertions.
(WebCore::reportMediaQueryWarningIfNeeded): Updated to modernize.
- css/MediaList.h: Use pragma once. Removed unneeded includes and forward declarations.
Changed vector to contain media queries instead of unique_ptr. Use nullptr instead of 0.
Initialize pointers to null here.
- css/MediaQuery.cpp: Deleted now-unneeded copy constructor and destructor. Both are
correctly generated without us writing them explicitly.
(WebCore::MediaQuery::serialize): Rewrote to streamline.
(WebCore::MediaQuery::MediaQuery): Updates since expressions are no longer unique_ptr.
(WebCore::MediaQuery::cssText): Changed return type to reference.
- css/MediaQuery.h: Use pragma once. Added include since this now includes media query
expressions, not just unique_ptr. Deleted the unneeded copy function.
- css/MediaQueryEvaluator.cpp:
(WebCore::isViewportDependent): Moved this here. It used to be a member function of
MediaQueryExp, but this file has a lot more functions about specific features and how
they are evaluated, so it really belongs here.
(WebCore::MediaQueryEvaluator::MediaQueryEvaluator): Changed constructor to take a
document instead of a frame. Initialize the fallback result in the class definition.
(WebCore::MediaQueryEvaluator::evaluate): Changed the argument type to a reference.
(WebCore::compareValue): Made both of the arguments separate template types. This
helps us compare an integer to a double without lots of type casts.
(WebCore::compareAspectRatioValue): Changed to use early return style and got rid of
the casts to int so we will do the work in double instead.
(WebCore::doubleValue): Replaced the old numberValue function with this. Since values
are stored as doubles, it's much better to use double rather than float.
(WebCore::zeroEvaluate): Added. Helpful for the many functions that just need to
evaluate as 0.
(WebCore::oneEvaluate): Ditto.
(WebCore::colorEvaluate): Renamed this and all the functions below. Simplified the logic
to use the new doubleValue function.
(WebCore::colorIndexEvaluate): Use zeroEvaluate.
(WebCore::colorGamutEvaluate): No longer use page just to get from the frame to the
main frame.
(WebCore::monochromeEvaluate): Simplify logic using zeroEvaluate.
(WebCore::invertedColorsEvaluate): Use auto for the keyword; easier to read.
(WebCore::orientationEvaluate): Use early return style.
(WebCore::aspectRatioEvaluate): Ditto.
(WebCore::deviceAspectRatioEvaluate): Simplified logic and removed type casts.
(WebCore::evaluateResolution): Added a couple null checks.
(WebCore::devicePixelRatioEvaluate): Renamed. Added missing type check.
(WebCore::resolutionEvaluate): Ditto.
(WebCore::gridEvaluate): Use zeroEvaluate.
(WebCore::computeLength): Added a null check.
(WebCore::deviceHeightEvaluate): Use early return.
(WebCore::deviceWidthEvaluate): Ditto.
(WebCore::heightEvaluate): Ditto.
(WebCore::widthEvaluate): Ditto.
(WebCore::minColorEvaluate): Updated name only.
(WebCore::maxColorEvaluate): Ditto.
(WebCore::minColorIndexEvaluate): Ditto.
(WebCore::maxColorIndexEvaluate): Ditto.
(WebCore::minMonochromeEvaluate): Ditto.
(WebCore::maxMonochromeEvaluate): Ditto.
(WebCore::minAspectRatioEvaluate): Ditto.
(WebCore::maxAspectRatioEvaluate): Ditto.
(WebCore::minDeviceAspectRatioEvaluate): Ditto.
(WebCore::maxDeviceAspectRatioEvaluate): Ditto.
(WebCore::minDevicePixelRatioEvaluate): Ditto.
(WebCore::maxDevicePixelRatioEvaluate): Ditto.
(WebCore::minHeightEvaluate): Ditto.
(WebCore::maxHeightEvaluate): Ditto.
(WebCore::minWidthEvaluate): Ditto.
(WebCore::maxWidthEvaluate): Ditto.
(WebCore::minDeviceHeightEvaluate): Ditto.
(WebCore::maxDeviceHeightEvaluate): Ditto.
(WebCore::minDeviceWidthEvaluate): Ditto.
(WebCore::maxDeviceWidthEvaluate): Ditto.
(WebCore::minResolutionEvaluate): Ditto.
(WebCore::maxResolutionEvaluate): Ditto.
(WebCore::animationEvaluate): Use oneEvaluate.
(WebCore::transitionEvaluate): Ditto.
(WebCore::transform2dEvaluate): Ditto.
(WebCore::transform3dEvaluate): Simplify using zeroEvaluate and oneEvaluate.
(WebCore::viewModeEvaluate): Simplified logic with fewer local variables and the name "keyword".
(WebCore::videoPlayableInlineEvaluate): Use reference.
(WebCore::hoverEvaluate): Simplify using keyword.
(WebCore::anyHoverEvaluate): Just updated name.
(WebCore::pointerEvaluate): Simplify using keyword.
(WebCore::anyPointerEvaluate): Just updated name.
(WebCore::add): Added. Helper for building up the media query function map.
(WebCore::MediaQueryEvaluator::evaluate): Moved code to build the function map in here in
a lambda, rather than having it in a separate global function.
- css/MediaQueryEvaluator.h: Use pragma once. Removed uneeded includes. Simplified comments and
modernized their style.
- css/MediaQueryExp.cpp:
(WebCore::isFeatureValidWithIdentifier): Renamed to make it clearer what this does. Updated
to take a reference and use te new feature names.
(WebCore::isFeatureValidWithNonNegativeLengthOrNumber): Ditto.
(WebCore::isFeatureValidWithDensity): Ditto.
(WebCore::isFeatureValidWithNonNegativeInteger): Ditto.
(WebCore::isFeatureValidWithNonNegativeNumber): Ditto.
(WebCore::isFeatureValidWithZeroOrOne): Ditto.
(WebCore::isAspectRatioFeature): Ditto.
(WebCore::isFeatureValidWithoutValue): Ditto.
(WebCore::isFeatureValidWithNumberWithUnit): Added. Helper that calls multiple functions above.
(WebCore::isFeatureValidWithNumber): Ditto.
(WebCore::isSlash): Added. Helper to make aspect ratio code below easier to read.
(WebCore::isPositiveIntegerValue): Ditto.
(WebCore::MediaQueryExpression::MediaQueryExpression): Rearranged code to be much less wordy and
to not use current/next.
- css/MediaQueryExp.h: Use pragma once. Renamed class to MediaQueryExpression. Removed
the isViewportDependent function, now part of MediaQueryEvaluator. Removed unneeded includes.
- css/MediaQueryList.cpp:
(WebCore::MediaQueryList::MediaQueryList): Marked this inline. Use a reference and a Ref&&
instead of PassRefPtr.
(WebCore::MediaQueryList::create): Updated argument types.
(WebCore::MediaQueryList::addListener): Updated argument type and use releaseNonNull.
(WebCore::MediaQueryList::removeListener): Updated argument types.
(WebCore::MediaQueryList::evaluate): Ditto.
(WebCore::MediaQueryList::matches): More of the same.
- css/MediaQueryList.h: Use pragma once. Changed types to use references, RefPtr&& and Ref&&.
- css/MediaQueryMatcher.cpp:
(WebCore::MediaQueryMatcher::MediaQueryMatcher): Take a reference.
(WebCore::MediaQueryMatcher::documentDestroyed): Use nullptr.
(WebCore::MediaQueryMatcher::documentElementUserAgentStyle): Use auto.
(WebCore::MediaQueryMatcher::evaluate): Take a reference. Updated for changes to MediaQueryEvaluator.
(WebCore::MediaQueryMatcher::matchMedia): Updated for above changes.
(WebCore::MediaQueryMatcher::addListener): Use Ref&& and reference for arguments. Simplify code.
(WebCore::MediaQueryMatcher::removeListener): Ditto.
(WebCore::MediaQueryMatcher::styleResolverChanged): Moved the logic for evaluating each query here.
Updated for changes to MediaQueryEvaluator.
- css/MediaQueryMatcher.h: Use pragma once. Changed create to take a reference. Tightened argument
types for addListener and removeListener. Made the private Listener a simple struct rather than a
class. Initialized m_evaluationRound.
- css/RuleSet.cpp:
(WebCore::RuleSet::addChildRules): Updated for changes to MediaQueryEvaluator.
(WebCore::RuleSet::addRulesFromSheet): Ditto.
- css/SourceSizeList.cpp:
(WebCore::match): Updated to use MediaQueryEvaluator in a simpler way.
(WebCore::defaultLength): Use a reference and simpler syntax.
(WebCore::computeLength): Ditto.
(WebCore::parseSizesAttribute): Changed arguments to take a Document instead of both a
RenderView and a Frame.
- css/SourceSizeList.h: Use #pragma once. Change parseSizesAttribute to take a Document.
- css/StyleMedia.cpp:
(WebCore::StyleMedia::matchMedium): Update for changes to MediaQueryEvaluator.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver): Use a MediaQueryEvaluator instead of a unique_ptr
to one.
(WebCore::StyleResolver::appendAuthorStyleSheets): Ditto.
(WebCore::StyleResolver::styleForElement): Ditto.
(WebCore::StyleResolver::pseudoStyleForElement): Ditto.
(WebCore::StyleResolver::pseudoStyleRulesForElement): Ditto.
(WebCore::StyleResolver::addViewportDependentMediaQueryResult): Use references instead of
ponters, and use a vector of MediaQueryResult instead of unique_ptr.
(WebCore::StyleResolver::hasMediaQueriesAffectedByViewportChange): Use a modern for loop.
- css/StyleResolver.h: Use a MediaQueryEvaluator instead of a unique_ptr to one.
Use a vector of MediaQueryResult instead of a vector of unique_ptr.
- dom/Document.cpp:
(WebCore::Document::mediaQueryMatcher): Pass a reference instead of a pointer.
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::createSheet): Updated for changes to MediaQueryEvaluator.
- editing/TextIterator.cpp:
(WebCore::SimplifiedBackwardsTextIterator::advance): Removed a stray space (unrelated to
the rest of the patch).
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement): Updated for changes to the
MediaQueryEvaluator class. Also use auto a bit more and eliminated a double hash table
lookup in code that used hasAttribute followed by fastGetAttribute.
(WebCore::HTMLImageElement::selectImageSource): Updated for changes to parseSizesAttribute.
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process): Updated for changes to MediaQueryEvaluator.
(WebCore::HTMLLinkElement::setCSSStyleSheet): Use auto.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::selectNextSourceChild): Updated for changes to MediaQueryEvaluator.
- html/HTMLPictureElement.cpp:
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture): Updated for changes to
MediaQueryEvaluator.
- html/HTMLPictureElement.h: Use #pragma once. Changed viewport dependent media query results
vector to be a vector of results, not of unique_ptr.
- html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes): Updated for changes to
parseSizesAttribute.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Updated for changes to
MediaQueryEvaluator.
- html/parser/HTMLResourcePreloader.cpp:
(WebCore::mediaAttributeMatches): Updated for changes to MediaQueryEvaluator.
(WebCore::HTMLResourcePreloader::preload): Ditto.
- page/DOMWindow.cpp: Removed unneeded include of PlatformScreen.h.
- page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::effectiveMousePositionForSelectionAutoscroll): Simplified code and
updated for changes to PlatformScreenMac functions.
- platform/PlatformScreen.h: Use #pragma once. Use using instad of typedef. Put the typedef
for PlatformDisplayID inside the WebCore namespace. Removed the typedef for ColorProfile.
Renamed the functions that find a screen to just "screen".
- platform/graphics/DisplayRefreshMonitorClient.cpp:
(WebCore::DisplayRefreshMonitorClient::DisplayRefreshMonitorClient): Moved initialization
of booleans to the class definition.
- platform/graphics/DisplayRefreshMonitorClient.h: Use pragma once. Removed unneeded
forward declarations. Changed display ID data member to be an Optional instead of a boolean
paired with another data member.
- platform/graphics/GraphicsLayerUpdater.h: Use pragma once. Removed unneeded include of
PlatformScreen.h.
- platform/image-decoders/ImageDecoder.h: Use pragma once. Moved ColorProfile here from
PlatformScreen.h, since it's not used there. and is used here.
- platform/mac/PlatformEventFactoryMac.h: Use parma once. Changed reutrn type of the
globalPoint function to NSPoint. Tweaked comments and formatting a bit.
- platform/mac/PlatformEventFactoryMac.mm:
(WebCore::globalPoint): Changed return type to NSPoint and so removed the explicit
conversion to IntPoint.
(WebCore::globalPointForEvent): Changed return type to NSPoint.
(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder): Moved conversion to
IntPoint in here. Also got rid of special indenting style and just indented normally.
(WebCore::PlatformWheelEventBuilder::PlatformWheelEventBuilder): Ditto.
(WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder): Ditto.
- platform/mac/PlatformScreenMac.mm:
(WebCore::displayID): Renamed from displayIDFromScreen and displayFromWidget since this
is C++ and we have overloading to determine the types of arguments. Added a null check
of the how dinwo pointer.
(WebCore::firstScreen): Added. Helper used below.
(WebCore::window): Added. Helper used below.
(WebCore::screen): Renamed from screenForWidget and screenFromWindow and removed the
unneeded window argument from the widget version.
(WebCore::screenDepth): Simplified, using new helpers.
(WebCore::screenDepthPerComponent): Ditto.
(WebCore::screenIsMonochrome): Tweaked comment.
(WebCore::screenHasInvertedColors): Ditto.
(WebCore::screenRect): Simplified using new elpers.
(WebCore::screenAvailableRect): Ditto.
(WebCore::screenSupportsExtendedColor): Streamlined using fewer local variables and
using auto for types of the results of adoptCF.
(WebCore::toUserSpace): Updated for function name changes.
(WebCore::toDeviceSpace): Ditto.
Source/WebKit/mac:
- WebView/WebFrame.mm:
(-[WebFrame _dragSourceEndedAt:operation:]): Updated to use the new version of
globalPoint, which returns an NSPoint.
Source/WebKit2:
- Shared/mac/WebEventFactory.mm:
(WebKit::screenForWindow): Deleted.
(WebKit::flipScreenPoint): Deleted.
(WebKit::globalPoint): Deleted.
(WebKit::globalPointForEvent): Use globalPoint function from WebCore so we don't need
copies of everything in here.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::windowDidChangeScreen): Removed unneeded type cast.
(WebKit::WebViewImpl::draggedImage): Added type cast since globalPoint now returns an
NSPoint rather than an IntPoint.
- UIProcess/WebPageProxy.h: Use pragma once. Add a WebCore prefix to a use of
PlatformDisplayID, since that is now inside the WebCore namespace.
- WebProcess/WebCoreSupport/WebChromeClient.h: Ditto.
- WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.h: Ditto.
- WebProcess/WebPage/DrawingArea.h: Ditto.
- WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: Ditto.
- 4:53 PM Changeset in webkit [201440] by
-
- 10 edits in trunk/Source
Purge PassRefPtr in Modules/battery
https://bugs.webkit.org/show_bug.cgi?id=157062
Reviewed by Darin Adler.
Use RefPtr<>& to reduce uses of PassRefPtr in WebKit.
Source/WebCore:
- Modules/battery/BatteryClient.h:
- Modules/battery/BatteryController.cpp:
(WebCore::BatteryController::BatteryController):
(WebCore::BatteryController::~BatteryController):
(WebCore::BatteryController::addListener):
(WebCore::BatteryController::removeListener):
(WebCore::BatteryController::updateBatteryStatus):
(WebCore::BatteryController::didChangeBatteryStatus):
(WebCore::provideBatteryTo):
- Modules/battery/BatteryController.h:
- Modules/battery/BatteryManager.cpp:
(WebCore::BatteryManager::didChangeBatteryStatus):
(WebCore::BatteryManager::updateBatteryStatus):
- Modules/battery/BatteryManager.h:
- Modules/battery/BatteryStatus.h:
- testing/Internals.cpp:
(WebCore::Internals::setBatteryStatus):
Source/WebKit2:
- WebProcess/Battery/WebBatteryManager.cpp:
(WebKit::WebBatteryManager::didChangeBatteryStatus):
(WebKit::WebBatteryManager::updateBatteryStatus):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_shouldDispatchFakeMouseMoveEvents):
- 4:40 PM Changeset in webkit [201439] by
-
- 1 edit2 adds in trunk/LayoutTests
DOM mutation methods fail to re-check validity of node insertion after removing nodes from old parent
https://bugs.webkit.org/show_bug.cgi?id=81991
<rdar://problem/11120506>
Reviewed by Chris Dumez.
Add a test case for an old DOM mutation bug that was fixed long ago.
- fast/dom/circular-dom-tree-crash-expected.txt: Added.
- fast/dom/circular-dom-tree-crash.html: Added.
- 4:05 PM Changeset in webkit [201438] by
-
- 2 edits in trunk/Source/WebInspectorUI
Uncaught Exception: TypeError: undefined is not an object (evaluating 'records[endIndex].endTime')
https://bugs.webkit.org/show_bug.cgi?id=158057
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineViewTimes):
When the entire recording is selected, rendering frames should use the
record count as its end time instead of the recording's end time.
- 4:03 PM Changeset in webkit [201437] by
-
- 2 edits in trunk/LayoutTests
Marking js/function-apply.html as a flaky timeout on mac debug wk2
https://bugs.webkit.org/show_bug.cgi?id=158133
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:30 PM Changeset in webkit [201436] by
-
- 7 edits in trunk/Source/JavaScriptCore
REGRESSION: JSBench spends a lot of time transitioning to/from dictionary
https://bugs.webkit.org/show_bug.cgi?id=158045
Reviewed by Saam Barati.
15% speedup on jsbench-amazon-firefox, possibly 5% speedup overall on jsbench.
This regression seems to have two parts:
(1) Transitioning the window object to/from dictionary is more expensive
than it used to be to because the window object has lots more properties.
The window object has more properties because, for WebIDL compatibility,
we reify DOM APIs as properties when you delete.
(2) DOM prototypes transition to/from dictionary upon creation
because, once again for WebIDL compatibility, we reify their static
APIs eagerly.
The solution is to chill out a bit on dictionary transitions.
- bytecode/ObjectPropertyConditionSet.cpp: Don't flatten a dictionary
if we've already done so before. This avoids pathological churn, and it
is our idiom in other places.
- interpreter/Interpreter.cpp:
(JSC::Interpreter::execute): Do flatten the global object unconditionally
if it is an uncacheable dictionary because the global object is super
important.
- runtime/BatchedTransitionOptimizer.h:
(JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
(JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer): Deleted.
Don't transition away from dictionary after a batched set of property
puts because normal dictionaries are cacheable and that's a perfectly
fine state to be in -- and the transition is expensive.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init): Do start the global object out as a cacheable
dictionary because it will inevitably have enough properties to become
a dictionary.
- runtime/Operations.h:
(JSC::normalizePrototypeChain): Same as ObjectPropertyConditionSet.cpp.
- 3:05 PM Changeset in webkit [201435] by
-
- 6 edits in trunk/Source/WebCore
Add WebKitAdditions extension point in HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=158097
Reviewed by Eric Carlson.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldOverrideBackgroundLoadingRestriction):
We need to load data in the background if playing to wireless playback target.
(WebCore::HTMLMediaElement::fullscreenModeChanged):
Moved from header file.
- html/HTMLMediaElement.h:
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::clientWillPausePlayback):
The code to start m_clientDataBufferingTimer is also in visibilityChanged().
Moved that code to PlatformMediaSession::scheduleClientDataBufferingCheck() and call
that method here.
(WebCore::PlatformMediaSession::visibilityChanged):
Call PlatformMediaSession::scheduleClientDataBufferingCheck().
(WebCore::PlatformMediaSession::scheduleClientDataBufferingCheck):
Start m_clientDataBufferingTimer if it's not already active.
(WebCore::PlatformMediaSession::shouldOverrideBackgroundLoadingRestriction):
Call the client.
- platform/audio/PlatformMediaSession.h:
(WebCore::PlatformMediaSessionClient::shouldOverrideBackgroundLoadingRestriction):
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::sessionCanLoadMedia):
Call the new PlatformMediaSession::shouldOverrideBackgroundLoadingRestriction().
- 3:03 PM Changeset in webkit [201434] by
-
- 2 edits in trunk/Tools
Unreviewed test fix after r201427.
https://bugs.webkit.org/show_bug.cgi?id=157423
<rdar://problem/23751632>
A debug assertion was firing during some test runs due to the Geolocation permission
being turned off during the test. The timer logic was originally written to assert
if the timer fired when permissions were disabled. But this is no longer valid,
because we expect the Geolocation system to be active and become deactivated if the
browsing context violates one of the security criteria.
- DumpRenderTree/mac/UIDelegate.mm:
(-[UIDelegate timerFired]): Remove invalid assertion.
- 2:58 PM Changeset in webkit [201433] by
-
- 7 edits1 add in trunk
ScopedLambda should have a lifetime story that makes sense to the compiler
https://bugs.webkit.org/show_bug.cgi?id=158118
Reviewed by Mark Lam.
Source/WTF:
Prior to this change, there were two lifetime bugs in ScopedLambda:
- scopedLambda(Functor&&) would bind Functor to const lambda&, so the resulting ScopedLambdaFunctor would hold a reference to the original lambda. This would have surprising behavior; for example it meant that this code was wrong:
auto l = scopedLambda<things>([&] ...);
The solution is to have explicit copy/move versions of scopedLambda() rather than rely on perfect
forwarding.
- ScopedLambdaFunctor did not override its copy or move operations, so if the compiler did not RVO scopedLambda(), it would return a ScopedLambdaFunctor whose m_arg points to a dead temporary ScopedLambdaFunctor instance. The solution is to have explicit copy/move constructors and operators, which preserve the invariant that ScopedLambda::m_arg points to this.
One nice side-effect of all of these constructors and operators being explicit is that we can rely
on WTFMove's excellent assertions, which helped catch the first issue.
This reverts ParkingLot to use ScopedLambda again.
- wtf/ParkingLot.cpp:
(WTF::ParkingLot::parkConditionallyImpl):
(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::unparkOneImpl):
- wtf/ParkingLot.h:
(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::unparkOne):
- wtf/ScopedLambda.h:
(WTF::scopedLambda):
Tools:
Added a test case. This test crashes before the fix and now it passes.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/ScopedLambda.cpp: Added.
(TestWebKitAPI::TEST):
- 2:57 PM Changeset in webkit [201432] by
-
- 3 edits in trunk/Source/WebCore
Use std::atomic<> rather than OSAtomicIncrement in CARingBuffer.cpp
https://bugs.webkit.org/show_bug.cgi?id=158129
Reviewed by Eric Carlson.
std::atomic is a more portable atomic primitive than OSAtomicIncrement.
- platform/audio/mac/CARingBuffer.cpp:
(WebCore::CARingBuffer::setCurrentFrameBounds):
(WebCore::CARingBuffer::getCurrentFrameBounds):
(WebCore::CARingBuffer::currentStartFrame):
(WebCore::CARingBuffer::currentEndFrame):
- platform/audio/mac/CARingBuffer.h:
- 2:24 PM Changeset in webkit [201431] by
-
- 3 edits in trunk/Tools
Build fix
Rubber stamped by Lucas Forschler.
- DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
- WebKitTestRunner/Configurations/DebugRelease.xcconfig:
- 2:21 PM Changeset in webkit [201430] by
-
- 4 edits in trunk/Source
Build fix
Rubber stamped by Lucas Forschler.
- Configurations/DebugRelease.xcconfig:
- 1:37 PM Changeset in webkit [201429] by
-
- 2 edits in trunk/Source/WebCore
Rebaseline bindings tests after r201428
Unreviewed test gardening.
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjReplaceableAttribute):
- 12:51 PM Changeset in webkit [201428] by
-
- 7 edits in trunk
replaceable own properties seem to ignore replacement after property caching
https://bugs.webkit.org/show_bug.cgi?id=158091
Reviewed by Darin Adler.
PerformanceTests:
- MallocBench/MallocBench.xcodeproj/project.pbxproj:
- MallocBench/MallocBench/Benchmark.cpp:
- MallocBench/MallocBench/Interpreter.cpp:
(Interpreter::doMallocOp):
- MallocBench/MallocBench/Interpreter.h:
- MallocBench/MallocBench/fastMallocLog.63316.ops: Added.
- MallocBench/MallocBench/jetstream.cpp: Added.
(benchmark_jetstream):
- MallocBench/MallocBench/jetstream.h: Added.
Source/JavaScriptCore:
- runtime/Lookup.h:
(JSC::replaceStaticPropertySlot): New helper function for replacing a
static property with a direct property. We need to do an attribute changed
transition because client code might have cached our static property.
Source/WebCore:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): Use our new replacement helper if we're replacing
an own static property with an own direct property. Because we advertise
that our own static properties are cacheable, we need to do a structure
transition to indicate when they change. (Only own properties need this
special treatment because JSC considers it normal to shadow a prototype
property with an own property.)
LayoutTests:
- js/cached-window-properties.html: Augmneted this test to enter cacheable
dictionary mode in order to demonstrate a bug that is not visible otherwise.
Factored out a helper test function.
- 12:29 PM Changeset in webkit [201427] by
-
- 1 edit3 adds in trunk/LayoutTests
Sites served over insecure connections should not be allowed to use geolocation.
https://bugs.webkit.org/show_bug.cgi?id=157423
<rdar://problem/23751632>
Patch by Pranjal Jumde <pjumde@apple.com> on 2016-05-26
Reviewed by Brent Fulgham.
Add missing test content from r201423.
- http/tests/security/resources/geolocation-over-insecure-content.html: Added.
- http/tests/security/resources/geolocation-over-mixed-content-block.html: Added.
- http/tests/security/resources/geolocation-over-mixed-content.html: Added.
- 12:12 PM Changeset in webkit [201426] by
-
- 2 edits in trunk/LayoutTests
[Win] Update test expectation for imported blink test.
https://bugs.webkit.org/show_bug.cgi?id=158122
Patch by Per Arne Vollan <pvollan@apple.com> on 2016-05-26
Reviewed by Alex Christensen.
The crash on imported/blink/compositing/perspective-origin-overflow-hidden.html
was fixed in https://trac.webkit.org/changeset/192166.
- platform/win/TestExpectations:
- 12:06 PM Changeset in webkit [201425] by
-
- 1 edit2 moves5 adds1 delete in trunk/LayoutTests
Release JSC test test-observegc.js.layout failing.
https://bugs.webkit.org/show_bug.cgi?id=158126
Unreviewed.
Move this test to a directory that is less... "special"
- fast/misc/resources/test-observegc.js: Renamed from LayoutTests/js/script-tests/test-observegc.js.
- fast/misc/test-observegc-expected.txt: Renamed from LayoutTests/js/test-observegc-expected.txt.
- fast/misc/test-observegc.html: Added.
- js/test-observegc.html: Removed.
- 11:46 AM Changeset in webkit [201424] by
-
- 7 edits in trunk/Source/WebCore
BitmapImage::checkForSolidColor() cleanup
https://bugs.webkit.org/show_bug.cgi?id=157750
Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-05-26
Reviewed by Darin Adler.
Have a single implementation for BitmapImage::checkForSolidColor(). Create
a new function named NativeImage::solidColor() and call it from the former
one. The goal is to have the platform files contain only the platform dependent
code rather than repeating the platform independent code multiple times.
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyMetadataAndNotify): Invalidate m_solidColor.
(WebCore::BitmapImage::singlePixelSolidColor): Combine mayFillWithSolidColor(),
checkForSolidColor() and solidColor() in one function to guarantee the validity
of the returned value. Before, if solidColor() is called without calling
mayFillWithSolidColor() or checkForSolidColor(), the returned value would be
incorrect.
(WebCore::BitmapImage::dump): Use the m_solidColor Optional and Color states.
(WebCore::BitmapImage::mayFillWithSolidColor): Deleted.
(WebCore::BitmapImage::solidColor): Deleted.
- platform/graphics/BitmapImage.h: Delete m_checkedForSolidColor and
m_isSolidColor and change m_solidColor to be Optional<Color>.
- platform/graphics/Image.cpp:
(WebCore::Image::drawTiled): Use singlePixelSolidColor() and check the returned
value to know whether the singe pixel solid color optimization applies or not.
- platform/graphics/Image.h:
(WebCore::Image::singlePixelSolidColor):
(WebCore::Image::mayFillWithSolidColor): Deleted.
(WebCore::Image::solidColor): Deleted.
Replace mayFillWithSolidColor() and solidColor() with a single function named
singlePixelSolidColor(). isValid() of the returned Color can be used to tell
whether the singe pixel solid color optimization applies or not.
- platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::NativeImage::singlePixelSolidColor):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::checkForSolidColor): Deleted.
Delete the platform dependent BitmapImage::checkForSolidColor() and add
the new platform dependent function NativeImage::singlePixelSolidColor() and
use to know whether the singe pixel solid color optimization applies or not.
- platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::NativeImage::singlePixelSolidColor):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::checkForSolidColor): Deleted.
Ditto.
- 11:19 AM Changeset in webkit [201423] by
-
- 8 edits6 adds in trunk
Sites served over insecure connections should not be allowed to use geolocation.
https://bugs.webkit.org/show_bug.cgi?id=157423
<rdar://problem/23751632>
Patch by Pranjal Jumde <pjumde@apple.com> on 2016-05-26
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: http/tests/security/insecure-geolocation.html
http/tests/security/mixedcontent-geolocation-block-insecure-content.html
http/tests/security/mixedcontent-geolocation.html
- Modules/geolocation/Geolocation.cpp:
(WebCore::logError):
Logs an error to the console if geolocation is blocked.
(WebCore::Geolocation::startRequest):
Access to Geolocation will be blocked if site is not secure. An error will be logged when access to Geolocation is blocked.
(WebCore::Geolocation::shouldBlockGeolocationRequests)
Returns true if the access to geolocation should be blocked.
- Modules/geolocation/Geolocation.h:
- dom/SecurityContext.h:
(WebCore::SecurityContext::foundMixedContent):
Returns true if insecure content was accessed over secure connection.
(WebCore::SecurityContext::setFoundMixedContent):
Sets m_foundMixedContent to true if insecure content is accessed over secure connection.
(WebCore::SecurityContext::geolocationAccessed):
Returns true if geolocation was accessed
(WebCore::SecurityContext::setGeolocationAccessed):
Sets m_geolocationAccessed to true if geolocation was accessed.
- loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::canDisplayInsecureContent):
Insecure content will be blocked if geolocation was accessed by the page. Updates document to keep track of mixed content.
(WebCore::MixedContentChecker::canRunInsecureContent):
Insecure content will be blocked if geolocation was accessed by the page. Updates document to keep track of mixed content.
LayoutTests:
- http/tests/security/geolocation-over-insecure-content.html: Added.
- http/tests/security/geolocation-over-mixed-content-block.html: Added.
- http/tests/security/geolocation-over-mixed-content.html: Added.
- http/tests/security/insecure-geolocation-expected.txt: Added.
- http/tests/security/insecure-geolocation.html: Added.
- http/tests/security/mixedcontent-geolocation-block-insecure-content-expected.txt: Added.
- http/tests/security/mixedcontent-geolocation-block-insecure-content.html: Added.
- http/tests/security/mixedcontent-geolocation-expected.txt: Added.
- http/tests/security/mixedcontent-geolocation.html: Added.
- http/tests/security/sandboxed-iframe-geolocation-watchPosition.html: iframe is loaded over secure connection to avoid geolocation failures
- http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition.html: iframe is loaded over secure connection to avoid geolocation failures
- 10:23 AM Changeset in webkit [201422] by
-
- 8 edits6 adds in trunk
Implement internals.observeGC to get called back when a Javascript object is GC'ed.
https://bugs.webkit.org/show_bug.cgi?id=158093
Reviewed by Geoffrey Garen.
Source/WebCore:
Test: js/test-observegc.html
- CMakeLists.txt:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- testing/GCObservation.cpp: Added.
(WebCore::GCObservation::GCObservation):
- testing/GCObservation.h: Added.
- testing/GCObservation.idl: Added.
- testing/Internals.cpp:
(WebCore::Internals::observeGC):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- js/script-tests/test-observegc.js: Added.
- js/test-observegc-expected.txt: Added.
- js/test-observegc.html: Added.
- 10:08 AM Changeset in webkit [201421] by
-
- 3 edits2 adds in trunk
[Font Loading] Allow empty strings in FontFace constructor
https://bugs.webkit.org/show_bug.cgi?id=158112
Reviewed by Darin Adler.
Source/WebCore:
Other browsers accept empty strings and parse them as if they are omitted.
We should do the same. However, this is only true for the constructor. Setting
an attribute to an empty string should still throw an exception.
Test: fast/text/font-face-empty-string.html
- css/FontFace.cpp:
(WebCore::FontFace::create):
(WebCore::FontFace::setFamily):
(WebCore::FontFace::setStyle):
(WebCore::FontFace::setWeight):
(WebCore::FontFace::setUnicodeRange):
(WebCore::FontFace::setVariant):
(WebCore::FontFace::setFeatureSettings):
LayoutTests:
- fast/text/font-face-empty-string-expected.txt: Added.
- fast/text/font-face-empty-string.html: Added.
- 9:24 AM Changeset in webkit [201420] by
-
- 10 edits1 delete in trunk
WebRTC: RTCSessionDescription: Make attributes readonly (and remove custom binding)
https://bugs.webkit.org/show_bug.cgi?id=157858
Reviewed by Eric Carlson.
Source/WebCore:
Align RTCSessionDescription type with WebRTC 1.0 specification [1].
- Make constructor dictionary member mandatory
- Align constructor dictionary argument (RTCSessionDescriptionInit) with [1]
- Use RTCSdpType enum for the type attribute
- Remove custom binding
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html
Updated existing test.
- CMakeLists.txt:
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::createOfferTask):
- Modules/mediastream/RTCSessionDescription.cpp:
(WebCore::parseTypeString):
(WebCore::RTCSessionDescription::create):
(WebCore::RTCSessionDescription::RTCSessionDescription):
(WebCore::verifyType): Deleted.
(WebCore::RTCSessionDescription::setType): Deleted.
- Modules/mediastream/RTCSessionDescription.h:
(WebCore::RTCSessionDescription::type):
- Modules/mediastream/RTCSessionDescription.idl:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSRTCSessionDescriptionCustom.cpp: Removed.
(WebCore::constructJSRTCSessionDescription): Deleted.
LayoutTests:
- fast/mediastream/RTCSessionDescription-expected.txt:
- fast/mediastream/RTCSessionDescription.html:
Add tests for mandatory constructor dictionary argument and required 'type' member (also
check its value). Verify that attributes are read-only.
- 9:10 AM Changeset in webkit [201419] by
-
- 4 edits in trunk/Source/WebCore
NativeToJSValue is harcoding the $thisValue in some strings
https://bugs.webkit.org/show_bug.cgi?id=158113
Patch by Alejandro G. Castro <alex@igalia.com> on 2016-05-26
Reviewed by Darin Adler.
Replaced the string with the variable value.
Updated the tests results in the bindings.
- bindings/scripts/CodeGeneratorJS.pm:
(NativeToJSValue): Replaced the hardcoded string with the variable
value.
- bindings/scripts/test/JS/JSTestCallback.cpp:
(WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
- bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
(WebCore::JSTestCallbackFunction::callbackWithSerializedScriptValueParam):
- 7:28 AM WebKitGTK/2.12.x edited by
- Added r200371 for annulen who lacks edit privs (diff)
- 2:14 AM Changeset in webkit [201418] by
-
- 4 edits in trunk/Source/WebCore
Small improvements to RenderBox/LayoutUnit casting in MathML
https://bugs.webkit.org/show_bug.cgi?id=157943
Patch by Frederic Wang <fwang@igalia.com> on 2016-05-26
Reviewed by Darin Adler.
This is a small follow-up of the RenderMathMLRow/RenderMathMLUnderOver/RenderMathMLFraction
refactoring. Since these MathML renderers can only contain other MathML renderers, we can
just considerer RenderBox children and avoid unnecessary casts. Similarly, when the two
arguments of std::max are LayoutUnit's, we do not need to specialize to std::max<LayoutUnit>.
No new tests, behavior is not changed.
- rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::layoutBlock): Do not to specialize to std::max<LayoutUnit>.
- rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::updateOperatorProperties): Browse the list of RenderBox children
and use auto*.
(WebCore::RenderMathMLRow::computeLineVerticalStretch): Do not to specialize to std::max<LayoutUnit>.
- rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::unembellishedOperator): Get the RenderBox child and use auto*.
(WebCore::RenderMathMLUnderOver::computeOperatorsHorizontalStretch): Browse the list of
RenderBox children, use auto* and remove unnecessary casts. Do not to specialize to
std::max<LayoutUnit>.
- 12:54 AM Changeset in webkit [201417] by
-
- 3 edits in trunk/Source/WebCore
AX: crash at AccessibilityRenderObject::remoteSVGRootElement const
https://bugs.webkit.org/show_bug.cgi?id=158098
Reviewed by Joanmarie Diggs.
What looks like happens here is that when a document is torn down and we try to detach, we end up creating an accessibility element during detachment phase.
So instead of just clearing the callback pointer on an existing AXObject, we make a new object and access properties of an object being deallocated.
I tried very hard to make a test but it looks like this can really only be triggered during document tear down which also tears down the AXObjectCache. I didn't
have luck reproducing because of that.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
(WebCore::AccessibilityRenderObject::isSVGImage):
(WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
(WebCore::AccessibilityRenderObject::remoteSVGRootElement):
(WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
- accessibility/AccessibilityRenderObject.h:
May 25, 2016:
- 11:50 PM Changeset in webkit [201416] by
-
- 3 edits in trunk/Source/WebCore
Invalidate style for newly added nodes in Node::insertedInto
https://bugs.webkit.org/show_bug.cgi?id=158088
Reviewed by Darin Adler.
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::ContainerNode::childrenChanged):
(WebCore::ContainerNode::updateTreeAfterInsertion):
- dom/Node.cpp:
(WebCore::Node::insertedInto):
Consolidate setNeedsStyleRecalc(ReconstructRenderTree) here.
This also now happens earliest possible time, right after inserting the node and can avoid
some unneeded style invalidation work in subclass insertion handlers.
- 10:34 PM Changeset in webkit [201415] by
-
- 4 edits4 adds in trunk
Fix ResourceTiming multiple entries per resource and test initiator
https://bugs.webkit.org/show_bug.cgi?id=158094
Reviewed by Alex Christensen.
Make sure that CachedResource that was needed by two different elements only adds one entry, with the right (first) initiatorType.
Source/WebCore:
Tests: http/tests/performance/performance-resource-timing-initiator-css.html
http/tests/performance/performance-resource-timing-initiator-no-override.html
- loader/ResourceTimingInformation.cpp:
(WebCore::ResourceTimingInformation::addResourceTiming): Don't remove CachedResource when entry is added, but
mark it as added. Only add new entries for non-added resources.
(WebCore::ResourceTimingInformation::storeResourceTimingInitiatorInformation): Initialize initiator info as NotYetAdded.
- loader/ResourceTimingInformation.h:
LayoutTests:
- http/tests/performance/performance-resource-timing-initiator-css.html: Added. Makes sure css has the right initiator type.
- http/tests/performance/performance-resource-timing-initiator-css-expected.txt: Added.
- http/tests/performance/performance-resource-timing-initiator-no-override.html: Added. Makes sure that only one entry is added and
that its initiator info doesn't get overriden.
- http/tests/performance/performance-resource-timing-initiator-no-override-expected.txt: Added.
- 10:33 PM Changeset in webkit [201414] by
-
- 6 edits1 copy1 add in trunk
Fix ResourceTiming XHR flakiness
https://bugs.webkit.org/show_bug.cgi?id=158019
Reviewed by Alex Christensen.
Source/WebCore:
Remove XHR specific ResourceTiming information store and addition as it is not needed.
Test: http/tests/performance/performance-resource-timing-xhr-single-entry.html
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest): Removed XHR-specific initiator info storage.
(WebCore::DocumentThreadableLoader::didFinishLoading): Removed XHR-specific RT entry addition.
- loader/DocumentThreadableLoader.h:
LayoutTests:
Test fixes and additions that make sure XHR tests are not run as part of XHR's onload event, as ResourceTiming entries are added
after it.
- TestExpectations:
- http/tests/performance/performance-resource-timing-cached-entries.html: Avoid running the tests as part of the XHR's load event.
- http/tests/performance/performance-resource-timing-xhr-single-entry-expected.txt: Added.
- http/tests/performance/performance-resource-timing-xhr-single-entry.html: Test that XHR fetch adds a single entry with correct initiatorType.
- 10:31 PM Changeset in webkit [201413] by
-
- 4 edits in trunk
[cmake] Deduplicate make-js-file-arrays usage and make it work on Windows.
https://bugs.webkit.org/show_bug.cgi?id=157997
Reviewed by Alex Christensen.
.:
- Source/cmake/WebKitMacros.cmake: Added MAKE_JS_FILE_ARRAYS macro.
Source/WebCore:
No new tests needed.
- CMakeLists.txt: Use new MAKE_JS_FILE_ARRAYS macro.
- 8:27 PM WebKitGTK/2.12.x edited by
- Update a11y proposed merges to point to new bugs with … (diff)
- 8:19 PM Changeset in webkit [201412] by
-
- 6 edits3 adds in trunk
[JSC] RegExp with deeply nested subexpressions overflow the stack in Yarr
https://bugs.webkit.org/show_bug.cgi?id=158011
rdar://problem/25946592
Reviewed by Saam Barati.
Source/JavaScriptCore:
When generating the meta-data required for compilation,
Yarr uses a recursive function over the various expression in the pattern.
If you have many nested expressions, you can run out of stack
and crash the WebProcess.
This patch changes that into a soft failure. The expression is just
considered invalid.
- runtime/RegExp.cpp:
(JSC::RegExp::finishCreation):
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):
- yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
(JSC::Yarr::YarrPatternConstructor::setupOffsets):
(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse):
(JSC::Yarr::YarrPattern::compile):
(JSC::Yarr::YarrPattern::YarrPattern):
(JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets): Deleted.
(JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets): Deleted.
- yarr/YarrPattern.h:
LayoutTests:
- js/script-tests/stack-overflow-arrity-catch.js:
With the new failure, this test can fail on allocating
the RegExp for a valid reason.
The new expression should not have this issue.
- js/script-tests/stack-overflow-regexp.js: Added.
(shouldThrow.recursiveCall):
(shouldThrow):
(recursiveCall):
- js/stack-overflow-regexp-expected.txt: Added.
- js/stack-overflow-regexp.html: Added.
- 5:08 PM Changeset in webkit [201411] by
-
- 2 edits in trunk/LayoutTests
Marking imported/blink/http/tests/plugins/get-url-notify-on-removal.html as a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=158101
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:35 PM Changeset in webkit [201410] by
-
- 2 edits in trunk/Source/WebCore
Use HashMap::add() instead of HashMap::set() in Node::ensureEventTargetData()
https://bugs.webkit.org/show_bug.cgi?id=158092
Reviewed by Ryosuke Niwa.
Use HashMap::add() instead of HashMap::set() in Node::ensureEventTargetData()
as we already checked that the key is not present in the HashMap.
- dom/Node.cpp:
(WebCore::Node::ensureEventTargetData):
- 4:18 PM Changeset in webkit [201409] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r191531): Web Inspector: WebSQL databases are no longer shown when first opening Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=158096
<rdar://problem/26454671>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-25
Reviewed by Brian Burg.
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didOpenDatabase):
Remove the fast return errantly added in r191531. InspectorDatabaseAgent
wants to track databases, even before a frontend may be open, so that
on first open it can inform the frontend about open databases.
- 4:11 PM Changeset in webkit [201408] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'collectionData.affectedSnapshots')
https://bugs.webkit.org/show_bug.cgi?id=158051
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-25
Reviewed by Brian Burg.
- UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
(HeapSnapshot.prototype.updateDeadNodesAndGatherCollectionData):
- UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js:
(HeapSnapshotWorker.prototype.createSnapshot):
If by the time the timeout fires we had cleared our snapshot list, then
updateDeadNodesAndGatherCollectionData could bail. Handle gracefully.
- 4:01 PM Changeset in webkit [201407] by
-
- 3 edits2 adds in trunk
Setting overflow:hidden does not always repaint clipped content.
https://bugs.webkit.org/show_bug.cgi?id=116994
rdar://problem/26476697
Issue repaint for both layout and visual overflow rects when the container starts
clipping overflow content.
Reviewed by David Hyatt.
Source/WebCore:
Test: fast/repaint/overflow-hidden-repaint.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::updateFromStyle):
LayoutTests:
- fast/repaint/overflow-hidden-repaint-expected.html: Added.
- fast/repaint/overflow-hidden-repaint.html: Added.
- 3:56 PM Changeset in webkit [201406] by
-
- 9 edits2 deletes in trunk
Get rid of WTF/Functional.h
https://bugs.webkit.org/show_bug.cgi?id=158081
Reviewed by Chris Dumez.
Source/WebCore:
- Modules/mediastream/MediaStreamTrack.cpp:
Source/WTF:
This is no longer used, and removing it will free up the name for a new Functional.h implementation.
- WTF.xcodeproj/project.pbxproj:
- wtf/Functional.h: Removed.
(WTF::RefAndDeref::ref): Deleted.
(WTF::RefAndDeref::deref): Deleted.
(WTF::ParamStorageTraits::wrap): Deleted.
(WTF::ParamStorageTraits::unwrap): Deleted.
(WTF::ParamStorageTraits<PassRefPtr<T>>::wrap): Deleted.
(WTF::ParamStorageTraits<PassRefPtr<T>>::unwrap): Deleted.
(WTF::ParamStorageTraits<RefPtr<T>>::wrap): Deleted.
(WTF::ParamStorageTraits<RefPtr<T>>::unwrap): Deleted.
(WTF::ParamStorageTraits<RetainPtr<T>>::wrap): Deleted.
(WTF::ParamStorageTraits<RetainPtr<T>>::unwrap): Deleted.
(WTF::FunctionImplBase::~FunctionImplBase): Deleted.
(WTF::FunctionBase::isNull): Deleted.
(WTF::FunctionBase::FunctionBase): Deleted.
(WTF::FunctionBase::impl): Deleted.
(WTF::bind): Deleted.
- wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/Functional.cpp: Removed.
(TestWebKitAPI::returnFortyTwo): Deleted.
(TestWebKitAPI::TEST): Deleted.
(TestWebKitAPI::multiplyByTwo): Deleted.
(TestWebKitAPI::multiplyByOneAndAHalf): Deleted.
(TestWebKitAPI::multiply): Deleted.
(TestWebKitAPI::subtract): Deleted.
(TestWebKitAPI::A::A): Deleted.
(TestWebKitAPI::A::f): Deleted.
(TestWebKitAPI::A::addF): Deleted.
(TestWebKitAPI::B::B): Deleted.
(TestWebKitAPI::B::~B): Deleted.
(TestWebKitAPI::B::ref): Deleted.
(TestWebKitAPI::B::deref): Deleted.
(TestWebKitAPI::B::f): Deleted.
(TestWebKitAPI::B::g): Deleted.
(TestWebKitAPI::Number::create): Deleted.
(TestWebKitAPI::Number::~Number): Deleted.
(TestWebKitAPI::Number::value): Deleted.
(TestWebKitAPI::Number::Number): Deleted.
(TestWebKitAPI::multiplyNumberByTwo): Deleted.
- 3:07 PM Changeset in webkit [201405] by
-
- 4 edits in trunk/Source/WebKit2
Flashiness and jumpiness when entering fullscreen
https://bugs.webkit.org/show_bug.cgi?id=158087
Reviewed by Beth Dakin.
Multiple independant sources of jumpiness and flashiness are addressed here:
- Setting the top content inset on the WKView cause a vertical jump during fullscreen
transition. Instead of setting the content inset to 0, take the existing inset into account
when placing the WKView in the NSWindow.
- The enter fullscreen transition causes a white flash due to the NSWindow needing
display before ordering onscreen. Ensure the window has a backing by calling -displayIfNeeded
before entering fullscreen mode.
- The exit fullscreen transition causes a white background color flash for an unknown
reason, but is solved by not making the window's content view layer-backed. Rather than
directly animating the contentView's background color, create a specific background view
and animate it's background color instead.
- UIProcess/mac/WKFullScreenWindowController.h:
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController initWithWindow:webView:page:]):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):
- WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::saveScrollPosition): Deleted.
(WebKit::WebFullScreenManager::restoreScrollPosition): Deleted.
- 2:58 PM Changeset in webkit [201404] by
-
- 22 edits2 adds in trunk
[WebSockets] No infrastructure for testing secure web sockets (wss)
https://bugs.webkit.org/show_bug.cgi?id=157884
<rdar://problem/26477197>
Reviewed by Andy Estes.
Source/WebCore:
Add a new test-only flag used to tell CFNetwork that we do not wish to
validate the SLL certificate chain. This allows us to use self-signed
certificates in test cases.
Tests: http/tests/websocket/tests/hybi/simple-wss.html
- page/Settings.cpp:
(WebCore::Settings::setAllowsAnySSLCertificate): Added.
(WebCore::Settings::allowsAnySSLCertificate): Added. This defaults
to False.
- page/Settings.h:
- platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::createStreams): When running under our
testing infrastructure, do not require full certificate validation.
- testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::setAllowsAnySSLCertificate): Added.
- testing/js/WebCoreTestSupport.h:
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::setAllowsAnySSLCertificate): Added.
- testing/InternalSettings.h:
Tools:
Add support to webkitpy to start and stop a secure Web Socket server running on port 9323
using the certificate, private-key from file LayoutTests/http/conf/webkit-httpd.pem. Also
teaches run-webkit-httpd to start and stop the Web Socket servers.
Modify DumpRenderTree and WebKitTestRunner to understand a new testRunner method,
'setAllowsAnySSLCertificate', which allows us to use the same self-signed test certificate
we do for our HTTPS tests.
- DumpRenderTree/TestRunner.cpp:
(setAllowsAnySSLCertificateCallback):
(TestRunner::setAllowsAnySSLCertificate):
- DumpRenderTree/TestRunner.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebViewToConsistentStateBeforeTesting): Make sure we turn off the new flag between tests.
- Scripts/run-webkit-httpd:
(main): Start the websocket server at launch.
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.init): Remove dead code.
- Scripts/webkitpy/layout_tests/servers/websocket_server.py:
(PyWebSocket.init): Cleanup code.
(PyWebSocket): Pass '--tls-client-ca' to start command.
(PyWebSocket._prepare_config): Cleanups.
- Scripts/webkitpy/port/base.py:
(Port.to.start_http_server):
(Port.to):
(Port.to._extract_certificate_from_pem): Added.
(Port.to._extract_private_key_from_pem): Added.
(Port.to.start_websocket_server): Start secure socket server.
(Port.to.stop_websocket_server): Stop secure socket server.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Add new API.
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::setAllowsAnySSLCertificate): Added.
- WebKitTestRunner/InjectedBundle/InjectedBundle.h:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setAllowsAnySSLCertificate): Added.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
LayoutTests:
- http/tests/websocket/tests/hybi/simple-wss-expected.txt: Added.
- http/tests/websocket/tests/hybi/simple-wss.html: Added.
- 2:57 PM Changeset in webkit [201403] by
-
- 2 edits in trunk/Source/WebCore
CRASH at WebCore::WebPlaybackSessionModelMediaElement::selectAudioMediaOption() + 104
https://bugs.webkit.org/show_bug.cgi?id=158090
<rdar://problem/26388936>
Reviewed by Eric Carlson.
Null-check m_mediaElement before using.
- platform/cocoa/WebPlaybackSessionModelMediaElement.mm:
(WebPlaybackSessionModelMediaElement::selectAudioMediaOption):
(WebPlaybackSessionModelMediaElement::selectLegibleMediaOption):
- 2:19 PM Changeset in webkit [201402] by
-
- 2 edits in trunk/Source/WebCore
Race condition calling back to an IDBOpenDBRequest during WorkerThread shutdown.
https://bugs.webkit.org/show_bug.cgi?id=158089
Reviewed by Alex Christensen.
No new tests (Only seen randomly under GuardMalloc).
Crash was seen once running under GuardMalloc. The error is obvious.
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest): Don't get a raw pointer out of the map.
Instead store off as a RefPtr, as the map might be cleared out from the worker thread.
- 2:13 PM Changeset in webkit [201401] by
-
- 5 edits in trunk/Source/WebCore
Simplify and inline minimumValueForLength()
https://bugs.webkit.org/show_bug.cgi?id=158084
Reviewed by Zalan Bujtas.
Simplify and inline minimumValueForLength(). Based on iOS PLT profiles,
we spend up to 0.7% of CPU time during page loads in this function.
The roundPercentages parameter has been dropped because it was false
for all call sites.
- css/LengthFunctions.cpp:
(WebCore::minimumIntValueForLength): Deleted.
(WebCore::minimumValueForLength): Deleted.
- css/LengthFunctions.h:
(WebCore::minimumValueForLength):
(WebCore::minimumIntValueForLength):
- rendering/RenderBoxModelObject.cpp:
(WebCore::resolveEdgeRelativeLength):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
- rendering/RenderElement.h:
(WebCore::RenderElement::minimumValueForLength):
- 2:02 PM Changeset in webkit [201400] by
-
- 2 edits in trunk/LayoutTests
Marking http/tests/css/shared-stylesheet-mutation.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=158085
Unreviewed test gardening.
- 12:52 PM Changeset in webkit [201399] by
-
- 6 edits in trunk
[css-grid] Update <fixed-size> syntax
https://bugs.webkit.org/show_bug.cgi?id=158063
Reviewed by Darin Adler.
Source/WebCore:
The syntax for <fixed-size> has been updated on the spec:
https://drafts.csswg.org/css-grid/#typedef-fixed-size
New syntax is:
<fixed-size> =
<fixed-breadth> |
minmax( <fixed-breadth> , <track-breadth> ) |
minmax( <inflexible-breadth> , <fixed-breadth> )
This means that it's enough to have one <fixed-breadth>,
it doesn't matter if it's as minimum or maximum.
Before it was required that the minimum was fixed.
- css/CSSParser.cpp:
(WebCore::isGridTrackFixedSized):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeAutoRepeatTracksCount):
LayoutTests:
Updated test to check the new expected behavior.
- fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
- fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
- 12:49 PM Changeset in webkit [201398] by
-
- 6 edits in trunk/Source
Fix CMake build.
- PlatformMac.cmake:
Source/WebCore:
c++14 is needed since r201255.
ColorSync (in ApplicationServices) is needed since r201065.
- 12:41 PM Changeset in webkit [201397] by
-
- 11 edits3 adds in trunk
Swap search field's cancel and result button for RTL content.
https://bugs.webkit.org/show_bug.cgi?id=158007
Reviewed by Dean Jackson.
Source/WebCore:
Test: fast/forms/search-input-rtl.html
- css/html.css:
(input[type="search"]::-webkit-textfield-decoration-container): Deleted.
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):
LayoutTests:
- fast/forms/resources/common.js:
(searchCancelButtonPositionRTL):
(searchCancelButtonPosition):
- fast/forms/search-input-rtl.html: Added.
- fast/forms/search-rtl.html:
- platform/ios-simulator-wk2/fast/forms/search-rtl-expected.txt:
- platform/ios-simulator/fast/css/text-overflow-input-expected.txt:
- platform/ios-simulator/fast/forms/search-input-rtl-expected.txt: Added.
- platform/mac/fast/css/text-overflow-input-expected.txt:
- platform/mac/fast/forms/placeholder-position-expected.txt:
- platform/mac/fast/forms/search-input-rtl-expected.png: Added.
- platform/mac/fast/forms/search-input-rtl-expected.txt: Added.
- platform/mac/fast/forms/search-rtl-expected.txt:
- 12:39 PM Changeset in webkit [201396] by
-
- 2 edits in trunk
[css-grid] Turn on ENABLE_CSS_GRID_LAYOUT by default
https://bugs.webkit.org/show_bug.cgi?id=158060
Reviewed by Darin Adler.
The runtime flag is disabled by default,
but we want to build CSS Grid Layout by default.
Otherwise the runtime flag would be useless.
- Source/cmake/WebKitFeatures.cmake:
- 12:17 PM Changeset in webkit [201395] by
-
- 5 edits in trunk/Source/WebKit2
Simplify a few lambda captures in the network cache code
https://bugs.webkit.org/show_bug.cgi?id=158076
Reviewed by Antti Koivisto.
Simplify a few lambda captures in the network cache code by WTFMoving
upon capture.
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry):
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
- NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache):
(WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCache::Statistics::recordRetrievalFailure):
(WebKit::NetworkCache::Statistics::writeTimerFired):
(WebKit::NetworkCache::Statistics::addHashesToDatabase):
(WebKit::NetworkCache::Statistics::addStoreDecisionsToDatabase):
- NetworkProcess/cache/NetworkCacheStatistics.h:
- 12:08 PM Changeset in webkit [201394] by
-
- 5 edits2 adds in trunk
[Font Loading] ASSERT if calling FontFace.loaded twice with a garbage collection between them
https://bugs.webkit.org/show_bug.cgi?id=158015
Reviewed by Darin Adler.
Source/WebCore:
The following scenario may occur:
- We create a FontFace object
- We create an associated JSFontFace object
- We start loading the FontFace, which causes an extra ref to hang around until loading finishes
- Javascript calls the "loaded" attribute on the FontFace, which saves a promise inside the FontFace
- The FontFace goes out of scope in Javascript
- A garbage collection occurs, causing us to delete the JSFontFace object
- Javascript then encounters the FontFace object without first going through a reference to a JSFontFace.
It can do this via iterating through a FontFaceSet. We respond to this situation by creating a new
JSFontFace object and associating it with the existing FontFace.
- Javascript calls the "loaded" attribute
In this situation, the newer JSFontFace object is out of sync with the older FontFace object. In
particular, the FontFace has a saved promise, but the JSFontFace doesn't know about it. Therefore,
the JSFontFace should be flexible to the presence of this member.
Test: fast/text/font-face-crash-2.html
- bindings/js/JSDOMPromise.h:
(WebCore::DOMPromise::deferredWrapper):
- bindings/js/JSFontFaceCustom.cpp:
(WebCore::JSFontFace::loaded):
- css/FontFace.h:
LayoutTests:
- fast/text/font-face-crash-2-expected.txt: Added.
- fast/text/font-face-crash-2.html: Added.
- 12:04 PM Changeset in webkit [201393] by
-
- 4 edits2 adds in trunk
Source/WebCore:
Shadow DOM: RenderTreePosition miscomputed when display:contents value changes
https://bugs.webkit.org/show_bug.cgi?id=158072
rdar://problem/25766333
Reviewed by Darin Adler.
Test: fast/shadow-dom/slot-crash.html
- style/RenderTreePosition.h:
(WebCore::RenderTreePosition::invalidateNextSibling):
Add unconditional invalidation function.
- style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):
With display:contents rendering siblings may be found from the subtree and the existing cached
position may become invalid.
If the display:contents value changes invalidate the current render tree position.
LayoutTests:
Shadow DOM: RenderTreePosition should determine if element has display:contents from new style
https://bugs.webkit.org/show_bug.cgi?id=158072
Reviewed by Darin Adler.
- fast/shadow-dom/slot-crash.html: Added.
- 12:01 PM WebKitGTK/2.12.x edited by
- (diff)
- 12:00 PM WebKitGTK/2.12.x edited by
- (diff)
- 11:59 AM Changeset in webkit [201392] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix Win64 build after r201335
https://bugs.webkit.org/show_bug.cgi?id=158078
Reviewed by Mark Lam.
- offlineasm/x86.rb:
Add intel implementations for loadbs and loadhs
- 11:31 AM Changeset in webkit [201391] by
-
- 2 edits in trunk/Tools
run-jsc-benchmarks should use the new JSBench rather than look for it in the config file.
https://bugs.webkit.org/show_bug.cgi?id=158077
Reviewed by Mark Lam.
Since we didn't have JSBench in the tree before we needed to lookup the path to it from
benchmark config file. That's no longer the case so we should just fix it in the script.
- Scripts/run-jsc-benchmarks:
- 11:20 AM Changeset in webkit [201390] by
-
- 6 edits in trunk/Source/WebCore
Modern IDB: IDB objects from a worker thread might be destroyed on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=158004
Reviewed by Alex Christensen.
No new tests (Spuriously reproduces on the bots, but I've been unable to construct a reliable test).
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest):
(WebCore::IDBClient::IDBConnectionProxy::notifyOpenDBRequestBlocked):
(WebCore::IDBClient::IDBConnectionProxy::didCommitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didAbortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::unregisterDatabaseConnection):
(WebCore::IDBClient::removeItemsMatchingCurrentThread):
(WebCore::IDBClient::IDBConnectionProxy::forgetActivityForCurrentThread): Clear out all objects that originated on this thread.
(WebCore::IDBClient::IDBConnectionProxy::takeIDBOpenDBRequest): Deleted.
- Modules/indexeddb/client/IDBConnectionProxy.h:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::stopIndexedDatabase):
- workers/WorkerGlobalScope.h:
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::stop):
- 11:02 AM Changeset in webkit [201389] by
-
- 5 edits in trunk/Source
Versioning.
- 10:37 AM Changeset in webkit [201388] by
-
- 1 copy in tags/Safari-602.1.34
New tag.
- 9:43 AM Changeset in webkit [201387] by
-
- 14 edits in trunk/Source/WebCore
Remove unused slotBase parameter in bindings generator
https://bugs.webkit.org/show_bug.cgi?id=158068
Patch by Nael Ouedraogo <nael.ouedraogo@crf.canon.fr> on 2016-05-25
Reviewed by Darin Adler.
Remove unused slotBase parameter from attribute Getter functions.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
- bindings/scripts/test/JS/JSTestException.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
- bindings/scripts/test/JS/JSTestNode.cpp:
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
- bindings/scripts/test/JS/JSattribute.cpp:
- 9:39 AM Changeset in webkit [201386] by
-
- 4 edits in trunk/Source/WebCore
Include fewer headers from headers
https://bugs.webkit.org/show_bug.cgi?id=158043
Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-25
Reviewed by Brady Eidson.
- platform/graphics/GraphicsContext.h:
- rendering/svg/RenderSVGResourceClipper.h:
(isType):
- rendering/svg/RenderSVGResourceMasker.h:
- 9:19 AM Changeset in webkit [201385] by
-
- 2 edits in trunk/Source/WebCore
ASSERT in WebCore::TextTrackList::remove when running media/track/track-remove-track.html
https://bugs.webkit.org/show_bug.cgi?id=158071
<rdar://problem/26432041>
Reviewed by Chris Dumez.
No new tests, this prevents media/track/track-remove-track.html from crashing.
- html/track/TextTrackList.cpp:
(TextTrackList::remove): Don't assert when the media element has been set to null.
- 9:01 AM Changeset in webkit [201384] by
-
- 2 edits in trunk/Source/WebCore
Addressing post-review comments on r200971.
Reviewed by Darin Adler.
- page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
- 8:23 AM Changeset in webkit [201383] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION(r201066): [GTK] Several intl tests started to fail in GTK+ bot after r201066
https://bugs.webkit.org/show_bug.cgi?id=158066
Reviewed by Darin Adler.
run-javascriptcore-tests does $ENV{LANG}="en_US.UTF-8"; but we are not actually honoring the environment
variables at all when using jsc binary. We are using setlocale() with a nullptr locale to get the current one, but
the current one is always "C", because to set the locale according to the environment variables we need to call
setlocale with an empty string as locale. That's done by gtk_init(), which is called by all our binaries (web
process, network process, etc.), but not by jsc (because jsc doesn't depend on GTK+). The reason why it has
always worked for EFL is because they call ecore_init() in jsc that calls setlocale.
- jsc.cpp:
(main): Call setlocale(LC_ALL, "") on GTK+.
- 7:44 AM Changeset in webkit [201382] by
-
- 3 edits in trunk/Source/WebCore
[css-grid] Simplify grid track sizes parsing
https://bugs.webkit.org/show_bug.cgi?id=158021
Reviewed by Sergio Villar Senin.
Previously once we saw an auto-repeat function,
we passed the "FixedSizeOnly" restriction to the rest of methods.
That way we were sure that all the tracks after the auto-repeat
had fixed sizes.
But we needed to call allTracksAreFixedSized() to be sure that
the tracks before the auto-repeat had fixed sizes too.
Now we're introducing a new boolean |allTracksAreFixedSized|,
to check in advance if the declaration contains any track not fixed.
If that's the case and we found an auto-repeat method,
we consider it invalid.
With this approach we avoid the loop to verify
that all the tracks (before and after the auto-repeat) are fixed.
It also allows us to simplify the code and avoid passing
the restriction to all the methods parsing the track size.
No new tests, no change of behavior.
- css/CSSParser.cpp:
(WebCore::isGridTrackFixedSized): New method to check if a grid track
size is fixed or not (based on old allTracksAreFixedSized()).
(WebCore::CSSParser::parseGridTrackList): Add new boolean to detect
if any track has not a fixed size.
(WebCore::CSSParser::parseGridTrackRepeatFunction): Ditto.
(WebCore::CSSParser::parseGridTrackSize): Remove usage of
TrackSizeRestriction enum.
Check here if |minTrackBreadth| is a flexible size.
(WebCore::CSSParser::parseGridBreadth): Remove usage of
TrackSizeRestriction enum.
(WebCore::allTracksAreFixedSized): Deleted.
- css/CSSParser.h: Remove TrackSizeRestriction enum and update headers.
- 6:18 AM Changeset in webkit [201381] by
-
- 3 edits in trunk/Source/WebKit2
[Unix] Potential buffer overrun of m_fileDescriptors in readBytesFromSocket of ConnectionUnix.cpp
https://bugs.webkit.org/show_bug.cgi?id=158058
Patch by Fujii Hironori <Fujii Hironori> on 2016-05-25
Reviewed by Carlos Garcia Campos.
Memcpy does not check the boundary of m_fileDescriptors in
readBytesFromSocket of ConnectionUnix.cpp. This is not a problem
in normal cases, but in the case when Web process is hijacked and
malicious IPC packets were sent. WTF::Vector already has two
members m_capacity and m_size. There is no need to have a
separate member m_fileDescriptorsSize to remember the number of
remaining data.
- Platform/IPC/Connection.h: Remove members m_readBufferSize and
m_fileDescriptorsSize.
- Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::platformInitialize): Removed initialization of
m_readBufferSize and m_fileDescriptorsSize. Reserve initial
capacity for m_readBuffer and m_fileDescriptors.
(IPC::Connection::processMessage): Replace m_readBufferSize and
m_fileDescriptorsSize with m_readBuffer.size() and
m_fileDescriptors.size(). Use Vector::shrink() to reset the
number of remaining data in the buffers.
(IPC::readBytesFromSocket) : Change argument types to WTF::Vector
instead of pointers and sizes.
(IPC::Connection::readyReadHandler): Call new readBytesFromSocket
- 6:03 AM Changeset in webkit [201380] by
-
- 2 edits in trunk/Source/JavaScriptCore
[ARM] Fix the Wcast-align warning in LinkBuffer.cpp
https://bugs.webkit.org/show_bug.cgi?id=157889
Reviewed by Darin Adler.
- assembler/LinkBuffer.cpp:
(JSC::recordLinkOffsets):
- 4:32 AM Changeset in webkit [201379] by
-
- 3 edits in trunk/Source/WebCore
[css-grid] Refactor populateGridPositions()
https://bugs.webkit.org/show_bug.cgi?id=158065
Reviewed by Carlos Garcia Campos.
RenderGrid::populateGridPositions() was doing exactly the same thing for columns and rows
but using different data structures. That lead to a lot of duplicated code. It's easy to
refactor it in a new function that properly select the data structures to operate on based
on the direction.
No new tests as there is no change in behaviour.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::populateGridPositionsForDirection): Refactored from
populateGridPositions().
(WebCore::RenderGrid::populateGridPositions): Deleted.
- rendering/RenderGrid.h:
- 4:17 AM Changeset in webkit [201378] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, rolling out r201373.
https://bugs.webkit.org/show_bug.cgi?id=158064
Several tests are hitting the ASSERT (Requested by rego on
#webkit).
Reverted changeset:
"[css-grid] Simplify grid track sizes parsing"
https://bugs.webkit.org/show_bug.cgi?id=158021
http://trac.webkit.org/changeset/201373
- 4:13 AM Changeset in webkit [201377] by
-
- 3 edits in trunk/Source/WebCore
Purge PassRefPtr from TouchList
https://bugs.webkit.org/show_bug.cgi?id=157985
Patch by Nael Ouedraogo <nael.ouedraogo@crf.canon.fr> on 2016-05-25
Reviewed by Darin Adler.
Use RefPtr&& argument instead of PassRefPtr in append()
- dom/TouchList.h:
(WebCore::TouchList::append):
- page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
- 3:59 AM Changeset in webkit [201376] by
-
- 3 edits in trunk/Source/WebKit2
Update constructRevalidationRequest() to stop returning a unique_ptr<ResourceRequest>
https://bugs.webkit.org/show_bug.cgi?id=158046
Reviewed by Darin Adler.
Update constructRevalidationRequest() to stop returning a unique_ptr<ResourceRequest>
and to return a ResourceRequest instead. There is no reason for it to return a
pointer.
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::revalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry):
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
- 3:58 AM Changeset in webkit [201375] by
-
- 2 edits in trunk/LayoutTests
Update dom/Window/messageevent-source-postmessage-reified.html after r201315
https://bugs.webkit.org/show_bug.cgi?id=158048
Reviewed by Darin Adler.
We need to delete a property that is part of the Window's static table
now in order to force the reification.
- fast/dom/Window/messageevent-source-postmessage-reified.html:
- 2:49 AM Changeset in webkit [201374] by
-
- 5 edits4 adds in trunk
Elements with backdrop-filter cannot be clipped with clip-path or mask
https://bugs.webkit.org/show_bug.cgi?id=142662
<rdar://problem/20150192>
Patch by Antoine Quint <Antoine Quint> on 2016-05-25
Reviewed by Dean Jackson.
Source/WebCore:
We used to only apply the mask to the layer contents but did not account
for the fact that a layer backdrop may exist. We now correctly mask the
backdrop layer as well as the layer contents.
Test: css3/filters/backdrop/backdrop-filter-with-clip-path.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateShape):
Ensure clones of a layer use the same shape path.
(WebCore::GraphicsLayerCA::updateMaskLayer):
If we have a backdrop layer, ensure that we apply a clone of the mask layer applied to
the layer contents.
Source/WebKit2:
Ensure layer clones are set up with the same shape path as their original layer.
- WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
LayoutTests:
New test that checks that applying a backdrop-filter and a clip-path on a single
element has the same effect as applying a clip-path on a parent of a child with
a backdrop-filter.
- css3/filters/backdrop/backdrop-filter-with-clip-path-expected.txt: Added.
- css3/filters/backdrop/backdrop-filter-with-clip-path.html: Added.
- platform/ios-simulator/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.html: Added.
- platform/mac/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.png: Added.
- 2:22 AM Changeset in webkit [201373] by
-
- 3 edits in trunk/Source/WebCore
[css-grid] Simplify grid track sizes parsing
https://bugs.webkit.org/show_bug.cgi?id=158021
Reviewed by Sergio Villar Senin.
Previously once we saw an auto-repeat function,
we passed the "FixedSizeOnly" restriction to the rest of methods.
That way we were sure that all the tracks after the auto-repeat
had fixed sizes.
But we needed to call allTracksAreFixedSized() to be sure that
the tracks before the auto-repeat had fixed sizes too.
Now we're introducing a new boolean |allTracksAreFixedSized|,
to check in advance if the declaration contains any track not fixed.
If that's the case and we found an auto-repeat method,
we consider it invalid.
With this approach we avoid the loop to verify
that all the tracks (before and after the auto-repeat) are fixed.
It also allows us to simplify the code and avoid passing
the restriction to all the methods parsing the track size.
No new tests, no change of behavior.
- css/CSSParser.cpp:
(WebCore::isGridTrackFixedSized): New method to check if a grid track
size is fixed or not (based on old allTracksAreFixedSized()).
(WebCore::CSSParser::parseGridTrackList): Add new boolean to detect
if any track has not a fixed size.
(WebCore::CSSParser::parseGridTrackRepeatFunction): Ditto.
(WebCore::CSSParser::parseGridTrackSize): Remove usage of
TrackSizeRestriction enum.
Check here if |minTrackBreadth| is a flexible size.
(WebCore::CSSParser::parseGridBreadth): Remove usage of
TrackSizeRestriction enum.
(WebCore::allTracksAreFixedSized): Deleted.
- css/CSSParser.h: Remove TrackSizeRestriction enum and update headers.
- 2:05 AM Changeset in webkit [201372] by
-
- 2 edits in trunk/PerformanceTests
Unreviewed, add JSBench to the skipped list for now since it doesn't
work currently.
- Skipped:
May 24, 2016:
- 10:18 PM Changeset in webkit [201371] by
-
- 3 edits in trunk/Source/WebKit2
Simplify a couple of lambda captures in the network cache code
https://bugs.webkit.org/show_bug.cgi?id=158053
Reviewed by Brady Eidson.
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
Just capture subResourceInfo instead of allocating a new copy
on the heap. There is no reason we cannot simply capture
subResourceInfo here.
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::clear):
Use new C++14 capture with initialization to make the code a
bit nicer.
- 6:21 PM Changeset in webkit [201370] by
-
- 3 edits in trunk/Tools
Reorganize dashboard code: move code from _timeIntervalString to base class
https://bugs.webkit.org/show_bug.cgi?id=158047
rdar://problem/26457274
Reviewed by Alexey Proskuryakov and Dean Johnson.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueView.js:
(BubbleQueueView.prototype._timeIntervalString): Moved core logic to base class so as to make it re-usable.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/QueueView.js:
(QueueView.prototype._readableTimeString): Same.
- 5:55 PM Changeset in webkit [201369] by
-
- 1 copy in tags/Safari-602.1.32.5.1
New tag.
- 5:54 PM Changeset in webkit [201368] by
-
- 1 copy in tags/Safari-602.1.32.6
New tag.
- 5:54 PM Changeset in webkit [201367] by
-
- 1 copy in tags/Safari-601.7.4
New tag.
- 5:46 PM Changeset in webkit [201366] by
-
- 3 edits in trunk/Source/WebKit2
_WKThumbnailView should expose its snapshot size
https://bugs.webkit.org/show_bug.cgi?id=158049
Reviewed by Tim Horton.
- UIProcess/API/Cocoa/_WKThumbnailView.h:
- UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView _didTakeSnapshot:]):
Update the new snapshotSize property in a KVO-compliant manner.
- 5:45 PM Changeset in webkit [201365] by
-
- 2 edits in trunk/Tools
[JSC][GTK][EFL] Allow run-jsc-benchmark to use WebKitTestRunner in EFL / GTK ports
https://bugs.webkit.org/show_bug.cgi?id=158016
Reviewed by Darin Adler.
This patch easily allows run-jsc-benchmark to run WebKitTestRunner-based tests in GTK / EFL ports.
This change encourages us to run tests with the browser-heap in nix environments.
Two things are modified.
- Add a fall-back to look up the library path in GTK / EFL / JSCOnly environment.
In GTK / EFL / JSCOnly ports, the hierarchy of the build directory is slightly different from Apple port.
For example, the jsc bin locate at "WebKitBuild/XXX/Release/bin/jsc" and the lib path is "WebKitBuild/XXX/Release/lib"
while the one of Apple port is "WebKitBuild/XXX/Release/jsc" and "WebKitBuild/XXX/Release/lib".
And based on this library path, we configure the required environment variables to run WebKitTestRunner in GTK / EFL ports.
- Add --dependencies option to add dependent library paths.
While Apple ports does not require any additional dependent library path, GTK and EFL ports require this path,
typically WebKitBuild/DependenciesGTK and WebKitBuild/DependenciesEFL respectively. So we need to add such paths to LD_LIBRARY_PATH.
Instead of adding platform options like --gtk / --efl, we add --dependencies option to add the additional dependent library paths.
The platform options still require the build path to look up the dependent library directory. So we pass it directly through --dependencies.
Multiple additional dependent library paths can be added by using --dependencies multiple times.
By using these change, we can run benchmarks that require WebKitTestRunner in GTK / EFL ports (If you would like to run them in a headless manner, you can use xvbuf.).
Example:
Tools/Scripts/run-jsc-benchmarks baseline:WebKitBuild/baseline/Release/bin/WebKitTestRunner patched:WebKitBuild/patched/Release/bin/WebKitTestRunner --dependencies WebKitBuild/DependenciesGTK/Root/lib --js-bench
- Scripts/run-jsc-benchmarks:
- 5:12 PM Changeset in webkit [201364] by
-
- 3 edits in trunk/Source/JavaScriptCore
TypedArray.prototype.slice should not throw if no arguments are provided
https://bugs.webkit.org/show_bug.cgi?id=158044
<rdar://problem/26433280>
Reviewed by Geoffrey Garen.
We were throwing an exception if the TypedArray.prototype.slice function
was not provided arguments. This was wrong. Instead we should just assume
the first argument was 0.
- runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
(JSC::genericTypedArrayViewProtoFuncSlice): Deleted.
- tests/stress/typedarray-slice.js:
- 4:49 PM Changeset in webkit [201363] by
-
- 21 edits3 adds in trunk/Source
LLInt should be able to cache prototype loads for values in GetById
https://bugs.webkit.org/show_bug.cgi?id=158032
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
This patch adds prototype value caching to the LLInt for op_get_by_id.
Two previously unused words in the op_get_by_id bytecode have been
repurposed to hold extra information for the cache. The first is a
counter that records the number of get_by_ids that hit a cacheable value
on a prototype. When the counter is decremented from one to zero we
attempt to cache the prototype load, which will be discussed further
below. The second word is used to hold the prototype object when we have
started caching.
When the counter is decremented to zero we first attempt to generate and
watch the property conditions needed to ensure the validity of prototype
load. If the watchpoints are successfully created and installed we
replace the op_get_by_id opcode with the new op_get_by_id_proto_load
opcode, which tells the LLInt to use the cache prototype object for the
load rather than the base value.
Prior to this patch there was not LLInt specific data onCodeBlocks.
Since the CodeBlock needs to own the Watchpoints for the cache, a weak
map from each base structure to a bag of Watchpoints created for that
structure by some op_get_by_id has been added to the CodeBlock. During
GC, if we find that the a structure in the map has not been marked we
free the associated bag on the CodeBlock.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::printGetByIdOp):
(JSC::CodeBlock::printGetByIdCacheStatus):
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::llintGetByIdWatchpointMap):
(JSC::clearLLIntGetByIdCache):
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFromLLInt):
- bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp: Added.
(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::LLIntPrototypeLoadAdaptiveStructureWatchpoint):
(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::install):
(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::fireInternal):
- bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h: Added.
- bytecode/ObjectPropertyConditionSet.cpp:
(JSC::ObjectPropertyConditionSet::isValidAndWatchable):
- bytecode/ObjectPropertyConditionSet.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitGetById):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setupGetByIdPrototypeCache):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/Options.h:
- tests/stress/llint-get-by-id-cache-prototype-load-from-dictionary.js: Added.
(test):
Source/WTF:
Add move constructors/initializers to Bags.
- wtf/Bag.h:
(WTF::Bag::Bag):
(WTF::Bag::operator=):
- 4:09 PM Changeset in webkit [201362] by
-
- 5 adds in branches/safari-601-branch/LayoutTests/imported/blink
Merge missing layout test. rdar://problem/26228555
- 4:03 PM Changeset in webkit [201361] by
-
- 6 edits in trunk/Source/JavaScriptCore
We should be able to use the sampling profiler with DRT/WTR.
https://bugs.webkit.org/show_bug.cgi?id=158041
Reviewed by Saam Barati.
This patch makes the sampling profiler use a new option, samplingProfilerPath, which
specifies the path to a directory to output sampling profiler data when the program
terminates or the VM is destroyed. Additionally, it fixes some other issues with the
bytecode profiler that would cause crashes on debug builds.
- profiler/ProfilerDatabase.cpp:
(JSC::Profiler::Database::ensureBytecodesFor):
(JSC::Profiler::Database::performAtExitSave):
- runtime/Options.h:
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::registerForReportAtExit):
(JSC::SamplingProfiler::reportDataToOptionFile):
(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):
- runtime/SamplingProfiler.h:
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::~VM):
- 4:02 PM Changeset in webkit [201360] by
-
- 4 edits in trunk/Source/WebKit/mac
Candidates should work with input methods
https://bugs.webkit.org/show_bug.cgi?id=158042
-and corresponding-
rdar://problem/26205228
Reviewed by Tim Horton.
- WebView/WebHTMLView.mm:
- WebView/WebView.mm:
(-[WebView candidateList]):
- WebView/WebViewInternal.h:
- 3:28 PM Changeset in webkit [201359] by
-
- 3 edits in trunk/Source/JavaScriptCore
We can cache lookups to JSScope::abstractResolve inside CodeBlock::finishCreation
https://bugs.webkit.org/show_bug.cgi?id=158036
Reviewed by Geoffrey Garen.
This patch implements a 1 item cache for JSScope::abstractResolve. I also tried
implementing the cache as a HashMap, but it seemed either less profitable on some
benchmarks or just as profitable on others. Therefore, it's cleaner to just
use a 1 item cache.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::AbstractResolveKey::AbstractResolveKey):
(JSC::AbstractResolveKey::operator==):
(JSC::AbstractResolveKey::isEmptyValue):
(JSC::CodeBlock::finishCreation):
- runtime/GetPutInfo.h:
(JSC::needsVarInjectionChecks):
(JSC::ResolveOp::ResolveOp):
- 3:04 PM Changeset in webkit [201358] by
-
- 3 edits2 adds in trunk
[Font Loading] Crash during font download failure after garbage collection
https://bugs.webkit.org/show_bug.cgi?id=158013
<rdar://problem/25148032>
Reviewed by Darin Adler.
Source/WebCore:
Usually, ownership during font loading is top-down - JavaScript owns a JSFontFace,
which owns a FontFace, which owns a CSSFontFace. However, when we receive the
asynchronous callback that a font finished loading, the call comes in from the
bottom - it is delivered from the CSSFontFaceSource to the CSSFontFace, and then
to the FontFace. If a garbage collection had previously run, we might remove
the last reference to ourself during this asynchronous callback. A simple guard
makes sure this doesn't happen.
Test: fast/text/font-face-crash.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::fontLoaded):
LayoutTests:
- fast/text/font-face-crash-expected.txt: Added.
- fast/text/font-face-crash.html: Added.
- 3:03 PM Changeset in webkit [201357] by
-
- 5 edits4 deletes in trunk
Source/WebCore:
Unreviewed, rolling out r201349.
This change caused compositing tests to assert on iOS
simulator
Reverted changeset:
"Elements with backdrop-filter cannot be clipped with clip-
path or mask"
https://bugs.webkit.org/show_bug.cgi?id=142662
http://trac.webkit.org/changeset/201349
Source/WebKit2:
Unreviewed, rolling out r201349.
This change caused compositing tests to assert on iOS
simulator
Reverted changeset:
"Elements with backdrop-filter cannot be clipped with clip-
path or mask"
https://bugs.webkit.org/show_bug.cgi?id=142662
http://trac.webkit.org/changeset/201349
LayoutTests:
201-05-24 Ryan Haddad <Ryan Haddad>
Unreviewed, rolling out r201349.
This change caused compositing tests to assert on iOS
simulator
Reverted changeset:
"Elements with backdrop-filter cannot be clipped with clip-
path or mask"
https://bugs.webkit.org/show_bug.cgi?id=142662
http://trac.webkit.org/changeset/201349
- 2:57 PM Changeset in webkit [201356] by
-
- 11 edits1 copy in trunk/Source/WebCore
Modern IDB: (Workers) Eliminate race in getting the ScriptExecutionContext and using it.
https://bugs.webkit.org/show_bug.cgi?id=158038
Reviewed by Alex Christensen.
No new tests (Resolves potential flakes in existing tests).
When the main thread is trying to post a task to a worker thread's ScriptExecutionContext, there is a race
between checking that the context still exists and actually using it.
The solution is to add a new class - IDBActiveDOMObject - which does a few things things:
1 - Remembers its origin thread.
2 - Guards clearing its ScriptExecutionContext with a Lock.
3 - Adds a templated "performCallbackOnOriginThread" that uses the same Lock to make sure posting the task to
the ScriptExecutionContext's RunLoop is safe.
Also, tons of ASSERTions are updated because each object with an originThread no longer keeps its idea in an
accessible member variable.
- Modules/indexeddb/IDBActiveDOMObject.h:
(WebCore::IDBActiveDOMObject::originThreadID):
(WebCore::IDBActiveDOMObject::performCallbackOnOriginThread):
(WebCore::IDBActiveDOMObject::IDBActiveDOMObject):
- Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::IDBDatabase):
(WebCore::IDBDatabase::~IDBDatabase):
(WebCore::IDBDatabase::hasPendingActivity):
(WebCore::IDBDatabase::name):
(WebCore::IDBDatabase::version):
(WebCore::IDBDatabase::objectStoreNames):
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::close):
(WebCore::IDBDatabase::didCloseFromServer):
(WebCore::IDBDatabase::maybeCloseInServer):
(WebCore::IDBDatabase::activeDOMObjectName):
(WebCore::IDBDatabase::canSuspendForDocumentSuspension):
(WebCore::IDBDatabase::stop):
(WebCore::IDBDatabase::startVersionChangeTransaction):
(WebCore::IDBDatabase::didStartTransaction):
(WebCore::IDBDatabase::willCommitTransaction):
(WebCore::IDBDatabase::didCommitTransaction):
(WebCore::IDBDatabase::willAbortTransaction):
(WebCore::IDBDatabase::didAbortTransaction):
(WebCore::IDBDatabase::didCommitOrAbortTransaction):
(WebCore::IDBDatabase::fireVersionChangeEvent):
(WebCore::IDBDatabase::dispatchEvent):
(WebCore::IDBDatabase::didCreateIndexInfo):
(WebCore::IDBDatabase::didDeleteIndexInfo):
- Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::originThreadID): Deleted.
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::~IDBRequest):
(WebCore::IDBRequest::errorCode):
(WebCore::IDBRequest::error):
(WebCore::IDBRequest::setSource):
(WebCore::IDBRequest::setVersionChangeTransaction):
(WebCore::IDBRequest::transaction):
(WebCore::IDBRequest::readyState):
(WebCore::IDBRequest::sourceObjectStoreIdentifier):
(WebCore::IDBRequest::sourceIndexIdentifier):
(WebCore::IDBRequest::requestedIndexRecordType):
(WebCore::IDBRequest::eventTargetInterface):
(WebCore::IDBRequest::activeDOMObjectName):
(WebCore::IDBRequest::canSuspendForDocumentSuspension):
(WebCore::IDBRequest::hasPendingActivity):
(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::enqueueEvent):
(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):
(WebCore::IDBRequest::clearResult):
(WebCore::IDBRequest::setResultToUndefined):
(WebCore::IDBRequest::resultCursor):
(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):
(WebCore::IDBRequest::requestCompleted):
(WebCore::IDBRequest::onError):
(WebCore::IDBRequest::onSuccess):
- Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::originThreadID): Deleted.
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::originThreadID): Deleted.
- Modules/indexeddb/IDBTransaction.h:
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest):
(WebCore::IDBClient::IDBConnectionProxy::completeOperation):
(WebCore::IDBClient::IDBConnectionProxy::fireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionProxy::notifyOpenDBRequestBlocked):
(WebCore::IDBClient::IDBConnectionProxy::didStartTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didCommitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didAbortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didCloseFromServer):
(WebCore::IDBClient::performCallbackOnCorrectThread): Deleted.
- Modules/indexeddb/client/TransactionOperation.cpp:
(WebCore::IDBClient::TransactionOperation::scriptExecutionContext): Deleted.
- Modules/indexeddb/client/TransactionOperation.h:
(WebCore::IDBClient::TransactionOperation::performCompleteOnOriginThread):
- WebCore.xcodeproj/project.pbxproj:
- 2:48 PM Changeset in webkit [201355] by
-
- 8 edits3 adds in trunk
Only set overflow:hidden on -webkit-media-controls when the placeholder is showing.
https://bugs.webkit.org/show_bug.cgi?id=157975
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/mac/controls-panel-not-clipped-out.html
overflow:hidden was added to clip out content contained in -webkit-media-controls
that sticks out of the bounds of that container when the inlinePlaybackPlaceholder
is showing. However, that style also clips out things that we want to show when the
inlinePlaybackPlaceholder is not showing. For example, the volume slider or the
controls panel when the video element's height is too short.
To fix that, we only set overflow:hidden on -webkit-media-controls when the
inlinePlaybackPlaceholder is visible.
- Modules/mediacontrols/mediaControlsApple.css:
(::-webkit-media-controls):
(::-webkit-media-controls.placeholder-showing):
Set overflow:hidden only when the placeholder is showing.
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handlePresentationModeChange):
Add the placeholderShowing class to -webkit-media-controls only when the
inlinePlaybackPlaceholder is not hidden.
LayoutTests:
This is a Mac only test. The media controls panel should still be visible
even if the media element's height is very short.
- TestExpectations:
- media/mac/controls-panel-not-clipped-out-expected.html: Added.
- media/mac/controls-panel-not-clipped-out.html: Added.
- platform/mac/TestExpectations:
- platform/mac/media/media-document-audio-repaint-expected.txt:
- platform/mac/media/video-zoom-controls-expected.txt:
Rebaseline tests.
- 2:38 PM Changeset in webkit [201354] by
-
- 13 edits in trunk/Source
Unreviewed, rolling out r201341.
This change may have caused LayoutTests to crash on Mac and
iOS
Reverted changeset:
"Use lambda capture with initializer instead of StringCapture"
https://bugs.webkit.org/show_bug.cgi?id=158010
http://trac.webkit.org/changeset/201341
- 2:30 PM Changeset in webkit [201353] by
-
- 2 edits in branches/safari-602.1.32.5-branch/Source/ThirdParty/ANGLE
Merge r201336. rdar://problem/26446679
- 2:30 PM Changeset in webkit [201352] by
-
- 12 edits in branches/safari-602.1.32.5-branch
Merge r200799. rdar://problem/25931513
- 2:12 PM Changeset in webkit [201351] by
-
- 2 edits in trunk/Source/WebKit2
Fix null pointer dereferencing in WebViewImpl::inputContext
https://bugs.webkit.org/show_bug.cgi?id=158026
rdar://problem/25994093
Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-24
Reviewed by Tim Horton.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView inputContext]):
this was null sometimes in WebViewImpl::inputContext.
- 2:03 PM Changeset in webkit [201350] by
-
- 6 edits in trunk
WebRTC: RTCIceCandidate: Make attributes readonly (and update constructor arg)
https://bugs.webkit.org/show_bug.cgi?id=157859
Reviewed by Eric Carlson.
Source/WebCore:
Make the RTCIceCandidate constructor argument mandatory and the attributes
read-only (in accordance with the WebRTC 1.0 specification [1]).
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#rtcicecandidate-interface
Updated existing test.
- Modules/mediastream/RTCIceCandidate.h:
(WebCore::RTCIceCandidate::setCandidate): Deleted.
(WebCore::RTCIceCandidate::setSdpMid): Deleted.
(WebCore::RTCIceCandidate::setSdpMLineIndex): Deleted.
- Modules/mediastream/RTCIceCandidate.idl:
LayoutTests:
- fast/mediastream/RTCIceCandidate-expected.txt:
Small unrelated fix: s/a argument/an argument/ (test was previously broken).
- fast/mediastream/RTCIceCandidate.html:
Test without constructor arguments and writing to the read-only attributes.
- 2:02 PM Changeset in webkit [201349] by
-
- 5 edits4 adds in trunk
Elements with backdrop-filter cannot be clipped with clip-path or mask
https://bugs.webkit.org/show_bug.cgi?id=142662
<rdar://problem/20150192>
Patch by Antoine Quint <Antoine Quint> on 2016-05-24
Reviewed by Dean Jackson.
Source/WebCore:
We used to only apply the mask to the layer contents but did not account
for the fact that a layer backdrop may exist. We now correctly mask the
backdrop layer as well as the layer contents.
Test: css3/filters/backdrop/backdrop-filter-with-clip-path.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateShape):
Ensure clones of a layer use the same shape path.
(WebCore::GraphicsLayerCA::updateMaskLayer):
If we have a backdrop layer, ensure that we apply a clone of the mask layer applied to
the layer contents.
Source/WebKit2:
Ensure layer clones are set up with the same shape path as their original layer.
- WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
LayoutTests:
New test that checks that applying a backdrop-filter and a clip-path on a single
element has the same effect as applying a clip-path on a parent of a child with
a backdrop-filter.
- css3/filters/backdrop/backdrop-filter-with-clip-path-expected.txt: Added.
- css3/filters/backdrop/backdrop-filter-with-clip-path.html: Added.
- platform/ios-simulator/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.html: Added.
- platform/mac/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.png: Added.
- 2:01 PM Changeset in webkit [201348] by
-
- 3 edits in trunk/LayoutTests
WebRTC: Update failing RTCPeerConnection and RTCRtpSender tests
https://bugs.webkit.org/show_bug.cgi?id=158023
Reviewed by Eric Carlson.
- fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
Update results with more specific TypeError.
- fast/mediastream/RTCRtpSender-replaceTrack-expected.txt:
Update test to match Promise rejections introduce in r201080.
- 1:22 PM Changeset in webkit [201347] by
-
- 3 edits in trunk/Source/WebKit2
[iOS] Allow clients to override the type of an input field
https://bugs.webkit.org/show_bug.cgi?id=157995
Patch by Chelsea Pugh <cpugh@apple.com> on 2016-05-24
Reviewed by Dan Bernstein.
- UIProcess/API/Cocoa/_WKFormInputSession.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession textContentType]): Getter for textContentType.
(-[WKFormInputSession setTextContentType:]): Set the textContentType and reload
input views.
(contentTypeFromFieldName): Factor out switch statement to get text content type
from autofill field name into its own function.
(-[WKContentView textInputTraits]): If the client has set a text content type,
set the traits' content type to that. Otherwise, set the text content type if
there is one based on the assisted node information's autofill field name. If
neither the form input session nor the assisted node info yields a text content
type, set the text content type to nil, its default value.
- 1:02 PM Changeset in webkit [201346] by
-
- 9 edits in trunk
fast/table/neighboring-cells-when-collapsed-border-changes.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=158009
Reviewed by David Hyatt.
RenderTable::invalidateCollapsedBorders() early returns on m_collapsedEmptyBorderIsPresent
which prevents us from marking neighboring cells dirty when style changes.
Decouple the "invalidate the collapsed borders" and the "mark the neighboring cells dirty" logic.
Source/WebCore:
Covered by existing tests. (and now we agree with FF on cached-change-cell-border-width.html)
- rendering/RenderTable.cpp:
(WebCore::RenderTable::invalidateCollapsedBorders):
(WebCore::markCellDirtyWhenCollapsedBorderChanges): Deleted.
- rendering/RenderTableCell.cpp:
(WebCore::markCellDirtyWhenCollapsedBorderChanges):
(WebCore::RenderTableCell::styleDidChange):
LayoutTests:
- fast/table/border-collapsing/cached-change-cell-border-width-expected.txt: Progression. FF agrees.
- fast/table/neighboring-cells-when-collapsed-border-changes.html:
- platform/ios-simulator-wk1/fast/table/border-collapsing/cached-change-cell-border-width-expected.txt:
- platform/mac-wk1/TestExpectations:
- platform/mac/fast/table/border-collapsing/cached-change-cell-border-width-expected.txt:
- 1:01 PM Changeset in webkit [201345] by
-
- 3 edits in trunk/Source/WebCore
Fix use-after-free after r201318
https://bugs.webkit.org/show_bug.cgi?id=158037
rdar://problem/26446729
Reviewed by Brady Eidson.
This fixes a crash when running fast/dom/navigation-with-sideeffects.html with GuardMalloc.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjPutForwardsNullableAttribute):
Changing RefPtr<${type}> to auto caused the type to sometimes be a raw pointer, which does not keep the object alive.
In the case of JSDocument.cpp, forwardedImpl was what Document::location returned, which is a Location* and not a RefPtr<Location>.
- 12:56 PM Changeset in webkit [201344] by
-
- 2 edits in trunk/LayoutTests
Marking mathml/wbr-in-mroot-crash.html as flaky on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=157990
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 12:48 PM Changeset in webkit [201343] by
-
- 1 edit4 deletes in trunk/LayoutTests
Unreviewed, rolling out r201323.
One of the LayoutTests added with this change fails on all
platforms. Rolling out until ResourceTiming flakiness fix is
landed
Reverted changeset:
"Add a few initiator tests to resource timing."
https://bugs.webkit.org/show_bug.cgi?id=157986
http://trac.webkit.org/changeset/201323
- 12:04 PM Changeset in webkit [201342] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviwed, add a comment to describe the test's failure mode. Suggested by mlam.
- tests/stress/override-map-constructor.js:
(Map):
- 12:03 PM Changeset in webkit [201341] by
-
- 13 edits in trunk/Source
Use lambda capture with initializer instead of StringCapture
https://bugs.webkit.org/show_bug.cgi?id=158010
Reviewed by Antti Koivisto.
Source/WebCore:
Use lambda capture with initializer instead of StringCapture now that
we support C++14.
- fileapi/AsyncFileStream.cpp:
(WebCore::AsyncFileStream::getSize):
(WebCore::AsyncFileStream::openForRead):
(WebCore::AsyncFileStream::openForWrite):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::installContentFilterUnblockHandler):
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::setExternalPlayback):
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::didReceiveHeader):
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
(WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
Source/WebKit2:
Use lambda capture with initializer instead of StringCapture now that
we support C++14.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::deleteDumpFile):
- NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::shrinkIfNeeded):
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::updateFileModificationTime):
(WebKit::NetworkCache::Storage::clear):
- UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::lookupContentExtension):
(API::UserContentExtensionStore::compileContentExtension):
(API::UserContentExtensionStore::removeContentExtension):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
- 12:01 PM Changeset in webkit [201340] by
-
- 3 edits1 add in trunk/Source/JavaScriptCore
Map should not be in JSGlobalObject's static hashtable because it's initialized eagerly via FOR_EACH_SIMPLE_BUILTIN_TYPE_WITH_CONSTRUCTOR
https://bugs.webkit.org/show_bug.cgi?id=158031
rdar://problem/26353661
Reviewed by Geoffrey Garen.
We were listing Map as being a lazy class structure. It's not. m_mapStructure is a WriteBarrier<>
not a LazyClassStructure<> and there is nothing lazy about it.
- runtime/JSGlobalObject.cpp: The fix is to remove Map here.
- runtime/Lookup.cpp: Add some dumping on the assert path.
(JSC::setUpStaticFunctionSlot):
- tests/stress/override-map-constructor.js: Added. This test used to crash.
(Map):
- 12:00 PM Changeset in webkit [201339] by
-
- 3 edits82 adds in trunk
We should have JSBench in PerformanceTests
https://bugs.webkit.org/show_bug.cgi?id=157952
Rubber-stamped by Saam Barati.
PerformanceTests:
There are some slight changes to the layout of the test directory
to make it work nicely with run-jsc-benchmarks. Before JSBench
had each of the browser specific sub-tests in a sub-directory.
These have been flattened e.g. amazon/safari/ has become
amazon-safari/.
- JSBench/amazon-chrome-win/urem.html: Added.
- JSBench/amazon-chrome-win/urem.js: Added.
- JSBench/amazon-chrome/urem.html: Added.
- JSBench/amazon-chrome/urem.js: Added.
- JSBench/amazon-firefox-win/urm.html: Added.
- JSBench/amazon-firefox-win/urm.js: Added.
- JSBench/amazon-firefox/urm.html: Added.
- JSBench/amazon-firefox/urm.js: Added.
- JSBench/amazon-safari/urem.html: Added.
- JSBench/amazon-safari/urem.js: Added.
- JSBench/browsercheck.js: Added.
- JSBench/facebook-chrome-win/urem.html: Added.
- JSBench/facebook-chrome-win/urem.js: Added.
- JSBench/facebook-chrome/urem.html: Added.
- JSBench/facebook-chrome/urem.js: Added.
- JSBench/facebook-firefox-win/urem.html: Added.
- JSBench/facebook-firefox-win/urem.js: Added.
- JSBench/facebook-firefox/urem.html: Added.
- JSBench/facebook-firefox/urem.js: Added.
- JSBench/facebook-safari/urem.html: Added.
- JSBench/facebook-safari/urem.js: Added.
- JSBench/google-chrome-win/urem.html: Added.
- JSBench/google-chrome-win/urem.js: Added.
- JSBench/google-chrome/urem.html: Added.
- JSBench/google-chrome/urem.js: Added.
- JSBench/google-firefox-win/urem.html: Added.
- JSBench/google-firefox-win/urem.js: Added.
- JSBench/google-firefox/uem.html: Added.
- JSBench/google-firefox/uem.js: Added.
- JSBench/google-safari/urem.html: Added.
- JSBench/google-safari/urem.js: Added.
- JSBench/harness.html: Added.
- JSBench/harness.js: Added.
- JSBench/harness.py: Added.
- JSBench/index.html: Added.
- JSBench/reload.html: Added.
- JSBench/twitter-chrome-win/rem.html: Added.
- JSBench/twitter-chrome-win/rem.js: Added.
- JSBench/twitter-chrome/urem.html: Added.
- JSBench/twitter-chrome/urem.js: Added.
- JSBench/twitter-firefox-win/urem.html: Added.
- JSBench/twitter-firefox-win/urem.js: Added.
- JSBench/twitter-firefox/urem.html: Added.
- JSBench/twitter-firefox/urem.js: Added.
- JSBench/twitter-safari/urem.html: Added.
- JSBench/twitter-safari/urem.js: Added.
- JSBench/yahoo-chrome-win/urem.html: Added.
- JSBench/yahoo-chrome-win/urem.js: Added.
- JSBench/yahoo-chrome/urem.html: Added.
- JSBench/yahoo-chrome/urem.js: Added.
- JSBench/yahoo-firefox-win/urem.html: Added.
- JSBench/yahoo-firefox-win/urem.js: Added.
- JSBench/yahoo-firefox/urem.html: Added.
- JSBench/yahoo-firefox/urem.js: Added.
- JSBench/yahoo-safari/urem.html: Added.
- JSBench/yahoo-safari/urem.js: Added.
Tools:
This changes the runner to use the layout of the newest version of JSBench.
- Scripts/run-jsc-benchmarks:
- 11:45 AM Changeset in webkit [201338] by
-
- 2 edits in trunk/LayoutTests
Unskip passing test after r201336
https://bugs.webkit.org/show_bug.cgi?id=156812
- platform/ios-simulator/TestExpectations:
compositing/webgl/webgl-reflection.html passes now.
- 11:04 AM Changeset in webkit [201337] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Another build fix after r201307.
- public/v3/pages/page-router.js:
(PageRouter.prototype._deserializeHashQueryValue):
(PageRouter.prototype._countOccurrences): Moved from _deserializeHashQueryValue.
- 10:36 AM Changeset in webkit [201336] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Fix iOS WebGL after r199738
https://bugs.webkit.org/show_bug.cgi?id=158024
rdar://problem/26446679
Reviewed by Myles Maxfield.
- ANGLE.xcodeproj/project.pbxproj:
iOS needs the ESSL translator.
- 10:08 AM Changeset in webkit [201335] by
-
- 9 edits3 adds in trunk
LLInt64 should have typed array fast paths for get_by_val
https://bugs.webkit.org/show_bug.cgi?id=157931
Reviewed by Keith Miller.
Source/JavaScriptCore:
I think that the LLInt should be able to access typed arrays more quickly than it does now.
Ideally we would have fast paths for every major typed array operation and we would use
inline cache optimizations. I don't want to do this all in one go, so my plan is to
incrementally add support for this as time allows.
This change just adds the easy typed array fast paths for get_by_val in the 64-bit version
of LLInt.
Another bug, https://bugs.webkit.org/show_bug.cgi?id=157922, tracks the overall task of
adding all typed array fast paths to both versions of the LLInt.
This is a 30% speed-up on typed array benchmarks in LLInt. This is not a speed-up when the
JITs are enabled.
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LLIntOffsetsExtractor.cpp:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- offlineasm/backends.rb:
- runtime/JSArrayBufferView.h:
- runtime/JSType.h:
LayoutTests:
- js/regress/get_by_val-Int32Array-expected.txt: Added.
- js/regress/get_by_val-Int32Array.html: Added.
- js/regress/script-tests/get_by_val-Int32Array.js: Added.
- 9:59 AM Changeset in webkit [201334] by
-
- 2 edits in trunk/Source/WebCore
In accelerated drawing mode, ImageBuffer::putByteArray() should copy the bytes directly to the IOSurface backing store
https://bugs.webkit.org/show_bug.cgi?id=157966
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-05-24
Reviewed by Dean Jackson.
Roll out the the change of r106836 in ImageBuffer::putByteArray(). r106836
was using CG to draw the image data as a native image in the accelerated
drawing mode just to force invalidating the IOSurface cached image. Instead
of doing that, we can use a light-weight fix, for now, to force recreating
the IOSurface image if it is requested through CGIOSurfaceContextCreateImage().
- platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::putByteArray):
- 9:50 AM Changeset in webkit [201333] by
-
- 47 edits in trunk
Use auto for some of our lambda function parameters
https://bugs.webkit.org/show_bug.cgi?id=158001
Reviewed by Darin Adler.
Use auto for some of our lambda function parameters now that we build with c++14.
Source/WebCore:
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::buffered):
(WebCore::MediaSource::monitorSourceBuffers):
(WebCore::MediaSource::endOfStream):
- Modules/mediasource/SampleMap.cpp:
(WebCore::PresentationOrderSampleMap::findSamplesWithinPresentationRangeFromEnd):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::ariaSelectedRows):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
- css/CSSValueList.cpp:
(WebCore::CSSValueList::removeAll):
- css/MediaList.cpp:
(WebCore::MediaQuerySet::remove):
- css/MediaQuery.cpp:
(WebCore::MediaQuery::MediaQuery):
- css/MediaQueryMatcher.cpp:
(WebCore::MediaQueryMatcher::removeListener):
- dom/Document.cpp:
(WebCore::Document::validateAutoSizingNodes):
- dom/Element.cpp:
(WebCore::Element::detachAttrNodeFromElementWithValue):
- dom/MutationObserver.cpp:
(WebCore::MutationObserver::deliverAllMutations):
- dom/Node.cpp:
(WebCore::Node::unregisterMutationObserver):
- html/LinkIconCollector.cpp:
- inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::loadDataURL):
- page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::sortedTrackListForMenu):
- page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
- page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::clear):
- platform/graphics/FontCascade.cpp:
(WebCore::pruneUnreferencedEntriesFromFontCascadeCache):
- platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::pruneSystemFallbacks):
- platform/graphics/PathUtilities.cpp:
(WebCore::addIntersectionPoints):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):
- platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
- platform/mac/HIDGamepad.cpp:
(WebCore::HIDGamepad::initElements):
- svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::appendLigatureSubtable):
(WebCore::SVGToOTFFontConverter::finishAppendingKERNSubtable):
Source/WebKit2:
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::didGetRecord):
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::clearDiskCacheEntries):
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry):
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::removeFromPendingWriteOperations):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
- Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(-[_WKRemoteObjectInterface debugDescription]):
- UIProcess/API/C/WKApplicationCacheManager.cpp:
(WKApplicationCacheManagerGetApplicationCacheOrigins):
- UIProcess/API/C/WKKeyValueStorageManager.cpp:
(WKKeyValueStorageManagerGetKeyValueStorageOrigins):
(WKKeyValueStorageManagerGetStorageDetailsByOrigin):
- UIProcess/API/C/WKResourceCacheManager.cpp:
(WKResourceCacheManagerGetCacheOrigins):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]):
- UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
(WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):
(WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers):
- WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::removeAnimationForKey):
Source/WTF:
- wtf/BubbleSort.h:
(WTF::bubbleSort):
Tools:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::willDestroyPage):
- 9:46 AM Changeset in webkit [201332] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r196629): Safari can get into a state where switching Reader theme doesn't apply to the webpage
https://bugs.webkit.org/show_bug.cgi?id=158018
<rdar://problem/24732776>
Reviewed by Darin Adler.
When a tab goes to background we clear the style resolver. It is recreated lazily when the tab is again active.
However style invalidation code tests if the style resolver exists and skips the invalidation if it doesn't.
With sufficiently simple document (like in Reader) we may never create one for other reasons and so style
invalidation doesn't work.
No test, don't know how to make one.
- dom/Element.cpp:
(WebCore::Element::needsStyleInvalidation):
Remove styleResolverIfExists() check and do the invalidation normally.
Instead check for forced style recalc. If there is one pending we don't need to bother with invalidation.
- 7:33 AM Changeset in webkit [201331] by
-
- 23 edits in trunk/Source/WebCore
Unreviewed, updating binding test results
https://bugs.webkit.org/show_bug.cgi?id=157080
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttr):
(WebCore::jsTestActiveDOMObjectConstructor):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::jsTestClassWithJSBuiltinConstructorConstructor):
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterConstructor):
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorAttr1):
(WebCore::jsTestEventConstructorAttr2):
(WebCore::jsTestEventConstructorAttr3):
(WebCore::jsTestEventConstructorConstructor):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetConstructor):
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionName):
(WebCore::jsTestExceptionConstructor):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::jsTestGenerateIsReachableConstructor):
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObjectRegularAttribute):
(WebCore::jsTestGlobalObjectEnabledAtRuntimeAttribute):
(WebCore::jsTestGlobalObjectConstructor):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceConstructorImplementsStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorImplementsStaticAttr):
(WebCore::jsTestInterfaceImplementsStr1):
(WebCore::jsTestInterfaceImplementsStr2):
(WebCore::jsTestInterfaceImplementsStr3):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::jsTestInterfaceSupplementalStr1):
(WebCore::jsTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfaceSupplementalStr3):
(WebCore::jsTestInterfaceSupplementalNode):
(WebCore::jsTestInterfaceConstructor):
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::jsTestJSBuiltinConstructorTestAttributeCustom):
(WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustom):
(WebCore::jsTestJSBuiltinConstructorConstructor):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerConstructor):
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::jsTestNamedConstructorConstructor):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodeName):
(WebCore::jsTestNodeConstructor):
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::jsTestNondeterministicNondeterministicReadonlyAttr):
(WebCore::jsTestNondeterministicNondeterministicWriteableAttr):
(WebCore::jsTestNondeterministicNondeterministicExceptionAttr):
(WebCore::jsTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::jsTestNondeterministicNondeterministicSetterExceptionAttr):
(WebCore::jsTestNondeterministicConstructor):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjReadOnlyLongAttr):
(WebCore::jsTestObjReadOnlyStringAttr):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjConstructorStaticReadOnlyLongAttr):
(WebCore::jsTestObjConstructorStaticStringAttr):
(WebCore::jsTestObjConstructorTestSubObj):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjEnumAttr):
(WebCore::jsTestObjByteAttr):
(WebCore::jsTestObjOctetAttr):
(WebCore::jsTestObjShortAttr):
(WebCore::jsTestObjClampedShortAttr):
(WebCore::jsTestObjEnforceRangeShortAttr):
(WebCore::jsTestObjUnsignedShortAttr):
(WebCore::jsTestObjLongAttr):
(WebCore::jsTestObjLongLongAttr):
(WebCore::jsTestObjUnsignedLongLongAttr):
(WebCore::jsTestObjStringAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjTestNullableObjAttr):
(WebCore::jsTestObjLenientTestObjAttr):
(WebCore::jsTestObjUnforgeableAttr):
(WebCore::jsTestObjStringAttrTreatingNullAsEmptyString):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjCreate):
(WebCore::jsTestObjReflectedStringAttr):
(WebCore::jsTestObjReflectedIntegralAttr):
(WebCore::jsTestObjReflectedUnsignedIntegralAttr):
(WebCore::jsTestObjReflectedBooleanAttr):
(WebCore::jsTestObjReflectedURLAttr):
(WebCore::jsTestObjReflectedCustomIntegralAttr):
(WebCore::jsTestObjReflectedCustomBooleanAttr):
(WebCore::jsTestObjReflectedCustomURLAttr):
(WebCore::jsTestObjEnabledAtRuntimeAttribute):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjAttrWithGetterExceptionWithMessage):
(WebCore::jsTestObjAttrWithSetterException):
(WebCore::jsTestObjAttrWithSetterExceptionWithMessage):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithSetterException):
(WebCore::jsTestObjStrictTypeCheckingAttribute):
(WebCore::jsTestObjCustomAttr):
(WebCore::jsTestObjOnfoo):
(WebCore::jsTestObjOnwebkitfoo):
(WebCore::jsTestObjWithScriptStateAttribute):
(WebCore::jsTestObjWithCallWithAndSetterCallWithAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjConditionalAttr1):
(WebCore::jsTestObjConditionalAttr2):
(WebCore::jsTestObjConditionalAttr3):
(WebCore::jsTestObjConditionalAttr4Constructor):
(WebCore::jsTestObjConditionalAttr5Constructor):
(WebCore::jsTestObjConditionalAttr6Constructor):
(WebCore::jsTestObjCachedAttribute1):
(WebCore::jsTestObjCachedAttribute2):
(WebCore::jsTestObjAnyAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjStrawberry):
(WebCore::jsTestObjStrictFloat):
(WebCore::jsTestObjDescription):
(WebCore::jsTestObjId):
(WebCore::jsTestObjHash):
(WebCore::jsTestObjReplaceableAttribute):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
(WebCore::jsTestObjAttribute):
(WebCore::jsTestObjAttributeWithReservedEnumType):
(WebCore::jsTestObjPutForwardsAttribute):
(WebCore::jsTestObjPutForwardsNullableAttribute):
(WebCore::jsTestObjConstructor):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::jsTestOverloadedConstructorsConstructor):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsConstructor):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceValue):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
(WebCore::jsTestSerializedScriptValueInterfacePorts):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsUnsignedLongLongAttr):
(WebCore::jsTestTypedefsImmutableSerializedScriptValue):
(WebCore::jsTestTypedefsConstructorTestSubObj):
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsAttrWithSetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsConstructor):
- bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeReadonly):
(WebCore::jsattributeConstructor):
- bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::jsreadonlyConstructor):
- 6:12 AM Changeset in webkit [201330] by
-
- 7 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline several tests after r200116.
We are now correctly positioning RTL scrollbars.
- platform/gtk/fast/block/float/026-expected.png:
- platform/gtk/fast/block/float/026-expected.txt:
- platform/gtk/fast/block/float/028-expected.png:
- platform/gtk/fast/block/float/028-expected.txt:
- platform/gtk/fast/overflow/unreachable-overflow-rtl-bug-expected.png:
- platform/gtk/fast/overflow/unreachable-overflow-rtl-bug-expected.txt:
- 5:58 AM Changeset in webkit [201329] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Fix wrong expectations of fast/harness/sample-fail-mismatch-reftest.html.
The test is flaky, but in this case Pass means it failed and ImageOnlyFailure that it passed.
- platform/gtk/TestExpectations:
- 5:04 AM Changeset in webkit [201328] by
-
- 20 edits1 add in trunk/Source/JavaScriptCore
ThisTDZMode is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=157209
Reviewed by Saam Barati.
ThisTDZMode is no longer needed because we have ConstructorKind
and DerivedContextType. The value of ThisTDZMode is strictly less
expressive than the combination of those two values. We were
using those values anyways, and this patch just makes it official
by removing ThisTDZMode.
This patch also cleans up caching keys. We extract SourceCodeFlags
from SourceCodeKey and use it in EvalCodeCache. It correctly
contains needed cache attributes: EvalContextType, DerivedContextType,
etc. Here, we still use specialized keys for EvalCodeCache instead
of SourceCodeKey for performance; it does not include name String and
does not allocate SourceCode.
- bytecode/EvalCodeCache.h:
(JSC::EvalCodeCache::CacheKey::CacheKey):
(JSC::EvalCodeCache::CacheKey::operator==):
(JSC::EvalCodeCache::CacheKey::Hash::equal):
(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):
- bytecompiler/NodesCodegen.cpp:
(JSC::ThisNode::emitBytecode): Deleted.
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
- interpreter/Interpreter.cpp:
(JSC::eval):
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createThisExpr):
- parser/NodeConstructors.h:
(JSC::ThisNode::ThisNode):
- parser/Nodes.h:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parsePrimaryExpression):
- parser/Parser.h:
(JSC::parse):
- parser/ParserModes.h:
- parser/SourceCodeKey.h:
(JSC::SourceCodeFlags::SourceCodeFlags):
(JSC::SourceCodeFlags::operator==):
(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::Hash::hash):
(JSC::SourceCodeKey::Hash::equal):
(JSC::SourceCodeKey::HashTraits::isEmptyValue):
(JSC::SourceCodeKeyHash::hash): Deleted.
(JSC::SourceCodeKeyHash::equal): Deleted.
(JSC::SourceCodeKeyHashTraits::isEmptyValue): Deleted.
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createThisExpr):
- runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
- runtime/CodeCache.h:
- runtime/Executable.cpp:
(JSC::EvalExecutable::create):
- runtime/Executable.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::createEvalCodeBlock):
- runtime/JSGlobalObject.h:
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncEval):
- tests/stress/code-cache-incorrect-caching.js: Added.
(shouldBe):
(hello):
(catch):
(shouldBe.test.hello):
(globalEval.ok):
(global.hello.hello):
- 2:32 AM WebKitGTK/2.12.x edited by
- (diff)
- 1:56 AM Changeset in webkit [201327] by
-
- 1 copy in releases/WebKitGTK/webkit-2.12.3
WebKitGTK+ 2.12.3
- 1:55 AM Changeset in webkit [201326] by
-
- 4 edits in releases/WebKitGTK/webkit-2.12
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.12.3 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit2:
- gtk/NEWS: Add release notes for 2.12.3.
- 1:55 AM Changeset in webkit [201325] by
-
- 18 edits in trunk
[css-grid] Fix behavior of flexible track breadths
https://bugs.webkit.org/show_bug.cgi?id=157834
Reviewed by Sergio Villar Senin.
This patch is fixing 2 issues that are interrelated:
Source/WebCore:
1) Flex sizes are invalid as min track sizing function.
The syntax has been recently updated on the spec:
<track-size> =
<track-breadth> |
minmax( <inflexible-breadth> , <track-breadth> )
2) Flex sizes outside minmax() behave as auto minimum.
Flex sizes outside minmax() were previously behaving like
minimum and maximum (e.g. 1fr => minmax(1fr, 1fr)).
However the spec changed and now this would be invalid,
so they should behave like auto minimum (e.g. minmax(auto, 1fr)).
- css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTrackSize): Call parseGridBreadth()
for min sizing function using "InflexibleSizeOnly" restriction
when needed.
(WebCore::CSSParser::parseGridBreadth): Add check for
"InflexibleSizeOnly" resctriction.
- css/CSSParser.h: Add new type of restriction "InflexibleSizeOnly".
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::gridTrackSize): Add new condition to make
|minTrackBreadth| auto if it was a flex size.
LayoutTests:
1) Flex sizes are invalid as min track sizing function.
2) Flex sizes outside minmax() behave as auto minimum.
The patch includes new test cases checking specifically these 2 issues.
In addition several tests results have been updated to reflect
the new behavior. Also, some cases that are now invalid and
were not testing anything new have been removed.
- fast/css-grid-layout/flex-and-content-sized-resolution-columns-expected.txt:
- fast/css-grid-layout/flex-and-content-sized-resolution-columns.html:
- fast/css-grid-layout/flex-content-resolution-columns-expected.txt:
- fast/css-grid-layout/flex-content-resolution-columns.html:
- fast/css-grid-layout/flex-content-resolution-rows-expected.txt:
- fast/css-grid-layout/flex-content-resolution-rows.html:
- fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
- fast/css-grid-layout/grid-gutters-and-flex-content-expected.txt:
- fast/css-grid-layout/grid-gutters-and-flex-content.html:
- fast/css-grid-layout/grid-preferred-logical-widths.html:
- fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt:
- fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
- fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:
- 12:35 AM Changeset in webkit [201324] by
-
- 22 edits1 move4 adds in trunk
[Fetch API] Implement Fetch redirect mode
https://bugs.webkit.org/show_bug.cgi?id=157837
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/fetch/api/redirect/redirect-location-expected.txt:
- web-platform-tests/fetch/api/redirect/redirect-location.js:
- web-platform-tests/fetch/api/redirect/redirect-method.js:
- web-platform-tests/fetch/api/redirect/redirect-method-expected.txt:
- web-platform-tests/fetch/api/redirect/redirect-mode-expected.txt:
Source/WebCore:
Implementing step 5 of https://fetch.spec.whatwg.org/#http-fetch.
Making ResourceLoaderOptions include FetchOptions.
This allows SubresourceLoader to follow or not redirections based on that option.
CachedResource is made responsible to handle the type of the response (opaqueredirect, opaque, cors, basic...).
If redirection is not to be followed, either an error is returned or an empty response is returned.
Moved Response type and redirected flag from FetchResponse to ResourceResponse.
This allows CachedResource to easily communicate that information to FetchResponse.
Made some clean-up refactoring in ThreadableLoaderOptions.
http/tests/fetch/caching-with-different-options.html ensures that
caching at CachedResourceLoader will not have bad effects on fetch.
Covered by updated and rebased tests.
- Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::start):
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::error):
(WebCore::FetchResponse::redirect):
(WebCore::FetchResponse::FetchResponse):
(WebCore::FetchResponse::clone):
(WebCore::FetchResponse::startFetching):
- Modules/fetch/FetchResponse.h:
- WebCore.xcodeproj/project.pbxproj:
- loader/FetchOptions.h: Moved from Source/WebCore/Modules/fetch/FetchOptions.h.
- loader/ResourceLoaderOptions.h:
(WebCore::ResourceLoaderOptions::fetchOptions):
(WebCore::ResourceLoaderOptions::setFetchOptions):
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequestInternal):
- loader/ThreadableLoader.cpp:
- loader/ThreadableLoader.h:
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::setResponse):
- loader/cache/CachedResource.h:
(WebCore::CachedResource::setOpaqueRedirect):
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::adopt):
(WebCore::ResourceResponseBase::copyData):
- platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::type):
(WebCore::ResourceResponseBase::setType):
(WebCore::ResourceResponseBase::encode):
(WebCore::ResourceResponseBase::decode):
LayoutTests:
- http/tests/fetch/caching-with-different-options-expected.txt: Added.
- http/tests/fetch/caching-with-different-options.html: Added.
- http/tests/fetch/resources/redirect-with-cache.php: Added.
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt:
May 23, 2016:
- 11:29 PM Changeset in webkit [201323] by
-
- 1 edit4 adds in trunk/LayoutTests
Add a few initiator tests to resource timing.
https://bugs.webkit.org/show_bug.cgi?id=157986
Reviewed by Darin Adler.
Adds tests that make sure that when a resource is requested multiple times by different
elements, its initiator type remain the first one that triggered the fetch.
- http/tests/performance/performance-resource-timing-initiator-css-expected.txt: Added.
- http/tests/performance/performance-resource-timing-initiator-css.html: Added.
- http/tests/performance/performance-resource-timing-initiator-no-override-expected.txt: Added.
- http/tests/performance/performance-resource-timing-initiator-no-override.html: Added.
- 11:24 PM Changeset in webkit [201322] by
-
- 30 edits1 add in trunk/Source
Assertion failure for Reflect.get with Proxy and primitive value as explicit receiver
https://bugs.webkit.org/show_bug.cgi?id=157080
Reviewed by Saam Barati.
Source/JavaScriptCore:
In custom accessor getter, the argument "thisValue" can be altered by using
Reflect.get
.
In this patch, we add a new parameter, "slotBase". This represents the base value offering
this custom getter. And use it in ProxyObject's performGet custom accessor getter.
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::staticFunctionGetter):
(JSC::JSCallbackObject<Parent>::callbackGetter):
- bytecode/PolymorphicAccess.cpp:
(JSC::AccessCase::generateImpl):
In PolymorphicAccess case, the thisValue and the slotBase are always cells.
This is because IC is enabled in the case that the base value is a cell.
And slotBase is always on the prototype chain from this base value.
- jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):
- jsc.cpp:
(WTF::CustomGetter::customGetter):
(WTF::RuntimeArray::lengthGetter):
- runtime/CustomGetterSetter.cpp:
(JSC::callCustomSetter):
- runtime/JSBoundSlotBaseFunction.cpp:
(JSC::boundSlotBaseFunctionCall):
- runtime/JSFunction.cpp:
(JSC::JSFunction::argumentsGetter):
(JSC::JSFunction::callerGetter):
- runtime/JSFunction.h:
- runtime/JSModuleNamespaceObject.cpp:
(JSC::callbackGetter):
- runtime/PropertySlot.cpp:
(JSC::PropertySlot::customGetter):
- runtime/PropertySlot.h:
- runtime/ProxyObject.cpp:
(JSC::performProxyGet):
- runtime/RegExpConstructor.cpp:
(JSC::regExpConstructorDollar):
(JSC::regExpConstructorInput):
(JSC::regExpConstructorMultiline):
(JSC::regExpConstructorLastMatch):
(JSC::regExpConstructorLastParen):
(JSC::regExpConstructorLeftContext):
(JSC::regExpConstructorRightContext):
(JSC::regExpConstructorDollar1): Deleted.
(JSC::regExpConstructorDollar2): Deleted.
(JSC::regExpConstructorDollar3): Deleted.
(JSC::regExpConstructorDollar4): Deleted.
(JSC::regExpConstructorDollar5): Deleted.
(JSC::regExpConstructorDollar6): Deleted.
(JSC::regExpConstructorDollar7): Deleted.
(JSC::regExpConstructorDollar8): Deleted.
(JSC::regExpConstructorDollar9): Deleted.
- tests/stress/proxy-get-with-primitive-receiver.js: Added.
(shouldBe):
Source/WebCore:
- bindings/js/JSDOMBinding.h:
(WebCore::nonCachingStaticFunctionGetter):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowWebKit):
- bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementPropertyGetter):
- bindings/js/JSPluginElementFunctions.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
- bridge/runtime_array.cpp:
(JSC::RuntimeArray::lengthGetter):
- bridge/runtime_array.h:
- bridge/runtime_method.cpp:
(JSC::RuntimeMethod::lengthGetter):
- bridge/runtime_method.h:
- bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::fallbackObjectGetter):
(JSC::Bindings::RuntimeObject::fieldGetter):
(JSC::Bindings::RuntimeObject::methodGetter):
- bridge/runtime_object.h:
Source/WebKit2:
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::propertyGetter):
(WebKit::JSNPObject::methodGetter):
- WebProcess/Plugins/Netscape/JSNPObject.h:
- 11:15 PM Changeset in webkit [201321] by
-
- 3 edits in branches/safari-602.1.32-branch/Source/WebCore
Merge r200965. rdar://problem/26237934
- 10:58 PM Changeset in webkit [201320] by
-
- 5 edits in branches/safari-602.1.32.5-branch/Source
Versioning.
- 10:57 PM Changeset in webkit [201319] by
-
- 5 edits in branches/safari-602.1.32-branch/Source
Versioning.
- 10:34 PM Changeset in webkit [201318] by
-
- 23 edits in trunk/Source/WebCore
Modernize CSS code
https://bugs.webkit.org/show_bug.cgi?id=157875
Reviewed by Chris Dumez.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateParametersCheck):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::construct):
(WebCore::setJSTestObjPutForwardsNullableAttribute):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::construct):
- css/CSSBasicShapes.cpp:
(WebCore::serializePositionOffset):
(WebCore::buildSerializablePositionOffset):
(WebCore::CSSBasicShapeCircle::cssText):
(WebCore::CSSBasicShapeEllipse::cssText):
- css/CSSCalculationValue.cpp:
(WebCore::determineCategory):
(WebCore::CSSCalcExpressionNodeParser::parseValue):
- css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::media):
- css/CSSMediaRule.h:
- css/CSSOMUtils.h:
- css/CSSParser.cpp:
(WebCore::CSSParser::createImportRule):
(WebCore::CSSParser::createMediaRule):
- css/CSSReflectValue.h:
- css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::setDisabled):
(WebCore::CSSStyleSheet::setMediaQueries):
(WebCore::CSSStyleSheet::insertRule):
(WebCore::CSSStyleSheet::deleteRule):
(WebCore::CSSStyleSheet::isLoading):
(WebCore::CSSStyleSheet::media):
(WebCore::CSSStyleSheet::parentStyleSheet):
(WebCore::CSSStyleSheet::ownerDocument):
(WebCore::CSSStyleSheet::clearChildRuleCSSOMWrappers):
(WebCore::CSSStyleSheet::RuleMutationScope::RuleMutationScope):
- css/CSSStyleSheet.h:
- css/PropertySetCSSStyleDeclaration.cpp:
- css/StyleRule.cpp:
(WebCore::StyleRuleBase::createCSSOMWrapper):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleGroup::wrapperRemoveRule):
(WebCore::StyleRuleMedia::StyleRuleMedia):
- css/StyleRule.h:
(WebCore::StyleRuleBase::deref):
(WebCore::StyleRuleBase::StyleRuleBase):
(WebCore::StyleRuleMedia::create):
(WebCore::StyleRuleMedia::mediaQueries):
(WebCore::StyleRuleMedia::copy):
(isType):
- css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::create):
(WebCore::StyleRuleImport::StyleRuleImport):
- css/StyleRuleImport.h:
- css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::isCacheable):
(WebCore::StyleSheetContents::parserAppendRule):
(WebCore::StyleSheetContents::ruleAt):
(WebCore::StyleSheetContents::parserSetEncodingFromCharsetRule):
(WebCore::StyleSheetContents::wrapperInsertRule):
- css/StyleSheetContents.h:
(WebCore::StyleSheetContents::hasSyntacticallyValidCSSHeader):
(WebCore::StyleSheetContents::parserSetUsesRemUnits):
(WebCore::StyleSheetContents::parserSetUsesStyleBasedEditability):
(WebCore::StyleSheetContents::copy):
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::createSheet):
- inspector/InspectorStyleSheet.cpp:
- 10:19 PM Changeset in webkit [201317] by
-
- 1 copy in branches/safari-602.1.32.5-branch
New Branch.
- 8:41 PM Changeset in webkit [201316] by
-
- 2 edits in trunk/LayoutTests
Skip fast/table/neighboring-cells-when-collapsed-border-changes on WK1 for now.
Unreviewed.
- platform/mac-wk1/TestExpectations:
- 8:27 PM Changeset in webkit [201315] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION (196374): deleting a global property is expensive
https://bugs.webkit.org/show_bug.cgi?id=158005
Reviewed by Chris Dumez.
- runtime/JSObject.cpp:
(JSC::JSObject::deleteProperty): We only need to reify static properties
if the name being deleted matches a static property. Otherwise, we can
be sure that delete won't observe any static properties.
- 7:10 PM Changeset in webkit [201314] by
-
- 2 edits in trunk/Source/WTF
Speed up move of vectors of POD types that have an inline buffer
https://bugs.webkit.org/show_bug.cgi?id=158003
Reviewed by Benjamin Poulain.
When moving a vector of POD types that have an inline buffer, we would
call std::swap() on the inline buffers. This unnecessarily slow because:
- It does not consider the vector size, and therefore may end up doing more work than necessary when the inline buffer is not full.
- In the "move" case, the destination buffer is completely empty so we don't really want a swap. We merely want the move the content of the source's inline buffer into the destination's one.
Instead of calling std::swap(), we now call swapInlineBuffers() which
was already used for non-POD types. swapInlineBuffers() will do just
what we want in the "move" case because swapBound is going to be 0.
As a result, we will only move the content of the source buffer into
the destination one. Also swapInlineBuffers() is aware of the source
vector's size so it will only move what's strictly needed.
This seems to be a 2% progression on Dromaeo DOM attributes test.
- wtf/Vector.h:
(WTF::VectorBuffer::swapInlineBuffer):
- 6:54 PM Changeset in webkit [201313] by
-
- 2 edits in trunk/Source/ThirdParty
woff2_dec.cc triggers -Wsign-compare, -Wunused-but-set-variable
https://bugs.webkit.org/show_bug.cgi?id=157732
Reviewed by Darin Adler.
- woff2/CMakeLists.txt:
- 6:53 PM Changeset in webkit [201312] by
-
- 3 edits2 adds in trunk
Changing border color and size simultaneously fails to repaint.
https://bugs.webkit.org/show_bug.cgi?id=157967
<rdar://problem/26423918>
Reviewed by David Hyatt.
This patch ensures that the neighboring tables cells are dirtied when collapsed border change requires layout.
Source/WebCore:
Test: fast/table/neighboring-cells-when-collapsed-border-changes.html
- rendering/RenderTable.cpp:
(WebCore::markCellDirtyWhenCollapsedBorderChanges):
(WebCore::RenderTable::invalidateCollapsedBorders):
LayoutTests:
- fast/table/neighboring-cells-when-collapsed-border-changes-expected.html: Added.
- fast/table/neighboring-cells-when-collapsed-border-changes.html: Added.
- 6:50 PM Changeset in webkit [201311] by
-
- 2 edits in trunk/Source/WebCore
Avoid unnecessary call to Document::completeURL() in HTMLLinkElement::process()
https://bugs.webkit.org/show_bug.cgi?id=157993
Reviewed by Ryosuke Niwa.
Avoid unnecessary call to Document::completeURL() in HTMLLinkElement::process().
The call to getNonEmptyURLAttribute() already calls Document::completeURL()
internally so we can just reuse the returned URL.
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
- 6:03 PM Changeset in webkit [201310] by
-
- 3 edits6 adds in trunk
Null popstate event fired when navigating back to a cached page with a stateless history entry
https://bugs.webkit.org/show_bug.cgi?id=157963
<rdar://problem/23414840>
Source/WebCore:
Popstate events are not fired when WebKit navigates back to a history entry that doesn't
have a state object if the entry's page is not cached. However, we fire popstate events
unconditionally if the page is cached. This results in inconsistent behavior between
initial navigations and cached navigations. Align the behavior of initial and cached
navigations so that we produce consistent events.
Reviewed by Brent Fulgham.
Tests: fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html
fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry.html
- history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore):
LayoutTests:
Reviewed by Brent Fulgham.
- fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-expected.txt: Added.
- fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache-expected.txt: Added.
- fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html: Added.
- fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry.html: Added.
- fast/loader/stateobjects/resources/no-popstate-when-back-to-stateless-entry-1.html: Added.
- fast/loader/stateobjects/resources/no-popstate-when-back-to-stateless-entry-2.html: Added.
- 5:50 PM Changeset in webkit [201309] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Build fix after r201307.
- public/v3/pages/chart-pane.js:
(ChartPane.prototype.serializeState):
- 5:35 PM Changeset in webkit [201308] by
-
- 2 edits in trunk/LayoutTests
Marking inspector/console/console-time.html as a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=158006
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 5:24 PM Changeset in webkit [201307] by
-
- 3 edits in trunk/Websites/perf.webkit.org
Some applications truncates the last closing parenthesis in perf dashboard URL
https://bugs.webkit.org/show_bug.cgi?id=157976
Reviewed by Tim Horton.
Unfortunately, different applications use different heuristics to determine the end of each URL. Two trailing
parentheses, for example, is just fine in Radar as well as Apple Mail if the URL is short enough. Using other
characters such as ] and } wouldn't work either because they would be %-escaped. At that point, we might as well
as %-escape everything.
Work around the bug by parsing the URL as if it had one extra ')' if the parsing had failed. Also shorten the charts
page's URL by avoid emitting "-null" for each pane when the pane doesn't have a currently selected point or selection.
This improves the odds of the entire URL being recognized by various applications.
We could, in theory, implement some sort of a URL shorter but that can wait until when we support real user accounts.
- public/v3/pages/chart-pane.js:
(ChartPane.prototype.serializeState): Don't serialize the selection or the current point if nothing is selected.
- public/v3/pages/page-router.js:
(PageRouter.prototype._deserializeHashQueryValue): Try parsing the value again with one extra ] at the end if
the JSON parsing had failed.
- 5:22 PM Changeset in webkit [201306] by
-
- 2 edits in trunk/LayoutTests
Marking mathml/wbr-in-mroot-crash.html as a timeout on mac release
https://bugs.webkit.org/show_bug.cgi?id=157990
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 5:17 PM Changeset in webkit [201305] by
-
- 49 edits in trunk/Source
Generate bindings code for EventTarget.addEventListener() / removeEventListener()
https://bugs.webkit.org/show_bug.cgi?id=157882
Reviewed by Darin Adler.
Generate bindings code for EventTarget.addEventListener() / removeEventListener()
instead of hardcoding them in the bindings generator.
Source/WebCore:
No new tests, rebaselined existing test, no web-exposed behavior change.
- Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::addEventListener):
(WebCore::AudioScheduledSourceNode::removeEventListener):
- Modules/webaudio/AudioScheduledSourceNode.h:
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::addEventListener):
(WebCore::ScriptProcessorNode::removeEventListener):
- Modules/webaudio/ScriptProcessorNode.h:
- bindings/gobject/GObjectEventListener.cpp:
(WebCore::GObjectEventListener::operator==):
- bindings/gobject/GObjectEventListener.h:
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::operator==):
(WebCore::eventHandlerAttribute): Deleted.
- bindings/js/JSEventListener.h:
(WebCore::JSEventListener::create):
(WebCore::JSEventListener::cast): Deleted.
(WebCore::JSEventListener::jsFunction): Deleted.
- bindings/objc/ObjCEventListener.h:
- bindings/objc/ObjCEventListener.mm:
(WebCore::ObjCEventListener::operator==):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(JSValueToNative):
(GetParentClassName): Deleted.
(GetCallbackClassName): Deleted.
(GetJSCallbackDataType): Deleted.
- dom/EventListener.h:
- dom/EventListenerMap.cpp:
(WebCore::addListenerToVector):
(WebCore::EventListenerMap::add):
(WebCore::removeListenerFromVector):
(WebCore::EventListenerMap::remove):
(WebCore::copyListenersNotCreatedFromMarkupToTarget):
- dom/EventListenerMap.h:
- dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::clearAttributeEventListener):
- dom/EventTarget.h:
- dom/EventTarget.idl:
- dom/MessagePort.cpp:
(WebCore::MessagePort::addEventListener):
- dom/MessagePort.h:
- dom/Node.cpp:
(WebCore::tryAddEventListener):
(WebCore::Node::addEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::removeEventListener):
- dom/Node.h:
- dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::RegisteredEventListener):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):
- html/HTMLMediaElement.h:
- html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
(WebCore::ImageEventListener::operator==):
- html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::showClosedCaptionTrackList):
(WebCore::MediaControlsApple::hideClosedCaptionTrackList):
(WebCore::MediaControlsAppleEventListener::operator==):
- html/shadow/MediaControlsApple.h:
- inspector/InspectorIndexedDBAgent.cpp:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
- page/DOMWindow.h:
- platform/cocoa/WebPlaybackSessionModelMediaElement.h:
- platform/cocoa/WebVideoFullscreenModelVideoElement.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::addEventListener):
(WebCore::SVGElement::removeEventListener):
- svg/SVGElement.h:
- svg/SVGTRefElement.cpp:
(WebCore::SVGTRefTargetEventListener::attach):
(WebCore::SVGTRefTargetEventListener::detach):
(WebCore::SVGTRefTargetEventListener::operator==):
- svg/animation/SVGSMILElement.cpp:
(WebCore::ConditionEventListener::operator==):
(WebCore::SVGSMILElement::connectConditions):
(WebCore::SVGSMILElement::disconnectConditions):
Source/WebKit/win:
- DOMEventsClasses.cpp:
(WebEventListener::operator==):
- DOMEventsClasses.h:
Source/WebKit2:
- WebProcess/Plugins/PDF/PDFPluginAnnotation.h:
- WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
(WebKit::PDFPluginAnnotation::attach):
(WebKit::PDFPluginAnnotation::~PDFPluginAnnotation):
- WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
(WebKit::PDFPluginPasswordField::~PDFPluginPasswordField):
(WebKit::PDFPluginPasswordField::createAnnotationElement):
- WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
(WebKit::PDFPluginTextAnnotation::~PDFPluginTextAnnotation):
(WebKit::PDFPluginTextAnnotation::createAnnotationElement):
- 4:33 PM Changeset in webkit [201304] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Split console navigation bar doesn't wrap as expected
https://bugs.webkit.org/show_bug.cgi?id=157950
<rdar://problem/26395573>
Reviewed by Timothy Hatcher.
- UserInterface/Views/Main.css:
(#split-content-browser > .navigation-bar .item):
Fix the split console and don't touch any other navigation bars.
- 4:19 PM Changeset in webkit [201303] by
-
- 2 edits in trunk/Source/WebCore
Fix undefined behavior introduced in r201290.
https://bugs.webkit.org/show_bug.cgi?id=157961
Reviewed by Alex Christensen.
The evaluation order of function arguments is undefined so it is unsafe to
copyRef() and WTFMove() the same parameter in a function call.
- css/CSSBasicShapes.h:
- 4:14 PM Changeset in webkit [201302] by
-
- 4 edits in trunk/Source/WebCore
Speculative fix for:
Modern IDB: Some blob tests ASSERT sometimes on the bots.
https://bugs.webkit.org/show_bug.cgi?id=157525
Reviewed by Alex Christensen.
No new tests (Should fix existing flakiness, not reproducibly testable).
For all of the lambdas involved in this operation, explicitly WTFMove all of the arguments around.
Critically, this includes the RefPtr<TransactionOperation> protector as well as the
std::function<void ()> completionHandler(s).
By doing so, this removes the possibility of a race between the background thread and the main thread
tearing down the TransactionOperation, guaranteeing that it is torn down on its original thread.
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):
- 3:46 PM Changeset in webkit [201301] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
The baseline JIT crashes when compiling "(1,1)/1"
https://bugs.webkit.org/show_bug.cgi?id=157933
Reviewed by Benjamin Poulain.
op_div in the baseline JIT needed to better handle when both the lhs
and rhs are constants. It needs to make sure to load either the lhs or
the rhs into a register since the div generator can't handle both
the lhs and rhs being constants.
- jit/JITArithmetic.cpp:
(JSC::JIT::emit_op_div):
- tests/stress/jit-gracefully-handle-double-constants-in-math-operators.js: Added.
(assert):
(test):
- 3:37 PM Changeset in webkit [201300] by
-
- 3 edits2 deletes in trunk
Unreviewed, rolling out r201296.
https://bugs.webkit.org/show_bug.cgi?id=158002
The LayoutTest added with this change is failing on mac-wk1
(Requested by ryanhaddad on #webkit).
Reverted changeset:
"Changing border color and size simultaneously fails to
repaint."
https://bugs.webkit.org/show_bug.cgi?id=157967
http://trac.webkit.org/changeset/201296
Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-23
- 3:07 PM Changeset in webkit [201299] by
-
- 2 edits in trunk/Source/WebCore
Missing/Incomplete timestamp for inline Audio player in ePub book
https://bugs.webkit.org/show_bug.cgi?id=157998
<rdar://problem/25858437>
Reviewed by Jon Lee and Tim Horton.
On iOS it is rare to apply a text-zoom (Safari does not provide
UI for it). However, iBooks uses text-zoom to increase the font
size. This causes the time displays in the media controls to
overflow their containers and be clipped.
The solution is to simply reset the text zoom for the media controls,
which means the time displays will always be a constant size.
- Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-time-remaining-display):
- 3:06 PM Changeset in webkit [201298] by
-
- 12 edits in trunk/Source/WebKit2
Need SPI for clients to require a user action to get an editing controls
manager
https://bugs.webkit.org/show_bug.cgi?id=157992
-and corresponding-
rdar://problem/26379927
Reviewed by Tim Horton.
New SPI _setRequiresUserActionForEditingControlsManager. The SPI defaults to
False, which means that by default there is no user action requirement to
have an editing controls manager. The SPI is on WKViewPrivate and
WKWebViewConfigurationPrivate, and it’s implemented in WebViewImpl.
- UIProcess/API/Cocoa/WKViewPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _requiresUserActionForEditingControlsManager]):
(-[WKWebViewConfiguration _setRequiresUserActionForEditingControlsManager:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/API/mac/WKView.mm:
(-[WKView _requiresUserActionForEditingControlsManager]):
(-[WKView _setRequiresUserActionForEditingControlsManager:]):
- UIProcess/Cocoa/WebViewImpl.h:
(WebKit::WebViewImpl::setRequiresUserActionForEditingControlsManager):
(WebKit::WebViewImpl::requiresUserActionForEditingControlsManager):
New message allows the WebProcess to tell the UI process whether the current
web page has had any selection changes based on user interaction.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setHasHadSelectionChangesFromUserInteraction):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::hasHadSelectionChangesFromUserInteraction):
- UIProcess/WebPageProxy.messages.in:
m_userIsInteracting m_hasFocusedDueToUserInteraction used to be iOS only, but
now we want to track them for Mac as well.
- WebProcess/WebPage/WebPage.cpp:
Handling mouse events and key events will toggle m_userIsInteracting.
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::keyEvent):
m_userIsInteracting is no longer iOS-only.
(WebKit::WebPage::setInitialFocus):
Send a message to the UI process on page transition to re-set
hasHadSelectionChangesFromUserInteraction to false.
(WebKit::WebPage::didStartPageTransition):
Send a message to the UI process if this is the first selection change to
happen as a result of a user action.
(WebKit::WebPage::didChangeSelection):
- WebProcess/WebPage/WebPage.h:
- 2:55 PM Changeset in webkit [201297] by
-
- 2 edits in trunk/LayoutTests
Marking inspector/unit-tests/heap-snapshot-collection-event.html as a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=157999
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:04 PM Changeset in webkit [201296] by
-
- 3 edits2 adds in trunk
Changing border color and size simultaneously fails to repaint.
https://bugs.webkit.org/show_bug.cgi?id=157967
<rdar://problem/26423918>
Reviewed by David Hyatt.
This patch ensures that the neighboring tables cells are dirtied when collapsed border change requires layout.
Source/WebCore:
Test: fast/table/neighboring-cells-when-collapsed-border-changes.html
- rendering/RenderTable.cpp:
(WebCore::markCellDirtyWhenCollapsedBorderChanges):
(WebCore::RenderTable::invalidateCollapsedBorders):
LayoutTests:
- fast/table/neighboring-cells-when-collapsed-border-changes-expected.html: Added.
- fast/table/neighboring-cells-when-collapsed-border-changes.html: Added.
- 1:54 PM Changeset in webkit [201295] by
-
- 4 edits in trunk/Source/WebKit2
Add logging for NSURLSession calls
https://bugs.webkit.org/show_bug.cgi?id=157996
Reviewed by Brady Eidson.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::NetworkDataTask):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(toNSURLSessionResponseDisposition):
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]):
- Platform/Logging.h:
- 1:44 PM Changeset in webkit [201294] by
-
- 8 edits4 adds in trunk
AX: iOS: when bringing focus to a text field we may zoom the page even if author wanted max scale = 1
https://bugs.webkit.org/show_bug.cgi?id=157771
Reviewed by Tim Horton.
Source/WebCore:
If the author requests scaling not to be enabled, we should not scale in when keyboard focus moves to a text field.
Scaling should only happen when the user performs a gesture to do so in this case.
Tests: fast/viewport/ios/user-scalable-does-not-scale-for-keyboard-focus-with-author-defined-scale.html
fast/viewport/ios/user-scalable-scales-for-keyboard-focus-with-no-author-defined-scale.html
- page/ViewportConfiguration.h:
(WebCore::ViewportConfiguration::maximumScale):
Source/WebKit2:
- Shared/AssistedNodeInformation.cpp:
(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):
- Shared/AssistedNodeInformation.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _displayFormNodeInputView]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
- 1:27 PM Changeset in webkit [201293] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
String template don't handle let initialization properly inside eval
https://bugs.webkit.org/show_bug.cgi?id=157991
Reviewed by Oliver Hunt.
The fix is to make sure we emit TDZ checks.
- bytecompiler/NodesCodegen.cpp:
(JSC::TaggedTemplateNode::emitBytecode):
- tests/stress/tagged-template-tdz.js: Added.
(shouldThrowTDZ):
(test):
- 1:25 PM Changeset in webkit [201292] by
-
- 6 edits2 deletes in trunk
Unreviewed, rolling out r200414.
This change appears to have broken the 'write a reply' field
on Nextdoor.com
Reverted changeset:
"Clicks inside button elements are sometimes discarded when
the mouse moves"
https://bugs.webkit.org/show_bug.cgi?id=39620
http://trac.webkit.org/changeset/200414
- 1:14 PM Changeset in webkit [201291] by
-
- 2 edits in trunk/Websites/webkit.org
Add syntax highglighting for ES6 "let", "const" and "of" keywords.
https://bugs.webkit.org/show_bug.cgi?id=157994
Reviewed by Geoffrey Garen.
- wp-content/plugins/hyperlight/hyperlight/languages/javascript.php:
- 10:40 AM Changeset in webkit [201290] by
-
- 54 edits in trunk
Clean up / Modernize the CSS Parser
https://bugs.webkit.org/show_bug.cgi?id=157961
Reviewed by Alex Christensen.
Clean up / Modernize the CSS Parser.
- WebCore.xcodeproj/project.pbxproj:
- css/BasicShapeFunctions.cpp:
(WebCore::valueForBasicShape):
(WebCore::convertToLength):
(WebCore::convertToLengthSize):
(WebCore::basicShapeForValue):
- css/BasicShapeFunctions.h:
- css/CSSBasicShapes.cpp:
(WebCore::CSSBasicShapePolygon::cssText):
(WebCore::CSSBasicShapePolygon::equals):
- css/CSSBasicShapes.h:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForReflection):
(WebCore::ComputedStyleExtractor::valueForShadow):
(WebCore::specifiedValueForGridTrackSize):
- css/CSSCrossfadeValue.cpp:
(WebCore::subimageKnownToBeOpaque):
(WebCore::CSSCrossfadeValue::fixedSize):
(WebCore::CSSCrossfadeValue::isPending):
(WebCore::CSSCrossfadeValue::knownToBeOpaque):
(WebCore::CSSCrossfadeValue::loadSubimages):
(WebCore::CSSCrossfadeValue::image):
(WebCore::CSSCrossfadeValue::blend):
(WebCore::CSSCrossfadeValue::equals):
(WebCore::CSSCrossfadeValue::equalInputImages):
- css/CSSCrossfadeValue.h:
(WebCore::CSSCrossfadeValue::create):
(WebCore::CSSCrossfadeValue::CSSCrossfadeValue):
- css/CSSCustomPropertyValue.h:
(WebCore::CSSCustomPropertyValue::create):
(WebCore::CSSCustomPropertyValue::CSSCustomPropertyValue):
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::fixedSize):
(WebCore::CSSFilterImageValue::isPending):
(WebCore::CSSFilterImageValue::loadSubimages):
(WebCore::CSSFilterImageValue::image):
(WebCore::CSSFilterImageValue::createFilterOperations):
(WebCore::CSSFilterImageValue::equals):
(WebCore::CSSFilterImageValue::equalInputImages):
- css/CSSFilterImageValue.h:
(WebCore::CSSFilterImageValue::CSSFilterImageValue):
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::matchingFaces):
- css/CSSFunctionValue.cpp:
(WebCore::CSSFunctionValue::CSSFunctionValue):
- css/CSSFunctionValue.h:
(WebCore::CSSFunctionValue::create):
- css/CSSGradientValue.h:
(WebCore::CSSLinearGradientValue::setAngle):
- css/CSSGrammar.y.in:
- css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::subimageIsPending):
(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue):
- css/CSSImageGeneratorValue.h:
- css/CSSImageValue.cpp:
(WebCore::CSSImageValue::cachedOrPendingImage):
- css/CSSImageValue.h:
- css/CSSKeyframesRule.cpp:
(WebCore::StyleRuleKeyframes::StyleRuleKeyframes):
(WebCore::StyleRuleKeyframes::parserAppendKeyframe):
(WebCore::StyleRuleKeyframes::wrapperAppendKeyframe):
(WebCore::CSSKeyframesRule::appendRule):
(WebCore::CSSKeyframesRule::findRule):
(WebCore::CSSKeyframesRule::item):
(WebCore::StyleRuleKeyframes::~StyleRuleKeyframes): Deleted.
- css/CSSKeyframesRule.h:
(WebCore::StyleRuleKeyframes::keyframes):
- css/CSSParser.cpp:
(WebCore::parseColorValue):
(WebCore::parseSimpleLengthValue):
(WebCore::parseKeywordValue):
(WebCore::parseTranslateTransformValue):
(WebCore::CSSParser::parseFontFaceValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseCustomPropertyValue):
(WebCore::CSSParser::parseDeclaration):
(WebCore::CSSParser::SourceSize::SourceSize):
(WebCore::filterProperties):
(WebCore::CSSParser::clearProperties):
(WebCore::CSSParser::addExpandedPropertyForValue):
(WebCore::CSSParser::parseVariableDependentValue):
(WebCore::CSSParser::parseContentDistributionOverflowPosition):
(WebCore::CSSParser::parseItemPositionOverflowPosition):
(WebCore::CSSParser::parseNonElementSnapPoints):
(WebCore::CSSParser::parseScrollSnapDestination):
(WebCore::CSSParser::parseScrollSnapCoordinate):
(WebCore::CSSParser::parseFillShorthand):
(WebCore::CSSParser::addAnimationValue):
(WebCore::CSSParser::parseAnimationShorthand):
(WebCore::CSSParser::parseColumnWidth):
(WebCore::CSSParser::parseColumnCount):
(WebCore::CSSParser::parseColumnsShorthand):
(WebCore::CSSParser::parseTransitionShorthand):
(WebCore::CSSParser::parseSize):
(WebCore::CSSParser::parseQuotes):
(WebCore::CSSParser::parseAlt):
(WebCore::CSSParser::parseCustomPropertyDeclaration):
(WebCore::CSSParser::parseContent):
(WebCore::CSSParser::parseAttr):
(WebCore::CSSParser::parseBackgroundColor):
(WebCore::CSSParser::parseFillPositionComponent):
(WebCore::CSSParser::parse4ValuesFillPosition):
(WebCore::CSSParser::parse3ValuesFillPosition):
(WebCore::CSSParser::parseFillPosition):
(WebCore::CSSParser::parseFillSize):
(WebCore::CSSParser::parseFillProperty):
(WebCore::CSSParser::parseAnimationDelay):
(WebCore::CSSParser::parseAnimationDirection):
(WebCore::CSSParser::parseAnimationDuration):
(WebCore::CSSParser::parseAnimationFillMode):
(WebCore::CSSParser::parseAnimationIterationCount):
(WebCore::CSSParser::parseAnimationName):
(WebCore::CSSParser::parseAnimationPlayState):
(WebCore::CSSParser::parseAnimationTrigger):
(WebCore::CSSParser::parseAnimationProperty):
(WebCore::CSSParser::parseKeyframeSelector):
(WebCore::CSSParser::parseGridPosition):
(WebCore::gridMissingGridPositionValue):
(WebCore::CSSParser::parseGridItemPositionShorthand):
(WebCore::CSSParser::parseGridGapShorthand):
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns):
(WebCore::CSSParser::parseGridTemplateShorthand):
(WebCore::CSSParser::parseGridShorthand):
(WebCore::CSSParser::parseGridAreaShorthand):
(WebCore::CSSParser::parseGridLineNames):
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTrackRepeatFunction):
(WebCore::CSSParser::parseGridTrackSize):
(WebCore::CSSParser::parseGridAutoFlow):
(WebCore::skipCommaInDashboardRegion):
(WebCore::CSSParser::parseDashboardRegions):
(WebCore::parseGridTemplateAreasColumnNames):
(WebCore::CSSParser::parseCounterContent):
(WebCore::CSSParser::parseClipShape):
(WebCore::CSSParser::parseInsetRoundedCorners):
(WebCore::CSSParser::parseBasicShapeInset):
(WebCore::CSSParser::parseBasicShapeCircle):
(WebCore::CSSParser::parseBasicShapeEllipse):
(WebCore::CSSParser::parseBasicShapePolygon):
(WebCore::CSSParser::parseBasicShapePath):
(WebCore::CSSParser::parseBasicShapeAndOrBox):
(WebCore::CSSParser::parseFont):
(WebCore::CSSParser::parseFontFamily):
(WebCore::CSSParser::parseFontSynthesis):
(WebCore::CSSParser::parseFontFaceSrcURI):
(WebCore::CSSParser::parseFontFaceSrc):
(WebCore::CSSParser::parseFontFaceUnicodeRange):
(WebCore::parseAlphaValue):
(WebCore::ShadowParseContext::commitValue):
(WebCore::CSSParser::parseShadow):
(WebCore::CSSParser::parseReflect):
(WebCore::CSSParser::parseFlex):
(WebCore::BorderImageParseContext::commitImage):
(WebCore::BorderImageParseContext::commitImageSlice):
(WebCore::BorderImageParseContext::commitBorderWidth):
(WebCore::BorderImageParseContext::commitBorderOutset):
(WebCore::BorderImageParseContext::commitRepeat):
(WebCore::BorderImageParseContext::commitWebKitBorderImage):
(WebCore::BorderImageParseContext::commitBorderImageProperty):
(WebCore::CSSParser::parseBorderImage):
(WebCore::CSSParser::parseBorderImageRepeat):
(WebCore::BorderImageQuadParseContext::setTop):
(WebCore::CSSParser::parseCounter):
(WebCore::CSSParser::parseDeprecatedGradient):
(WebCore::CSSParser::parseDeprecatedLinearGradient):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
(WebCore::CSSParser::parseLinearGradient):
(WebCore::CSSParser::parseRadialGradient):
(WebCore::CSSParser::parseFilterImage):
(WebCore::CSSParser::parseCrossfade):
(WebCore::CSSParser::parseImageResolution):
(WebCore::CSSParser::parseImageSet):
(WebCore::CSSParser::parseTransform):
(WebCore::CSSParser::parseTransformValue):
(WebCore::CSSParser::parseFilter):
(WebCore::CSSParser::parseTextDecoration):
(WebCore::CSSParser::parseTextEmphasisStyle):
(WebCore::CSSParser::parseTextEmphasisPosition):
(WebCore::CSSParser::parseTextIndent):
(WebCore::CSSParser::parseHangingPunctuation):
(WebCore::CSSParser::parseFontFeatureSettings):
(WebCore::CSSParser::parseWillChange):
(WebCore::CSSParser::createImportRule):
(WebCore::CSSParser::createMediaRule):
(WebCore::CSSParser::createEmptyMediaRule):
(WebCore::CSSParser::createSupportsRule):
(WebCore::CSSParser::markSupportsRuleHeaderStart):
(WebCore::CSSParser::popSupportsRuleData):
(WebCore::CSSParser::processAndAddNewRuleToSourceTreeIfNeeded):
(WebCore::CSSParser::addNewRuleToSourceTree):
(WebCore::CSSParser::popRuleData):
(WebCore::CSSParser::createKeyframesRule):
(WebCore::CSSParser::createStyleRule):
(WebCore::CSSParser::createFontFaceRule):
(WebCore::CSSParser::createPageRule):
(WebCore::CSSParser::createRegionRule):
(WebCore::CSSParser::endDeclarationsForMarginBox):
(WebCore::CSSParser::createKeyframe):
(WebCore::CSSParser::updateLastMediaLine):
(WebCore::fixUnparsedProperties):
(WebCore::CSSParser::fixUnparsedPropertyRanges):
(WebCore::CSSParser::parseViewportProperty):
(WebCore::cssPropertyNameIOSAliasing):
(WebCore::isAppleLegacyCssValueKeyword):
(WebCore::quoteCSSString):
(WebCore::AnimationParseContext::commitFirstAnimation): Deleted.
(WebCore::strictCSSParserContext): Deleted.
(WebCore::CSSParser::~CSSParser): Deleted.
(WebCore::convertToASCIILowercaseInPlace): Deleted.
(WebCore::CSSParserString::convertToASCIILowercaseInPlace): Deleted.
(WebCore::CSSParser::setupParser): Deleted.
(WebCore::isSimpleLengthPropertyID): Deleted.
(WebCore::isValidKeywordPropertyAndValue): Deleted.
(WebCore::parseTransformTranslateArguments): Deleted.
(WebCore::CSSParser::parseColor): Deleted.
(WebCore::CSSParser::parseMediaQuery): Deleted.
(WebCore::CSSParser::parseSizesAttribute): Deleted.
(WebCore::CSSParser::addProperty): Deleted.
(WebCore::CSSParser::validateCalculationUnit): Deleted.
(WebCore::isItemPositionKeyword): Deleted.
(WebCore::CSSParser::parseShorthand): Deleted.
(WebCore::CSSParser::parseSizeParameter): Deleted.
(WebCore::CSSParser::parseFillImage): Deleted.
(WebCore::CSSParser::parsePositionY): Deleted.
(WebCore::CSSParser::parse2ValuesFillPosition): Deleted.
(WebCore::CSSParser::parseTransformOriginShorthand): Deleted.
(WebCore::CSSParser::parseAnimationTimingFunction): Deleted.
(WebCore::CSSParser::parseGridTemplateColumns): Deleted.
(WebCore::CSSParser::parseSingleGridAreaLonghand): Deleted.
(WebCore::allTracksAreFixedSized): Deleted.
(WebCore::CSSParser::parseGridBreadth): Deleted.
(WebCore::CSSParser::parseGridTemplateAreasRow): Deleted.
(WebCore::completeBorderRadii): Deleted.
(WebCore::CSSParser::parseShapeRadius): Deleted.
(WebCore::isBoxValue): Deleted.
(WebCore::CSSParser::parseShapeProperty): Deleted.
(WebCore::CSSParser::parseClipPath): Deleted.
(WebCore::CSSParser::parseBasicShape): Deleted.
(WebCore::FontFamilyValueBuilder::commit): Deleted.
(WebCore::CSSParser::parseFontWeight): Deleted.
(WebCore::CSSParser::parseFontFaceSrcLocal): Deleted.
(WebCore::parseDouble): Deleted.
(WebCore::mightBeRGBA): Deleted.
(WebCore::mightBeRGB): Deleted.
(WebCore::ShadowParseContext::commitColor): Deleted.
(WebCore::BorderImageParseContext::BorderImageParseContext): Deleted.
(WebCore::BorderImageParseContext::commitForwardSlashOperator): Deleted.
(WebCore::BorderImageParseContext::commitBorderImage): Deleted.
(WebCore::isBorderImageRepeatKeyword): Deleted.
(WebCore::BorderImageSliceParseContext::commitBorderImageSlice): Deleted.
(WebCore::CSSParser::parseBorderImageQuad): Deleted.
(WebCore::parseDeprecatedGradientColorStop): Deleted.
(WebCore::valueFromSideKeyword): Deleted.
(WebCore::CSSParser::isGeneratedImageValue): Deleted.
(WebCore::CSSParser::parseCanvas): Deleted.
(WebCore::CSSParser::parseNamedImage): Deleted.
(WebCore::TransformOperationInfo::TransformOperationInfo): Deleted.
(WebCore::CSSParser::isBlendMode): Deleted.
(WebCore::filterInfoForName): Deleted.
(WebCore::CSSParser::parseFlowThread): Deleted.
(WebCore::CSSParser::parseRegionThread): Deleted.
(WebCore::CSSParser::parseLineBoxContain): Deleted.
(WebCore::CSSParser::parseFontFeatureTag): Deleted.
(WebCore::CSSParser::parseFontVariantLigatures): Deleted.
(WebCore::isCSSLetter): Deleted.
(WebCore::CSSParser::markSupportsRuleHeaderEnd): Deleted.
(WebCore::CSSParser::syntaxError): Deleted.
(WebCore::CSSParser::logError): Deleted.
(WebCore::CSSParser::rewriteSpecifiersWithElementName): Deleted.
(WebCore::CSSParser::rewriteSpecifiers): Deleted.
(WebCore::CSSParser::invalidBlockHit): Deleted.
(WebCore::CSSParser::markRuleHeaderStart): Deleted.
(WebCore::CSSParser::setRuleHeaderEnd): Deleted.
(WebCore::CSSParser::markRuleHeaderEnd): Deleted.
(WebCore::CSSParser::markRuleBodyStart): Deleted.
(WebCore::cssPropertyID): Deleted.
(WebCore::isCSSTokenizerIdentifier): Deleted.
- css/CSSParser.h:
(WebCore::CSSParser::ValueWithCalculation::setCalculation): Deleted.
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
- css/CSSPrimitiveValue.h:
- css/CSSPropertySourceData.h:
- css/CSSReflectValue.cpp:
(WebCore::CSSReflectValue::equals):
- css/CSSReflectValue.h:
(WebCore::CSSReflectValue::create):
(WebCore::CSSReflectValue::direction):
(WebCore::CSSReflectValue::offset):
(WebCore::CSSReflectValue::CSSReflectValue):
- css/CSSShadowValue.cpp:
(WebCore::CSSShadowValue::CSSShadowValue):
(WebCore::CSSShadowValue::customCSSText): Deleted.
- css/CSSShadowValue.h:
(WebCore::CSSShadowValue::create):
- css/CSSValue.h:
(WebCore::compareCSSValueVector):
- css/CSSVariableDependentValue.cpp:
(WebCore::CSSVariableDependentValue::checkVariablesForCycles):
- css/CSSVariableDependentValue.h:
(WebCore::CSSVariableDependentValue::create):
(WebCore::CSSVariableDependentValue::customCSSText):
(WebCore::CSSVariableDependentValue::valueList):
(WebCore::CSSVariableDependentValue::CSSVariableDependentValue):
- css/CSSVariableValue.cpp:
(WebCore::CSSVariableValue::buildParserValueListSubstitutingVariables):
- css/Counter.h:
(WebCore::Counter::create):
(WebCore::Counter::identifier):
(WebCore::Counter::listStyle):
(WebCore::Counter::separator):
(WebCore::Counter::listStyleIdent):
(WebCore::Counter::setIdentifier):
(WebCore::Counter::setListStyle):
(WebCore::Counter::setSeparator):
(WebCore::Counter::cloneForCSSOM):
(WebCore::Counter::Counter):
- css/DOMCSSNamespace.cpp:
(WebCore::DOMCSSNamespace::supports):
- css/FontFace.cpp:
(WebCore::FontFace::parseString):
(WebCore::FontFace::setVariant):
- css/Rect.h:
(WebCore::RectBase::RectBase):
- css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGStrokeDasharray):
(WebCore::CSSParser::parseSVGPaint):
(WebCore::CSSParser::parseSVGColor):
(WebCore::CSSParser::parsePaintOrder):
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertReflection):
- css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::setProperty):
(WebCore::MutableStyleProperties::setCustomProperty):
(WebCore::MutableStyleProperties::parseDeclaration):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::cachedOrPendingFromValue):
- css/StyleResolver.h:
- css/WebKitCSSMatrix.cpp:
(WebCore::WebKitCSSMatrix::setMatrixValue):
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont):
- inspector/InspectorStyleSheet.cpp:
(flattenSourceData):
(ParsedStyleSheet::setSourceData):
(ParsedStyleSheet::ruleSourceDataAt):
(WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
- page/PageSerializer.cpp:
(WebCore::PageSerializer::retrieveResourcesForProperties):
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::crossfadeBlend):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::checkVariablesInCustomProperties):
- 9:59 AM Changeset in webkit [201289] by
-
- 6 edits in trunk/LayoutTests
Marking fast/text-autosizing/ios/text-autosizing-after-back.html as a flaky timeout on Mac and iOS
https://bugs.webkit.org/show_bug.cgi?id=157589
Unreviewed test gardening.
- TestExpectations:
- platform/ios-simulator-wk1/TestExpectations:
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 9:46 AM Changeset in webkit [201288] by
-
- 3 edits in trunk/Tools
check-webkit-style gets flags std::literals::chrono_literals as bad naming.
https://bugs.webkit.org/show_bug.cgi?id=157969
Reviewed by Alex Christensen.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_identifier_name_in_declaration):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_names):
- 9:41 AM Changeset in webkit [201287] by
-
- 2 edits in trunk/LayoutTests
Marking fast/frames/crash-during-iframe-load-stop.html as a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=157849
Unreviewed test gardening.
- 8:53 AM Changeset in webkit [201286] by
-
- 4 edits3 adds in releases/WebKitGTK/webkit-2.12
Merge r198592 - JavaScriptCore ArrayPrototype::join shouldn't cache butterfly when it makes effectful calls
https://bugs.webkit.org/show_bug.cgi?id=155776
Reviewed by Saam Barati.
Source/JavaScriptCore:
Array.join ends up calling toString, possibly on some object. Since these calls
could be effectful and could change the array itself, we can't hold the butterfly
pointer while making effectful calls. Changed the code to fall back to the general
case when an effectful toString() call might be made.
- runtime/ArrayPrototype.cpp:
(JSC::join):
- runtime/JSStringJoiner.h:
(JSC::JSStringJoiner::appendWithoutSideEffects): New helper that doesn't make effectful
toString() calls.
(JSC::JSStringJoiner::append): Built upon appendWithoutSideEffects.
LayoutTests:
New test.
- js/regress-155776-expected.txt: Added.
- js/regress-155776.html: Added.
- js/script-tests/regress-155776.js: Added.
(fillBigArrayViaToString):
(Function.prototype.toString):
- 8:52 AM Changeset in webkit [201285] by
-
- 1 edit in releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog
Some media tests are flaky.
https://bugs.webkit.org/show_bug.cgi?id=155614
Reviewed by Eric Carlson.
- html/track/TextTrack.cpp:
(WebCore::TextTrack::~TextTrack):
- 6:42 AM WebKitGTK/2.12.x edited by
- (diff)
- 6:41 AM Changeset in webkit [201284] by
-
- 4 edits in releases/WebKitGTK/webkit-2.12
Merge r197886 - [cmake] Fixed All-in-One build.
https://bugs.webkit.org/show_bug.cgi?id=155241
Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-03-09
Reviewed by Csaba Osztrogonác.
.:
- Source/cmake/WebKitMacros.cmake: Last item of WebCore_SOURCES was
not removed in PROCESS_ALLINONE_FILE.
Source/WebCore:
No new tests needed.
- bindings/js/JSBindingsAllInOne.cpp: Should not include generated
file.
- 6:37 AM Changeset in webkit [201283] by
-
- 4 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore
Merge r201163 - [GStreamer] unrelated codecs required to play videos
https://bugs.webkit.org/show_bug.cgi?id=135972
Reviewed by Michael Catanzaro.
Instead of hard-coding the list of supported mime-types, check the
decoder and demuxer GStreamer elements available and dynamically
build the list of mime-types accordingly. This patch also removes
support for under-used and exotic mime-types.
Based on a patch by Mario Sanchez Prada.
No new tests, existing media tests cover this change.
- platform/graphics/gstreamer/GStreamerUtilities.cpp:
(WebCore::gstRegistryHasElementForMediaType): New function
checking the elements registered in the factories have a sink pad
matching the caps specified as second argument of the function.
- platform/graphics/gstreamer/GStreamerUtilities.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mimeTypeSet): Hard-coded list of mime-types replaced by
runtime-built list of mime-types that can be supported by the
GStreamer decoders and demuxers available on the host machine.
(WebCore::MediaPlayerPrivateGStreamer::getSupportedTypes):
mimeTypeCache renamed to mimeTypeSet.
(WebCore::MediaPlayerPrivateGStreamer::supportsType): Ditto.
- 6:34 AM Changeset in webkit [201282] by
-
- 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore
Merge r201078 - [GStreamer] webaudio crash on ARM platforms
https://bugs.webkit.org/show_bug.cgi?id=157838
Reviewed by Michael Catanzaro.
- platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcConstructed): Explicitely cast the integer value
of the max-bytes property to guint64 which is the expected type of
this property. The compiler can't guess this on its own.
- 6:34 AM Changeset in webkit [201281] by
-
- 3 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore
Merge r201077 - [GStreamer] webaudio playback improvements
https://bugs.webkit.org/show_bug.cgi?id=155228
Reviewed by Michael Catanzaro.
- platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::autoAudioSinkChildAddedCallback): Fix sink buffer-time
to 100ms to reduce playback latency.
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
Connect to child-added signal of autoaudiosink to be notified when
a real sink is added into the bin.
- platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcConstructed): Fine-tune blocksize of appsrc
according to the buffer size already configured on the src element.
- 6:22 AM Changeset in webkit [201280] by
-
- 3 edits3 adds in releases/WebKitGTK/webkit-2.12
Merge r201053 - REGRESSION(r192855): Math.random() always produces the same first 7 decimal points the first two invocations
https://bugs.webkit.org/show_bug.cgi?id=157805
<rdar://problem/26327851>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-17
Reviewed by Geoffrey Garen.
Source/WTF:
- wtf/WeakRandom.h:
(WTF::WeakRandom::setSeed):
Advance once to randomize the 32bit seed across the 128bit state
and avoid re-using 64bits of state in the second advance.
LayoutTests:
- js/dom/math-random-initial-values-expected.txt: Added.
- js/dom/math-random-initial-values.html: Added.
- js/resources/math-random-initial-values-iframe.html: Added.
Test that less then 5% of the time, early Math.random invocations
produce very similiar values. Before this change we were failing
100%, but after we see similiar values mostly around 0-3%.
- 5:58 AM Changeset in webkit [201279] by
-
- 2 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc
Merge r201050 - REGRESSION: JetStream crashes on some iPhones
https://bugs.webkit.org/show_bug.cgi?id=157814
Reviewed by Michael Saboff.
- bmalloc/Sizes.h: Reduce smallMax to 32kB.
Previous justification for 64kB was:
- bmalloc/Sizes.h: Upped smallMax to 64kB. Upping to 32kB is pretty reasonable, since sizes between 16kB and 32kB share page sizes. I went all the way up to 64kB because the GC uses 64kB blocks, and also just for extra padding to ensure that large allocations are indeed rare.
It turns out that the bump to 64kB substantially increases our memory
high water mark on JetStream, leading to jetsam crashes. Also, there
doesn't seem to be a practical performance problem to putting objects in
the (32kB - 64kB) range in the large allocator.
- 5:52 AM Changeset in webkit [201278] by
-
- 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore
Merge r201023 - Regression(r177786): GlyphMetricsMap<T>::locatePageSlowCase() fills existing pages with unknown metrics
https://bugs.webkit.org/show_bug.cgi?id=157749
Reviewed by Antti Koivisto.
After r177786, GlyphMetricsMap<T>::locatePageSlowCase() would unconditionally fill
pages with unknown metrics. This patch updates the code to do so only if the page
is new, thus restoring the pre-r177786 behavior.
- platform/graphics/GlyphMetricsMap.h:
(WebCore::GlyphMetricsMap::metricsForGlyph):
(WebCore::GlyphMetricsMap::setMetricsForGlyph):
(WebCore::GlyphMetricsMap::GlyphMetricsPage::GlyphMetricsPage):
(WebCore::GlyphMetricsMap::GlyphMetricsPage::fill):
(WebCore::GlyphMetricsMap::locatePage):
(WebCore::GlyphMetricsMap<T>::locatePageSlowCase):
(WebCore::GlyphMetricsMap::GlyphMetricsPage::metricsForGlyph): Deleted.
(WebCore::GlyphMetricsMap::GlyphMetricsPage::setMetricsForGlyph): Deleted.
(WebCore::GlyphMetricsMap::GlyphMetricsPage::setMetricsForIndex): Deleted.
(WebCore::GlyphMetricsMap<float>::unknownMetrics): Deleted.
(WebCore::GlyphMetricsMap<FloatRect>::unknownMetrics): Deleted.
- 5:36 AM Changeset in webkit [201277] by
-
- 3 edits4 adds in releases/WebKitGTK/webkit-2.12
Merge r200986 - heap use-after-free at WebCore::TimerBase::heapPopMin()
https://bugs.webkit.org/show_bug.cgi?id=157742
<rdar://problem/26236778>
Source/WebCore:
Reviewed by David Kilzer.
Tested by fast/frames/resources/crash-during-iframe-load-stop.html.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopForUserCancel): Protect m_frame from destruction while it is still
being used by the current stack frame.
(WebCore::FrameLoader::frameDetached): Ditto.
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): Ditto.
LayoutTests:
Reviewed by Simon Fraser.
- fast/frames/crash-during-iframe-load-stop-expected.txt: Added.
- fast/frames/crash-during-iframe-load-stop.html: Added.
- fast/frames/resources/crash-during-iframe-load-stop-inner.html: Added.
- fast/frames/resources/crash-during-iframe-load-stop.html: Added.
- 5:33 AM Changeset in webkit [201276] by
-
- 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore
Merge r200971 - RenderLayer::hitTestList could mutate the list of candidate layers.
https://bugs.webkit.org/show_bug.cgi?id=157718
<rdar://problem/22556046>
Reviewed by Simon Fraser.
This patch ensures that we always start hittesting a clean render tree at EventHandler::hitTestResultAtPoint.
Speculative fix.
- page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
- 5:26 AM Changeset in webkit [201275] by
-
- 2 edits in trunk/Source/WebKit2
[ThreadedCompositor] Ensure that the BitmapTexture used by CoordinatedBackingStoreTile matches the opacity of the painted surface
https://bugs.webkit.org/show_bug.cgi?id=157942
Patch by Miguel Gomez <magomez@igalia.com> on 2016-05-23
Reviewed by Žan Doberšek.
- Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStoreTile::swapBuffers):
Reset the BitmapTexture if it doesn't match the opacity required by the surface
that's being painted.
- 5:25 AM Changeset in webkit [201274] by
-
- 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore
Merge r200940 - [Cairo] GraphicsContext3D::ImageExtractor should use the correct size for copying non-image surfaces
https://bugs.webkit.org/show_bug.cgi?id=157580
Reviewed by Darin Adler.
GraphicsContext3D::ImageExtractor::extractImage() shouldn't use m_imageWidth
and m_imageHeight members when copying the non-image-backed Cairo surface into
the image-based replacement simply because these two are not initialized until
later in this method.
Instead, the size of the to-be-copied image should be queried via the
cairoSurfaceSize() utility function which properly handles Cairo surfaces of
different types.
- platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
- 5:17 AM Changeset in webkit [201273] by
-
- 5 edits2 adds in releases/WebKitGTK/webkit-2.12
Merge r200923 - ToT WebKit doesn't show tooltip on perf dashboard's summary page
https://bugs.webkit.org/show_bug.cgi?id=157705
Reviewed by Darin Adler.
Source/WebCore:
The bug was caused by WebKit doesn't look for the title attribute across shadow boundaries.
Fixed it by using a newly added Node::parentNodeInComposedTree in HitTestResult::title.
Test: fast/shadow-dom/tooltip-on-composed-tree.html
- dom/Node.cpp:
(WebCore::Node::parentInComposedTree): Added.
- dom/Node.h:
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::title): Fixed the bug.
(WebCore::HitTestResult::innerTextIfTruncated): Fixed a related bug when ShowsToolTipOverTruncatedText
is enabled. Unfortunately, there is no machinery to test this feature yet.
LayoutTests:
Added a regression test for finding a tooltip across shadow boundaries.
- fast/shadow-dom/tooltip-on-composed-tree-expected.txt: Added.
- fast/shadow-dom/tooltip-on-composed-tree.html: Added.
- 4:15 AM Changeset in webkit [201272] by
-
- 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore
Merge r200811 - VideoSinkGStreamer: plug a GstBuffer leak in webkitVideoSinkRequestRender()
https://bugs.webkit.org/show_bug.cgi?id=157617
Reviewed by Darin Adler.
Unref the newly-created GstBuffer object after creating the new GstSample
that's based on it. gst_sample_new() doesn't take the ownership of it.
Also, don't unref the GstBuffer object that's passed in to the
webkitVideoSinkRequestRender() function in case the allocation of the
replacement buffer fails. We don't have any ownership over that buffer
and it's not unreffed anywhere else in this function.
- platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkRequestRender):
- 4:10 AM Changeset in webkit [201271] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.12
Merge r200736 - Absolute positioned element is not placed properly when parent becomes the containing block.
https://bugs.webkit.org/show_bug.cgi?id=157455
<rdar://problem/26212568>
Reviewed by Simon Fraser.
When a container becomes a containing block, we need to check if there are any positioned boxes in its subtree
in order to "re-parent" them. It basically means that we remove them from RenderBlock::positionedDescendants map
and they'll get re-inserted during the next layout correctly.
This patch fixes the case when a container becomes the containing block by setting the transform property and its positioned
child gets misplaced.
Source/WebCore:
Test: fast/block/containing-block-changes.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
(WebCore::RenderBlock::styleWillChange):
- rendering/RenderBlock.h:
LayoutTests:
- fast/block/containing-block-changes-expected.html: Added.
- fast/block/containing-block-changes.html: Added.
- 4:03 AM Changeset in webkit [201270] by
-
- 19 edits1 copy2 moves in releases/WebKitGTK/webkit-2.12
Merge r200677 - [GTK] accessibility/aria-readonly.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98357
Reviewed by Chris Fleizach.
Source/WebCore:
Add support for ATK_STATE_READ_ONLY and expose the value of aria-readonly
as an AtkObject attribute. In order to eliminate duplicate checks, remove
isReadOnly() and just use canSetAttributeValue(), moving all the logic into
AccessibilityNodeObject. Add AccessibilityObject::supportsARIAReadOnly() so
that we can explicitly expose the implicit value for aria-readonly on roles
which support this property. Also add support for ATK_STATE_CHECKABLE, both
because this state was missing and because it serves a similar function to
ATK_STATE_EDITABLE for the purpose of verifying exposure of toggle-able
elements that are not read-only.
Test: accessibility/form-control-value-settable.html
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canSetValueAttribute):
(WebCore::AccessibilityNodeObject::isRequired): Deleted.
(WebCore::AccessibilityNodeObject::supportsRequiredAttribute): Deleted.
- accessibility/AccessibilityNodeObject.h:
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsARIAReadOnly):
(WebCore::AccessibilityObject::ariaReadOnlyValue):
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isUnvisited): Deleted.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::clickPoint):
(WebCore::AccessibilityRenderObject::isOffScreen): Deleted.
(WebCore::AccessibilityRenderObject::anchorElement): Deleted.
(WebCore::AccessibilityRenderObject::internalLinkElement): Deleted.
(WebCore::AccessibilityRenderObject::textChanged): Deleted.
(WebCore::AccessibilityRenderObject::clearChildren): Deleted.
(WebCore::AccessibilityRenderObject::addImageMapChildren): Deleted.
- accessibility/AccessibilityRenderObject.h:
- accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getAttributeSetForAccessibilityObject):
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
(setAtkStateSetFromCoreObject):
(getInterfaceMaskFromObject):
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
Source/WebKit/win:
Call AccessibilityNode::canSetValueAttribute() to determine if STATE_SYSTEM_READONLY
should be added and if editable text should be supported.
- AccessibleBase.cpp:
(AccessibleBase::state):
- AccessibleTextImpl.cpp:
(AccessibleText::deleteText):
(AccessibleText::insertText):
(AccessibleText::cutText):
(AccessibleText::pasteText):
(AccessibleText::replaceText):
Tools:
Add checks to isAttributeSettable() for ATK_STATE_READ_ONLY and the 'readonly'
AtkObject attribute along with ATK_STATE_CHECKABLE for toggle-able elements,
ATK_STATE_SELECTABLE for select elements, and ATK_STATE_FOCUSABLE combined
with range verification for inputs which implement AtkValue. The latter two
additions are admittedly a heuristic workaround for platform accessibility
API differences. But they should be sufficient to facilitate cross-platform
testing of isAttributeSettable() for form elements which lack ARIA attributes.
Bump the minimum version of at-spi2-core and at-spi2-atk
to 2.15.4 (earliest version that supports STATE_READ_ONLY).
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::isAttributeSettable):
- gtk/jhbuild.modules:
LayoutTests:
As part of this change, a new AtkObject attribute and state are being exposed.
Update two tests accordingly. Also unskip the previously-failing test. Lastly,
move the Mac form-control-value-settable.html test to the shared test set,
with a minor tweak to check the platform for several elements' expectations.
- accessibility/form-control-value-settable.html: Moved to shared tests.
- accessibility/gtk/xml-roles-exposed-expected.txt: Updated.
- platform/gtk/TestExpectations: Unskipped previously-failing test.
- platform/gtk/accessibility/form-control-value-settable-expected.txt: Added.
- platform/gtk/accessibility/table-detection-expected.txt: Updated.
- platform/mac/accessibility/form-control-value-settable-expected.txt: Moved.
- 4:03 AM WebKitGTK/2.12.x edited by
- (diff)
- 4:02 AM Changeset in webkit [201269] by
-
- 11 edits2 adds in releases/WebKitGTK/webkit-2.12
Merge r200369 - [ATK] accessibility/content-editable-as-textarea.html fails
https://bugs.webkit.org/show_bug.cgi?id=155353
Reviewed by Darin Adler.
Source/WebCore:
The test was timing out because it expected an AXValueChanged notification.
In ATK, AXValueChanged notifications are made for widgets which implement
the AtkValue interface (sliders, progress bars, etc.). We should be listening
for AXTextChanged instead.
In addition, for contenteditable elements, we should emit the notification on
the element itself. Because we were handling the notification in the same way
as native text controls (where the notification we receive from WebCore is for
StaticTextRole children), we were attempting to emit the notification from
the parent of the contenteditable.
Lastly, ATK's AccessibilityUIElement support had a number of unimplemented
methods that are being used as part of the previously-failing test. Those
methods are now implemented so that the ATK results are much more similar
to those on the Mac.
No new tests needed. The previously-failing test now passes.
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::childrenChanged):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isNonNativeTextControl):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textChanged):
- accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::nodeTextChangePlatformNotification):
Tools:
The test was timing out because it expected an AXValueChanged notification.
In ATK, AXValueChanged notifications are made for widgets which implement
the AtkValue interface (sliders, progress bars, etc.). We should be listening
for AXTextChanged instead. AtkText's text-insert and text-remove have been
added to the AccessibilityNotificationHandler.
Also, ATK's AccessibilityUIElement support had a number of unimplemented
methods that are being used as part of the previously-failing test. Those
methods are now implemented so that the ATK results are much more similar
to those on the Mac.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
(WTR::AccessibilityNotificationHandler::connectAccessibilityCallbacks):
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
LayoutTests:
Updated the test identified in the bug to listen for the appropriate
notification for ATK and created platform-specific expectations.
In addition, set-selected-text-range-contenteditable.html was timing out
due to the use of shouldBecomeEqual() with an assertion that is wrong for
ATK. Modifying the test so that it verifies the result appropriate for
each platform eliminates the timeout.
- accessibility/content-editable-as-textarea.html: Updated.
- accessibility/set-selected-text-range-contenteditable.html: Updated.
- platform/gtk/TestExpectations: Unskipped the failing tests.
- platform/gtk/accessibility/content-editable-as-textarea-expected.txt: Added.
- platform/gtk/accessibility/set-selected-text-range-contenteditable-expected.txt: Added.
- 3:45 AM Changeset in webkit [201268] by
-
- 5 edits2 adds in releases/WebKitGTK/webkit-2.12
Merge r200622 - REGRESSION (r193610): Drop down menu doesn’t expand at allofbach.com
https://bugs.webkit.org/show_bug.cgi?id=157445
Reviewed by Simon Fraser.
When we don't run transitions (becasuse of to/from 'auto' values) we should also not
report the 'from' value and behave as if we finished the transition already.
Source/WebCore:
Test: fast/animation/height-auto-transition-computed-value.html
- page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty): This is a revert of
looping the 'to' value back to the first keyframe when reverse animation is at the start value (last keyframe).
- platform/Length.cpp:
(WebCore::blend):
LayoutTests:
- fast/animation/height-auto-transition-computed-value-expected.html: Added.
- fast/animation/height-auto-transition-computed-value.html: Added.
- imported/blink/transitions/transition-not-interpolable-expected.txt:
- 12:21 AM Changeset in webkit [201267] by
-
- 6 edits in trunk/Source/WebKit2
[GTK] Disk cache: enable speculative revalidation
https://bugs.webkit.org/show_bug.cgi?id=157125
Reviewed by Sergio Villar Senin.
- NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
- UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- config.h: