Timeline
Nov 14, 2016:
- 11:06 PM Changeset in webkit [208728] by
-
- 2 edits in trunk/Source/JavaScriptCore
[ARM] Unreviewed buildfix after r208720.
- assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::storeFence): Stub function copied from MacroAssemblerARMv7.h.
- 10:08 PM Changeset in webkit [208727] by
-
- 68 edits in trunk/Source
Move SecurityOrigin::createFromDatabaseIdentifier to SecurityOriginData
https://bugs.webkit.org/show_bug.cgi?id=164720
Patch by Alex Christensen <achristensen@webkit.org> on 2016-11-14
Reviewed by Brady Eidson.
Source/WebCore:
This is adding to r208558 where we moved databaseIdentifier to SecurityOriginData so we
don't have to use SecurityOrigin in the DatabaseProcess. This is a step towards only using
SecurityOrigin (and the SchemeRegistry) in the WebProcess. SecurityOriginData is for other
processes and IPC. There should be no change in behaviour.
- Modules/webdatabase/Database.cpp:
(WebCore::Database::Database):
(WebCore::Database::securityOrigin):
- Modules/webdatabase/Database.h:
- Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::securityOrigin):
- Modules/webdatabase/DatabaseContext.h:
- Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::tryToOpenDatabaseBackend):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):
- Modules/webdatabase/DatabaseManager.h:
- Modules/webdatabase/DatabaseManagerClient.h:
(WebCore::DatabaseManagerClient::dispatchDidAddNewOrigin):
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
(WebCore::DatabaseTracker::hasEntryForOriginNoLock):
(WebCore::DatabaseTracker::hasEntryForDatabase):
(WebCore::DatabaseTracker::maximumSize):
(WebCore::DatabaseTracker::originPath):
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNamesNoLock):
(WebCore::DatabaseTracker::databaseNames):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::originLockFor):
(WebCore::DatabaseTracker::deleteOriginLockFor):
(WebCore::DatabaseTracker::usage):
(WebCore::DatabaseTracker::quotaNoLock):
(WebCore::DatabaseTracker::quota):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::addDatabase):
(WebCore::DatabaseTracker::deleteDatabasesModifiedSince):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::isDeletingDatabaseOrOriginFor):
(WebCore::DatabaseTracker::recordCreatingDatabase):
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::creatingDatabase):
(WebCore::DatabaseTracker::canDeleteDatabase):
(WebCore::DatabaseTracker::recordDeletingDatabase):
(WebCore::DatabaseTracker::doneDeletingDatabase):
(WebCore::DatabaseTracker::isDeletingDatabase):
(WebCore::DatabaseTracker::canDeleteOrigin):
(WebCore::DatabaseTracker::isDeletingOrigin):
(WebCore::DatabaseTracker::recordDeletingOrigin):
(WebCore::DatabaseTracker::doneDeletingOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFile):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
- Modules/webdatabase/DatabaseTracker.h:
- Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::getDatabaseIdentifier):
- inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::findStorageArea):
- loader/EmptyClients.cpp:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::sessionStorage):
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::maybeCreateFromDatabaseIdentifier): Deleted.
(WebCore::SecurityOrigin::createFromDatabaseIdentifier): Deleted.
- page/SecurityOrigin.h:
- page/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::fromDatabaseIdentifier):
- page/SecurityOriginData.h:
(WebCore::SecurityOriginData::SecurityOriginData):
- storage/StorageArea.h:
- storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
- storage/StorageEventDispatcher.h:
- storage/StorageNamespace.h:
- storage/StorageNamespaceProvider.cpp:
(WebCore::StorageNamespaceProvider::localStorageArea):
Source/WebKit:
- Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::create):
(WebKit::StorageAreaImpl::dispatchStorageEvent):
- Storage/StorageAreaImpl.h:
- Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::storageArea):
(WebKit::StorageNamespaceImpl::clearOriginForDeletion):
- Storage/StorageNamespaceImpl.h:
- Storage/StorageTracker.cpp:
(WebKit::StorageTracker::origins):
(WebKit::StorageTracker::deleteOriginWithIdentifier):
(WebKit::StorageTracker::deleteOrigin):
- Storage/StorageTracker.h:
- Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::clearLocalStorageForOrigin):
- Storage/WebStorageNamespaceProvider.h:
Source/WebKit/mac:
- Storage/WebDatabaseManager.mm:
(-[WebDatabaseManager origins]):
(-[WebDatabaseManager databasesWithOrigin:]):
(-[WebDatabaseManager deleteOrigin:]):
(-[WebDatabaseManager deleteDatabase:withOrigin:]):
- Storage/WebDatabaseManagerClient.h:
- Storage/WebDatabaseManagerClient.mm:
(DidModifyOriginData::dispatchToMainThread):
(DidModifyOriginData::DidModifyOriginData):
(WebDatabaseManagerClient::dispatchDidModifyOrigin):
(WebDatabaseManagerClient::dispatchDidModifyDatabase):
- Storage/WebDatabaseQuotaManager.mm:
(-[WebDatabaseQuotaManager usage]):
(-[WebDatabaseQuotaManager quota]):
(-[WebDatabaseQuotaManager setQuota:]):
- Storage/WebStorageManager.mm:
(-[WebStorageManager origins]):
(-[WebStorageManager deleteOrigin:]):
- Storage/WebStorageTrackerClient.h:
- Storage/WebStorageTrackerClient.mm:
(WebStorageTrackerClient::dispatchDidModifyOrigin):
- WebCoreSupport/WebSecurityOrigin.mm:
(-[WebSecurityOrigin usage]):
(-[WebSecurityOrigin quota]):
(-[WebSecurityOrigin setQuota:]):
Source/WebKit/win:
- WebDatabaseManager.cpp:
(DidModifyOriginData::dispatchToMainThread):
(DidModifyOriginData::DidModifyOriginData):
(WebDatabaseManager::dispatchDidModifyOrigin):
(WebDatabaseManager::dispatchDidModifyDatabase):
- WebDatabaseManager.h:
- WebSecurityOrigin.cpp:
(WebSecurityOrigin::usage):
(WebSecurityOrigin::quota):
(WebSecurityOrigin::setQuota):
Source/WebKit2:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::indexedDatabaseOrigins):
- DatabaseProcess/DatabaseProcess.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
- Shared/API/c/WKSecurityOriginRef.cpp:
(WKSecurityOriginCreateFromDatabaseIdentifier):
- Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::Entry::encode):
(WebKit::WebsiteData::Entry::decode):
- Shared/WebsiteData/WebsiteData.h:
- UIProcess/API/C/WKKeyValueStorageManager.cpp:
(WKKeyValueStorageManagerGetStorageDetailsByOrigin):
- UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):
(WebKit::LocalStorageDatabaseTracker::origins):
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::exceededDatabaseQuota):
(WebKit::WebPageProxy::reachedApplicationCacheOriginQuota):
(WebKit::WebPageProxy::requestGeolocationPermissionForFrame):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::mediaKeyOrigins):
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetDatabaseQuota):
- WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
(WebKit::WebMediaKeyStorageManager::getMediaKeyOrigins):
- WebProcess/Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::create):
(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::securityOrigin):
- WebProcess/Storage/StorageAreaImpl.h:
- WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):
- WebProcess/Storage/StorageAreaMap.h:
(WebKit::StorageAreaMap::securityOrigin):
- WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap):
(WebKit::StorageNamespaceImpl::storageArea):
- WebProcess/Storage/StorageNamespaceImpl.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exceededDatabaseQuota):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::fetchWebsiteData):
- 8:28 PM Changeset in webkit [208726] by
-
- 7 edits2 adds in trunk
[JSC] do not reference AwaitExpression Promises in async function Promise chain
https://bugs.webkit.org/show_bug.cgi?id=164753
Reviewed by Yusuke Suzuki.
JSTests:
- asyncFunctionTests.yaml:
- stress/async-await-long-loop.js: Added.
(shouldBe):
(async.longLoop):
- stress/async-await-throw-loop.js: Added.
(shouldBe):
(async.thrower):
(async.throwLoop):
Source/JavaScriptCore:
Previously, long-running async functions which contained many AwaitExpressions
would allocate and retain references to intermediate Promise objects for eachawait
,
resulting in a memory leak.
To mitigate this leak, a reference to the original Promise (and its resolve and reject
functions) associated with the async function are kept, and passed to each call to
@asyncFunctionResume, while intermediate Promises are discarded. This is done by adding
a new Register to the BytecodeGenerator to hold the PromiseCapability object associated
with an async function wrapper. The capability is used to reject the Promise if an
exception is thrown during parameter initialization, and is used to store the resulting
value once the async function has terminated.
- builtins/AsyncFunctionPrototype.js:
(globalPrivate.asyncFunctionResume):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::promiseCapabilityRegister):
- bytecompiler/NodesCodegen.cpp:
(JSC::FunctionNode::emitBytecode):
- 8:02 PM Changeset in webkit [208725] by
-
- 31 edits12 adds in trunk
Web Inspector: Worker debugging should pause all targets and view call frames in all targets
https://bugs.webkit.org/show_bug.cgi?id=164305
<rdar://problem/29056192>
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
- inspector/InjectedScriptSource.js:
(InjectedScript.prototype._propertyDescriptors):
Accessing proto does a ToThis(...) conversion on the receiver.
In the case of GlobalObjects (such as WorkerGlobalScope when paused)
this would return undefined and throw an exception. We can use
Object.getPrototypeOf to avoid that conversion and possible error.
- inspector/protocol/Debugger.json:
Provide a new way to effectively
resume
+pause
immediately.
This must be implemented on the backend to correctly synchronize
the resuming and pausing.
- inspector/agents/InspectorDebuggerAgent.h:
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::continueUntilNextRunLoop):
Treat this asresume
andpause
. Resume now, and trigger
a pause if the VM becomes idle and we didn't pause before then
(such as hitting a breakpoint after we resumed).
(Inspector::InspectorDebuggerAgent::pause):
(Inspector::InspectorDebuggerAgent::resume):
(Inspector::InspectorDebuggerAgent::schedulePauseOnNextStatement):
(Inspector::InspectorDebuggerAgent::cancelPauseOnNextStatement):
Clean up and correct pause on next statement logic.
(Inspector::InspectorDebuggerAgent::registerIdleHandler):
(Inspector::InspectorDebuggerAgent::willStepAndMayBecomeIdle):
(Inspector::InspectorDebuggerAgent::didBecomeIdle):
(Inspector::InspectorDebuggerAgent::didBecomeIdleAfterStepping): Deleted.
The idle handler may now also trigger a pause in the case
where continueUntilNextRunLoop resumed and wants to pause.
(Inspector::InspectorDebuggerAgent::didPause):
Eliminate the useless didPause. The DOMDebugger was keeping track
of its own state that was worse then the state in DebuggerAgent.
Source/WebCore:
Tests: inspector/debugger/continueUntilNextRunLoop
inspector/worker/debugger-multiple-targets-pause
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postMessageToPageInspector):
Switch from postTask (callOnMainThread) to RunLoop::main().dispatch so
that a paused Worker can send Inspector protocol messages responses
back through the Main Page's InspectorWorkerAgent even if the Page
itself is paused and MainThread callbacks are paused.
- workers/WorkerRunLoop.h:
(WebCore::WorkerRunLoop::isNested):
- workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::runInMode):
When running a nested WorkerRunLoop, running inspector debugger
commands, we should not fire timers on the Worker. Timers would
then be happening out of order and would not be debuggable.
- dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
- inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
(WebCore::InspectorDOMDebuggerAgent::clear):
(WebCore::InspectorDOMDebuggerAgent::didPause): Deleted.
- inspector/InspectorDOMDebuggerAgent.h:
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willHandleEventImpl):
(WebCore::InspectorInstrumentation::didFireTimerImpl):
(WebCore::InspectorInstrumentation::didHandleEventImpl): Deleted.
(WebCore::InspectorInstrumentation::cancelPauseOnNativeEvent): Deleted.
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::willHandleEvent):
(WebCore::InspectorInstrumentation::didHandleEvent): Deleted.
Remove unnecessary code where WebCore is trying to keep track
of pause on next statement but that state is already more
accurately provided by InspectorDebuggerAgent.
Source/WebInspectorUI:
This implements a policy where, when one Target ("Thread") pauses
the frontend triggers a pause in all other Targets. The intended
user experience is "all threads pause" whenever the frontend shows
the debugger paused UI.
DebuggerManager has a few straight forward changes:
- The paused state reflects if any target is paused.
- The Paused Event is fired when going from !paused -> paused. This means when the first target pauses.
- The Resumed Event is fired when going from paused -> !paused. This means only after all targets have resumed.
- The CallFrameDidChange Event now includes the Target that updated.
When a Target first pauses the frontend then immediately pauses all
other Targets. This puts them into a "pausing" state (we display as
Idle) and they will pause as soon as they start executing JavaScript.
When a Target steps the "paused" state isn't changing. So this is
just a CallFramesDidChange update.
When clicking Resume we resume all targets. This is will be the normal,
expected way users resume execution. Note that one of the threads may
then hit a breakpoint and re-pause all threads.
Sometimes when multiple threads are paused you may want to run an
individual thread to completion but keep other threads paused. There
is a context menu on the ThreadTreeElement to resume just that
single thread. It will continue and pause for its next run loop.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Images/Thread.svg: Added.
- UserInterface/Images/gtk/Thread.svg: Added.
- UserInterface/Main.html:
New strings and files.
- UserInterface/Base/Main.js:
(WebInspector.loaded):
- UserInterface/Test/Test.js:
(WebInspector.loaded):
Place the TargetManager first since other managers may want to listen
for TargetAdded / TargetRemoved events.
- UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.get paused):
This is now a computed state.
(WebInspector.DebuggerManager.prototype.pause):
(WebInspector.DebuggerManager.prototype.resume):
Affect all targets.
(WebInspector.DebuggerManager.prototype.stepOver):
(WebInspector.DebuggerManager.prototype.stepInto):
(WebInspector.DebuggerManager.prototype.stepOut):
(WebInspector.DebuggerManager.prototype.reset):
Update to use the paused computed property.
(WebInspector.DebuggerManager.prototype.continueUntilNextRunLoop):
Issue the new Debugger.continueUntilNextRunLoop command
on a given target.
(WebInspector.DebuggerManager.prototype.initializeTarget):
When a new Target is created and we were already paused,
then start that Worker in a paused state.
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
Recover from bad cases where the backend informs the frontend about
internal JavaScript that it shouldn't know about. Legacy backend do
this but also there are corner cases we need to handle.
Dispatch events appropriately now that multiple targets may be paused.
(WebInspector.DebuggerManager.prototype._didResumeInternal):
Dispatch events appropriately now that multiple targets may be paused.
(WebInspector.DebuggerManager.prototype._targetRemoved):
Remove debugger data for targets that go away to avoid leaks.
- UserInterface/Models/DebuggerData.js:
(WebInspector.DebuggerData):
(WebInspector.DebuggerData.prototype.get paused):
(WebInspector.DebuggerData.prototype.get pausing):
Move some more per-Target state into DebuggerData.
(WebInspector.DebuggerData.prototype.pauseIfNeeded):
(WebInspector.DebuggerData.prototype.resumeIfNeeded):
(WebInspector.DebuggerData.prototype.continueUntilNextRunLoop):
These should only be called by DebuggerManager. They correctly
update the state of the DebuggerData for this Target, and also
issue the underlying command to the target.
(WebInspector.DebuggerData.prototype.updateForPause):
(WebInspector.DebuggerData.prototype.updateForResume):
Handle a special case where continueUntilNextRunLoop triggers
an invisible "pause" on the backend that we should mirror.
- UserInterface/Protocol/Target.js:
(WebInspector.MainTarget):
(WebInspector.MainTarget.prototype.get displayName):
(WebInspector.MainTarget.prototype.initialize):
Better display names.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidResume):
(WebInspector.DebuggerSidebarPanel.prototype._updateSingleThreadCallStacks):
(WebInspector.DebuggerSidebarPanel.prototype._selectActiveCallFrameTreeElement):
(WebInspector.DebuggerSidebarPanel.prototype._showSingleThreadCallStacks):
(WebInspector.DebuggerSidebarPanel.prototype._showMultipleThreadCallStacks):
(WebInspector.DebuggerSidebarPanel.prototype._findThreadTreeElementForTarget):
(WebInspector.DebuggerSidebarPanel.prototype._targetAdded):
(WebInspector.DebuggerSidebarPanel.prototype._targetRemoved):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerCallFramesDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerActiveCallFrameDidChange):
The DebuggerSidebar still has a single "Call Stacks" section, but maintains
two TreeOutlines and only shows one at a time. The Single Thread view shows
a flat list of the call frames for the Main Target when it is the only target.
The Multiple Threads view shows a list of Threads and their call frames.
We always keep both up to date, because we may need to swap between them
purely as Targets are added / removed. There is a bit of extra logic to
ensure we select elements properly based only on the visible tree outline.
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
When evaluating in a particular target, "runAfterPendingDispatches"
must wait for all other commands in that particular target to have
completed. So use the target specific version.
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
Gracefully handle a few more TreeElements without a represented object.
- UserInterface/Views/IdleTreeElement.css: Added.
(.details-section.call-stack .idle .icon):
- UserInterface/Views/IdleTreeElement.js: Added.
(WebInspector.IdleTreeElement):
Very basic tree element to encapsulate an Idle call frame with an
empty represented object.
- UserInterface/Views/ThreadTreeElement.css: Added.
(.details-section.call-stack .thread .icon):
- UserInterface/Views/ThreadTreeElement.js: Added.
(WebInspector.ThreadTreeElement):
(WebInspector.ThreadTreeElement.prototype.get target):
(WebInspector.ThreadTreeElement.prototype.refresh):
(WebInspector.ThreadTreeElement.prototype.onattach):
(WebInspector.ThreadTreeElement.prototype.oncontextmenu):
ThreadTreeElement has no represented object, but makes it easy
to refresh a list of CallFrameTreeElements for a given target.
LayoutTests:
- inspector/debugger/continueUntilNextRunLoop-expected.txt: Added.
- inspector/debugger/continueUntilNextRunLoop.html: Added.
New test for new Debugger.continueUntilNextRunLoop protocol method.
- inspector/worker/debugger-multiple-targets-pause-expected.txt: Added.
- inspector/worker/debugger-multiple-targets-pause.html: Added.
- inspector/worker/resources/worker-debugger-thread-1.js: Added.
- inspector/worker/resources/worker-debugger-thread-2.js: Added.
This tests uses a 250ms timeout because we have to have the worker thread
evaluate some work and trigger a pause on other threads before their work
starts. On debug builds, shorter times, like 100ms, would not be enough.
- inspector/worker/debugger-pause-expected.txt:
- inspector/worker/debugger-pause.html:
Now that all threads pause, the first InspectorTest.log evaluates JavaScript on
the page and causes a pause. So make the first log empty to keep the test unchanged.
- inspector/worker/runtime-basic-expected.txt:
- inspector/unit-tests/target-manager-expected.txt:
Updated display name of the mainTarget.
- 6:42 PM Changeset in webkit [208724] by
-
- 10 edits2 adds in trunk
[WebGL2] Teach WebGLRenderingContextBase about new texture internal formats
https://bugs.webkit.org/show_bug.cgi?id=164525
Reviewed by Dean Jackson.
Source/WebCore:
Test: fast/canvas/webgl/webgl2-texture-upload-enums.html
This patch migrates the existing WebGL calls texImage2D(), texSubImage2D(),
and readPixels() to understand the new WebGL 2 texture types. In WebGL1, the
format and the internalFormat were required to be the same, and we had this
assumption baked into many places in these functions. In WebGL 2, those two
values are often different, which means I had to fix all of these assumptions
in our code. Also, rather than have two completely separate parallel
implementations of these functions, a more forward-looking approach is to
have one implementation which has a few checks to isWebGL1() in strategic
places. (This way, bugs only have to be fixed in a single place). Therefore,
this patch deletes the WebGL 2 versions of these functions.
- html/canvas/WebGL2RenderingContext.cpp: These functions are moved to
WebGLRenderingContextBase.
(WebCore::WebGL2RenderingContext::isIntegerFormat):
(WebCore::WebGL2RenderingContext::copyTexImage2D): Deleted.
(WebCore::WebGL2RenderingContext::texSubImage2DBase): Deleted.
(WebCore::WebGL2RenderingContext::texSubImage2DImpl): Deleted.
(WebCore::WebGL2RenderingContext::texSubImage2D): Deleted.
(WebCore::WebGL2RenderingContext::validateTexFuncParameters): Deleted.
(WebCore::WebGL2RenderingContext::validateTexFuncFormatAndType): Deleted.
(WebCore::WebGL2RenderingContext::validateTexFuncData): Deleted.
- html/canvas/WebGL2RenderingContext.h: Moved function implementations to
WebGLRenderingContextBase.
- html/canvas/WebGLRenderingContext.cpp: Ditto.
(WebCore::WebGLRenderingContext::copyTexImage2D): Deleted.
(WebCore::WebGLRenderingContext::texSubImage2DBase): Deleted.
(WebCore::WebGLRenderingContext::texSubImage2DImpl): Deleted.
(WebCore::WebGLRenderingContext::texSubImage2D): Deleted.
(WebCore::WebGLRenderingContext::validateTexFuncParameters): Deleted.
(WebCore::WebGLRenderingContext::validateTexFuncFormatAndType): Deleted.
(WebCore::WebGLRenderingContext::validateTexFuncData): Deleted.
- html/canvas/WebGLRenderingContext.h: Moved function implementations to
WebGLRenderingContextBase.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::validateSettableTexInternalFormat):
Teach about new depth texture formats.
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D): Rename
"internalformat" to "internalFormat". Teach about the distinction between
format and internalFormat. When pre-filling textures with 0s to work around
buggy drivers, we need a new way of knowing which format/type arguments to
pass to texSubImage2D() which are compatible with the texture's internal
format. The implementation of this function was added to GraphicsContext3D
and is called here.
(WebCore::WebGLRenderingContextBase::generateMipmap): Teach about the
distinction between format and internalFormat.
(WebCore::internalFormatTheme): This is used so readPixels() knows what
kind of format/type arguments are compatible with the texture's internal
format.
(WebCore::numberOfComponentsForFormat): Ditto.
(WebCore::numberOfComponentsForInternalFormat): Ditto.
(WebCore::WebGLRenderingContextBase::readPixels): Many more format/type
combinations are required in order to test the various new kinds of
textures.
(WebCore::WebGLRenderingContextBase::texImage2DBase): Rename internalformat
to internalFormat, and teach about the distinction between format and
internalFormat.
(WebCore::WebGLRenderingContextBase::validateTexFunc): Ditto.
(WebCore::WebGLRenderingContextBase::texImage2D): Ditto.
(WebCore::WebGLRenderingContextBase::texSubImage2DImpl): Moved from
WebGLRenderingContext.
(WebCore::WebGLRenderingContextBase::texSubImage2D): Ditto.
(WebCore::WebGLRenderingContextBase::validateArrayBufferType): Ditto.
(WebCore::WebGLRenderingContextBase::validateTexFuncData): Ditto.
(WebCore::WebGLRenderingContextBase::validateTexFuncParameters): Ditto.
(WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType): Ditto.
This is the main function where the new internalFormats are dealt with.
The OpenGL ES spec lists a table of all the internalFormats and all their
compatible format/type values. This table is entered into this function to
check that the combinations are correct.
(WebCore::WebGLRenderingContextBase::texSubImage2DBase): Moved from
WebGLRenderingContext.
(WebCore::WebGLRenderingContextBase::copyTexImage2D): Ditto.
(WebCore::WebGLRenderingContextBase::validateSettableTexFormat): Deleted.
- html/canvas/WebGLRenderingContextBase.h: No longer overrides virtual
functions.
- platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::computeFormatAndTypeParameters): Because
this is inside GraphicsContext3D, it doesn't need any isWebGL1() checks.
Teach about new enums.
(WebCore::GraphicsContext3D::possibleFormatAndTypeForInternalFormat):
Ditto.
(WebCore::GraphicsContext3D::packImageData):
(WebCore::GraphicsContext3D::packPixels): It is possible to try to
copy data from a video into one of these new formats. Currently, we
implement this by swizzling on the CPU. Rather than implementing all the
swizzling functions in this patch (which would make this patch much
larger), simply bail in this case. We will implement this later.
(WebCore::GraphicsContext3D::getClearBitsByFormat): Update.
- platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::hasAlpha): Ditto.
(WebCore::GraphicsContext3D::hasColor): Ditto.
LayoutTests:
Test texture types without drawing. Instead, attach a texture to a framebuffer and
use readPixels() to make sure the texture retains its data.
- fast/canvas/webgl/webgl2-texture-upload-enums-expected.txt: Added.
- fast/canvas/webgl/webgl2-texture-upload-enums.html: Added.
- 6:20 PM Changeset in webkit [208723] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix cloop.
- runtime/JSCellInlines.h:
- 6:19 PM Changeset in webkit [208722] by
-
- 3 edits in trunk/Source/WebCore
Scrolling when zoomed doesn't always use the correct layout viewport
https://bugs.webkit.org/show_bug.cgi?id=164756
Reviewed by Dean Jackson.
The scrolling thread was always using the layout viewport rect pushed onto it and
never computing a new one, so when scrolling around after zooming position:fixed
elements would not get the expected visual viewport behavior.
Fix by having ScrollingTreeFrameScrollingNode updating its notion of the layout viewport
on scrolls.
Not testable because we can't dump the scrolling tree on Mac (yet).
- page/scrolling/ScrollingTreeFrameScrollingNode.h:
(WebCore::ScrollingTreeFrameScrollingNode::setLayoutViewport):
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
- 5:51 PM Changeset in webkit [208721] by
-
- 2 edits in trunk/PerformanceTests
Unreviewed, revert unintended change.
- ES6SampleBench/Air/benchmark.js:
- 5:49 PM Changeset in webkit [208720] by
-
- 72 edits1 add in trunk
The GC should be optionally concurrent and disabled by default
https://bugs.webkit.org/show_bug.cgi?id=164454
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
This started out as a patch to have the GC scan the stack at the end, and then the
outage happened and I decided to pick a more aggresive target: give the GC a concurrent
mode that can be enabled at runtime, and whose only effect is that it turns on the
ResumeTheWorldScope. This gives our GC a really intuitive workflow: by default, the GC
thread is running solo with the world stopped and the parallel markers converged and
waiting. We have a parallel work scope to enable the parallel markers and now we have a
ResumeTheWorldScope that will optionally resume the world and then stop it again.
It's easy to make a concurrent GC that always instantly crashes. I can't promise that
this one won't do that when you run it. I set a specific goal: I wanted to do >10
concurrent GCs in debug mode with generations, optimizing JITs, and parallel marking
disabled.
To reach this milestone, I needed to do a bunch of stuff:
- The mutator needs a separate mark stack for the barrier, since it will mutate this stack concurrently to the collector's slot visitors.
- The use of CellState to indicate whether an object is being scanned the first time or a subsequent time was racy. It fails spectacularly when a barrier is fired at the same time as visitChildren is running or if the barrier runs at the same time as the GC marks the same object. So, I split SlotVisitor's mark stacks. It's now the case that you know why you're being scanned by looking at which stack you came off of.
- All of root marking must be in the collector fixpoint. I renamed markRoots to markToFixpoint. They say concurrency is hard, but the collector looks more intuitive this way. We never gained anything from forcing people to make a choice between scanning something in the fixpoint versus outside of it. Because root scanning is cheap, we can afford to do it repeatedly, which means all root scanning can now do constraint-based marking (like: I'll mark you if that thing is marked).
- JSObject::visitChildren's scanning of the butterfly raced with property additions, indexed storage transitions and resizing, and a bunch of miscellaneous dirty butterfly reshaping functions - like the one that flattens a dictionary and some sneaky ArrayStorage transformations. Many of these can be fixed by using store-store fences in the mutator and load-load fences in the collector. I've adopted the rule that the collector must always see either a butterfly and structure that match or a newer butterfly with an older structure, where their age is just one transition apart. This can be achieved with fences. For the cases where it breaks down, I added a lock to every JSCell. This is a full-fledged WTF lock that we sneak into two available bits in the indexingType. See the WTF ChangeLog for details.
The mutator fencing rules are as follows:
- Store-store fence before and after setting the butterfly.
- Store-store fence before setting structure if you had changed the shape of the butterfly.
- Store-store fence after initializing all fields in an allocation.
- A dictionary Structure can change in strange ways while the GC is trying to scan it. So, JSObject::visitChildren will now grab the object's structure's lock if the object's structure is a dictionary. Dictionary structures are 1:1 with their object, so this does not reduce GC parallelism (super unlikely that the GC will simultaneously scan an object from two threads).
- The GC can blow away a Structure's property table at any time. As a small consolation, it's now holding the Structure's lock when it does so. But there was tons of code in Structure that uses DeferGC to prevent the GC from blowing away the property table. This doesn't work with concurrent GC, since DeferGC only means that the GC won't run its safepoint (i.e. stop-the-world code) in the DeferGC region. It will still do marking and it was the Structure::visitChildren that would delete the table. It turns out that Structure's reliance on the property table not being deleted was the product of code rot. We already had functions that would materialize the table on demand. We were simply making the mistake of saying:
structure->materializePropertyMap();
...
structure->propertyTable()->things
Instead of saying:
PropertyTable* table = structure->ensurePropertyTable();
...
table->things
Switching the code to use the latter idiom allowed me to simplify the code a lot while
fixing the race.
- The LLInt's get_by_val handling was broken because the indexing shape constants were wrong. Once I started putting more things into the IndexingType, that started causing crashes for me. So I fixed LLInt. That turned out to be a lot of work, since that code had rotted in subtle ways.
This is a speed-up in SunSpider, probably because of the LLInt fix. This is neutral on
Octane and Kraken. It's a smaller slow-down on LongSpider, but I think we can ignore
that (we don't view LongSpider as an official benchmark). By default, the concurrent GC
is disabled: in all of the places where it would have resumed the world to run marking
concurrently to the mutator, it will just skip the resume step. When you enable
concurrent GC (--useConcurrentGC=true), it can sometimes run Octane/splay to completion.
It seems to perform quite well: on my machine, it improves both splay-throughput and
splay-latency. It's probably unstable for other programs.
- API/JSVirtualMachine.mm:
(-[JSVirtualMachine isOldExternalObject:]):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::storeFence):
- bytecode/InlineAccess.cpp:
(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::InlineAccess::generateArrayLength):
- bytecode/ObjectAllocationProfile.h:
(JSC::ObjectAllocationProfile::offsetOfInlineCapacity):
(JSC::ObjectAllocationProfile::ObjectAllocationProfile):
(JSC::ObjectAllocationProfile::initialize):
(JSC::ObjectAllocationProfile::inlineCapacity):
(JSC::ObjectAllocationProfile::clear):
- bytecode/PolymorphicAccess.cpp:
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):
- dfg/DFGArrayifySlowPathGenerator.h:
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
- dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
- dfg/DFGOperations.cpp:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::markCodeBlocks):
(JSC::DFG::Plan::rememberCodeBlocks):
- dfg/DFGPlan.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::arrayify):
(JSC::DFG::SpeculativeJIT::compileMakeRope):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileCreateActivation):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileNewStringObject):
(JSC::DFG::SpeculativeJIT::compileNewTypedArray):
(JSC::DFG::SpeculativeJIT::compileStoreBarrier):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
- dfg/DFGTierUpCheckInjectionPhase.cpp:
(JSC::DFG::TierUpCheckInjectionPhase::run):
- dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::markCodeBlocks):
(JSC::DFG::Worklist::rememberCodeBlocks):
(JSC::DFG::markCodeBlocks):
(JSC::DFG::completeAllPlansForVM):
(JSC::DFG::rememberCodeBlocks):
- dfg/DFGWorklist.h:
- ftl/FTLAbstractHeapRepository.cpp:
(JSC::FTL::AbstractHeapRepository::AbstractHeapRepository):
(JSC::FTL::AbstractHeapRepository::computeRangesAndDecorateInstructions):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLJITCode.cpp:
(JSC::FTL::JITCode::~JITCode):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compilePutStructure):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):
(JSC::FTL::DFG::LowerDFGToB3::compileNewObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArray):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayBuffer):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiPutByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::splatWords):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::reallocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::allocateObject):
(JSC::FTL::DFG::LowerDFGToB3::isArrayType):
(JSC::FTL::DFG::LowerDFGToB3::emitStoreBarrier):
(JSC::FTL::DFG::LowerDFGToB3::mutatorFence):
(JSC::FTL::DFG::LowerDFGToB3::setButterfly):
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
- ftl/FTLOutput.cpp:
(JSC::FTL::Output::signExt32ToPtr):
(JSC::FTL::Output::fence):
- ftl/FTLOutput.h:
- heap/CellState.h:
- heap/GCSegmentedArray.h:
- heap/Heap.cpp:
(JSC::Heap::ResumeTheWorldScope::ResumeTheWorldScope):
(JSC::Heap::ResumeTheWorldScope::~ResumeTheWorldScope):
(JSC::Heap::Heap):
(JSC::Heap::~Heap):
(JSC::Heap::harvestWeakReferences):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::completeAllJITPlans):
(JSC::Heap::markToFixpoint):
(JSC::Heap::gatherStackRoots):
(JSC::Heap::beginMarking):
(JSC::Heap::visitConservativeRoots):
(JSC::Heap::visitCompilerWorklistWeakReferences):
(JSC::Heap::updateObjectCounts):
(JSC::Heap::endMarking):
(JSC::Heap::addToRememberedSet):
(JSC::Heap::collectInThread):
(JSC::Heap::stopTheWorld):
(JSC::Heap::resumeTheWorld):
(JSC::Heap::setGCDidJIT):
(JSC::Heap::setNeedFinalize):
(JSC::Heap::setMutatorWaiting):
(JSC::Heap::clearMutatorWaiting):
(JSC::Heap::finalize):
(JSC::Heap::flushWriteBarrierBuffer):
(JSC::Heap::writeBarrierSlowPath):
(JSC::Heap::canCollect):
(JSC::Heap::reportExtraMemoryVisited):
(JSC::Heap::reportExternalMemoryVisited):
(JSC::Heap::notifyIsSafeToCollect):
(JSC::Heap::markRoots): Deleted.
(JSC::Heap::visitExternalRememberedSet): Deleted.
(JSC::Heap::visitSmallStrings): Deleted.
(JSC::Heap::visitProtectedObjects): Deleted.
(JSC::Heap::visitArgumentBuffers): Deleted.
(JSC::Heap::visitException): Deleted.
(JSC::Heap::visitStrongHandles): Deleted.
(JSC::Heap::visitHandleStack): Deleted.
(JSC::Heap::visitSamplingProfiler): Deleted.
(JSC::Heap::visitTypeProfiler): Deleted.
(JSC::Heap::visitShadowChicken): Deleted.
(JSC::Heap::traceCodeBlocksAndJITStubRoutines): Deleted.
(JSC::Heap::visitWeakHandles): Deleted.
(JSC::Heap::flushOldStructureIDTables): Deleted.
(JSC::Heap::stopAllocation): Deleted.
- heap/Heap.h:
(JSC::Heap::collectorSlotVisitor):
(JSC::Heap::mutatorMarkStack):
(JSC::Heap::mutatorShouldBeFenced):
(JSC::Heap::addressOfMutatorShouldBeFenced):
(JSC::Heap::slotVisitor): Deleted.
(JSC::Heap::notifyIsSafeToCollect): Deleted.
(JSC::Heap::barrierShouldBeFenced): Deleted.
(JSC::Heap::addressOfBarrierShouldBeFenced): Deleted.
- heap/MarkStack.cpp:
(JSC::MarkStackArray::transferTo):
- heap/MarkStack.h:
- heap/MarkedAllocator.cpp:
(JSC::MarkedAllocator::tryAllocateIn):
- heap/MarkedBlock.cpp:
(JSC::MarkedBlock::MarkedBlock):
(JSC::MarkedBlock::Handle::specializedSweep):
(JSC::MarkedBlock::Handle::sweep):
(JSC::MarkedBlock::Handle::sweepHelperSelectMarksMode):
(JSC::MarkedBlock::Handle::stopAllocating):
(JSC::MarkedBlock::Handle::resumeAllocating):
(JSC::MarkedBlock::aboutToMarkSlow):
(JSC::MarkedBlock::Handle::didConsumeFreeList):
(JSC::SetNewlyAllocatedFunctor::SetNewlyAllocatedFunctor): Deleted.
(JSC::SetNewlyAllocatedFunctor::operator()): Deleted.
- heap/MarkedBlock.h:
- heap/MarkedSpace.cpp:
(JSC::MarkedSpace::resumeAllocating):
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::SlotVisitor):
(JSC::SlotVisitor::~SlotVisitor):
(JSC::SlotVisitor::reset):
(JSC::SlotVisitor::clearMarkStacks):
(JSC::SlotVisitor::appendJSCellOrAuxiliary):
(JSC::SlotVisitor::setMarkedAndAppendToMarkStack):
(JSC::SlotVisitor::appendToMarkStack):
(JSC::SlotVisitor::appendToMutatorMarkStack):
(JSC::SlotVisitor::visitChildren):
(JSC::SlotVisitor::donateKnownParallel):
(JSC::SlotVisitor::drain):
(JSC::SlotVisitor::drainFromShared):
(JSC::SlotVisitor::containsOpaqueRoot):
(JSC::SlotVisitor::donateAndDrain):
(JSC::SlotVisitor::mergeOpaqueRoots):
(JSC::SlotVisitor::dump):
(JSC::SlotVisitor::clearMarkStack): Deleted.
(JSC::SlotVisitor::opaqueRootCount): Deleted.
- heap/SlotVisitor.h:
(JSC::SlotVisitor::collectorMarkStack):
(JSC::SlotVisitor::mutatorMarkStack):
(JSC::SlotVisitor::isEmpty):
(JSC::SlotVisitor::bytesVisited):
(JSC::SlotVisitor::markStack): Deleted.
(JSC::SlotVisitor::bytesCopied): Deleted.
- heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::reportExtraMemoryVisited):
(JSC::SlotVisitor::reportExternalMemoryVisited):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
(JSC::AssemblyHelpers::barrierStoreLoadFence):
(JSC::AssemblyHelpers::mutatorFence):
(JSC::AssemblyHelpers::storeButterfly):
(JSC::AssemblyHelpers::jumpIfMutatorFenceNotNeeded):
(JSC::AssemblyHelpers::emitInitializeInlineStorage):
(JSC::AssemblyHelpers::emitInitializeOutOfLineStorage):
(JSC::AssemblyHelpers::jumpIfBarrierStoreLoadFenceNotNeeded): Deleted.
- jit/JITInlines.h:
(JSC::JIT::emitArrayProfilingSiteWithCell):
- jit/JITOperations.cpp:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emit_op_put_to_arguments):
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/ButterflyInlines.h:
(JSC::Butterfly::create):
(JSC::Butterfly::createOrGrowPropertyStorage):
- runtime/ConcurrentJITLock.h:
(JSC::GCSafeConcurrentJITLocker::NoDefer::NoDefer): Deleted.
- runtime/GenericArgumentsInlines.h:
(JSC::GenericArguments<Type>::getOwnPropertySlotByIndex):
(JSC::GenericArguments<Type>::putByIndex):
- runtime/IndexingType.h:
- runtime/JSArray.cpp:
(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::unshiftCountWithArrayStorage):
- runtime/JSCell.h:
(JSC::JSCell::InternalLocker::InternalLocker):
(JSC::JSCell::InternalLocker::~InternalLocker):
(JSC::JSCell::atomicCompareExchangeCellStateWeakRelaxed):
(JSC::JSCell::atomicCompareExchangeCellStateStrong):
(JSC::JSCell::indexingTypeAndMiscOffset):
(JSC::JSCell::indexingTypeOffset): Deleted.
- runtime/JSCellInlines.h:
(JSC::JSCell::JSCell):
(JSC::JSCell::finishCreation):
(JSC::JSCell::indexingTypeAndMisc):
(JSC::JSCell::indexingType):
(JSC::JSCell::setStructure):
(JSC::JSCell::callDestructor):
(JSC::JSCell::lockInternalLock):
(JSC::JSCell::unlockInternalLock):
- runtime/JSObject.cpp:
(JSC::JSObject::visitButterfly):
(JSC::JSObject::visitChildren):
(JSC::JSFinalObject::visitChildren):
(JSC::JSObject::enterDictionaryIndexingModeWhenArrayStorageAlreadyExists):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::defineOwnIndexedProperty):
(JSC::JSObject::increaseVectorLength):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::reallocateAndShrinkButterfly):
(JSC::JSObject::allocateMoreOutOfLineStorage):
(JSC::JSObject::shiftButterflyAfterFlattening):
(JSC::JSObject::growOutOfLineStorage): Deleted.
- runtime/JSObject.h:
(JSC::JSFinalObject::JSFinalObject):
(JSC::JSObject::setButterfly):
(JSC::JSObject::getOwnNonIndexPropertySlot):
(JSC::JSObject::fillCustomGetterPropertySlot):
(JSC::JSObject::getOwnPropertySlot):
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::setStructureAndButterfly): Deleted.
(JSC::JSObject::setButterflyWithoutChangingStructure): Deleted.
(JSC::JSObject::putDirectInternal): Deleted.
(JSC::JSObject::putDirectWithoutTransition): Deleted.
- runtime/JSObjectInlines.h:
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):
(JSC::JSObject::putDirectWithoutTransition):
(JSC::JSObject::putDirectInternal):
- runtime/Options.h:
- runtime/SparseArrayValueMap.h:
- runtime/Structure.cpp:
(JSC::Structure::dumpStatistics):
(JSC::Structure::findStructuresAndMapForMaterialization):
(JSC::Structure::materializePropertyTable):
(JSC::Structure::addNewPropertyTransition):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::isSealed):
(JSC::Structure::isFrozen):
(JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::pin):
(JSC::Structure::pinForCaching):
(JSC::Structure::willStoreValueSlow):
(JSC::Structure::copyPropertyTableForPinning):
(JSC::Structure::add):
(JSC::Structure::remove):
(JSC::Structure::getPropertyNamesFromStructure):
(JSC::Structure::visitChildren):
(JSC::Structure::materializePropertyMap): Deleted.
(JSC::Structure::addPropertyWithoutTransition): Deleted.
(JSC::Structure::removePropertyWithoutTransition): Deleted.
(JSC::Structure::copyPropertyTable): Deleted.
(JSC::Structure::createPropertyMap): Deleted.
(JSC::PropertyTable::checkConsistency): Deleted.
(JSC::Structure::checkConsistency): Deleted.
- runtime/Structure.h:
- runtime/StructureIDBlob.h:
(JSC::StructureIDBlob::StructureIDBlob):
(JSC::StructureIDBlob::indexingTypeIncludingHistory):
(JSC::StructureIDBlob::setIndexingTypeIncludingHistory):
(JSC::StructureIDBlob::indexingTypeIncludingHistoryOffset):
(JSC::StructureIDBlob::indexingType): Deleted.
(JSC::StructureIDBlob::setIndexingType): Deleted.
(JSC::StructureIDBlob::indexingTypeOffset): Deleted.
- runtime/StructureInlines.h:
(JSC::Structure::get):
(JSC::Structure::checkOffsetConsistency):
(JSC::Structure::checkConsistency):
(JSC::Structure::add):
(JSC::Structure::remove):
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::removePropertyWithoutTransition):
(JSC::Structure::setPropertyTable):
(JSC::Structure::putWillGrowOutOfLineStorage): Deleted.
(JSC::Structure::propertyTable): Deleted.
(JSC::Structure::suggestedNewOutOfLineStorageCapacity): Deleted.
Source/WTF:
The reason why I went to such great pains to make WTF::Lock fit in two bits is that I
knew that I would eventually need to stuff one into some miscellaneous bits of the
JSCell header. That time has come, because the concurrent GC has numerous race
conditions in visitChildren that can be trivially fixed if each object just has an
internal lock. Some cell types might use it to simply protect their entire visitChildren
function and anything that mutates the fields it touches, while other cell types might
use it as a "lock of last resort" to handle corner cases of an otherwise wait-free or
lock-free algorithm. Right now, it's used to protect certain transformations involving
indexing storage.
To make this happen, I factored the WTF::Lock algorithm into a LockAlgorithm struct that
is templatized on lock type (uint8_t for WTF::Lock), the isHeldBit value (1 for
WTF::Lock), and the hasParkedBit value (2 for WTF::Lock). This could have been done as
a templatized Lock class that basically contains Atomic<LockType>. You could then make
any field into a lock by bitwise_casting it to TemplateLock<field type, bit1, bit2>. But
this felt too dirty, so instead, LockAlgorithm has static methods that take
Atomic<LockType>& as their first argument. I think that this makes it more natural to
project a LockAlgorithm onto an existing Atomic<> field. Sadly, some places have to cast
their non-Atomic<> field to Atomic<> in order for this to work. Like so many other things
we do, this just shows that the C++ style of labeling fields that are subject to atomic
ops as atomic is counterproductive. Maybe some day I'll change LockAlgorithm to use our
other Atomics API, which does not require Atomic<>.
WTF::Lock now uses LockAlgorithm. The slow paths are still outlined. I don't feel too
bad about the LockAlgorithm.h header being included in so many places because we change
that algorithm so infrequently.
Also, I added a hasElapsed(time) function. This function makes it so much more natural
to write timeslicing code, which the concurrent GC has to do a lot of.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/ListDump.h:
- wtf/Lock.cpp:
(WTF::LockBase::lockSlow):
(WTF::LockBase::unlockSlow):
(WTF::LockBase::unlockFairlySlow):
(WTF::LockBase::unlockSlowImpl): Deleted.
- wtf/Lock.h:
(WTF::LockBase::lock):
(WTF::LockBase::tryLock):
(WTF::LockBase::unlock):
(WTF::LockBase::unlockFairly):
(WTF::LockBase::isHeld):
(): Deleted.
- wtf/LockAlgorithm.h: Added.
(WTF::LockAlgorithm::lockFastAssumingZero):
(WTF::LockAlgorithm::lockFast):
(WTF::LockAlgorithm::lock):
(WTF::LockAlgorithm::tryLock):
(WTF::LockAlgorithm::unlockFastAssumingZero):
(WTF::LockAlgorithm::unlockFast):
(WTF::LockAlgorithm::unlock):
(WTF::LockAlgorithm::unlockFairly):
(WTF::LockAlgorithm::isLocked):
(WTF::LockAlgorithm::lockSlow):
(WTF::LockAlgorithm::unlockSlow):
- wtf/TimeWithDynamicClockType.cpp:
(WTF::hasElapsed):
- wtf/TimeWithDynamicClockType.h:
- 5:09 PM Changeset in webkit [208719] by
-
- 6 edits1 add in trunk
Add Wasm select
https://bugs.webkit.org/show_bug.cgi?id=164743
Reviewed by Saam Barati.
JSTests:
- wasm/function-tests/select.js: Added.
Source/JavaScriptCore:
Also, this patch fixes an issue with the jsc.cpp test harness where negative numbers would be sign extended
when they shouldn't be.
- jsc.cpp:
(box):
- wasm/WasmB3IRGenerator.cpp:
- wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseExpression):
- wasm/WasmValidate.cpp:
(JSC::Wasm::Validate::addSelect):
- 5:06 PM Changeset in webkit [208718] by
-
- 5 edits in branches/safari-602-branch/Source
Versioning.
- 4:35 PM Changeset in webkit [208717] by
-
- 1 copy in tags/Safari-602.3.12
New tag.
- 4:27 PM Changeset in webkit [208716] by
-
- 7 edits4 adds in trunk
document.createElementNS doesn't construct a custom element
https://bugs.webkit.org/show_bug.cgi?id=164700
Reviewed by Darin Adler.
Source/WebCore:
Fixed the bug that document.createElementNS doesn't create a custom element or enqueue it to upgrade.
Also made constructCustomElementSynchronously not call the custom element constructors with the element's
local name as the first argument, which was a non-standard behavior added during prototyping.
Test: fast/custom-elements/DOMImplementation-createDocument.html
fast/custom-elements/document-createElementNS.html
- bindings/js/JSCustomElementInterface.cpp:
(WebCore::JSCustomElementInterface::constructElementWithFallback): Added a variant that takes QualifiedName
instead of AtomicString.
(WebCore::constructCustomElementSynchronously): Don't add the local name as an argument.
- bindings/js/JSCustomElementInterface.h:
- dom/CustomElementRegistry.cpp:
(WebCore::CustomElementRegistry::findInterface): Just find the interface based on the local name after
checking the namespace URI to be that of the XHTML. We need to ignore the prefix for the purpose of looking
up the custom element definition as specified in the latest HTML specification:
https://html.spec.whatwg.org/multipage/scripting.html#look-up-a-custom-element-definition
- dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument): Added an assertion to make sure we don't invoke scripts while
constructing the document element.
- dom/Document.cpp:
(WebCore::createUpgradeCandidateElement): Made this function create a HTMLUnknownElement instead of returning
nullptr to share more code. Also added a variant which takes QualifiedName.
(WebCore::isValidHTMLElementName): Added; helpers for createHTMLElementWithNameValidation to call isValidName
on Document with the right argument.
(WebCore::createHTMLElementWithNameValidation): Templatized the function to be called with either AtomicString
or QualifiedName for the name.
(WebCore::createFallbackHTMLElement):
(WebCore::Document::createElementNS): Call createHTMLElementWithNameValidation to create a custom element if
possible. This function ends up re-validating the element name before creating a HTMLUnknownElement but that
shouldn't be a common scenario to matter. In fact, createElementNS is a rarely used API.
LayoutTests:
Added W3C style testharness.js tests for createElementNS and DOMImplementation's createDocument.
- fast/custom-elements/DOMImplementation-createDocument-expected.txt: Added.
- fast/custom-elements/DOMImplementation-createDocument.html: Added.
- fast/custom-elements/document-createElementNS-expected.txt: Added.
- fast/custom-elements/document-createElementNS.html: Added.
- 4:19 PM Changeset in webkit [208715] by
-
- 5 edits in branches/safari-602-branch
Merge r208691. rdar://problem/29250304
- 4:19 PM Changeset in webkit [208714] by
-
- 5 edits1 add in branches/safari-602-branch
Merge r208655. rdar://problem/29250302
- 4:10 PM Changeset in webkit [208713] by
-
- 2 edits in trunk/Source/WTF
Expected: add missing
inline
https://bugs.webkit.org/show_bug.cgi?id=164735
Reviewed by Yusuke Suzuki.
Free functions and full template specializations need to be
inline
, or in a .cpp file, otherwise each .o creates a duplicate
symbol which makes the linker very sad.
- wtf/Expected.h:
(WTF::ExpectedDetail::Throw):
(WTF::makeExpected):
- 2:57 PM Changeset in webkit [208712] by
-
- 21 edits4 adds in trunk/Source/JavaScriptCore
JSC should distinguish between local and global eval
https://bugs.webkit.org/show_bug.cgi?id=164628
Reviewed by Saam Barati.
Local use of the 'eval' keyword and invocation of the global window.eval
function are distinct operations in JavaScript.
This patch splits out LocalEvalExecutable vs GlobalEvalExecutable in
order to help distinguish these operations in code.
Our code used to do some silly things for lack of distinguishing these
cases. For example, it would double cache local eval in CodeCache and
EvalCodeCache. This made CodeCache seem more complicated than it really
was.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj: Added some files.
- bytecode/CodeBlock.h:
- bytecode/EvalCodeCache.h:
(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::set):
(JSC::EvalCodeCache::getSlow): Deleted. Moved code generation out of
the cache to avoid tight coupling. Now the cache just caches.
- bytecode/UnlinkedEvalCodeBlock.h:
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
- bytecode/UnlinkedModuleProgramCodeBlock.h:
- bytecode/UnlinkedProgramCodeBlock.h:
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluateWithScopeExtension): Updated for interface
changes.
- interpreter/Interpreter.cpp:
(JSC::eval): Moved code generation here so the cache didn't need to build
it in.
- llint/LLIntOffsetsExtractor.cpp:
- runtime/CodeCache.cpp:
(JSC::CodeCache::getUnlinkedGlobalCodeBlock): No need to check for TDZ
variables any more. We only cache global programs, and global variable
access always does TDZ checks.
(JSC::CodeCache::getUnlinkedProgramCodeBlock):
(JSC::CodeCache::getUnlinkedGlobalEvalCodeBlock):
(JSC::CodeCache::getUnlinkedModuleProgramCodeBlock):
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):
(JSC::CodeCache::CodeCache): Deleted.
(JSC::CodeCache::~CodeCache): Deleted.
(JSC::CodeCache::getGlobalCodeBlock): Deleted.
(JSC::CodeCache::getProgramCodeBlock): Deleted.
(JSC::CodeCache::getEvalCodeBlock): Deleted.
(JSC::CodeCache::getModuleProgramCodeBlock): Deleted.
(JSC::CodeCache::getFunctionExecutableFromGlobalCode): Deleted.
- runtime/CodeCache.h:
(JSC::CodeCache::clear):
(JSC::generateUnlinkedCodeBlock): Moved unlinked code block creation
out of the CodeCache class and into a stand-alone function because
we need it for local eval, which does not live in CodeCache.
- runtime/EvalExecutable.cpp:
(JSC::EvalExecutable::create): Deleted.
- runtime/EvalExecutable.h:
(): Deleted.
- runtime/GlobalEvalExecutable.cpp: Added.
(JSC::GlobalEvalExecutable::create):
(JSC::GlobalEvalExecutable::GlobalEvalExecutable):
- runtime/GlobalEvalExecutable.h: Added.
- runtime/LocalEvalExecutable.cpp: Added.
(JSC::LocalEvalExecutable::create):
(JSC::LocalEvalExecutable::LocalEvalExecutable):
- runtime/LocalEvalExecutable.h: Added. Split out Local vs Global
EvalExecutable classes to distinguish these operations in code. The key
difference is that LocalEvalExecutable does not live in the CodeCache
and only lives in the EvalCodeCache.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createLocalEvalCodeBlock):
(JSC::JSGlobalObject::createGlobalEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock): Deleted.
- runtime/JSGlobalObject.h:
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncEval):
- runtime/JSScope.cpp:
(JSC::JSScope::collectClosureVariablesUnderTDZ):
(JSC::JSScope::collectVariablesUnderTDZ): Deleted. We don't include
global lexical variables in our concept of TDZ scopes anymore. Global
variable access always does TDZ checks unconditionally. So, only closure
scope accesses give specific consideration to TDZ checks.
- runtime/JSScope.h:
- 2:54 PM Changeset in webkit [208711] by
-
- 5 edits in trunk/Source/WebCore
Avoid copying attributes vector when constructing a CustomElement in HTMLTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=164734
Reviewed by Ryosuke Niwa.
Avoid copying attributes vector when constructing a CustomElement in HTMLTreeBuilder.
- html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertCustomElement):
- html/parser/HTMLConstructionSite.h:
- html/parser/HTMLStackItem.h:
(WebCore::HTMLStackItem::HTMLStackItem):
(WebCore::HTMLStackItem::create):
- html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::didCreateCustomOrCallbackElement):
- 2:20 PM Changeset in webkit [208710] by
-
- 3 edits in trunk/Source/WebCore
Inline QualifiedName::toString() method
https://bugs.webkit.org/show_bug.cgi?id=164726
Reviewed by Ryosuke Niwa.
Inline QualifiedName::toString() method to limit performance impact of r208674.
- dom/QualifiedName.cpp:
(WebCore::QualifiedName::toString): Deleted.
- dom/QualifiedName.h:
(WebCore::QualifiedName::toString):
- 2:18 PM Changeset in webkit [208709] by
-
- 2 edits in trunk/Source/WTF
Build fix after r208690.
https://bugs.webkit.org/show_bug.cgi?id=164681
Not reviewed.
- wtf/FastMalloc.h:
- 1:44 PM Changeset in webkit [208708] by
-
- 2 edits in trunk/Source/WebKit2
[Mac][iOS][WK2] Tighten permissions to change CapsLock delay
https://bugs.webkit.org/show_bug.cgi?id=164725
<rdar://problem/28970910>
Reviewed by Alexey Proskuryakov.
- PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: Limit access
to the IOKit connection that actually needs it.
- 1:38 PM Changeset in webkit [208707] by
-
- 3 edits in trunk/Source/WebKit2
Unreviewed sandbox fix after r208702
Correct version check to avoid breaking users in Safari Technology Preview
or WebKit nightlies.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 1:37 PM Changeset in webkit [208706] by
-
- 2 edits in trunk/Source/WebCore
[CSS Parser] Support the font-synthesis property
https://bugs.webkit.org/show_bug.cgi?id=164728
Reviewed by Dean Jackson.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFontSynthesis):
(WebCore::CSSPropertyParser::parseSingleValue):
- 1:18 PM Changeset in webkit [208705] by
-
- 116 edits7 adds2 deletes in trunk/Source/WebCore
[SVG] Moving more special casing of SVG out of the bindings - SVGNumber/SVGPoint/SVGRect/SVGLength/SVGTransform/SVGMatrix
https://bugs.webkit.org/show_bug.cgi?id=164696
Reviewed by Darin Adler.
- Make SVGNumber, SVGPoint, SVGRect, SVGLength, SVGTransform and SVGMatrix real classes and stop special casing them in the bindings generator. This removes the remaining non-list SVG specializations from the bindings generator.
- Renamed existing SVGLength, SVGTransform and SVGMatrix to SVGLengthValue, SVGTransformValue and SVGMatrixValue. There are no SVNumberValue, SVGPointValue and SVGRectValue classes, as float, FloatPoint and FloatRect can be used directly. Going forward, we can get rid of SVGMatrixValue as well, and just use AffineTransform, but that will be done in a separate change.
- WebCore.xcodeproj/project.pbxproj:
- CMakeLists.txt:
Add new files.
- bindings/js/JSSVGLengthCustom.cpp:
(WebCore::JSSVGLength::value): Deleted.
(WebCore::JSSVGLength::setValue): Deleted.
(WebCore::JSSVGLength::convertToSpecifiedUnits): Deleted.
Removed. This can now be generated completely.
- bindings/scripts/CodeGenerator.pm:
(SkipIncludeHeader):
Remove special casing of SVGNumber. A header for it now exists.
(GetSVGWrappedTypeNeedingTearOff):
Remove special casing SVGPropertyTearOffs. None remain.
(ShouldPassWrapperByReference):
Allow all tear off types to be passed by reference.
(IsSVGTypeWithWritablePropertiesNeedingTearOff):
Remove now unused function.
- bindings/scripts/CodeGeneratorJS.pm:
(GetImplClassName):
(GenerateHeader):
(GenerateImplementation):
(GenerateParametersCheck):
(GenerateImplementationFunctionCall):
(GetSVGPropertyTypes):
(NativeToJSValue):
(GenerateConstructorDefinition):
Remove non-property tear off specific code.
(IsNativeType):
Remove unused function.
- css/CSSPropertyNames.in:
- css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::strokeDashArrayToCSSValueList):
(WebCore::ComputedStyleExtractor::svgPropertyValue):
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertSVGLengthValue):
(WebCore::StyleBuilderConverter::convertSVGLengthVector):
(WebCore::StyleBuilderConverter::convertStrokeDashArray):
- css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyValueBaselineShift):
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::strokeDashArray):
(WebCore::RenderStyle::setStrokeDashArray):
(WebCore::RenderStyle::baselineShiftValue):
(WebCore::RenderStyle::setBaselineShiftValue):
(WebCore::RenderStyle::kerning):
(WebCore::RenderStyle::setKerning):
- rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialStrokeDashArray):
(WebCore::SVGRenderStyle::initialBaselineShiftValue):
(WebCore::SVGRenderStyle::initialKerning):
(WebCore::SVGRenderStyle::setStrokeDashArray):
(WebCore::SVGRenderStyle::setKerning):
(WebCore::SVGRenderStyle::setBaselineShiftValue):
(WebCore::SVGRenderStyle::strokeDashArray):
(WebCore::SVGRenderStyle::kerning):
(WebCore::SVGRenderStyle::baselineShiftValue):
- rendering/style/SVGRenderStyleDefs.h:
Update for name change of SVGLength to SVGLengthValue.
- rendering/svg/RenderSVGImage.cpp:
Remove unused include.
- html/canvas/DOMPath.h:
Add an overload that takes a DOMMatrix, now that it is distinct from
AffineTransform.
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform):
Update for name change of SVGPoint to FloatPoint.
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::applyStrokeStyleToContext):
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeStyle):
- rendering/svg/SVGTextLayoutEngineBaseline.cpp:
(WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift):
- rendering/svg/SVGTextLayoutEngineSpacing.cpp:
(WebCore::SVGTextLayoutEngineSpacing::calculateCSSKerningAndSpacing):
Update for name change of SVGLength to SVGLengthValue.
- rendering/svg/SVGTextQuery.cpp:
(WebCore::SVGTextQuery::startPositionOfCharacter):
(WebCore::SVGTextQuery::endPositionOfCharacter):
(WebCore::SVGTextQuery::characterNumberAtPosition):
- rendering/svg/SVGTextQuery.h:
Update for name change of SVGPoint to FloatPoint.
- svg/LinearGradientAttributes.h:
- svg/PatternAttributes.h:
- svg/RadialGradientAttributes.h:
Update for name change of SVGLength to SVGLengthValue.
- svg/SVGAllInOne.cpp:
Remove SVGLength.cpp
- svg/SVGAngle.h:
Add missing newline.
- svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
(WebCore::SVGAnimateTransformElement::parseAttribute):
- svg/SVGAnimateTransformElement.h:
Update for name change of SVGTransform to SVGTransformValue.
- svg/SVGAnimatedLength.cpp:
(WebCore::SVGAnimatedLengthAnimator::SVGAnimatedLengthAnimator):
(WebCore::SVGAnimatedLengthAnimator::constructFromString):
(WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
(WebCore::parseLengthFromString):
(WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
(WebCore::SVGAnimatedLengthAnimator::calculateDistance):
- svg/SVGAnimatedLength.h:
- svg/SVGAnimatedLengthList.cpp:
(WebCore::SVGAnimatedLengthListAnimator::SVGAnimatedLengthListAnimator):
(WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
(WebCore::parseLengthListFromString):
(WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
- svg/SVGAnimatedLengthList.h:
Update for name change of SVGLength to SVGLengthValue.
- svg/SVGAnimatedNumberList.h:
Include the new SVGNumber.h and switch typedef to type alias.
- svg/SVGAnimatedPointList.cpp:
Add now necessary include of SVGPoint.h
- svg/SVGAnimatedRect.h:
Update for name change of SVGPropertyTearOff<FloatRect> to SVGRect.
- svg/SVGAnimatedTransformList.cpp:
(WebCore::SVGAnimatedTransformListAnimator::SVGAnimatedTransformListAnimator):
(WebCore::SVGAnimatedTransformListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
(WebCore::SVGAnimatedTransformListAnimator::calculateDistance):
Update for name change of SVGTransform to SVGTransformValue.
- svg/SVGAnimatedType.cpp:
(WebCore::SVGAnimatedType::createLength):
(WebCore::SVGAnimatedType::setValueAsString):
- svg/SVGAnimatedType.h:
(WebCore::SVGAnimatedType::length):
- svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::parseAttribute):
- svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::parseAttribute):
- svg/SVGDocument.cpp:
(WebCore::SVGDocument::startPan):
- svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::parseAttribute):
- svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::parseAttribute):
- svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
- svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::parseAttribute):
- svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::parseAttribute):
- svg/SVGLengthContext.cpp:
(WebCore::SVGLengthContext::resolveRectangle):
(WebCore::SVGLengthContext::resolvePoint):
(WebCore::SVGLengthContext::resolveLength):
- svg/SVGLengthContext.h:
- svg/SVGLengthList.cpp:
(WebCore::SVGLengthList::parse):
- svg/SVGLengthList.h:
(WebCore::SVGPropertyTraits<SVGLengthList>::initialValue):
- svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::parseAttribute):
- svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::parseAttribute):
- svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::parseAttribute):
- svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::parseAttribute):
- svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::parseAttribute):
- svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::parseAttribute):
- svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::parseAttribute):
- svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::parseAttribute):
Update for name change of SVGLength to SVGLengthValue.
- svg/SVGLength.cpp: Removed.
- svg/SVGLength.h:
(WebCore::SVGLength::create):
(WebCore::SVGLength::unitType):
(WebCore::SVGLength::valueForBindings):
(WebCore::SVGLength::setValueForBindings):
(WebCore::SVGLength::valueInSpecifiedUnits):
(WebCore::SVGLength::setValueInSpecifiedUnits):
(WebCore::SVGLength::valueAsString):
(WebCore::SVGLength::setValueAsString):
(WebCore::SVGLength::newValueSpecifiedUnits):
(WebCore::SVGLength::convertToSpecifiedUnits):
(WebCore::SVGLength::SVGLength):
Implement the SVGLength interface as a tear off.
- svg/SVGLength.idl:
Add annotations for exceptions, custom naming, and remove now unnecessary
custom binding annotation.
- svg/SVGLengthValue.cpp: Copied from Source/WebCore/svg/SVGLength.cpp.
- svg/SVGLengthValue.h: Copied from Source/WebCore/svg/SVGLength.h.
- svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::getCTMForBindings):
(WebCore::SVGGraphicsElement::getScreenCTMForBindings):
(WebCore::SVGGraphicsElement::getBBoxForBindings):
- svg/SVGGraphicsElement.h:
Add bindings specific versions of transformation access functions that return
tear offs.
- svg/SVGGraphicsElement.idl:
Annotate tear off returning functions with NewObject and ImplementedAs as necessary.
- svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::getTransformToElement):
- svg/SVGLocatable.h:
Change getTransformToElement to return a Ref<SVGMatrix> as that is what the binding
wants.
- svg/SVGMatrix.h:
Implement the SVGMatrix interface as a tear off.
- svg/SVGMatrix.idl:
Add annotations for exceptions. Remove meaningless Immutable annotation.
- svg/SVGMatrixValue.h: Copied from Source/WebCore/svg/SVGMatrix.h.
- svg/SVGNumber.h: Added.
(WebCore::SVGNumber::create):
(WebCore::SVGNumber::valueForBindings):
(WebCore::SVGNumber::setValueForBindings):
(WebCore::SVGNumber::SVGNumber):
Implement the SVGNumber interface as a tear off.
- svg/SVGNumber.idl:
Add exception annotation and custom naming annotations.
- svg/SVGNumberList.h:
Update for name change of SVGPropertyTearOff<float> to SVGNumber.
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::getPointAtLength):
- svg/SVGPathElement.h:
Make getPointAtLength return a Ref<SVGPoint> to match the bindings.
- svg/SVGPathElement.idl:
Annotate getPointAtLength with [NewObject].
- svg/SVGPathTraversalStateBuilder.cpp:
(WebCore::SVGPathTraversalStateBuilder::currentPoint):
- svg/SVGPathTraversalStateBuilder.h:
- svg/SVGPathUtilities.cpp:
(WebCore::getPointAtLengthOfSVGPathByteStream):
- svg/SVGPathUtilities.h:
- svg/SVGPointList.cpp:
(WebCore::SVGPointList::valueAsString):
- svg/SVGPointList.h:
- svg/SVGPolyElement.cpp:
Update for name change of SVGPoint to FloatPoint.
- svg/SVGPoint.h:
(WebCore::SVGPoint::create):
(WebCore::SVGPoint::x):
(WebCore::SVGPoint::setX):
(WebCore::SVGPoint::y):
(WebCore::SVGPoint::setY):
(WebCore::SVGPoint::matrixTransform):
(WebCore::SVGPoint::SVGPoint):
Implement the SVGPoint interface as a tear off. Remove typedef of FloatPoint
to SVGPoint.
- svg/SVGPoint.idl:
Add exception and NewObject annotations.
- svg/SVGRect.h:
(WebCore::SVGRect::create):
(WebCore::SVGRect::x):
(WebCore::SVGRect::setX):
(WebCore::SVGRect::y):
(WebCore::SVGRect::setY):
(WebCore::SVGRect::width):
(WebCore::SVGRect::setWidth):
(WebCore::SVGRect::height):
(WebCore::SVGRect::setHeight):
Implement the SVGRect interface as a tear off. FloatRect SVGPropertyTraits have
been moved to SVGRectTraits.h.
- svg/SVGRect.idl:
Add exception annotations.
- svg/SVGRectTraits.h: Copied from Source/WebCore/svg/SVGRect.cpp.
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::viewport):
(WebCore::SVGSVGElement::currentTranslate):
(WebCore::SVGSVGElement::parseAttribute):
(WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
(WebCore::SVGSVGElement::getIntersectionList):
(WebCore::SVGSVGElement::getEnclosureList):
(WebCore::SVGSVGElement::checkIntersection):
(WebCore::SVGSVGElement::checkEnclosure):
(WebCore::SVGSVGElement::createSVGNumber):
(WebCore::SVGSVGElement::createSVGLength):
(WebCore::SVGSVGElement::createSVGPoint):
(WebCore::SVGSVGElement::createSVGMatrix):
(WebCore::SVGSVGElement::createSVGRect):
(WebCore::SVGSVGElement::createSVGTransform):
(WebCore::SVGSVGElement::createSVGTransformFromMatrix):
- svg/SVGSVGElement.h:
(WebCore::SVGSVGElement::currentTranslateValue):
(WebCore::SVGSVGElement::currentTranslate): Deleted.
(WebCore::SVGSVGElement::createSVGNumber): Deleted.
Update functions taking tear off values to take the wrappers, and update
the factory functions returning tear offs, to return the wrappers.
- svg/SVGSVGElement.idl:
Annotate functions/properties returning tear offs with [NewObject].
- svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::synchronizeTextLength):
(WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
(WebCore::SVGTextContentElement::textLengthAnimated):
(WebCore::SVGTextContentElement::getStartPositionOfChar):
(WebCore::SVGTextContentElement::getEndPositionOfChar):
(WebCore::SVGTextContentElement::getExtentOfChar):
(WebCore::SVGTextContentElement::getCharNumAtPosition):
(WebCore::SVGTextContentElement::parseAttribute):
- svg/SVGTextContentElement.h:
(WebCore::SVGTextContentElement::specifiedTextLength):
Update functions returning tear off values to return the wrappers
and ones taking the values to take the wrappers.
- svg/SVGTextContentElement.idl:
Annotate functions/properties returning tear offs with [NewObject].
- svg/SVGTransform.cpp:
(WebCore::SVGTransform::matrix):
- svg/SVGTransform.h:
(WebCore::SVGTransform::create):
(WebCore::SVGTransform::type):
(WebCore::SVGTransform::angle):
(WebCore::SVGTransform::setMatrix):
(WebCore::SVGTransform::setTranslate):
(WebCore::SVGTransform::setScale):
(WebCore::SVGTransform::setRotate):
(WebCore::SVGTransform::setSkewX):
(WebCore::SVGTransform::setSkewY):
Implement the SVGTransform interface as a tear off.
- svg/SVGTransform.idl:
Add ConstantsScope annotation to allow the constants to be defined on
SVGTransformValue. Add exception and NewObject annotations.
- svg/SVGTransformDistance.cpp:
(WebCore::SVGTransformDistance::SVGTransformDistance):
(WebCore::SVGTransformDistance::scaledDistance):
(WebCore::SVGTransformDistance::addSVGTransforms):
(WebCore::SVGTransformDistance::addToSVGTransform):
(WebCore::SVGTransformDistance::distance):
- svg/SVGTransformDistance.h:
- svg/SVGTransformList.cpp:
(WebCore::SVGTransformList::createSVGTransformFromMatrix):
(WebCore::SVGTransformList::consolidate):
- svg/SVGTransformList.h:
(WebCore::SVGPropertyTraits<SVGTransformList>::initialValue):
- svg/SVGTransformable.cpp:
(WebCore::SVGTransformable::parseTransformValue):
(WebCore::parseAndSkipType):
(WebCore::SVGTransformable::parseTransformType):
(WebCore::SVGTransformable::parseTransformAttribute):
- svg/SVGTransformable.h:
- svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::parseAttribute):
Update for name change of SVGTransform to SVGTransformValue.
- svg/SVGTransformList.idl:
Annotate functions returning tear offs with NewObject.
- svg/SVGTransformValue.cpp: Copied from Source/WebCore/svg/SVGTransform.cpp.
- svg/SVGTransformValue.h: Copied from Source/WebCore/svg/SVGTransform.h.
- svg/SVGZoomEvent.cpp:
(WebCore::SVGZoomEvent::zoomRectScreen):
(WebCore::SVGZoomEvent::previousTranslate):
(WebCore::SVGZoomEvent::newTranslate):
- svg/SVGZoomEvent.h:
Update for change to SVGPoint/SVGRect. SVGPoint values become FloatPoints. Functions
returning SVGPoint/SVGRect now return Ref<SVGPoint>/Ref<SVGRect>.
- svg/SVGZoomEvent.idl:
Annotate function returning tear off with NewObject.
- svg/properties/SVGAnimatedListPropertyTearOff.h:
(WebCore::SVGAnimatedListPropertyTearOff::findItem):
Switch typedefs to type aliases. Define ListItemTearOff using SVGPropertyTraits
to get the correct tear off type (as we do for the other list property tear off
classes.)
- svg/properties/SVGListProperty.h:
(WebCore::SVGListProperty::clearValues):
(WebCore::SVGListProperty::clearValuesAndWrappers):
(WebCore::SVGListProperty::initializeValues):
(WebCore::SVGListProperty::initializeValuesAndWrappers):
(WebCore::SVGListProperty::getItemValues):
(WebCore::SVGListProperty::getItemValuesAndWrappers):
(WebCore::SVGListProperty::insertItemBeforeValues):
(WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
(WebCore::SVGListProperty::canReplaceItem):
(WebCore::SVGListProperty::replaceItemValues):
(WebCore::SVGListProperty::replaceItemValuesAndWrappers):
(WebCore::SVGListProperty::canRemoveItem):
(WebCore::SVGListProperty::removeItemValues):
(WebCore::SVGListProperty::removeItemValuesAndWrappers):
(WebCore::SVGListProperty::appendItemValues):
(WebCore::SVGListProperty::appendItemValuesAndWrappers):
- svg/properties/SVGListPropertyTearOff.h:
(WebCore::SVGListPropertyTearOff::initialize):
(WebCore::SVGListPropertyTearOff::getItem):
(WebCore::SVGListPropertyTearOff::insertItemBefore):
(WebCore::SVGListPropertyTearOff::replaceItem):
(WebCore::SVGListPropertyTearOff::removeItem):
(WebCore::SVGListPropertyTearOff::appendItem):
- svg/properties/SVGPathSegListPropertyTearOff.h:
- svg/properties/SVGStaticListPropertyTearOff.h:
- svg/properties/SVGTransformListPropertyTearOff.h:
Change functions returning PtrListItemTearOff, to instead return
Ref<ListItemTearOff>. To accomplish this, remove unreachable conditions
that were returning nullptr, and replace them with a assertions (these
were cases where a function like canGetItem() was called, and it only
did one of two things, returning an exception, or returned true).
- svg/properties/SVGMatrixTearOff.h:
Update for SVGMatrix's addition, this can now inherit from SVGMatrix. Remove
incorrect comment and update some SVGMatrix types to SVGMatrixValues.
- svg/properties/SVGStaticPropertyTearOff.h:
Require the use of SVGStaticPropertyTearOff to pass in the tear off type, rather
than the value type, so it can be directly inherited from. This allow the one user
of this class, SVGSVGElement::currentTranslate, to specialize on SVGPoint directly.
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
Update test results now that svg property tear offs are not handled specially.
- 1:14 PM Changeset in webkit [208704] by
-
- 28 edits8 adds in trunk
[JSC] Handle new_async_func / new_async_func_exp in DFG / FTL
https://bugs.webkit.org/show_bug.cgi?id=164037
Reviewed by Yusuke Suzuki.
JSTests:
Add tests based on tests from https://trac.webkit.org/changeset/194216.
- asyncFunctionTests.yaml:
- stress/async-function-create-nobaseline.js: Added.
- stress/async-function-create-optimized.js: Added.
- stress/async-function-declaration-sinking-no-double-allocate.js: Added.
- stress/async-function-declaration-sinking-osrexit.js: Added.
- stress/async-function-declaration-sinking-put.js: Added.
- stress/async-function-expression-sinking-no-double-allocate.js: Added.
- stress/async-function-expression-sinking-osrexit.js: Added.
- stress/async-function-expression-sinking-put.js: Added.
Source/JavaScriptCore:
This patch introduces new_async_func / new_async_func_exp into DFG and FTL,
in much the same capacity that https://trac.webkit.org/changeset/194216 added
DFG / FTL support for generators: by adding new DFG nodes (NewAsyncFunction and
PhantomNewAsyncFunction), rather than extending the existing NewFunction node type.
Like NewFunction and PhantomNewFunction, and the Generator variants, allocation of
async wrapper functions may be deferred or eliminated during the allocation sinking
phase.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGClobbersExitState.cpp:
(JSC::DFG::clobbersExitState):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGMayExit.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToPhantomNewFunction):
(JSC::DFG::Node::convertToPhantomNewAsyncFunction):
(JSC::DFG::Node::hasCellOperand):
(JSC::DFG::Node::isFunctionAllocation):
(JSC::DFG::Node::isPhantomFunctionAllocation):
(JSC::DFG::Node::isPhantomAllocation):
- dfg/DFGNodeType.h:
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewFunction):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStoreBarrierInsertionPhase.cpp:
- dfg/DFGStructureRegistrationPhase.cpp:
(JSC::DFG::StructureRegistrationPhase::run):
- dfg/DFGValidate.cpp:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
- ftl/FTLOperations.cpp:
(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::asyncFunctionPrototype):
(JSC::JSGlobalObject::asyncFunctionStructure):
(JSC::JSGlobalObject::lazyAsyncFunctionStructure): Deleted.
(JSC::JSGlobalObject::asyncFunctionPrototypeConcurrently): Deleted.
(JSC::JSGlobalObject::asyncFunctionStructureConcurrently): Deleted.
- 1:05 PM Changeset in webkit [208703] by
-
- 4 edits in trunk/Source/WebCore
Move updateSignalingState to PeerConnectionBackend
https://bugs.webkit.org/show_bug.cgi?id=164719
Patch by Youenn Fablet <youenn@apple.com> on 2016-11-14
Reviewed by Eric Carlson.
No change of behavior.
Refactoring MediaEndpointPeerConnection signaling state update to PeerConnectionBackend.
It is not specific to MediaEndpointPeerConnection and can be reused for other backends.
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask):
(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::updateSignalingState):
- Modules/mediastream/PeerConnectionBackend.h:
- 1:02 PM Changeset in webkit [208702] by
-
- 3 edits in trunk/Source/WebKit2
Keychain access in WebKit should be limited to a single process. Earlier this was blocked on the networking framework requiring direct access to keychain, this will be resolved in the upcoming version of macOS.
https://bugs.webkit.org/show_bug.cgi?id=163710
<rdar://problem/24357468>
Reviewed by Darin Adler.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 12:57 PM Changeset in webkit [208701] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Disable Warning Filter in Debugger Tab By Default
https://bugs.webkit.org/show_bug.cgi?id=164723
rdar://problem/29251780
Reviewed by Joseph Pecoraro.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel): Made "debugger-show-resources-with-issues-only" false by default.
- 11:57 AM Changeset in webkit [208700] by
-
- 8 edits in trunk
Handle filter() image type in new CSS Parser
https://bugs.webkit.org/show_bug.cgi?id=164673
<rdar://problems/29231376>
Reviewed by Darin Adler.
Source/WebCore:
Add support for the <image> type filter() to the
new CSS Parser. This involved moving some functions
from CSSPropertyParser into CSSPropertyParserHelpers.
Covered by fast/filter-image tests.
- css/CSSValueKeywords.in:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeShadow):
(WebCore::parseSingleShadow): Deleted.
(WebCore::consumeFilterFunction): Deleted.
(WebCore::consumeFilter): Deleted.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeFilterImage):
(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):
(WebCore::CSSPropertyParserHelpers::isGeneratedImage):
(WebCore::CSSPropertyParserHelpers::consumeFilterFunction):
(WebCore::CSSPropertyParserHelpers::consumeFilter):
(WebCore::CSSPropertyParserHelpers::consumeSingleShadow):
- css/parser/CSSPropertyParserHelpers.h:
LayoutTests:
Remove the test that allows a string value for the
image source rather than a url().
- fast/filter-image/filter-image-animation-expected.txt:
- fast/filter-image/filter-image-animation.html:
- 11:42 AM Changeset in webkit [208699] by
-
- 6 edits1 add in trunk
Some of JSStringView::SafeView methods are not idiomatically safe for JSString to StringView conversions.
https://bugs.webkit.org/show_bug.cgi?id=164701
<rdar://problem/27462104>
Reviewed by Darin Adler.
JSTests:
- stress/string-prototype-charCodeAt-on-too-long-rope.js: Added.
Source/JavaScriptCore:
The characters8(), characters16(), and operator[] in JSString::SafeView converts
the underlying JSString to a StringView via get(), and then uses the StringView
without first checking if an exception was thrown during the conversion. This is
unsafe because the conversion may have failed.
Instead, we should remove these 3 convenience methods, and make the caller
explicitly call get() and do the appropriate exception checks before using the
StringView.
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::toStringView):
(JSC::encode):
(JSC::decode):
(JSC::globalFuncParseInt):
(JSC::globalFuncEscape):
(JSC::globalFuncUnescape):
(JSC::toSafeView): Deleted.
- runtime/JSONObject.cpp:
(JSC::JSONProtoFuncParse):
- runtime/JSString.h:
(JSC::JSString::SafeView::length):
(JSC::JSString::SafeView::characters8): Deleted.
(JSC::JSString::SafeView::characters16): Deleted.
(JSC::JSString::SafeView::operator[]): Deleted.
- runtime/StringPrototype.cpp:
(JSC::stringProtoFuncRepeatCharacter):
(JSC::stringProtoFuncCharAt):
(JSC::stringProtoFuncCharCodeAt):
(JSC::stringProtoFuncNormalize):
- 11:26 AM Changeset in webkit [208698] by
-
- 5 edits3 adds in trunk
RegExpObject::exec/match should handle errors gracefully.
https://bugs.webkit.org/show_bug.cgi?id=155145
<rdar://problem/27435934>
Reviewed by Keith Miller.
JSTests:
- stress/regexp-prototype-exec-on-too-long-rope.js: Added.
- stress/regexp-prototype-match-on-too-long-rope.js: Added.
- stress/regexp-prototype-test-on-too-long-rope.js: Added.
Source/JavaScriptCore:
- Added some missing exception checks to RegExpObject::execInline() and RegExpObject::matchInline().
- Updated related code to work with ExceptionScope verification requirements.
- dfg/DFGOperations.cpp:
- runtime/RegExpObjectInlines.h:
(JSC::RegExpObject::execInline):
(JSC::RegExpObject::matchInline):
- runtime/RegExpPrototype.cpp:
(JSC::regExpProtoFuncTestFast):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncMatchFast):
- 11:16 AM Changeset in webkit [208697] by
-
- 2 edits in trunk/Source/WebCore
[CSS Parser] Support percentages in word-spacing
https://bugs.webkit.org/show_bug.cgi?id=164721
Reviewed by Dean Jackson.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeLetterSpacing):
(WebCore::consumeWordSpacing):
(WebCore::consumeSpacing): Deleted.
- 11:06 AM Changeset in webkit [208696] by
-
- 6 edits in trunk
AX: In ARIA 1.1, the implicit value for aria-level on headings is 2
https://bugs.webkit.org/show_bug.cgi?id=164714
Reviewed by Chris Fleizach.
Source/WebCore:
Return 2 rather than 0 if there is not a valid author-provided value
for aria-level on an ARIA heading.
No new tests required as we have sufficient coverage. Added one new
test case to heading-level.html and updated expectations for it and
for xml-roles-exposed.html.
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::headingLevel):
LayoutTests:
Added new test case to existing test and updated expectations.
- accessibility/gtk/xml-roles-exposed-expected.txt: Updated.
- accessibility/heading-level-expected.txt: Updated.
- accessibility/heading-level.html: New test case added.
- 11:05 AM Changeset in webkit [208695] by
-
- 3 edits in trunk/LayoutTests
[CSS Parser] Remove incorrect cursor result
https://bugs.webkit.org/show_bug.cgi?id=164717
Reviewed by Dean Jackson.
- fast/css/cursor-parsing-expected.txt:
- fast/css/cursor-parsing.html:
- 10:52 AM Changeset in webkit [208694] by
-
- 26 edits in trunk
Refresh RTCDataChannel abstract infrastructure
https://bugs.webkit.org/show_bug.cgi?id=164680
Patch by Youenn Fablet <youenn@apple.com> on 2016-11-14
Reviewed by Darin Adler.
Source/WebCore:
No real changes, except that a mock data channel is now returned for layout test.
Covered by activated and rebased test.
Adding support for mock data channel.
Updating data channel creation by using dictionary binding infrastructure.
Storing of options directly in RTCDataChannel to reduce the use of the data channel handler.
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::createDataChannelHandler):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::bufferedAmount):
(WebCore::RTCDataChannel::~RTCDataChannel): Deleted.
(WebCore::RTCDataChannel::label): Deleted.
(WebCore::RTCDataChannel::ordered): Deleted.
(WebCore::RTCDataChannel::maxRetransmitTime): Deleted.
(WebCore::RTCDataChannel::maxRetransmits): Deleted.
(WebCore::RTCDataChannel::protocol): Deleted.
(WebCore::RTCDataChannel::negotiated): Deleted.
(WebCore::RTCDataChannel::id): Deleted.
- Modules/mediastream/RTCDataChannel.h:
- Modules/mediastream/RTCDataChannelEvent.cpp:
(WebCore::RTCDataChannelEvent::create):
(WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
(WebCore::RTCDataChannelEvent::~RTCDataChannelEvent): Deleted.
- Modules/mediastream/RTCDataChannelEvent.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createDataChannel):
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCPeerConnection.idl:
- platform/mediastream/MediaEndpoint.cpp:
(WebCore::EmptyMediaEndpoint::EmptyMediaEndpoint): Deleted.
- platform/mediastream/MediaEndpoint.h:
- platform/mediastream/RTCDataChannelHandler.h:
- platform/mediastream/RTCDataChannelHandlerClient.h:
- platform/mediastream/RTCPeerConnectionHandler.h:
(WebCore::RTCDataChannelInit::RTCDataChannelInit): Deleted.
- platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
(WebCore::MediaEndpointOwr::createDataChannelHandler):
- platform/mediastream/openwebrtc/MediaEndpointOwr.h:
- platform/mock/MockMediaEndpoint.cpp:
(WebCore::MockMediaEndpoint::createDataChannelHandler):
- platform/mock/MockMediaEndpoint.h:
- platform/mock/RTCDataChannelHandlerMock.cpp:
(WebCore::RTCDataChannelHandlerMock::RTCDataChannelHandlerMock):
- platform/mock/RTCDataChannelHandlerMock.h:
LayoutTests:
- fast/mediastream/RTCPeerConnection-datachannel-expected.txt:
- fast/mediastream/RTCPeerConnection-datachannel.html:
- platform/mac/TestExpectations:
- 10:40 AM Changeset in webkit [208693] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r83521): Fix malformed <canvas> tag in fast/canvas/DrawImageSinglePixelStretch.html
Unreviewed.
Before: <canvas id="c"</canvas>
Parsed: <canvas id="c" <="" canvas="" width="200" height="50"></canvas>
After: <canvas id="c"></canvas>
Parsed: <canvas id="c" width="200" height="50"></canvas>
- fast/canvas/DrawImageSinglePixelStretch.html: Close <canvas>
tag. This does not affect test results, but the HTML5 parser
was covering for this mistake.
- 10:27 AM Changeset in webkit [208692] by
-
- 12 edits in trunk
Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations.
https://bugs.webkit.org/show_bug.cgi?id=164695
Reviewed by Keith Miller.
JSTests:
Replace use of runMisc* test run configurations with equivalents.
- stress/licm-no-pre-header-nested.js:
- stress/licm-no-pre-header.js:
- stress/licm-pre-header-cannot-exit-nested.js:
- stress/licm-pre-header-cannot-exit.js:
- stress/make-dictionary-repatch.js:
- stress/retry-cache-later.js:
- stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js:
- stress/slow-path-generator-updating-current-node-dfg.js:
- stress/unshift-array-storage.js:
Tools:
This gives us more flexibility when specific tests needs to enable special JSC
options in order to exercise specific code paths to be tested. It also saves us
from having to create duplicate test run configurations e.g. runMiscFTLNoCJITTest.
We can now just use runFTLNoCJIT in its place.
Also replaced the ifJSCArgIsntProvidedAreWeReleaseBuild variable with $buildType
so that we have the ability to skip certain tests for release or debug builds.
This will be needed in the upcoming patch for https://webkit.org/b/155145.
- Scripts/run-jsc-stress-tests:
- 10:20 AM Changeset in webkit [208691] by
-
- 5 edits in trunk
Bug 164702: WebContent crash due to checked unsigned overflow in WebCore: WebCore::RenderLayerCompositor::requiresCompositingLayer const + 1104
<https://webkit.org/b/164702>
<rdar://problem/29236368>
Reviewed by Darin Adler.
Source/WebCore:
Test: inspector/layers/layers-compositing-reasons.html
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
Don't composite if the canvas area overflows.
LayoutTests:
- inspector/layers/layers-compositing-reasons-expected.txt:
Update results.
- inspector/layers/layers-compositing-reasons.html: Update to
reproduce the crash. This does not reproduce the original crash
stack, but does exercise the same crashing code.
- 10:04 AM Changeset in webkit [208690] by
-
- 6 edits in trunk/Source
Add debugging facility to limit the max single allocation size.
https://bugs.webkit.org/show_bug.cgi?id=164681
Reviewed by Keith Miller.
Source/JavaScriptCore:
Added JSC option to set FastMalloc's maxSingleAllocationSize for testing purposes.
This option is only available on Debug builds.
- runtime/Options.cpp:
(JSC::Options::isAvailable):
(JSC::recomputeDependentOptions):
- runtime/Options.h:
Source/WTF:
This is useful for simulating memory allocation failures on resource constraint
devices for testing purposes.
This facility is only conditionally compiled in on debug builds. It does not
have any burden on release builds at all. When in use, the max single allocation
size limit applies to individual allocations. For malloc (and similar), the
allocation will crash in FastMalloc if the requested size exceeds the set max
single allocation size. For tryMalloc (and similar), the allocation returns
nullptr if the requested size exceeds the set max single allocation size. The
max single allocation size is set to std::numeric_limit<size_t>::max() by default
(i.e. when not set and no limit is in effect).
Also fixed non-bmalloc versions of fastAlignedMalloc() to crash when allocation
fails.
- wtf/FastMalloc.cpp:
(WTF::fastSetMaxSingleAllocationSize):
(WTF::fastAlignedMalloc):
(WTF::tryFastAlignedMalloc):
(WTF::tryFastMalloc):
(WTF::fastMalloc):
(WTF::tryFastCalloc):
(WTF::fastCalloc):
(WTF::fastRealloc):
- wtf/FastMalloc.h:
- 9:59 AM Changeset in webkit [208689] by
-
- 3 edits in trunk/Source/WebCore
Fix the !ENABLE(FETCH_API) build after r208613
https://bugs.webkit.org/show_bug.cgi?id=164713
Reviewed by Youenn Fablet.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- 9:55 AM Changeset in webkit [208688] by
-
- 107 edits1 delete in trunk/Source
Remove many includes of ExceptionCode.h
https://bugs.webkit.org/show_bug.cgi?id=164706
Reviewed by Alex Christensen.
Source/WebCore:
- Modules/encryptedmedia/CDMPrivateClearKey.cpp: Removed include of ExceptionCode.h.
- Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp: Ditto.
- Modules/fetch/FetchBodyOwner.cpp: Ditto.
- Modules/indexeddb/IDBDatabase.cpp: Added include of ExceptionCode.h.
- Modules/indexeddb/IDBDatabase.h: Removed include of ExceptionCode.h.
- Modules/indexeddb/IDBDatabaseException.cpp: Ditto.
- Modules/indexeddb/IDBIndex.cpp: Added include of ExceptionCode.h.
- Modules/indexeddb/IDBObjectStore.cpp: Ditto.
- Modules/mediastream/MediaConstraintsImpl.cpp: Removed include of ExceptionCode.h.
- Modules/mediastream/MediaDevicesEnumerationRequest.cpp: Ditto.
- Modules/mediastream/MediaDevicesRequest.cpp: Ditto.
- Modules/mediastream/MediaStream.cpp: Ditto.
- Modules/mediastream/MediaStreamTrack.cpp: Ditto.
- Modules/mediastream/RTCDTMFSender.cpp: Ditto.
- Modules/mediastream/RTCDataChannel.cpp: Ditto.
- Modules/mediastream/RTCPeerConnection.cpp: Ditto.
- Modules/notifications/Notification.h: Removed definition of ExceptionCode.
- Modules/streams/ReadableStreamSource.h: Ditto.
- Modules/webaudio/BiquadFilterNode.cpp: Ditto.
- Modules/webaudio/PannerNode.cpp: Removed inclde of ExceptionCode.h.
- Modules/webaudio/WaveShaperNode.cpp: Ditto.
- Modules/webdatabase/Database.cpp:
(WebCore::guidForOriginAndName): Reimplemented using HashMap::ensure.
- Modules/webdatabase/Database.h: Renamed DatabaseGuid to DatabaseGUID and defined
it here instead of a in DatabaseBasicTypes.h; removed that include.
- Modules/webdatabase/DatabaseBasicTypes.h: Removed.
- Modules/webdatabase/DatabaseManager.h: Removed include of DatabaseBasicTypes.h.
- Modules/webdatabase/DatabaseTask.h: Ditto.
- Modules/webdatabase/SQLTransactionBackend.cpp: Removed include of ExceptionCode.h.
- Modules/webdatabase/SQLTransactionBackend.h: Removed include of DatabaseBasicTypes.h.
- WebCore.xcodeproj/project.pbxproj: Removed DatabaseBasicTypes.h, also let Xcode
edit the file.
- bindings/js/ScriptModuleLoader.cpp: Removed include of ExceptionCode.h.
- bindings/js/SerializedScriptValue.cpp: Ditto.
- bindings/js/StructuredClone.cpp: Ditto.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck): Removed unnecessary include of ExceptionCode.h.
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
- bindings/scripts/test/JS/JSTestNode.cpp:
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
Updated.
- css/CSSMediaRule.cpp: Removed include of ExceptionCode.h.
- css/CSSSupportsRule.cpp: Ditto.
- dom/ClientRectList.cpp: Ditto.
- dom/DOMCoreException.cpp: Added include of ExceptionCode.h.
- dom/DOMImplementation.cpp: Removed include of ExceptionCode.h.
- dom/ExceptionBase.h: Ditto.
- dom/Node.cpp: Added include of ExceptionCode.h.
- dom/NodeIterator.cpp: Removed include of ExceptionCode.h.
(WebCore::NodeIterator::NodePointer::NodePointer): Marked this inline.
(WebCore::NodeIterator::NodePointer::clear): Ditto.
(WebCore::NodeIterator::NodePointer::moveToNext): Ditto.
(WebCore::NodeIterator::NodePointer::moveToPrevious): Ditto.
(WebCore::NodeIterator::NodeIterator): Ditto.
(WebCore::NodeIterator::create): Moved this here from the header.
Now the constructor is inlined instead of this function.
(WebCore::NodeIterator::detach): Deleted. Moved to header.
- dom/NodeIterator.h: Removed definition of ExceptionCode, fixed indentation
of this file and made a few changes as mentioned above.
- dom/ProcessingInstruction.cpp: Removed include of ExceptionCode.h.
- dom/Text.cpp: Added include of ExceptionCode.h.
- dom/TreeWalker.cpp: Removed include of ExceptionCode.h.
- editing/FrameSelection.cpp: Ditto.
- fileapi/WebKitBlobBuilder.cpp: Ditto.
- history/CachedFrame.cpp: Ditto.
- html/HTMLDocument.cpp: Ditto.
- html/HTMLMeterElement.cpp: Ditto.
- html/HTMLObjectElement.cpp: Ditto.
- html/HTMLOptionElement.cpp: Ditto.
- html/HTMLOptionsCollection.cpp: Removed include of ExceptionCode.h.
(WebCore::HTMLOptionsCollection::add): Changed argument to const& to avoid a
little bit of reference count churn.
- html/HTMLOptionsCollection.h: Updated for above.
- html/HTMLProgressElement.cpp: Removed include of ExceptionCode.h.
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::add): Changed argument to const& to avoid a
little bit of reference count churn.
- html/HTMLSelectElement.h: Updated for above.
- html/HTMLTextAreaElement.cpp: Removed include of ExceptionCode.h.
- html/canvas/CanvasPattern.cpp: Ditto.
- html/canvas/WebGLContextGroup.h: Removed definition of ExceptionCode.
- html/track/AudioTrack.h: Removed include of ExceptionCode.h.
- html/track/TextTrack.h: Ditto.
- html/track/VTTCue.cpp: Added include of ExceptionCode.h.
- html/track/VTTRegion.cpp: Ditto.
- html/track/VideoTrack.h: Removed include of ExceptionCode.h.
- inspector/DOMEditor.cpp: Ditto.
- inspector/InspectorDatabaseAgent.cpp: Removed include of ExceptionCode.h.
Tweaked the code in the file a bit, marking more things final and making them
private. ALso simplified a couple of the functions a bit.
(WebCore::InspectorDatabaseAgent::didOpenDatabase):
(WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
(WebCore::InspectorDatabaseAgent::executeSQL):
(WebCore::InspectorDatabaseAgent::databaseForId):
- inspector/InspectorIndexedDBAgent.cpp: Removed include of ExceptionCode.h.
- inspector/InspectorStyleSheet.cpp: Added include of ExceptionCode.h.
- page/FocusController.cpp: Removed include of ExceptionCode.h.
- page/Location.h: Removed definition of ExceptionCode.
- page/Page.cpp: Removed include of ExceptionCode.h.
- platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm: Ditto.
- platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm: Ditto.
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm: Ditto.
- platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: Ditto.
- storage/StorageArea.h: Removed definition of ExceptionCode.
- svg/SVGCircleElement.cpp: Removed include of ExceptionCode.h.
- svg/SVGColor.cpp: Added include of ExceptionCode.h.
- svg/SVGPaint.cpp: Ditto.
- svg/SVGStyleElement.cpp: Removed include of ExceptionCode.h.
- svg/properties/SVGListProperty.h: Added include of ExceptionCode.h.
- workers/Worker.cpp: Removed include of ExceptionCode.h.
- workers/WorkerMessagingProxy.cpp: Ditto.
- xml/XMLSerializer.cpp: Removed unneeded includes.
(WebCore::XMLSerializer::serializeToString): Use nullptr.
- xml/XMLSerializer.h: Removed definition of ExceptionCode, fixed indentation
of this file, and made a couple tweaks.
Source/WebKit2:
- WebProcess/Storage/StorageAreaImpl.cpp: Removed include of ExceptionCode.h.
- 9:46 AM Changeset in webkit [208687] by
-
- 7 edits in trunk/Source/WebCore
MediaStreamPrivate::create should take vectors of Ref
https://bugs.webkit.org/show_bug.cgi?id=164670
Patch by Youenn Fablet <youenn@apple.com> on 2016-11-14
Reviewed by Sam Weinig.
No change of behavior.
- Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::create):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::createMediaStream):
- platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
(WebCore::RealtimeMediaSourceCenterOwr::mediaSourcesAvailable):
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::createMediaStream):
- 9:40 AM Changeset in webkit [208686] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Settings tab should look more like a native macOS view
https://bugs.webkit.org/show_bug.cgi?id=164708
<rdar://problem/29241296>
Reviewed by Timothy Hatcher.
- UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings):
(.content-view.settings > .header):
(.content-view.settings > .setting-container):
Match macOS Sierra default font size for settings view.
(.content-view.settings > .setting-container > .setting-name):
(.content-view.settings > .setting-container > .setting-value-controller):
(.content-view.settings > .setting-container > .setting-value-controller input):
(.content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]):
Make checkbox larger.
(.content-view.settings > .setting-container > .setting-value-controller select):
(.content-view.settings > .setting-container > .setting-value-controller input[type="number"]):
Decrease the width of the number fields to make them just wide enough to fit 2 digit numbers.
- 9:39 AM Changeset in webkit [208685] by
-
- 13 edits2 adds in trunk
AX: [ATK] Expose STATE_SINGLE_LINE and STATE_MULTI_LINE for ARIA searchbox role
https://bugs.webkit.org/show_bug.cgi?id=164712
Reviewed by Chris Fleizach.
Source/WebCore:
Include SearchFieldRole when adding STATE_SINGLE_LINE and STATE_MULTI_LINE
to AtkStateSet.
Test: accessibility/gtk/singleline-and-multiline.html
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):
Tools:
Add AccessibilityUIElement::isSingleLine, AccessibilityUIElement::isMultiLine
to DRT and WKTR. Implement it for ATK.
- DumpRenderTree/AccessibilityUIElement.h:
- DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::isSingleLine):
(AccessibilityUIElement::isMultiLine):
- DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::isSingleLine):
(AccessibilityUIElement::isMultiLine):
- DumpRenderTree/win/AccessibilityUIElementWin.cpp:
(AccessibilityUIElement::isSingleLine):
(AccessibilityUIElement::isMultiLine):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::isSingleLine):
(WTR::AccessibilityUIElement::isMultiLine):
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::isSingleLine):
(WTR::AccessibilityUIElement::isMultiLine):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::isSingleLine):
(WTR::AccessibilityUIElement::isMultiLine):
LayoutTests:
- accessibility/gtk/singleline-and-multiline-expected.txt: Added.
- accessibility/gtk/singleline-and-multiline.html: Added.
- 7:46 AM Changeset in webkit [208684] by
-
- 3 edits18 adds in trunk
Support WPT templated tests
https://bugs.webkit.org/show_bug.cgi?id=164707
Patch by Youenn Fablet <youenn@apple.com> on 2016-11-14
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/IndexedDB/interfaces.worker-expected.txt: Added.
- web-platform-tests/IndexedDB/interfaces.worker.html: Added.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.html: Added.
- web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.any-expected.txt: Added.
- web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.any.html: Added.
- web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.worker-expected.txt: Added.
- web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.worker.html: Added.
- web-platform-tests/XMLHttpRequest/abort-during-open.worker-expected.txt: Added.
- web-platform-tests/XMLHttpRequest/abort-during-open.worker.html: Added.
- web-platform-tests/XMLHttpRequest/send-send.worker-expected.txt: Added.
- web-platform-tests/XMLHttpRequest/send-send.worker.html: Added.
- web-platform-tests/XMLHttpRequest/send-usp.worker-expected.txt: Added.
- web-platform-tests/XMLHttpRequest/send-usp.worker.html: Added.
- web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker-expected.txt: Added.
- web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker.html: Added.
- web-platform-tests/url/historical.worker-expected.txt: Added.
- web-platform-tests/url/historical.worker.html: Added.
Tools:
- Scripts/webkitpy/w3c/test_importer.py:
(TestImporter.write_html_files_for_templated_js_tests): Generating empty HTML files for templated JS tests.
(TestImporter.import_tests):
- 7:46 AM Changeset in webkit [208683] by
-
- 8 edits in trunk/Source/WebCore
RTCRtpTransceiver should have Ref of sender and receiver
https://bugs.webkit.org/show_bug.cgi?id=164665
Patch by Youenn Fablet <youennf@gmail.com> on 2016-11-14
Reviewed by Darin Adler.
No change of behavior.
Making RTCRptTransceiver have Ref<RTCRtpSender> and Ref<RTCRtpReceiver>.
Transforming transceiver set list of senders and receivers as vectors of references to reduce count churning.
Also making RTCRptTransceiver have a Ref<RTCIceTransport> instead of a RefPtr.
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::createOfferTask):
(WebCore::MediaEndpointPeerConnection::createAnswerTask):
(WebCore::createSourceMap):
(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):
(WebCore::MediaEndpointPeerConnection::createReceiver):
(WebCore::MediaEndpointPeerConnection::replaceTrack):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::removeTrack):
(WebCore::RTCPeerConnection::close):
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCRtpTransceiver.cpp:
(WebCore::RTCRtpTransceiver::RTCRtpTransceiver):
- Modules/mediastream/RTCRtpTransceiver.h:
(WebCore::RTCRtpTransceiver::create):
(WebCore::RTCRtpTransceiver::sender):
(WebCore::RTCRtpTransceiver::receiver):
(WebCore::RTCRtpTransceiver::iceTransport):
(WebCore::RtpTransceiverSet::senders):
(WebCore::RtpTransceiverSet::receivers):
- 7:39 AM Changeset in webkit [208682] by
-
- 4 edits in trunk/Source/WebCore
Fix various --minimal build issue
https://bugs.webkit.org/show_bug.cgi?id=164479
Reviewed by Darin Adler.
- dom/Node.cpp:
- platform/audio/PlatformMediaSessionManager.cpp:
- testing/Internals.cpp:
(WebCore::Internals::captionsStyleSheetOverride):
- 7:39 AM Changeset in webkit [208681] by
-
- 4 edits in trunk/Source/WebCore
Fix the !ENABLE(VIDEO_TRACK) build
https://bugs.webkit.org/show_bug.cgi?id=164476
Reviewed by Darin Adler.
- css/RuleSet.cpp:
(WebCore::RuleSet::addRule):
- css/parser/CSSParserValues.h:
(WebCore::CSSParserSelector::needsImplicitShadowCombinatorForMatching):
- css/parser/CSSSelectorParser.cpp:
(WebCore::isPseudoElementFunction):
(WebCore::CSSSelectorParser::consumePseudo):
- 7:21 AM Changeset in webkit [208680] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Do not use gstreamer-gl when accelerated compositing is disabled
https://bugs.webkit.org/show_bug.cgi?id=164481
Reviewed by Žan Doberšek.
Check whether accelerated compositing is enabled before creating the gstreamer-gl video sink.
No new tests (Covered by existing tests).
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
- 5:48 AM Changeset in webkit [208679] by
-
- 2 edits in trunk/Source/WebCore
Fix the !ENABLE(CSS_BOX_DECORATION_BREAK) build
https://bugs.webkit.org/show_bug.cgi?id=164478
Reviewed by Darin Adler.
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
- 5:48 AM Changeset in webkit [208678] by
-
- 3 edits in trunk/Source/WebCore
Fix the !ENABLE(CSS_GRID_LAYOUT) build
https://bugs.webkit.org/show_bug.cgi?id=164477
Reviewed by Darin Adler.
- css/parser/CSSParserFastPaths.cpp:
(WebCore::isSimpleLengthPropertyID):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):
- 4:22 AM Changeset in webkit [208677] by
-
- 2 edits in trunk/Source/WebCore
[EFL] Suppress build warning in generated Geoclue2Interface.c
https://bugs.webkit.org/show_bug.cgi?id=164475
Reviewed by Darin Adler.
- PlatformEfl.cmake:
- 1:56 AM Changeset in webkit [208676] by
-
- 4 edits in trunk/Source/WebCore
[GStreamer][OWR] poor video rendering in apprtc
https://bugs.webkit.org/show_bug.cgi?id=164585
Reviewed by Xabier Rodriguez-Calvar.
The apprtc service uses 3 video elements in total, one for local, one
for remote and one called preview. During a call only remote and
preview are displayed, preview being linked to the same mediastream as
local. The consequence is that 2 OWR video renderers of the same
source are created. When gst-gl is enabled this isn't a problem but
when it is disabled a performance issue appears and the webkit video
sink starts dropping frames.
The solution is to have the video renderer shared between the 2
media players in this scenario.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
(WebCore::MediaPlayerPrivateGStreamerBase::videoSink): Add video sink getter.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
(WebCore::MediaPlayerPrivateGStreamerOwr::load): Make sure the m_streamPrivate is
set before creating the video sink.
(WebCore::MediaPlayerPrivateGStreamerOwr::createVideoSink): Re-use video renderer
and sink if they have previously been created for another media player.
- platform/mediastream/MediaStreamPrivate.h: Store GStreamer sink and renderer so
they can be potentially used by multiple media players.
(WebCore::MediaStreamPrivate::setVideoRenderer):
(WebCore::MediaStreamPrivate::getVideoSinkElement):
(WebCore::MediaStreamPrivate::getVideoRenderer):
Nov 13, 2016:
- 11:12 PM Changeset in webkit [208675] by
-
- 4 edits3 adds in trunk
[HarfBuzz] HarfBuzzShaper should not assume numGlyphs is greater than 0
https://bugs.webkit.org/show_bug.cgi?id=164500
Patch by Fujii Hironori <Fujii Hironori> on 2016-11-13
Reviewed by Myles C. Maxfield.
Source/WebCore:
Test: fast/text/international/harfbuzz-runs-with-no-glyph.html
HarfBuzzShaper assumes numGlyphs of HarfBuzzRun is greater than
zero. But this is not necessarily true. If a font does not have a
glyph of SPACE (U+0020), HarfBuzz removes ignorable glyphs. In
this case, HarfBuzzRun can have no glyphs.
- platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Resize
m_offsets to one if m_numGlyphs is zero.
- platform/graphics/harfbuzz/HarfBuzzShaper.h:
(WebCore::HarfBuzzShaper::HarfBuzzRun::glyphs): Use Vector::data()
instread of operator[0].
(WebCore::HarfBuzzShaper::HarfBuzzRun::advances): Ditto.
(WebCore::HarfBuzzShaper::HarfBuzzRun::offsets): Ditto.
(WebCore::HarfBuzzShaper::HarfBuzzRun::glyphToCharacterIndexes): Ditto.
LayoutTests:
- fast/text/international/harfbuzz-runs-with-no-glyph-expected.txt: Added.
- fast/text/international/harfbuzz-runs-with-no-glyph.html: Added.
- fast/text/international/resources/ignorables.woff: Added.
- 11:06 PM Changeset in webkit [208674] by
-
- 4 edits2 adds in trunk
REGRESSION (204441): newsplex.com map does not load
https://bugs.webkit.org/show_bug.cgi?id=164705
<rdar://problem/28753438>
Reviewed by Darin Adler.
Source/WebCore:
Update getElementsByTagName(qualifiedName) implementation to match more closely
the specification at:
- https://dom.spec.whatwg.org/#dom-document-getelementsbytagname
- https://dom.spec.whatwg.org/#concept-getelementsbytagname
- https://dom.spec.whatwg.org/#concept-element-qualified-name
In particular, we no longer split the input qualifiedName into a prefix and a
localName in order to compare those to element.prefix() / element.localName().
Instead, we keep the input qualifiedName as is and compare it to the element's
qualifiedName. This matters for HTML elements inside an HTML document that have
a semicolon in their localname (e.g. 'wx:map'). For this example, the element's
localName and its qualified name are both 'wx:map'. Calling
getElementsByTagName('wx:map') should return it. However, if you split the input
qualifiedName into a prefix and a localName, you end up checking:
'wx' == null && 'map' == 'wx:map'
which does not match.
Test: fast/dom/getElementsByTagName-HTMLElement-prefix.html
- dom/TagCollection.cpp:
(WebCore::TagCollection::TagCollection):
(WebCore::TagCollection::~TagCollection):
(WebCore::HTMLTagCollection::HTMLTagCollection):
(WebCore::HTMLTagCollection::~HTMLTagCollection):
(WebCore::makeQualifiedName): Deleted.
(WebCore::splitQualifiedName): Deleted.
- dom/TagCollection.h:
(WebCore::TagCollection::elementMatches):
(WebCore::HTMLTagCollection::elementMatches):
LayoutTests:
- fast/dom/getElementsByTagName-HTMLElement-prefix-expected.txt: Added.
- fast/dom/getElementsByTagName-HTMLElement-prefix.html: Added.
- 9:14 PM Changeset in webkit [208673] by
-
- 5 edits2 deletes in trunk/Source/WebCore
Remove ExceptionCodePlaceholder
https://bugs.webkit.org/show_bug.cgi?id=164703
Reviewed by Sam Weinig.
- CMakeLists.txt: Removed ExceptionCodePlaceholder.cpp.
- WebCore.xcodeproj/project.pbxproj: Removed ExceptionCodePlaceholder.h/cpp.
Also let Xcode make a change to the file, I think removing an unreferenced
dead entry for a file that is already listed under a different ID.
- dom/DOMAllInOne.cpp: Removed ExceptionCodePlaceholder.cpp.
- dom/ExceptionCodePlaceholder.cpp: Removed.
- dom/ExceptionCodePlaceholder.h: Removed.
- inspector/InspectorDatabaseAgent.cpp: Removed include of ExceptionCodePlaceholder.h.
- 7:22 PM Changeset in webkit [208672] by
-
- 50 edits6 deletes in trunk/Source
Fix exception handling in SQL database code, streamline and update code
https://bugs.webkit.org/show_bug.cgi?id=164685
Reviewed by Sam Weinig.
Source/WebCore:
Removed some old abstraction layers that were no longer in use. For example,
i n many cases, calls were going through DatabaseManager, which called through
an abstract class AbstractDatabaseServer to a concrete class DatabaseServer,
which then called through to DatabaseTracker. Clients now mostly just call
DatabaseTracker directly.
- CMakeLists.txt: Removed DatabaseServer.cpp and SQLTransactionClient.cpp.
- Modules/webdatabase/AbstractDatabaseServer.h: Removed.
- Modules/webdatabase/DOMWindowWebDatabase.cpp:
(WebCore::DOMWindowWebDatabase::openDatabase): Use ExceptionOr instead of
DatabaseError to communicate DOM exceptions from DatabaseManager.
- Modules/webdatabase/Database.cpp:
(WebCore::Database::Database): Use a reference instead of a RefPtr&& for database
context. Use unsigned instead of unsigned long. Modernize code to use more
initialization rather than assignment, to initialize scalar data members in the
class definition, and to use HashMap::ensure.
(WebCore::Database::databaseThread): Added. This class asserts that there is a
thread in the constructor, and so it is useful to have a helper for all the other
functions that assumes the thread is present and returns a reference rather than
a pointer.
(WebCore::Database::~Database): Updated since m_scriptExecutionContext is now
a Ref instead of a RefPtr.
(WebCore::Database::openAndVerifyVersion): Use ExceptionOr and databaseThread.
(WebCore::Database::close): Use databaseThread.
(WebCore::Database::performClose): Ditto.
(WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
Use a reference. Removed unused m_openSuccceeded.
(WebCore::DoneCreatingDatabaseOnExitCaller::~DoneCreatingDatabaseOnExitCaller):
Use DatabaseTracker::singleton by its new name.
(WebCore::DoneCreatingDatabaseOnExitCaller::setOpenSucceeded): Deleted.
(WebCore::Database::performOpenAndVerify): Use ExceptionOr and update for above.
(WebCore::Database::closeDatabase): Updated for name change.
(WebCore::Database::scheduleTransaction): Updated for above, simplified and
streamlined.
(WebCore::Database::scheduleTransactionStep): Use databaseThread.
(WebCore::Database::transactionClient): Deleted. This object is no longer needed.
(WebCore::Database::transactionCoordinator): Use databaseThread.
(WebCore::Database::markAsDeletedAndClose): Removed unnecessary null check for
databaseThread, which can never be null.
(WebCore::Database::estimatedSize): Use unsigned, not unsigned long.
(WebCore::Database::disableAuthorizer): Removed assertion about RefPtr that is
now a Ref and never could have been null.
(WebCore::Database::enableAuthorizer): Ditto.
(WebCore::Database::setAuthorizerPermissions): Ditto.
(WebCore::Database::lastActionChangedDatabase): Ditto.
(WebCore::Database::lastActionWasInsert): Ditto.
(WebCore::Database::resetDeletes): Ditto.
(WebCore::Database::hadDeletes): Ditto.
(WebCore::Database::resetAuthorizer): Removed null check for a RefPtr that is now
a Ref and never could have been null.
(WebCore::Database::runTransaction): Simplified a bit.
(WebCore::Database::tableNames): Use databaseThread.
(WebCore::Database::securityOrigin): Changed to return a reference instead of a
pointer because all the callers need it to do that. If called on the wrong thread,
this will now do a RELEASE_ASSERT_NOT_REACHED. In the old code it would return a
null pointer and then the caller would dereference it a moment later, so it would
still be a crash.
(WebCore::Database::maximumSize): Removed const since it's not really needed and
the DatabaseTracker wants a non-const reference to this database.
(WebCore::Database::didCommitWriteTransaction): Added. Moved this code here from
SQLTransactionClient. There is no abstraction layer, so no reason to not have
this code, quite comparable to the rest of the code in the class, here. I am
assuming this served some more useful purpose back when we had a different back end
for Chromium?
(WebCore::Database::didExceedQuota): Ditto.
- Modules/webdatabase/Database.h: Updated for above changes. Made some functions
return references instead of pointers. Use Ref instead of RefPtr for some things that
can never be null.
- Modules/webdatabase/Database.idl: Added ImplementationLacksVTable because the
Database class is not polymorphic.
- Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::DatabaseContext): Take a reference instead of a pointer.
Moved data member initialization into class definition. Remove code that tries to do
debug accounting and databasecontext registration and instead just make sure to keep
the ScriptExecutionContext pointing at the DatabaseContext.
(WebCore::DatabaseContext::~DatabaseContext): Ditto.
(WebCore::DatabaseContext::stopDatabases): Ditto.
- Modules/webdatabase/DatabaseContext.h: Updated for the above. Also used the
scriptExecutionContext function inherited from the base class intead of adding our
own, and added a existingDatabaseThread() function, letting us get at the database
thread efficiently without creating a new one.
- Modules/webdatabase/DatabaseError.h: Removed. We now use DOM exceptions directly
instead of our own error enumeration that has to be translated to a DOM exception.
- Modules/webdatabase/DatabaseManager.cpp: Moved the ProposedDatabase class here
from the header file, and had it use references instead of pointers.
(WebCore::DatabaseManager::DatabaseManager): Deleted. There was nothing left to
initialize once the refactoring was done.
(WebCore::DatabaseManager::initialize): Call DatabaseTracker directly instead of
calling through m_server.
(WebCore::DatabaseManager::setClient): Ditto.
(WebCore::DatabaseManager::databaseDirectoryPath): Deleted. Callers will use the
function in DatabaseTracker directly.
(WebCore::DatabaseManager::setDatabaseDirectoryPath): Ditto.
(WebCore::DatabaseManager::existingDatabaseContextFor): Deleted. Callers will use
the ScriptExecutionContext::databaseContext function instead.
(WebCore::DatabaseManager::databaseContext): Renamed from databaseContextFor.
(WebCore::DatabaseManager::registerDatabaseContext): Deleted.
(WebCore::DatabaseManager::unregisterDatabaseContext): Deleted.
(WebCore::DatabaseManager::didConstructDatabaseContext): Deleted.
(WebCore::DatabaseManager::didDestructDatabaseContext): Deleted.
(WebCore::DatabaseManager::exceptionCodeForDatabaseError): Deleted.
(WebCore::logOpenDatabaseError): Tweaked conditionals a bit.
(WebCore::DatabaseManager::openDatabaseBackend): Use ExceptionOr. Changed to call
tryToOpenDatabaseBackend function here in this class rather than using m_server.
(WebCore::DatabaseManager::tryToOpenDatabaseBackend): Added. Moved here from the
DatabaseServer class.
(WebCore::DatabaseManager::addProposedDatabase): Take a reference.
(WebCore::DatabaseManager::removeProposedDatabase): Ditto.
(WebCore::DatabaseManager::openDatabase): Use ExceptionOr.
(WebCore::DatabaseManager::hasOpenDatabases): Use ScriptContext::databaseContext
directly instead of using helper functions in this class.
(WebCore::DatabaseManager::stopDatabases): Ditto.
(WebCore::DatabaseManager::fullPathForDatabase): Take a reference and also call
DatabaseTracker directly instead of calling through m_server.
(WebCore::DatabaseManager::hasEntryForOrigin): Deleted. Callers will use the
function in DatabaseTracker directly.
(WebCore::DatabaseManager::origins): Ditto.
(WebCore::DatabaseManager::databaseNamesForOrigin): Ditto.
(WebCore::DatabaseManager::detailsForNameAndOrigin): Call DatabaseTracker directly
instead of calling through m_server.
(WebCore::DatabaseManager::usageForOrigin): Deleted. Callers will use the
function in DatabaseTracker directly.
(WebCore::DatabaseManager::quotaForOrigin): Ditto.
(WebCore::DatabaseManager::setQuota): Ditto.
(WebCore::DatabaseManager::deleteAllDatabasesImmediately): Ditto.
(WebCore::DatabaseManager::deleteOrigin): Ditto.
(WebCore::DatabaseManager::deleteDatabase): Ditto.
(WebCore::DatabaseManager::closeAllDatabases): Ditto.
(WebCore::DatabaseManager::logErrorMessage): Take a reference.
- Modules/webdatabase/DatabaseManager.h: Updated for changes above.
- Modules/webdatabase/DatabaseManagerClient.h: Use references for security origins.
Also changed #if for iOS so that other platforms can call the iOS-specific functions
and they have inline empty bodies; lets us clean up call sites to not need conditionals.
- Modules/webdatabase/DatabaseServer.cpp: Removed.
- Modules/webdatabase/DatabaseServer.h: Removed.
- Modules/webdatabase/DatabaseTask.cpp:
(WebCore::isolatedCopy): Added. Helper functions for making isolated copies of
exceptions, which can contain strings.
(WebCore::DatabaseOpenTask::DatabaseOpenTask): Use ExceptionOr<void> instead of
a DatabaseError, a String, and a success boolean.
(WebCore::DatabaseOpenTask::doPerformTask): Updated to use ExceptoinOr.
(WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask): Renamed.
(WebCore::DatabaseTableNamesTask::doPerformTask): Added a comment.
- Modules/webdatabase/DatabaseTask.h: Updated for above changes.
- Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::DatabaseThread): Initialized data members in the class
definition. Removed m_transactionClient.
(WebCore::DatabaseThread::recordDatabaseOpen): Take a reference.
(WebCore::DatabaseThread::recordDatabaseClosed): Ditto.
(WebCore::DatabaseThread::scheduleTask): Use an rvalue reference.
(WebCore::DatabaseThread::scheduleImmediateTask): Ditto.
(WebCore::DatabaseThread::unscheduleDatabaseTasks): Use a lambda instead of a
class for the same-database predicate.
- Modules/webdatabase/DatabaseThread.h: Updated for above.
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::isolatedCopy): Added. Helper for making an isolated copy of a vector
of strings.
(WebCore::DatabaseTracker::singleton): Renamed from tracker.
(WebCore::DatabaseTracker::DatabaseTracker): Moved the code from
setDatabaseDirectoryPath in here.
(WebCore::DatabaseTracker::setDatabaseDirectoryPath): Deleted.
(WebCore::DatabaseTracker::databaseDirectoryPath): Deleted.
(WebCore::DatabaseTracker::hasAdequateQuotaForOrigin): Use ExceptionOr.
(WebCore::DatabaseTracker::canEstablishDatabase): Ditto.
(WebCore::DatabaseTracker::retryCanEstablishDatabase): Ditto.
(WebCore::DatabaseTracker::hasEntryForOriginNoLock): Take a reference.
(WebCore::DatabaseTracker::hasEntryForOrigin): Deleted.
(WebCore::DatabaseTracker::hasEntryForDatabase): Take a reference.
(WebCore::DatabaseTracker::maximumSize): Renamed from getMaxSizeForDatabase
and changed to take a reference.
(WebCore::DatabaseTracker::originPath): Take a reference.
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock): Ditto.
(WebCore::DatabaseTracker::fullPathForDatabase): Ditto.
(WebCore::DatabaseTracker::origins): Changed to use a return value instead
of using an out argument.
(WebCore::DatabaseTracker::databaseNamesNoLock): Ditto. Also renamed from
databaseNamesForOriginNoLock.
(WebCore::DatabaseTracker::databaseNames): Ditto. Also renamed from
databaseNamesForOrigin.
(WebCore::DatabaseTracker::detailsForNameAndOrigin): Take a reference.
(WebCore::DatabaseTracker::setDatabaseDetails): Ditto.
(WebCore::DatabaseTracker::doneCreatingDatabase): Ditto.
(WebCore::DatabaseTracker::addOpenDatabase): Ditto.
(WebCore::DatabaseTracker::removeOpenDatabase): Ditto.
(WebCore::DatabaseTracker::getOpenDatabases): Deleted.
(WebCore::DatabaseTracker::originLockFor): Take a reference.
(WebCore::DatabaseTracker::deleteOriginLockFor): Take a reference.
(WebCore::DatabaseTracker::usage): Renamed from usageForOrigin. Take a reference.
(WebCore::DatabaseTracker::quotaNoLock): Renamed from quotaForOriginNoLock.
Take a reference.
(WebCore::DatabaseTracker::quota): Renamed from quatoForOrigin. Take a reference.
(WebCore::DatabaseTracker::setQuota): Take a reference.
(WebCore::DatabaseTracker::addDatabase): Ditto.
(WebCore::DatabaseTracker::deleteAllDatabasesImmediately): Updated now that
origins has a return value.
(WebCore::DatabaseTracker::deleteDatabasesModifiedSince): Ditto.
(WebCore::DatabaseTracker::deleteOrigin): Take a reference.
(WebCore::DatabaseTracker::isDeletingDatabaseOrOriginFor): Ditto.
(WebCore::DatabaseTracker::recordCreatingDatabase): Updated to take a reference,
use unique_ptr, and use HashCountedSet.
(WebCore::DatabaseTracker::doneCreatingDatabase): Ditto.
(WebCore::DatabaseTracker::creatingDatabase): Ditto.
(WebCore::DatabaseTracker::canDeleteDatabase): Take a reference.
(WebCore::DatabaseTracker::recordDeletingDatabase): Updated to take a reference,
and use unique_ptr.
(WebCore::DatabaseTracker::doneDeletingDatabase): Ditto.
(WebCore::DatabaseTracker::isDeletingDatabase): Ditto.
(WebCore::DatabaseTracker::canDeleteOrigin): Take a reference.
(WebCore::DatabaseTracker::isDeletingOrigin): Ditto.
(WebCore::DatabaseTracker::recordDeletingOrigin): Ditto.
(WebCore::DatabaseTracker::doneDeletingOrigin): Ditto.
(WebCore::DatabaseTracker::deleteDatabase): Ditto.
(WebCore::DatabaseTracker::deleteDatabaseFile): Ditto.
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases): Ditto.
(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged): Ditto.
(WebCore::DatabaseTracker::notifyDatabasesChanged): Ditto.
- Modules/webdatabase/DatabaseTracker.h: Updated for above changes.
- Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::SQLStatement): Updated since Database::scriptExecutionContext
now returns a reference.
- Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::SQLTransaction): Moved data member initialization to
the calss definition. Also updated since Database::scriptExecutionContext now
returns a reference.
(WebCore::SQLTransaction::executeSQL): Use ExceptionOr.
(WebCore::SQLTransaction::checkAndHandleClosedDatabase): Updated since
databaseContext now returns a reference.
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Updated to call
didExceedQuota on the database instead of the transaction client.
(WebCore::SQLTransaction::postflightAndCommit): Updated to call
didCommitWriteTransaction on the database instead of the transaction client.
(WebCore::SQLTransaction::acquireOriginLock): Updated for name change of
DatabaseTracker::tracker to DatbaseTracker::singleton.
- Modules/webdatabase/SQLTransaction.h: Updated for above.
- Modules/webdatabase/SQLTransaction.idl: Added MayThrowException to
executeSql. Not technically needed since it's a custom binding.
- Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::doCleanup): Updated assertion to use
Database::databaseThread.
(WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown): Ditto.
- Modules/webdatabase/SQLTransactionClient.cpp: Removed.
- Modules/webdatabase/SQLTransactionClient.h: Removed.
- Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::getDatabaseIdentifier): Updated to pass a reference.
- WebCore.xcodeproj/project.pbxproj: Removed various deleted files.
Also let Xcode change the whitespace on some lines.
- bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql): Use ExceptionOr, specifically by
using the propagateException function.
- dom/ScriptExecutionContext.h: Added databaseContext function. Before, we
had setDatabaseContext, but no way to inspect the pointer that was stored.
- inspector/InspectorDatabaseAgent.cpp: Removed IGNORE_EXCEPTION in a call
to executeSQL, which no longer has an ExceptionCode out argument.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading): Pass a reference in the call to
DatabaseManager::stopDatabases.
Source/WebKit/mac:
- Storage/WebDatabaseManager.mm:
(-[WebDatabaseManager origins]): Updated to use DatabaseTracker and pass
a reference.
(-[WebDatabaseManager databasesWithOrigin:]): Ditto.
(-[WebDatabaseManager detailsForDatabase:withOrigin:]): Pass reference,
but continue to use DatabaseManager.
(-[WebDatabaseManager deleteOrigin:]): Use DatabaseTracker and pass a
reference.
(-[WebDatabaseManager deleteDatabase:withOrigin:]): Ditto.
- Storage/WebDatabaseManagerClient.h: Updated to take references.
- Storage/WebDatabaseManagerClient.mm:
(WebDatabaseManagerClient::WebDatabaseManagerClient): Initialize data
members in the class definition.
(DidModifyOriginData::dispatchToMainThread): Take references.
(DidModifyOriginData::DidModifyOriginData): Ditto.
(WebDatabaseManagerClient::dispatchDidModifyOrigin): Ditto.
(WebDatabaseManagerClient::dispatchDidModifyDatabase): Ditto.
(WebDatabaseManagerClient::dispatchDidAddNewOrigin): Ditto. Also use
DatabaseTracker::singleton instead of tracker.
- Storage/WebDatabaseQuotaManager.mm:
(-[WebDatabaseQuotaManager initWithOrigin:]): Reject nil pointer argument.
(-[WebDatabaseQuotaManager usage]): Use reference instead of pointer.
(-[WebDatabaseQuotaManager quota]): Ditto.
(-[WebDatabaseQuotaManager setQuota:]): Ditto.
- WebCoreSupport/WebSecurityOrigin.mm:
(-[WebSecurityOrigin initWithURL:]): Tweaked code a bit.
(-[WebSecurityOrigin usage]): Use DatabaseTracker and pass a reference.
(-[WebSecurityOrigin quota]): Ditto.
(-[WebSecurityOrigin setQuota:]): Ditto.
- WebView/WebFrame.mm:
(-[WebFrame _cacheabilityDictionary]): Pass a reference.
Source/WebKit/win:
- WebDatabaseManager.cpp:
(WebDatabaseManager::origins): Use DatabaseTracker.
(WebDatabaseManager::databasesWithOrigin): Ditto.
(WebDatabaseManager::detailsForDatabase): Use reference.
(WebDatabaseManager::deleteAllDatabases): Use DatabaseTracker.
(WebDatabaseManager::deleteOrigin): Ditto.
(WebDatabaseManager::deleteDatabase): Ditto.
(WebDatabaseManager::dispatchDidModifyOrigin): Use reference
and DatabaseTracker.
(WebDatabaseManager::setQuota): Ditto.
(WebDatabaseManager::dispatchDidModifyDatabase): Ditto.
- WebDatabaseManager.h: Updated client functions to take a reference.
- WebSecurityOrigin.cpp:
(WebSecurityOrigin::usage): Update to use DatabaseTracker.
(WebSecurityOrigin::quota): Ditto.
(WebSecurityOrigin::setQuota): Ditto.
Source/WebKit2:
- UIProcess/API/efl/ewk_database_manager.cpp:
(EwkDatabaseManager::getDatabaseOrigins): Update for change to the
DatabaseTracker::origins function.
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData): Use DatabaseTracker.
(WebKit::WebsiteDataStore::removeData): Ditto.
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetDatabaseQuota): Ditto.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exceededDatabaseQuota): Ditto.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::processWillSuspendImminently): Ditto.
- 12:36 PM Changeset in webkit [208671] by
-
- 2 edits in trunk/Source/WebCore
Try to fix building with newer versions of clang.
- page/FrameView.h: Don’t export an inline function.
- 11:28 AM Changeset in webkit [208670] by
-
- 7 edits2 adds in trunk
Implement WTF::Expected
https://bugs.webkit.org/show_bug.cgi?id=164526
Reviewed by Yusuke Suzuki.
std::expected isn't in C++17, and may be in C++20. It's a nice
complement to std::any / std::optional because it's a type-tagged
union which has a single expected result but could also contain an
error.
This would be useful in the WebAssembly parser, for example.
Using this implementation will allow us to provide feedback to the
standards committee and guide std::expected's design before it
gets standardized. I've already sent a bunch of feedback to the
author based on my experience implementing this.
This could supplement WTF::Either and WTF::ExceptionOr.
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/Compiler.h: Add RELAXED_CONSTEXPR
- wtf/Expected.h: Added.
(WTF::UnexpectedType::UnexpectedType):
(WTF::UnexpectedType::value):
(WTF::operator==):
(WTF::operator!=):
(WTF::operator<):
(WTF::operator>):
(WTF::operator<=):
(WTF::operator>=):
(WTF::makeUnexpected):
(WTF::ExpectedDetail::Throw):
(WTF::ExpectedDetail::ConstexprBase::ConstexprBase):
(WTF::ExpectedDetail::Base::Base):
(WTF::ExpectedDetail::Base::~Base):
(WTF::Expected::Expected):
(WTF::Expected::operator=):
(WTF::Expected::swap):
(WTF::Expected::operator->):
(WTF::Expected::operator*):
(WTF::Expected::operator bool):
(WTF::Expected::hasValue):
(WTF::Expected::value):
(WTF::Expected::error):
(WTF::Expected::getUnexpected):
(WTF::Expected::valueOr):
(WTF::swap):
(WTF::makeExpected):
(WTF::makeExpectedFromError):
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/Expected.cpp: Added.
(WTF::operator<<):
(TestWebKitAPI::TEST):
(TestWebKitAPI::foo::foo):
(TestWebKitAPI::foo::~foo):
(TestWebKitAPI::foo::operator==):
(TestWebKitAPI::operator<<):
- 10:31 AM Changeset in webkit [208669] by
-
- 46 edits in trunk/Source/WebCore
Move crypto code from ExceptionCode to ExceptionOr
https://bugs.webkit.org/show_bug.cgi?id=164698
Reviewed by Sam Weinig.
- bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::JSCryptoAlgorithmDictionary::getAlgorithmIdentifier):
Use the new identifier function instead of getIdentifierForName.
- bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::normalizeCryptoAlgorithmParameters): Ditto.
(WebCore::toCryptoKeyUsageBitmap): Removed a stray meaningless const.
(WebCore::jsSubtleCryptoFunctionGenerateKeyPromise): Pass
ScriptExecutionContext as a reference instead of a pointer.
- bindings/js/JSWebKitSubtleCryptoCustom.cpp:
(WebCore::createAlgorithmFromJSValue): Use the more efficient version
of setDOMException that uses scope.
(WebCore::JSWebKitSubtleCrypto::encrypt): Ditto. Also updated to use
ExceptionOr instead of ExceptionCode.
(WebCore::JSWebKitSubtleCrypto::decrypt): Ditto.
(WebCore::JSWebKitSubtleCrypto::sign): Ditto.
(WebCore::JSWebKitSubtleCrypto::verify): Ditto.
(WebCore::JSWebKitSubtleCrypto::digest): Ditto.
(WebCore::JSWebKitSubtleCrypto::generateKey): Ditto.
(WebCore::importKey): Ditto.
(WebCore::JSWebKitSubtleCrypto::wrapKey): Ditto.
(WebCore::JSWebKitSubtleCrypto::unwrapKey): Ditto.
- crypto/CryptoAlgorithm.cpp:
(WebCore::CryptoAlgorithm::CryptoAlgorithm): Deleted.
(WebCore::CryptoAlgorithm::~CryptoAlgorithm): Deleted.
(WebCore::CryptoAlgorithm::generateKey): Use ExceptionOr.
(WebCore::CryptoAlgorithm::encrypt): Ditto.
(WebCore::CryptoAlgorithm::decrypt): Ditto.
(WebCore::CryptoAlgorithm::sign): Ditto.
(WebCore::CryptoAlgorithm::verify): Ditto.
(WebCore::CryptoAlgorithm::digest): Ditto.
(WebCore::CryptoAlgorithm::deriveKey): Ditto.
(WebCore::CryptoAlgorithm::deriveBits): Ditto.
(WebCore::CryptoAlgorithm::importKey): Ditto.
(WebCore::CryptoAlgorithm::encryptForWrapKey): Ditto.
(WebCore::CryptoAlgorithm::decryptForUnwrapKey): Ditto.
- crypto/CryptoAlgorithm.h: Use ExceptionOr.
Moved the destructor into the header since it's more efficient for
derived classes to have it inlined. Removed the protected constructor
because since there are pure virtual functions in the class, there is
no risk of anyone misusing the public constructor.
- crypto/CryptoAlgorithmRegistry.cpp:
(WebCore::CryptoAlgorithmRegistry::identifier): Renamed from
getIdentifierForName and changed to use an Optional rather than
using a boolean plus an out argument.
(WebCore::CryptoAlgorithmRegistry::name): Renamed to name from
nameForIdentifier. Also updated to share a single map containing
both names and constructors.
(WebCore::CryptoAlgorithmRegistry::create): Share single map as above.
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm): Updated assertions
to a mroe straightforward style. Share single map for names and constructors.
- crypto/CryptoAlgorithmRegistry.h: Updated for above.
- crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::CryptoAlgorithmAES_CBC): Deleted.
(WebCore::CryptoAlgorithmAES_CBC::~CryptoAlgorithmAES_CBC): Deleted.
(WebCore::CryptoAlgorithmAES_CBC::keyAlgorithmMatches): Use references, ExceptionOr.
(WebCore::CryptoAlgorithmAES_CBC::generateKey): Ditto.
(WebCore::CryptoAlgorithmAES_CBC::encrypt): Ditto.
(WebCore::CryptoAlgorithmAES_CBC::decrypt): Ditto.
(WebCore::CryptoAlgorithmAES_CBC::importKey): Ditto.
- crypto/algorithms/CryptoAlgorithmAES_CBC.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
(WebCore::CryptoAlgorithmAES_KW::CryptoAlgorithmAES_KW): Deleted.
(WebCore::CryptoAlgorithmAES_KW::~CryptoAlgorithmAES_KW): Deleted.
(WebCore::CryptoAlgorithmAES_KW::keyAlgorithmMatches): Use references, ExceptionOr.
(WebCore::CryptoAlgorithmAES_KW::generateKey): Ditto.
(WebCore::CryptoAlgorithmAES_KW::importKey): Ditto.
(WebCore::CryptoAlgorithmAES_KW::encryptForWrapKey): Ditto.
(WebCore::CryptoAlgorithmAES_KW::decryptForUnwrapKey): Ditto.
- crypto/algorithms/CryptoAlgorithmAES_KW.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::CryptoAlgorithmHMAC): Deleted.
(WebCore::CryptoAlgorithmHMAC::~CryptoAlgorithmHMAC): Deleted.
(WebCore::CryptoAlgorithmHMAC::generateKey): Use references, ExceptionOr.
(WebCore::CryptoAlgorithmHMAC::sign): Ditto.
(WebCore::CryptoAlgorithmHMAC::verify): Ditto.
(WebCore::CryptoAlgorithmHMAC::importKey): Ditto.
- crypto/algorithms/CryptoAlgorithmHMAC.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::CryptoAlgorithmRSAES_PKCS1_v1_5): Deleted.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::~CryptoAlgorithmRSAES_PKCS1_v1_5): Deleted.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey): Use references, ExceptionOr.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt): Ditto.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt): Ditto.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey): Ditto.
- crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::CryptoAlgorithmRSASSA_PKCS1_v1_5): Deleted.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::~CryptoAlgorithmRSASSA_PKCS1_v1_5): Deleted.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey): Use references, ExceptionOr.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign): Ditto.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify): Ditto.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey): Ditto.
- crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
(WebCore::CryptoAlgorithmRSA_OAEP::CryptoAlgorithmRSA_OAEP): Deleted.
(WebCore::CryptoAlgorithmRSA_OAEP::~CryptoAlgorithmRSA_OAEP): Deleted.
(WebCore::CryptoAlgorithmRSA_OAEP::generateKey): Use references, ExceptionOr.
(WebCore::CryptoAlgorithmRSA_OAEP::encrypt): Ditto.
(WebCore::CryptoAlgorithmRSA_OAEP::decrypt): Ditto.
(WebCore::CryptoAlgorithmRSA_OAEP::importKey): Ditto.
- crypto/algorithms/CryptoAlgorithmRSA_OAEP.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/algorithms/CryptoAlgorithmSHA1.cpp:
(WebCore::CryptoAlgorithmSHA1::CryptoAlgorithmSHA1): Deleted.
(WebCore::CryptoAlgorithmSHA1::~CryptoAlgorithmSHA1): Deleted.
(WebCore::CryptoAlgorithmSHA1::digest): Use ExceptionOr.
- crypto/algorithms/CryptoAlgorithmSHA1.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/algorithms/CryptoAlgorithmSHA224.cpp:
(WebCore::CryptoAlgorithmSHA224::CryptoAlgorithmSHA224): Deleted.
(WebCore::CryptoAlgorithmSHA224::~CryptoAlgorithmSHA224): Deleted.
(WebCore::CryptoAlgorithmSHA224::digest): Use ExceptionOr.
- crypto/algorithms/CryptoAlgorithmSHA224.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/algorithms/CryptoAlgorithmSHA256.cpp:
(WebCore::CryptoAlgorithmSHA256::CryptoAlgorithmSHA256): Deleted.
(WebCore::CryptoAlgorithmSHA256::~CryptoAlgorithmSHA256): Deleted.
(WebCore::CryptoAlgorithmSHA256::digest): Use ExceptionOr.
- crypto/algorithms/CryptoAlgorithmSHA256.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/algorithms/CryptoAlgorithmSHA384.cpp:
(WebCore::CryptoAlgorithmSHA384::CryptoAlgorithmSHA384): Deleted.
(WebCore::CryptoAlgorithmSHA384::~CryptoAlgorithmSHA384): Deleted.
(WebCore::CryptoAlgorithmSHA384::digest): Use ExceptionOr.
- crypto/algorithms/CryptoAlgorithmSHA384.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/algorithms/CryptoAlgorithmSHA512.cpp:
(WebCore::CryptoAlgorithmSHA512::CryptoAlgorithmSHA512): Deleted.
(WebCore::CryptoAlgorithmSHA512::~CryptoAlgorithmSHA512): Deleted.
(WebCore::CryptoAlgorithmSHA512::digest): Use ExceptionOr.
- crypto/algorithms/CryptoAlgorithmSHA512.h: Updated for above.
Also use constexpr for s_name and s_identifier.
- crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp:
(WebCore::calculateSignature): Use Optional instead of a boolean
return value and an out argument.
(WebCore::CryptoAlgorithmHMAC::platformSign): Use ExceptionOr.
(WebCore::CryptoAlgorithmHMAC::platformVerify): Ditto.
- crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp:
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt): Ditto.
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt): Ditto.
- crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp:
(WebCore::CryptoAlgorithmAES_KW::platformEncrypt): Ditto.
(WebCore::CryptoAlgorithmAES_KW::platformDecrypt): Ditto.
- crypto/gnutls/CryptoAlgorithmHMACGnuTLS.cpp:
(WebCore::CryptoAlgorithmHMAC::platformSign): Ditto.
(WebCore::CryptoAlgorithmHMAC::platformVerify): Ditto.
- crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp:
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt): Ditto.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt): Ditto.
- crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): Ditto.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): Ditto.
- crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp:
(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt): Ditto.
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt): Ditto.
- crypto/keys/CryptoKeyAES.cpp:
(WebCore::CryptoKeyAES::buildAlgorithm): Updated to use name instead
of nameForIdentifier.
- crypto/keys/CryptoKeyHMAC.cpp: Ditto.
(WebCore::CryptoKeyHMAC::buildAlgorithm):
- crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt): Use ExceptionOr.
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt): Ditto.
- crypto/mac/CryptoAlgorithmAES_KWMac.cpp:
(WebCore::CryptoAlgorithmAES_KW::platformEncrypt): Ditto.
(WebCore::CryptoAlgorithmAES_KW::platformDecrypt): Ditto.
- crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::commonCryptoHMACAlgorithm): Renamed from
getCommonCryptoHMACAlgorithm and changed to use Optional instead of
a boolean return value and an out argument.
(WebCore::CryptoAlgorithmHMAC::platformSign): Use ExceptionOr.
(WebCore::CryptoAlgorithmHMAC::platformVerify): Ditto.
- crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp:
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt): Ditto.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt): Ditto.
- crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::cryptoDigestAlgorithm): Renamed from
getCryptoDigestAlgorithm and changed to use Optional instead of
a boolean return value and an out argument.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): Use ExceptionOr.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): Ditto.
- crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt): Ditto.
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt): Ditto.
- crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::CryptoKeyRSA::buildAlgorithm): Updated to use name instead
of nameForIdentifier.
- 2:05 AM Changeset in webkit [208668] by
-
- 547 edits in trunk/Source/WebCore
Use #pragma once in WebCore
https://bugs.webkit.org/show_bug.cgi?id=164686
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-11-13
Reviewed by Michael Catanzaro.
- css/*.h:
- plugins/*.h:
- rendering/*.h:
- style/*.h:
- svg/*.h:
- testing/*.h: