Timeline



Feb 27, 2015:

11:26 PM Changeset in webkit [180817] by Csaba Osztrogonác
  • 4 edits in trunk/Source

Source/WebCore:
[EFL][GTK] Fix build break after r180790,180798
https://bugs.webkit.org/show_bug.cgi?id=142127

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-02-27
Reviewed by Gyuyoung Kim.

  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::addEllipse):

Source/WebKit2:
[EFL][GTK] Fix build break after r180790,180798
https://bugs.webkit.org/show_bug.cgi?id=142127

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-02-27
Reviewed by Gyuyoung Kim.

  • CMakeLists.txt:
11:12 PM Changeset in webkit [180816] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[Win] Unreviewed build fix.

Adjust project dependencies to ensure a consistent build order.

  • WebKit.vcxproj/WebKit.sln:
10:21 PM Changeset in webkit [180815] by Alan Bujtas
  • 18 edits in trunk

Subpixel-layout: width: max-content; property might cause unnecessary scrollbar.
https://bugs.webkit.org/show_bug.cgi?id=142065

Reviewed by Simon Fraser.

Source/WebCore:

We should not pixelsnap (ceil in this case) logical coordinates during layout.
Should this cause content to be partially cut off, we need to
find the broken piece in the computation logic.

Covered by the unskipped test.

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::paddedLayoutOverflowRect):

LayoutTests:

Rebaseline. Scroll layer shrinks in certain cases.

  • platform/mac-mavericks/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/mac-mavericks/fast/css/text-overflow-input-expected.txt:
  • platform/mac-mavericks/fast/forms/basic-inputs-expected.txt:
  • platform/mac-mavericks/fast/forms/control-restrict-line-height-expected.txt:
  • platform/mac-mavericks/fast/forms/input-disabled-color-expected.txt:
  • platform/mac-mavericks/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac-mavericks/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/TestExpectations:
  • platform/mac/fast/forms/control-restrict-line-height-expected.txt:
  • platform/mac/fast/forms/input-appearance-selection-expected.txt:
  • platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/mac/fast/forms/input-type-text-min-width-expected.txt:
  • platform/mac/fast/forms/minWidthPercent-expected.txt:
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug96334-expected.txt:
10:02 PM Changeset in webkit [180814] by Darin Adler
  • 6 edits
    1 delete in trunk/Source/WTF

Remove unused PossiblyNull
https://bugs.webkit.org/show_bug.cgi?id=142124

Reviewed by Andreas Kling.

  • WTF.vcxproj/WTF.vcxproj: Removed the file.
  • WTF.vcxproj/WTF.vcxproj.filters: Ditto.
  • WTF.xcodeproj/project.pbxproj: Ditto.
  • wtf/CMakeLists.txt: Ditto.
  • wtf/PossiblyNull.h: Removed.
  • wtf/FastMalloc.h: Moved everything to the left.

Moved member functions out of the TryMallocReturnValue class definition.
(WTF::TryMallocReturnValue::operator PossiblyNull<T>): Deleted.
(WTF::TryMallocReturnValue::getValue): Marked inline, changed to work
only with pointer types, not arbitrary non-pointer types.

7:21 PM Changeset in webkit [180813] by benjamin@webkit.org
  • 23 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Use the way number constants are written to help type speculation
https://bugs.webkit.org/show_bug.cgi?id=142072

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-27
Reviewed by Filip Pizlo.

This patch changes how we interpret numeric constant based on how they appear
in the source.

Constants that are integers but written with a decimal point now carry that information
to the optimizating tiers. From there, we use that to be more aggressive about typing
math operations toward double operations.

For example, in:

var a = x + 1.0;
var b = y + 1;

The Add for a would be biased toward doubles, the Add for b would speculate
integer as usual.

The gains are tiny but this is a prerequisite to make my next patch useful:
-SunSpider's access-fannkuch: definitely 1.0661x faster
-SunSpider's math-cordic: definitely 1.0266x slower

overal: might be 1.0066x slower.

-Kraken's imaging-darkroom: definitely 1.0333x faster.

  • parser/Lexer.cpp:

(JSC::tokenTypeForIntegerLikeToken):
(JSC::Lexer<T>::lex):
The lexer now create two types of tokens for number: INTEGER and DOUBLE.
Those token types only carry information about how the values were
entered, an INTEGER does not have to be an integer, it is only written like one.
Large integer still end up represented as double in memory.

One trap I fell into was typing numbers like 12e3 as double. This kind of literal
is frequently used in integer-typed code, while 12.e3 would appear in double-typed
code.
Because of that, the only signals for double are: decimal point, negative zero,
and ridiculously large values.

  • parser/NodeConstructors.h:

(JSC::DoubleNode::DoubleNode):
(JSC::IntegerNode::IntegerNode):

  • parser/Nodes.h:

(JSC::NumberNode::value):
(JSC::NumberNode::setValue): Deleted.
Number get specialized in two new kind of nodes in the AST: IntegerNode and DoubleNode.

  • bytecompiler/NodesCodegen.cpp:

(JSC::NumberNode::emitBytecode):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createDoubleExpr):
(JSC::ASTBuilder::createIntegerExpr):
(JSC::ASTBuilder::createIntegerLikeNumber):
(JSC::ASTBuilder::createDoubleLikeNumber):
(JSC::ASTBuilder::createNumberFromBinaryOperation):
(JSC::ASTBuilder::createNumberFromUnaryOperation):
(JSC::ASTBuilder::makeNegateNode):
(JSC::ASTBuilder::makeBitwiseNotNode):
(JSC::ASTBuilder::makeMultNode):
(JSC::ASTBuilder::makeDivNode):
(JSC::ASTBuilder::makeModNode):
(JSC::ASTBuilder::makeAddNode):
(JSC::ASTBuilder::makeSubNode):
(JSC::ASTBuilder::makeLeftShiftNode):
(JSC::ASTBuilder::makeRightShiftNode):
(JSC::ASTBuilder::makeURightShiftNode):
(JSC::ASTBuilder::makeBitOrNode):
(JSC::ASTBuilder::makeBitAndNode):
(JSC::ASTBuilder::makeBitXOrNode):
(JSC::ASTBuilder::createNumberExpr): Deleted.
(JSC::ASTBuilder::createNumber): Deleted.
The AST has some optimization to resolve constants before emitting bytecode.
In the new code, the intger representation is kept if both operands where
also represented as integers.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDeconstructionPattern):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::printUnexpectedTokenText):

  • parser/ParserTokens.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createDoubleExpr):
(JSC::SyntaxChecker::createIntegerExpr):
(JSC::SyntaxChecker::createNumberExpr): Deleted.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::registerName):
(JSC::CodeBlock::constantName):
Change constantName(r, getConstant(r)) -> constantName(r) to simplify
the dump code.

(JSC::CodeBlock::dumpBytecode):
Dump thre soure representation information we have with each constant.

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::shrinkToFit):
(JSC::constantName): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::constantsSourceCodeRepresentation):
(JSC::CodeBlock::addConstant):
(JSC::CodeBlock::addConstantLazily):
(JSC::CodeBlock::constantSourceCodeRepresentation):
(JSC::CodeBlock::setConstantRegisters):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::addConstant):
(JSC::UnlinkedCodeBlock::constantsSourceCodeRepresentation):
(JSC::UnlinkedCodeBlock::shrinkToFit):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::addConstantValue):
(JSC::BytecodeGenerator::emitLoad):

  • bytecompiler/BytecodeGenerator.h:

We have to differentiate between constants that have the same values but are
represented differently in the source. Values like 1.0 and 1 now end up
as different constants.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::get):
(JSC::DFG::ByteCodeParser::addConstantToGraph):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::registerFrozenValues):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addSpeculationMode):
(JSC::DFG::Graph::addImmediateShouldSpeculateInt32):
ArithAdd is very aggressive toward using Int52, which is quite useful
in many benchmarks.

Here we need to specialize to make sure we don't force our literals
to Int52 if there were represented as double.

There is one exception to that rule: when the other operand is guaranteed
to come from a NodeResultInt32. This is because there is some weird code
doing stuff like:

var b = a|0;
var c = b*2.0;

  • dfg/DFGNode.h:

(JSC::DFG::Node::Node):
(JSC::DFG::Node::setOpAndDefaultFlags):
(JSC::DFG::Node::sourceCodeRepresentation):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • runtime/JSCJSValue.h:

(JSC::EncodedJSValueWithRepresentationHashTraits::emptyValue):
(JSC::EncodedJSValueWithRepresentationHashTraits::constructDeletedValue):
(JSC::EncodedJSValueWithRepresentationHashTraits::isDeletedValue):
(JSC::EncodedJSValueWithRepresentationHash::hash):
(JSC::EncodedJSValueWithRepresentationHash::equal):

  • tests/stress/arith-add-with-constants.js: Added.
  • tests/stress/arith-mul-with-constants.js: Added.
7:16 PM Changeset in webkit [180812] by ddkilzer@apple.com
  • 3 edits
    2 adds in trunk/LayoutTests

[iOS] Gardening: rebaseline fast/attachment results

  • platform/ios-simulator/fast/attachment/attachment-disabled-dom-expected.txt: Add.
  • platform/ios-simulator/fast/attachment/attachment-disabled-rendering-expected.txt: Update.
  • platform/ios-simulator/fast/attachment/attachment-dom-expected.txt: Add.
  • platform/ios-simulator/fast/attachment/attachment-rendering-expected.txt: Update.
6:51 PM Changeset in webkit [180811] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

[iOS] Gardening: Unskip fast/history/page-cache-webdatabase-opened-db.html

  • platform/ios-simulator/TestExpectations: Unskip test. It

passes on iOS WK1 and WK2 because WebSQL != IndexedDB.

6:51 PM Changeset in webkit [180810] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

[iOS] Gardening: Skip some new page-cache tests

  • platform/ios-simulator/TestExpectations:
  • Skip MediaSource tests: fast/history/page-cache-media-source-closed-2.html fast/history/page-cache-media-source-closed.html fast/history/page-cache-media-source-opened.html
  • Skip test that uses drag-and-drop: fast/history/page-cache-createObjectURL.html
6:41 PM Changeset in webkit [180809] by rniwa@webkit.org
  • 14 edits in trunk/Source/WebCore

Node::hasEditableStyle and isEditablePosition have too many options
https://bugs.webkit.org/show_bug.cgi?id=142078

Reviewed by Andreas Kling.

Moved the code that dealt with accessibility to htmlediting.cpp from Node. This patch introduces
new editing helper functions hasEditableStyle and isEditableNode for this purpose.

Also removed UserSelectAllTreatment from isContentEditable's arguments in the favor of using
newly extracted computeEditability in call sites that specify this option since isContentEditable
is a public DOM API.

No new tests since there should be no observable behavior changes.

  • accessibility/AXObjectCache.h: Removed the declaration of an undefined function.
  • dom/Element.cpp:

(WebCore::Element::shouldUseInputMethod): Uses newly added computeEditability.

  • dom/Node.cpp:

(WebCore::Node::isContentEditable): Ditto. No longer takes UserSelectAllTreatment as an argument.
(WebCore::Node::isContentRichlyEditable): Ditto.
(WebCore::Node::computeEditability): Renamed from hasEditableStyle to avoid the confusion with
a helper function of the same name. Added ShouldUpdateStyle as an argument to optionally update
style tree. Also returns tri-state Editability enum instead of returning a boolean based on
the value of EditableLevel argument.
(WebCore::Node::isEditableToAccessibility): Moved to htmlediting.cpp.
(WebCore::Node::willRespondToMouseClickEvents): Uses newly added computeEditability.
(WebCore::Node::rootEditableElement): Moved to htmlediting.cpp.

  • dom/Node.h: No longer includes EditingBoundary.h.

(WebCore::Node::isContentEditable):
(WebCore::Node::hasEditableStyle): No longer takes EditableType as an argument.
(WebCore::Node::hasRichlyEditableStyle): Ditto.

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Uses newly added isEditableNode.
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Ditto.

  • editing/DeleteFromTextNodeCommand.cpp:

(WebCore::DeleteFromTextNodeCommand::doApply): Ditto.

  • editing/FrameSelection.cpp:

(WebCore::CaretBase::invalidateCaretRect): Ditto.

  • editing/InsertNodeBeforeCommand.cpp:

(WebCore::InsertNodeBeforeCommand::doApply): Ditto.
(WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.

  • editing/RemoveNodeCommand.cpp:

(WebCore::RemoveNodeCommand::doApply): Ditto.

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::hasEditableStyle): Since this is the only caller of isEditablePosition
which sets DoNotUpdateStyle, directly call hasEditableStyle on the container node instead. This was
not possible prior to r180726 because isEditablePosition had to move out of tables.

  • editing/VisibleUnits.cpp:

(WebCore::previousLeafWithSameEditability): Uses newly added hasEditableStyle.
(WebCore::nextLeafWithSameEditability): Ditto.
(WebCore::rootEditableOrDocumentElement): Extracted from previousLinePosition. Use helper functions
in htmlediting.cpp instead of member functions of Node since they no longer support EditableType.
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):

  • editing/htmlediting.cpp:

(WebCore::highestEditableRoot): Uses newly added hasEditableStyle.
(WebCore::isEditableToAccessibility): Moved from Node.
(WebCore::computeEditability): Extracted from isEditablePosition.
(WebCore::hasEditableStyle): Added.
(WebCore::isEditableNode): Added.
(WebCore::isEditablePosition): Now calls computeEditability.
(WebCore::isRichlyEditablePosition): No longer takes EditableType since that variant was never used.
(WebCore::editableRootForPosition): Moved the code from Node::rootEditableElement.

  • editing/htmlediting.h:
6:14 PM Changeset in webkit [180808] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Test gardening for Windows after r180796.

Unreviewed.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-02-27

  • platform/win/TestExpectations:
5:57 PM Changeset in webkit [180807] by dino@apple.com
  • 2 edits in trunk/LayoutTests

https://bugs.webkit.org/show_bug.cgi?id=142119

Unreviewed. Add fast/canvas/canvas-ellipse-zero-lineto.html
to list of failing tests on Windows.

  • platform/win/TestExpectations:
5:52 PM Changeset in webkit [180806] by rniwa@webkit.org
  • 2 edits in trunk/Source/bmalloc

Fixed a typo in the previous commit.

  • bmalloc/BoundaryTag.h:

(bmalloc::BoundaryTag::setOwner):

5:46 PM Changeset in webkit [180805] by rniwa@webkit.org
  • 2 edits in trunk/Source/bmalloc

EFL build fix after r180797.

  • bmalloc/BoundaryTag.h:

(bmalloc::BoundaryTag::owner):
(bmalloc::BoundaryTag::setOwner):

5:43 PM Changeset in webkit [180804] by Chris Dumez
  • 10 edits
    1 move
    3 deletes in trunk/Source/WebKit2

[WK2] Drop legacy WKBundlePageDiagnosticLoggingClient API
https://bugs.webkit.org/show_bug.cgi?id=141176

Reviewed by Sam Weinig.

Drop legacy WKBundlePageDiagnosticLoggingClient WK2 API as we are now
exposing this functionality via WKPageDiagnosticLoggingClient.h on
UIProcess side. The client-side has already been ported over.

  • CMakeLists.txt:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI): Deleted.
(WebKit::toDiagnosticLoggingResultType): Deleted.

  • UIProcess/API/C/WKAPICast.h:

(WebKit::toAPI):

  • UIProcess/API/C/WKDiagnosticLoggingResultType.h: Renamed from Source/WebKit2/Shared/API/c/WKDiagnosticLoggingResultType.h.
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageSetDiagnosticLoggingClient): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageDiagnosticLoggingClient.h: Removed.
  • WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp: Removed.
  • WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h: Removed.
  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::close):
(WebKit::WebPage::initializeInjectedBundleDiagnosticLoggingClient): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::injectedBundleDiagnosticLoggingClient): Deleted.

5:33 PM Changeset in webkit [180803] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch/Source

Versioning.

5:19 PM Changeset in webkit [180802] by andersca@apple.com
  • 2 edits
    1 move in trunk/Source/WebKit2

Rename WebResourceCacheManagerCFNet.cpp to WebResourceCacheManagerCFNet.mm

Rubber-stamped by Dan Bernstein.

This will let us use lambda to block conversion in a subsequent patch.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.mm: Renamed from Source/WebKit2/WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.cpp.
5:13 PM March 2015 Meeting edited by dino@apple.com
(diff)
5:05 PM Changeset in webkit [180801] by Chris Dumez
  • 63 edits in trunk/Source

Make ActiveDOMObject::canSuspend() pure virtual
https://bugs.webkit.org/show_bug.cgi?id=142096
<rdar://problem/19923085>

Reviewed by Andreas Kling.

Make ActiveDOMObject::canSuspend() pure virtual so that people at least
try to provide an implementation for it. The default implementation was
returning false unconditionally and thus was preventing pages from
entering the PageCache.

4:48 PM Changeset in webkit [180800] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.15.9

New tag.

4:46 PM Changeset in webkit [180799] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Unreviewed, rolling out r180203 and r180210.
https://bugs.webkit.org/show_bug.cgi?id=142116

broke process suspension and tile map (Requested by thorton on
#webkit).

Reverted changesets:

"Adopt CAMachPort-as-layer-contents"
https://bugs.webkit.org/show_bug.cgi?id=141687
http://trac.webkit.org/changeset/180203

"Fix the !USE(IOSURFACE) build"
http://trac.webkit.org/changeset/180210

4:42 PM Changeset in webkit [180798] by commit-queue@webkit.org
  • 13 edits
    7 adds in trunk

Add WebKit2 SPI to create a DOM File object
https://bugs.webkit.org/show_bug.cgi?id=142109

Patch by Sam Weinig <sam@webkit.org> on 2015-02-27
Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Make <WebCore/File.h> (and associated files) available to WebKit2.

Source/WebKit2:

Add a new handle type for exposing a DOM File object to script. Follow
the pattern of WKBundleNodeHandleRef and WKBundleRangeHandleRef with the
new class WKBundleFileHandleRef. It can be created for a specific path,
and then the JS wrapper can be obtained via WKBundleFrameGetJavaScriptWrapperForFileForWorld.

  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
  • WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.cpp: Added.

(WKBundleFileHandleGetTypeID):
(WKBundleFileHandleCreateWithPath):

  • WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h: Added.
  • WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:

(WKBundleFrameGetJavaScriptWrapperForFileForWorld):

  • WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
  • WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.cpp: Added.

(WebKit::domHandleCache):
(WebKit::InjectedBundleFileHandle::create):
(WebKit::InjectedBundleFileHandle::getOrCreate):
(WebKit::InjectedBundleFileHandle::InjectedBundleFileHandle):
(WebKit::InjectedBundleFileHandle::~InjectedBundleFileHandle):
(WebKit::InjectedBundleFileHandle::coreFile):

  • WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.h: Added.
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::jsWrapperForWorld):

  • WebProcess/WebPage/WebFrame.h:

Tools:

Add a test for WKBundleFileHandleRef.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/WKBundleFileHandle.cpp: Added.

(TestWebKitAPI::didReceiveMessageFromInjectedBundle):
(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2/WKBundleFileHandle_Bundle.cpp: Added.

(TestWebKitAPI::WKBundleFileHandleTest::WKBundleFileHandleTest):

  • TestWebKitAPI/Tests/WebKit2/bundle-file.html: Added.
4:29 PM Changeset in webkit [180797] by ggaren@apple.com
  • 14 edits
    1 add in trunk/Source/bmalloc

bmalloc: Pathological madvise churn on the free(malloc(x)) benchmark
https://bugs.webkit.org/show_bug.cgi?id=142058

Reviewed by Andreas Kling.

The churn was caused by repeatedly splitting an object with physical
pages from an object without, and then merging them back together again.
The merge would conservatively forget that we had physical pages, forcing
a new call to madvise on the next allocation.

This patch more strictly segregates objects in the heap from objects in
the VM heap, with these changes:

(1) Objects in the heap are not allowed to merge with objects in the VM
heap, and vice versa -- since that would erase our precise knowledge of
which physical pages had been allocated.

(2) The VM heap is exclusively responsible for allocating and deallocating
physical pages.

(3) The heap free list must consider entries for objects that are in the
VM heap to be invalid, and vice versa. (This condition can arise
because the free list does not eagerly remove items.)

With these changes, we can know that any valid object in the heap's free
list already has physical pages, and does not need to call madvise.

Note that the VM heap -- as before -- might sometimes contain ranges
or pieces of ranges that have physical pages, since we allow splitting
of ranges at granularities smaller than the VM page size. These ranges
can eventually merge with ranges in the heap during scavenging.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/BoundaryTag.h:

(bmalloc::BoundaryTag::owner):
(bmalloc::BoundaryTag::setOwner):
(bmalloc::BoundaryTag::initSentinel):
(bmalloc::BoundaryTag::hasPhysicalPages): Deleted.
(bmalloc::BoundaryTag::setHasPhysicalPages): Deleted. Replaced the concept
of "has physical pages" with a bit indicating which heap owns the large
object. This is a more precise concept, since the old bit was really a
Yes / Maybe bit.

  • bmalloc/Deallocator.cpp:
  • bmalloc/FreeList.cpp: Adopt

(bmalloc::FreeList::takeGreedy):
(bmalloc::FreeList::take):
(bmalloc::FreeList::removeInvalidAndDuplicateEntries):

  • bmalloc/FreeList.h:

(bmalloc::FreeList::push): Added API for considering the owner when
deciding if a free list entry is valid.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap): Adopt new API.

(bmalloc::Heap::scavengeLargeRanges): Scavenge all ranges with no minimum,
since some ranges might be able to merge with ranges in the VM heap, and
they won't be allowed to until we scavenge them.

(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateMediumPage):
(bmalloc::Heap::allocateLarge): New VM heap API makes this function
simpler, since we always get back physical pages now.

  • bmalloc/Heap.h:
  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::end):
(bmalloc::LargeObject::owner):
(bmalloc::LargeObject::setOwner):
(bmalloc::LargeObject::isValidAndFree):
(bmalloc::LargeObject::merge): Do not merge objects across heaps since
that causes madvise churn.
(bmalloc::LargeObject::validateSelf):
(bmalloc::LargeObject::init):
(bmalloc::LargeObject::hasPhysicalPages): Deleted.
(bmalloc::LargeObject::setHasPhysicalPages): Deleted. Propogate the Owner API.

  • bmalloc/Owner.h: Added.
  • bmalloc/SegregatedFreeList.cpp:

(bmalloc::SegregatedFreeList::SegregatedFreeList):
(bmalloc::SegregatedFreeList::insert):
(bmalloc::SegregatedFreeList::takeGreedy):
(bmalloc::SegregatedFreeList::take):

  • bmalloc/SegregatedFreeList.h: Propogate the owner API.
  • bmalloc/VMAllocate.h:

(bmalloc::vmDeallocatePhysicalPagesSloppy):
(bmalloc::vmAllocatePhysicalPagesSloppy): Clarified these functions and
removed an edge case.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::VMHeap):

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateSmallPage):
(bmalloc::VMHeap::allocateMediumPage):
(bmalloc::VMHeap::allocateLargeObject):
(bmalloc::VMHeap::deallocateLargeObject): Be sure to give each object
a new chance to merge, since it might have been prohibited from merging
before by virtue of not being in the VM heap.

(bmalloc::VMHeap::allocateLargeRange): Deleted.
(bmalloc::VMHeap::deallocateLargeRange): Deleted.

4:28 PM Changeset in webkit [180796] by mmaxfield@apple.com
  • 26 edits in trunk/LayoutTests

Updating more tests after r177774

Unreviewed.

Most of these tests simply need to be updated. However, I found two real bugs while
going through these!

  • fast/css-generated-content/after-with-inline-continuation-expected.html:
  • fast/css-generated-content/after-with-inline-continuation.html:
  • fast/inline/hidpi-pixel-gap-between-adjacent-selection-inlines-expected.html:
  • fast/inline/hidpi-select-inline-on-subpixel-position-expected.html:
  • fast/inline/hidpi-select-inline-on-subpixel-position.html:
  • fast/lists/rtl-marker-expected.html:
  • fast/lists/rtl-marker.html:
  • fast/multicol/cell-shrinkback-expected.html:
  • fast/multicol/cell-shrinkback.html:
  • fast/multicol/newmulticol/breaks-3-columns-3-expected.html:
  • fast/multicol/newmulticol/breaks-3-columns-3.html:
  • fast/regions/last-region-border-radius-expected.html:
  • fast/regions/last-region-border-radius.html:
  • fast/regions/overflow/overflow-first-and-last-regions.html:
  • fast/regions/overflow/overflow-in-uniform-regions-dynamic-expected.html:
  • fast/regions/overflow/overflow-in-uniform-regions-dynamic.html:
  • fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-large-radius-expected.html:
  • fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-large-radius.html:
  • fast/shapes/shape-outside-floats/shape-outside-rounded-inset-expected.html:
  • fast/shapes/shape-outside-floats/shape-outside-rounded-inset.html:
  • fast/table/td-width-fifty-percent-regression-expected.html:
  • fast/table/td-width-fifty-percent-regression.html:
  • fast/text/complex-initial-advance-expected.html:
  • fast/text/complex-initial-advance.html:
  • platform/mac/TestExpectations:
4:23 PM Changeset in webkit [180795] by mmaxfield@apple.com
  • 5 edits in trunk

[Subpixel] Subpixelize RenderListMarker
https://bugs.webkit.org/show_bug.cgi?id=142093

Reviewed by Zalan Bujtas.

Source/WebCore:

Use floats instead of ints.

Test: fast/lists/rtl-marker.html

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::updateContent):
(WebCore::RenderListMarker::getRelativeMarkerRect):

  • rendering/RenderListMarker.h:

LayoutTests:

  • platform/mac/TestExpectations: Unskip fast/lists/rtl-marker.html
4:09 PM Changeset in webkit [180794] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebCore

<attachment> should be selected immediately upon click, and be drag/copyable upon click
https://bugs.webkit.org/show_bug.cgi?id=142114
<rdar://problem/19982520>

Reviewed by Enrica Casucci.

  • css/html.css:

(attachment):
Make attachment use 'user-select: all' to act as a single click-to-select unit.

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::setFocus): Deleted.

  • html/HTMLAttachmentElement.h:
  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::isFocused): Deleted.
(WebCore::RenderAttachment::focusChanged): Deleted.

  • rendering/RenderAttachment.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintAttachment):
Remove focus-related code; instead of focusing the element upon click,
we get a selection including just the <attachment>, and everything
behaves much more consistently (copy works, drag works, etc.).

4:06 PM Changeset in webkit [180793] by ap@apple.com
  • 4 edits in trunk/LayoutTests

Test gardening, unmark now passing tests.

  • TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
4:02 PM Changeset in webkit [180792] by mmaxfield@apple.com
  • 7 edits in trunk

[iOS] Some MathML tests crash in RenderMathMLOperator::advanceForGlyph() or boundsForGlyph()
https://bugs.webkit.org/show_bug.cgi?id=141371

Reviewed by David Kilzer.

Source/WebCore:

Null checks.

Covered by existing mathml tests.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::boundsForGlyph):
(WebCore::RenderMathMLOperator::advanceForGlyph):
(WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator):

LayoutTests:

Updating expected results and TestExpectations

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/ios-simulator/mathml/opentype/large-operators-expected.txt:
  • platform/ios-simulator/mathml/opentype/vertical-expected.txt:
3:46 PM Changeset in webkit [180791] by Chris Dumez
  • 8 edits
    2 adds in trunk

Make SourceBuffer ActiveDOMObject suspendable
https://bugs.webkit.org/show_bug.cgi?id=142108
<rdar://problem/19923085>

Reviewed by Jer Noble.

Source/WebCore:

Make SourceBuffer ActiveDOMObject suspendable if it is removed from its
MediaSource and does not have any pending events. This makes it more
likely for pages using SourceBuffer objects to go into the PageCache.

Test: fast/history/page-cache-removed-source-buffer.html

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::canSuspend):

  • Modules/mediasource/SourceBuffer.h:

LayoutTests:

Add a layout tests to check that a SourceBuffer removed from its
MediaSource does not prevent a Page from entering PageCache.

  • fast/history/page-cache-removed-source-buffer-expected.txt: Added.
  • fast/history/page-cache-removed-source-buffer.html: Added.
3:40 PM Changeset in webkit [180790] by dino@apple.com
  • 8 edits
    19 adds in trunk

Add support for canvas ellipse method
https://bugs.webkit.org/show_bug.cgi?id=82791
<rdar://problem/11159172>

Patch by Sam Weinig <sam@webkit.org> on 2015-02-26
Reviewed by Dirk Schulze.

Source/WebCore:

Tests: fast/canvas/canvas-ellipse-360-winding.html

fast/canvas/canvas-ellipse-circumference-fill.html
fast/canvas/canvas-ellipse-circumference.html
fast/canvas/canvas-ellipse-connecting-line.html
fast/canvas/canvas-ellipse-negative-radius.html
fast/canvas/canvas-ellipse-zero-lineto.html
fast/canvas/canvas-ellipse.html

  • html/canvas/CanvasPathMethods.h:
  • html/canvas/CanvasPathMethods.cpp:

(WebCore::CanvasPathMethods::lineTo):
Convenience for passing a FloatPoint instead of two floats.

(WebCore::normalizeAngles):
Normalizes the angles as described in the HTML spec. Ensuring the startAngle
is greater than 0 and less than 2pi, and the the endAngle is at most 2pi
from the start angle.

(WebCore::CanvasPathMethods::arc):

  • Renames some of the parameters to be clearer.
  • Normalizes the angles for consistency with ellipse.
  • Moves hasInvertibleTransform() higher in the function for consistency.

(WebCore::CanvasPathMethods::ellipse): Added.

  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/DOMPath.idl:

Add ellipse(...).

  • platform/graphics/Path.h:
  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::addArc):
Rename parameters for clarity and use a nullptr.

(WebCore::Path::addEllipse):
Added. Constructs an ellipse via a transformed arc.

LayoutTests:

  • fast/canvas/canvas-ellipse-360-winding-expected.txt: Added.
  • fast/canvas/canvas-ellipse-360-winding.html: Added.
  • fast/canvas/canvas-ellipse-circumference-expected.txt: Added.
  • fast/canvas/canvas-ellipse-circumference-fill-expected.txt: Added.
  • fast/canvas/canvas-ellipse-circumference-fill.html: Added.
  • fast/canvas/canvas-ellipse-circumference.html: Added.
  • fast/canvas/canvas-ellipse-connecting-line-expected.html: Added.
  • fast/canvas/canvas-ellipse-connecting-line.html: Added.
  • fast/canvas/canvas-ellipse-expected.txt: Added.
  • fast/canvas/canvas-ellipse-negative-radius-expected.txt: Added.
  • fast/canvas/canvas-ellipse-negative-radius.html: Added.
  • fast/canvas/canvas-ellipse-zero-lineto-expected.txt: Added.
  • fast/canvas/canvas-ellipse-zero-lineto.html: Added.
  • fast/canvas/canvas-ellipse.html: Added.
  • fast/canvas/script-tests/canvas-ellipse-360-winding.js: Added.
  • fast/canvas/script-tests/canvas-ellipse.js: Added.
  • fast/canvas/script-tests/js-ellipse-implementation.js: Added.
  • platform/mac/fast/canvas/canvas-ellipse-circumference-expected.png: Added.
  • platform/mac/fast/canvas/canvas-ellipse-circumference-fill-expected.png: Added.
3:37 PM Changeset in webkit [180789] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Test more features of content extensions.
https://bugs.webkit.org/show_bug.cgi?id=142100

Patch by Alex Christensen <achristensen@webkit.org> on 2015-02-27
Reviewed by Brady Eidson.

  • http/tests/usercontentfilter/basic-filter.html:
  • http/tests/usercontentfilter/basic-filter.html.json:
  • platform/mac/http/tests/usercontentfilter/basic-filter-expected.txt:
3:35 PM Changeset in webkit [180788] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Use Maps in ResourceCollection instead of objects
https://bugs.webkit.org/show_bug.cgi?id=142101

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-27
Reviewed by Timothy Hatcher.

  • UserInterface/Models/ResourceCollection.js:

(WebInspector.ResourceCollection):
(WebInspector.ResourceCollection.prototype.resourcesWithType):
(WebInspector.ResourceCollection.prototype.removeAllResources):
(WebInspector.ResourceCollection.prototype.resourceForURL):
(WebInspector.ResourceCollection.prototype._associateWithResource):
(WebInspector.ResourceCollection.prototype._disassociateWithResource):
(WebInspector.ResourceCollection.prototype._resourceURLDidChange):
(WebInspector.ResourceCollection.prototype._resourceTypeDidChange):
Use Maps instead of objects.

3:32 PM Changeset in webkit [180787] by msaboff@apple.com
  • 2 edits in trunk/Tools

Add ability for run-jsc-benchmarks to set library path from test binary when run on a build bot
https://bugs.webkit.org/show_bug.cgi?id=142112

Reviewed by Filip Pizlo.

Added check for VMs in the form of <someDir>/{DumpRenderTree,webkitTestRunner,jsc} and use
<someDir> as the library path.

  • Scripts/run-jsc-benchmarks:
3:31 PM Changeset in webkit [180786] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Some WebGL tests fail on ATI hardware
https://bugs.webkit.org/show_bug.cgi?id=93560
rdar://problem/19991477

  • platform/mac/TestExpectations: Updating expectations, as this is not limited to

Mavericks.

3:07 PM Changeset in webkit [180785] by enrica@apple.com
  • 7 edits
    2 adds in trunk

Adding support for serializing HTMLAttachment elements.
https://bugs.webkit.org/show_bug.cgi?id=142026

Reviewed by Tim Horton.

Source/WebCore:

Test: editing/pasteboard/copy-paste-attachment.html

Adding support to serialize the attachment element
and properly handle it when converting a DOM range
to NSAttributedString.

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::_processElement):

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::appendCustomAttributes): Create new attribute
for attachment element when serializating.
(WebCore::StyledMarkupAccumulator::appendElement):
(WebCore::createFragmentFromMarkup): Remove the attribute from the attachment element
when creating the fragment.

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::file): Added const to file() to
use it in appendCustonAttributes where the element is a const reference.

  • html/HTMLAttachmentElement.h:
  • html/HTMLAttributeNames.in:

LayoutTests:

  • editing/pasteboard/copy-paste-attachment-expected.txt: Added.
  • editing/pasteboard/copy-paste-attachment.html: Added.
3:00 PM Changeset in webkit [180784] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

<attachment> should have an inactive style (gray in background)
https://bugs.webkit.org/show_bug.cgi?id=142103
<rdar://problem/19982486>

Reviewed by Dan Bernstein.

  • rendering/RenderThemeMac.mm:

(WebCore::attachmentLabelInactiveBackgroundColor):
(WebCore::attachmentLabelInactiveTextColor):
(WebCore::RenderThemeMac::paintAttachmentLabelBackground):
(WebCore::RenderThemeMac::paintAttachmentLabel):
Use a gray background and gray text when the selection containing the
attachment isn't focused and active.

2:50 PM Changeset in webkit [180783] by beidson@apple.com
  • 9 edits
    7 adds in trunk

Add a "block-cookies" rule to the user content filter.
https://bugs.webkit.org/show_bug.cgi?id=142105

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/usercontentfilter/block-cookies-basic.html

http/tests/usercontentfilter/block-cookies-send.html

  • contentextensions/ContentExtensionRule.h:
  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionForURL):
(WebCore::ContentExtensions::ContentExtensionsBackend::shouldBlockURL): Deleted.

  • contentextensions/ContentExtensionsBackend.h:
  • contentextensions/ContentExtensionsManager.cpp:

(WebCore::ContentExtensions::ExtensionsManager::loadAction):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • page/UserContentController.cpp:

(WebCore::UserContentController::actionForURL):
(WebCore::UserContentController::contentFilterBlocksURL): Deleted.

  • page/UserContentController.h:

LayoutTests:

  • http/tests/cookies/resources/echo-cookies.php: Added.
  • http/tests/usercontentfilter/block-cookies-basic-expected.txt: Added.
  • http/tests/usercontentfilter/block-cookies-basic.html: Added.
  • http/tests/usercontentfilter/block-cookies-basic.html.json: Added.
  • http/tests/usercontentfilter/block-cookies-send-expected.txt: Added.
  • http/tests/usercontentfilter/block-cookies-send.html: Added.
  • http/tests/usercontentfilter/block-cookies-send.html.json: Added.
2:45 PM Changeset in webkit [180782] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Lookup panel dismisses when pages are loading in other tabs/windows
https://bugs.webkit.org/show_bug.cgi?id=142104
-and corresponding-
rdar://problem/19882137

Reviewed by Tim Horton.

Until rdar://problem/13875766 is resolved, we should only call into Lookup and
DataDetectors for key windows.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _dismissContentRelativeChildWindows]):

2:17 PM Changeset in webkit [180781] by achristensen@apple.com
  • 5 edits in trunk

[WinCairo] Unreviewed build fix.

Source/WebCore:

  • platform/graphics/BitmapImage.h:
  • platform/win/BitmapInfo.h:

Added WEBCORE_EXPORT.

Tools:

  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPICommonWinCairo.props:

Use TestWebKitAPIPrefix.h like in TestWebKitAPICommon.props.

1:56 PM Changeset in webkit [180780] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebCore

<attachment>'s label baseline should match that of the surrounding text
https://bugs.webkit.org/show_bug.cgi?id=142099
rdar://problem/19982495

Reviewed by Dan Bernstein.

  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::baselinePosition):

  • rendering/RenderAttachment.h:

Override baselinePosition and retrieve it from RenderTheme.

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::attachmentBaseline):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::AttachmentLayout::AttachmentLayout):
(WebCore::RenderThemeMac::attachmentBaseline):
Plumb the label baseline from AttachmentLayout to RenderAttachment.

1:42 PM Changeset in webkit [180779] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebCore

Unreviewed, rolling out r180752.
https://bugs.webkit.org/show_bug.cgi?id=142098

Causes 10 SVG test failures on Windows. (Requested by
bfulgham_ on #webkit).

Reverted changeset:

"Cache glyph widths to GlyphPages"
https://bugs.webkit.org/show_bug.cgi?id=142028
http://trac.webkit.org/changeset/180752

1:40 PM Changeset in webkit [180778] by rniwa@webkit.org
  • 4 edits in trunk/LayoutTests

iOS, GTK, and EFL rebaselines after r180726.

  • platform/efl/editing/inserting/5058163-1-expected.txt:
  • platform/gtk/editing/inserting/5058163-1-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/5058163-1-expected.txt:
1:39 PM Changeset in webkit [180777] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Fix build by defining EAGL_IOSURFACE macro before including <OpenGLES/EAGLPrivate.h>

  • platform/spi/ios/OpenGLESSPI.h: Define EAGL_IOSURFACE macro

until header refactoring is completed.

1:34 PM Changeset in webkit [180776] by Chris Dumez
  • 6 edits in trunk/LayoutTests

Unreviewed, skip tests added in r180771 on platforms that don't support IndexedDB.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
1:27 PM Changeset in webkit [180775] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Skip IndexDB tests on Windows since it's not implemented.

  • platform/win/TestExpectations:
1:18 PM Changeset in webkit [180774] by Chris Dumez
  • 8 edits
    6 adds in trunk

MediaSource should be suspendable when closed
https://bugs.webkit.org/show_bug.cgi?id=142089
<rdar://problem/19923085>

Reviewed by Jer Noble.

Source/WebCore:

Make MediaSource ActiveDOMObject suspendable when it is in closed state
and it has no pending events. This increases the likelihood of pages
using MediaSource to enter the PageCache.

Tests: fast/history/page-cache-media-source-closed-2.html

fast/history/page-cache-media-source-closed.html
fast/history/page-cache-media-source-opened.html

LayoutTests:

Add layout tests to check that:

  • Pages with an open MediaSource do not enter the PageCache
  • Pages with an initially closed MediaSource enter the PageCache
  • Pages with a MediaSource that changed state from opened to closed enter the PageCache.
12:14 PM Changeset in webkit [180773] by andersca@apple.com
  • 11 edits in trunk

Add infrastructure for handling website data in the network process
https://bugs.webkit.org/show_bug.cgi?id=142092

Reviewed by Andreas Kling.

Source/WebKit2:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
Send back "Did" messages without actually doing anything for now.

  • NetworkProcess/NetworkProcess.h:

Add new members.

  • NetworkProcess/NetworkProcess.messages.in:

Add FetchWebsiteData and DeleteWebsiteDataForOrigins messages.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::~NetworkProcessProxy):
Assert that all maps are empty.

(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
Add callbacks and send fetch and delete messages respectively.

(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):
Make sure to invoke all callbacks.

(WebKit::NetworkProcessProxy::didFetchWebsiteData):
Find the callback and invoke it.

(WebKit::NetworkProcessProxy::didDeleteWebsiteDataForOrigins):
Ditto.

  • UIProcess/Network/NetworkProcessProxy.h:

Add new members.

  • UIProcess/Network/NetworkProcessProxy.messages.in:

Add DidFetchWebsiteData and DidDeleteWebsiteDataForOrigins messages.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::connectionDidClose):
Just pass an empty WebsiteData object.

Tools:

Add a menu item that will fetch all website data, delete the returned data records, and
fetch all website data again so we can confirm that it's all empty.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController fetchAndClearWebsiteData:]):

11:52 AM Changeset in webkit [180772] by akling@apple.com
  • 18 edits in trunk/Source/WebCore

Use NeverDestroyed for JS wrapper owners.
<https://webkit.org/b/142090>

Reviewed by Chris Dumez.

Using NeverDestroyed puts these objects in BSS which is preferable
since that prevents them from pinning down entire malloc pages forever.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL.

  • bindings/scripts/test/JS/*: Rebaseline bindings tests for this change.
11:24 AM Changeset in webkit [180771] by Chris Dumez
  • 7 edits
    4 adds in trunk

Make IDBDatabase / IDBRequest suspendable
https://bugs.webkit.org/show_bug.cgi?id=142076
<rdar://problem/19923085>

Reviewed by Andreas Kling.

Source/WebCore:

Make IDBDatabase / IDBRequest suspendable under certain conditions to
make it more likely for pages using indexeddb to enter the PageCache.

IDBDatabase is safely suspendable if the database is closed. IDBRequest
is safely suspendable if the request no longer has any pending activity
(i.e. state is DONE and success / failure handler was called). We may
be able to do better later but this is the bare minimum for now.

Tests: fast/history/page-cache-indexed-closed-db.html

fast/history/page-cache-indexed-opened-db.html

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::IDBDatabase):
(WebCore::IDBDatabase::closeConnection):
(WebCore::IDBDatabase::enqueueEvent):
(WebCore::IDBDatabase::canSuspend):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::canSuspend):

  • Modules/indexeddb/IDBRequest.h:

LayoutTests:

Add layout tests to make sure that:

  • A page with an open indexeddb database is not page-cacheable
  • A page with a closed indexeddb database is page-cacheable
  • fast/history/page-cache-indexed-closed-db-expected.txt: Added.
  • fast/history/page-cache-indexed-closed-db.html: Added.
  • fast/history/page-cache-indexed-opened-db-expected.txt: Added.
  • fast/history/page-cache-indexed-opened-db.html: Added.
11:22 AM Changeset in webkit [180770] by Chris Dumez
  • 7 edits
    2 adds in trunk

Drop unnecessary DatabaseManager::hasOpenDatabases() in PageCache::canCachePageContainingThisFrame()
https://bugs.webkit.org/show_bug.cgi?id=142052

Reviewed by Andreas Kling.

Source/WebCore:

Drop WebDatabase special-handling from PageCache::canCachePageContainingThisFrame().
DatabaseContext is already an ActiveDOMObject and DatabaseContext::canSuspend() was
returning false so pages using WebDatabase would never enter the PageCache anyway.

This patch also overrides ActiveDOMObject::canSuspend() in DatabaseContext to only
return false when there are open databases. This check is now equivalent to the one
that was in PageCache.

An issue that remains is that DatabaseContext::m_hasOpenDatabases is never reset
to false so once a page opened a database, it will never be page-cacheable. This
will be taken care of separately though.

Test: fast/history/page-cache-webdatabase-opened-db.html

  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::canSuspend):

  • Modules/webdatabase/DatabaseContext.h:
  • history/PageCache.cpp:

(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::hasOpenDatabasesKey): Deleted.

  • page/DiagnosticLoggingKeys.h:

LayoutTests:

Add a layout test to check that a page with an open WebDatabase does
not enter the PageCache.

  • fast/history/page-cache-webdatabase-opened-db-expected.txt: Added.
  • fast/history/page-cache-webdatabase-opened-db.html: Added.
11:20 AM Changeset in webkit [180769] by achristensen@apple.com
  • 6 edits
    5 adds in trunk/Source/WebCore

Compile DFA to bytecode.
https://bugs.webkit.org/show_bug.cgi?id=142031

Reviewed by Benjamin Poulain.

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::setRuleList):
(WebCore::ContentExtensions::ContentExtensionsBackend::shouldBlockURL):

  • contentextensions/ContentExtensionsBackend.h:
  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::nextState): Deleted.
(WebCore::ContentExtensions::DFA::actions): Deleted.

  • contentextensions/DFA.h:

(WebCore::ContentExtensions::DFA::size):
(WebCore::ContentExtensions::DFA::nodeAt):

  • contentextensions/DFABytecode.h: Added.

(WebCore::ContentExtensions::instructionSizeWithArguments):

  • contentextensions/DFABytecodeCompiler.cpp: Added.

(WebCore::ContentExtensions::append):
(WebCore::ContentExtensions::set32Bits):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitAppendAction):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitJump):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitCheckValue):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitTerminate):
(WebCore::ContentExtensions::DFABytecodeCompiler::reserveBufferCapacity):
(WebCore::ContentExtensions::DFABytecodeCompiler::compileNode):
(WebCore::ContentExtensions::DFABytecodeCompiler::compile):

  • contentextensions/DFABytecodeCompiler.h: Added.

(WebCore::ContentExtensions::DFABytecodeCompiler::DFABytecodeCompiler):

  • contentextensions/DFABytecodeInterpreter.cpp: Added.

(WebCore::ContentExtensions::getBits):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):

  • contentextensions/DFABytecodeInterpreter.h: Added.

(WebCore::ContentExtensions::DFABytecodeInterpreter::DFABytecodeInterpreter):

10:50 AM Changeset in webkit [180768] by enrica@apple.com
  • 10 edits in trunk/Source/WebKit2

[WK2] REGRESSION(r180465): WebKit::WebPage::editorState() triggers a layout.
https://bugs.webkit.org/show_bug.cgi?id=142015

Reviewed by Alexey Proskuryakov.

We no longer compute the font information at selection
when we update the editor state.
Instead, we request the font information only when the selection
changes and the font panel is visible.
I added an observer to be notified of the font panel visibility
changes to update NSFontManager to reflect the font at the
current selection.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode):
(WebKit::EditorState::decode):

  • Shared/EditorState.h:

(WebKit::EditorState::EditorState):

  • UIProcess/API/mac/WKView.mm:

(-[WKView updateFontPanelIfNeeded]):
(-[WKView _selectionChanged]):
(-[WKView addWindowObserversForWindow:]):
(-[WKView removeWindowObservers]):
(-[WKView observeValueForKeyPath:ofObject:change:context:]):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::fontAtSelection):
(WebKit::WebPageProxy::fontAtSelectionCallback):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::platformEditorState):
(WebKit::WebPage::fontAtSelection):

10:43 AM Changeset in webkit [180767] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Use after free in WebCore::RenderNamedFlowFragment::restoreRegionObjectsOriginalStyle
https://bugs.webkit.org/show_bug.cgi?id=138366

Reviewed by Dave Hyatt.

This patch ensures that we clean up RenderNamedFlowFragment::m_renderObjectRegionStyle when embedded flow content is getting destroyed.

In m_renderObjectRegionStyle hash map, we store style information about the named flow's descendant children.
When a child is being detached from the tree, it removes itself from this hashmap.
We do it by traversing up on the ancestor chain and call removeFlowChildInfo() on the parent flow.
However in case of embedded flows (for example multicolumn content inside a region), we need to check whether the parent flow
is inside a flow too and continue the cleanup accordingly.

Source/WebCore:

Test: fast/regions/region-with-multicolumn-embedded-crash.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::removeFromRenderFlowThreadIncludingDescendants):

LayoutTests:

  • fast/regions/region-with-multicolumn-embedded-crash-expected.txt: Added.
  • fast/regions/region-with-multicolumn-embedded-crash.html: Added.
10:33 AM Changeset in webkit [180766] by beidson@apple.com
  • 19 edits in trunk/Source

Add API to remove a single content filter.
<rdar://problem/19977764> and https://bugs.webkit.org/show_bug.cgi?id=142088

Reviewed by Sam Weinig.

Source/WebCore:

  • page/UserContentController.cpp:

(WebCore::UserContentController::removeUserContentFilter):

  • page/UserContentController.h:

Source/WebKit2:

  • Shared/WebPageGroupData.h:
  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupRemoveUserContentFilter):

  • UIProcess/API/C/WKPageGroup.h:
  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController _removeUserContentFilter:]):

  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy):
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addUserContentFilter):
(WebKit::WebUserContentControllerProxy::removeUserContentFilter):
(WebKit::WebUserContentControllerProxy::removeAllUserContentFilters):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:
  • UIProcess/WebPageGroup.cpp:

(WebKit::WebPageGroup::addUserContentFilter):
(WebKit::WebPageGroup::removeUserContentFilter):

  • UIProcess/WebPageGroup.h:
  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::removeUserContentFilter):

  • WebProcess/UserContent/WebUserContentController.h:
  • WebProcess/UserContent/WebUserContentController.messages.in:
  • WebProcess/WebPage/WebPageGroupProxy.cpp:

(WebKit::WebPageGroupProxy::WebPageGroupProxy):
(WebKit::WebPageGroupProxy::removeUserContentFilter):

  • WebProcess/WebPage/WebPageGroupProxy.h:
  • WebProcess/WebPage/WebPageGroupProxy.messages.in:
10:09 AM Changeset in webkit [180765] by Brent Fulgham
  • 16 edits in trunk

[Win] Remove remaining SafariTheme cruft
https://bugs.webkit.org/show_bug.cgi?id=142075

Reviewed by Anders Carlsson.

Remove reference to SafariTheme-switching preference.

Source/WebCore:

Tested by existing layout tests.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • config.h:
  • page/Settings.cpp:

(WebCore::Settings::fontRenderingMode):
(WebCore::Settings::setShouldPaintNativeControls): Deleted.

  • page/Settings.h:

(WebCore::Settings::shouldPaintNativeControls): Deleted.

  • platform/win/ScrollbarThemeWin.cpp:

(WebCore::ScrollbarTheme::nativeTheme):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderTheme::themeForPage):

Source/WebKit/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebKitClassFactory.cpp:

(WebKitClassFactory::WebKitClassFactory):
(WebKitClassFactory::QueryInterface):
(WebKitClassFactory::AddRef):
(WebKitClassFactory::Release):
(WebKitClassFactory::CreateInstance):
(WebKitClassFactory::LockServer):

  • WebPreferences.cpp:

(WebPreferences::shouldPaintNativeControls): Deleted.
(WebPreferences::setShouldPaintNativeControls): Deleted.

  • WebPreferences.h:
  • WebView.cpp:

(WebView::initWithFrame):
(WebView::notifyPreferencesChanged):

Tools:

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):
(prepareConsistentTestingEnvironment):

9:49 AM Changeset in webkit [180764] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r180511 - Drawing an SVG image into a canvas using drawImage() ignores globalAlpha.
https://bugs.webkit.org/show_bug.cgi?id=141729.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-02-23
Reviewed by Simon Fraser.

Source/WebCore:

When drawing an SVG image and the drawing context is set to be transparent,
make sure this transparency is applied to the compositing layer.

Test: svg/canvas/canvas-global-alpha-svg.html

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::setAlpha): Make setAlpha() calls the platform
function and sets 'm_state.alpha' to the input value.

(WebCore::GraphicsContext::alpha): Add a new function 'alpha()' which
returns the value of the global alpha.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContextState::GraphicsContextState): Add a new member
'alpha' to the context state since the getter function CGContextGetAlpha
is defined only in a private header file. Also move single line functions
from the source file to the header file.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::setPlatformAlpha):
(WebCore::GraphicsContext::setAlpha): Deleted.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::setPlatformAlpha):
(WebCore::GraphicsContext::setAlpha): Deleted.
Rename setAlpha() to setPlatformAlpha() in the platform files. Add setAlpha()
to the core file. setAlpha() will set the value of 'm_state.alpha' and call
setPlatformAlpha().

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::draw): If the drawing context is transparent, apply its
global alpha value to the compositing layer.

LayoutTests:

Add a new test which draws an SVG image on a canvas after setting its
globalAlpha to a value less than 1.

  • svg/canvas/canvas-global-alpha-svg-expected.html: Added.
  • svg/canvas/canvas-global-alpha-svg.html: Added.
9:35 AM Changeset in webkit [180763] by Carlos Garcia Campos
  • 2 edits
    1 add in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r180505 - Crash in DFGFrozenValue
https://bugs.webkit.org/show_bug.cgi?id=141883

Reviewed by Benjamin Poulain.

If a value might be a cell, then we have to have Graph freeze it rather than trying to
create the FrozenValue directly. Creating it directly is just an optimization for when you
know for sure that it cannot be a cell.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • tests/stress/regress-141883.js: Added. Hacked the original test to be faster while still crashing before this fix.
9:34 AM Changeset in webkit [180762] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r180503 - [GStreamer] Redundant track language notifications
https://bugs.webkit.org/show_bug.cgi?id=141908

Reviewed by Žan Doberšek.

Invoke languageChanged only if the language code actually
changed.

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):

9:32 AM Changeset in webkit [180761] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8

Merge r180502 - [GTK] Fails to compile with cmake 3.2.x
https://bugs.webkit.org/show_bug.cgi?id=141796

With cmake 3.2.x we have to explicitly ask for X11 otherwise the
X11_X11_LIB variable won't be set thus the X11 linker flags won't be
added and the build will fail.

Patch by Tomas Popela <tpopela@redhat.com> on 2015-02-23
Reviewed by Martin Robinson.

  • Source/cmake/OptionsGTK.cmake:
9:31 AM Changeset in webkit [180760] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.8

Merge r180492 - Print a console warning when HTMLCanvasElement exceeds the maximum size
https://bugs.webkit.org/show_bug.cgi?id=141861
<rdar://problem/19729145>

Reviewed by Simon Fraser.

Source/WebCore:

Add a warning if we ever try to create a canvas that is
too big.

No test because:

  1. We can't ref-test against console messages.
  2. The output is platform specific.
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer):

LayoutTests:

Add error message to expected results.

  • fast/canvas/canvas-toDataURL-crash-expected.txt:
  • fast/canvas/pattern-too-large-to-create-expected.txt:
9:27 AM Changeset in webkit [180759] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r180464 - Invalid assert in CompositeEditCommand::insertNodeAfter/insertNodeBefore
https://bugs.webkit.org/show_bug.cgi?id=141854

Reviewed by Ryosuke Niwa.

Inserting content before/after the body as the result of editing is a valid operation.
This assert was originally introduced to cover cases where edited content would get moved
out of body. However, asserting such operation properly is not possible atm.

Source/WebCore:

Test: editing/inserting/insert-as-body-sibling.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::insertNodeBefore):
(WebCore::CompositeEditCommand::insertNodeAfter):

LayoutTests:

  • editing/inserting/insert-as-body-sibling-expected.txt: Added.
  • editing/inserting/insert-as-body-sibling.html: Added.
9:22 AM Changeset in webkit [180758] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Add another batch of debug assert failures.

  • platform/win/TestExpectations:
9:21 AM Changeset in webkit [180757] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WTF

Merge r180434 - RunLoop::dispatch() should drop the mutex before calling wakeUp().
https://bugs.webkit.org/show_bug.cgi?id=141820

Reviewed by Alexey Proskuryakov.

RunLoop::wakeUp() calls into CoreFoundation which could take time,
so scope the mutex just to protect m_functionQueue.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::dispatch):

9:16 AM Changeset in webkit [180756] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.8

Merge r180423 - DFG JIT needs to check for stack overflow at the start of Program and Eval execution
https://bugs.webkit.org/show_bug.cgi?id=141676

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Added stack check to the beginning of the code the DFG copmiler emits for Program and Eval nodes.
To aid in testing the code, I replaced the EvalCodeCache::maxCacheableSourceLength const
a options in runtime/Options.h. The test script, run-jsc-stress-tests, sets that option
to a huge value when running with the "Eager" options. This allows the updated test to
reliably exercise the code in questions.

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compile):
Added stack check.

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):

  • runtime/Options.h:

Replaced EvalCodeCache::imaxCacheableSourceLength with Options::maximumEvalCacheableSourceLength
so that it can be configured when running the related test.

Tools:

Set the newly added --maximumEvalCacheableSourceLength option for eager test runs. This is needed
to allow the eval out of stack tests to tier up. Without this option, we don't cache the likely
large string expression that we want to eval.

  • Scripts/run-jsc-stress-tests:

LayoutTests:

Updated the check for out of stack at eval entry test from using a fixed number of frame to
back track to now adjust the amount of back tracking up the stack based on where we can run a
simple eval(). At that point in the stack we try to cause an out of stack exception.

Also added a second pass of the test that takes the originally failing eval and tiers that
eval expression up to the DFG when used with the agreessive options of run-jsc-stress-tests.
This was done to reduce the amount of time the test takes to run in debug builds.

  • js/regress-141098-expected.txt:
  • js/script-tests/regress-141098.js:

(testEval):
(probeAndRecurse):

9:02 AM Changeset in webkit [180755] by Brent Fulgham
  • 3 edits in trunk/LayoutTests

[Win] Rebaseline test after r180726.

  • platform/win/TestExpectations: Mark a flaky test.
  • platform/win/editing/inserting/5058163-1-expected.txt:
8:59 AM Changeset in webkit [180754] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Add comment about CSS value name mangling

Unreviewed

  • css/CSSParser.cpp:

(WebCore::cssValueKeywordID):

8:50 AM Changeset in webkit [180753] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.8

Merge r180413 - Language ranges containing asterisks must be quoted as strings
https://bugs.webkit.org/show_bug.cgi?id=141659

Reviewed by Benjamin Poulain.

Source/WebCore:

As specified in [1], the language ranges containing asterisks must be quoted as strings.

[1] http://dev.w3.org/csswg/selectors-4/#the-lang-pseudo.

  • css/CSSGrammar.y.in:
  • css/CSSParser.cpp:

(WebCore::CSSParser::realLex):

LayoutTests:

Ensure language ranges containing asterisks are quoted as strings.

  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/parsing-css-lang-expected.txt:
  • fast/css/parsing-css-lang.html:
  • fast/selectors/lang-extended-filtering-expected.txt:
  • fast/selectors/lang-extended-filtering.html:
  • fast/selectors/lang-valid-extended-filtering-expected.txt:
  • fast/selectors/lang-valid-extended-filtering.html:
8:12 AM Changeset in webkit [180752] by Antti Koivisto
  • 12 edits in trunk/Source/WebCore

Cache glyph widths to GlyphPages
https://bugs.webkit.org/show_bug.cgi?id=142028

Reviewed by Andreas Kling.

Currently we have a separate cache in Font for glyph widths. In practice we always need
the widths so we can just cache them in GlyphPages. This simplifies the code and removes
a per-character hash lookup from WidthIterator.

  • platform/graphics/Font.cpp:

(WebCore::Font::Font):
(WebCore::Font::initCharWidths):
(WebCore::Font::platformGlyphInit):
(WebCore::createAndFillGlyphPage):
(WebCore::Font::computeWidthForGlyph):

Rename to make it clear this doesn't cache.

(WebCore::GlyphPage::setGlyphDataForIndex):

Initialize the width.
This could go to GlyphPage.cpp if we had one.

  • platform/graphics/Font.h:

(WebCore::Font::glyphZeroWidth):
(WebCore::Font::isZeroWidthSpaceGlyph):
(WebCore::Font::zeroGlyph): Deleted.
(WebCore::Font::setZeroGlyph): Deleted.
(WebCore::Font::widthForGlyph): Deleted.

  • platform/graphics/FontCascade.cpp:

(WebCore::offsetToMiddleOfGlyph):

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForCharacter):

  • platform/graphics/GlyphPage.h:

(WebCore::GlyphData::GlyphData):

Return width too as part of GlyphData.

(WebCore::GlyphPage::glyphDataForIndex):
(WebCore::GlyphPage::setGlyphDataForCharacter):
(WebCore::GlyphPage::setGlyphDataForIndex):
(WebCore::GlyphPage::GlyphPage):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal):

No need to lookup width separately now.

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::advanceForGlyph):

  • rendering/svg/SVGTextRunRenderingContext.cpp:

(WebCore::missingGlyphForFont):

  • svg/SVGFontData.cpp:

(WebCore::SVGFontData::initializeFont):

6:57 AM Changeset in webkit [180751] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r180430 - bmalloc should implement malloc introspection (to stop false-positive leaks when MallocStackLogging is off)
https://bugs.webkit.org/show_bug.cgi?id=141802

Reviewed by Andreas Kling.

Rolling back in with a fix for a crash seen while using GuardMalloc.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):

  • bmalloc/VMHeap.h:
  • bmalloc/Zone.cpp: Re-land the old patch.

(bmalloc::Zone::size): Be sure to implement the size() function since
it's accessible indirectly via the malloc_zone_from_ptr public API --
and GuardMalloc calls it all the time.

(bmalloc::Zone::Zone):

  • bmalloc/Zone.h: Re-land the old patch.
6:51 AM Changeset in webkit [180750] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r180363 - bmalloc should implement malloc introspection (to stop false-positive leaks when MallocStackLogging is off)
https://bugs.webkit.org/show_bug.cgi?id=141802

Reviewed by Andreas Kling.

Fixed a last-minute type.

The macro is OS, not PLATFORM.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):

  • bmalloc/VMHeap.h:
  • bmalloc/Zone.h:
6:48 AM Changeset in webkit [180749] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r180359 - bmalloc should implement malloc introspection (to stop false-positive leaks when MallocStackLogging is off)
https://bugs.webkit.org/show_bug.cgi?id=141802

Reviewed by Andreas Kling.

This patch does the bare minimum to stop false positive leaks from
being reported by the Darwin leaks tool. We register each super chunk
as a single object, and then request that the leaks tool scan it.

  • bmalloc.xcodeproj/project.pbxproj: Added an abstraction for the malloc

zone introspection API.

  • bmalloc/Algorithm.h: Missing #include.
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):

  • bmalloc/VMHeap.h: Adopt the new abstraction.
  • bmalloc/Zone.cpp: Added.

(bmalloc::remoteRead): Helper for reading an object out of another process.
(bmalloc::Zone::enumerator):
(bmalloc::Zone::Zone): Register a malloc zone so that we will participate
in introspection.

  • bmalloc/Zone.h: Added.

(bmalloc::Zone::superChunks):
(bmalloc::Zone::addSuperChunk): Use a non-dynamically-allocated vector
since our dynamic allocations will not be scanned by leaks since they
will have the malloc VM tag.

6:43 AM Changeset in webkit [180748] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r180337 - REGRESSION(r179347): Clearing the PageCache no longer clears the PageCache.
<https://webkit.org/b/141788>

Reviewed by Anders Carlsson.

Source/WebCore:

Once again we've fallen into the TemporaryChange trap:

TemporaryChange<unsigned>(m_member, temporaryValue);

The code above doesn't actually do anything. Since the TemporaryChange local is not named,
it immediately goes out of scope and restores the original value of m_member.

Unless someone knows a C++ trick to prevent these, we'll need to add a style checker pass
to catch bugs like this. Whatever we do will be done separately from this bug.

Test: fast/history/page-cache-clearing.html

  • history/PageCache.cpp:

(WebCore::PageCache::pruneToSizeNow): Name the local so it lives longer.

  • testing/Internals.cpp:

(WebCore::Internals::clearPageCache):
(WebCore::Internals::pageCacheSize):

  • testing/Internals.h:
  • testing/Internals.idl: Add a way to clear the page cache and query its size from

window.internals to facilitate writing a simple test for this bug.

LayoutTests:

Add a simple test that navigates to a temporary page which immediately does a history.back
navigation. Upon returning to the first page, check that the page cache now has 1 entry,
and that clearing the page cache makes that entry go away.

  • fast/history/page-cache-clearing-expected.txt: Added.
  • fast/history/page-cache-clearing.html: Added.
6:35 AM Changeset in webkit [180747] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r180336 - Roll out r180280.

Crashes under IDBDatabase::closeConnection.
https://bugs.webkit.org/show_bug.cgi?id=141745
rdar://problem/19816412

  • Modules/indexeddb/IDBDatabase.cpp: (WebCore::IDBDatabase::closeConnection):
6:31 AM Changeset in webkit [180746] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r180328 - REGRESSION(r174761) Dangling spanner pointer in RenderMultiColumnSpannerPlaceholder.
https://bugs.webkit.org/show_bug.cgi?id=138224

Reviewed by Dave Hyatt.

It's wrong to call flowThreadRelativeWillBeRemoved(child).
RenderMultiColumnFlowThread::removeFlowChildInfo() does not mean that the child is actually about to be removed.
Should this introduce any regressions, we need to deal with those separately.

Source/WebCore:

Test: fast/multicol/crash-when-spanner-gets-moved-around.html

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::removeFlowChildInfo): Deleted.

  • rendering/RenderMultiColumnFlowThread.h:

LayoutTests:

  • fast/multicol/crash-when-spanner-gets-moved-around-expected.txt: Added.
  • fast/multicol/crash-when-spanner-gets-moved-around.html: Added.
6:26 AM Changeset in webkit [180745] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r180280 - Crashes under IDBDatabase::closeConnection.
https://bugs.webkit.org/show_bug.cgi?id=141745
rdar://problem/19816412

Reviewed by David Kilzer.

  • Modules/indexeddb/IDBDatabase.cpp: (WebCore::IDBDatabase::closeConnection):

Add a missing protector.

6:25 AM Changeset in webkit [180744] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r180278 - Justified ruby can cause lines to grow beyond their container
https://bugs.webkit.org/show_bug.cgi?id=141732

Reviewed by David Hyatt.

Source/WebCore:

After we re-layout RenderRubyRuns, this can change the environment upon which
ruby's overhang calculation is sensitive to. Before this patch, we would recalculate
the overhang after the RenderRubyRun gets relaid out. However, doing such causes the
effective width of the RenderRubyRun to change, which causes out subsequent
justification calculations to be off.

Therefore, we have a cycle; the amount of ruby overhang can change the justification
in a line, and the layout of the line affects the ruby overhang calculation. Instead
of performing a layout in a loop until it converges, this patch simply observes that
having a flush right edge is more valuable than having a perfectly correct overhang.
It therefore simply removes the secondary overhang calculation.

Test: fast/text/ruby-justification-flush.html

  • rendering/RenderBlockFlow.h:
  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::updateRubyForJustifiedText):
(WebCore::RenderBlockFlow::computeExpansionForJustifiedText):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):

LayoutTests:

Make sure that the right edge of a justified ruby line matches up with
the same line without ruby.

  • fast/text/ruby-justification-flush-expected.html: Added.
  • fast/text/ruby-justification-flush.html: Added.
6:19 AM Changeset in webkit [180743] by Carlos Garcia Campos
  • 4 edits
    1 copy in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r180272 - bmalloc: VMHeap should keep a record of all of its VM ranges (for malloc introspection)
https://bugs.webkit.org/show_bug.cgi?id=141759

Reviewed by Andreas Kling.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/SuperChunk.h: Added.

(bmalloc::SuperChunk::create):
(bmalloc::SuperChunk::SuperChunk):
(bmalloc::SuperChunk::smallChunk):
(bmalloc::SuperChunk::mediumChunk):
(bmalloc::SuperChunk::largeChunk): Factored out super chunk creation
into a separate class, for clarity and type safety.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):
(bmalloc::VMHeap::allocateSuperChunk): Renamed "allocateSuperChunk" to
"grow" because Andreas found "allocateSuperChunk" to be unclear.

  • bmalloc/VMHeap.h: Track all our VM ranges. We will use this information

for malloc introspection.

(bmalloc::VMHeap::allocateSmallPage):
(bmalloc::VMHeap::allocateMediumPage):
(bmalloc::VMHeap::allocateLargeRange): Updated for renames.

4:20 AM Changeset in webkit [180742] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r180264 - Build bmalloc through CMake as a static library. It's then linked either
into the WTF library (if built as a shared library) or into the JSC and
WebKit2 libraries. There's no need to build it as a standalone shared library.

Rubber-stamped by Carlos Garcia Campos.

  • CMakeLists.txt:
4:16 AM Changeset in webkit [180741] by Carlos Garcia Campos
  • 9 edits
    2 adds in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r180258 - Fix the C-Loop LLInt build
https://bugs.webkit.org/show_bug.cgi?id=141618

Reviewed by Filip Pizlo.

I broke C-Loop when moving the common code of pow()
to JITOperations because that file is #ifdefed out
when the JITs are disabled.

It would be weird to move it back to MathObject since
the function needs to know about the calling conventions.

To avoid making a mess, I just gave the function its own file
that is used by both the runtime and the JIT.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAbstractInterpreterInlines.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • runtime/MathCommon.cpp: Added.

(JSC::fdlibmScalbn):
(JSC::fdlibmPow):
(JSC::isDenormal):
(JSC::isEdgeCase):
(JSC::mathPowInternal):
(JSC::operationMathPow):

  • runtime/MathCommon.h: Added.
  • runtime/MathObject.cpp:
4:15 AM BadContent edited by Csaba Osztrogonác
add one more spammer (diff)
4:13 AM Changeset in webkit [180740] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r180257 - Clean up OSRExit's considerAddingAsFrequentExitSite()
https://bugs.webkit.org/show_bug.cgi?id=141690

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-17
Reviewed by Anders Carlsson.

Looks like some code was removed from CodeBlock::tallyFrequentExitSites()
and the OSRExit were left untouched.

This patch cleans up the two loops and remove the boolean return
on considerAddingAsFrequentExitSite().

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::tallyFrequentExitSites):

  • dfg/DFGOSRExit.h:

(JSC::DFG::OSRExit::considerAddingAsFrequentExitSite):

  • dfg/DFGOSRExitBase.cpp:

(JSC::DFG::OSRExitBase::considerAddingAsFrequentExitSiteSlow):

  • dfg/DFGOSRExitBase.h:

(JSC::DFG::OSRExitBase::considerAddingAsFrequentExitSite):

  • ftl/FTLOSRExit.h:

(JSC::FTL::OSRExit::considerAddingAsFrequentExitSite):

4:09 AM Changeset in webkit [180739] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r180248 - Unreviewed, rolling out r180184.
https://bugs.webkit.org/show_bug.cgi?id=141733

Caused infinite recursion on js/function-apply-aliased.html
(Requested by ap_ on #webkit).

Reverted changeset:

"REGRESSION(r180060): C Loop crashes"
https://bugs.webkit.org/show_bug.cgi?id=141671
http://trac.webkit.org/changeset/180184

Unreviewed, Restoring the C LOOP insta-crash fix in r180184.

Fixed a typo that only affected the C Loop in the prologue() macro in LowLevelInterpreter.asm.
After the stackHeightOKGetCodeBlock label, codeBlockSetter(t1) should be codeBlockGetter(t1).

  • llint/LowLevelInterpreter.asm: Fixed a typo.
4:08 AM BadContent edited by Csaba Osztrogonác
add one more spammer (diff)
4:03 AM Changeset in webkit [180738] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r180244 - Slight CachedPage class clean up
https://bugs.webkit.org/show_bug.cgi?id=141693

Reviewed by Andreas Kling.

Slight CachedPage class clean up:

  • Drop unnecessary m_timeStamp data member
  • Protect m_needsCaptionPreferencesChanged data member with #if ENABLE(VIDEO_TRACK)
  • Merge destroy() method into the destructor as this is the only caller
  • Update clear() to reset 2 data members that were missing
4:00 AM Changeset in webkit [180737] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r180237 - StackLayoutPhase should use CodeBlock::usesArguments rather than FunctionExecutable::usesArguments
https://bugs.webkit.org/show_bug.cgi?id=141721
rdar://problem/17198633

Reviewed by Michael Saboff.

I've seen cases where the two are out of sync. We know we can trust the CodeBlock::usesArguments because
we use it everywhere else.

No test because I could never reproduce the crash.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::usesArguments):

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

3:57 AM Changeset in webkit [180736] by Carlos Garcia Campos
  • 4 edits
    3 adds in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r180234 - Throwing from an FTL call IC slow path may result in tag registers being clobbered on 64-bit CPUs
https://bugs.webkit.org/show_bug.cgi?id=141717
rdar://problem/19863382

Reviewed by Geoffrey Garen.

The best solution is to ensure that the engine catching an exception restores tag registers.

Each of these new test cases reliably crashed prior to this patch and they don't crash at all now.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_catch):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • tests/stress/throw-from-ftl-call-ic-slow-path-cells.js: Added.
  • tests/stress/throw-from-ftl-call-ic-slow-path-undefined.js: Added.
  • tests/stress/throw-from-ftl-call-ic-slow-path.js: Added.
3:54 AM Changeset in webkit [180735] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r180232 - [ARM] Add the necessary setupArgumentsWithExecState after bug141332
https://bugs.webkit.org/show_bug.cgi?id=141714

Reviewed by Michael Saboff.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

3:51 AM Changeset in webkit [180734] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8

Merge r180649 - ASan does not like JSC::MachineThreads::tryCopyOtherThreadStack.
<https://webkit.org/b/141672>

Reviewed by Alexey Proskuryakov.

ASan does not like the fact that we memcpy the stack for GC scans. So,
we're working around this by using our own memcpy (asanUnsafeMemcpy)
implementation that we can tell ASan to ignore.

Source/JavaScriptCore:

  • heap/MachineStackMarker.cpp:

(JSC::asanUnsafeMemcpy):

Tools:

Also removed the previous added directive to ignore *tryCopyOtherThreadStack*
which isn't effective for working around this issue.

  • asan/webkit-asan-ignore.txt:
12:03 AM Changeset in webkit [180733] by bshafiei@apple.com
  • 6 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r173806. rdar://problem/19871063

12:00 AM WebKitGTK/2.6.x edited by sergio@webkit.org
Readded the fonts changes with the regression fix (diff)

Feb 26, 2015:

11:26 PM Changeset in webkit [180732] by fpizlo@apple.com
  • 4 edits
    1 delete in trunk/Source/JavaScriptCore

Unreviewed, roll out r180723. It broke a bunch of tests.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::constLocal):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ConstDeclNode::emitCodeSingle):

  • tests/stress/const-arguments.js: Removed.
11:04 PM Changeset in webkit [180731] by bshafiei@apple.com
  • 5 edits in branches/safari-600.4.10-branch/Source

Versioning.

11:03 PM Changeset in webkit [180730] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.4.10.5

New tag.

10:56 PM Changeset in webkit [180729] by bshafiei@apple.com
  • 6 edits in branches/safari-600.1.4.15-branch

Merge patch for r180129, r180133. rdar://problem/19870998

10:44 PM Changeset in webkit [180728] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch

Merged r180087. rdar://problem/19871068

10:06 PM Changeset in webkit [180727] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

iOS build fix after r180717.

  • Modules/webdatabase/DatabaseThread.cpp: (WebCore::DatabaseUnpauseTask::doPerformTask):
9:51 PM Changeset in webkit [180726] by rniwa@webkit.org
  • 8 edits in trunk

isEditablePosition and related functions shouldn't move position out of table
https://bugs.webkit.org/show_bug.cgi?id=129200

Reviewed by Darin Adler.

Source/WebCore:

This patch removes the legacy editing position for elements display: table in its computed style.
Previously, we used (table, 0) and (table, !0) to denote positions immediately before and after
such an element for historical reasons. This forced us to update the style tree before computing
the editability of a position because we have to check the editability of the position outside
the element with display: table if the position was using such a legacy editing position.
e.g. if a table was not editable (contenteditable=false), the position before the table (table, 0)
should still be considered editable if the parent node of the table was editable.

This patch replaces such a legacy editing position by using modern position types:
PositionIsBeforeAnchor and PositionIsAfterAnchor.

No new tests since there should be no change in the user perceived editing operations.

  • dom/Position.cpp:

(WebCore::Position::previous): Setup the node and the offset correctly when the original position's
type is PositionIsBeforeAnchor. Also return a position before or after node when the node we found
is "atomic" (e.g. input, img, br, etc...) or it's a table. This avoids creating a legacy editing
position inside a table.
(WebCore::Position::next): Ditto.
(WebCore::Position::atStartOfTree): Use atFirstEditingPositionForNode, which takes care of all types
of positions.
(WebCore::Position::atEndOfTree): Ditto.
(WebCore::Position::downstream): Return a position before a node instead of a legacy editing position
for an atomic element or a table element as done in the equivalent code in Position::upstream.
(WebCore::Position::isCandidate): Don't treat a position inside a table to be a candidate. e.g.
(table, 1) when there are more than two children of the table.

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::operator Position): PositionIterator internally uses legacy editing
positions. So convert it to a modern position by returning a position before or after a table here.

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::formatSelection): Check that the unsplittable element we found
is actually empty before executing the simple code path for an empty unsplittable element. Without
this check, block formatting a table element will fail.

  • editing/htmlediting.cpp:

(WebCore::isEditablePosition): Use containerNode instead of deprecatedNode because the editability
of a position before or after an element is determined by its parent, not the element itself.
(WebCore::isAtUnsplittableElement): Ditto.
(WebCore::isRichlyEditablePosition): Ditto. Removed the code that moved the starting node out of
an element with display: table. This is the code removal for which this patch was made.
(WebCore::editableRootForPosition): Ditto.

LayoutTests:

Rebaselined a test. There is no visual difference.

  • platform/mac/editing/inserting/5058163-1-expected.txt:
9:32 PM Changeset in webkit [180725] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Add a subtle blue background for selected console messages
https://bugs.webkit.org/show_bug.cgi?id=142073

Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.css:

(.console-item.selected::after):
(.console-messages:focus .console-item.selected):
(.console-messages:focus .console-item.selected + .console-item):
(.console-error-level + .console-item):
(.console-error-level .section .header .title):
(.console-warning-level):
(.console-warning-level + .console-item):

9:27 PM Changeset in webkit [180724] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] More test expectation updates.

  • platform/win/TestExpectations:
9:12 PM Changeset in webkit [180723] by fpizlo@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

BytecodeGenerator::constLocal() behaves identically to BytecodeGenerator::local() for the purposes of its one caller
https://bugs.webkit.org/show_bug.cgi?id=142071

Rubber stamped by Benjamin Poulain.

The only behavioral differences between constLocal() and local() are:

  • constLocal() doesn't have a special case for "this" that overrides other checks like the shouldOptimizeLocals() check. But the one user of constLocal() is for the "const x" expression, and "const this" doesn't parse.
  • constLocal() won't createArgumentsIfNecessary() for "arguments". But it's harmless if it does, since its one user assigns to the local.

So, we can remove constLocal() and make its one caller use local() instead.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::constLocal): Deleted.

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ConstDeclNode::emitCodeSingle):

  • tests/stress/const-arguments.js: Added.

(foo):
(check):

8:11 PM Changeset in webkit [180722] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Colored console messages apply text color to object tree properties
https://bugs.webkit.org/show_bug.cgi?id=142051

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-26
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectPreviewView.css:

(.object-preview):

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree):
Default the color to black within Object Tree and Object Preview views.

8:08 PM Changeset in webkit [180721] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Clear Log on Reload clears some logs that were after reload
https://bugs.webkit.org/show_bug.cgi?id=142070

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-26
Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._sessionStarted):
We can bail after calling clearLog, since that will already start
a new session for us.

(WebInspector.LogContentView.prototype._clearLog):
Don't trigger a backend clear messages, since that will cause us to
clear messages received between the request and response.

6:07 PM Changeset in webkit [180720] by timothy_horton@apple.com
  • 16 edits
    6 adds in trunk

Implement <attachment> element appearance on Mac
https://bugs.webkit.org/show_bug.cgi?id=142023

Reviewed by Dean Jackson.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:
  • css/html.css:

(attachment):

  • platform/ThemeTypes.h:

Add a new -webkit-appearance value, attachment.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::setFile):
Let the renderer know when the file changes (so it can relayout and repaint).

(WebCore::HTMLAttachmentElement::filePath):
(WebCore::HTMLAttachmentElement::fileName):

  • html/HTMLAttachmentElement.h:

Handy acccessors for the full path and the name of the file.

  • platform/spi/mac/IconServicesSPI.h: Added.
  • platform/spi/mac/LaunchServicesSPI.h: Added.

Add some IconServices and LaunchServices SPI headers.

  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::RenderAttachment):
Don't have a default intrinsic size; we'll adjust in layout().

(WebCore::RenderAttachment::isSelected):
(WebCore::RenderAttachment::isFocused):
(WebCore::RenderAttachment::isSelectedOrFocused):
Factor out from paintReplaced().

(WebCore::RenderAttachment::layout):
Use RenderTheme to compute the intrinsic size of this attachment.

(WebCore::RenderAttachment::paintReplaced):
Use RenderTheme to paint the attachment.

(WebCore::RenderAttachment::representedFileChanged):
When the represented file changes, we need to recompute the intrinsic size and repaint.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::adjustAttachmentStyle):
(WebCore::RenderTheme::paintAttachment):
Plumb through the attachment appearance.

  • rendering/RenderAttachment.h:
  • rendering/RenderTheme.h:

(WebCore::RenderTheme::paintAttachment):
(WebCore::RenderTheme::attachmentIntrinsicSize):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::attachmentIconBackgroundColor):
(WebCore::attachmentIconBorderColor):
(WebCore::AttachmentLayout):
AttachmentLayout lays out the innards of the RenderThemeMac attachment
presentation: an icon with an optional bordered background, with a label
underneath it with an optional background.

(WebCore::RenderThemeMac::attachmentIntrinsicSize):
(WebCore::paintAttachmentIconBackground):
(WebCore::paintAttachmentIcon):
(WebCore::RenderThemeMac::paintAttachmentLabelBackground):
(WebCore::RenderThemeMac::paintAttachmentLabel):
(WebCore::RenderThemeMac::paintAttachment):
Paint the attachment element. Paint the optional backgrounds (and swap
out the text color) if the element is selected/focused.

6:07 PM Changeset in webkit [180719] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Assertion fix for r180711: The bool returning form of BytecodeGenerator::addVar() can be removed.
<https://webkit.org/b/142064>

Reviewed by Joseph Pecoraro.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::addVar):

5:57 PM Changeset in webkit [180718] by commit-queue@webkit.org
  • 15 edits
    7 adds in trunk

AX: Expose caret browsing preference to accessibility API
https://bugs.webkit.org/show_bug.cgi?id=141862

Patch by Doug Russell <d_russell@apple.com> on 2015-02-26
Reviewed by Chris Fleizach.

Exposing the caret browsing setting on WebCore::Frame via the accessibility API would allow assistive tech apps to enable it contextually (for example, when the assistive tech app is running).
Enabling caret browsing when assistive tech apps are running greatly improves the reliability of keyboard navigation on the web. Most especially in cases where selection would be disrupted by focus events.

Source/WebCore:

Tests: platform/mac/accessibility/caret-browsing-arrow-nav.html

platform/mac/accessibility/caret-browsing-attribute.html
platform/mac/accessibility/caret-browsing-tab-selection.html

  • accessibility/AccessibilityObject.h:
  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::caretBrowsingEnabled):
(WebCore::AccessibilityObject::setCaretBrowsingEnabled):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
(-[WebAccessibilityObjectWrapper _accessibilitySetTestValue:forAttribute:]):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(setBoolAttributeValueCallback):
(selectedTextMarkerRangeCallback):
(resetSelectedTextMarkerRangeCallback):
(AccessibilityUIElement::setBoolAttributeValue):
(AccessibilityUIElement::selectedTextMarkerRange):
(AccessibilityUIElement::resetSelectedTextMarkerRange):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::setBoolAttributeValue):
(AccessibilityUIElement::selectedTextMarkerRange):
(AccessibilityUIElement::resetSelectedTextMarkerRange):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::selectedTextMarkerRange):
(WTR::AccessibilityUIElement::resetSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::setBoolAttributeValue):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::setBoolAttributeValue):
(WTR::AccessibilityUIElement::selectedTextMarkerRange):
(WTR::AccessibilityUIElement::resetSelectedTextMarkerRange):

LayoutTests:

  • accessibility/parent-delete-expected.txt:
  • platform/mac/accessibility/caret-browsing-arrow-nav-expected.txt: Added.
  • platform/mac/accessibility/caret-browsing-arrow-nav.html: Added.
  • platform/mac/accessibility/caret-browsing-attribute-expected.txt: Added.
  • platform/mac/accessibility/caret-browsing-attribute.html: Added.
  • platform/mac/accessibility/caret-browsing-tab-selection-expected.txt: Added.
  • platform/mac/accessibility/caret-browsing-tab-selection.html: Added.
  • platform/mac/accessibility/document-attributes-expected.txt:
  • platform/mac/accessibility/resources/accessibility-helper.js: Added.

(clearSelectionAndFocusOnWebArea):
(elementAtStartMarkerOfSelectedTextMarkerRange):
(caretBrowsingEnabled):
(setCaretBrowsingEnabled):

5:56 PM Changeset in webkit [180717] by gyuyoung.kim@samsung.com
  • 7 edits in trunk/Source/WebCore

Remove unnecessary create() factory functions
https://bugs.webkit.org/show_bug.cgi?id=142039

Reviewed by Chris Dumez.

Clean up remaining JSCryptoKeySerializationJWK::create, HTMLMediaSession::create,
and DatabaseUnpauseTask::create.

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseUnpauseTask::DatabaseUnpauseTask):
(WebCore::DatabaseThread::setPaused):
(WebCore::DatabaseUnpauseTask::create): Deleted.

  • bindings/js/JSCryptoKeySerializationJWK.h:
  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::importKey):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):

  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::create): Deleted.

  • html/HTMLMediaSession.h:
5:25 PM Changeset in webkit [180716] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

MachineThreads::Thread clean up has a use after free race condition.
<https://webkit.org/b/141990>

Reviewed by Filip Pizlo.

MachineThreads::Thread clean up relies on the clean up mechanism
implemented in _pthread_tsd_cleanup_key(), which looks like this:

void _pthread_tsd_cleanup_key(pthread_t self, pthread_key_t key)
{

void (*destructor)(void *);
if (_pthread_key_get_destructor(key, &destructor)) {

void ptr = &self->tsd[key];
void *value = *ptr;

=== Start of window for the bug to manifest =================

At this point, this thread has cached "destructor" and "value"
(which is a MachineThreads*). If the VM gets destructed (along
with its MachineThreads registry) by another thread, then this
thread will have no way of knowing that the MachineThreads* is
now pointing to freed memory. Calling the destructor below will
therefore result in a use after free scenario when it tries to
access the MachineThreads' data members.

if (value) {

*ptr = NULL;
if (destructor) {

=== End of window for the bug to manifest ==================

destructor(value);

}

}

}

}

The fix is to add each active MachineThreads to an ActiveMachineThreadsManager,
and always check if the manager still contains that MachineThreads object
before we call removeCurrentThread() on it. When MachineThreads is destructed,
it will remove itself from the manager. The add, remove, and checking
operations are all synchronized on the manager's lock, thereby ensuring that
the MachineThreads object, if found in the manager, will remain alive for the
duration of time we call removeCurrentThread() on it.

There's also possible for the MachineThreads object to already be destructed
and another one happened to have been instantiated at the same address.
Hence, we should only remove the exiting thread if it is found in the
MachineThreads object.

There is no test for this issue because this bug requires a race condition
between 2 threads where:

  1. Thread B, which had previously used the VM, exiting and getting to the bug window shown in _pthread_tsd_cleanup_key() above.
  2. Thread A destructing the VM (and its MachineThreads object) within that window of time before Thread B calls the destructor.

It is not possible to get a reliable test case without invasively
instrumenting _pthread_tsd_cleanup_key() or MachineThreads::removeCurrentThread()
to significantly increase that window of opportunity.

  • heap/MachineStackMarker.cpp:

(JSC::ActiveMachineThreadsManager::Locker::Locker):
(JSC::ActiveMachineThreadsManager::add):
(JSC::ActiveMachineThreadsManager::remove):
(JSC::ActiveMachineThreadsManager::contains):
(JSC::ActiveMachineThreadsManager::ActiveMachineThreadsManager):
(JSC::activeMachineThreadsManager):
(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::removeThread):
(JSC::MachineThreads::removeThreadIfFound):
(JSC::MachineThreads::removeCurrentThread): Deleted.

  • heap/MachineStackMarker.h:
5:15 PM Changeset in webkit [180715] by Joseph Pecoraro
  • 35 edits in trunk

Web Inspector: Save Console Evaluations into Command Line variables $1-$99 ($n)
https://bugs.webkit.org/show_bug.cgi?id=142061

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Debugger.json:
  • inspector/protocol/Runtime.json:

Input flag "saveResult" on whether we should try to save a result.
Output int "savedResultIndex" to tell the frontend the saved state.

  • inspector/InjectedScriptSource.js:

Handle saving and clearing $1-$99 values.
Include in BasicCommandLineAPI for JSContext inspection.

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeEvalCall):

  • inspector/InjectedScriptBase.h:

Allow an optional "savedResultIndex" out value on evals.

  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::evaluate):
(Inspector::InjectedScript::evaluateOnCallFrame):

  • inspector/InjectedScript.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::evaluateOnCallFrame):

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::evaluate):

  • inspector/agents/InspectorRuntimeAgent.h:

Plumbing for new in and out parameters.

Source/WebCore:

  • inspector/CommandLineAPIModuleSource.js:

Replace $1-$4 "inspected objects" with $1-$99 "saved results".

  • bindings/js/JSCommandLineAPIHostCustom.cpp:

(WebCore::JSCommandLineAPIHost::inspectedObject):

  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::CommandLineAPIHost):
(WebCore::CommandLineAPIHost::InspectableObject::get):
(WebCore::CommandLineAPIHost::addInspectedObject):
(WebCore::CommandLineAPIHost::inspectedObject):
(WebCore::CommandLineAPIHost::clearInspectedObjects): Deleted.

  • inspector/CommandLineAPIHost.h:
  • inspector/CommandLineAPIHost.idl:

Since we now just save the single $0 inspected object, eliminate
keeping track of a list of 5 values.

Source/WebInspectorUI:

  • UserInterface/Controllers/RuntimeManager.js:

(WebInspector.RuntimeManager.prototype.evalCallback):
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
Add a saveResult parameter for the new protocol command in parameter.

  • UserInterface/Views/ConsoleMessageImpl.js:

(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageImpl.prototype._rootPropertyPathForObject):

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.prototype.appendTitleSuffix):
For console evaluation results, show a "= $n" when the evaluation was
given a saved result index.

  • UserInterface/Views/LogContentView.css:

(.console-saved-variable):

  • UserInterface/Views/ObjectPreviewView.css:

(.object-preview-name):
Make $n and class names in previews always non-italics.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.printResult):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):

  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Try to provide better autocompletion for $n, by populating autocompletion menus
from $1-$n where n is the maximum saved result index seen. Clear the maximum
when we clear the console.

  • UserInterface/Views/ConsoleCommandResult.js:

(WebInspector.ConsoleCommandResult):
(WebInspector.ConsoleCommandResult.clearMaximumSavedResultIndex):
Keep track of the maximum savedResultIndex for console evaluation results.

LayoutTests:

  • inspector/debugger/command-line-api-exception-nested-catch.html:
  • inspector/debugger/command-line-api-exception.html:
  • inspector/model/remote-object-get-properties.html:
  • inspector/model/remote-object-weak-collection.html:
  • inspector/model/remote-object.html:

Update evaluateInInspectedWindow call sites for new parameter.

5:15 PM Changeset in webkit [180714] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Set/Map appear as lossless when they have lossy entries
https://bugs.webkit.org/show_bug.cgi?id=142050

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
Take into account the lossless states of entry keys and values.

5:15 PM Changeset in webkit [180713] by Joseph Pecoraro
  • 14 edits
    2 copies
    3 adds
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: New ObjectTree UI for Arrays / Maps / Sets
https://bugs.webkit.org/show_bug.cgi?id=142037

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:

Miscellaneous changes.

  • UserInterface/Models/PropertyDescriptor.js:

(WebInspector.PropertyDescriptor.prototype.isIndexProperty):
Useful for quickly checking if this property is numeric and possibly
an array index.

  • UserInterface/Models/PropertyPath.js:

(WebInspector.PropertyPath.prototype.appendMapKey):
(WebInspector.PropertyPath.prototype.appendMapValue):
(WebInspector.PropertyPath.prototype.appendSetIndex):
Be specific about property paths into maps / sets. Note that a map
value may be displayable if the key is simple.

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.hasValue):
A simple value RemoteObject may have the value "undefined". So provide
a falsey proof helper that actually checks if we have a value.

(WebInspector.RemoteObject.prototype.isArray):
(WebInspector.RemoteObject.prototype.backendGetOwnPropertyDescriptor):
(WebInspector.RemoteObject.prototype.wrappedCallback):
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor):
Currently backend APIs exist only to get all properties. In the case
of collections, we often want to get only one property (proto).
This is a simple implementation on top of callFunctionOn.

  • UserInterface/Views/ConsoleMessageImpl.js:

(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageImpl.prototype.appendUndefined): Deleted.
(WebInspector.ConsoleMessageImpl.prototype._printArray): Deleted.
(WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry): Deleted.
Simplify array formatted to just use an ObjectTreeView. Add fixmes
that we should seed the ObjectTreeView with a starting property path.

  • UserInterface/Views/FormattedValue.css:

(.formatted-node > ol):
Sometimes, a node's display was getting overridden by various console styles.
Force a node to always display block. We may be able to remove this later.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
Helper for formatting a node / object / value more easily. This
is used by all collection types.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
We lost the nice sparse array support when switching to the new preview path,
we should add it back.

  • UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:

(.object-tree-array-index):
(.object-tree-array-index > .titles):
(.object-tree-array-index > .icon):
(.object-tree-array-index .index-name):
(.object-tree-array-index .index-value .object-tree):
(.object-tree-array-index .index-value .object-tree .object-tree-outline):
(.object-tree-property + ol .object-tree-array-index):
New styles specific to array index tree elements.

  • UserInterface/Views/ObjectTreeMapEntryTreeElement.css:

(.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name):
(.object-tree-map-entry.key):
(.object-tree-map-entry.key:first-of-type):
(.object-tree-map-entry):
New styles specific to map key/value tree elements.

  • UserInterface/Views/ObjectTreeCollectionTreeElement.js: Removed.

Remove old collection implementation.

  • UserInterface/Views/ObjectTreeArrayIndexTreeElement.js: Added.

(WebInspector.ObjectTreeArrayIndexTreeElement):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement):
Index followed by formatted value. Unfortunately a page can hack up an array
with getter properties, so also support getter values in an array. This ends
up copying a lot of ObjectTreePropertyTreeElement as a result.

  • UserInterface/Views/ObjectTreeMapEntryTreeElement.js: Added.

(WebInspector.ObjectTreeMapEntryTreeElement):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype.get object):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeMapKeyTreeElement):
(WebInspector.ObjectTreeMapKeyTreeElement.prototype.displayPropertyName):
(WebInspector.ObjectTreeMapKeyTreeElement.prototype.resolvedValuePropertyPath):
(WebInspector.ObjectTreeMapValueTreeElement):
(WebInspector.ObjectTreeMapValueTreeElement.prototype.displayPropertyName):
(WebInspector.ObjectTreeMapValueTreeElement.prototype.resolvedValuePropertyPath):
Key/value followed by formatted value.

  • UserInterface/Views/ObjectTreeSetIndexTreeElement.js: Added.

(WebInspector.ObjectTreeSetIndexTreeElement):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype.get object):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
Dot followed by formatted value.

  • UserInterface/Views/ObjectTreePropertyTreeElement.css:

(.object-tree-property > .titles):
Reformat.

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree-property :matches(.formatted-string, .formatted-regexp)):
Upgrade generic styles.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView):
(WebInspector.ObjectTreeView.emptyMessageElement):
(WebInspector.ObjectTreeView.prototype.expand):
(WebInspector.ObjectTreeView.prototype.collapse):
(WebInspector.ObjectTreeView.prototype.update):
(WebInspector.ObjectTreeView.prototype._updateChildren):
(WebInspector.ObjectTreeView.prototype._updateEntries):
(WebInspector.ObjectTreeView.prototype._updateProperties):
(WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
Both ObjectTreeView and ObjectTreePropertyTreeElement will fetch only collection
entries or properties depending on the type of the object being expanded.

(WebInspector.ObjectTreeView.prototype._trackWeakEntries):
(WebInspector.ObjectTreeView.prototype._untrackWeakEntries):
Allow WeakMap entries to be Garbage Collected when the ObjectTreeView
collapses or the console is cleared. FIXME for handling sub-tree WeakMaps.

5:04 PM Changeset in webkit [180712] by gyuyoung.kim@samsung.com
  • 10 edits in trunk/Source/WebCore

Remove unnecessary create() factory functions in CDMFoo, NamedNodeMap
https://bugs.webkit.org/show_bug.cgi?id=141902

Reviewed by Darin Adler.

Create instance using std::make_unique<> in CDMFactory directly. To do that,
CDMFactory uses lambdas. Additionally this patch removes NamedNodeMap::create() as well.

No new tests, no behavior changes.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::installedCDMFactories):

  • Modules/encryptedmedia/CDM.h:
  • Modules/encryptedmedia/CDMPrivateClearKey.h:

(WebCore::CDMPrivateClearKey::CDMPrivateClearKey):
(WebCore::CDMPrivateClearKey::create): Deleted.

  • Modules/encryptedmedia/CDMPrivateMediaPlayer.h:

(WebCore::CDMPrivateMediaPlayer::create): Deleted.

  • dom/Element.cpp:

(WebCore::Element::attributes):

  • dom/NamedNodeMap.h:

(WebCore::NamedNodeMap::NamedNodeMap):
(WebCore::NamedNodeMap::create): Deleted.

  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.h:

(WebCore::CDMPrivateMediaSourceAVFObjC::create): Deleted.

4:55 PM Changeset in webkit [180711] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

The bool returning form of BytecodeGenerator::addVar() can be removed
https://bugs.webkit.org/show_bug.cgi?id=142064

Reviewed by Mark Lam.

It's easier to implement addVar() when you don't have to return whether it's a new
variable or not.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::addVar):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::addVar): Deleted.

4:30 PM Changeset in webkit [180710] by bshafiei@apple.com
  • 5 edits in branches/safari-600.5-branch/Source

Versioning.

4:28 PM Changeset in webkit [180709] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.5.8

New tag.

4:09 PM Changeset in webkit [180708] by aestes@apple.com
  • 3 edits
    2 adds in trunk/Source/WebCore

[Content Filtering] Move WebFilterEvaluator and NEFilterSource declarations to SPI headers
https://bugs.webkit.org/show_bug.cgi?id=142062

Reviewed by Daniel Bates.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/ContentFilterMac.mm:
  • platform/spi/cocoa/NEFilterSourceSPI.h: Added.
  • platform/spi/cocoa/WebFilterEvaluatorSPI.h: Added.
3:53 PM Changeset in webkit [180707] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] More Debug assertion updates.

  • platform/win/TestExpectations:
3:34 PM Changeset in webkit [180706] by andersca@apple.com
  • 9 edits in trunk/Source

Add API to remove all website data for the given data records
https://bugs.webkit.org/show_bug.cgi?id=142060

Reviewed by Beth Dakin.

Source/WebCore:

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::removeResourcesWithOrigins):
New function that removes all resources that match the set of origins in a given session.

Source/WebKit2:

  • UIProcess/API/Cocoa/_WKWebsiteDataStore.h:

Add new method declaration.

  • UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:

(toWebsiteDataRecords):
Add a helper function that converts an NSArray of _WKWebsiteDataRecords to a Vector of WebsiteDataRecords.

(-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
Call through to the underlying WebsiteDataStore.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):
Figure out which processes to call deleteWebsiteDataForOrigins for and do so. Add a callback aggregator so we can
call the completion handler at the right time.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Add new members.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::deleteWebsiteDataForOrigins):
Use the newly added MemoryCache member function to delete all resources matching the set of origins.

3:26 PM Changeset in webkit [180705] by Brent Fulgham
  • 7 edits
    1 delete in trunk

[Win] Remove WebKitExportGenerator project (and related)
https://bugs.webkit.org/show_bug.cgi?id=142035

Reviewed by Dean Jackson.

Source/WebKit:

  • WebKit.vcxproj/WebKit.sln: Remove references to WebKitExportGenerator
  • WebKit.vcxproj/WebKit.submit.sln: Ditto.
  • WebKit.vcxproj/WebKit/WebKit.vcxproj: Ditto.
  • WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Ditto.
  • WebKit.vcxproj/WebKitExportGenerator: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj.filters: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebug.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebugWinCairo.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorProduction.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorRelease.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorReleaseWinCairo.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/make-export-file-generator: Removed.

Tools:

  • win/AssembleBuildLogs/AssembleLogs.cmd: Don't look for a

build log from WebKitExportGenerator.

3:22 PM Changeset in webkit [180704] by Chris Dumez
  • 23 edits in trunk/Source

Rename DatabaseManager::manager() to DatabaseManager::singleton()
https://bugs.webkit.org/show_bug.cgi?id=142054

Reviewed by Ryosuke Niwa.

Rename DatabaseManager::manager() to DatabaseManager::singleton() as
per coding style and use WTF::NeverDestroyed.

Source/WebCore:

  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::DatabaseBackendBase::DatabaseBackendBase):

  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::DatabaseContext):
(WebCore::DatabaseContext::~DatabaseContext):
(WebCore::DatabaseContext::stopDatabases):
(WebCore::DatabaseContext::databaseExceededQuota):

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::singleton):
(WebCore::DatabaseManager::manager): Deleted.

  • Modules/webdatabase/DatabaseManager.h:

(WebCore::DatabaseManager::~DatabaseManager): Deleted.

  • Modules/webdatabase/SQLTransactionClient.cpp:

(WebCore::SQLTransactionClient::didExceedQuota):

  • history/PageCache.cpp:

(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopLoading):

Source/WebKit/mac:

  • Storage/WebDatabaseManager.mm:

(-[WebDatabaseManager init]):
(-[WebDatabaseManager origins]):
(-[WebDatabaseManager databasesWithOrigin:]):
(-[WebDatabaseManager detailsForDatabase:withOrigin:]):
(-[WebDatabaseManager deleteAllDatabases]):
(-[WebDatabaseManager deleteOrigin:]):
(-[WebDatabaseManager deleteDatabase:withOrigin:]):

  • Storage/WebDatabaseQuotaManager.mm:

(-[WebDatabaseQuotaManager usage]):
(-[WebDatabaseQuotaManager quota]):
(-[WebDatabaseQuotaManager setQuota:]):

  • WebCoreSupport/WebSecurityOrigin.mm:

(-[WebSecurityOrigin usage]):
(-[WebSecurityOrigin quota]):
(-[WebSecurityOrigin setQuota:]):

  • WebView/WebFrame.mm:

(-[WebFrame _cacheabilityDictionary]):

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit/win:

  • WebDatabaseManager.cpp:

(WebDatabaseManager::sharedWebDatabaseManager):
(WebDatabaseManager::origins):
(WebDatabaseManager::databasesWithOrigin):
(WebDatabaseManager::detailsForDatabase):
(WebDatabaseManager::deleteAllDatabases):
(WebDatabaseManager::deleteOrigin):
(WebDatabaseManager::deleteDatabase):
(WebDatabaseManager::setQuota):
(WebKitInitializeWebDatabasesIfNecessary):

  • WebSecurityOrigin.cpp:

(WebSecurityOrigin::usage):
(WebSecurityOrigin::quota):
(WebSecurityOrigin::setQuota):

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::exceededDatabaseQuota):

  • WebProcess/WebCoreSupport/WebDatabaseManager.cpp:

(WebKit::WebDatabaseManager::initialize):
(WebKit::WebDatabaseManager::getDatabasesByOrigin):
(WebKit::WebDatabaseManager::getDatabaseOrigins):
(WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin):
(WebKit::WebDatabaseManager::deleteDatabasesForOrigin):
(WebKit::WebDatabaseManager::deleteAllDatabases):
(WebKit::WebDatabaseManager::setQuotaForOrigin):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

2:44 PM Changeset in webkit [180703] by fpizlo@apple.com
  • 7 edits
    11 adds in trunk

Various array access corner cases should take OSR exit feedback
https://bugs.webkit.org/show_bug.cgi?id=142056

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


Two major changes here:

  • Don't keep converting GetById into GetArrayLength if we exited due to any kind of array type check.


  • Use a generic form of GetByVal/PutByVal if we exited due to any kind of exotic checks, like the Arguments safety checks. We use the "ExoticObjectMode" for out-of-bounds on arguments for now, since it's a convenient way of forcing out-of-bounds to be handled by the Generic array mode.
  • bytecode/ExitKind.cpp:

(JSC::exitKindToString):

  • bytecode/ExitKind.h:
  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::refine):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnArguments):
(JSC::DFG::SpeculativeJIT::compileGetArgumentsLength):

  • tests/stress/array-length-array-storage-plain-object.js: Added.

(foo):

  • tests/stress/array-length-plain-object.js: Added.

(foo):

LayoutTests:

  • js/regress/arguments-out-of-bounds-expected.txt: Added.
  • js/regress/arguments-out-of-bounds.html: Added.
  • js/regress/exit-length-on-plain-object-expected.txt: Added.
  • js/regress/exit-length-on-plain-object.html: Added.
  • js/regress/script-tests/arguments-out-of-bounds.js: Added.

(foo):
(bar):

  • js/regress/script-tests/exit-length-on-plain-object.js: Added.

(foo):

  • js/regress/script-tests/string-out-of-bounds.js: Added.

(bar):

  • js/regress/string-out-of-bounds-expected.txt: Added.
  • js/regress/string-out-of-bounds.html: Added.
2:25 PM Changeset in webkit [180702] by Lucas Forschler
  • 4 edits
    2 copies in branches/safari-600.1.4.15-branch/Source/JavaScriptCore

Merged r180452. rdar://problem/19966376

2:24 PM Changeset in webkit [180701] by ggaren@apple.com
  • 6 edits in trunk/Source/bmalloc

bmalloc: Large object free list can grow infinitely
https://bugs.webkit.org/show_bug.cgi?id=142055

Reviewed by Andreas Kling.

By design, we don't eagerly remove large objects from the free list.
This creates two simple pathologies:

(1) If you free and then allocate the same object repeatedly, it will
duplicate itself in the free list repeatedly. Since it is never
invalid at the time of allocation, it will never be removed.

(2) If you split and then merge the same object repeatedly, it will
duplicate its split sibling in the free list repeatedly. If its
sibling is in a separate free list size class, it will never be
consulted at the time of allocation, so it will never be removed.

So, a simple "while (1) { free(malloc(x)); }" causes infinite memory
use in the free list.

The solution in this patch is a simple helper to remove garbage from the
free list if it grows too large. This pathology is not common, so the
cost is OK.

Long-term, perhaps we should rethink the laziness of these free lists.

  • bmalloc/BoundaryTag.h:

(bmalloc::BoundaryTag::isMarked):
(bmalloc::BoundaryTag::setMarked): New bit, used by free list GC.

  • bmalloc/FreeList.cpp:

(bmalloc::FreeList::removeInvalidAndDuplicateEntries): The GC algorithm.

  • bmalloc/FreeList.h:

(bmalloc::FreeList::FreeList):
(bmalloc::FreeList::push): Invoke the GC if we're getting huge.

  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::isMarked):
(bmalloc::LargeObject::setMarked):
(bmalloc::LargeObject::validateSelf): Expose the new bit.

  • bmalloc/Sizes.h: New constant to control GC frequency.
2:22 PM Changeset in webkit [180700] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

Fix the !ENABLE(GEOLOCATION) build after r180533
https://bugs.webkit.org/show_bug.cgi?id=142053

Reviewed by Chris Dumez.

  • Modules/geolocation/GeoNotifier.cpp:
  • Modules/geolocation/GeoNotifier.h:
2:21 PM Changeset in webkit [180699] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.15-branch/Source/WebKit2

Merged r179904. rdar://problem/19966381

2:18 PM Changeset in webkit [180698] by Lucas Forschler
  • 4 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r180174. rdar://problem/19966344

2:04 PM Changeset in webkit [180697] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Bump EFL version to 1.13.0
https://bugs.webkit.org/show_bug.cgi?id=141708

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
1:42 PM March 2015 Meeting edited by Brian Burg
(diff)
1:04 PM Changeset in webkit [180696] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS Media] incorrect front padding on time values
https://bugs.webkit.org/show_bug.cgi?id=142027
<rdar://problem/19960790>

Reviewed by Brent Fulgham.

My last commit was updating the OS X file,
not the iOS file.

We don't want to prefix times with a "0".

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.formatTime):

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.formatTime):

12:40 PM Changeset in webkit [180695] by Csaba Osztrogonác
  • 2 edits in trunk/Source/bmalloc

URTBF after r180693.

  • CMakeLists.txt:
12:20 PM Changeset in webkit [180694] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

2015-02-26 Geoffrey Garen <ggaren@apple.com>

Try to fix the Mac build.

Unreviewed.

  • bmalloc.xcodeproj/project.pbxproj: Make FreeList.h available.
12:05 PM Changeset in webkit [180693] by ggaren@apple.com
  • 7 edits
    2 copies
    1 delete in trunk/Source/bmalloc

bmalloc: Refactored SegregatedFreeList and BoundaryTag::init
https://bugs.webkit.org/show_bug.cgi?id=142049

Reviewed by Anders Carlsson.

Split out a FreeList class from SegregatedFreeList. This will make it
easier to add behaviors on free list insertion and removal -- and it's
probably how I should have designed things at the start.

Moved BoundaryTag::init into LargeObject, since all the related logic
lives in LargeObject now too, and this allows us to remove BoundaryTagInlines.h.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/BoundaryTagInlines.h: Removed.
  • bmalloc/FreeList.cpp: Copied from Source/bmalloc/bmalloc/SegregatedFreeList.cpp.

(bmalloc::FreeList::takeGreedy):
(bmalloc::FreeList::take):
(bmalloc::SegregatedFreeList::SegregatedFreeList): Deleted.
(bmalloc::SegregatedFreeList::insert): Deleted.
(bmalloc::SegregatedFreeList::takeGreedy): Deleted.
(bmalloc::SegregatedFreeList::take): Deleted.

  • bmalloc/FreeList.h: Copied from Source/bmalloc/bmalloc/SegregatedFreeList.h.

(bmalloc::FreeList::push):

  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::init):

  • bmalloc/SegregatedFreeList.cpp:

(bmalloc::SegregatedFreeList::SegregatedFreeList):
(bmalloc::SegregatedFreeList::insert):
(bmalloc::SegregatedFreeList::takeGreedy):
(bmalloc::SegregatedFreeList::take):

  • bmalloc/SegregatedFreeList.h:
  • bmalloc/Sizes.h:
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):

11:56 AM Changeset in webkit [180692] by Lucas Forschler
  • 10 edits in branches/safari-600.1.4.15-branch/Source

Merged r179480. rdar://problem/19709193

11:51 AM Changeset in webkit [180691] by fpizlo@apple.com
  • 29 edits
    2 moves
    1 add in trunk/Source/JavaScriptCore

DFG SSA stack accesses shouldn't speak of VariableAccessDatas
https://bugs.webkit.org/show_bug.cgi?id=142036

Reviewed by Michael Saboff.

VariableAccessData is a useful thing in LoadStore and ThreadedCPS, but it's purely harmful in
SSA because you can't cook up new VariableAccessDatas. So, if you know that you want to load
or store to the stack, and you know what format to use as well as the location, then prior to
this patch you couldn't do it unless you found some existing VariableAccessData that matched
your requirements. That can be a hard task.

It's better if SSA doesn't speak of VariableAccessDatas but instead just has stack accesses
that speak of the things that a stack access needs: local, machineLocal, and format. This
patch changes the SSA way of accessing the stack to do just that.

Also add more IR validation.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGFlushFormat.h:

(JSC::DFG::isConcrete):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGGraph.h:
  • dfg/DFGMayExit.cpp:

(JSC::DFG::mayExit):

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::hasVariableAccessData):

  • dfg/DFGNode.h:

(JSC::DFG::StackAccessData::StackAccessData):
(JSC::DFG::StackAccessData::flushedAt):
(JSC::DFG::Node::convertToPutStack):
(JSC::DFG::Node::convertToGetStack):
(JSC::DFG::Node::hasUnlinkedLocal):
(JSC::DFG::Node::hasStackAccessData):
(JSC::DFG::Node::stackAccessData):
(JSC::DFG::Node::willHaveCodeGenOrOSR):

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGPutLocalSinkingPhase.cpp: Removed.
  • dfg/DFGPutLocalSinkingPhase.h: Removed.
  • dfg/DFGPutStackSinkingPhase.cpp: Copied from Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp.

(JSC::DFG::performPutStackSinking):
(JSC::DFG::performPutLocalSinking): Deleted.

  • dfg/DFGPutStackSinkingPhase.h: Copied from Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.h.
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):
(JSC::DFG::Validate::validateCPS):
(JSC::DFG::Validate::validateSSA):

  • dfg/DFGVirtualRegisterAllocationPhase.cpp:

(JSC::DFG::VirtualRegisterAllocationPhase::run):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::lower):
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileGetStack):
(JSC::FTL::LowerDFGToLLVM::compilePutStack):
(JSC::FTL::LowerDFGToLLVM::compileGetLocal): Deleted.
(JSC::FTL::LowerDFGToLLVM::compilePutLocal): Deleted.

  • ftl/FTLOSRExit.h:
  • tests/stress/many-sunken-locals.js: Added. This failure mode was caught by some miscellaneous test, so I figured I should write an explicit test for it.

(foo):
(bar):
(baz):
(fuzz):
(buzz):

11:44 AM Changeset in webkit [180690] by mark.lam@apple.com
  • 10 edits in trunk

Rolling out r180602, r180608, r180613, r180617, r180671.
<https://webkit.org/b/141990>

Not reviewed.

The r180602 solution does result in more work for GC when worker
threads are in use. Filip is uncomfortable with that.
The EFL and GTK ports also seem to be unhappy with this change.
Rolling out while we investigate.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::gatherStackRoots):
(JSC::Heap::machineThreads): Deleted.

  • heap/Heap.h:

(JSC::Heap::machineThreads):

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):

  • heap/MachineStackMarker.h:
  • runtime/JSLock.cpp:

(JSC::JSLock::didAcquireLock):

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM):

LayoutTests:

  • platform/efl/TestExpectations:
11:39 AM Changeset in webkit [180689] by mmaxfield@apple.com
  • 21 edits
    2 adds in trunk

Source/JavaScriptCore:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

This patch implements initial parsing support for the -apple-trailing-word CSS property.
This property has two possible (mutually exclusive) values: auto and
-apple-partially-balanced. This property is inherited.

The work for this property is behind the ENABLE(CSS_TRAILING_WORD) preprocessor define.

This is an internal property that will allow us to control line breaking behavior for
short paragraphs.

Note that, because of the implementation of cssValueKeywordID() in CSSParser.cpp,
the new value must be implemented as -webkit-partially-balanced. Using the -apple-
prefix will work, but if you getComputedStyle(), it will return the -webkit- prefixed
version.

Test: platform/mac/fast/text/trailing-word-parse.html

  • Configurations/FeatureDefines.xcconfig:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue): Turn internal representation into a
CSS value.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue): Updated for new keyword property / value
pair.
(WebCore::isKeywordPropertyID): New property is a keyword property.
(WebCore::CSSParser::parseValue): Use the keyword property codepath.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Convert to and from the internal
representation and CSS values.
(WebCore::CSSPrimitiveValue::operator TrailingWord):

  • css/CSSPropertyNames.in: New property.
  • css/CSSValueKeywords.in: New value.
  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor): Can't use SimpleLineLayout for this.

  • rendering/style/RenderStyle.h: Getter, setter and initial value.
  • rendering/style/RenderStyleConstants.h: Internal data type.
  • rendering/style/StyleRareInheritedData.h: One bit to control this style property.
  • rendering/style/StyleRareInheritedData.cpp: Update constructors and operators.

Source/WebKit/mac:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

LayoutTests:
Parsing support for -webkit-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

Test parsing using getComputedStyle().

  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html: Updated.
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-expected.txt: Updated.
  • platform/mac/fast/text/trailing-word-parse-expected.txt: Added.
  • platform/mac/fast/text/trailing-word-parse.html: Added.
11:30 AM Changeset in webkit [180688] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

bmalloc: free up a bit in BoundaryTag
https://bugs.webkit.org/show_bug.cgi?id=142048

Reviewed by Brady Eidson.

We were wasting a bit by accident, and I need one now.

  • bmalloc/Algorithm.h:

(bmalloc::rightShift): Deleted. Not needed, now that I've simplified
the math.

  • bmalloc/BoundaryTag.h: Since each boundary tag bucket is 1024 bytes

long, the maximum offset into a bucket is 1023.

You need 5 bits to count up to 1024, but only 4 to count up to 1023.

Math is hard.

(bmalloc::BoundaryTag::compactBegin): Switched to division because it
is simpler, and easier to match up with our ASSERT. The compiler will
turn division by constant power of two into a shift for us.

(bmalloc::BoundaryTag::setRange): Added an ASSERT for compactBegin
because we do encode it, so we should ASSERT that encoding did not
lose information.

  • bmalloc/Sizes.h: Shifting is no longer used since we use division

instead.

11:29 AM Changeset in webkit [180687] by beidson@apple.com
  • 4 edits in trunk

Make WKPageGroupRemoveAllUserContentFilters actually remove all user content filters
https://bugs.webkit.org/show_bug.cgi?id=142047

Reviewed by Geoff Garen.

Source/WebKit2:

  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupRemoveAllUserContentFilters): Remove all content filters instead of removing all user scripts.

LayoutTests:

  • platform/mac-wk2/TestExpectations: Renable content filter tests, as they should no longer interfere with others.
11:16 AM Changeset in webkit [180686] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix a accidental deletion from r178674.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):
Return the fake WebGL context.

10:37 AM Changeset in webkit [180685] by commit-queue@webkit.org
  • 6 edits in trunk

Cleanup RenderSVGResourceClipper class.
https://bugs.webkit.org/show_bug.cgi?id=142032.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-02-26
Reviewed by Darin Adler.
Source/WebCore:

This is a follow up for r180643: <http://trac.webkit.org/changeset/180643>.
It includes cleanup for RenderSVGResourceClipper class.

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourceClipper.h: Change ClipperData to be a

typedef instead of a class and rename it to ClipperMaskImage. The purpose
of having it a class even though it includes only one member was because
we wanted it to be WTF_MAKE_FAST_ALLOCATED. We do not need to allocate it
as a separate object on the heap anymore.

(WebCore::RenderSVGResourceClipper::addRendererToClipper): Instead of doing
double hash table lookups by calling HashMap::contains() and then HashMap::get(),
we can use HashMap::add() instead.

LayoutTests:

  • svg/clip-path/clip-path-line-use-before-defined-expected.svg:
  • svg/clip-path/clip-path-line-use-before-defined.svg: Simplify the test

and make separate drawings for different cases.

10:36 AM Changeset in webkit [180684] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Debug-only JavaScriptCore failures
https://bugs.webkit.org/show_bug.cgi?id=142045

Rubber stamped by Filip Pizlo.

Reduced loop count to a more reasonable value of 10,000. This still gets us to tier up
to the FTL, but doesn't take too long to run.

  • tests/stress/repeated-arity-check-fail.js:
10:34 AM Changeset in webkit [180683] by commit-queue@webkit.org
  • 6 edits
    6 adds in trunk

Setting any of the <object> element plugin controlling attributes does not have any affect.
https://bugs.webkit.org/show_bug.cgi?id=141936.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-02-26
Reviewed by Zalan Bujtas.

Source/WebCore:

When setting any of the <object> element plugin controlling attributes
dynamically we need to mark the the element to be dirty by calling
setNeedsStyleRecalc(), so it has to recreate its renderer when needed.

Test: svg/as-object/svg-in-object-dynamic-attribute-change.html

  • dom/Element.h: Delete unimplemented function.
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::parseAttribute): Dirty the element by calling
setNeedsStyleRecalc() when one of the plugin controlling attributes gets
changed. We have to clear the m_useFallbackContent because the attribute's
new value might fix the object rendering.

  • html/HTMLObjectElement.h: Add a function to clear m_useFallbackContent.
  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::willRecalcStyle): We might need to
reconstruct the object renderer in the image case. This can happen if the
image was rendering fallback content and the attribute's new value fixes
the object rendering.

LayoutTests:

  • svg/as-object/resources/lime100x100.html: Added.
  • svg/as-object/resources/lime100x100.png: Added.
  • svg/as-object/resources/lime100x100.svg: Added.
  • svg/as-object/resources/red100x100.svg: Added.
  • svg/as-object/svg-in-object-dynamic-attribute-change-expected.html: Added.
  • svg/as-object/svg-in-object-dynamic-attribute-change.html: Added.

Ensure that changing the 'type' and the 'data' attributes of the <object>
element will have the expected outcome. Also make sure that the <object>
element renderer falls back correctly when setting any of the attributes
to some unexpected value.

10:33 AM Changeset in webkit [180682] by weinig@apple.com
  • 1 edit
    1 add in trunk/Tools

Check in missing WebEditingTester.xcconfig file.

  • WebEditingTester/Configurations/WebEditingTester.xcconfig: Added.
10:32 AM Changeset in webkit [180681] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

[webkitpy] Remove skipped file related crufts
https://bugs.webkit.org/show_bug.cgi?id=142046

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/port/base.py:

(Port.skipped_layout_tests):
(Port._tests_from_skipped_file_contents): Deleted.
(Port): Deleted.
(Port._expectations_from_skipped_files): Deleted.

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest.test_default_timeout_ms):
(MacTest): Deleted.
(test_tests_from_skipped_file_contents): Deleted.

10:19 AM Changeset in webkit [180680] by Brent Fulgham
  • 2 edits in trunk/WebKitLibraries

[Win] Unreviewed build fix after r180676.

I forgot to checkin one of the more important changes!

  • win/tools/vsprops/common.props:
10:03 AM Changeset in webkit [180679] by bshafiei@apple.com
  • 4 edits in branches/safari-600.5-branch/Source/JavaScriptCore

Merge patch for r180247 and r180249. rdar://problem/19877186

9:30 AM Changeset in webkit [180678] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed test updates for Debug bots.

  • platform/win/TestExpectations:
9:04 AM Changeset in webkit [180677] by Brent Fulgham
  • 4 edits
    2 adds in trunk/Tools

[Win] Unreviewed WinCairo build fix after r180653.

TestWebKitAPI should know about proper WEBCORE_EXPORT definitions.

  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj.filters:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPICommon.props:
  • TestWebKitAPI/win/TestWebKitAPIPrefix.cpp: Added.
  • TestWebKitAPI/win/TestWebKitAPIPrefix.h: Added.
8:51 AM Changeset in webkit [180676] by Brent Fulgham
  • 31 edits in trunk

[Win] Make build logs more legible by reducing noise
https://bugs.webkit.org/show_bug.cgi?id=142034

Reviewed by Alexey Proskuryakov.

Modify batch files, makefiles, and DOS commands to remove
uninteresting/unhelpful output.

Source/JavaScriptCore:

Source/WebCore:

  • WebCore.vcxproj/WebCoreGenerated.make:
  • WebCore.vcxproj/WebCorePreBuild.cmd:
  • WebCore.vcxproj/copyForwardingHeaders.cmd:
  • WebCore.vcxproj/copyWebCoreResourceFiles.cmd:

Source/WebInspectorUI:

  • WebInspectorUI.vcxproj/WebInspectorUI.make:

Source/WebKit:

  • WebKit.vcxproj/Interfaces/InterfacesPostBuild.cmd:
  • WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
  • WebKit.vcxproj/WebKit/WebKitPostBuild.cmd:
  • WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd:

Source/WTF:

  • WTF.vcxproj/WTFGenerated.make:
  • WTF.vcxproj/WTFPreBuild.cmd:
  • WTF.vcxproj/copy-files.cmd:

WebKitLibraries:

  • win/tools/vsprops/common.props:
8:24 AM Changeset in webkit [180675] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[FreeType] REGRESSION(r180563): Introduced crashes
https://bugs.webkit.org/show_bug.cgi?id=142044

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-02-26
Reviewed by Martin Robinson.

No new tests, should be caught by any woff font test.

Use optionsPattern, not m_pattern, when m_pattern may be null.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::initializeWithFontFace):

7:34 AM WebKitGTK/2.8.x edited by Michael Catanzaro
r180563 introduced crashes (diff)
7:33 AM WebKitGTK/2.6.x edited by Michael Catanzaro
Remove r180563, it introduced crashes (diff)
7:21 AM Changeset in webkit [180674] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Revert bug 19975, now that gcc 4.7 is required.
https://bugs.webkit.org/show_bug.cgi?id=129927

Patch by Landry Breuil <landry@openbsd.org> on 2015-02-26
Reviewed by Andreas Kling.

isfinite() and signbit() are provided by gcc's cmath header.

  • wtf/MathExtras.h:
6:55 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
5:53 AM Changeset in webkit [180673] by Csaba Osztrogonác
  • 2 edits in trunk

[EFL] Remove unnecessary comment after r179110
https://bugs.webkit.org/show_bug.cgi?id=142042

Reviewed by Gyuyoung Kim.

  • Source/cmake/OptionsEfl.cmake:
5:44 AM Changeset in webkit [180672] by Csaba Osztrogonác
  • 5 edits in trunk/LayoutTests

[WK2] Unreviewed gardening, skip failing tests related to missing
EventSender.beginDragWithFiles implementation in wk2/TestExpectations.

There is no good reason to wait for 30 seconds timeout, let's skip them everywhere.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
3:44 AM Changeset in webkit [180671] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed gardening, skip fast/workers tests to unbreak the buildbot.
https://bugs.webkit.org/show_bug.cgi?id=142041

  • platform/efl/TestExpectations:
3:33 AM Changeset in webkit [180670] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed gardening, comment out old expectations
of WebGL tests to really skip them as we expected.

  • platform/efl/TestExpectations:
2:58 AM Changeset in webkit [180669] by svillar@igalia.com
  • 4 edits
    2 adds in trunk

ASSERTION FAILED: !length.isUndefined() in WebCore::GridLength::GridLength
https://bugs.webkit.org/show_bug.cgi?id=141645

Reviewed by Chris Dumez.

Source/WebCore:

This bug has been here since r110484 but was uncovered by
r180140. The problem r110484 was trying to fix was that
CSSPrimitiveValue::convertToLength<Length> ended up calling
CSSPrimitiveValue::computeLengthDouble() which was apparently
dereferencing conversionData.style() and
conversionData.rootStyle() pointers without checking them. That's
why that fix added this condition to convertToLength():

isFontRelativeLength() && (!conversionData.style()
!conversionData.rootStyle())

which is not correct, because for the 4 possible font relative
length types, 3 of them just use the style() pointer and the other
one just uses rootStyle() which BTW could be NULL. This erroneous
condition makes that function to return Length(Undefined) more
often than it should.

From now on it only returns Length(Undefined) if the style()
pointer is NULL and the font relative length type is one in the
set (CSS_EMS, CSS_EXS, CSS_CHS);

Test: fast/css-grid-layout/grid-with-relative-font-length-crash.html

  • css/CSSPrimitiveValue.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::convertingToLengthRequiresNonNullStyle):
(WebCore::CSSPrimitiveValue::convertToLength):

LayoutTests:

  • fast/css-grid-layout/grid-with-relative-font-length-crash-expected.txt: Added.
  • fast/css-grid-layout/grid-with-relative-font-length-crash.html: Added.
2:50 AM Changeset in webkit [180668] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WTF

UNREACHABLE_FOR_PLATFORM() should be release assert
https://bugs.webkit.org/show_bug.cgi?id=141904

Reviewed by Darin Adler.

  • wtf/Assertions.h:

(UNREACHABLE_FOR_PLATFORM):

1:20 AM Changeset in webkit [180667] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Add calleeSaveRegisters() implementation for ARM Traditional
https://bugs.webkit.org/show_bug.cgi?id=141903

Reviewed by Darin Adler.

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::calleeSaveRegisters):

12:15 AM Changeset in webkit [180666] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Prod libcache to drop caches in memory pressure relief handler.
<https://webkit.org/b/142024>
<rdar://problem/19966096>

Reviewed by Antti Koivisto.

libcache already listens to the OS memory pressure notifications, but we still
need to manually request a cleanup when doing an iOS process suspension, or when
simulating memory pressure.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory): Call out to libcache's
cache_simulate_memory_warning_event() to make sure that nonessential objects
being kept alive by NSCaches get dropped when we need the memory.

12:00 AM Changeset in webkit [180665] by bshafiei@apple.com
  • 9 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r180274. rdar://problem/19878981

Feb 25, 2015:

11:25 PM Changeset in webkit [180664] by bshafiei@apple.com
  • 4 edits in branches/safari-600.1.4.15-branch/Source/JavaScriptCore

Merge patch for r180247 and r180249. rdar://problem/19711578

11:15 PM Changeset in webkit [180663] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch/Source/WebKit2

Merged r180539. rdar://problem/19711490

11:13 PM Changeset in webkit [180662] by bshafiei@apple.com
  • 2 edits
    1 copy in branches/safari-600.1.4.15-branch/Source/JavaScriptCore

Merged r180516. rdar://problem/19432916

10:56 PM Changeset in webkit [180661] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Black line across screen on Adobe Illustrator detail page (non-retina only)
https://bugs.webkit.org/show_bug.cgi?id=141866

Reviewed by Simon Fraser.

Phase is relative to the destination origin. We need to take location information into account
while snapping so that the result is inline with the snapped destination rect.
(location affects the snapped size.)

Source/WebCore:

Test: fast/backgrounds/gradient-background-on-subpixel-position.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::pixelSnapBackgroundImageGeometryForPainting):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

LayoutTests:

  • fast/backgrounds/gradient-background-on-subpixel-position-expected.html: Added.
  • fast/backgrounds/gradient-background-on-subpixel-position.html: Added.
10:05 PM Changeset in webkit [180660] by msaboff@apple.com
  • 3 edits
    3 adds in trunk

Web Inspector: CRASH when debugger pauses inside a Promise handler
https://bugs.webkit.org/show_bug.cgi?id=141396

Reviewed by Mark Lam.

Source/JavaScriptCore:

For frames that don't have a scope, typically native frames, use the lexicalGlobalObject to
create the DebuggerScope for that frame.

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::scope):

LayoutTests:

New test.

  • inspector/debugger/breakpoint-scope-expected.txt: Added.
  • inspector/debugger/breakpoint-scope.html: Added.
  • inspector/debugger/resources/scope.js: Added.
9:43 PM Changeset in webkit [180659] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Make Windows green again after r180654.

  • platform/win/TestExpectations:
9:12 PM Changeset in webkit [180658] by dburkart@apple.com
  • 8 edits
    2 copies in branches/safari-600.5-branch

Merged r180364. <rdar://19720096>

9:05 PM Changeset in webkit [180657] by dburkart@apple.com
  • 4 edits
    2 copies in branches/safari-600.5-branch

Merged r180174. <rdar://19947808>

8:29 PM Changeset in webkit [180656] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

DFG abstract heaps should respect the difference between heap and stack
https://bugs.webkit.org/show_bug.cgi?id=142022

Reviewed by Geoffrey Garen.

We will soon (https://bugs.webkit.org/show_bug.cgi?id=141174) be in a world where a "world
clobbering" operation cannot write to our stack, but may be able to read from it. This
means that we need to change the DFG abstract heap hierarchy to have a notion of Heap that
subsumes all that World previously subsumed, and a new notion of Stack that is a subtype
of World and a sibling of Heap.

So, henceforth "clobbering the world" means reading World and writing Heap.

This makes a bunch of changes to make this work, including changing the implementation of
disjointness in AbstractHeap to make it support a more general hierarchy. I was expecting
a slow-down, but I measured the heck out of this and found no perf difference.

  • dfg/DFGAbstractHeap.cpp:

(JSC::DFG::AbstractHeap::dump):

  • dfg/DFGAbstractHeap.h:

(JSC::DFG::AbstractHeap::supertype):
(JSC::DFG::AbstractHeap::isStrictSubtypeOf):
(JSC::DFG::AbstractHeap::isSubtypeOf):
(JSC::DFG::AbstractHeap::overlaps):
(JSC::DFG::AbstractHeap::isDisjoint):

  • dfg/DFGClobberize.cpp:

(JSC::DFG::clobbersHeap):
(JSC::DFG::clobbersWorld): Deleted.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

8:18 PM Changeset in webkit [180655] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Update fast/regions/region-overflow-break.html after r177774

Unreviewed.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-02-25

  • fast/regions/region-overflow-break-expected.html:
  • platform/mac/TestExpectations:
8:08 PM Changeset in webkit [180654] by mmaxfield@apple.com
  • 6 edits in trunk/LayoutTests

Update 3 more tests after r177774

Unreviewed.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-02-25

  • fast/multicol/newmulticol/spanner-table-expected.html:
  • fast/multicol/newmulticol/spanner-table.html:
  • fast/regions/scrolling/wheel-scroll-abspos-expected.html:
  • fast/regions/scrolling/wheel-scroll-expected.html:
  • platform/mac/TestExpectations:
8:04 PM Changeset in webkit [180653] by Brent Fulgham
  • 51 edits
    10 adds in trunk

[Win] Use WEBCORE_EXPORT instead of Definition file
https://bugs.webkit.org/show_bug.cgi?id=141734

Reviewed by Alex Christensen.

Source/WebCore:

No change in functionality.

  • WebCore.vcxproj/WebCore.vcxproj: Correct bad Precompiled header

settings on certain files.

  • WebCore.vcxproj/WebCore.vcxproj.filters: Automatically updated

by Visual Studio.

  • WebCore.vcxproj/WebCoreTestSupport.vcxproj: Ditto.
  • WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Ditto.
  • WebCore.vcxproj/WebCoreTestSupportCommon.props: Added.
  • WebCore.vcxproj/WebCoreTestSupportDebug.props: Added.
  • WebCore.vcxproj/WebCoreTestSupportDebugWinCairo.props: Added.
  • WebCore.vcxproj/WebCoreTestSupportProduction.props: Added.
  • WebCore.vcxproj/WebCoreTestSupportRelease.props: Added.
  • WebCore.vcxproj/WebCoreTestSupportReleaseWinCairo.props: Added.
  • WebCorePrefix.h: Provide proper export definitions for Windows.
  • bindings/js/JSCustomXPathNSResolver.cpp: Add missing #include

needed by the new export style.

  • bindings/js/JSDOMWindowBase.h: Export class since DRT needs

access to parts of it.

  • bindings/js/ScriptCachedFrameData.cpp: Add missing #include

needed by the new export style.

  • bindings/scripts/CodeGeneratorJS.pm: Use different export macro

when generating WebCoreTestSupport files, so that we don't confuse
the linker when WebCore.lib and WebCoreTestSupport.lib try to
both export WEBCORE_EXPORT symbols.
(ExportLabelForClass):
(GenerateHeader):

  • bridge/jsc/BridgeJSC.cpp: Add missing #include needed by the new

export style.

  • css/CSSParser.cpp: Ditto.
  • dom/Document.cpp: Ditto.
  • html/HTMLImageLoader.cpp: Ditto.
  • inspector/CommandLineAPIModule.cpp: Ditto.
  • inspector/PageDebuggerAgent.cpp: Ditto.
  • inspector/PageRuntimeAgent.cpp: Ditto.
  • inspector/WorkerRuntimeAgent.cpp: Ditto.
  • page/DOMWindow.cpp: Ditto.
  • page/DOMWindow.h: Export the destructor, as it is needed by

DumpRenderTree (on Windows).

  • page/Page.cpp: Add missing #include needed by the new export style.
  • platform/Logging.h: Remove conflicting export declaration.
  • platform/PlatformExportMacros.h: Update for Windows use.
  • testing/Internals.cpp: Add missing #include needed by the new export style.
  • testing/Internals.h: Use WEBCORE_TESTSUPPORT_EXPORT for things that

are supposed to be exported by WebCoreTestSupport, not WebCore.

  • testing/js/WebCoreTestSupport.cpp: Add missing #include needed by

new export style.

  • testing/js/WebCoreTestSupportPrefix.cpp: Added.
  • testing/js/WebCoreTestSupportPrefix.h: Added.
  • xml/XMLHttpRequest.h: Export the destructor.
  • xml/XSLStyleSheetLibxslt.cpp: Add missing #include needed by the new

export style.

  • xml/XSLTProcessorLibxslt.cpp: Ditto.

Source/WebKit:

  • WebKit.vcxproj/WebKit/WebKit.vcxproj: Visual studio automatic

file cleanup.

  • WebKit.vcxproj/WebKit/WebKitCommon.props: Don't use the export definition

file any longer.

Source/WebKit/win:

  • CFDictionaryPropertyBag.h: Add required export macros.
  • Interfaces/WebKit.idl: Ditto.
  • WebCoreStatistics.cpp: Add missing #include (required

now that we are exporting more symbols.)

  • WebKitCOMAPI.h: Add required export macros.
  • WebKitDLL.h: Ditto.
  • WebKitPrefix.h: Ditto.
  • WebView.cpp: Add missing #include required using new

due to new export mechanism.

Tools:

  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTree.vcxproj:

Use a precompiled header so we can define our export macros properly.

  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTree.vcxproj.filters:

Visual studio automatic update stuff.

  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTreeCommon.props:

Set up Precompiled Header use for project..

  • DumpRenderTree/win/DumpRenderTreePrefix.cpp: Added.
  • DumpRenderTree/DumpRenderTreePrefix.h: Update with proper export

declarations for building DumpRenderTree as a client of
WebCore/WebKit.

7:46 PM Changeset in webkit [180652] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

Update css3/flexbox/csswg/flexbox_direction-row-reverse.html after r177774

Unreviewed.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-02-25

  • css3/flexbox/csswg/flexbox_direction-row-reverse-expected.html:
  • css3/flexbox/csswg/flexbox_direction-row-reverse.html:
  • platform/mac/TestExpectations:
5:24 PM Changeset in webkit [180651] by rniwa@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r180595): construct varargs fails in FTL
https://bugs.webkit.org/show_bug.cgi?id=142030

Reviewed by Geoffrey Garen.

The bug was caused by IC size being too small for construct_varargs even though we've added a new argument.
Fixed the bug by increasing the IC size to match call_varargs.

  • ftl/FTLInlineCacheSize.cpp:

(JSC::FTL::sizeOfConstructVarargs):

5:16 PM Changeset in webkit [180650] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Skip timing-out test after r180646.

  • platform/win/TestExpectations:
4:24 PM Changeset in webkit [180649] by mark.lam@apple.com
  • 4 edits in trunk

ASan does not like JSC::MachineThreads::tryCopyOtherThreadStack.
<https://webkit.org/b/141672>

Reviewed by Alexey Proskuryakov.

ASan does not like the fact that we memcpy the stack for GC scans. So,
we're working around this by using our own memcpy (asanUnsafeMemcpy)
implementation that we can tell ASan to ignore.

Source/JavaScriptCore:

  • heap/MachineStackMarker.cpp:

(JSC::asanUnsafeMemcpy):

Tools:

Also removed the previous added directive to ignore *tryCopyOtherThreadStack*
which isn't effective for working around this issue.

  • asan/webkit-asan-ignore.txt:
4:18 PM Changeset in webkit [180648] by gyuyoung.kim@samsung.com
  • 3 edits in trunk/Source/WebCore

Remove unnecessary DatabaseFooTask::create
https://bugs.webkit.org/show_bug.cgi?id=142002

Reviewed by Darin Adler.

DatabaseFooTask::create can be replaced with std::make_unique<>.

No new tests, no behavior changes.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::scheduleTransaction):
(WebCore::Database::scheduleTransactionStep):
(WebCore::Database::markAsDeletedAndClose):
(WebCore::Database::closeImmediately):
(WebCore::Database::tableNames):

  • Modules/webdatabase/DatabaseTask.h:

(WebCore::DatabaseBackend::DatabaseCloseTask::create): Deleted.
(WebCore::DatabaseBackend::DatabaseTransactionTask::create): Deleted.
(WebCore::DatabaseBackend::DatabaseTableNamesTask::create): Deleted.

4:05 PM Changeset in webkit [180647] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS Media] incorrect front padding on time values
https://bugs.webkit.org/show_bug.cgi?id=142027
<rdar://problem/19960790>

Reviewed by Brent Fulgham.

We don't want to prefix times with a "0".

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.formatTime):

3:49 PM Changeset in webkit [180646] by Chris Dumez
  • 5 edits
    2 adds in trunk

Make PublicURLManager suspendable
https://bugs.webkit.org/show_bug.cgi?id=141977
<rdar://problem/19923085>

Reviewed by Andreas Kling.

Source/WebCore:

Make PublicURLManager suspendable by overriding ActiveDOMObject::canSuspend()
and returning true. Nothing prevents suspending the PublicURLManager as its
implementation never causes JS to be executed. No implementation for
suspend() / resume() needs to be provided for the same reason.

The fact that PublicURLManager wasn't suspendable was preventing pages using
URL.createObjectURL() from entering the PageCache. Baidu.com search results
pages are using the API for example.

Test: fast/history/page-cache-createObjectURL.html

  • html/PublicURLManager.cpp:

(WebCore::PublicURLManager::canSuspend):

  • html/PublicURLManager.h:

LayoutTests:

Add a layout test to check that a page using URL.createObjectURL() API
can enter the PageCache.

  • fast/history/page-cache-createObjectURL-expected.txt: Added.
  • fast/history/page-cache-createObjectURL.html: Added.
  • platform/wk2/TestExpectations: The new test is skipped on WK2 because WKTR does not support eventSender.beginDragWithFiles().
3:42 PM Changeset in webkit [180645] by ap@apple.com
  • 2 edits in trunk/Source/WebKit

<rdar://problem/19949665> Some queues fail to build because of WebKitPluginHost.app symlink

Fix by Dan Bernstein, reviewed by me.

  • WebKit.xcodeproj/project.pbxproj:
3:19 PM Changeset in webkit [180644] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Cleanup BackgroundImageGeometry class.
https://bugs.webkit.org/show_bug.cgi?id=141997

Reviewed by Simon Fraser.

This patch attempts to improve RenderBoxModelObject::calculateBackgroundImageGeometry() readability by
removing redundant code and making image geometry operations explicit. BackgroundImageGeometry
becomes a read only class (with the exception of the clip() method).

No change in functionality.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::BackgroundImageGeometry::BackgroundImageGeometry):
(WebCore::BackgroundImageGeometry::pixelSnapBackgroundImageGeometryForPainting):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
(WebCore::BackgroundImageGeometry::setNoRepeatX): Deleted.
(WebCore::BackgroundImageGeometry::setNoRepeatY): Deleted.
(WebCore::BackgroundImageGeometry::useFixedAttachment): Deleted.
(WebCore::BackgroundImageGeometry::clip): Deleted.
(WebCore::RenderBoxModelObject::pixelSnapBackgroundImageGeometryForPainting): Deleted.

  • rendering/RenderBoxModelObject.h:

(WebCore::BackgroundImageGeometry::clip):
(WebCore::BackgroundImageGeometry::BackgroundImageGeometry): Deleted.
(WebCore::BackgroundImageGeometry::setDestRect): Deleted.
(WebCore::BackgroundImageGeometry::setPhase): Deleted.
(WebCore::BackgroundImageGeometry::setPhaseX): Deleted.
(WebCore::BackgroundImageGeometry::setPhaseY): Deleted.
(WebCore::BackgroundImageGeometry::setTileSize): Deleted.
(WebCore::BackgroundImageGeometry::setSpaceSize): Deleted.
(WebCore::BackgroundImageGeometry::setHasNonLocalGeometry): Deleted.

3:05 PM Changeset in webkit [180643] by Said Abou-Hallawa
  • 7 edits
    2 adds in trunk

Horizontal and vertical lines are clipped completely if clip-path is included in the tag but the referenced element is defined later.
https://bugs.webkit.org/show_bug.cgi?id=141776.

Reviewed by Dean Jackson.
Source/WebCore:

Tests: svg/clip-path/clip-path-line-use-before-defined-expected.svg

svg/clip-path/clip-path-line-use-before-defined.svg

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext): Ensure the renderer
is added to m_clipper if it does not exist. The same renderer might have been
added to m_clipper in resourceBoundingBox().

(WebCore::RenderSVGResourceClipper::addRendererToClipper): Add the renderer to
m_clipper if it does not exist. Return the associated ClipperData.

(WebCore::RenderSVGResourceClipper::resourceBoundingBox): If the clipper is
referenced before it is defined, add the renderer to m_clipper. While doing the
layout() for the clipper, we can check if m_clipper has values or not. If it does
have, we are going to mark the clipper for client invalidation which is done by
the SVG root.

  • rendering/svg/RenderSVGResourceClipper.h:
  • rendering/svg/RenderSVGResourceContainer.h:

(WebCore::RenderSVGResourceContainer::selfNeedsClientInvalidation): Define a
new function selfNeedsClientInvalidation() which controls marking the clipper
for client invalidation. In RenderSVGResourceClipper, override it so it checks
m_clipper to force clients validation even if it the first time we do layout
for this clipper.

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::layout): Call the virtual function
selfNeedsClientInvalidation() to check whether we need to mark the clipper for
client invalidation.

  • svg/SVGElement.cpp: Delete unneeded header file.

LayoutTests:


New test cases for SVG lines which are clipped to a <clipPath>. The <clipPath>
is referenced before it is defined.

  • svg/clip-path/clip-path-line-use-before-defined-expected.svg: Added.
  • svg/clip-path/clip-path-line-use-before-defined.svg: Added.
2:37 PM Changeset in webkit [180642] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch/Source

Versioning.

2:37 PM Changeset in webkit [180641] by commit-queue@webkit.org
  • 4 edits in trunk

[WinCairo] WinLauncher is not starting on Vista.
https://bugs.webkit.org/show_bug.cgi?id=141905

Patch by peavo@outlook.com <peavo@outlook.com> on 2015-02-25
Reviewed by Alex Christensen.

We have to soft link with Media Foundation functions to be able
to start on Vista and WinXP.

Source/WebCore:

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::createSession):
(WebCore::MediaPlayerPrivateMediaFoundation::endSession):
(WebCore::MediaPlayerPrivateMediaFoundation::startCreateMediaSource):
(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
(WebCore::MediaPlayerPrivateMediaFoundation::createTopologyFromSource):
(WebCore::MediaPlayerPrivateMediaFoundation::createOutputNode):
(WebCore::MediaPlayerPrivateMediaFoundation::createSourceStreamNode):
(WebCore::MediaPlayerPrivateMediaFoundation::onTopologySet):

WebKitLibraries:

  • win/tools/vsprops/WinCairo.props: Remove Media Foundation input libraries.
2:35 PM Changeset in webkit [180640] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.15.8

New tag.

2:32 PM Changeset in webkit [180639] by benjamin@webkit.org
  • 6 edits
    1 add in trunk

CodeBlock crashes when dumping op_push_name_scope
https://bugs.webkit.org/show_bug.cgi?id=141953

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-25
PerformanceTests/SunSpider:

Reviewed by Filip Pizlo.

  • profiler-test.yaml:

Source/JavaScriptCore:

Reviewed by Filip Pizlo and Csaba Osztrogonác.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • tests/stress/op-push-name-scope-crashes-profiler.js: Added.

Tools:

Reviewed by Filip Pizlo.

  • Scripts/run-jsc-stress-tests:
2:32 PM Changeset in webkit [180638] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Test gardening

Unreviewed.

Getting the bots green after r180633 until Brady fixes the underlying issue.

  • platform/mac-wk2/TestExpectations:
2:29 PM Changeset in webkit [180637] by benjamin@webkit.org
  • 14 edits in trunk/Source/JavaScriptCore

Make ParserError immutable by design
https://bugs.webkit.org/show_bug.cgi?id=141955

Reviewed by Geoffrey Garen.

This patch enforce that no field of ParserError can
be modified after the constructor.

  • parser/ParserError.h:

Move the attributes to pack the integer + 2 bytes together.
This is irrelevant for memory impact, it is to remve a load-store
when copying by value.

Also move the attributes to be private.

(JSC::ParserError::isValid):
To client of the interface cared about the type of the error,
the only information needed was: is there an error.

(JSC::ParserError::ParserError):
(JSC::ParserError::syntaxErrorType):
(JSC::ParserError::token):
(JSC::ParserError::message):
(JSC::ParserError::line):
(JSC::ParserError::toErrorObject):

  • API/JSScriptRef.cpp:
  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createBuiltinExecutable):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
(JSC::UnlinkedFunctionExecutable::codeBlockFor):

  • bytecode/UnlinkedCodeBlock.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::parse):

  • jsc.cpp:

(runInteractive):

  • parser/Parser.h:

(JSC::parse):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/CodeCache.h:
  • runtime/Completion.h:
  • runtime/Executable.cpp:

(JSC::ProgramExecutable::checkSyntax):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):

1:27 PM Changeset in webkit [180636] by beidson@apple.com
  • 6 edits in trunk/Tools

Get rid of TestInvocation::pathOrURL
https://bugs.webkit.org/show_bug.cgi?id=142021

Reviewed by Tim Horton.

The pathOrURL string is a relative path used as an argument to WebKitTestRunner,
but most code that uses it expected an absolute path.

This gets rid of the member and replaces all uses with a more descriptive "urlContains" method.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::updateWebViewSizeForTest):
(WTR::TestController::updateWindowScaleForTest):
(WTR::shouldUseFixedLayout):
(WTR::TestController::updateLayoutTypeForTest):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::TestInvocation):
(WTR::TestInvocation::urlContains):
(WTR::TestInvocation::shouldLogFrameLoadDelegates):
(WTR::TestInvocation::shouldLogHistoryClientCallbacks):
(WTR::TestInvocation::invoke):
(WTR::shouldLogFrameLoadDelegates): Deleted.
(WTR::shouldLogHistoryClientCallbacks): Deleted.

  • WebKitTestRunner/TestInvocation.h:

(WTR::TestInvocation::pathOrURL): Deleted.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::shouldMakeViewportFlexible):
(WTR::TestController::platformConfigureViewForTest):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::shouldUseThreadedScrolling):
(WTR::TestController::platformConfigureViewForTest):

1:05 PM Changeset in webkit [180635] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Tools

W3C test importer should use argparse instead of optparse
https://bugs.webkit.org/show_bug.cgi?id=142013

Reviewed by Bem Jones-Bey.

  • Scripts/webkitpy/w3c/test_importer.py:

(main): Updating according argparse.
(parse_args): Moving from optparse to argparse.

12:54 PM Changeset in webkit [180634] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

REGRESSION (r180018 ): Holding a rubber-band in place can get stuck
https://bugs.webkit.org/show_bug.cgi?id=142020
-and corresponding-
rdar://problem/19945216

Reviewed by Tom Horton.

It was a mistaken assumption that it was necessary to return false in the zero-
delta case. That is clearly conceptually wrong since false represents the DOM
doing something special with the event, which is clearly not the case if we never
even send the event to the DOM. Returning true will allow the rest of the
scrolling machinery the ability to handle the event.

  • dom/Element.cpp:

(WebCore::Element::dispatchWheelEvent):

12:42 PM Changeset in webkit [180633] by beidson@apple.com
  • 6 edits
    5 adds in trunk

Layout test support for user content filters
https://bugs.webkit.org/show_bug.cgi?id=142018

Reviewed by Tim Horton.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues): Clear all user content filters between tests.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformConfigureViewForTest): For all tests with usercontentfilter/ in their path try to load a matching .json

file before loading the test itself.

LayoutTests:

  • TestExpectations:
  • http/tests/usercontentfilter/basic-filter.html: Added.
  • http/tests/usercontentfilter/basic-filter.html.json: Added.
  • platform/mac-wk2/TestExpectations:
10:56 AM Changeset in webkit [180632] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit2

Add (unused for now) code to delete website data for a set of origins
https://bugs.webkit.org/show_bug.cgi?id=142019

Reviewed by Beth Dakin.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy):
Assert that there are no pending callbacks.

(WebKit::WebProcessProxy::connectionDidClose):
Invoke all the didDeleteWebsiteDataForOrigins callbacks.

(WebKit::WebProcessProxy::didDeleteWebsiteDataForOrigins):
Grab the didDeleteWebsiteDataForOrigins and invoke it.

(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
Add the pending callback and send a DeleteWebsiteDataForOrigins to the web process.

  • UIProcess/WebProcessProxy.h:

Add new members.

  • UIProcess/WebProcessProxy.messages.in:

Add a DidDeleteWebsiteDataForOrigins message.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::deleteWebsiteDataForOrigins):
For now, just send back a DidDeleteWebsiteDataForOrigins message.

  • WebProcess/WebProcess.h:

Add new members.

  • WebProcess/WebProcess.messages.in:

Add a DeleteWebsiteDataForOrigins message.

10:42 AM Changeset in webkit [180631] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

HTMLElement::collectStyleForPresentationAttribute duplicates a lot of code for contentEditableAttr
https://bugs.webkit.org/show_bug.cgi?id=142003

Reviewed by Sam Weinig.

Utilized contentEditableType to reduce the code duplication.

  • html/HTMLElement.cpp:

(WebCore::contentEditableType): Moved and added a version that takes AtomicString.
(WebCore::HTMLElement::collectStyleForPresentationAttribute):

9:43 AM Changeset in webkit [180630] by shiva.jm@samsung.com
  • 2 edits in trunk/Source/WebKit2

Fix build warning in WebKit2/UIProcess module.
https://bugs.webkit.org/show_bug.cgi?id=142014

Reviewed by Anders Carlsson.

Fix build warning by using UNUSED_PARAM macro.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeWebProcessAccessTypeForDataFetch):

9:35 AM Changeset in webkit [180629] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Skip new <attachment> test since it's not working on Windows.

  • platform/win/TestExpectations:
9:26 AM Changeset in webkit [180628] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Skip ARIA 1.1 tests for unsupported feature.

  • platform/win/TestExpectations:
8:22 AM Changeset in webkit [180627] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.20

New tag.

8:18 AM Changeset in webkit [180626] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

7:10 AM Changeset in webkit [180625] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve Regex/Error output in Object Tree and Previews
https://bugs.webkit.org/show_bug.cgi?id=142010

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-25
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView):
(WebInspector.ObjectPreviewView.prototype._initTitleElement):
Since some object types may be formatted as simple values, ensure they get
the formatted style even in the title view.

(WebInspector.ObjectPreviewView.prototype._appendPreview):
Those object types that can be formatted as simple values should skip
to the value formatting phase.

(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
Do not show property previews for error objects. Always assume lossy
so that it can be expanded.

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView):
Make a similiar improvement for ObjectTree titles when previews are
unavailable. This will make dir(value) show a stylized value in the
title of the Object Tree.

7:03 AM Changeset in webkit [180624] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve PropertyPath display strings for getters / values
https://bugs.webkit.org/show_bug.cgi?id=142008

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-25
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Utilities.js:

(doubleQuotedString):
Helper to double quote a string and escape double quotes with-in it.

  • UserInterface/Models/PropertyPath.js:

(WebInspector.PropertyPath.prototype.get reducedPath):
Compute the path eliminating unnecessary protos. Note we don't
property handle the case where a .proto.x is override earlier
by a .x, but that case is rare.

(WebInspector.PropertyPath.prototype.displayPath):
Helper for choosing fullPath or reducedPath display strings.

(WebInspector.PropertyPath.prototype.appendPropertyName):
(WebInspector.PropertyPath.prototype.appendGetterPropertyName):
(WebInspector.PropertyPath.prototype.appendSetterPropertyName):
(WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
When appending a descriptor, specify if it is for a getter/setter or value.
For getters / setters the actual function can be directly fetched via
lookupGetter/lookupSetter. Continue to use the property name for values.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createElementForTypesAndValue):

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType):
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
(WebInspector.ObjectTreePropertyTreeElement.prototype):

4:03 AM WebKitGTK/2.6.x edited by clopez@igalia.com
(diff)
4:02 AM WebKitGTK/2.6.x edited by clopez@igalia.com
(diff)
4:00 AM WebKitGTK/2.6.x edited by clopez@igalia.com
(diff)
2:53 AM Changeset in webkit [180623] by svillar@igalia.com
  • 6 edits in trunk

[CSS Grid Layout] Tracks growing beyond limits when they should not
https://bugs.webkit.org/show_bug.cgi?id=140883

Reviewed by Darin Adler.

Source/WebCore:

Our track sizing algorithm implementation incorrectly grew some
tracks beyond limits when handling min-content and max-content
base sizes. In those cases we should only grow "any affected track
that happens to also have an intrinsic max track sizing function"
or all of them if there are none.

The problem was that we're using a vector of indexes pointing to
the vector with the list of affected tracks. Those indexes become
easily incorrect because the first thing we do in
distributeSpaceToTracks() is to sort the vector with the affected
tracks by growth potential.

Instead of that we now pass a vector with pointers to the list of
tracks allowed to grow over the limits. The size changes are now
directly stored in the GridTracks (it's called plannedSize)
instead of in a separate vector, so we don't need to worry about
tracks being rearranged (and we also get rid of the ugly vector of
indexes pointing to another vector).

  • rendering/RenderGrid.cpp:

(WebCore::GridTrack::plannedSize): New member with getter/setter.
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
Pass a setXXX() function instead of a growXXX() one to ForItems().
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
Renamed additionalBreadthSpace to extraSpace which is the term
used by specs.
(WebCore::RenderGrid::distributeSpaceToTracks): Use GridTrack's
plannedSize instead of the old distribution vector.
(WebCore::GridTrack::growBaseSize): Deleted.
(WebCore::GridTrack::growGrowthLimit): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

  • fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt:
  • fast/css-grid-layout/grid-content-sized-columns-resolution.html:
2:22 AM WebKitGTK/2.8.x edited by jdiggs@igalia.com
(diff)
2:18 AM Changeset in webkit [180622] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Need to pass RTLD_DEEPBIND to dlopen() to ensure that our LLVMOverrides take effect on Linux
https://bugs.webkit.org/show_bug.cgi?id=142006

Reviewed by Csaba Osztrogonác.

This fixes hard-to-reproduce concurrency-related crashes when running stress tests with FTL and
concurrent JIT enabled.

  • llvm/InitializeLLVMPOSIX.cpp:

(JSC::initializeLLVMPOSIX):

2:04 AM Changeset in webkit [180621] by jdiggs@igalia.com
  • 16 edits in trunk

AX: Implement support for ARIA 1.1 'searchbox' role
https://bugs.webkit.org/show_bug.cgi?id=142004

Reviewed by Chris Fleizach.

Source/WebCore:

Add a new accessible SearchFieldRole to handle both the ARIA role
and the "search" input type.

No new tests. Instead, added a new test case to roles-exposed.html
for the mapping, and updated roles-computedRoleString.html because
there is now a one-to-one mapping between the "search" input type
and an ARIA role.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::isSearchField):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isARIATextControl):
(WebCore::AccessibilityObject::isARIAInput):
(WebCore::initializeRoleMap):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):

LayoutTests:

  • accessibility/roles-computedRoleString-expected.txt: Updated for new role.
  • accessibility/roles-computedRoleString.html: Updated for new role.
  • accessibility/roles-exposed.html: New test case added.
  • platform/efl/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/mac-mavericks/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/mac/accessibility/roles-exposed-expected.txt: Updated for new test case.
1:47 AM WebKitGTK/2.8.x edited by jdiggs@igalia.com
(diff)
1:08 AM Changeset in webkit [180620] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Enable concurrent JIT on GTK
https://bugs.webkit.org/show_bug.cgi?id=142007

Reviewed by Benjamin Poulain.

Seems weird that GTK keeps it off. No good reason for that as far as I can tell.

  • wtf/Platform.h:

Feb 24, 2015:

11:23 PM Changeset in webkit [180619] by commit-queue@webkit.org
  • 2 edits
    3 adds in trunk/Tools

Convert WebEditingTester to use xcconfig files
https://bugs.webkit.org/show_bug.cgi?id=141879

Patch by Sam Weinig <sam@webkit.org> on 2015-02-24
Reviewed by Darin Adler.

Add xcconfig files to WebEditingTester based on the ones used by MiniBrowser.

  • WebEditingTester/Configurations: Added.
  • WebEditingTester/Configurations/Base.xcconfig: Added.
  • WebEditingTester/Configurations/DebugRelease.xcconfig: Added.
  • WebEditingTester/WebEditingTester.xcodeproj/project.pbxproj:
10:59 PM Changeset in webkit [180618] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

CMake build of libllvmForJSC.so should limit its export list like the Xcode build does
https://bugs.webkit.org/show_bug.cgi?id=141989

Reviewed by Gyuyoung Kim.

  • CMakeLists.txt:
  • llvm/library/libllvmForJSC.version: Added.
9:52 PM Changeset in webkit [180617] by ap@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

More iOS build fix after r180602.

  • heap/Heap.h: Export Heap::machineThreads().
9:37 PM Changeset in webkit [180616] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Updating js/dom/global-constructors-attributes.html results for HTMLAttachmentElement.

  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
9:35 PM Changeset in webkit [180615] by Simon Fraser
  • 9 edits in trunk/Source

Clarify some resizing terminology in ScrollView/FrameView
https://bugs.webkit.org/show_bug.cgi?id=141996

Reviewed by Zalan Bujtas.

ScrollableArea/ScrollView/FrameView had some confusing terminology around
contentsResized/visibleContentsResized/fixedLayoutSizeChanged.

Clarify this by distinguishing between:

  1. Available size changes because of

i) non-overlay scrollbar presence

ii) ScrollableArea frame change

  1. Removing fixedLayoutSizeChanged() and just treating it like an available size change.

contentsResized() is relegated to simply being a hook that allows Mac to
flash overlay scrollbars.

The confusingly named visibleContentsResized() is now updateContentsSize(),
and is the way that a ScrollableArea tells its subclasss that it should recompute
the size of the contents (i.e. do a layout).

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::setContentsSize): No longer mysteriously skip the
FrameView implementation of contentsResized(), which used to do a setNeedsLayout()
which we didn't want to do from setContentsSize(), which itself happens as a result of layout.
(WebCore::FrameView::adjustViewSize): Whitespace.
(WebCore::FrameView::layout): Ditto.
(WebCore::FrameView::availableContentSizeChanged): Called on frame size change, or scrollbar
change.
(WebCore::FrameView::updateContentsSize): This actually does the layout.
(WebCore::FrameView::scrollbarStyleChanged): Always call the base class; ScrollView::scrollbarStyleChanged
will bail if not a forced update.
(WebCore::FrameView::setCustomFixedPositionLayoutRect): Forces a layout via updateContentsSize() now.
(WebCore::FrameView::contentsResized): Deleted.
(WebCore::FrameView::fixedLayoutSizeChanged): Deleted.
(WebCore::FrameView::visibleContentsResized): Deleted.

  • page/FrameView.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::setFixedLayoutSize): Calls availableContentSizeChanged() now.
(WebCore::ScrollView::setUseFixedLayout): Ditto.
(WebCore::ScrollView::availableContentSizeChanged): Update scrollbars if that's not
the reason we are being called.
(WebCore::ScrollView::updateScrollbars): contentsResized() was the thing that caused setNeedsLayout();
replace it with availableContentSizeChanged(). visibleContentsResized() did the layout, and
replace with updateContentsSize().
(WebCore::ScrollView::setFrameRect): Call availableContentSizeChanged() now. This takes care of
updating scrollbars, so no need to explicitly do that.
(WebCore::ScrollView::scrollbarStyleChanged): Call the base class.
(WebCore::ScrollView::fixedLayoutSizeChanged): Deleted.

  • platform/ScrollView.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::availableContentSizeChanged): Call scrollAnimator->contentsResized()
to flash the scrollbars.
(WebCore::ScrollableArea::scrolledToRight):
(WebCore::ScrollableArea::scrollbarStyleChanged): Call availableContentSizeChanged() since
scrollbar style affects available space.

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::updateContentsSize):
(WebCore::ScrollableArea::scrollbarStyleChanged): Deleted.

Source/WebKit2:

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::scrollbarStyleChanged): Call the base class method,
which takes care of

9:11 PM Changeset in webkit [180614] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed Mavericks build attempt fix after r180609.

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::checkGPUStatusIfNecessary):

8:53 PM Changeset in webkit [180613] by Brent Fulgham
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix after r180602.

  • heap/MachineStackMarker.h: Add missing 'no return'

declaration for Windows.

8:53 PM Changeset in webkit [180612] by aestes@apple.com
  • 4 edits in trunk/Tools

Teach MiniBrowser how to disable per-window web processes
https://bugs.webkit.org/show_bug.cgi?id=141988

Reviewed by Darin Adler.

  • MiniBrowser/mac/AppDelegate.m:

(defaultConfiguration): Created a _WKProcessPoolConfiguration with maximumProcessCount == 1 if per-window web processes are disabled.

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]): Added a new Settings menu item.
(-[SettingsController validateMenuItem:]): Validated the new Settings menu item.
(-[SettingsController togglePerWindowWebProcessesDisabled:]): Displayed an alert informing the user that MiniBrowser must be restarted for the setting to take effect.
(-[SettingsController perWindowWebProcessesDisabled]): Returned the value from user defaults.

8:32 PM Changeset in webkit [180611] by ap@apple.com
  • 2 edits in trunk/Tools

Bot watcher's dashboard sometimes hits an assertion: data.num_missing === this.layoutTestResults.testsWithMissingResults.length
https://bugs.webkit.org/show_bug.cgi?id=141889

Reviewed by Darin Adler.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
8:28 PM Changeset in webkit [180610] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Unreviewed Windows build fix after r180601.

Export some missing symbols.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
8:19 PM Changeset in webkit [180609] by roger_fong@apple.com
  • 9 edits
    1 add in trunk/Source/WebCore

WebGL: Destroy the GLContext if a GPU restart has been detected.
https://bugs.webkit.org/show_bug.cgi?id=141567.
<rdar://problem/18507496>
Reviewed by Dean Jackson.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):

  • platform/graphics/GraphicsContext3D.h:

(WebCore::GraphicsContext3D::setWebGLContext):
Keep track of which WebGLRenderingContext is associated with the current GraphicsContext3D.

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::GraphicsContext3D::checkGPUStatusIfNecessary): Helper method to check GPU status.
(WebCore::GraphicsContext3D::GraphicsContext3D):
Don’t immediately abort the GPU process when the restart status is kCGLCPGPURestartStatusBlacklisted.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::forceContextLost):
Force the WebGLRenderingContext to be lost.
(WebCore::GraphicsContext3D::drawArrays): Check GPU status after calling drawArrays.
(WebCore::GraphicsContext3D::drawElements): Check GPU status after calling drawElements.

  • WebCore.xcodeproj/project.pbxproj: Add SPI header for iOS.
  • platform/spi/ios/OpenGLESSPI.h: Added.
8:10 PM Changeset in webkit [180608] by Stephanie Lewis
  • 2 edits in trunk/Source/WebCore

Unreviewed ios build fix after http://trac.webkit.org/changeset/180602.

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM):

8:07 PM Changeset in webkit [180607] by Simon Fraser
  • 18 edits in trunk/Source

Use an enum for scrollbar style
https://bugs.webkit.org/show_bug.cgi?id=141985

Reviewed by Beth Dakin.
Source/WebCore:

Switch to an enum class for the scrollbar style (normal or overlay).

  • page/ChromeClient.h:
  • page/FrameView.cpp:

(WebCore::FrameView::scrollbarStyleChanged):

  • page/FrameView.h:
  • platform/ScrollTypes.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::scrollbarStyleChanged):

  • platform/ScrollView.h:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::scrollbarStyleChanged):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::updateScrollerStyle):

Source/WebKit2:

Switch to an enum class for the scrollbar style (normal or overlay).

Sadly it still has to be passed as an int across the process boundary.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::recommendedScrollbarStyleDidChange):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::recommendedScrollbarStyleDidChange):

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::scrollbarStyleChanged):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::recommendedScrollbarStyleDidChange):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
7:52 PM Changeset in webkit [180606] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[Mac][WK2] ASSERTION FAILED: m_sendPort in IPC::Connection::open()
https://bugs.webkit.org/show_bug.cgi?id=141934

Reviewed by Darin Adler.

Speculative fix for "ASSERTION FAILED: m_sendPort" in
IPC::Connection::open(). This assertion seems to indicate we ended
up in IPC::Connection::open() with MACH_PORT_NULL as port.

I found that in XPCServiceInitializerDelegate::getConnectionIdentifier()
we return true unconditionally, even though
xpc_dictionary_copy_mach_send() can return MACH_PORT_NULL. This patch
updates this method to add a check for MACH_PORT_NULL and return false
in this case.

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::getConnectionIdentifier):

7:48 PM Changeset in webkit [180605] by commit-queue@webkit.org
  • 20 edits
    2 deletes in trunk

Unreviewed, rolling out r180599.
https://bugs.webkit.org/show_bug.cgi?id=141998

Lots of new test failures (Requested by smfr on #webkit).

Reverted changeset:

"Parsing support for -webkit-trailing-word"
https://bugs.webkit.org/show_bug.cgi?id=141939
http://trac.webkit.org/changeset/180599

7:02 PM Changeset in webkit [180604] by Stephanie Lewis
  • 5 edits in trunk/Source/bmalloc

Rolling out http://trac.webkit.org/changeset/180430 as it causes the PLT to crash.
<rdar://problem/19948015>

Unreviewed.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):

  • bmalloc/VMHeap.h:
  • bmalloc/Zone.cpp:

(bmalloc::Zone::Zone):
(bmalloc::Zone::size): Deleted.

  • bmalloc/Zone.h:
6:31 PM Changeset in webkit [180603] by gyuyoung.kim@samsung.com
  • 3 edits in trunk/Source/WebKit2

Fix build break on EFL and GTK port since r180585.
https://bugs.webkit.org/show_bug.cgi?id=141994

Reviewed by Joseph Pecoraro.

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::displayNameForOrigin):

  • UIProcess/WebsiteData/WebsiteDataRecord.h:

(WebKit::WebsiteDataRecord::WebsiteDataRecord):

6:28 PM Changeset in webkit [180602] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

MachineThreads::Thread clean up has a use after free race condition.
<https://webkit.org/b/141990>

Reviewed by Michael Saboff.

MachineThreads::Thread clean up relies on the clean up mechanism
implemented in _pthread_tsd_cleanup_key(), which looks like this:

void _pthread_tsd_cleanup_key(pthread_t self, pthread_key_t key)
{

void (*destructor)(void *);
if (_pthread_key_get_destructor(key, &destructor)) {

void ptr = &self->tsd[key];
void *value = *ptr;

At this point, this thread has cached "destructor" and "value"
(which is a MachineThreads*). If the VM gets destructed (along
with its MachineThreads registry) by another thread, then this
thread will have no way of knowing that the MachineThreads* is
now pointing to freed memory. Calling the destructor below will
therefore result in a use after free scenario when it tries to
access the MachineThreads' data members.

if (value) {

*ptr = NULL;
if (destructor) {

destructor(value);

}

}

}

}

The solution is simply to change MachineThreads from a per VM thread
registry to a process global singleton thread registry i.e. the
MachineThreads registry is now immortal and we cannot have a use after
free scenario since we never free it.

The cost of this change is that all VM instances will have to scan
stacks of all threads ever touched by a VM, and not just those that
touched a specific VM. However, stacks tend to be shallow. Hence,
those additional scans will tend to be cheap.

Secondly, it is not common for there to be multiple JSC VMs in use
concurrently on multiple threads. Hence, this cost should rarely
manifest in real world applications.

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::machineThreads):
(JSC::Heap::gatherStackRoots):

  • heap/Heap.h:

(JSC::Heap::machineThreads): Deleted.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):

  • heap/MachineStackMarker.h:
  • runtime/JSLock.cpp:

(JSC::JSLock::didAcquireLock):

5:49 PM Changeset in webkit [180601] by weinig@apple.com
  • 17 edits
    3 adds in trunk

[Attachment] Give <attachment> elements an underlying File
https://bugs.webkit.org/show_bug.cgi?id=141993

Reviewed by Tim Horton.

Source/WebCore:

  • Add a JS subclass for attachments so that <attachment>s are instances of HTMLAttachmentElement rather than HTMLElement.
  • Give HTMLAttachmentElements an underlying File that they are the representation of. Expose it via a new 'file' property.
  • Expose a new Internals function called window.internals.createFile(url) that allows creating File objects for testing.
  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • fileapi/File.h:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::~HTMLAttachmentElement):
(WebCore::HTMLAttachmentElement::file):
(WebCore::HTMLAttachmentElement::setFile):

  • html/HTMLAttachmentElement.h:
  • html/HTMLAttachmentElement.idl: Added.
  • html/HTMLTagNames.in:
  • testing/Internals.cpp:

(WebCore::Internals::createFile):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Update attachment-dom.html to test setting and getting the
underlying file.

  • fast/attachment/attachment-dom-expected.txt:
  • fast/attachment/attachment-dom.html:
  • fast/attachment/resources: Added.
  • fast/attachment/resources/test-file.txt: Added.
5:43 PM Changeset in webkit [180600] by jdiggs@igalia.com
  • 15 edits
    10 adds in trunk

AX: Implement support for ARIA 1.1 'switch' role
https://bugs.webkit.org/show_bug.cgi?id=141986

Reviewed by Chris Fleizach.

Source/WebCore:

Map the role to ATK_ROLE_TOGGLE_BUTTON for Gtk and Efl; on the Mac, to
AXCheckBox with a subrole of AXSwitch. Ensure it looks and acts like a
widget to accessibility APIs (supports and emits notifications when
toggled, doesn't have children, exposes a name and description when
provided).

Tests: accessibility/aria-switch-checked.html

accessibility/aria-switch-sends-notification.html
accessibility/aria-switch-text.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canHaveChildren):
(WebCore::AccessibilityNodeObject::isChecked):
(WebCore::AccessibilityNodeObject::visibleText):
(WebCore::AccessibilityNodeObject::title):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isARIAInput):
(WebCore::AccessibilityObject::actionVerb):
(WebCore::initializeRoleMap):
(WebCore::AccessibilityObject::supportsChecked):
(WebCore::AccessibilityObject::checkboxOrRadioValue):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isSwitch):

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

  • accessibility/aria-switch-checked-expected.txt: Added.
  • accessibility/aria-switch-checked.html: Added.
  • accessibility/aria-switch-sends-notification-expected.txt: Added.
  • accessibility/aria-switch-sends-notification.html: Added.
  • accessibility/aria-switch-text.html: Added.
  • accessibility/roles-exposed.html: Added a test case for the new role.
  • platform/efl/accessibility/aria-fallback-roles-expected.txt: Added.
  • platform/efl/accessibility/aria-switch-text-expected.txt: Added.
  • platform/efl/accessibility/roles-exposed-expected.txt: Updated for the new role.
  • platform/gtk/accessibility/aria-fallback-roles-expected.txt: Added.
  • platform/gtk/accessibility/aria-switch-text-expected.txt: Added.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Updated for the new role.
  • platform/mac-mavericks/accessibility/roles-exposed-expected.txt: Updated for the new role.
  • platform/mac/TestExpectations: Skip the 'checked' notifcation as the Mac doesn't have it.
  • platform/mac/accessibility/aria-switch-text-expected.txt: Added.
  • platform/mac/accessibility/roles-exposed-expected.txt: Updated for the new role.
5:17 PM Changeset in webkit [180599] by mmaxfield@apple.com
  • 20 edits
    2 adds in trunk

Source/JavaScriptCore:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

This patch implements initial parsing support for the -apple-trailing-word CSS property.
This property has two possible (mutually exclusive) values: auto and
-apple-partially-balanced. This property is inherited.

The work for this property is behind the ENABLE(CSS_TRAILING_WORD) preprocessor define.

This is an internal property that will allow us to control line breaking behavior for
short paragraphs.

Note that, because of the implementation of cssValueKeywordID() in CSSParser.cpp,
the new value must be implemented as -webkit-partially-balanced. Using the -apple-
prefix will work, but if you getComputedStyle(), it will return the -webkit- prefixed
version.

Test: platform/mac/fast/text/trailing-word-parse.html

  • Configurations/FeatureDefines.xcconfig:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue): Turn internal representation into a
CSS value.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue): Updated for new keyword property / value
pair.
(WebCore::isKeywordPropertyID): New property is a keyword property.
(WebCore::CSSParser::parseValue): Use the keyword property codepath.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Convert to and from the internal
representation and CSS values.
(WebCore::CSSPrimitiveValue::operator TrailingWord):

  • css/CSSPropertyNames.in: New property.
  • css/CSSValueKeywords.in: New value.
  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor): Can't use SimpleLineLayout for this.

  • rendering/style/RenderStyle.h: Getter, setter and initial value.
  • rendering/style/RenderStyleConstants.h: Internal data type.
  • rendering/style/StyleRareInheritedData.h: One bit to control this style property.

Source/WebKit/mac:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

LayoutTests:
Parsing support for -webkit-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

Test parsing using getComputedStyle().

  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html: Updated.
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-expected.txt: Updated.
  • platform/mac/fast/text/trailing-word-parse-expected.txt: Added.
  • platform/mac/fast/text/trailing-word-parse.html: Added.
5:12 PM Changeset in webkit [180598] by gyuyoung.kim@samsung.com
  • 5 edits in trunk/Source/WebCore

Remove DecodingTask::create and DatabaseOpenTask::create
https://bugs.webkit.org/show_bug.cgi?id=141966

Reviewed by Anders Carlsson.

These create() factory functions are redundant. We can use std::make_unique<> directly.

No new tests, no behavior changes.

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::decodeAsync):
(WebCore::AsyncAudioDecoder::DecodingTask::create): Deleted.

  • Modules/webaudio/AsyncAudioDecoder.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::openAndVerifyVersion):

  • Modules/webdatabase/DatabaseTask.h:

(WebCore::DatabaseBackend::DatabaseOpenTask::create): Deleted.

4:44 PM Changeset in webkit [180597] by Joseph Pecoraro
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: Eliminate console-formatted-* class names in favor of formatted-*
https://bugs.webkit.org/show_bug.cgi?id=141948

Reviewed by Timothy Hatcher.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createElementForNode):
Helper for formatting a node as a DOMTreeOutline.

  • UserInterface/Views/ConsoleMessageImpl.js:

(WebInspector.ConsoleMessageImpl.prototype._formatParameter):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessageImpl.prototype.appendUndefined):
(WebInspector.ConsoleMessageImpl.prototype._printArray):
(WebInspector.ConsoleMessageImpl.prototype.): Deleted.

  • UserInterface/Views/LogContentView.css:

(.console-user-command-result):
(.console-formatted-object): Deleted.
(.console-object-preview): Deleted.
(.expanded .console-object-preview): Deleted.
(.console-object-preview .name): Deleted.
(.expanded .console-object-preview > .console-object-preview-body): Deleted.
(.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap): Deleted.
(:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .section): Deleted.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._leftArrowWasPressed):
(WebInspector.LogContentView.prototype._rightArrowWasPressed):
Add FIXMEs since this will no longer work with ObjectTree.

  • UserInterface/Views/ObjectPreviewView.css:

(.object-preview):

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree):
Copy over the font styles from console-formatted-object.

  • UserInterface/Views/ObjectPropertiesSection.js:

(WebInspector.ObjectPropertyTreeElement.prototype.update):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForString):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForNumber):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForBoolean):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForNull):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForUndefined):
Convert to formatted value class names.

4:44 PM Changeset in webkit [180596] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r180578.
https://bugs.webkit.org/show_bug.cgi?id=141992

Broke scrolling in Inspector Console. (Requested by JoePeck on
#webkit).

Reverted changeset:

"[Mac] WebKit abandons overlay scrollbar CALayers."
https://bugs.webkit.org/show_bug.cgi?id=141943
http://trac.webkit.org/changeset/180578

4:41 PM Changeset in webkit [180595] by rniwa@webkit.org
  • 13 edits in trunk/Source/JavaScriptCore

Use "this" instead of "callee" to get the constructor
https://bugs.webkit.org/show_bug.cgi?id=141019

Reviewed by Filip Pizlo.

This patch uses "this" register to pass the constructor (newTarget) to op_create_this from
op_construct or op_construct_varargs. This will allow future patches that implement ES6 class
to pass in the most derived class' constructor through "this" argument.

BytecodeGenerator's emitConstruct and emitConstructVarargs now passes thisRegister like
regular calls and emitCreateThis passes in this register to op_create_this as constructor.

The rest of the code change removes the code for special casing "this" register not being used
in call to construct.

  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitCreateThis):
(JSC::BytecodeGenerator::emitConstructVarargs):
(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::NewExprNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addCallWithoutSettingResult):
(JSC::DFG::ByteCodeParser::handleVarargsCall):
(JSC::DFG::ByteCodeParser::emitArgumentPhantoms):
(JSC::DFG::ByteCodeParser::attemptToInlineCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::reconstruct):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • ftl/FTLJSCallVarargs.cpp:

(JSC::FTL::JSCallVarargs::emit):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNativeCallOrConstruct):
(JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
(JSC::FTL::LowerDFGToLLVM::compileCallOrConstructVarargs):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeConstruct):

  • jit/JITOperations.cpp:
4:41 PM March 2015 Meeting edited by dino@apple.com
(diff)
4:40 PM March 2015 Meeting edited by Simon Fraser
(diff)
4:31 PM Changeset in webkit [180594] by Joseph Pecoraro
  • 19 edits in trunk

Web Inspector: Make Getter/Setter RemoteObject property and ObjectPreview handling consistent
https://bugs.webkit.org/show_bug.cgi?id=141587

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Convert getProperties(ownAndGetterProperties) to getDisplayableProperties().
Mark PropertyDescriptors that are presumed to be native getters / bindings
separately so that the frontend may display them differently.

  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::getProperties):
(Inspector::InjectedScript::getDisplayableProperties):

  • inspector/InjectedScript.h:
  • inspector/InjectedScriptSource.js:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getProperties):
(Inspector::InspectorRuntimeAgent::getDisplayableProperties):

  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/protocol/Runtime.json:

Source/WebInspectorUI:

  • UserInterface/Models/CallFrame.js:

(WebInspector.CallFrame.prototype.collectScopeChainVariableNames):

  • UserInterface/Models/PropertyDescriptor.js:

(WebInspector.PropertyDescriptor.prototype.get nativeGetter):

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
(WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
(WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
(WebInspector.RemoteObject.prototype._getPropertyDescriptors):
(WebInspector.RemoteObject.prototype.if):
(WebInspector.RemoteObject.prototype.deprecatedGetOwnProperties):
(WebInspector.RemoteObject.prototype.deprecatedGetAllProperties):
(WebInspector.RemoteObject.prototype._deprecatedGetProperties):
(WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors): Deleted.
(WebInspector.RemoteObject.prototype.callback): Deleted.
(WebInspector.RemoteObject.prototype.getOwnProperties): Deleted.
(WebInspector.RemoteObject.prototype.getOwnAndGetterProperties): Deleted.
(WebInspector.RemoteObject.prototype.getAllProperties): Deleted.
(WebInspector.RemoteObject.prototype.set else): Deleted.

  • UserInterface/Views/ConsoleMessageImpl.js:

(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):

  • UserInterface/Views/ObjectPropertiesSection.js:

(WebInspector.ObjectPropertiesSection.prototype.update):
(WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype.):
(WebInspector.ObjectTreePropertyTreeElement.prototype):

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.prototype.update):

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:
  • inspector/model/remote-object-get-properties.html:
4:31 PM Changeset in webkit [180593] by Joseph Pecoraro
  • 12 edits
    12 adds in trunk/Source/WebInspectorUI

Web Inspector: New Object Tree View UI
https://bugs.webkit.org/show_bug.cgi?id=141932

Reviewed by Timothy Hatcher.

Part 1: Majority of the UI.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Images/Eye.svg: Added.
  • UserInterface/Images/TypeBoolean.svg: Added.
  • UserInterface/Images/TypeNull.svg: Added.
  • UserInterface/Images/TypeNumber.svg: Added.
  • UserInterface/Images/TypeObject.svg: Added.
  • UserInterface/Images/TypeRegex.svg: Added.
  • UserInterface/Images/TypeString.svg: Added.
  • UserInterface/Images/TypeSymbol.svg: Added.
  • UserInterface/Images/TypeUndefined.svg: Added.
  • UserInterface/Main.html:

Miscellaneous.

  • UserInterface/Views/FormattedValue.css:

(.formatted-boolean):
Give booleans a light purple color.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createElementForTypesAndValue):
Previously we were truncating function value logging in the console. E.g.

js> multiLineFunction
<- function multiLineFunction() {

No longer truncate so we display the full string.

  • UserInterface/Models/PropertyPath.js: Added.

(WebInspector.PropertyPath):
(WebInspector.PropertyPath.prototype.get object):
(WebInspector.PropertyPath.prototype.get parent):
(WebInspector.PropertyPath.prototype.get isPrototype):
(WebInspector.PropertyPath.prototype.get rootObject):
(WebInspector.PropertyPath.prototype.get lastNonPrototypeObject):
(WebInspector.PropertyPath.prototype.get pathComponent):
(WebInspector.PropertyPath.prototype.get fullPath):
(WebInspector.PropertyPath.prototype.isRoot):
(WebInspector.PropertyPath.prototype.isPathComponentImpossible):
(WebInspector.PropertyPath.prototype.isFullPathImpossible):
(WebInspector.PropertyPath.prototype.appendPropertyName):
(WebInspector.PropertyPath.prototype.appendPropertySymbol):
(WebInspector.PropertyPath.prototype.appendInternalPropertyName):
(WebInspector.PropertyPath.prototype.appendArrayIndex):
(WebInspector.PropertyPath.prototype.appendCollectionIndex):
(WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
(WebInspector.PropertyPath.prototype._canPropertyNameBeDotAccess):
PropertyPaths are a linked list of remote object / patch component pairs.
For a property like "fooproperty 1.proto.baz" we will have a PropertyPath
chain with the RemoteObject for each component. This allows us to accurately
select the RemoteObject on which we should invoke a getter. It also allows
us to display the property path string from the root object, if possible.

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.callFunction):
(WebInspector.RemoteObject.prototype.backendInvokeGetter):
(WebInspector.RemoteObject.prototype.invokeGetter):
Provide a way to invoke a getter function on a remote object if we
have a reference to the getter function. At the same time, improve
the mostly unused callFunction API to automatically convert
RemoteObjects / values to their Runtime.CallArgument format.

  • UserInterface/Views/ObjectTreePropertyTreeElement.css: Added.

(.object-tree-property):
(.object-tree-property > .disclosure-button):
(.object-tree-property.parent > .disclosure-button):
(.object-tree-property.parent.expanded > .disclosure-button):
(.object-tree-property > .titles):
Focused styles for the ObjectTree property GeneralTreeElements.
Reuse navigation sidebar disclosure-triangles.

(.object-tree-property > .icon):
(.object-tree-property.boolean > .icon):
(.object-tree-property.function > .icon):
(.object-tree-property.number > .icon):
(.object-tree-property.object > .icon):
(.object-tree-property.object.null > .icon):
(.object-tree-property.object.node > .icon):
(.object-tree-property.regex > .icon):
(.object-tree-property.string > .icon):
(.object-tree-property.symbol > .icon):
(.object-tree-property.undefined > .icon):
Use different icons for different object types. Special case
"accessor" to be undefined.

(.object-tree-property .prototype-name):
(.object-tree-property .property-name.not-enumerable):
Style property names in sans-serif font.
Give non-enumerable properties a slightly transparent look.

(.object-tree-property.prototype-property):
(.object-tree-property.prototype-property > .icon):
(.object-tree-property.prototype-property + ol):
Special styles for prototype properties and their children.

(.object-tree-property .getter):
(.object-tree-property .getter:hover):
(.object-tree-property .read-only):
Styles for clickable getter button and non-interactive read-only indicator.

(.object-tree-property :matches(.formatted-string, .formatted-regexp)):
Do not allow wrapping for values that previously allowed wrapping.

(.object-tree-property .value.error):
If getting a value resulted in an error, display that error in red.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement):
Extend from GeneralTreeElement and set up class names on the root <li> object.

(WebInspector.ObjectTreePropertyTreeElement.prototype.onattach): Deleted.
No longer needed by using GeneralTreeElement.

(WebInspector.ObjectTreePropertyTreeElement.prototype.onexpand):
(WebInspector.ObjectTreePropertyTreeElement.prototype.oncollapse):
Expand / collapse an associated ObjectPreview if we have one.

(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
This PropertyTreeElement may be displaying for a value, or a getter that has
gotten a value. Refer to this as the "resolvedValue".

(WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
A PropertyPath leaf used for tooltips.

(WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
Helpers for updating small parts of the UI. When a getter is invoked,
we need to update the entire UI of this TreeElement.

(WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
Create the UI for the mainTitle of this PropertyTreeElement.

(WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement):
Helpers for creating the small components of the title UI.

(WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
Establish when a property should still be displayed as a "property" even when in API mode.
For example a value property on a prototype, should still display as an expandable property.

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree > :matches(.title, .object-preview)::before):
(.object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
(.object-tree.expanded > :matches(.title, .object-preview)::before):
(.object-tree .object-tree-outline):
(.object-tree-outline ol):
(.object-tree-outline li .empty-message):
(:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
(.object-tree > .title): Deleted.
(.object-tree-outline): Deleted.
(.object-tree-outline li): Deleted.
(.object-tree-outline li.parent): Deleted.
(.object-tree-outline li.parent::before): Deleted.
(.object-tree-outline li.parent.expanded::before): Deleted.
(.object-tree-property .name): Deleted.
(.object-tree-property .name.not-enumerable): Deleted.
(.object-tree-property .value.error): Deleted.
(.console-group-messages .object-tree:not(.lossless-preview)): Deleted.
(.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)): Deleted.
(.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before): Deleted.
(.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree): Deleted.
(.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline): Deleted.
Move most PropertyTreeElement specific styles into ObjectPropertyTreeElement.css.
Plenty of console specific files were eliminated.

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.prototype.update):
(WebInspector.ObjectTreeView.prototype._updateProperties):

Part 2: Provide better parameter lists for native functions.

When expanding an object's prototype chain, with authored code
you will accurately see parameter lists for user authored functions
because we can get this by parsing Function.prototype.toString.
For native code, we don't get any parameter information. In such cases
we can detect we are a native function, and provide our own strings.

This fills in most of the JavaScript built-ins and some DOM
functions, however we should autogenerate the rest of the DOM.

  • UserInterface/Base/Utilities.js:

(isFunctionStringNativeCode):
Helper to check if a function is native or not based on its string.

  • UserInterface/Main.html:
  • UserInterface/Models/NativeFunctionParameters.js: Added.

Dictionary of parameter lists for native constructor functions
and prototype functions.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement):
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionPropertyString):
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
(WebInspector.ObjectTreePropertyTreeElement.prototype):
When we have a native function, try to provide a better parameter string.

Part 3: Better handle errors when invoking getters.

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.callFunction):
(WebInspector.RemoteObject.prototype.invokeGetter):
Pass the error, wasThrown, and result through to the caller so they can
act on all the information possible. Provide encapsulation though
and auto-convert the result to a RemoteObject for the callback.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodeResolved):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._createTooltipForNode.setTooltip):
(WebInspector.DOMTreeElement.prototype._createTooltipForNode.resolvedNode):
(WebInspector.DOMTreeElement.prototype._createTooltipForNode):
Update current users of callFunctionOn for the new callback parameters.

  • UserInterface/Views/ObjectTreePropertyTreeElement.css:

(.object-tree-property.had-error > .icon):

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.):
Better style getters with errors.

4:31 PM Changeset in webkit [180592] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Do not show "{}" after Date description in Object Previews
https://bugs.webkit.org/show_bug.cgi?id=141898

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
Only show "{...}" section for Date objects that have user
defined properties. Otherwise, Dates do not have properties.

4:03 PM Changeset in webkit [180591] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Rolling out r179753. The fix was invalid.
<https://webkit.org/b/141990>

Not reviewed.

  • API/tests/testapi.mm:

(threadMain):
(useVMFromOtherThread): Deleted.
(useVMFromOtherThreadAndOutliveVM): Deleted.

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::~Heap):
(JSC::Heap::gatherStackRoots):

  • heap/Heap.h:

(JSC::Heap::machineThreads):

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::Thread::Thread):
(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::removeThread):
(JSC::MachineThreads::removeCurrentThread):

  • heap/MachineStackMarker.h:
3:33 PM Changeset in webkit [180590] by dino@apple.com
  • 2 edits in branches/safari-600.1.4.15-branch/Source/WebCore

Merged r180588.

2015-02-24 Dean Jackson <dino@apple.com>

[ios Media] the inline controls are visible after pressing Done on iPhone
https://bugs.webkit.org/show_bug.cgi?id=141987
<rdar://problem/19944110>

Reviewed by Beth Dakin.

When exiting out of a playing video, we should show the
start playback button if we don't allow inline media
(such as on iPhone).

  • Modules/mediacontrols/mediaControlsiOS.js: (ControllerIOS.prototype.shouldHaveStartPlaybackButton): Test for allowsInline as well.
3:31 PM Changeset in webkit [180589] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Buildfix after r180585.

  • CMakeLists.txt:
3:21 PM Changeset in webkit [180588] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[ios Media] the inline controls are visible after pressing Done on iPhone
https://bugs.webkit.org/show_bug.cgi?id=141987
<rdar://problem/19944110>

Reviewed by Beth Dakin.

When exiting out of a playing video, we should show the
start playback button if we don't allow inline media
(such as on iPhone).

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.shouldHaveStartPlaybackButton): Test for
allowsInline as well.

3:01 PM Changeset in webkit [180587] by Yusuke Suzuki
  • 40 edits
    5 adds in trunk

Constructor returning null should construct an object instead of null
https://bugs.webkit.org/show_bug.cgi?id=141640

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

When constructor code doesn't return object, constructor should return this object instead.
Since we used op_is_object for this check and op_is_object is intended to be used for typeof,
it allows null as an object.
This patch fixes it by introducing an new bytecode op_is_object_or_null for typeof use cases.
Instead, constructor uses simplified is_object.

As a result, op_is_object becomes fairly simple. So we introduce optimization for op_is_object.

  1. LLInt and baseline JIT support op_is_object as a fast path.
  2. DFG abstract interpreter support op_is_object. And recognize its speculated type and read-write effects.
  3. DFG introduces inlined asm for op_is_object rather than calling a C++ function.
  4. FTL lowers DFG's IsObject into LLVM IR.

And at the same time, this patch fixes isString / isObject predicate used for op_is_object and others
in LLInt, JIT, DFG and FTL.
Before introducing ES6 Symbol, JSCell is only used for object and string in user observable area.
So in many places, when the cell is not object, we recognize it as a string, and vice versa.
However, now ES6 Symbol is implemented as a JSCell, this assumption is broken.
So this patch stop using !isString as isObject.
To check whether a cell is an object, instead of seeing that structure ID of a cell is not stringStructure,
we examine typeInfo in JSCell.

  • JavaScriptCore.order:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFor):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEqualityOp):
(JSC::BytecodeGenerator::emitReturn):

  • 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):

IsObject operation only touches JSCell typeInfoType.
And this value would be changed through structure transition.
As a result, IsObject can report that it doesn't read any information.

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

Just like IsString, IsObject is also fixed up.

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compileStringToUntypedEquality):
(JSC::DFG::SpeculativeJIT::compileStringIdentToNotStringVarEquality):
(JSC::DFG::SpeculativeJIT::compileToStringOnCell):
(JSC::DFG::SpeculativeJIT::speculateObject):
(JSC::DFG::SpeculativeJIT::speculateObjectOrOther):
(JSC::DFG::SpeculativeJIT::speculateString):
(JSC::DFG::SpeculativeJIT::speculateNotStringVar):
(JSC::DFG::SpeculativeJIT::emitSwitchChar):
(JSC::DFG::SpeculativeJIT::emitSwitchString):
(JSC::DFG::SpeculativeJIT::branchIsObject):
(JSC::DFG::SpeculativeJIT::branchNotObject):
(JSC::DFG::SpeculativeJIT::branchIsString):
(JSC::DFG::SpeculativeJIT::branchNotString):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileToString):
(JSC::FTL::LowerDFGToLLVM::compileIsObject):
(JSC::FTL::LowerDFGToLLVM::compileIsObjectOrNull):
(JSC::FTL::LowerDFGToLLVM::speculateTruthyObject):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::isObject):
(JSC::FTL::LowerDFGToLLVM::isNotObject):
(JSC::FTL::LowerDFGToLLVM::isNotString):
(JSC::FTL::LowerDFGToLLVM::speculateNonNullObject):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::emitJumpIfCellObject):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::compileOpStrictEq):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/Operations.cpp:

(JSC::jsIsObjectTypeOrNull):
(JSC::jsIsObjectType): Deleted.

  • runtime/Operations.h:
  • tests/stress/constructor-with-return.js: Added.

(Test):

When constructor doesn't return an object, this should be returned instead.
In this test, we check all primitives. And test object, array and wrappers.

  • tests/stress/dfg-to-primitive-pass-symbol.js: Added.

(toPrimitiveTarget):
(doToPrimitive):

op_to_primitive operation passes Symbol in fast path.

LayoutTests:

Follow the old ret_object_or_this semantics.
When constructor returns an object that masquerades as undefined, we see it as an object.

  • js/dom/constructor-with-return-masquerades-expected.txt: Added.
  • js/dom/constructor-with-return-masquerades.html: Added.
  • js/dom/script-tests/constructor-with-return-masquerades.js: Added.

(Constructor):

2:53 PM Changeset in webkit [180586] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Pass FillLayer reference instead of pointer to RenderBoxModelObject::calculateBackgroundImageGeometry.
https://bugs.webkit.org/show_bug.cgi?id=141982

Reviewed by Simon Fraser.

There should always be a valid FillLayer.

No change in functionality.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::getBackgroundPaintedExtent):
(WebCore::RenderBox::maskClipRect):
(WebCore::RenderBox::repaintLayerRectsForImage):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::calculateFillTileSize):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
(WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):

  • rendering/RenderBoxModelObject.h:
2:40 PM Changeset in webkit [180585] by andersca@apple.com
  • 10 edits
    1 copy in trunk/Source/WebKit2

Pass _WKWebsiteDataRecord objects to the fetchData completion handler
https://bugs.webkit.org/show_bug.cgi?id=141984

Reviewed by Andreas Kling.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):
Create _WKWebsiteDataRecord objects for WebsiteDataRecord API objects.

  • UIProcess/API/APIWebsiteDataRecord.h:

Add WebsiteDataRecord getter.

  • UIProcess/API/Cocoa/_WKWebsiteDataRecord.h:

Add displayName and dataTypes properties.

  • UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm:

(dataTypesToString):
Helper function to convert dataTypes bit-fields to strings.

(-[_WKWebsiteDataRecord description]):
Include the display name and data types in the description.

(-[_WKWebsiteDataRecord displayName]):
Return the display name.

(-[_WKWebsiteDataRecord dataTypes]):
Return the data types.

  • UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataTypes):
Move this here from _WKWebsiteDataStore.mm.

(WebKit::toWKWebsiteDataTypes):
Add new function to convert WebsiteDataTypes to WKWebsiteDataTypes.

  • UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:

(-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
Qualify toWebsiteDataTypes calls.

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp: Added.

(WebKit::WebsiteDataRecord::displayNameForOrigin):
New helper that returns a display name given an origin.

(WebKit::WebsiteDataRecord::add):
Add the origin as well as the type.

  • UIProcess/WebsiteData/WebsiteDataRecord.h:

Add new members.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
Loop through the entries and add them to the m_websiteDataRecords hash map, which
is keyed off of the display name. Pass the m_websiteDataRecords values to the completion handler.

  • WebKit2.xcodeproj/project.pbxproj:
2:29 PM Changeset in webkit [180584] by dino@apple.com
  • 2 edits in branches/safari-600.1.4.15-branch/Source/WebCore

Merge r180583.

2015-02-24 Dean Jackson <dino@apple.com>

[iOS Media] Be specific about which document to use for the timeline background canvas
https://bugs.webkit.org/show_bug.cgi?id=141981

Reviewed by Eric Carlson.

In some cases, especially with nested iframes, the document
reference for the shadow DOM might not be the one used
to create a -webkit-canvas context for rendering via CSS.
Explicitly get the context from the video's owner
document.

There is still a bug here:
https://bugs.webkit.org/show_bug.cgi?id=141983

  • Modules/mediacontrols/mediaControlsiOS.js: (ControllerIOS.prototype.drawTimelineBackground):
2:24 PM Changeset in webkit [180583] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS Media] Be specific about which document to use for the timeline background canvas
https://bugs.webkit.org/show_bug.cgi?id=141981

Reviewed by Eric Carlson.

In some cases, especially with nested iframes, the document
reference for the shadow DOM might not be the one used
to create a -webkit-canvas context for rendering via CSS.
Explicitly get the context from the video's owner
document.

There is still a bug here:
https://bugs.webkit.org/show_bug.cgi?id=141983

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.drawTimelineBackground):

2:11 PM Changeset in webkit [180582] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Remove unused BackgroundImageGeometry::m_destOrigin
https://bugs.webkit.org/show_bug.cgi?id=141980

Reviewed by Simon Fraser.

Remove BackgroundImageGeometry::m_destOrigin and its dependencies.
They are not used at all.

No change in functionality.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::pixelSnapBackgroundImageGeometryForPainting):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
(WebCore::BackgroundImageGeometry::relativePhase): Deleted.

  • rendering/RenderBoxModelObject.h:

(WebCore::BackgroundImageGeometry::destOrigin): Deleted.
(WebCore::BackgroundImageGeometry::setDestOrigin): Deleted.

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::drawMaskForRenderer):

1:33 PM Changeset in webkit [180581] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

RenderBoxModelObject::calculateBackgroundImageGeometry should return BackgroundImageGeometry.
https://bugs.webkit.org/show_bug.cgi?id=141979

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::getBackgroundPaintedExtent):
(WebCore::RenderBox::maskClipRect):
(WebCore::RenderBox::repaintLayerRectsForImage):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
(WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):

  • rendering/RenderBoxModelObject.h:
12:42 PM Changeset in webkit [180580] by Alan Bujtas
  • 12 edits in trunk/Source/WebCore

Switch BackgroundImageGeometry's m_phase from LayoutPoint to LayoutSize.
https://bugs.webkit.org/show_bug.cgi?id=141972

Reviewed by Simon Fraser.

Image geometry's phase represents distance.

No change in functionality.

  • WebCore.order:
  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setContentsTilePhase):
(WebCore::GraphicsLayer::contentsTilePhase):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computePatternTransformIfNeeded):
(WebCore::TextureMapperLayer::setContentsTilePhase):

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setContentsTilePhase):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::BackgroundImageGeometry::setNoRepeatX):
(WebCore::BackgroundImageGeometry::setNoRepeatY):
(WebCore::BackgroundImageGeometry::useFixedAttachment):
(WebCore::BackgroundImageGeometry::relativePhase):
(WebCore::RenderBoxModelObject::pixelSnapBackgroundImageGeometryForPainting):
(WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):

  • rendering/RenderBoxModelObject.h:

(WebCore::BackgroundImageGeometry::phase):
(WebCore::BackgroundImageGeometry::setPhase):
(WebCore::BackgroundImageGeometry::setPhaseX):
(WebCore::BackgroundImageGeometry::setPhaseY):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::resetContentsRect):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::drawMaskForRenderer):

11:49 AM Changeset in webkit [180579] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

One more buildfix after r180575.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::connectionDidClose):

11:44 AM Changeset in webkit [180578] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] WebKit abandons overlay scrollbar CALayers.
<https://webkit.org/b/141943>
<rdar://problem/19932199>

Reviewed by Beth Dakin.

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
Use NSAnimationNonblockingThreaded to ensure that NSAnimations get cleaned up after they finish.
The animation was indirectly retaining the overlay scrollbar's CALayer, causing significant
amounts of abandoned memory to accumulate over time.

11:32 AM Changeset in webkit [180577] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

URTBF after 180575.

  • CMakeLists.txt:
11:12 AM Changeset in webkit [180576] by ggaren@apple.com
  • 13 edits
    1 add in trunk/Source/bmalloc

bmalloc: Added a little more abstraction for large objects
https://bugs.webkit.org/show_bug.cgi?id=141978

Reviewed by Sam Weinig.

Previously, each client needed to manage the boundary tags of
a large object using free functions. This patch introduces a LargeObject
class that does things a little more automatically.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::reallocate): Use the new LargeObject class.

  • bmalloc/BeginTag.h:

(bmalloc::BeginTag::isInFreeList): Deleted. Moved this logic into the
LargeObject class.

  • bmalloc/BoundaryTag.h:

(bmalloc::BoundaryTag::isSentinel):
(bmalloc::BoundaryTag::compactBegin):
(bmalloc::BoundaryTag::setRange):
(bmalloc::BoundaryTag::initSentinel): Added an explicit API for sentinels,
which we used to create and test for implicitly.

  • bmalloc/BoundaryTagInlines.h:

(bmalloc::BoundaryTag::init):
(bmalloc::validate): Deleted.
(bmalloc::validatePrev): Deleted.
(bmalloc::validateNext): Deleted.
(bmalloc::BoundaryTag::mergeLeft): Deleted.
(bmalloc::BoundaryTag::mergeRight): Deleted.
(bmalloc::BoundaryTag::merge): Deleted.
(bmalloc::BoundaryTag::deallocate): Deleted.
(bmalloc::BoundaryTag::split): Deleted.
(bmalloc::BoundaryTag::allocate): Deleted. Moved this logic into the
LargeObject class.

  • bmalloc/EndTag.h:

(bmalloc::EndTag::init):
(bmalloc::EndTag::operator=): Deleted. Re-reading this code, I found
special behavior in the assignment operator to be a surprising API.
So, I replaced the assignment operation with an explicit initializing
function.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::scavengeLargeRanges):
(bmalloc::Heap::allocateXLarge):
(bmalloc::Heap::findXLarge):
(bmalloc::Heap::deallocateXLarge):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::deallocateLarge):

  • bmalloc/Heap.h: No behavior changes here -- just adopting the

LargeObject interface.

  • bmalloc/LargeObject.h: Added.

(bmalloc::LargeObject::operator!):
(bmalloc::LargeObject::begin):
(bmalloc::LargeObject::size):
(bmalloc::LargeObject::range):
(bmalloc::LargeObject::LargeObject):
(bmalloc::LargeObject::setFree):
(bmalloc::LargeObject::isFree):
(bmalloc::LargeObject::hasPhysicalPages):
(bmalloc::LargeObject::setHasPhysicalPages):
(bmalloc::LargeObject::isValidAndFree):
(bmalloc::LargeObject::merge):
(bmalloc::LargeObject::split):
(bmalloc::LargeObject::validateSelf):
(bmalloc::LargeObject::validate): Moved this code into a class, out of
BoundaryTag free functions.

New to the class are these features:

(1) Every reference to an object is validated upon creation and use.

(2) There's an explicit API for "This is a reference to an object
that might be stale (the DoNotValidate API)".

(3) The begin and end tags are kept in sync automatically.

  • bmalloc/SegregatedFreeList.cpp:

(bmalloc::SegregatedFreeList::insert):
(bmalloc::SegregatedFreeList::takeGreedy):
(bmalloc::SegregatedFreeList::take):

  • bmalloc/SegregatedFreeList.h: Adopt the LargeObject interface.
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateLargeRange):
(bmalloc::VMHeap::deallocateLargeRange): Adopt the LargeObject interface.

10:55 AM Changeset in webkit [180575] by andersca@apple.com
  • 13 edits
    2 adds in trunk/Source

Implement more of the data fetching API
https://bugs.webkit.org/show_bug.cgi?id=141975

Reviewed by Andreas Kling.

Source/WebCore:

Add API for getting origins in a given session that has cached data.

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::originsWithCache):

Source/WebKit2:

  • Shared/WebsiteData/WebsiteData.cpp: Added.

(WebKit::WebsiteData::Entry::encode):
(WebKit::WebsiteData::Entry::decode):
(WebKit::WebsiteData::encode):
(WebKit::WebsiteData::decode):

  • Shared/WebsiteData/WebsiteData.h: Added.

Add a new WebsiteData class that will store website data. Currently it only stores
origin + website data type, but in the future it is going to store more things, like
host names that have cookies associated.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy):
Assert that we don't have any pending fetch data callbacks.

(WebKit::WebProcessProxy::connectionDidClose):
Invoke any pending fetch website data callbacks.

(WebKit::WebProcessProxy::didFetchWebsiteData):
Grab the callback and invoke it.

(WebKit::WebProcessProxy::fetchWebsiteData):
Set up a pending callback and send a FetchWebsiteData message to the web process.

  • UIProcess/WebProcessProxy.h:

Add new member.

  • UIProcess/WebProcessProxy.messages.in:

Add a DidFetchWebsiteData message.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeWebProcessAccessTypeForDataFetch):
Return the web process access type for the given set of data types.

(WebKit::WebsiteDataStore::fetchData):
Set up a callback aggregator that will assemble the needed website data into a vector of website data records.

(WebKit::computeNetworkProcessAccessTypeForDataRemoval):
(WebKit::computeWebProcessAccessTypeForDataRemoval):
Rename these functions to indicate that they are about data removal.

(WebKit::WebsiteDataStore::removeData):
Append "ForDataRemoval" to function calls.

  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

  • WebProcess/Storage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
Tighten types.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::fetchWebsiteData):
For now, just fetch memory cache data.

  • WebProcess/WebProcess.h:

Add new members.

  • WebProcess/WebProcess.messages.in:

Add FetchWebsiteData message.

10:47 AM Changeset in webkit [180574] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Use nullptr in more places in FrameView, RenderView, RenderObject
https://bugs.webkit.org/show_bug.cgi?id=141974

Reviewed by Zalan Bujtas.

0 -> nullptr in FrameView.h/cpp, RenderView.h/cpp, RenderObject.h/cpp.

Rename FrameView::m_deferSetNeedsLayouts to FrameView::m_deferSetNeedsLayoutCount
to make it more clear that it's a count.

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::setContentsSize):
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::layerForScrolling):
(WebCore::FrameView::layerForHorizontalScrollbar):
(WebCore::FrameView::layerForVerticalScrollbar):
(WebCore::FrameView::layerForScrollCorner):
(WebCore::FrameView::tiledBacking):
(WebCore::FrameView::scrollLayerID):
(WebCore::FrameView::layerForOverhangAreas):
(WebCore::FrameView::setWantsLayerForTopOverHangArea):
(WebCore::FrameView::setWantsLayerForBottomOverHangArea):
(WebCore::FrameView::hasCompositedContentIncludingDescendants):
(WebCore::FrameView::layoutRoot):
(WebCore::FrameView::forceLayoutParentViewIfNeeded):
(WebCore::FrameView::layout):
(WebCore::FrameView::hostWindow):
(WebCore::FrameView::scheduleRelayout):
(WebCore::FrameView::scheduleRelayoutOfSubtree):
(WebCore::FrameView::needsLayout):
(WebCore::FrameView::setNeedsLayout):
(WebCore::FrameView::enclosingScrollableArea):
(WebCore::FrameView::parentFrameView):
(WebCore::FrameView::paintControlTints):
(WebCore::FrameView::adjustPageHeightDeprecated):
(WebCore::FrameView::axObjectCache):

  • page/FrameView.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::RenderObject):
(WebCore::RenderObject::nextInPreOrderAfterChildren):
(WebCore::RenderObject::previousInPreOrder):
(WebCore::RenderObject::firstLeafChild):
(WebCore::RenderObject::lastLeafChild):
(WebCore::RenderObject::traverseNext):
(WebCore::RenderObject::firstLineBlock):
(WebCore::RenderObject::containerForRepaint):
(WebCore::RenderObject::showRenderSubTreeAndMark):
(WebCore::RenderObject::localToAbsolute):
(WebCore::RenderObject::container):

  • rendering/RenderObject.h:

(WebCore::RenderObject::virtualContinuation):
(WebCore::RenderObject::node):
(WebCore::RenderObject::nonPseudoNode):
(WebCore::RenderObject::localToAbsoluteQuad):
(WebCore::RenderObject::absoluteQuads):
(WebCore::RenderObject::absoluteClippedOverflowRect):
(WebCore::RenderObject::outlineBoundsForRepaint):
(WebCore::RenderObject::computeAbsoluteRepaintRect):
(WebCore::RenderObject::selectionRect):
(WebCore::RenderObject::imageChanged):
(WebCore::RenderObject::addFocusRingRects):
(WebCore::RenderObject::absoluteOutlineBounds):

  • rendering/RenderView.cpp:

(WebCore::SelectionIterator::next):
(WebCore::RenderView::RenderView):
(WebCore::RenderView::mapLocalToContainer):
(WebCore::RenderView::pushMappingToContainer):
(WebCore::RenderView::computeRectForRepaint):
(WebCore::rendererAfterPosition):
(WebCore::RenderView::splitSelectionBetweenSubtrees):
(WebCore::RenderView::rootBackgroundIsEntirelyFixed):

  • rendering/RenderView.h:
10:31 AM Changeset in webkit [180573] by dino@apple.com
  • 2 edits in trunk/LayoutTests

Temporarily skip this test on iOS 64-bit.

Rubber-stamped by Michael Saboff.

  • js/script-tests/array-from.js:
10:24 AM Changeset in webkit [180572] by bshafiei@apple.com
  • 5 edits in branches/safari-600.5-branch/Source

Versioning.

10:24 AM Changeset in webkit [180571] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch/Source

Versioning.

10:20 AM Changeset in webkit [180570] by Yusuke Suzuki
  • 50 edits
    2 adds in trunk

REGRESSION(r179429): Can't type comments in Facebook
https://bugs.webkit.org/show_bug.cgi?id=141859

Reviewed by Brent Fulgham.

Source/JavaScriptCore:

When window.Symbol is exposed to user-space pages,
Facebook's JavaScript use it (maybe, for immutable-js and React.js's unique key).
However, to work with Symbols completely, it also requires
1) Object.getOwnPropertySymbols (for mixin including Symbols)
2) the latest ES6 Iterator interface that uses Iterator.next and it returns { done: boolean, value: value }.
Since they are not landed yet, comments in Facebook don't work.

This patch introduces RuntimeFlags for JavaScriptCore.
Specifying SymbolEnabled flag under test runner and inspector to continue to work with Symbol.
And drop JavaScriptExperimentsEnabled flag
because it is no longer used and use case of this is duplicated to runtime flags.

(GlobalObject::javaScriptRuntimeFlags):
(GlobalObject::javaScriptExperimentsEnabled): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::finishCreation):
(JSC::JSGlobalObject::javaScriptRuntimeFlags):
(JSC::JSGlobalObject::javaScriptExperimentsEnabled): Deleted.

  • runtime/RuntimeFlags.h: Added.

(JSC::RuntimeFlags::RuntimeFlags):
(JSC::RuntimeFlags::createAllEnabled):

Source/WebCore:

Enable SymbolEnabled runtime flag in inspector context.

  • ForwardingHeaders/runtime/RuntimeFlags.h: Added.
  • WebCore.order:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::javaScriptRuntimeFlags):
(WebCore::JSDOMWindowBase::javaScriptExperimentsEnabled): Deleted.

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::javaScriptRuntimeFlags):
(WebCore::JSWorkerGlobalScopeBase::javaScriptExperimentsEnabled): Deleted.

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):

  • page/Settings.h:
  • page/Settings.in:

Source/WebKit/mac:

Introduce SymbolEnabled and drop javaScriptExperimentsEnabled.
Private API, javaScriptExperimentsEnabled is dropped.

  • Misc/WebNSDictionaryExtras.h:
  • Misc/WebNSDictionaryExtras.m:

(-[NSMutableDictionary _webkit_setUnsignedInt:forKey:]):

  • WebKit.order:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences _setUnsignedIntValue:forKey:]):
(-[WebPreferences javaScriptRuntimeFlags]):
(-[WebPreferences setJavaScriptRuntimeFlags:]):
(-[WebPreferences setJavaScriptExperimentsEnabled:]): Deleted.
(-[WebPreferences javaScriptExperimentsEnabled]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit/win:

Added Windows support.

  • Interfaces/IWebPreferences.idl:
  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::javaScriptRuntimeFlags):
(WebPreferences::setJavaScriptRuntimeFlags):
(WebPreferences::isWebSecurityEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WebKit2:

Enable SymbolEnabled in inspector context.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetJavaScriptRuntimeFlags):
(WKPreferencesGetJavaScriptRuntimeFlags):
(WKPreferencesSetJavaScriptExperimentsEnabled): Deleted.
(WKPreferencesGetJavaScriptExperimentsEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _javaScriptRuntimeFlags]):
(-[WKPreferences _setJavaScriptRuntimeFlags:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • mac/WebKit2.order:

Tools:

Drop javaScriptExperimentsEnabled and specify JavaScriptRuntimeFlagsAllEnabled as KJavaScriptRuntimeFlags.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

9:59 AM Changeset in webkit [180569] by Manuel Rego Casasnovas
  • 1 edit
    1 delete in trunk/LayoutTests

Unreviewed GTK+ gardening.

This was introduced in r180555, but the test has been generalized in
r180562 and we don't need a particular expectation anymore.

  • platform/gtk/fast/css-grid-layout/grid-item-order-in-content-sized-columns-resolution-expected.txt: Removed.
9:55 AM Changeset in webkit [180568] by andersca@apple.com
  • 10 edits in trunk/Source/WebKit2

Tighten up some SecurityOrigin related code, use references where possible
https://bugs.webkit.org/show_bug.cgi?id=141971

Reviewed by Antti Koivisto.

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::getIndexedDatabaseOrigins):

  • Shared/SecurityOriginData.cpp:

(WebKit::SecurityOriginData::fromSecurityOrigin):
(WebKit::SecurityOriginData::securityOrigin):

  • Shared/SecurityOriginData.h:
  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::createTransientLocalStorageMap):

  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:

(WebKit::WebIDBServerConnection::WebIDBServerConnection):

  • WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:

(WebKit::WebMediaKeyStorageManager::getMediaKeyOrigins):

  • WebProcess/Storage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::create):
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):

  • WebProcess/Storage/StorageAreaMap.h:
  • WebProcess/Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::storageArea):

9:38 AM Changeset in webkit [180567] by Manuel Rego Casasnovas
  • 5 edits
    2 adds in trunk

[CSS Grid Layout] Support "sparse" in auto-placed items locked to a row/column
https://bugs.webkit.org/show_bug.cgi?id=141748

Reviewed by Sergio Villar Senin.

Source/WebCore:

The first step of grid item placement algorithm has been updated in
order to support both "sparse" and "dense" modes. Current code is always
doing a "dense" packing in this case.

See: http://dev.w3.org/csswg/css-grid/#auto-placement-algo

Test: fast/css-grid-layout/grid-item-auto-placement-fixed-row-column.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid): Add a cursor
for each row/column and use it to place items in the right position.

LayoutTests:

New test to check "sparse" and "dense" packing mode behavior in
auto-placed items locked to a given row (or column).

  • fast/css-grid-layout/grid-item-auto-placement-definite-span.html:

Extract some common styles to resources/grid.css.

  • fast/css-grid-layout/grid-item-auto-placement-fixed-row-column-expected.txt: Added.
  • fast/css-grid-layout/grid-item-auto-placement-fixed-row-column.html: Added.
  • fast/css-grid-layout/resources/grid.css: Modified generic CSS file to

add common styles.

9:30 AM WebKitGTK/2.8.x edited by Michael Catanzaro
fix typo (diff)
9:28 AM WebKitGTK/2.8.x edited by Michael Catanzaro
Propose some merges for 2.7.91 (diff)
9:20 AM Changeset in webkit [180566] by jdiggs@igalia.com
  • 5 edits in trunk

[GTK] Layout Test accessibility/roles-exposed.html is failing
https://bugs.webkit.org/show_bug.cgi?id=141960

Reviewed by Martin Robinson.

Source/WebCore:

The test was failing because Gtk now uses GtkColorChooserDialog for the
color input, making the input field a button which results in the color
chooser dialog appearing. As a side effect of this change, the input now
has an accessible role of ColorWell, which is currently mapped to
ATK_ROLE_COLOR_CHOOSER (which is by definition the dialog which results
upon activating the button input field). Changed the Gtk platform mapping
to ATK_ROLE_BUTTON, leaving the Efl mapping as-is.

No new tests. Instead, updated and unskipped failing test.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

LayoutTests:

  • platform/gtk/TestExpectations: Unskip the failing test.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Update the expectations.
9:17 AM WebKitGTK/2.6.x edited by Michael Catanzaro
Propose some merges in case there is a 2.6.6 (diff)
9:11 AM Changeset in webkit [180565] by commit-queue@webkit.org
  • 5 edits in trunk

Crash loading local file with WebPageProxy::loadAlternateHTMLString
https://bugs.webkit.org/show_bug.cgi?id=141867

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-02-24
Reviewed by Anders Carlsson.

Source/WebKit2:

WebPageProxy::loadAlternateHTMLString needs to assume read access to unreachableURL as well
as baseURL, because unreachableURL will get added to the back/forward list, causing us to
crash later on when we notice the unexpected URL received in checkURLReceivedFromWebProcess.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString):

Tools:

  • TestWebKitAPI/Tests/WebKit2/LoadAlternateHTMLStringWithNonDirectoryURL.cpp:

(TestWebKitAPI::loadAlternateHTMLString): Split most of this test into a function so it can
be shared with the new test.
(TestWebKitAPI::TEST): Add a cross-platform test for this crash.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp: Add a GTK+ test for this crash.

(testLoadAlternateHTMLForLocalPage):
(beforeAll):

9:08 AM Changeset in webkit [180564] by fpizlo@apple.com
  • 2 edits
    3 adds in trunk/Source/JavaScriptCore

Our bizarre behavior on Arguments::defineOwnProperty should be deliberate rather than a spaghetti incident
https://bugs.webkit.org/show_bug.cgi?id=141951

Reviewed by Benjamin Poulain.

This patch has no behavioral change, but it simplifies a bunch of wrong code. The code is
still wrong in exactly the same way, but at least it's obvious what's going on. The wrongness
is covered by this bug: https://bugs.webkit.org/show_bug.cgi?id=141952.

  • runtime/Arguments.cpp:

(JSC::Arguments::copyBackingStore): We should only see the arguments token; assert otherwise. This works because if the GC sees the butterfly token it calls the JSObject::copyBackingStore method directly.
(JSC::Arguments::defineOwnProperty): Make our bizarre behavior deliberate rather than an accident of a decade of patches.

  • tests/stress/arguments-bizarre-behavior.js: Added.

(foo):

  • tests/stress/arguments-bizarre-behaviour-disable-enumerability.js: Added. My choice of spellings of the word "behavio[u]r" is almost as consistent as our implementation of arguments.

(foo):

  • tests/stress/arguments-custom-properties-gc.js: Added. I added this test because at first I was unsure if we GCd arguments correctly.

(makeBaseArguments):
(makeArray):
(cons):

9:07 AM Changeset in webkit [180563] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK] Fonts loaded via @font-face look bad
https://bugs.webkit.org/show_bug.cgi?id=140994

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-02-24
Reviewed by Martin Robinson.

We've had several complaints that woff fonts look bad on some websites. This seems to be a
combination of multiple issues. For one, we don't look at Fontconfig settings at all when
creating a web font. This commit changes FontPlatformData::initializeWithFontFace to instead
use sane default settings from Fontconfig when loading a web font, rather than accepting the
default settings from GTK+, which are normally overridden by Fontconfig when loading system
fonts. However, we will hardcode the hinting setting for web fonts to always force use of
the light autohinter, so that we do not use a font's native hints. This avoids compatibility
issues when fonts with poor native hinting are only tested in browsers that do not use the
native hints. It also allows us to sidestep future security vulnerabilities in FreeType's
bytecode interpreter.

The net result of this is that there should be little noticable difference if you have GTK+
set to use slight hinting (which forces use of the autohinter) unless you have customized
Fontconfig configuration, but a dramatic improvement with particular fonts if you use medium
or full hinting. This should reduce complaints about our font rendering on "fancy sites."

No new tests, since the affected fonts we've found are not freely redistributable.

  • platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:

(WebCore::FontCustomPlatformData::FontCustomPlatformData): Force web fonts to be autohinted.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::getDefaultCairoFontOptions): Renamed to disambiguate.
(WebCore::getDefaultFontconfigOptions): Added.
(WebCore::FontPlatformData::initializeWithFontFace): Always call
FontPlatformData::setCairoOptionsFromFontConfigPattern. If the FontPlatformData was not
created with an FcPattern (e.g. because this is a web font), call
getDefaultFontconfigOptions to get a sane default FcPattern.
(WebCore::FontPlatformData::setOrientation): Renamed call to getDefaultCairoFontOptions.
(WebCore::getDefaultFontOptions): Deleted.

9:07 AM Changeset in webkit [180562] by Manuel Rego Casasnovas
  • 3 edits in trunk/LayoutTests

[CSS Grid Layout] Use Ahem in grid-item-order-in-content-sized-columns-resolution.html
https://bugs.webkit.org/show_bug.cgi?id=141970

Reviewed by Sergio Villar Senin.

Without using Ahem we were having different results depending on the
platform.

  • fast/css-grid-layout/grid-item-order-in-content-sized-columns-resolution-expected.txt: Update results to the new values.
  • fast/css-grid-layout/grid-item-order-in-content-sized-columns-resolution.html: Use Ahem.
8:46 AM Changeset in webkit [180561] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

[Cocoa] Break internal reference cycle in WebCore::Font.
<https://webkit.org/b/141941>
<rdar://problem/19650570>

Reviewed by Antti Koivisto.

The Cocoa implementation of Font::platformCreateScaledFont() tried to be smart and use the FontCache.
This didn't work out well when scaling a 0pt Font, since scaling 0pt by any factor will return 0pt.

We'd have a 0pt font, scale it by 0.7 to get a small-caps variant, and then cache that small-caps
variant (really "this") in Font::m_derivedData->smallCaps.

Fix this by having Cocoa Font scaling do exactly what other platforms do: create a new Font every time.
This stops us from accumulating tons of abandoned Font objects over time.

  • platform/graphics/Font.cpp:

(WebCore::Font::verticalRightOrientationFont):
(WebCore::Font::uprightOrientationFont):
(WebCore::Font::smallCapsFont):
(WebCore::Font::emphasisMarkFont):
(WebCore::Font::brokenIdeographFont):
(WebCore::Font::nonSyntheticItalicFont): Add assertions to guard against reference cycles inside a Font.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformCreateScaledFont): Always create a new Font when scaling an existing Font to a different size.

7:32 AM Changeset in webkit [180560] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

[iOS] Gardening: Mark svg/canvas/canvas-global-alpha-svg.html as ImageOnlyFailure

  • platform/ios-simulator/TestExpectations:
6:48 AM Changeset in webkit [180559] by youenn.fablet@crf.canon.fr
  • 9 edits in trunk

[Streams API] Reading ReadableStream ready and closed attributes should not always create a new promise
https://bugs.webkit.org/show_bug.cgi?id=141650

Reviewed by Benjamin Poulain.

Source/WebCore:

The JSPromiseDeferred objects returned by JSReadableStream::ready and JSReadableStream::closed should be stored somewhere.
This patch stores them as private slots in JSReadableStream.
This is close to the description in https://streams.spec.whatwg.org/#rs-internal-slots.

An alternative would be to have these objects as JSReadableStream class members, thus modifying the binding generator.
That may be the cleanest solution, especially if other APIs express the same need.
Another alternative is to store DeferredWrapper in ReadableStream objects.
But it is currently preferred to keep DeferredWrapper in bindings/js code.

Added new constructor for DeferredWrapper to use these stored values.
Updated ready and closed methods to use that new constructor.
Changes are covered by new test in streams/readablestream-constructor.html.

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::DeferredWrapper):

  • bindings/js/JSDOMPromise.h:
  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::closedPromiseSlotName):
(WebCore::getOrCreatePromiseDeferredFromObject):
(WebCore::readyPromiseSlotName):
(WebCore::JSReadableStream::ready):
(WebCore::JSReadableStream::closed):

  • bindings/js/ReadableStreamJSSource.cpp:

(WebCore::setInternalSlotToObject):
(WebCore::getInternalSlotFromObject):

  • bindings/js/ReadableStreamJSSource.h:

LayoutTests:

  • streams/readablestream-constructor-expected.txt:
  • streams/readablestream-constructor.html: Added test to ensure ready and closed always return the same promise object.
6:21 AM Changeset in webkit [180558] by diorahman@rockybars.com
  • 18 edits in trunk

Always serialize :lang()'s arguments to strings
https://bugs.webkit.org/show_bug.cgi?id=141944

Reviewed by Benjamin Poulain.

Source/WebCore:

As specified in [1] :lang()'s arguments are always serialized to strings.

[1] http://dev.w3.org/csswg/cssom/#serializing-selectors

Related tests are updated.

  • css/CSSGrammar.y.in:
  • css/CSSParserValues.cpp:

(WebCore::CSSParserSelector::setLangArgumentList):

  • css/CSSParserValues.h:

(WebCore::CSSParserString::init):
(WebCore::CSSParserString::clear):
(WebCore::CSSParserString::tokenType): Deleted.
(WebCore::CSSParserString::setTokenType): Deleted.

  • css/CSSSelector.cpp:

(WebCore::appendLangArgumentList):
(WebCore::CSSSelector::setLangArgumentList):

  • css/CSSSelector.h:

(WebCore::CSSSelector::langArgumentList):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesLangPseudoClass):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsInLanguage):

LayoutTests:

Some tests results are updated to reflect the always serialize
:lang()'s arguments to strings.

  • fast/css/css-lang-selector-with-string-arguments-text-expected.txt:
  • fast/css/css-lang-selector-with-string-arguments-text.html:
  • fast/css/parsing-css-lang-expected.txt:
  • fast/css/parsing-css-lang.html:
  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/css-set-selector-text-expected.txt:
  • fast/css/css-set-selector-text.html:
  • fast/dom/css-selectorText-expected.txt:
5:02 AM Changeset in webkit [180557] by ddkilzer@apple.com
  • 24 edits
    1 move
    54 adds
    209 deletes in trunk

[iOS] Implement WTR::activateFonts() to fix missing fonts in WebKit2 test runs
<http://webkit.org/b/141900>

Tools:

Reviewed by Myles C. Maxfield.

  • WebKitTestRunner/Configurations/InjectedBundle.xcconfig:

(OTHER_LDFLAGS_BASE): Link to CoreText.framework.

  • WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm: Rename from Tools/WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm.
  • Rename to share code with iOS.
  • Add USE(APPKIT) around AppKit-specific headers and code.
  • Fix a check-webkit-style warning.
  • WebKitTestRunner/InjectedBundle/ios/ActivateFontsIOS.mm: Remove.
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • Rename mac/ActivateFonts.mm to cocoa/ActivateFontsCocoa.mm.
  • Remove ios/ActivateFontsIOS.mm.
  • Fix InjectedBundle/cocoa group to represent the directory on disk. Includes a change to InjectedBundlePageCocoa.mm.

LayoutTests:

Rebaseline ios-simulator-wk2 results after fixing font
registration for WebKitTestRunner.app.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • Shuffle css2.1 test expectations to make tests pass.
  • platform/ios-simulator/TestExpectations:
  • Shuffle css2.1 test expectations to make tests pass.
  • Mark a few ref tests as image-only failures via platform/mac.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-height-002-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-height-007-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-height-009-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-max-height-002-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-max-height-007-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-max-height-009-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-001-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-002-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-003-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-004-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-005-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-006-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-007-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-008-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-009-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-010-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-011-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-012-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-013-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-014-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-016-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-017-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-018-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-019-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-020-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-021-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-022-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-023-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/absolute-non-replaced-width-024-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-001-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-004a-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-004b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-004c-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-004d-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-004e-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-004f-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-005a-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-005b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-005c-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-005d-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-007-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-009a-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-009b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-009e-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-containing-block-initial-009f-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/abspos-replaced-width-margin-000-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/block-non-replaced-height-005-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/block-non-replaced-height-006-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/20110323/block-non-replaced-width-007-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/block-replaced-width-001-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/block-replaced-width-006-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/c543-txt-decor-000-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/empty-inline-002-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/float-non-replaced-width-006-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/float-non-replaced-width-007-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/float-non-replaced-width-008-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/float-non-replaced-width-009-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/float-non-replaced-width-010-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/float-non-replaced-width-011-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/float-non-replaced-width-012-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/inline-block-non-replaced-width-001-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/inline-block-non-replaced-width-002-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/inline-block-non-replaced-width-003-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/inline-block-non-replaced-width-004-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/inline-non-replaced-height-002-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/inline-non-replaced-height-003-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/inline-non-replaced-width-001-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/inline-non-replaced-width-002-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/20110323/replaced-intrinsic-002-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/20110323/replaced-intrinsic-ratio-001-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t040302-c61-ex-len-00-b-a-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t040302-c61-rel-len-00-b-ag-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t040303-c62-percent-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t040306-c63-color-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0801-c412-hz-box-00-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5501-imrgn-t-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5501-mrgn-t-00-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5502-imrgn-r-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5502-imrgn-r-01-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5502-imrgn-r-02-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5502-imrgn-r-03-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5502-imrgn-r-04-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5502-imrgn-r-05-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5502-imrgn-r-06-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5502-mrgn-r-00-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5502-mrgn-r-01-c-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5502-mrgn-r-03-c-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t0803-c5503-imrgn-b-00-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5503-mrgn-b-00-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5504-imrgn-l-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5504-imrgn-l-01-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5504-imrgn-l-02-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5504-imrgn-l-03-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5504-imrgn-l-04-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5504-imrgn-l-05-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5504-imrgn-l-06-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5504-mrgn-l-00-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5504-mrgn-l-01-c-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5504-mrgn-l-03-c-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t0803-c5505-imrgn-00-a-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5505-mrgn-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5505-mrgn-01-e-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0803-c5505-mrgn-03-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5506-ipadn-t-00-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5506-ipadn-t-01-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5506-ipadn-t-02-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5506-padn-t-00-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5507-ipadn-r-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5507-ipadn-r-01-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5507-ipadn-r-02-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5507-ipadn-r-03-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5507-ipadn-r-04-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5507-padn-r-00-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5507-padn-r-01-c-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5507-padn-r-03-f-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t0804-c5508-ipadn-b-00-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5508-ipadn-b-01-f-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5508-ipadn-b-02-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5508-ipadn-b-03-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5509-ipadn-l-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5509-ipadn-l-01-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5509-ipadn-l-02-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5509-ipadn-l-03-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5509-ipadn-l-04-f-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5509-padn-l-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5509-padn-l-01-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5509-padn-l-03-f-g-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t0804-c5510-ipadn-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5510-padn-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5510-padn-01-e-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0804-c5510-padn-02-f-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t09-c5526c-display-00-e-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t090204-display-change-01-b-ao-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t090402-c42-ibx-pad-00-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0905-c5525-fltblck-00-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0905-c5525-fltclr-00-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t0905-c5525-fltinln-00-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0905-c5525-fltmrgn-00-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t0905-c5525-fltwidth-03-c-g-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t0905-c5525-fltwrap-00-b-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t0905-c5526-fltclr-00-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t090501-c414-flt-01-b-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t090501-c414-flt-03-b-g-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t1001-abs-pos-cb-01-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1001-abs-pos-cb-02-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1001-abs-pos-cb-03-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1001-abs-pos-cb-04-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1001-abs-pos-cb-05-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1001-abs-pos-cb-06-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1001-abs-pos-cb-07-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1001-abs-pos-cb-08-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1001-abs-pos-cb-09-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t100303-c412-blockw-00-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1004-c43-rpl-bbx-00-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1004-c43-rpl-ibx-00-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1008-c44-ln-box-00-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1008-c44-ln-box-01-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1008-c44-ln-box-02-d-ag-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t1008-c44-ln-box-03-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t100801-c42-ibx-ht-00-d-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t100801-c544-valgn-00-a-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t100801-c544-valgn-01-d-ag-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t100801-c544-valgn-02-d-agi-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t100801-c544-valgn-03-d-agi-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t100801-c544-valgn-04-d-agi-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t100801-c548-leadin-00-d-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t100801-c548-ln-ht-01-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t100801-c548-ln-ht-02-b-ag-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t100801-c548-ln-ht-03-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t100801-c548-ln-ht-04-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1202-counter-08-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1202-counter-13-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1202-counter-14-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1202-counters-08-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1202-counters-13-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1202-counters-14-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1205-c566-list-stl-00-e-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1205-c566-list-stl-01-c-g-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t140201-c534-bgre-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t140201-c534-bgre-01-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t140201-c534-bgreps-00-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t140201-c534-bgreps-01-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t140201-c534-bgreps-02-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t140201-c534-bgreps-03-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t140201-c534-bgreps-04-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t140201-c534-bgreps-05-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t140201-c536-bgpos-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t140201-c536-bgpos-01-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t140201-c537-bgfxps-00-c-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1507-c526-font-sz-01-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1507-c526-font-sz-02-b-a-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t1507-c526-font-sz-03-f-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-00-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-01-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-02-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-03-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-04-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-05-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-06-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-07-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-08-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-09-b-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1508-c527-font-10-c-expected.txt: Added.
  • platform/ios-simulator-wk2/css2.1/t1601-c547-indent-00-b-a-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t1602-c43-center-00-d-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1604-c542-letter-sp-00-b-a-expected.txt: Updated.
  • platform/ios-simulator-wk2/css2.1/t1604-c542-letter-sp-01-b-a-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1605-c545-txttrans-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/basic/010-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/basic/min-pref-width-nowrap-floats-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/float/004-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/float/005-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/float/006-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/float/float-not-removed-from-next-sibling3-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/float/float-not-removed-from-next-sibling4-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/block-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/block-glyphs-replaced-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/block-replaced-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/font-replaced-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/glyphs-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/inline-box-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/inline-box-replaced-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/inline-box-vertical-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/inline-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/inline-replaced-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/none-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/lineboxcontain/parsing-invalid-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/margin-collapse/006-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/margin-collapse/030-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/margin-collapse/031-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/margin-collapse/037-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/margin-collapse/038-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/margin-collapse/055-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/margin-collapse/block-inside-inline/006-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/positioning/002-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/positioning/vertical-lr/002-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/block/positioning/vertical-rl/002-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/compact/002-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/css-generated-content/nested-tables-with-before-after-content-crash-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/css/font-face-unicode-range-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/css/font-weight-1-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/css/line-after-floating-div-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/dynamic/first-letter-display-change-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/inline-block/002-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/inline/continuation-outlines-with-layers-2-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/inline/justify-emphasis-inline-box-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/line-grid/line-align-left-edges-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/line-grid/line-align-right-edges-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/line-grid/line-grid-contains-value-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/line-grid/line-grid-into-columns-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/multicol/client-rects-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/multicol/client-rects-spanners-complex-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/multicol/client-rects-spanners-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/multicol/newmulticol/client-rects-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/multicol/span/clone-flexbox-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/multicol/span/clone-summary-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/multicol/span/span-as-immediate-columns-child-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/ruby/ruby-base-merge-block-children-crash-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/ruby/select-ruby-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/international/text-spliced-font-expected.txt: Updated.
  • platform/ios-simulator-wk2/fast/text/whitespace/002-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/003-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/004-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/005-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/006-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/007-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/008-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/009-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/010-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/011-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/012-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/015-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/016-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/whitespace/018-expected.txt: Removed.
  • Add, update or remove platform-specific results as needed.
5:01 AM Changeset in webkit [180556] by ddkilzer@apple.com
  • 3 edits
    3 adds in trunk/LayoutTests

[iOS] Gardening: Clean up some failing WK2 tests

  • platform/ios-simulator/TestExpectations:
  • svg/as-image/svg-image-with-data-uri-from-canvas.html: Mark as ImageOnlyFailure since it has the same difference of 0.02% on every run.
  • platform/ios-simulator/fast/attachment/attachment-disabled-rendering-expected.txt: Add.
  • platform/ios-simulator/fast/attachment/attachment-rendering-expected.txt: Add.
  • platform/ios-simulator/fast/multicol/span/span-as-immediate-columns-child-expected.txt: Update.
  • Add or update platform-specific results.
4:21 AM Changeset in webkit [180555] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/LayoutTests

Unreviewed GTK+ Gardening 24th February
https://bugs.webkit.org/show_bug.cgi?id=141964

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-02-24

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/css-grid-layout/grid-item-order-in-content-sized-columns-resolution-expected.txt: Added. Rebaselined after r180107. (This revision updates expectations on mac platform but it doesn't do it in any other platform).
3:38 AM Changeset in webkit [180554] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Give TemporaryChange for m_inLoadPendingImages assertion a name so it actually does something.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::loadPendingImages):

3:29 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
3:28 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
3:27 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
3:02 AM Changeset in webkit [180553] by ryuan.choi@navercorp.com
  • 15 edits in trunk/Source/WebKit2

[EFL] Add message APIs to communicate between ewk_context and extensions
https://bugs.webkit.org/show_bug.cgi?id=137660

Reviewed by Gyuyoung Kim.

  • PlatformEfl.cmake: Added dependencies for ewk2UnitTestExtensionSample
  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::EwkContext):
(EwkContext::didReceiveMessageFromInjectedBundle):
(EwkContext::setMessageFromExtensionCallback):
(EwkContext::processReceivedMessageFromInjectedBundle):
(ewk_context_message_post_to_extensions):
(ewk_context_message_from_extensions_callback_set):
(EwkContext::didReceiveSynchronousMessageFromInjectedBundle):
Deleted to split synchronouse message APIs from asynchronuous message APIs.
ewebkit will not support this until there are requirements.
(EwkContext::setMessageFromInjectedBundleCallback): Renamed to setMessageFromExtensionCallback.
(ewk_context_message_post_to_injected_bundle): Renamed to ewk_context_message_post_to_extensions.
(ewk_context_message_from_injected_bundle_callback_set): Renamed to ewk_context_message_from_injected_bundle_callback_set.

  • UIProcess/API/efl/ewk_context.h:
  • UIProcess/API/efl/ewk_context_private.h:
  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:

Improved test case for ewk_context_new_with_extensions_path using the message APIs.
(EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
(EWK2UnitTest::EWK2UnitTestBase::SetUp):

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:

(EWK2UnitTest::EWK2UnitTestEnvironment::extensionSample): Deleted.

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
  • UIProcess/API/efl/tests/extensions/extension_sample.cpp:

Improved test case for ewk_context_new_with_extensions_path using the message APIs.

  • UIProcess/API/efl/tests/test_ewk2_context.cpp: Ditto.

(EWK2ContextTestWithExtension::messageReceivedCallback):
(EWK2ContextTestWithExtension::EWK2ContextTestWithExtension):
(TEST_F):

  • WebProcess/InjectedBundle/API/efl/ewk_extension.cpp:

(toEwkExtendion):
(EwkExtension::EwkExtension):
(EwkExtension::didCreatePage):
(EwkExtension::willDestroyPage):
(EwkExtension::didReceiveMessage):
(EwkExtension::didReceiveMessageToPage):
(ewk_extension_message_post): Implemented to post message to ewk_context.

  • WebProcess/InjectedBundle/API/efl/ewk_extension.h:
  • WebProcess/InjectedBundle/API/efl/ewk_extension_private.h:

(EwkExtension::bundle):

  • WebProcess/efl/ExtensionManagerEfl.cpp:

(WebKit::ExtensionManagerEfl::initialize):
Fixed the bug when there are different shared objects in extension path.
This is spotted while improving test case.

12:57 AM Changeset in webkit [180552] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed, EFL daily gardening 24th Feb.

  • platform/efl/TestExpectations:
12:33 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)

Feb 23, 2015:

11:27 PM Changeset in webkit [180551] by commit-queue@webkit.org
  • 79 edits
    11 deletes in trunk

Unreviewed, rolling out r180547 and r180550.
https://bugs.webkit.org/show_bug.cgi?id=141957

Broke 10 Windows tests. (Requested by bfulgham_ on #webkit).

Reverted changesets:

"REGRESSION(r179429): Can't type comments in Facebook"
https://bugs.webkit.org/show_bug.cgi?id=141859
http://trac.webkit.org/changeset/180547

"Constructor returning null should construct an object instead
of null"
https://bugs.webkit.org/show_bug.cgi?id=141640
http://trac.webkit.org/changeset/180550

9:47 PM Changeset in webkit [180550] by Yusuke Suzuki
  • 39 edits
    9 adds in trunk

Constructor returning null should construct an object instead of null
https://bugs.webkit.org/show_bug.cgi?id=141640

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

When constructor code doesn't return object, constructor should return this object instead.
Since we used op_is_object for this check and op_is_object is intended to be used for typeof,
it allows null as an object.
This patch fixes it by introducing an new bytecode op_is_object_or_null for typeof use cases.
Instead, constructor uses simplified is_object.

As a result, op_is_object becomes fairly simple. So we introduce optimization for op_is_object.

  1. LLInt and baseline JIT support op_is_object as a fast path.
  2. DFG abstract interpreter support op_is_object. And recognize its speculated type and read-write effects.
  3. DFG introduces inlined asm for op_is_object rather than calling a C++ function.
  4. FTL lowers DFG's IsObject into LLVM IR.

And at the same time, this patch fixes isString / isObject predicate used for op_is_object and others
in LLInt, JIT, DFG and FTL.
Before introducing ES6 Symbol, JSCell is only used for object and string in user observable area.
So in many places, when the cell is not object, we recognize it as a string, and vice versa.
However, now ES6 Symbol is implemented as a JSCell, this assumption is broken.
So this patch stop using !isString as isObject.
To check whether a cell is an object, instead of seeing that structure ID of a cell is not stringStructure,
we examine typeInfo in JSCell.

  • JavaScriptCore.order:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFor):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEqualityOp):
(JSC::BytecodeGenerator::emitReturn):

  • 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):

IsObject operation only touches JSCell typeInfoType.
And this value would not be changed through structure transition.
As a result, IsObject can report that it doesn't read any information.

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

Just like IsString, IsObject is also fixed up.

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compileStringToUntypedEquality):
(JSC::DFG::SpeculativeJIT::compileStringIdentToNotStringVarEquality):
(JSC::DFG::SpeculativeJIT::compileToStringOnCell):
(JSC::DFG::SpeculativeJIT::speculateObject):
(JSC::DFG::SpeculativeJIT::speculateObjectOrOther):
(JSC::DFG::SpeculativeJIT::speculateString):
(JSC::DFG::SpeculativeJIT::speculateNotStringVar):
(JSC::DFG::SpeculativeJIT::emitSwitchChar):
(JSC::DFG::SpeculativeJIT::emitSwitchString):
(JSC::DFG::SpeculativeJIT::branchIsObject):
(JSC::DFG::SpeculativeJIT::branchNotObject):
(JSC::DFG::SpeculativeJIT::branchIsString):
(JSC::DFG::SpeculativeJIT::branchNotString):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileToString):
(JSC::FTL::LowerDFGToLLVM::compileIsObject):
(JSC::FTL::LowerDFGToLLVM::compileIsObjectOrNull):
(JSC::FTL::LowerDFGToLLVM::speculateTruthyObject):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::isObject):
(JSC::FTL::LowerDFGToLLVM::isNotObject):
(JSC::FTL::LowerDFGToLLVM::isNotString):
(JSC::FTL::LowerDFGToLLVM::speculateNonNullObject):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::emitJumpIfCellObject):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::compileOpStrictEq):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/Operations.cpp:

(JSC::jsIsObjectTypeOrNull):
(JSC::jsIsObjectType): Deleted.

  • runtime/Operations.h:

LayoutTests:

  • js/dfg-to-primitive-pass-symbol-expected.txt: Added.
  • js/dfg-to-primitive-pass-symbol.html: Added.
  • js/dom/constructor-with-return-masquerades-expected.txt: Added.
  • js/dom/constructor-with-return-masquerades.html: Added.
  • js/dom/script-tests/constructor-with-return-masquerades.js: Added.

(Constructor):

Follow the old ret_object_or_this semantics.
When constructor returns an object that masquerades as undefined, we see it as an object.

  • js/regress/constructor-with-return-expected.txt: Added.
  • js/regress/constructor-with-return.html: Added.
  • js/regress/script-tests/constructor-with-return.js: Added.

(Test):

When constructor doesn't return an object, this should be returned instead.
In this test, we check all primitives. And test object, array and wrappers.

  • js/script-tests/dfg-to-primitive-pass-symbol.js: Added.

(toPrimitiveTarget):
(doToPrimitive):

op_to_primitive operation passes Symbol in fast path.

9:01 PM Changeset in webkit [180549] by rniwa@webkit.org
  • 11 edits in trunk

Disable font loading events until our implementation gets updated to match the latest spec
https://bugs.webkit.org/show_bug.cgi?id=141938

Reviewed by Andreas Kling.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Revert r173531 for now since our implementation is outdated.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

LayoutTests:

8:09 PM Changeset in webkit [180548] by Brent Fulgham
  • 5 edits in trunk/Source/WebCore

EventHandler references deleted Scrollbar
https://bugs.webkit.org/show_bug.cgi?id=141931
<rdar://problem/19915210>

Reviewed by Tim Horton.

Tested by scrollbars/overflow-custom-scrollbar-crash.html

Update the EventHandler class to use a WeakPtr to reference the
last used Scrollbar, rather than retaining the Scrollbar and
artificially extending its life. This keeps the EventHandler
state in proper sync with the state of the render tree, and
avoids cases where we have destroyed a ScrollableArea (and
Scrollbar) but are still sending messages to a fake zombie
version of the element.

  • page/EventHandler.cpp:

(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::updateLastScrollbarUnderMouse):

  • page/EventHandler.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::Scrollbar): Initialize WeakPtrFactory.

  • platform/Scrollbar.h:

(WebCore::Scrollbar::createWeakPtr): Added,

7:47 PM Changeset in webkit [180547] by Yusuke Suzuki
  • 42 edits
    2 adds in trunk

REGRESSION(r179429): Can't type comments in Facebook
https://bugs.webkit.org/show_bug.cgi?id=141859

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

When window.Symbol is exposed to user-space pages,
Facebook's JavaScript use it (maybe, for immutable-js and React.js's unique key).
However, to work with Symbols completely, it also requires
1) Object.getOwnPropertySymbols (for mixin including Symbols)
2) the latest ES6 Iterator interface that uses Iterator.next and it returns { done: boolean, value: value }.
Since they are not landed yet, comments in Facebook don't work.

This patch introduces RuntimeFlags for JavaScriptCore.
Specifying SymbolEnabled flag under test runner and inspector to continue to work with Symbol.
And drop JavaScriptExperimentsEnabled flag
because it is no longer used and use case of this is duplicated to runtime flags.

(GlobalObject::javaScriptRuntimeFlags):
(GlobalObject::javaScriptExperimentsEnabled): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::finishCreation):
(JSC::JSGlobalObject::javaScriptRuntimeFlags):
(JSC::JSGlobalObject::javaScriptExperimentsEnabled): Deleted.

  • runtime/RuntimeFlags.h: Added.

(JSC::RuntimeFlags::RuntimeFlags):
(JSC::RuntimeFlags::createAllEnabled):

Source/WebCore:

Enable SymbolEnabled runtime flag in inspector context.

  • ForwardingHeaders/runtime/RuntimeFlags.h: Added.
  • WebCore.order:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::javaScriptRuntimeFlags):
(WebCore::JSDOMWindowBase::javaScriptExperimentsEnabled): Deleted.

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::javaScriptRuntimeFlags):
(WebCore::JSWorkerGlobalScopeBase::javaScriptExperimentsEnabled): Deleted.

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):

  • page/Settings.h:
  • page/Settings.in:

Source/WebKit/mac:

Introduce SymbolEnabled and drop javaScriptExperimentsEnabled.
Private API, javaScriptExperimentsEnabled is dropped.

  • Misc/WebNSDictionaryExtras.h:
  • Misc/WebNSDictionaryExtras.m:

(-[NSMutableDictionary _webkit_setUnsignedInt:forKey:]):

  • WebKit.order:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences _setUnsignedIntValue:forKey:]):
(-[WebPreferences javaScriptRuntimeFlags]):
(-[WebPreferences setJavaScriptRuntimeFlags:]):
(-[WebPreferences setJavaScriptExperimentsEnabled:]): Deleted.
(-[WebPreferences javaScriptExperimentsEnabled]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Enable SymbolEnabled in inspector context.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetJavaScriptRuntimeFlags):
(WKPreferencesGetJavaScriptRuntimeFlags):
(WKPreferencesSetJavaScriptExperimentsEnabled): Deleted.
(WKPreferencesGetJavaScriptExperimentsEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _javaScriptRuntimeFlags]):
(-[WKPreferences _setJavaScriptRuntimeFlags:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • mac/WebKit2.order:

Tools:

Drop javaScriptExperimentsEnabled and specify JavaScriptRuntimeFlagsAllEnabled as KJavaScriptRuntimeFlags.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

7:33 PM Changeset in webkit [180546] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Set the semantic origin of delayed SetLocal to the Bytecode that originated it
https://bugs.webkit.org/show_bug.cgi?id=141727

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-23
Reviewed by Filip Pizlo.

Previously, delayed SetLocals would have the NodeOrigin of the next
bytecode. This was because delayed SetLocal are...delayed... and
currentCodeOrigin() is the one where the node is emitted.

This made debugging a little awkward since the OSR exits on SetLocal
were reported for the next bytecode. This patch changes the semantic
origin to keep the original bytecode.

From benchmarks, this looks like it could be a tiny bit faster
but it likely just noise.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::setDirect):
(JSC::DFG::ByteCodeParser::setLocal):
(JSC::DFG::ByteCodeParser::setArgument):
(JSC::DFG::ByteCodeParser::currentNodeOrigin):
(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::DelayedSetLocal::DelayedSetLocal):
(JSC::DFG::ByteCodeParser::DelayedSetLocal::execute):

7:32 PM Changeset in webkit [180545] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Remove DFGNode::predictHeap()
https://bugs.webkit.org/show_bug.cgi?id=141864

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-23
Reviewed by Geoffrey Garen.

  • dfg/DFGNode.h:

(JSC::DFG::Node::predictHeap): Deleted.
Unused code.

7:31 PM Changeset in webkit [180544] by benjamin@webkit.org
  • 5 edits
    8 adds in trunk

CSS JIT: add support for case-insensitive attribute matching
https://bugs.webkit.org/show_bug.cgi?id=141880

Reviewed by Andreas Kling.

Source/WebCore:

The value matching now has 3 cases:
1) Case-sensitive.
2) Case-insensitive.
3) Legacy HTML Case-insensitive.

The information to determine the case is split over 2 source:
-To know if explicit case-insensitive is needed, we need to ask the selector

for attributeValueMatchingIsCaseInsensitive().

-To know if the legacy HTML behavior is needed, we need to test the attribute

name filter with HTMLDocument::isCaseSensitiveAttribute().

I decided to perform all those checks at the fragment creation step.
This makes the register requirements and code generation more explicit.

From there, everything is easy: switch() on the type of matching needed,
and generate the code. The new case-insensitive case is a simplified version
of the legacy HTML behavior without runtime check for the element type.

Tests: fast/css/implicitly-case-insensitive-attribute-with-svg.html

fast/selectors/case-insensitive-attribute-register-requirement-1.html
fast/selectors/case-insensitive-attribute-register-requirement-2.html
fast/selectors/querySelector-explicit-case-insensitive-attribute-match-with-svg.html

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::attributeSelectorCaseSensitivity):
(WebCore::SelectorCompiler::AttributeMatchingInfo::AttributeMatchingInfo):
(WebCore::SelectorCompiler::AttributeMatchingInfo::attributeCaseSensitivity):
(WebCore::SelectorCompiler::AttributeMatchingInfo::canDefaultToCaseSensitiveValueMatch): Deleted.
(WebCore::SelectorCompiler::constructFragmentsInternal):
Compute the type of value matching and store it on the AttributeMatchingInfo
when creating the fragment.

(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::attributeValueTestingRequiresExtraRegister):
(WebCore::SelectorCompiler::attributeValueTestingRequiresCaseFoldingRegister): Deleted.
In general, AttributeCaseSensitivity::CaseInsensitive does not require an extra
register. I have made an exception for generateElementAttributeValueExactMatching()
for simplicity. I use that register to load the StringImpl of the attribute
being tested, that way I can use WTF::equalIgnoringCaseNonNull() directly.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
Matching itself is just function calls. Unlike AttributeCaseSensitivity::HTMLLegacyCaseInsensitive,
the behavior is consistent between XML and HTML.

LayoutTests:

  • fast/css/case-insensitive-attribute-with-svg-expected.html:
  • fast/css/case-insensitive-attribute-with-svg.html:
  • fast/css/implicitly-case-insensitive-attribute-with-svg-expected.html: Copied from LayoutTests/fast/css/case-insensitive-attribute-with-svg-expected.html.
  • fast/css/implicitly-case-insensitive-attribute-with-svg.html: Copied from LayoutTests/fast/css/case-insensitive-attribute-with-svg.html.

I renamed the HTML legacy case-insensitive behavior to separate
it from the new selector.

  • fast/selectors/querySelector-explicit-case-insensitive-attribute-match-with-svg-expected.txt: Added.
  • fast/selectors/querySelector-explicit-case-insensitive-attribute-match-with-svg.html: Added.

Mixing explicit case-insensitive with implicit.

  • fast/selectors/case-insensitive-attribute-register-requirement-1-expected.txt: Added.
  • fast/selectors/case-insensitive-attribute-register-requirement-1.html: Added.
  • fast/selectors/case-insensitive-attribute-register-requirement-2-expected.txt: Added.
  • fast/selectors/case-insensitive-attribute-register-requirement-2.html: Added.

The usual register allocation stress tests.

7:25 PM Changeset in webkit [180543] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove unused console-object-preview styles - replaced by ObjectPreviewView
https://bugs.webkit.org/show_bug.cgi?id=141945

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-23
Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.css:

(.console-object-preview): Deleted.
(.expanded .console-object-preview): Deleted.
(.console-object-preview .name): Deleted.
(.expanded .console-object-preview > .console-object-preview-body): Deleted.
(.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.

7:11 PM Changeset in webkit [180542] by hyuki.kim@samsung.com
  • 2 edits in trunk/Tools

[EFL] fix eo errors
https://bugs.webkit.org/show_bug.cgi?id=141909

Reviewed by Gyuyoung Kim.

Fix eo errors that occur whenever minibrowser is launched.

  • elm_obj_entry_text_style_user_push can only be applied for elm_entry
  • elm_obj_win_resize_object_add's first parameter should be elm_win
  • MiniBrowser/efl/main.c:

(window_create):

6:53 PM Changeset in webkit [180541] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed build fix after r180532

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::buffered):
Fixed typo.

6:34 PM Changeset in webkit [180540] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Unreviewed build fix after r180535. Removed the test case that wasn't compiling.

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::TEST):

6:07 PM Changeset in webkit [180539] by benjamin@webkit.org
  • 5 edits in trunk/Source/WebKit2

[iOS WK2] The WebProcess keep scrolling pages based on the last velocity after scrolling has been interrupted
https://bugs.webkit.org/show_bug.cgi?id=141933
rdar://problem/18746673
rdar://problem/19711490

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-23
Reviewed by Simon Fraser.

The bug happened like this:
1) The user scroll the page. WKContentView tracks the velocity and send

the update rect + velocity to the WebProcess.

2) The user interupts the scrolling but does not commit to either scrolling

again or cancelling the scrolling.
Since we were not notified of this state, the WebProcess still believed
the velocity is stable.

3) With any paint update, the WebProcess would account for the last velocity

and try to guess the best repaint area. This would drift endlessly out
of the view since the view is not really moving.

This patch fixes the issue by adding special handling for interrupted scrolling.

Kudos to Kurt Revis for providing us the required APIs.

  • Shared/VisibleContentRectUpdateInfo.h:

(WebKit::operator==):
We can no longer filter VisibleContentRectUpdateInfo ignoring the velocity.

Typically, UIScrollView would call -scrollViewDidScroll: before being interrupted.
If we filter based on the VisibleContentRectUpdateInfo, we have two identical
states differing only by the velocity. If we filter the second update, the WebProcess
would never know the velocity should be zero.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollViewDidInterruptDecelerating:]):
We get this callback when scrolling is interrupted. We just need to clear
the velocity and re-send a new update for the current state.

(-[WKWebView _updateVisibleContentRects]):
Do not consider an interrupted scroll as a stable state. We don't know if scrolling
will resume or will stop.

  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didInterruptScrolling]):

5:43 PM Changeset in webkit [180538] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed, EFL gardening. Mark webgl tests to crash.
Skip khmer-lao-font.html because EFL port doesn't support it.

  • platform/efl/TestExpectations:
5:34 PM Changeset in webkit [180537] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.5.7

New tag.

5:32 PM Changeset in webkit [180536] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.15.7

New tag.

5:03 PM Changeset in webkit [180535] by Brent Fulgham
  • 4 edits in trunk

WTF::WeakPtr should rename 'forgot' to 'clear' and support nullptr assignment
https://bugs.webkit.org/show_bug.cgi?id=141935

Reviewed by Myles C. Maxfield.

Source/WTF:

  • wtf/WeakPtr.h:

(WTF::WeakPtr::operator=): Added 'nullptr_t' overload.
(WTF::WeakPtr::clear): Renamed from 'forget'
(WTF::WeakPtr::forget): Deleted.

Tools:

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::TEST): Updated for 'clear' method rename, and added a few
tests for assigning from nullptr.

4:55 PM Changeset in webkit [180534] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Log using diagnostic logging which ActiveDOMObjects prevent using the PageCache
https://bugs.webkit.org/show_bug.cgi?id=141922
<rdar://problem/19923085>

Reviewed by Andreas Kling.

Log using diagnostic logging which ActiveDOMObjects prevent using the
PageCache.

  • history/PageCache.cpp:

(WebCore::logCanCacheFrameDecision):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::unsuspendableDOMObjectKey):

  • page/DiagnosticLoggingKeys.h:
4:49 PM Changeset in webkit [180533] by Chris Dumez
  • 7 edits
    2 adds in trunk/Source/WebCore

Move GeoNotifier class to its own file
https://bugs.webkit.org/show_bug.cgi?id=141918

Reviewed by Andreas Kling.

Move GeoNotifier class to its own file to make Geolocation class less
crowded.

4:24 PM Changeset in webkit [180532] by gyuyoung.kim@samsung.com
  • 15 edits in trunk/Source/WebCore

Remove unnecessary PlatformTimeRanges::create()
https://bugs.webkit.org/show_bug.cgi?id=141901

Reviewed by Filip Pizlo.

PlatformTimeRanges::create() functions have just created an instance of PlatformTimeRanges.
This functionality can be replaced with std::make_unique<> use directly.

No new tests, no behavior changes.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::buffered):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::bufferedAccountingForEndOfStream):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::NullMediaPlayerPrivate::buffered):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::seekable):

  • platform/graphics/PlatformTimeRanges.cpp:

(WebCore::PlatformTimeRanges::create): Deleted.

  • platform/graphics/PlatformTimeRanges.h:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::buffered):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::buffered):

  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::buffered):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::buffered):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::buffered):

4:22 PM Changeset in webkit [180531] by gyuyoung.kim@samsung.com
  • 10 edits in trunk/Source/WebCore

Partial clean up OwnPtr and PassOwnPtr in WebCore/platform
https://bugs.webkit.org/show_bug.cgi?id=141888

Reviewed by Filip Pizlo.

Use std::unique_ptr<> and std::make_unique<>. Besides this patch removes
unnecessary OwnPtr.h|PasSOwnPtr.h includes.

No new tests, no behavior changes.

  • platform/SharedBuffer.h:
  • platform/Supplementable.h:
  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h:

(WebCore::AudioSourceProviderGStreamer::create): Deleted.

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/TiledBackingStoreBackend.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
  • platform/gtk/GamepadsGtk.cpp:
4:17 PM Changeset in webkit [180530] by shiva.jm@samsung.com
  • 3 edits
    2 adds in trunk

Default value of HTMLSelectElement size IDL attribute should be 0.
https://bugs.webkit.org/show_bug.cgi?id=141795

Reviewed by Andreas Kling.

Source/WebCore:

Default value of HTMLSelectElement size IDL attribute should be 0.
As in spec: http://www.w3.org/html/wg/drafts/html/master/forms.html#the-select-element, also this matches the behavior of Chrome, IE and
Gecko.

Test: fast/dom/select-size.html

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::parseAttribute):

LayoutTests:

  • fast/dom/select-size-expected.txt: Added.
  • fast/dom/select-size.html: Added.
3:50 PM Changeset in webkit [180529] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Get rid of JSLexicalEnvironment::argumentsGetter
https://bugs.webkit.org/show_bug.cgi?id=141930

Reviewed by Mark Lam.

This function is unused, and the way it's written is bizarre - it's a return statement that
dominates a bunch of dead code.

  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::argumentsGetter): Deleted.

  • runtime/JSLexicalEnvironment.h:
3:44 PM Changeset in webkit [180528] by Brent Fulgham
  • 4 edits in trunk

Source/WTF:
WTF::WeakPtr should have a 'forget' method
https://bugs.webkit.org/show_bug.cgi?id=141923

Reviewed by Myles C. Maxfield.

  • wtf/WeakPtr.h:

(WTF::WeakPtr::forget): Added.

Tools:
WTF::WeakPtr should have a 'forget' method.
https://bugs.webkit.org/show_bug.cgi?id=141923

Reviewed by Myles C. Maxfield.

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::TEST): Added 'Forget' tests case.

3:26 PM Changeset in webkit [180527] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove unused activationCount and allTheThingsCount variable declarations.

Rubber stamped by Mark Lam and Michael Saboff.

  • runtime/JSLexicalEnvironment.h:
3:18 PM Changeset in webkit [180526] by saambarati1@gmail.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: BasicBlockAnnotator ranges should be inclusive of both the start and end offset
https://bugs.webkit.org/show_bug.cgi?id=141334

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype.addStyleToTextRange):

3:09 PM Changeset in webkit [180525] by ap@apple.com
  • 2 edits in trunk/Tools

build.webkit.org/dashboard CrashOnly queues should not show two green bubbles
https://bugs.webkit.org/show_bug.cgi?id=141920

Reviewed by Tim Horton.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:

(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus):
Do the same thing as we do for regular green bubbles.

3:06 PM Changeset in webkit [180524] by ap@apple.com
  • 2 edits in trunk/Tools

Bot watcher's dashboard doesn't show a popover for commit history when all commits were to another branch
https://bugs.webkit.org/show_bug.cgi?id=141925

Reviewed by Tim Horton.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._presentPopoverForRevisionRange):

3:04 PM Changeset in webkit [180523] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

Drawing an SVG image into a canvas using drawImage() ignores globalAlpha.
https://bugs.webkit.org/show_bug.cgi?id=141729.

Reviewed by Daniel Bates.

Fix a build break which is caused by http://trac.webkit.org/changeset/180511/trunk.
Two functions of GraphicsContext were made inline but they were kept WEBCORE_EXPORT.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::paintingDisabled):
(WebCore::GraphicsContext::updatingControlTints):

3:04 PM Changeset in webkit [180522] by bshafiei@apple.com
  • 2 edits in branches/safari-600.5-branch/Source/WebCore

Follow-up merge for r179877. rdar://problem/19871003

2:46 PM Changeset in webkit [180521] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.15-branch/Source/WebCore

Follow-up merge for r179877. rdar://problem/19871003

2:42 PM Changeset in webkit [180520] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Max canvas size is lower than expected
https://bugs.webkit.org/show_bug.cgi?id=141886
<rdar://problem/19729246>

Reviewed by Tim Horton.

Use the same maximum canvas area for all ports,
which bumps the iOS limit up from 4580 * 1145
to 16k * 16k.

  • html/HTMLCanvasElement.cpp: Update MaxCanvasArea.
2:29 PM Changeset in webkit [180519] by andersca@apple.com
  • 11 edits
    1 copy in trunk

Add API for fetching website data records to _WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=141926

Reviewed by Beth Dakin.

Source/WebKit2:

  • UIProcess/API/APIWebsiteDataRecord.cpp:

(API::WebsiteDataRecord::create):
(API::WebsiteDataRecord::WebsiteDataRecord):

  • UIProcess/API/APIWebsiteDataRecord.h:

Update to take a WebsiteDataRecord parameter.

  • UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:

(-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
Call down to the WebsiteDataStore.

  • UIProcess/WebsiteData/WebsiteDataRecord.h: Added.

This will be the data-container part of WebsiteDataRecord, but it's currently empty.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
Just dispatch the completion handler for now.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Add new member.

  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

Tools:

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController fetchWebsiteData:]):
Add menu item to fetch and dump website data.

2:10 PM Changeset in webkit [180518] by saambarati1@gmail.com
  • 11 edits
    2 adds in trunk/Source/JavaScriptCore

Adjust the ranges of basic block statements in JSC's control flow profiler to be mutually exclusive
https://bugs.webkit.org/show_bug.cgi?id=141095

Reviewed by Mark Lam.

Suppose the control flow of a program forms basic block A with successor block

  1. A's end offset will be the *same* as B's start offset in the current architecture

of the control flow profiler. This makes reasoning about the text offsets of
the control flow profiler unsound. To make reasoning about offsets sound, all
basic block ranges should be mutually exclusive. All calls to emitProfileControlFlow
now pass in the *start* of a basic block as the text offset argument. This simplifies
all calls to emitProfileControlFlow because the previous implementation had a
lot of edge cases for getting the desired basic block text boundaries.

This patch also ensures that the basic block boundary of a block statement
is the exactly the block's open and close brace offsets (inclusive). For example,
in if/for/while statements. This also has the consequence that for statements
like "if (cond) foo();", the whitespace preceding "foo()" is not part of
the "foo()" basic block, but instead is part of the "if (cond) " basic block.
This is okay because these text offsets aren't meant to be human readable.
Instead, they reflect the text offsets of JSC's AST nodes. The Web Inspector
is the only client of this API and user of these text offsets and it is
not negatively effected by this new behavior.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::insertBasicBlockBoundariesForControlFlowProfiler):
When computing basic block boundaries in CodeBlock, we ensure that every
block's end offset is one less than its successor's start offset to
maintain that boundaries' ranges should be mutually exclusive.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
Because the control flow profiler needs to know which functions
have executed, we can't lazily create functions. This was a bug
from before that was hidden because the Type Profiler was always
enabled when the control flow profiler was enabled when profiling
was turned on from the Web Inspector. But, JSC allows for Control
Flow profiling to be turned on without Type Profiling, so we need
to ensure the Control Flow profiler has all the data it needs.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ConditionalNode::emitBytecode):
(JSC::IfElseNode::emitBytecode):
(JSC::WhileNode::emitBytecode):
(JSC::ForNode::emitBytecode):
(JSC::ForInNode::emitMultiLoopBytecode):
(JSC::ForOfNode::emitBytecode):
(JSC::TryNode::emitBytecode):

  • jsc.cpp:

(functionHasBasicBlockExecuted):
We now assert that the substring argument is indeed a substring
of the function argument's text because subtle bugs could be
introduced otherwise.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::setStartOffset):

  • parser/Nodes.h:

(JSC::Node::setStartOffset):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseBlockStatement):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseMemberExpression):
For the various function call AST nodes, their m_position member
variable is now the start of the entire function call expression
and not at the start of the open paren of the arguments list.

  • runtime/BasicBlockLocation.cpp:

(JSC::BasicBlockLocation::getExecutedRanges):

  • runtime/ControlFlowProfiler.cpp:

(JSC::ControlFlowProfiler::getBasicBlocksForSourceID):
Function ranges inserted as gaps should follow the same criteria
that the bytecode generator uses to ensure that basic blocks
start and end offsets are mutually exclusive.

  • tests/controlFlowProfiler/brace-location.js: Added.

(foo):
(bar):
(baz):
(testIf):
(testForRegular):
(testForIn):
(testForOf):
(testWhile):
(testIfNoBraces):
(testForRegularNoBraces):
(testForInNoBraces):
(testForOfNoBraces):
(testWhileNoBraces):

  • tests/controlFlowProfiler/conditional-expression.js: Added.

(foo):
(bar):
(baz):
(testConditionalBasic):
(testConditionalFunctionCall):

  • tests/controlFlowProfiler/driver/driver.js:

(checkBasicBlock):

2:08 PM Changeset in webkit [180517] by Chris Dumez
  • 24 edits in trunk/Source

Add support for diagnostic logging messages sampling
https://bugs.webkit.org/show_bug.cgi?id=141823
<rdar://problem/19899030>

Reviewed by Andreas Kling.

Add support for diagnostic logging messages sampling to decrease the
impact of diagnostic logging on CPU usage, while still getting useful
overall results. This patch adds a ShouldSample argument to
logDiagnosticMessage*() functions and logs 5% of the messages when
sampling. Sampling is turned on for keys that are known to be verbose
(e.g. per resource load logging).

On the page load test I am tracking, CPU usage caused by diagnostic
logging went down to 0.3% of UIProcess from 2.8% with this change.

Source/WebCore:

  • history/PageCache.cpp:

(WebCore::logPageCacheFailureDiagnosticMessage):
(WebCore::logCanCachePageDecision):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:

(WebCore::logNavigation):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):

  • loader/ResourceLoader.cpp:

(WebCore::logResourceResponseSource):

  • loader/SubframeLoader.cpp:

(WebCore::logPluginRequest):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequest):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::logResourceLoaded):

  • loader/cache/CachedResource.cpp:

(WebCore::logResourceRevalidationReason):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::logMemoryCacheResourceRequest):

  • page/DiagnosticLoggingClient.h:

Source/WebKit2:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::logDiagnosticMessage):
(WebKit::NetworkProcess::logDiagnosticMessageWithResult):
(WebKit::NetworkProcess::logDiagnosticMessageWithValue):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:

(WebKit::NetworkCacheStatistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCacheStatistics::recordRetrievalFailure):
(WebKit::NetworkCacheStatistics::recordRetrievedCachedEntry):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::logDiagnosticMessage):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithResult):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithValue):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::shouldLogDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessageWithResult):
(WebKit::WebPageProxy::logDiagnosticMessageWithValue):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::willStartUserTriggeredZooming):

2:08 PM Changeset in webkit [180516] by mmirman@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

r9 is volatile on ARMv7 for iOS 3 and up.
https://bugs.webkit.org/show_bug.cgi?id=141489
rdar://problem/19432916

Reviewed by Michael Saboff.

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::calleeSaveRegisters): removed r9 from the list of ARMv7 callee save registers.

  • tests/stress/regress-141489.js: Added.

(foo):

1:56 PM Changeset in webkit [180515] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Add the necessary setupArgumentsWithExecState after bug141915
https://bugs.webkit.org/show_bug.cgi?id=141921

Reviewed by Michael Saboff.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

1:54 PM Changeset in webkit [180514] by fpizlo@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

Scopes should always be created with a previously-created symbol table rather than creating one on the fly
https://bugs.webkit.org/show_bug.cgi?id=141915

Reviewed by Mark Lam.

The main effect of this change is that pushing name scopes no longer requires creating symbol
tables on the fly.

This also makes it so that JSEnvironmentRecords must always have an a priori symbol table.

JSSegmentedVariableObject still does a hack where it creates a blank symbol table on-demand.
This is needed because that's what JSGlobalObject and all of its many subclasses want. That's
harmless; I mainly needed a prior symbol tables for JSEnvironmentRecords anyway.

  • bytecode/BytecodeList.json:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::BytecodeGenerator::emitPushCatchScope):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_push_name_scope):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_push_name_scope):

  • jit/JITOperations.cpp:

(JSC::pushNameScope):

  • jit/JITOperations.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):

  • runtime/JSCatchScope.h:

(JSC::JSCatchScope::JSCatchScope):
(JSC::JSCatchScope::create):

  • runtime/JSEnvironmentRecord.h:

(JSC::JSEnvironmentRecord::JSEnvironmentRecord):

  • runtime/JSFunctionNameScope.h:

(JSC::JSFunctionNameScope::JSFunctionNameScope):
(JSC::JSFunctionNameScope::create):

  • runtime/JSNameScope.cpp:

(JSC::JSNameScope::create):

  • runtime/JSNameScope.h:

(JSC::JSNameScope::create):
(JSC::JSNameScope::finishCreation):
(JSC::JSNameScope::JSNameScope):

  • runtime/JSSegmentedVariableObject.h:

(JSC::JSSegmentedVariableObject::finishCreation):

  • runtime/JSSymbolTableObject.h:

(JSC::JSSymbolTableObject::JSSymbolTableObject):
(JSC::JSSymbolTableObject::finishCreation): Deleted.

  • runtime/SymbolTable.h:

(JSC::SymbolTable::createNameScopeTable):

1:26 PM Changeset in webkit [180513] by andersca@apple.com
  • 4 edits
    5 copies in trunk/Source/WebKit2

Add a stubbed out _WKWebsiteDataRecord class
https://bugs.webkit.org/show_bug.cgi?id=141919

Reviewed by Beth Dakin.

Also add the corresponding API::WebsiteDataRecord C++ class. A website data record is going to represent
a set of associated websites and the types of website data that exist for said websites.

  • Shared/API/APIObject.h:
  • UIProcess/API/APIWebsiteDataRecord.cpp: Added.
  • UIProcess/API/APIWebsiteDataRecord.h: Added.
  • UIProcess/API/Cocoa/_WKWebsiteDataRecord.h: Added.
  • UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm: Added.
  • UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h: Added.
  • UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
  • WebKit2.xcodeproj/project.pbxproj:
1:05 PM Changeset in webkit [180512] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Reproducible crash in ViewGestureController::removeSwipeSnapshot()
https://bugs.webkit.org/show_bug.cgi?id=141917
<rdar://problem/19918590>

Reviewed by Brian Weinstein.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::removeSwipeSnapshot):
If the snapshot was purged and we're showing a white snapshot, we won't
be able to mark the (null) snapshot surface as volatile. Add a null check.

12:31 PM Changeset in webkit [180511] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

Drawing an SVG image into a canvas using drawImage() ignores globalAlpha.
https://bugs.webkit.org/show_bug.cgi?id=141729.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-02-23
Reviewed by Simon Fraser.

Source/WebCore:

When drawing an SVG image and the drawing context is set to be transparent,
make sure this transparency is applied to the compositing layer.

Test: svg/canvas/canvas-global-alpha-svg.html

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::setAlpha): Make setAlpha() calls the platform
function and sets 'm_state.alpha' to the input value.

(WebCore::GraphicsContext::alpha): Add a new function 'alpha()' which
returns the value of the global alpha.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContextState::GraphicsContextState): Add a new member
'alpha' to the context state since the getter function CGContextGetAlpha
is defined only in a private header file. Also move single line functions
from the source file to the header file.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::setPlatformAlpha):
(WebCore::GraphicsContext::setAlpha): Deleted.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::setPlatformAlpha):
(WebCore::GraphicsContext::setAlpha): Deleted.
Rename setAlpha() to setPlatformAlpha() in the platform files. Add setAlpha()
to the core file. setAlpha() will set the value of 'm_state.alpha' and call
setPlatformAlpha().

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::draw): If the drawing context is transparent, apply its
global alpha value to the compositing layer.

LayoutTests:

Add a new test which draws an SVG image on a canvas after setting its
globalAlpha to a value less than 1.

  • svg/canvas/canvas-global-alpha-svg-expected.html: Added.
  • svg/canvas/canvas-global-alpha-svg.html: Added.
11:27 AM Changeset in webkit [180510] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

Occasional crash in MediaPlayer::setPrivateBrowsingMode
https://bugs.webkit.org/show_bug.cgi?id=141910

Reviewed by Jer Noble.

No new tests, I was unable to reproduce the crash.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::stopPeriodicTimers): Use EveryDelayedAction instead of -1.
(WebCore::HTMLMediaElement::stop): Call clearMediaPlayer instead of just setting m_player

to NULL.

  • html/HTMLMediaElement.h: Define EveryDelayedAction.
10:53 AM Changeset in webkit [180509] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

[iOS] run-webkit-tests --leaks is broken because IOSSimulatorPort has no is_snowleopard attribute
<http://webkit.org/b/141884>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/port/leakdetector.py:

(LeakDetector._callstacks_to_exclude_from_leaks): Remove
snowleopard, lion and older leaks. Add known leak for
mavericks, but check Port.operating_system before calling
Port.is_mavericks.

  • Scripts/webkitpy/port/mac.py:

(MacPort.is_snowleopard): Delete.
(MacPort.is_lion): Delete.
(MacPort.is_mavericks): Add.

10:45 AM Changeset in webkit [180508] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Replace another straight-up cast with a toImpl call
https://bugs.webkit.org/show_bug.cgi?id=141914
rdar://problem/19913016

Reviewed by Andreas Kling.

This fixes a problem where Mail would not display message bodies.

  • UIProcess/API/Cocoa/WKConnection.mm:

(didReceiveMessage):

10:17 AM Changeset in webkit [180507] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a comment to clarify that the test was taken from the bug report, in response to
feedback from Michael Saboff and Benjamin Poulain.

  • tests/stress/regress-141883.js:
10:13 AM Changeset in webkit [180506] by fpizlo@apple.com
  • 10 edits
    1 add in trunk/Source/JavaScriptCore

Function name scope is only created on the function instance that triggered parsing rather than on every function instance that needs it
https://bugs.webkit.org/show_bug.cgi?id=141881

Reviewed by Michael Saboff.

Previously we only created the function name scope in a way that made it visible to the
function that triggered parsing/linking of the executable/codeBlock, and to the linker for
that code block. This was sort of the bare minimum for the feature to appear to work right to
synthetic tests.

There are two valid "times" to create the function name scope. Either it's created for each
JSFunction instance that needs a name scope, or it's created for each execution of such a
JSFunction. This change chooses the latter, because it happens to be the easiest to implement
with what we have right now. I opened a bug for optimizing this if we ever need to:
https://bugs.webkit.org/show_bug.cgi?id=141887.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • runtime/ArrayPrototype.cpp:

(JSC::isNumericCompareFunction):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::prepareForExecutionImpl):
(JSC::FunctionExecutable::FunctionExecutable):

  • runtime/Executable.h:

(JSC::ScriptExecutable::prepareForExecution):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::addNameScopeIfNeeded): Deleted.

  • runtime/JSFunction.h:
  • tests/stress/function-name-scope.js: Added.

(check.verify):
(check):

10:03 AM Changeset in webkit [180505] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Crash in DFGFrozenValue
https://bugs.webkit.org/show_bug.cgi?id=141883

Reviewed by Benjamin Poulain.

If a value might be a cell, then we have to have Graph freeze it rather than trying to
create the FrozenValue directly. Creating it directly is just an optimization for when you
know for sure that it cannot be a cell.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • tests/stress/regress-141883.js: Added. Hacked the original test to be faster while still crashing before this fix.
9:42 AM Changeset in webkit [180504] by ap@apple.com
  • 4 edits in trunk/Tools

build.webkit.org/dashboard should filter out commits to other branches
https://bugs.webkit.org/show_bug.cgi?id=140362

Reviewed by Tim Horton.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:

(BuildbotQueue):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._presentPopoverForPendingCommits):
(BuildbotQueueView.prototype._presentPopoverForRevisionRange):
(BuildbotQueueView.prototype._revisionContentWithPopoverForIteration):
(BuildbotQueueView.prototype.revisionContentForIteration):
(BuildbotQueueView.prototype._appendPendingRevisionCount): Deleted.
(BuildbotQueueView.prototype._popoverLinesForCommitRange): Deleted.
(BuildbotQueueView.prototype._revisionPopoverContentForIteration): Deleted.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Trac.js:

(Trac.prototype.get oldestRecordedRevisionNumber):
(Trac.prototype.commitsOnBranch):
(Trac.prototype._xmlTimelineURL):
(Trac.prototype._convertCommitInfoElementToObject):
(Trac.prototype._update):
(Trac.prototype.startPeriodicUpdates):
(Trac.prototype.loadMoreHistoricalData):
(Trac.prototype.update): Deleted.

8:43 AM Changeset in webkit [180503] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] Redundant track language notifications
https://bugs.webkit.org/show_bug.cgi?id=141908

Reviewed by Žan Doberšek.

Invoke languageChanged only if the language code actually
changed.

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):

8:06 AM Changeset in webkit [180502] by commit-queue@webkit.org
  • 2 edits in trunk

[GTK] Fails to compile with cmake 3.2.x
https://bugs.webkit.org/show_bug.cgi?id=141796

With cmake 3.2.x we have to explicitly ask for X11 otherwise the
X11_X11_LIB variable won't be set thus the X11 linker flags won't be
added and the build will fail.

Patch by Tomas Popela <tpopela@redhat.com> on 2015-02-23
Reviewed by Martin Robinson.

  • Source/cmake/OptionsGTK.cmake:
7:21 AM Changeset in webkit [180501] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] Crash when media player is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=141248

Patch by peavo@outlook.com <peavo@outlook.com> on 2015-02-23
Reviewed by Darin Adler.

A COM smart pointer is both released, and set to null.
This means that the COM Release method is called twice, causing a crash.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::endSession):

2:28 AM Changeset in webkit [180500] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebCore

[CSS Grid Layout] Remove old FIXME in RenderGrid::placeItemsOnGrid()
https://bugs.webkit.org/show_bug.cgi?id=141899

Reviewed by Sergio Villar Senin.

There was a FIXME about not re-resolving positions if the grid is grown during
auto-placement. But as the spec has changed [1] and you can only refer to the
explicit grid (even if you use for example grid-column: 1 / -1). It seems that
we can get rid of this FIXME as it's not a causing a problem anymore.

[1] http://dev.w3.org/csswg/css-grid/#grid-placement-int

No new tests (no change in behavior).

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeItemsOnGrid): Remove FIXME.

1:44 AM WebKitGTK/2.6.x edited by sergio@webkit.org
(diff)
12:42 AM Changeset in webkit [180499] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Mark tests of css3 overflow, border to ImageOnlyFailure.

  • platform/efl/TestExpectations:
12:21 AM Changeset in webkit [180498] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Add new failure tests related to attachment, editing, and compositing.

  • platform/efl/TestExpectations:
Note: See TracTimeline for information about the timeline view.