⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



May 30, 2016:

8:35 PM Changeset in webkit [201504] by beidson@apple.com
  • 22 edits
    3 moves
    2 adds
    2 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 BJ Burg
  • 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 BJ Burg
  • 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 peavo@outlook.com
  • 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 peavo@outlook.com
  • 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 Matt Baker
  • 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 jfernandez@igalia.com
  • 28 edits
    2 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 beidson@apple.com
  • 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 Carlos Garcia Campos
(diff)
9:30 PM Changeset in webkit [201496] by beidson@apple.com
  • 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 sbarati@apple.com
  • 9 edits
    1 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):

Note: See TracTimeline for information about the timeline view.