Timeline
May 30, 2016:
- 8:35 PM Changeset in webkit [201504] by
-
- 22 edits3 moves2 adds2 deletes in trunk/Source
Move CrossThreadCopier/CrossThreadTask to WTF.
https://bugs.webkit.org/show_bug.cgi?id=158207
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (Refactor, no behavior change).
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- Modules/indexeddb/IDBActiveDOMObject.h:
- Modules/indexeddb/IDBValue.cpp:
- Modules/indexeddb/client/IDBConnectionProxy.h:
- Modules/indexeddb/server/IDBServer.cpp:
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- dom/ScriptExecutionContext.h:
- fileapi/ThreadableBlobRegistry.cpp:
- platform/WebCoreCrossThreadCopier.cpp: Added.
(WTF::WebCore::SessionID>::copy):
(WTF::WebCore::ThreadSafeDataBuffer>::copy):
- platform/WebCoreCrossThreadCopier.h: Added.
- platform/network/cf/ResourceError.h:
(WebCore::ResourceError::isolatedCopy):
- platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::isolatedCopy):
- platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::isolatedCopy):
Source/WebKit2:
- CMakeLists.txt:
- WebKit2.xcodeproj/project.pbxproj:
- DatabaseProcess/DatabaseProcess.cpp:
- DatabaseProcess/DatabaseProcess.h:
- Shared/WebCrossThreadCopier.cpp: Removed.
- Shared/WebCrossThreadCopier.h: Removed.
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/CrossThreadCopier.cpp: Renamed from Source/WebCore/platform/CrossThreadCopier.cpp.
- wtf/CrossThreadCopier.h: Renamed from Source/WebCore/platform/CrossThreadCopier.h.
(WTF::CrossThreadCopierPassThrough::copy):
- wtf/CrossThreadTask.h: Renamed from Source/WebCore/platform/CrossThreadTask.h.
(WTF::CrossThreadTask::CrossThreadTask):
(WTF::CrossThreadTask::performTask):
(WTF::createCrossThreadTask):
- 8:25 PM Changeset in webkit [201503] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Timelines: "-0.000ms" in Self Time
https://bugs.webkit.org/show_bug.cgi?id=158162
<rdar://problem/26523350>
Reviewed by Darin Adler.
Values such as -0.0000 and +0.00001 seem to indicate there is
some floating point error accumulating in profile node data.
Since the sampling profiler isn't accurate to that precision,
let's clean up the data so near-zero numbers are simply zero.
- UserInterface/Models/ProfileNode.js:
Round selfTime down to zero if it's less than the
smallest value we would show in the user interface.
- 1:26 PM Changeset in webkit [201502] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught exception page should pre-populate the bug's URL with the inspected page URL
https://bugs.webkit.org/show_bug.cgi?id=158055
<rdar://problem/26516693>
Reviewed by Saam Barati.
- UserInterface/Debug/UncaughtExceptionReporter.js:
Include the encoded URL in the query string if it is not empty.
- 12:03 PM Changeset in webkit [201501] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
After the crash fix in r201500, update the test expectations for
http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html.
Patch by Per Arne Vollan <pvollan@apple.com> on 2016-05-30
- platform/win/TestExpectations:
- 11:44 AM Changeset in webkit [201500] by
-
- 2 edits in trunk/Source/WebCore
http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html crashes on Windows almost all the time
https://bugs.webkit.org/show_bug.cgi?id=144057
Patch by Per Arne Vollan <pvollan@apple.com> on 2016-05-30
Reviewed by Brent Fulgham.
Protect SocketStreamHandle object before trying to access it on the main thread, and make sure
CFWriteStreamRef parameter is valid before calling CFWriteStreamCanAcceptBytes.
- platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::readStreamCallback):
(WebCore::SocketStreamHandle::writeStreamCallback):
- 9:56 AM Changeset in webkit [201499] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Right-clicking in Snapshot's DataGrid throws an exception
https://bugs.webkit.org/show_bug.cgi?id=157934
<rdar://problem/26380910>
Reviewed by Brian Burg.
Check that click event target is actually a cell, as it can be a row
when focusing the table after dismissing a popup menu.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle):
- 1:14 AM Changeset in webkit [201498] by
-
- 28 edits2 adds in trunk
[CSS Box Alignment] New CSS Value 'normal' for Self Alignment
https://bugs.webkit.org/show_bug.cgi?id=156254
Reviewed by Darin Adler.
Source/WebCore:
The Box Alignment specification defines a new value 'normal' to be used
as default for the different layout models, which will define the
specific behavior for each case. This patch adds a new CSS value in the
parsing logic and adapts the Self Alignment properties to the new
value.
The 'auto' value is no longer valid for the 'align-items' property and
the Computed Value will be always the specified value. Hence, I removed
the StyleResolver logic because is not required now; the specific
behavior of the 'normal' value will be resolved at layout time.
Additionally, this patch updates the layout logic as well, for both
Flexbox and Grid layout models.
Test: css3/parse-alignment-of-root-elements.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::resolveLegacyJustifyItems): Added.
(WebCore::resolveJustifyItemsAuto): Added.
(WebCore::resolveJustifySelfAuto): Added.
(WebCore::resolveAlignSelfAuto): Added.
(WebCore::valueForItemPositionWithOverflowAlignment): Using a StyleSelfAlignmentData argument.
(WebCore::ComputedStyleExtractor::propertyValue): Using the new resolving functions.
- css/CSSParser.cpp:
(WebCore::CSSParser::parseItemPositionOverflowPosition): A new value 'normal' is now valid.
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Mappings for the new value 'normal'.
(WebCore::CSSPrimitiveValue::operator ItemPosition): Mappings for the new value 'normal'.
- css/CSSPropertyNames.in:
- css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): We don't need to resolve 'legacy" keyword.
- rendering/RenderBox.cpp:
(WebCore::flexItemHasStretchAlignment):
(WebCore::RenderBox::hasStretchedLogicalWidth):
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::styleDidChange):
(WebCore::RenderFlexibleBox::alignmentForChild):
(WebCore::contentAlignmentNormalBehaviorFlexibleBox):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
(WebCore::RenderFlexibleBox::alignFlexLines):
(WebCore::RenderFlexibleBox::alignChildren):
- rendering/RenderGrid.cpp:
(WebCore::defaultAlignmentChangedToStretchInRowAxis):
(WebCore::defaultAlignmentChangedFromStretchInRowAxis):
(WebCore::defaultAlignmentChangedFromStretchInColumnAxis):
(WebCore::selfAlignmentChangedToStretchInRowAxis):
(WebCore::selfAlignmentChangedFromStretchInRowAxis):
(WebCore::selfAlignmentChangedFromStretchInColumnAxis):
(WebCore::contentAlignmentNormalBehaviorGrid):
(WebCore::RenderGrid::applyStretchAlignmentToTracksIfNeeded):
(WebCore::RenderGrid::needToStretchChildLogicalHeight):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
(WebCore::RenderGrid::columnAxisPositionForChild):
(WebCore::RenderGrid::rowAxisPositionForChild):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::computeContentPositionAndDistributionOffset):
- rendering/style/RenderStyle.cpp:
(WebCore::resolvedSelfAlignment):
(WebCore::RenderStyle::resolvedAlignItems):
(WebCore::RenderStyle::resolvedAlignSelf):
(WebCore::RenderStyle::resolvedJustifyItems):
(WebCore::RenderStyle::resolvedJustifySelf):
- rendering/style/RenderStyle.h:
- rendering/style/RenderStyleConstants.h:
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): align-items uses now a different initial function.
LayoutTests:
Changes in the already defined tests for the alignment properties to
consider the new CSS value 'normal', which is the default for align-items
and the value to resolve 'auto' when there is no parent.
Added a new test to verify the Self-Alignment properties work as expected
with root elements.
- css3/flexbox/css-properties-expected.txt:
- css3/flexbox/css-properties.html:
- css3/parse-align-items-expected.txt:
- css3/parse-align-items.html:
- css3/parse-align-self-expected.txt:
- css3/parse-align-self.html:
- css3/parse-alignment-of-root-elements-expected.txt: Added.
- css3/parse-alignment-of-root-elements.html: Added.
- fast/css/getComputedStyle/computed-style-expected.txt:
- fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- fast/css/parse-justify-items-expected.txt:
- fast/css/parse-justify-items.html:
- fast/css/parse-justify-self-expected.txt:
- fast/css/parse-justify-self.html:
- fast/css/resources/alignment-parsing-utils.js:
- svg/css/getComputedStyle-basic-expected.txt:
(checkBadValues):
- svg/css/getComputedStyle-basic-expected.txt:
May 29, 2016:
- 11:53 PM Changeset in webkit [201497] by
-
- 10 edits in trunk/Source/WebCore
Transition various Task/Function queues from std::function to NoncopyableFunction.
https://bugs.webkit.org/show_bug.cgi?id=158196
Reviewed by Chris Dumez.
No new tests (Refactor, no behavior change).
- dom/ActiveDOMCallbackMicrotask.cpp:
(WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask):
- dom/ActiveDOMCallbackMicrotask.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::layoutSizeChanged):
- page/FrameView.cpp:
(WebCore::FrameView::queuePostLayoutCallback):
(WebCore::FrameView::flushPostLayoutTasksQueue):
- page/FrameView.h:
- platform/GenericTaskQueue.cpp:
(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):
- platform/GenericTaskQueue.h:
(WebCore::TaskDispatcher::postTask):
(WebCore::GenericTaskQueue::enqueueTask):
- style/StyleTreeResolver.cpp:
(WebCore::Style::postResolutionCallbackQueue):
(WebCore::Style::queuePostResolutionCallback):
(WebCore::Style::suspendMemoryCacheClientCalls):
- style/StyleTreeResolver.h:
- 11:23 PM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 9:30 PM Changeset in webkit [201496] by
-
- 7 edits in trunk/Source/WebCore
Make ScriptExecutionContext::Task work in terms of wtf::NoncopyableFunction instead of std::function.
https://bugs.webkit.org/show_bug.cgi?id=158187
Reviewed by Chris Dumez.
No new tests (Refactor, no behavior change).
Also make postTask take an rvalue reference.
- bindings/js/JSDOMGlobalObjectTask.cpp:
(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
- dom/Document.cpp:
(WebCore::Document::postTask):
- dom/Document.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::Task::Task):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::postTask):
- workers/WorkerGlobalScope.h:
- 12:01 PM Changeset in webkit [201495] by
-
- 9 edits1 add in trunk/Source/JavaScriptCore
Stack overflow crashes with deep or cyclic proxy prototype chains
https://bugs.webkit.org/show_bug.cgi?id=157087
Reviewed by Filip Pizlo and Mark Lam.
Because a Proxy can call back into the JS runtime in arbitrary
ways, we may have effectively cyclic prototype chains and property lookups
by using a Proxy. We may also have arbitrarily long Proxy chains
where we call into a C frame for each link in the Proxy chain.
This means that every Proxy hook must be aware that it can stack overflow.
Before, only certain hooks were aware of this fact. That was a bug,
all hooks must assume they can stack overflow.
Also, because we may have effectively cyclic prototype chains, we
compile ProxyObject.cpp with -fno-optimize-sibling-calls. This prevents
tail call optimization from happening on any of the calls from
ProxyObject.cpp. We do this because we rely on the machine stack
growing for throwing a stack overflow error. It's better for developers
to be able to see a stack overflow error than to have their program
infinite loop because the compiler performed TCO.
This patch also fixes a couple call sites of various methods
where we didn't check for an exception.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- interpreter/Interpreter.cpp:
(JSC::sizeOfVarargs):
- runtime/InternalFunction.cpp:
(JSC::InternalFunction::createSubclassStructure):
- runtime/JSArray.h:
(JSC::getLength):
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToString):
- runtime/ProxyObject.cpp:
(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::getOwnPropertySlotCommon):
(JSC::ProxyObject::performPut):
(JSC::performProxyCall):
(JSC::performProxyConstruct):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performIsExtensible):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performGetOwnPropertyNames):
(JSC::ProxyObject::getOwnPropertyNames):
(JSC::ProxyObject::getPropertyNames):
(JSC::ProxyObject::getOwnNonIndexPropertyNames):
(JSC::ProxyObject::performSetPrototype):
(JSC::ProxyObject::performGetPrototype):
- runtime/ProxyObject.h:
(JSC::ProxyObject::create):
- tests/stress/proxy-stack-overflow-exceptions.js: Added.
(shouldThrowStackOverflow):
(const.emptyFunction):
(makeLongProxyChain):
(shouldThrowStackOverflow.longProxyChain):
(shouldThrowStackOverflow.effecivelyCyclicProxyProtoChain1):
(shouldThrowStackOverflow.effecivelyCyclicProxyProtoChain2):
(shouldThrowStackOverflow.effecivelyCyclicProxyProtoChain3):
(shouldThrowStackOverflow.longProxyChainBind):
(shouldThrowStackOverflow.longProxyChainPropertyAccess):
(shouldThrowStackOverflow.longProxyChainReflectConstruct):
(shouldThrowStackOverflow.longProxyChainReflectSet):
(shouldThrowStackOverflow.longProxyChainReflectOwnKeys):
(shouldThrowStackOverflow.longProxyChainGetPrototypeOf):
(shouldThrowStackOverflow.longProxyChainSetPrototypeOf):
(shouldThrowStackOverflow.longProxyChainGetOwnPropertyDescriptor):
(shouldThrowStackOverflow.longProxyChainDefineProperty):
(shouldThrowStackOverflow.longProxyChainIsExtensible):
(shouldThrowStackOverflow.longProxyChainPreventExtensions):
(shouldThrowStackOverflow.longProxyChainDeleteProperty):
(shouldThrowStackOverflow.longProxyChainWithScope):
(shouldThrowStackOverflow.longProxyChainWithScope2):
(shouldThrowStackOverflow.longProxyChainWithScope3):
(shouldThrowStackOverflow.longProxyChainArrayPrototypePush):
(shouldThrowStackOverflow.longProxyChainWithScope4):
(shouldThrowStackOverflow.longProxyChainCall):
(shouldThrowStackOverflow.longProxyChainConstruct):
(shouldThrowStackOverflow.longProxyChainHas):