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

Timeline



Apr 25, 2016:

10:56 PM Changeset in webkit [200075] by rniwa@webkit.org
  • 46 edits in trunk

Remove the build flag for template elements
​https://bugs.webkit.org/show_bug.cgi?id=157022

Reviewed by Daniel Bates.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Removed the build flag.

  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.cpp:
  • bindings/js/JSHTMLTemplateElementCustom.cpp:

(WebCore::JSHTMLTemplateElement::content):

  • css/html.css:

(summary::-webkit-details-marker):
(template):
(bdi, output):

  • dom/ContainerNode.cpp:

(WebCore::isInTemplateContent):
(WebCore::containsConsideringHostElements):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserAppendChild):

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::getCachedLocale):
(WebCore::Document::ensureTemplateDocument):
(WebCore::Document::fonts):

  • dom/Document.h:

(WebCore::Document::setTemplateDocumentHost):
(WebCore::Document::templateDocumentHost):
(WebCore::Document::hasDisabledFieldsetElement):
(WebCore::Document::textEncoding):
(WebCore::Document::templateDocument):

  • dom/Element.cpp:

(WebCore::Element::setInnerHTML):

  • dom/Node.cpp:

(WebCore::Node::containsIncludingHostElements):
(WebCore::Node::pseudoAwarePreviousSibling):

  • dom/TemplateContentDocumentFragment.h:
  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):

  • editing/markup.cpp:

(WebCore::createFragmentForInnerOuterHTML):

  • html/HTMLTagNames.in:
  • html/HTMLTemplateElement.cpp:

(WebCore::HTMLTemplateElement::didMoveToNewDocument):

  • html/HTMLTemplateElement.h:
  • html/HTMLTemplateElement.idl:
  • html/parser/HTMLConstructionSite.cpp:

(WebCore::insert):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):
(WebCore::HTMLConstructionSite::findFosterSite):

  • html/parser/HTMLElementStack.cpp:

(WebCore::HTMLNames::isScopeMarker):
(WebCore::HTMLNames::isTableScopeMarker):
(WebCore::HTMLNames::isTableBodyScopeMarker):
(WebCore::HTMLNames::isTableRowScopeMarker):
(WebCore::HTMLElementStack::inSelectScope):
(WebCore::HTMLElementStack::hasTemplateInHTMLScope):
(WebCore::HTMLElementStack::htmlElement):

  • html/parser/HTMLElementStack.h:
  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::scan):

  • html/parser/HTMLPreloadScanner.h:
  • html/parser/HTMLStackItem.h:

(WebCore::isSpecialNode):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::isParsingTemplateContents):
(WebCore::HTMLTreeBuilder::isParsingFragmentOrTemplateContents):
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::didCreateCustomOrCallbackElement):
(WebCore::HTMLTreeBuilder::processTemplateStartTag):
(WebCore::HTMLTreeBuilder::processEndOfFileForInTemplateContents):
(WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
(WebCore::HTMLTreeBuilder::processEndTagForInCell):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacterBuffer):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
(WebCore::HTMLTreeBuilder::finished):

  • html/parser/HTMLTreeBuilder.h:
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForNode):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::instrumentingAgentsForDocument):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::startElementNs):

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

Removed the build option.

  • Scripts/webkitperl/FeatureList.pm:
10:07 PM Changeset in webkit [200074] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] ftp links crash @ WebCore::FTPDirectoryDocumentParser::appendEntry
​https://bugs.webkit.org/show_bug.cgi?id=157019
<rdar://problem/24292650>

Reviewed by Chris Dumez.

Create separate Ref<Element> object for every row element instead of reusing
one because Ref<>'s operator=() does not allow assignment after a WTFMove().

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::appendEntry):

9:29 PM Changeset in webkit [200073] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Fix text in log files autogenerated by import-w3c-tests
​https://bugs.webkit.org/show_bug.cgi?id=157021

Reviewed by Chris Dumez.

s/Webkit/WebKit/ and end each sentence with a period.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.write_import_log):

9:22 PM Changeset in webkit [200072] by rniwa@webkit.org
  • 3 edits
    57 adds
    1 delete in trunk/LayoutTests

Update template element tests
​https://bugs.webkit.org/show_bug.cgi?id=154996

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Reimported W3C tests for template elements as of d5a4c5bdf8a1837b4fcf50bbd2efd4150ddafa99.
Also moved the parser tests from html-templates to web-platform-tests/html/syntax to match the upstream directory structure.

  • html-templates: Removed.
  • html-templates/parsing-html-templates: Removed.
  • html-templates/parsing-html-templates/additions-to-foster-parenting: Removed.
  • html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-a-foster-parent-element-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-a-foster-parent-element.html: Removed.
  • html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-not-a-foster-parent-element-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-not-a-foster-parent-element.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/generating-of-implied-end-tags-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/generating-of-implied-end-tags.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-body-token-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-body-token.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-frameset-token-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-frameset-token.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-head-token-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-head-token.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-html-token-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-html-token.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/start-tag-body-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/start-tag-body.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/start-tag-html-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/start-tag-html.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/template-end-tag-without-start-one-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/template-end-tag-without-start-one.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-frameset-insertion-mode: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-frameset-insertion-mode/end-tag-frameset-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-frameset-insertion-mode/end-tag-frameset.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/template-end-tag-without-start-one-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/template-end-tag-without-start-one.html: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-table-insertion-mode: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-table-insertion-mode/end-tag-table-expected.txt: Removed.
  • html-templates/parsing-html-templates/additions-to-the-in-table-insertion-mode/end-tag-table.html: Removed.
  • html-templates/parsing-html-templates/appending-to-a-template: Removed.
  • html-templates/parsing-html-templates/appending-to-a-template/template-child-nodes-expected.txt: Removed.
  • html-templates/parsing-html-templates/appending-to-a-template/template-child-nodes.html: Removed.
  • html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context: Removed.
  • html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context-expected.txt: Removed.
  • html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context.html: Removed.
  • html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context-expected.txt: Removed.
  • html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context.html: Removed.
  • html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context-expected.txt: Removed.
  • html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context.html: Removed.
  • html-templates/parsing-html-templates/creating-an-element-for-the-token: Removed.
  • html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document-expected.txt: Removed.
  • html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document.html: Removed.
  • html-templates/resources: Removed.
  • html-templates/resources/end-template-tag-in-body.html: Removed.
  • html-templates/resources/end-template-tag-in-head.html: Removed.
  • html-templates/resources/frameset-end-tag.html: Removed.
  • html-templates/resources/head-template-contents-div-no-end-tag.html: Removed.
  • html-templates/resources/head-template-contents-table-no-end-tag.html: Removed.
  • html-templates/resources/html-start-tag.html: Removed.
  • html-templates/resources/template-child-nodes-div.xhtml: Removed.
  • html-templates/resources/template-child-nodes-nested.xhtml: Removed.
  • html-templates/resources/template-contents-attribute.html: Removed.
  • html-templates/resources/template-contents-body.html: Removed.
  • html-templates/resources/template-contents-div-no-end-tag.html: Removed.
  • html-templates/resources/template-contents-empty.html: Removed.
  • html-templates/resources/template-contents-frameset.html: Removed.
  • html-templates/resources/template-contents-head.html: Removed.
  • html-templates/resources/template-contents-html.html: Removed.
  • html-templates/resources/template-contents-nested.html: Removed.
  • html-templates/resources/template-contents-table-no-end-tag.html: Removed.
  • html-templates/resources/template-contents-text.html: Removed.
  • html-templates/resources/template-contents.html: Removed.
  • html-templates/resources/template-descendant-body.html: Removed.
  • html-templates/resources/template-descendant-frameset.html: Removed.
  • html-templates/resources/template-descendant-head.html: Removed.
  • html-templates/resources/two-templates.html: Removed.
  • html-templates/testcommon.js: Removed.
  • web-platform-tests/html/syntax: Added.
  • web-platform-tests/html/syntax/parsing: Added.
  • web-platform-tests/html/syntax/parsing/template: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-foster-parenting: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-foster-parenting/template-is-a-foster-parent-element-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-foster-parenting/template-is-a-foster-parent-element.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-foster-parenting/template-is-not-a-foster-parent-element-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-foster-parenting/template-is-not-a-foster-parent-element.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-foster-parenting/w3c-import.log: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/generating-of-implied-end-tags-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/generating-of-implied-end-tags.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/ignore-body-token-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/ignore-body-token.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/ignore-frameset-token-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/ignore-frameset-token.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/ignore-head-token-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/ignore-head-token.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/ignore-html-token-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/ignore-html-token.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/start-tag-body-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/start-tag-body.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/start-tag-html-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/start-tag-html.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/template-end-tag-without-start-one-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/template-end-tag-without-start-one.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-body-insertion-mode/w3c-import.log: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode/end-tag-frameset-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode/end-tag-frameset.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode/w3c-import.log: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-head-insertion-mode: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-head-insertion-mode/template-end-tag-without-start-one-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-head-insertion-mode/template-end-tag-without-start-one.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-head-insertion-mode/w3c-import.log: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-table-insertion-mode: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-table-insertion-mode/end-tag-table-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-table-insertion-mode/end-tag-table.html: Added.
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-table-insertion-mode/w3c-import.log: Added.
  • web-platform-tests/html/syntax/parsing/template/appending-to-a-template: Added.
  • web-platform-tests/html/syntax/parsing/template/appending-to-a-template/template-child-nodes-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/appending-to-a-template/template-child-nodes.html: Added.
  • web-platform-tests/html/syntax/parsing/template/appending-to-a-template/w3c-import.log: Added.
  • web-platform-tests/html/syntax/parsing/template/clearing-the-stack-back-to-a-given-context: Added.
  • web-platform-tests/html/syntax/parsing/template/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context.html: Added.
  • web-platform-tests/html/syntax/parsing/template/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context.html: Added.
  • web-platform-tests/html/syntax/parsing/template/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context.html: Added.
  • web-platform-tests/html/syntax/parsing/template/clearing-the-stack-back-to-a-given-context/w3c-import.log: Added.
  • web-platform-tests/html/syntax/parsing/template/creating-an-element-for-the-token: Added.
  • web-platform-tests/html/syntax/parsing/template/creating-an-element-for-the-token/template-owner-document-expected.txt: Added.
  • web-platform-tests/html/syntax/parsing/template/creating-an-element-for-the-token/template-owner-document.html: Added.
  • web-platform-tests/html/syntax/parsing/template/creating-an-element-for-the-token/w3c-import.log: Added.

LayoutTests:

  • platform/mac/TestExpectations:
9:08 PM Changeset in webkit [200071] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Constant folding of UInt32ToNumber is incorrect
​https://bugs.webkit.org/show_bug.cgi?id=157011
rdar://problem/25769641

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-25
Reviewed by Geoffrey Garen.

UInt32ToNumber should return the unsigned 32bit value of
its child. The abstract interpreter fails to do that when handling
Int52.

None of the tests caught that because the bytecode generator already
fold the operation if given a constant. If the constant is not visible
from the bytecode generator (for example because it comes from an inlined call),
then the abstract interpreter folding was producing invalid results.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • tests/stress/uint32-to-number-constant-folding.js: Added.

(uint32ToNumberMinusOne):
(uint32ToNumberMinusOnePlusInteger):
(inlineMinusOne):
(uint32ToNumberOnHiddenMinusOne):
(uint32ToNumberOnHiddenMinusOnePlusInteger):
(inlineLargeNegativeNumber1):
(inlineLargeNegativeNumber2):
(inlineLargeNegativeNumber3):
(uint32ToNumberOnHiddenLargeNegativeNumber1):
(uint32ToNumberOnHiddenLargeNegativeNumber2):
(uint32ToNumberOnHiddenLargeNegativeNumber3):

8:53 PM Changeset in webkit [200070] by mmaxfield@apple.com
  • 13 edits in trunk

[Cocoa] Guarantee FontPlatformData's m_cgFont is never nullptr
​https://bugs.webkit.org/show_bug.cgi?id=156929

Reviewed by Darin Adler.

Source/WebCore:

After some investigation, it turns out that there is no place where it is meaningful
to pass us a null CoreText font. Therefore, the CoreGraphics font is also never null.

We should simply check for these null values at the ingestion site in order to
make the guarantee internally of having non-null values.

  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::FontPlatformData): Because the pointer is never null, we
can delete the code which handles that case.

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm: Ditto.

(WebCore::webFallbackFontFamily): Deleted.
(WebCore::FontPlatformData::setFallbackCGFont): Deleted.

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Asking the
CTRun for its kCTFontAttributeName will always return non-null.

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData): Once we have a font descriptor,
CTFontCreateWithFontDescriptor() will always return non-null. We check if the font
descriptor is null elsewhere.

  • platform/mac/DragImageMac.mm: The fonts in this file are gotten by asking for the

system font, which will always return non-null.
(WebCore::fontFromNSFont):
(WebCore::widthWithFont):
(WebCore::drawAtPoint):
(WebCore::createDragImageForLink):

Source/WebKit/mac:

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:allowingFontSmoothing:]): Drawing
a string with a null font shouldn't do anything.

  • Misc/WebStringTruncator.mm: We can't truncate a string if we don't have a font

to use.
(+[WebStringTruncator centerTruncateString:toWidth:]):
(+[WebStringTruncator centerTruncateString:toWidth:withFont:]):
(+[WebStringTruncator rightTruncateString:toWidth:withFont:]):
(+[WebStringTruncator widthOfString:font:]):

Tools:

  • TestWebKitAPI/Tests/mac/StringTruncator.mm:

(TestWebKitAPI::TEST):

8:52 PM Changeset in webkit [200069] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Cloning a textarea does not clone the textarea's value
​https://bugs.webkit.org/show_bug.cgi?id=156637

Reviewed by Chris Dumez.

​https://dom.spec.whatwg.org/#concept-node-clone describes that the value
of a node shouldn't be copied when cloning the node.

  • fast/forms/checkValidity-cloneNode-crash-expected.txt:
  • fast/forms/checkValidity-cloneNode-crash.html:
8:22 PM Changeset in webkit [200068] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Heap corruption is detected when destructing JSGlobalObject
​https://bugs.webkit.org/show_bug.cgi?id=156831

Patch by Fujii Hironori <Fujii Hironori> on 2016-04-25
Reviewed by Mark Lam.

WebKit uses CRT static library on Windows. Each copy of the CRT
library has its own heap manager, allocating memory in one CRT
library and passing the pointer across a DLL boundary to be freed
by a different copy of the CRT library is a potential cause for
heap corruption.

Potential Errors Passing CRT Objects Across DLL Boundaries
<​https://msdn.microsoft.com/en-us/library/ms235460(v=vs.140).aspx>

JSGlobalObject::createRareDataIfNeeded is inlined but
JSGlobalObject::~JSGlobalObject is not. Then, the heap of
allocating JSGlobalObjectRareData is WebKit.dll, but deallocating
JavaScriptCore.dll. Adding WTF_MAKE_FAST_ALLOCATED to
JSGlobalObjectRareData ensures heap consistency of it. WTF::Lock
also needs WTF_MAKE_FAST_ALLOCATED because it is allocated from
the inlined constructor of JSGlobalObjectRareData.

Source/JavaScriptCore:

Test: fast/dom/insertedIntoDocument-iframe.html

  • runtime/JSGlobalObject.h:

Add WTF_MAKE_FAST_ALLOCATED to JSGlobalObjectRareData.

Source/WTF:

  • wtf/Lock.h: Add WTF_MAKE_FAST_ALLOCATED.
6:00 PM Changeset in webkit [200067] by Matt Baker
  • 15 edits in trunk/Source/WebInspectorUI

Web Inspector: hook up grid row filtering in the new Timelines UI
​https://bugs.webkit.org/show_bug.cgi?id=154924
<rdar://problem/24934607>

Reviewed by Timothy Hatcher.

Re-implement timeline data grid filtering that previously existed in the
navigation sidebar. This patch adds support for filter text, scope bars,
and filtering based on ruler selection.

Multi-column filter support is now part of DataGrid. The grid checks compares
filter text against cell data of type string. DataGridNode subclasses may
provide custom string data for columns that format complex objects (such
as SourceCodeLocations). Cells containing data of type number are not
considered for filtering at this time.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype.set filterText):
(WebInspector.DataGrid.prototype.get filterDelegate):
(WebInspector.DataGrid.prototype.set filterDelegate):
(WebInspector.DataGrid.prototype.filterDidChange):
Called internally by the grid whenever the filter text or delegate changes.
Also called by clients that implement a filter delegate, to inform the
grid that a custom filter has changed.

(WebInspector.DataGrid.prototype.hasCustomFilters):
(WebInspector.DataGrid.prototype.matchNodeAgainstCustomFilters):
Calls the filter delegate, if it exists, and provides a hook for
subclasses to provide custom filtering.

(WebInspector.DataGrid.prototype._applyFiltersToNode.matchTextFilter):
(WebInspector.DataGrid.prototype._applyFiltersToNode.makeVisible):
(WebInspector.DataGrid.prototype._applyFiltersToNode):
Filters data grid nodes and fires filter events as needed.
(WebInspector.DataGrid.prototype._hasFilterDelegate):
Helper function.
(WebInspector.DataGrid.prototype._updateVisibleRows):
Exclude hidden nodes from revealed rows.
(WebInspector.DataGrid.prototype._updateFilter):
Filtering entry point, called on an animation frame. Updates visible
rows if any node was filtered/unfiltered.

(WebInspector.DataGridNode):
(WebInspector.DataGridNode.prototype.get filterableData):
Gets an array of filterable strings for the node.
(WebInspector.DataGridNode.prototype.refresh):
Resets cached filterable strings.
(WebInspector.DataGridNode.prototype.filterableDataForColumn):
Can be overridden by subclasses to provide filterable text for complex
cell data, like as objects formatted as document fragments.

  • UserInterface/Views/LayoutTimelineDataGridNode.js:

(WebInspector.LayoutTimelineDataGridNode.prototype.get data):

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView):
Register grid and remove logic that has been moved to the base class.
(WebInspector.LayoutTimelineView.prototype.filterDidChange):
Update highlight after grid filter change.
(WebInspector.LayoutTimelineView.prototype._dataGridSelectedNodeChanged):
Update highlight when selection changes.
(WebInspector.LayoutTimelineView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
(WebInspector.LayoutTimelineView.prototype.treeElementDeselected): Deleted.
(WebInspector.LayoutTimelineView.prototype._dataGridFiltersDidChange): Deleted.
(WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected): Deleted.
No longer needed.

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView):
Register grid and remove logic that has been moved to the base class.
(WebInspector.NetworkTimelineView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
(WebInspector.NetworkTimelineView.prototype._dataGridFiltersDidChange): Deleted.
(WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected): Deleted.
No longer needed.

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView):
Register grid and remove logic that has been moved to the base class.
(WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected): Deleted.
No longer needed.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):
Register grid and remove logic that has been moved to the base class.
(WebInspector.RenderingFrameTimelineView.prototype.get filterStartTime):
(WebInspector.RenderingFrameTimelineView.prototype.get filterEndTime):
Convert selection indices into filter start and end times.
(WebInspector.RenderingFrameTimelineView.prototype.matchDataGridNodeAgainstCustomFilters):
Perform custom filtering on rendering frame duration.
(WebInspector.RenderingFrameTimelineView.prototype._scopeBarSelectionDidChange):
Inform grid of custom filter change.
(WebInspector.RenderingFrameTimelineView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
(WebInspector.RenderingFrameTimelineView.prototype._dataGridNodeSelected): Deleted.
No longer needed.

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WebInspector.ResourceTimelineDataGridNode.prototype.filterableDataForColumn):
Use URL string for filtering "name" column.

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.prototype.updateFilter):
Forwarding for TimelineView API.
(WebInspector.ScriptClusterTimelineView.prototype.matchDataGridNodeAgainstCustomFilters):
(WebInspector.ScriptClusterTimelineView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
Renamed to matchDataGridNodeAgainstCustomFilters.
(WebInspector.ScriptClusterTimelineView.prototype._scriptClusterViewCurrentContentViewDidChange): Deleted.
Removed FIXME comment. Updating TimelineView times is sufficient to trigger filtering.

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WebInspector.ScriptDetailsTimelineView):
Register grid and remove logic that has been moved to the base class.
(WebInspector.ScriptDetailsTimelineView.prototype._dataGridFiltersDidChange): Deleted.
(WebInspector.ScriptDetailsTimelineView.prototype._dataGridNodeSelected): Deleted.
No longer needed.

  • UserInterface/Views/ScriptTimelineDataGridNode.js:

(WebInspector.ScriptTimelineDataGridNode.prototype.filterableDataForColumn):
Use main title and subtitle strings for filtering "name" column.
(WebInspector.ScriptTimelineDataGridNode.prototype._createNameCellDocumentFragment):
(WebInspector.ScriptTimelineDataGridNode.prototype._subtitle):
Break out for use in filterableDataForColumn.

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid):
Cleanup variable names.
(WebInspector.TimelineDataGrid.prototype.hasCustomFilters):
Always true because filtering on ruler selection always occurs.
(WebInspector.TimelineDataGrid.prototype.matchNodeAgainstCustomFilters):
Match nodes against scope bar filters.
(WebInspector.TimelineDataGrid.prototype._scopeBarSelectedItemsDidChange):
Inform grid of custom filter change.
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters): Deleted.
Re-implemented as _nodeMatchesActiveScopeFilters.
(WebInspector.TimelineDataGrid.prototype._updateScopeBarForcedVisibility): Deleted.
Old UI. No longer needed.

  • UserInterface/Views/TimelineDataGridNode.js:

(WebInspector.TimelineDataGridNode.prototype.filterableDataForColumn):
Filter strings for SourceCodeLocation and CallFrame objects.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
Listen for FilterBar changes and TimelineView record filtering.
(WebInspector.TimelineRecordingContentView.prototype._filterDidChange):
Update grid filters when filter bar changes.
(WebInspector.TimelineRecordingContentView.prototype._recordWasFiltered):
Update overview when records are filtered/unfiltered.
(WebInspector.TimelineRecordingContentView.prototype.filterDidChange): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.recordWasFiltered): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters.checkTimeBounds): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
Re-implemented in DataGrid.
(WebInspector.TimelineRecordingContentView.prototype._updateTimes): Deleted.
FIXME comment removed. Filtering occurs when TimelineView times are updated.
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged): Deleted.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.get navigationItems):
Used by TimelineRecordingContentView to add scope bar items to the
lower content browser's navigation bar.

(WebInspector.TimelineView.prototype.set startTime):
(WebInspector.TimelineView.prototype.set endTime):
(WebInspector.TimelineView.prototype.set currentTime):
Update grid filter when recording times change.
(WebInspector.TimelineView.prototype.get filterStartTime):
(WebInspector.TimelineView.prototype.get filterEndTime):
Let subclasses (RenderingFrameTimelineView) provide filter start/end times.
(WebInspector.TimelineView.prototype.setupDataGrid):
Register the grid used by the TimelineView subclass, allowing the base
class to hook into common event listeners and provide boilerplate functionality.

(WebInspector.TimelineView.prototype.updateFilter):
For data grid views, updates grid filters and sets new filter text.
(WebInspector.TimelineView.prototype.matchDataGridNodeAgainstCustomFilters):
(WebInspector.TimelineView.prototype.dataGridMatchNodeAgainstCustomFilters.checkTimeBounds):
(WebInspector.TimelineView.prototype.dataGridMatchNodeAgainstCustomFilters):
DataGrid filter delegate. Lets subclasses apply custom filters first,
then filters based on ruler selection if needed.

(WebInspector.TimelineView.prototype.filterDidChange):
Hook for subclasses to respond to filter changes.
(WebInspector.TimelineView.prototype._filterTimesDidChange.delayedWork):
(WebInspector.TimelineView.prototype._filterTimesDidChange):
Helper function for coalescing ruler selection updates into a single
filter update.

(WebInspector.TimelineView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
(WebInspector.TimelineView.prototype.filterUpdated): Deleted.
No longer needed.

5:50 PM Changeset in webkit [200066] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Crash under MemoryCache::remove()
​https://bugs.webkit.org/show_bug.cgi?id=157000
<rdar://problem/23344660>

Reviewed by Andreas Kling.

MemoryCache::evictResources() was caching the number of resources ('size')
in the cache for a particular sessionID, and then proceed to call
MemoryCache::remove() 'size' times using the first item in the HashMap
each time. This was unsafe because resources may be ref'ing each other
and therefore removing one may cause other resources to get removed as
well. In such case, we would call remove() too many times and crash because
we dereferenced resources.begin()->value (with the HashMap being empty).

This patch avoids the issue by copying the resources to a Vector and
ref'ing them first, before going on to remove each one from the cache.

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::forEachSessionResource):
(WebCore::MemoryCache::evictResources):

  • loader/cache/MemoryCache.h:
5:44 PM Changeset in webkit [200065] by Joseph Pecoraro
  • 11 edits
    2 adds in trunk

Web Inspector: React.js JSXTransformer produces bogus error locations
​https://bugs.webkit.org/show_bug.cgi?id=150010
<rdar://problem/23062233>

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Show dynamically added <script> elements added to a frame as resources.
For cases where the scripts had source map resources or error messages
we have a root from which to associate them to.

  • Localizations/en.lproj/localizedStrings.js:

"Script Element %d" tree element title.

  • UserInterface/Models/Frame.js:

(WebInspector.Frame.prototype.commitProvisionalLoad):
(WebInspector.Frame.prototype.get extraScripts):
(WebInspector.Frame.prototype.addExtraScript):
Have a frame keep a list of its extra scripts.

  • UserInterface/Models/Script.js:

(WebInspector.Script):
(WebInspector.Script.prototype.get displayName):
(WebInspector.Script.prototype.get dynamicallyAddedScriptElement):
Identify dynamically added script elements and associate them
with the frame, instead of the frame's main resource.

  • UserInterface/Views/FrameTreeElement.js:

(WebInspector.FrameTreeElement.prototype.onpopulate):
(WebInspector.FrameTreeElement.prototype._extraScriptAdded):
Show named / source mapped dynamic script elements under a frame.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
Dynamically added script element Scripts will be added by the frame that
owns them.

  • UserInterface/Views/ScriptTreeElement.js:

(WebInspector.ScriptTreeElement):
Don't include a subtitle for dynamicallyAddedScriptElement, details match
the frame that owns them.

LayoutTests:

  • inspector/model/frame-extra-scripts-expected.txt: Added.
  • inspector/model/frame-extra-scripts.html: Added.

Add a test for a WebInspector.Frame's extraScripts list.

  • inspector/model/script-resource-relationship-expected.txt
  • inspector/model/script-resource-relationship.html

Add a test for a dynamicallyAddedScriptElement.
Remove debug logging.

5:44 PM Changeset in webkit [200064] by Joseph Pecoraro
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Line error widget showed in the wrong resource
​https://bugs.webkit.org/show_bug.cgi?id=150009
<rdar://problem/23062199>

Reviewed by Timothy Hatcher.

This addresses a few long standing issues:

  • IssueMessage and ConsoleMessage should not fight eachother
  • Displayed issue messages now correctly have format string formatting, e.g. console.error("Foo %s", str)
  • IssueMessage wraps a ConsoleMessage, so we don't duplicate everything
  • Gives ConsoleMessage a sourceCodeLocation (lazy)
    • Since a sourceCodeLocation can have the exact SourceCode, if it was a Script without a Resource, we can only show the error in the Script's editor.
  • UserInterface/Models/CallFrame.js:

(WebInspector.CallFrame.fromPayload):
Prefer the script identifier lookup first. And from the Script go
to a resource if possible. This allows us to distinguish a location
that should be in a Script that doesn't have a Resource when there
exists a Resource with the same URL. This will soon be the case
for dyanamic <script> elements append to a document.

  • UserInterface/Controllers/IssueManager.js:

(WebInspector.IssueManager.issueMatchSourceCode):
Consolidate all the different checks to this one function.

(WebInspector.IssueManager.prototype.issueWasAdded):
Create IssueMessages with ConsoleMessages.

(WebInspector.IssueManager.prototype.issuesForSourceCode):
Simplify now that we have the better check.

  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager.prototype.messageWasAdded):
Once a ConsoleMessage has been created (and modified parameters for us)
create the IssueMessage if it was an issue.

  • UserInterface/Models/ConsoleMessage.js:

(WebInspector.ConsoleMessage.prototype.get sourceCodeLocation):
Lazily create a source code from the best possible location. This can
be the top call frame or the url/line/column combination.

  • UserInterface/Models/IssueMessage.js:

(WebInspector.IssueMessage):
Creation and most properties just call through to a ConsoleMessage.
The type and text are Issue specific. Anything that uses location
data should use the sourceCodeLocation.

(WebInspector.IssueMessage.prototype.saveIdentityToCookie):
Fix implementation that didn't account for a null sourceCodeLocation.

(WebInspector.IssueMessage.prototype._formatTextIfNecessary):
Basic text format message formatting.

  • UserInterface/Protocol/ConsoleObserver.js:

(WebInspector.ConsoleObserver.prototype.messageAdded):
No longer call IssueMessage from the observer. Let LogManager trigger issues.

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView.createFromRepresentedObject):
(WebInspector.ContentView.resolvedRepresentedObjectForRepresentedObject):
(WebInspector.ContentView.isViewable):
An IssueMessage represented object for an IssueMessageTreeElement should be
restorable by just going to the sourceCodeLocation it references. This is
identical to a Breakpoint.

  • UserInterface/Views/IssueTreeElement.js:

(WebInspector.IssueTreeElement.prototype._updateTitles):
(WebInspector.IssueTreeElement):

  • UserInterface/Views/ResourceContentView.js:

(WebInspector.ResourceContentView.prototype._issueWasAdded):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._issueWasAdded):
(WebInspector.SourceCodeTextEditor.prototype._addIssue):
(WebInspector.SourceCodeTextEditor.prototype._reinsertAllIssues):
(WebInspector.SourceCodeTextEditor.prototype._matchesIssue): Deleted.
Update to use Issue's sourceCodeLocation or IssueManager's new APIs.

5:23 PM Changeset in webkit [200063] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/layers/no-clipping-overflow-hidden-added-after-transform.html as flaky on mac-wk1
​https://bugs.webkit.org/show_bug.cgi?id=157007

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:13 PM Changeset in webkit [200062] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Crash under WebCore::MutationObserver::deliverAllMutations()
​https://bugs.webkit.org/show_bug.cgi?id=156997
<rdar://problem/16542323>

Reviewed by Ryosuke Niwa.

The crash traces indicate that we may derefence a null pointer when
dereferencing MutationCallback::scriptExecutationContext() in
MutationObserver::canDeliver(). This can happen when the script
execution context gets destroyed as a JSMutationCallback is an
ActiveDOMObject, which is a ContextDestructionObserver.

This patch refactors the code so that MutationObserver::canDeliver()
now simply asks JSMutationCallback if it can invoke its callback.
JSMutationCallback makes this decision using
ActiveDOMCallback::canInvokeCallback() which does a proper null
check of the ScriptExecutationContext. This avoids some code
duplication and fixes the crash.

  • bindings/js/JSMutationCallback.h:
  • dom/MutationCallback.h:
  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::canDeliver):

5:12 PM Changeset in webkit [200061] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Fix a flaky test after r200032

  • fileapi/File.cpp:

(WebCore::File::lastModified): This used to return a date object which did a WTF::timeClip on the double,

but now that we're returning a raw double we need to WTF::timeClip it ourselves.

4:50 PM Changeset in webkit [200060] by ggaren@apple.com
  • 9 edits in trunk/PerformanceTests

bmalloc: Misc improvements to MallocBench
​https://bugs.webkit.org/show_bug.cgi?id=157004

Reviewed by Darin Adler.

  • MallocBench/run-malloc-benchmarks: Added --memory and --memory_warning

modes for focused memory testing.

  • MallocBench/MallocBench/Benchmark.cpp:

(Benchmark::printReport): Clarified output.

(Benchmark::currentMemoryBytes): Added compressed memory because top
does the same. (It always happens to zero in the benchmarks we run. But
this is good for sanity.)

  • MallocBench/MallocBench/CommandLine.cpp: Moved up to 8 runs to reduce

variance.

  • MallocBench/MallocBench/alloc_free.cpp:

(benchmark_alloc_free): Cycle a single allocation in order to stress
the effect of merging on calls to madvise.

  • MallocBench/MallocBench/big.cpp:

(benchmark_big): Graduated to 8kB-128kB because medium tests up to 8 and
our large allocator doesn't kick in until 64kB.

  • MallocBench/MallocBench/medium.cpp:

(benchmark_medium): Test all the way down to 1kB because our large
allocator used to service 1kB allocations and 1kB is an interesting
middle size where memory is unusually large but allocation throughput
still matters.

  • MallocBench/MallocBench/stress.cpp:

(benchmark_stress): Reduced the churn count to match stress_aligned
because this test was taking too long to complete.

  • MallocBench/MallocBench/stress_aligned.cpp:

(benchmark_stress_aligned): Our new large allocator can handle even
more absurdly large values.

4:41 PM Changeset in webkit [200059] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[Tools] whitelist all-uppercase JSTokenType enum in JavaScriptCore
​https://bugs.webkit.org/show_bug.cgi?id=156976

Patch by Caitlin Potter <​caitp@igalia.com> on 2016-04-25
Reviewed by Darin Adler.

Mitigate style-checker spam on bugs which introduce new JavaScript
token types.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_EnumState.init):
(_EnumState.process_clean_line):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(NoNonVirtualDestructorsTest.test_enum_casing):

4:39 PM Changeset in webkit [200058] by Chris Dumez
  • 8 edits in trunk/Source/WebCore

[Web IDL] Specify default values for optional parameters of type 'float' / 'unrestricted float'
​https://bugs.webkit.org/show_bug.cgi?id=156995

Reviewed by Darin Adler.

Specify default values for optional parameters of type 'float' / 'unrestricted float'
and let the bindings generator use WTF::Optional<> for the ones that do not have a
default value.

  • bindings/scripts/CodeGeneratorJS.pm:

(CanUseWTFOptionalForParameter): Deleted.

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setStrokeColor):
(WebCore::CanvasRenderingContext2D::setFillColor):
(WebCore::CanvasRenderingContext2D::setShadow):
(WebCore::CanvasRenderingContext2D::fillText):
(WebCore::CanvasRenderingContext2D::strokeText):
(WebCore::CanvasRenderingContext2D::drawTextInternal):
(WebCore::CanvasRenderingContext2D::clearShadow): Deleted.
(WebCore::normalizeSpaces): Deleted.
(WebCore::CanvasRenderingContext2D::measureText): Deleted.

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2D.idl:
  • testing/Internals.idl:
4:34 PM Changeset in webkit [200057] by Beth Dakin
  • 2 edits in trunk/Source/WebKit/mac

WebEditorClient should properly write to m_rangeForCandidates
​https://bugs.webkit.org/show_bug.cgi?id=157003
-and corresponding-
rdar://problem/25910418

Reviewed by Tim Horton.

Actually write to m_rangeForCandidates instead of declaring a local variable
of the same name. :-/

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::requestCandidatesForSelection):

4:13 PM Changeset in webkit [200056] by Brent Fulgham
  • 6 edits in trunk

Add port 4190 (managesieve) to port blacklist
​https://bugs.webkit.org/show_bug.cgi?id=156986
<rdar://problem/9119470>

Reviewed by Daniel Bates.

Source/WebCore:

Tested by security/block-test.html.

  • platform/URL.cpp:

(WebCore::portAllowed): Add 4190 to the port blacklist.

LayoutTests:

  • platform/mac/security/block-test-expected.txt
  • security/block-test-expected.txt:
  • security/block-test.html:
4:04 PM Changeset in webkit [200055] by Ryan Haddad
  • 73 edits
    1 add in trunk/LayoutTests

Rebaseline editing tests for ios-simulator-wk1

Unreviewed test gardening

  • platform/ios-simulator-wk1/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt:
  • +71 more
3:40 PM Changeset in webkit [200054] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Crash at -[WebAccessibilityObjectWrapper accessibilityAttributeValue:] + 4391
​https://bugs.webkit.org/show_bug.cgi?id=156987

Reviewed by Chris Fleizach.

Source/WebCore:

When we hit test on a slider indicator asking for the value when the parent slider's
accessibility object is not created or the parent slider has been removed, it will cause
crash. Fixed it by adding a check to see if the object is detached from the parent.

Test: accessibility/mac/slider-thumb-value-crash.html

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

  • accessibility/mac/slider-thumb-value-crash-expected.txt: Added.
  • accessibility/mac/slider-thumb-value-crash.html: Added.
3:40 PM Changeset in webkit [200053] by Simon Fraser
  • 3 edits in trunk/Tools

Fix issues with content-animation performance tests
​https://bugs.webkit.org/show_bug.cgi?id=157001

Reviewed by Sam Weinig.

Add patch content for svg-animation.html, and fix the paths in the patch so
it applies correctly.

Add the patch file to the .plan file.

  • Scripts/webkitpy/benchmark_runner/data/patches/ContentAnimation.patch:
  • Scripts/webkitpy/benchmark_runner/data/plans/content-animation.plan:
2:58 PM Changeset in webkit [200052] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

WebKitPlaybackSessionModelMediaElement should initialize the interface added by setWebPlaybackSessionInterface() with initial data
​https://bugs.webkit.org/show_bug.cgi?id=156996

Reviewed by Beth Dakin.

Notify the interface of the current values in the media element when the model is given an interface.

  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebPlaybackSessionModelMediaElement::setWebPlaybackSessionInterface):

2:38 PM Changeset in webkit [200051] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Attempt to fix a flaky test after r200032
​https://bugs.webkit.org/show_bug.cgi?id=156994

  • http/tests/local/fileapi/script-tests/file-last-modified-after-delete.js: Missed renaming this along with all the others.
2:13 PM Changeset in webkit [200050] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Crash under -[WKWebView _mayAutomaticallyShowVideoPictureInPicture] + 32 (WKWebView.mm:309)
​https://bugs.webkit.org/show_bug.cgi?id=156990
<rdar://problem/25904376>

Reviewed by Jer Noble.

In case of WebProcess crash, WebPageProxy::processDidCrash() will call resetState() which
will nullify WebPageProxy::m_videoFullscreenManager. In WebPageProxy::reattachToWebProcess(),
we then call updateViewState() before re-initializing m_videoFullscreenManager, and
updateViewState() ends up calling [WKWebView _mayAutomaticallyShowVideoPictureInPicture]
which dereferences WebPageProxy::m_videoFullscreenManager without null check. This patch
adds a null check for m_videoFullscreenManager in _mayAutomaticallyShowVideoPictureInPicture.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):

2:07 PM Changeset in webkit [200049] by Simon Fraser
  • 2 edits
    1 add in trunk/PerformanceTests

Add a content animation test that uses SVG animation.
​https://bugs.webkit.org/show_bug.cgi?id=156827

  • Animation/svg-animation.html: Added.
  • Skipped:
1:59 PM Changeset in webkit [200048] by msaboff@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Crash using @tryGetById in DFG
​https://bugs.webkit.org/show_bug.cgi?id=156992

Reviewed by Filip Pizlo.

We need to spill live registers when compiling TryGetById in DFG.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileTryGetById):

  • tests/stress/regress-156992.js: New test.

(tryMultipleGetByIds):
(test):

1:56 PM Changeset in webkit [200047] by Simon Fraser
  • 9 edits
    4 adds in trunk

Toggling animation-play-state can re-start a finished animation
​https://bugs.webkit.org/show_bug.cgi?id=156731

Reviewed by Dean Jackson.

Source/WebCore:

After an animation completed, CompositeAnimation::updateKeyframeAnimations() cleared
all state that the animation had run on the element, so changing the value of some
animation property triggered the animation to run again. This is wrong, since animation-name
still applied to the element.

Fix by keeping state for keyframe animations in the Done state in the m_keyframeAnimations
map. This allows for the removal of the index property on KeyframeAnimation.

Tests: animations/change-completed-animation-transform.html

animations/change-completed-animation.html

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::timeToNextService):

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::isAnimatingProperty):

  • page/animation/CompositeAnimation.cpp: Add animations that should stick around to AnimationNameMap,

and swap with m_keyframeAnimations at the end.
(WebCore::CompositeAnimation::updateKeyframeAnimations):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::getAnimatedStyle):

  • page/animation/KeyframeAnimation.h:

LayoutTests:

  • animations/animation-direction-reverse-expected.txt:
  • animations/animation-direction-reverse.html: This is a progression. The test was detecting a

restarted animation.

  • animations/change-completed-animation-expected.txt: Added.
  • animations/change-completed-animation-transform-expected.html: Added.
  • animations/change-completed-animation-transform.html: Added. Ref test that ensures that the final

state for normal and accelerated animations is correct.

  • animations/change-completed-animation.html: Added. Tests that changing a property doesn't trigger

another animation, by detecting a second animationstart event.

1:51 PM WebKitGTK/2.12.x edited by berto@igalia.com
(diff)
1:48 PM Changeset in webkit [200046] by berto@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK] Crashes if DISPLAY is unset
​https://bugs.webkit.org/show_bug.cgi?id=156972

Reviewed by Carlos Garcia Campos.

If DISPLAY is unset then m_display will be NULL, crashing WebKit
when XCloseDisplay is called in the PlatformDisplayX11 destructor.

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::~PlatformDisplayX11):

1:33 PM Changeset in webkit [200045] by beidson@apple.com
  • 2 edits in trunk/Tools

Tweaking IndexedDB watchlist and adding myself to it.

  • Scripts/webkitpy/common/config/watchlist:
1:07 PM Changeset in webkit [200044] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Update JS bindings test results after r200037

Unreviewed test gardening.

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):

1:06 PM Changeset in webkit [200043] by Simon Fraser
  • 8 edits
    2 adds in trunk

play-state not parsed as part of animation shorthand
​https://bugs.webkit.org/show_bug.cgi?id=156959

Reviewed by Darin Adler.

Source/WebCore:

We failed to parse animation-play-state as part of the animation shorthand, contrary
to the spec and other browsers.

Fix for both the prefixed and unprefixed properties. There is some compat risk here,
but only changing unprefixed behavior will probably lead to more author confusion.

Test: animations/play-state-in-shorthand.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseAnimationShorthand):

  • css/CSSPropertyNames.in:
  • css/StylePropertyShorthand.cpp:

(WebCore::animationShorthandForParsing): Remove the long comment which is no longer relevant
now that the behavior has been written into the spec.

LayoutTests:

  • animations/animation-shorthand-expected.txt:
  • animations/animation-shorthand.html:
  • animations/play-state-in-shorthand-expected.txt: Added.
  • animations/play-state-in-shorthand.html: Added.
  • animations/resources/animation-test-helpers.js:

(getPropertyValue):
(comparePropertyValue):

1:06 PM Changeset in webkit [200042] by Simon Fraser
  • 4 edits
    2 adds in trunk

Negative animation-delay is treated as 0s
​https://bugs.webkit.org/show_bug.cgi?id=141008

Reviewed by Daniel Bates.

Source/WebCore:

Fix keyframe animations which start in the paused state.

Explicitly move such animations from the new to the paused state, and
set m_pauseTime to 0, rather than leaving it at -1. Fix getElapsedTime()
to compute a correct time elapsed time for such animations, which takes
negative delay into account correctly.

Fix assertions which need to account for the new transition of New -> PlayStatePaused.

Test: animations/play-state-start-paused.html

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::updateStateMachine):
(WebCore::AnimationBase::getElapsedTime):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::animate):

LayoutTests:

Ref test that has an initially-paused animation on 'left' and with a
3d transform.

  • animations/play-state-start-paused-expected.html: Added.
  • animations/play-state-start-paused.html: Added.
12:49 PM Changeset in webkit [200041] by Antti Koivisto
  • 393 edits in trunk/Source/WebCore

Inline RenderStyle into RenderElement
​https://bugs.webkit.org/show_bug.cgi?id=156981

Reviewed by Andreas Kling.

We can save memory and reduce indirection of style access by inlining RenderStyle to RenderElement.

This patch also makes RenderStyle moveable and switches from std::unique_ptr<RenderStyle> to RenderStyle&&
in many places where ownership is passed.

  • Modules/plugins/PluginReplacement.h:

(WebCore::PluginReplacement::scriptObject):
(WebCore::PluginReplacement::willCreateRenderer):

  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement):
(WebCore::QuickTimePluginReplacement::createElementRenderer):

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
(WebCore::YouTubePluginReplacement::createElementRenderer):

  • Modules/plugins/YouTubePluginReplacement.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::addToMatchedPropertiesCache):
(WebCore::StyleResolver::applyPropertyToStyle):

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):
(WebCore::Document::webkitWillEnterFullScreenForElement):
(WebCore::Document::setFullScreenRenderer):

  • dom/Element.cpp:

(WebCore::Element::rendererIsNeeded):
(WebCore::Element::createElementRenderer):

  • dom/Element.h:

(WebCore::Element::copyNonAttributePropertiesFromElement):

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::resolveCustomStyle):
(WebCore::PseudoElement::didAttachRenderers):
(WebCore::PseudoElement::didRecalcStyle):

  • html/BaseButtonInputType.cpp:

(WebCore::BaseButtonInputType::appendFormData):
(WebCore::BaseButtonInputType::createInputRenderer):

  • html/BaseButtonInputType.h:
  • html/FileInputType.cpp:

(WebCore::FileInputType::handleDOMActivateEvent):
(WebCore::FileInputType::createInputRenderer):

  • html/FileInputType.h:
  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::rendererIsNeeded):
(WebCore::HTMLAppletElement::createElementRenderer):

...

12:43 PM Changeset in webkit [200040] by dbates@webkit.org
  • 3 edits in trunk/Tools

Unreviewed, rolling out r199916.
​https://bugs.webkit.org/show_bug.cgi?id=156989

Might break buildbot when master is restarted (Requested by
Srinivasan Vijayaraghava, Guest100, on #webkit).

Reverted changeset:

"Add JSC test results in json format to a buildbot log"
​https://bugs.webkit.org/show_bug.cgi?id=156920
​http://trac.webkit.org/changeset/199916

Patch by Commit Queue <​commit-queue@webkit.org> on 2016-04-25

12:37 PM Changeset in webkit [200039] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Stop listening for "media can start" notifications when media player is cleared
​https://bugs.webkit.org/show_bug.cgi?id=156985
<rdar://problem/23158505>

Reviewed by Jer Noble.

No new tests, I have not been able to create a test that reliably reproduces this.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadInternal): Add logging.
(WebCore::HTMLMediaElement::selectMediaResource): Assert and return early if there is

no media player.

(WebCore::HTMLMediaElement::clearMediaPlayer): Stop listening for can start notifications.
(WebCore::HTMLMediaElement::visibilityStateChanged): Add logging.
(WebCore::HTMLMediaElement::mediaCanStart): Ditto.

12:08 PM Changeset in webkit [200038] by sbarati@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

We don't have to parse a function's parameters every time if the function is in the source provider cache
​https://bugs.webkit.org/show_bug.cgi?id=156943

Reviewed by Filip Pizlo.

This patch makes a few changes to make parsing inner functions
faster.

First, we were always parsing an inner function's parameter
list using the templatized TreeBuiler. This means if our parent scope
was building an AST, we ended up building AST nodes for the inner
function's parameter list even though these nodes would go unused.
This patch fixes that to *always* build an inner function's parameter
list using the SyntaxChecker. (Note that this is consistent now with
always building an inner function's body with a SyntaxChecker.)

Second, we were always parsing an inner function's parameter list
even if we had that function saved in the source provider cache.
I've fixed that bug and made it so that we skip over the parsing
of a function's parameter list when it's in the source provider
cache. We could probably enhance this in the future to skip
over the entirety of a function starting at the "function"
keyword or any other start of the function (depending on
the function type: arrow function, method, etc).

This patch also renames a few fields. First, I fixed a typo
from "tocken" => "token" for a few field names. Secondly,
I renamed a field that was called 'bodyStartColumn' to
'parametersStartColumn' because the field really held the
parameter list's start column.

I'm benchmarking this as a 1.5-2% octane/jquery speedup
on a 15" MBP.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createFunctionExpr):
(JSC::ASTBuilder::createMethodDefinition):
(JSC::ASTBuilder::createArrowFunctionExpr):
(JSC::ASTBuilder::createGetterOrSetterProperty):
(JSC::ASTBuilder::createFuncDeclStatement):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lex):

  • parser/Lexer.h:

(JSC::Lexer::currentPosition):
(JSC::Lexer::positionBeforeLastNewline):
(JSC::Lexer::lastTokenLocation):
(JSC::Lexer::setLastLineNumber):
(JSC::Lexer::lastLineNumber):
(JSC::Lexer::prevTerminator):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseGeneratorFunctionSourceElements):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):

  • parser/Parser.h:

(JSC::Scope::usedVariablesContains):
(JSC::Scope::forEachUsedVariable):
(JSC::Scope::useVariable):
(JSC::Scope::copyCapturedVariablesToVector):
(JSC::Scope::fillParametersForSourceProviderCache):
(JSC::Scope::restoreFromSourceProviderCache):

  • parser/ParserFunctionInfo.h:
  • parser/SourceProviderCacheItem.h:

(JSC::SourceProviderCacheItem::endFunctionToken):
(JSC::SourceProviderCacheItem::usedVariables):
(JSC::SourceProviderCacheItem::SourceProviderCacheItem):

11:38 AM Changeset in webkit [200037] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

[Web IDL] Specify default values for parameters of type 'unsigned short'
​https://bugs.webkit.org/show_bug.cgi?id=156967

Reviewed by Darin Adler.

Specify default values for parameters of type 'unsigned short' and let
the bindings generator use WTF::Optional<> for the ones without a
default value.

  • bindings/scripts/CodeGeneratorJS.pm:

(CanUseWTFOptionalForParameter):
(GenerateParametersCheck):

  • testing/Internals.cpp:

(WebCore::Internals::layerTreeAsText): Deleted.
(WebCore::Internals::displayListForElement): Deleted.
(WebCore::Internals::replayDisplayListForElement): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:
11:38 AM Changeset in webkit [200036] by peavo@outlook.com
  • 11 edits
    2 adds in trunk/Source

[Win][IndexedDB] Fix build errors.
​https://bugs.webkit.org/show_bug.cgi?id=156713

Reviewed by Alex Christensen.

Fix compile and link errors when building with IndexedDB enabled.

Source/WebCore:

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBTransaction.cpp:
  • Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • PlatformWin.cmake:
  • platform/win/FileSystemWin.cpp:

(WebCore::hardLinkOrCopyFile):

Source/WebKit:

  • PlatformWin.cmake:

Source/WebKit/win:

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

  • storage: Added.
  • storage/WebDatabaseProvider.cpp: Added.

(WebDatabaseProvider::indexedDatabaseDirectoryPath):

11:20 AM Changeset in webkit [200035] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

2016-04-25 Geoffrey Garen <​ggaren@apple.com>

bmalloc: vm allocations should plant guard pages
​https://bugs.webkit.org/show_bug.cgi?id=156937

Rolling back in r199936 with a fix for the memory regression.

10:48 AM Changeset in webkit [200034] by mark.lam@apple.com
  • 37 edits in trunk/Source/JavaScriptCore

Renaming SpecInt32, SpecInt52, MachineInt to SpecInt32Only, SpecInt52Only, AnyInt.
​https://bugs.webkit.org/show_bug.cgi?id=156941

Reviewed by Filip Pizlo.

While looking at ​https://bugs.webkit.org/show_bug.cgi?id=153431, it was decided
that SpecInt32Only, SpecInt52Only, and AnyInt would be better names for
SpecInt32, SpecInt52, and MachineInt. Let's do a bulk rename.

This is only a renaming patch, and deletion of a piece of unused code. There are
no semantic changes.

  • bindings/ScriptValue.cpp:

(Inspector::jsToInspectorValue):

  • bytecode/SpeculatedType.cpp:

(JSC::dumpSpeculation):
(JSC::speculationToAbbreviatedString):
(JSC::speculationFromValue):
(JSC::leastUpperBoundOfStrictlyEquivalentSpeculations):
(JSC::typeOfDoubleNegation):
(JSC::typeOfDoubleRounding):

  • bytecode/SpeculatedType.h:

(JSC::isInt32Speculation):
(JSC::isInt32OrBooleanSpeculation):
(JSC::isInt32SpeculationForArithmetic):
(JSC::isInt32OrBooleanSpeculationForArithmetic):
(JSC::isInt32OrBooleanSpeculationExpectingDefined):
(JSC::isInt52Speculation):
(JSC::isAnyIntSpeculation):
(JSC::isAnyIntAsDoubleSpeculation):
(JSC::isDoubleRealSpeculation):
(JSC::isMachineIntSpeculation): Deleted.
(JSC::isInt52AsDoubleSpeculation): Deleted.
(JSC::isIntegerSpeculation): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::set):
(JSC::DFG::AbstractValue::fixTypeForRepresentation):
(JSC::DFG::AbstractValue::checkConsistency):
(JSC::DFG::AbstractValue::resultType):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::validateType):

  • dfg/DFGArgumentsUtilities.cpp:

(JSC::DFG::emitCodeToGetArgumentsArrayLength):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupToThis):
(JSC::DFG::FixupPhase::observeUseKindOnNode):
(JSC::DFG::FixupPhase::fixIntConvertingEdge):
(JSC::DFG::FixupPhase::fixIntOrBooleanEdge):
(JSC::DFG::FixupPhase::fixDoubleOrBooleanEdge):
(JSC::DFG::FixupPhase::truncateConstantToInt32):
(JSC::DFG::FixupPhase::attemptToMakeIntegerAdd):
(JSC::DFG::FixupPhase::prependGetArrayLength):
(JSC::DFG::FixupPhase::fixupChecksInBlock):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addShouldSpeculateInt32):
(JSC::DFG::Graph::addShouldSpeculateAnyInt):
(JSC::DFG::Graph::binaryArithShouldSpeculateInt32):
(JSC::DFG::Graph::binaryArithShouldSpeculateAnyInt):
(JSC::DFG::Graph::unaryArithShouldSpeculateInt32):
(JSC::DFG::Graph::unaryArithShouldSpeculateAnyInt):
(JSC::DFG::Graph::addShouldSpeculateMachineInt): Deleted.
(JSC::DFG::Graph::binaryArithShouldSpeculateMachineInt): Deleted.
(JSC::DFG::Graph::unaryArithShouldSpeculateMachineInt): Deleted.

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::initialize):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::noticeOSREntry):

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::convertToIdentityOn):

  • dfg/DFGNode.h:

(JSC::DFG::Node::asNumber):
(JSC::DFG::Node::isAnyIntConstant):
(JSC::DFG::Node::asAnyInt):
(JSC::DFG::Node::isBooleanConstant):
(JSC::DFG::Node::shouldSpeculateInt32OrBooleanExpectingDefined):
(JSC::DFG::Node::shouldSpeculateAnyInt):
(JSC::DFG::Node::shouldSpeculateDouble):
(JSC::DFG::Node::shouldSpeculateNumber):
(JSC::DFG::Node::isMachineIntConstant): Deleted.
(JSC::DFG::Node::asMachineInt): Deleted.
(JSC::DFG::Node::shouldSpeculateMachineInt): Deleted.

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::OSREntryData::dumpInContext):
(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSREntry.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSSALoweringPhase.cpp:

(JSC::DFG::SSALoweringPhase::handleNode):
(JSC::DFG::SSALoweringPhase::lowerBoundsCheck):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileArithAdd):
(JSC::DFG::SpeculativeJIT::compileArithSub):
(JSC::DFG::SpeculativeJIT::compileArithNegate):
(JSC::DFG::SpeculativeJIT::speculateInt32):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateMisc):
(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::spill):
(JSC::DFG::SpeculativeJIT::isKnownInteger):
(JSC::DFG::SpeculativeJIT::isKnownCell):
(JSC::DFG::SpeculativeJIT::isKnownNotInteger):
(JSC::DFG::SpeculativeJIT::isKnownNotNumber):
(JSC::DFG::SpeculativeJIT::isKnownNotCell):
(JSC::DFG::SpeculativeJIT::isKnownNotOther):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::blessBoolean):
(JSC::DFG::SpeculativeJIT::convertAnyInt):
(JSC::DFG::SpeculativeJIT::speculateAnyInt):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepAnyInt):
(JSC::DFG::SpeculativeJIT::convertMachineInt): Deleted.
(JSC::DFG::SpeculativeJIT::speculateMachineInt): Deleted.
(JSC::DFG::SpeculativeJIT::speculateDoubleRepMachineInt): Deleted.

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):
(JSC::DFG::isDouble):

  • dfg/DFGValidate.cpp:
  • dfg/DFGVariableAccessData.cpp:

(JSC::DFG::VariableAccessData::makePredictionForDoubleFormat):
(JSC::DFG::VariableAccessData::couldRepresentInt52Impl):
(JSC::DFG::VariableAccessData::flushFormat):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileInt52Constant):
(JSC::FTL::DFG::LowerDFGToB3::compileInt52Rep):
(JSC::FTL::DFG::LowerDFGToB3::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToB3::compileArithNegate):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
(JSC::FTL::DFG::LowerDFGToB3::lowInt32):
(JSC::FTL::DFG::LowerDFGToB3::strictInt52ToInt32):
(JSC::FTL::DFG::LowerDFGToB3::isInt32):
(JSC::FTL::DFG::LowerDFGToB3::isNotInt32):
(JSC::FTL::DFG::LowerDFGToB3::jsValueToStrictInt52):
(JSC::FTL::DFG::LowerDFGToB3::doubleToStrictInt52):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::speculateCellOrOther):
(JSC::FTL::DFG::LowerDFGToB3::speculateAnyInt):
(JSC::FTL::DFG::LowerDFGToB3::speculateDoubleRepReal):
(JSC::FTL::DFG::LowerDFGToB3::speculateDoubleRepAnyInt):
(JSC::FTL::DFG::LowerDFGToB3::speculateMachineInt): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::speculateDoubleRepMachineInt): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_profile_type):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_profile_type):

  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::isInt52):
(JSC::JSValue::isAnyInt):
(JSC::JSValue::asAnyInt):
(JSC::JSValue::isMachineInt): Deleted.
(JSC::JSValue::asMachineInt): Deleted.

  • runtime/RuntimeType.cpp:

(JSC::runtimeTypeForValue):
(JSC::runtimeTypeAsString):

  • runtime/RuntimeType.h:
  • runtime/TypeSet.cpp:

(JSC::TypeSet::dumpTypes):
(JSC::TypeSet::displayName):
(JSC::TypeSet::inspectorTypeSet):
(JSC::TypeSet::toJSONString):

10:33 AM Changeset in webkit [200033] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Fix a couple of mistakes from r199700.

Rubber-stamped by Anders Carlsson.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h: Added availability attributes to new properties.
  • WebKit2.xcodeproj/project.pbxproj: Demoted _WKExperimentalFeatureInternal.h from Private to Project.
10:31 AM Changeset in webkit [200032] by beidson@apple.com
  • 14 edits
    3 adds in trunk

Implement latest File object spec (including its constructor).
​https://bugs.webkit.org/show_bug.cgi?id=156511

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/files/file-constructor.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSDictionary.h:
  • bindings/js/JSFileCustom.cpp: Added.

(WebCore::constructJSFile):

  • fileapi/File.cpp:

(WebCore::File::File):
(WebCore::File::lastModified):
(WebCore::File::lastModifiedDate): Deleted.

  • fileapi/File.h:
  • fileapi/File.idl:

LayoutTests:

  • fast/files/file-constructor-expected.txt: Added.
  • fast/files/file-constructor.html: Added.
  • http/tests/local/fileapi/file-last-modified-after-delete-expected.txt:
  • http/tests/local/fileapi/script-tests/file-last-modified-after-delete.js:
  • http/tests/local/fileapi/file-last-modified-expected.txt:
  • http/tests/local/fileapi/script-tests/file-last-modified.js:
  • imported/blink/storage/indexeddb/blob-basics-metadata-expected.txt:
10:03 AM Changeset in webkit [200031] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

REGRESSION(r156846): Crashes with guard malloc
​https://bugs.webkit.org/show_bug.cgi?id=156984

Reviewed by Andreas Kling.

RenderElement::cachedFirstLineStyle() returns pointer to local std::unique_ptr.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::uncachedFirstLineStyle):
(WebCore::RenderElement::cachedFirstLineStyle):
(WebCore::RenderElement::firstLineStyle):
(WebCore::firstLineStyleForCachedUncachedType): Deleted.

Don't try to use a single function for the cached and uncached cases. Separate the cases into the calling functions.

9:27 AM Changeset in webkit [200030] by dbates@webkit.org
  • 4 edits
    4 adds in trunk

REGRESSION (r196012): Subresource may be blocked by Content Security Policy if it only matches 'self'
​https://bugs.webkit.org/show_bug.cgi?id=156935
<rdar://problem/25351286>

Reviewed by Darin Adler.

Source/WebCore:

Fixes an issue where subresource load may be blocked by the Content Security Policy (CSP) if its URL only
matched 'self'. In particular, the load would be blocked if initiated from a document that inherited the
origin of its owner document (e.g. the document contained in <iframe src="about:blank"></iframe>).

Following r196012 we compute and cache 'self' and its protocol on instantiation of a ContentSecurityPolicy
object for use when matching a URL against it. These cached values become out-of-date if the document
subsequently inherits the origin of its owner document. Therefore matches against 'self' will fail and
CSP will block a load if its not otherwise allowed by the policy. Previously we would compute 'self' when
parsing the definition of a source list and compute the protocol for 'self' each time we tried to match a
URL against 'self'. So, 'self' would always be up-to-date with respect to the origin of the document.

Tests: http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script.html

http/tests/security/contentSecurityPolicy/iframe-srcdoc-external-script.html

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::ContentSecurityPolicy): Extract out logic for computing and caching
'self' and its protocol into ContentSecurityPolicy::updateSourceSelf() and make use of this function.
(WebCore::ContentSecurityPolicy::updateSourceSelf): Computes and caches 'self' and its protocol with
respect to the specified SecurityOrigin.
(WebCore::ContentSecurityPolicy::applyPolicyToScriptExecutionContext): Call ContentSecurityPolicy::updateSourceSelf()
to ensure that we have an up-to-date representation for 'self' and the protocol of 'self' which can
become out-of-date if the document inherited the origin of its owner document.

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

Add tests to ensure that we match 'self' correctly in an iframe with an about:blank document.

  • http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-srcdoc-external-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-srcdoc-external-script.html: Added.
9:26 AM Changeset in webkit [200029] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/video-fullscreen-restriction-removed.html as flaky on Mac
​https://bugs.webkit.org/show_bug.cgi?id=156983

Unreviewed test gardening.

  • platform/mac/TestExpectations:
8:57 AM Changeset in webkit [200028] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199807 - Crash under WebCore::TextIterator::subrange()
​https://bugs.webkit.org/show_bug.cgi?id=156809
<rdar://problem/21102730>

Reviewed by Ryosuke Niwa.

TextIterator::rangeFromLocationAndLength() may return null. However, we
failed to do a null check before calling TextIterator::subrange() with
that range.

No new tests, do not know how to reproduce.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyAlternativeTextToRange):

8:55 AM Changeset in webkit [200027] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199781 - Potential overflow in RenderLayer::hitTestList()
​https://bugs.webkit.org/show_bug.cgi?id=156804

Reviewed by Simon Fraser.

Use size_t type instead of int to iterate over the Vector to make sure
we don't overflow. This is a speculative fix for <rdar://problem/23249479>.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTestList):

8:54 AM Changeset in webkit [200026] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199769 - [Cairo] Crash in GraphicsContext::drawFocusRing when painting is disabled
​https://bugs.webkit.org/show_bug.cgi?id=156785

Reviewed by Žan Doberšek.

This happens for example when view state changes to focus and paint is called from
FrameView::updateControlTints() with a graphics context that doesn't have a platform context. Layout test
fast/images/image-map-outline-with-scale-transform.html sometimes crashes because of this.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawFocusRing): Return early if painting is disabled.

8:53 AM Changeset in webkit [200025] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r199759 - bmalloc: fix up overflow checks
​https://bugs.webkit.org/show_bug.cgi?id=156780

Reviewed by Mark Lam.

We used to try to avoid overflow in large object math by setting a very
high limit on the largest large object. But that's a bit error-prone
since the check is far away from the math that might overflow -- and
we were missing some cases.

This patch removes the limit and instead checks at each math site.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocate):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase): Remove the limit. tryAllocateLarge
will check for overflow for us.

  • bmalloc/Chunk.h: This ASSERT was just totally wrong.
  • bmalloc/Heap.cpp:

(bmalloc::Heap::tryAllocateLarge): Check for overflow when adding.

  • bmalloc/Sizes.h:
  • bmalloc/VMAllocate.h:

(bmalloc::tryVMAllocate): Check for overflow when adding.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::tryAllocateLargeChunk): Check for overflow when adding.

8:53 AM Changeset in webkit [200024] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r199756 - Unreviewed, try to fix an ASSERT seen on the bots.

  • bmalloc/Heap.cpp: (bmalloc::Heap::tryAllocateLarge): This ASSERT is supposed to be about alignment, not size. Oops.
8:50 AM Changeset in webkit [200023] by Carlos Garcia Campos
  • 20 edits
    1 add
    10 deletes in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r199746 - bmalloc: Merge the large and xlarge allocators
​https://bugs.webkit.org/show_bug.cgi?id=156734

Reviewed by Andreas Kling.

This give us better defense against worst case memory usage:

Baseline Patch Δ

Peak Memory:

nimlang 198,132kB 181,468kB 1.09x smaller

It also eliminates inline metadata for large objects, fixing the
regression introduced in r198675, and more:

run-malloc-benchmarks Baseline:~/OpenSource/WebKitBuildBaseline/Release/ Patch:~/OpenSource/WebKitBuild/Release/

Baseline Patch Δ

Memory at End:

big 10,880kB 3,328kB 3.27x smaller
facebook 3,112kB 2,868kB
1.09x smaller
fragment --parallel 1,848kB 760kB 2.43x smaller
fragment_iterate --parallel 4,908kB 776kB
6.32x smaller
big --parallel 48,076kB 11,892kB 4.04x smaller

Overall memory use looks OK:

run-malloc-benchmarks --memory_warning Baseline:~/OpenSource/WebKitBuildBaseline/Release/ Patch:~/OpenSource/WebKitBuild/Release/

Baseline Patch Δ

Memory at End:

<arithmetic mean> 13,992kB 13,987kB 1.0x smaller

Overall throughput looks OK:

run-malloc-benchmarks Baseline:~/OpenSource/WebKitBuildBaseline/Release/ Patch:~/OpenSource/WebKitBuild/Release/

Baseline Patch Δ

Execution Time:

<arithmetic mean> 103ms 104ms ! 1.01x slower

We're a bit slower on the "all-out large allocations on all cores"
benchmark, but I think that's an OK price to pay:

Baseline Patch Δ

Execution Time:

big --parallel 125ms 136ms ! 1.09x slower

This patch net removes 1.5k lines of code. It turns out that large
allocations are rare, and free memory fragments are also rare, so the
combination is super rare, and a simple O(n) algorithm that ensures good
memory behavior is the best option.

Fun fact: In practice, the odds that the old code would save memory
were *worse* than the odds that it would contain a bug that wasted
memory. :)

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::tryAllocate): largeMax is the new xLargeMax since
xLargeMax is gone now.

(bmalloc::Allocator::allocate): I moved the rounding code into allocateLarge,
so we don't have to do it here.

(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase):
(bmalloc::Allocator::allocateXLarge): Deleted. No more XLarge case.

  • bmalloc/Allocator.h:
  • bmalloc/BeginTag.h: Removed.
  • bmalloc/BoundaryTag.h: Removed.
  • bmalloc/Chunk.h:

(bmalloc::ChunkHash::hash): Added a hash function. The best hash function
is a unique and monotonically increasing integer, and that's exactly what
we typically get from the high bits of a Chunk, since the OS allocates
Chunks at unique and increasing addresses.
(bmalloc::Chunk::boundaryTags): Deleted.
(bmalloc::Chunk::objectType): Deleted.
(bmalloc::Chunk::beginTag): Deleted.
(bmalloc::Chunk::endTag): Deleted.

  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::deallocateSlowCase): We no longer know for sure,
by looking at its bit pattern, whether a pointer is small or large.
Instead, any pointer with large alignment *might* be large, and when
we occasionally encounter such an object, we have to consult a hash
table in the Heap to find out for sure. This turns out to be just as
cheap in practice.

We don't deallocate large objects on the fast path anymore. We can't,
because large objects have out-of-line metadata now.

(bmalloc::Deallocator::deallocateXLarge): Deleted.

  • bmalloc/Deallocator.h:

(bmalloc::Deallocator::deallocateFastCase): See deallocateSlowCase.

  • bmalloc/EndTag.h: Removed.
  • bmalloc/FreeList.cpp: Removed.
  • bmalloc/FreeList.h: Removed.
  • bmalloc/Heap.cpp:

(bmalloc::Heap::allocateSmallPage): Be sure to track each chunk in
the object type map, so we can distinguish small vs large objects.

(bmalloc::Heap::deallocateSmallLine): No need to check object type
because we know object type now by virtue of being on the small object
path.

(bmalloc::Heap::splitAndAllocate): Be sure to track each chunk in
the object type map, so we can distinguish small vs large objects. Large
objects can split across chunks, so we need to add each large object's
chunk as it is allocated.

(bmalloc::Heap::tryAllocateLarge):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::isLarge):
(bmalloc::Heap::largeSize):
(bmalloc::Heap::shrinkLarge):
(bmalloc::Heap::deallocateLarge): Merged in existing XLarge logic for
large objects.

(bmalloc::Heap::scavengeXLargeObjects): Deleted.
(bmalloc::Heap::allocateXLarge): Deleted.
(bmalloc::Heap::tryAllocateXLarge): Deleted.
(bmalloc::Heap::xLargeSize): Deleted.
(bmalloc::Heap::shrinkXLarge): Deleted.
(bmalloc::Heap::deallocateXLarge): Deleted.

  • bmalloc/Heap.h:

(bmalloc::Heap::LargeObjectHash::hash):

  • bmalloc/LargeObject.h: Removed.
  • bmalloc/Map.h: Added.

(bmalloc::Map::size):
(bmalloc::Map::capacity):
(bmalloc::Map::get):
(bmalloc::Map::set):
(bmalloc::Map::remove):
(bmalloc::Map::shouldGrow):
(bmalloc::Map::shouldShrink):
(bmalloc::Map::find):
(bmalloc::Hash>::rehash): Simple hash table.

  • bmalloc/Object.h:
  • bmalloc/ObjectType.cpp:

(bmalloc::objectType):

  • bmalloc/ObjectType.h:

(bmalloc::mightBeLarge): See deallocateSlowCase.
(bmalloc::isXLarge): Deleted.

  • bmalloc/SegregatedFreeList.cpp: Removed.
  • bmalloc/SegregatedFreeList.h: Removed.
  • bmalloc/Sizes.h: Upped smallMax to 64kB. Upping to 32kB is pretty

reasonable, since sizes between 16kB and 32kB share page sizes. I went
all the way up to 64kB because the GC uses 64kB blocks, and also just
for extra padding to ensure that large allocations are indeed rare.

  • bmalloc/SortedVector.h: Removed.
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::tryAllocateLargeChunk):
(bmalloc::VMHeap::allocateSmallChunk):
(bmalloc::VMHeap::VMHeap): Deleted.
(bmalloc::VMHeap::allocateChunk): Deleted.

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::deallocateSmallPage):
(bmalloc::VMHeap::allocateLargeObject): Deleted.
(bmalloc::VMHeap::deallocateLargeObject): Deleted. Nixed all the boundary
tag logic since metadata is out of line now.

  • bmalloc/VMState.h: Removed. Instead of an abstract state, we track

the precise amount of committed physical pages at the head of a VM
range. This allows us to merge aggressively without triggering an madvise
storm most of the time.

  • bmalloc/Vector.h:

(bmalloc::Vector<T>::Vector):
(bmalloc::Vector<T>::insert):
(bmalloc::Vector<T>::remove):
(bmalloc::Vector<T>::resize): Filled out some missing helpers.

  • bmalloc/XLargeMap.cpp:

(bmalloc::XLargeMap::remove):
(bmalloc::XLargeMap::add):
(bmalloc::XLargeMap::removePhysical):
(bmalloc::XLargeMap::takeFree): Deleted.
(bmalloc::XLargeMap::addFree): Deleted.
(bmalloc::XLargeMap::addAllocated): Deleted.
(bmalloc::XLargeMap::getAllocated): Deleted.
(bmalloc::XLargeMap::takeAllocated): Deleted.
(bmalloc::XLargeMap::shrinkToFit): Deleted.
(bmalloc::XLargeMap::takePhysical): Deleted.
(bmalloc::XLargeMap::addVirtual): Deleted.

  • bmalloc/XLargeMap.h:

(bmalloc::XLargeMap::Allocation::operator<): Deleted. We don't track
object sizes anymore -- just free space. (The Heap tracks object sizes.)
We use plain old linear search for free space. (See intro.)

  • bmalloc/XLargeRange.h:

(bmalloc::XLargeRange::physicalSize):
(bmalloc::XLargeRange::setPhysicalSize):
(bmalloc::merge):
(bmalloc::XLargeRange::split):
(bmalloc::XLargeRange::vmState): Deleted.
(bmalloc::XLargeRange::setVMState): Deleted. See VMState.h.

8:47 AM Changeset in webkit [200022] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199727 - [Cairo] GraphicsContext::drawFocusRing methods are not consistent to each other
​https://bugs.webkit.org/show_bug.cgi?id=156742

Reviewed by Martin Robinson.

We are rendering the focus ring differently depending on whether a path is used or a vector of rectangles. This
is causing that some reftests fail because they assume we always render the focus ring the same way. For example
fast/images/image-map-outline-in-positioned-container.html, when rendering the test
GraphicsContext::drawFocusRing is called with a path, and when rendering the reference it's called with a vector
of rectangles, producing different results.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawFocusRing): When receiving a vector of rectangles, build a Path from the given
rectangles and call drawFocusRing() with the built path to ensure consistency.

8:46 AM Changeset in webkit [200021] by Carlos Garcia Campos
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.12

Merge r199715 - [GTK] accessibility/gtk/entry-and-password.html is failing since r194847
​https://bugs.webkit.org/show_bug.cgi?id=153062

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The changes in r194847 include using WebCore's rendering for the CapsLock indicator.
As a side effect, password inputs gained a TextControlInnerTextElement child from
the Shadow DOM. If we include that child in the accessibility tree, the child will
emit focus and text notifications that suggest the user is no longer in the control.
This can be especially problematic for screen reader users with key echo enabled
when typing in a password input. To fix this, prune TextControlInnerTextElement
children from the accessibility tree for ATK.

No new tests as existing coverage caught this regression. Also modified the
auto-fill-crash.html test whose expectations include the children count for
a text input.

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

LayoutTests:

The auto-fill-crash.html test has expectations which include the children
count for the text input. These expectations were incorrect for ATK where
accessible text inputs lack accessible text children.

  • accessibility/auto-fill-crash.html: Modified to take platform into account.
  • platform/gtk/TestExpectations: Unskipped entry-and-password.html.
  • platform/gtk/accessibility/auto-fill-crash-expected.txt: Added.
8:41 AM Changeset in webkit [200020] by Carlos Garcia Campos
  • 14 edits in releases/WebKitGTK/webkit-2.12

Merge r199703 - [GTK] Possible off-by-one in hyphenation code
​https://bugs.webkit.org/show_bug.cgi?id=156661

Patch by Martin Robinson <​mrobinson@igalia.com> on 2016-04-18
Reviewed by Michael Catanzaro.

Source/WebCore:

No new tests. This is covered by older tests.

  • platform/text/hyphen/HyphenationLibHyphen.cpp:

(WebCore::lastHyphenLocation): Fix an off by one error in hyphen location.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip a test that is now passing.
  • platform/gtk/fast/text/hyphenate-character-expected.png:
  • platform/gtk/fast/text/hyphenate-character-expected.txt:
  • platform/gtk/fast/text/hyphenate-first-word-expected.png:
  • platform/gtk/fast/text/hyphenate-first-word-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.txt:
  • platform/gtk/fast/text/hyphenate-locale-expected.png:
  • platform/gtk/fast/text/hyphenate-locale-expected.txt:
8:39 AM Changeset in webkit [200019] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.12

Merge r199696 - Remove support for X-Frame-Options in <meta>
​https://bugs.webkit.org/show_bug.cgi?id=156625
<rdar://problem/25748714>

Rubberstamped by Darin Adler.

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Revise messaging based on Darin's comments.

8:34 AM Changeset in webkit [200018] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/gtk/po

Merge r199670 - [l10n] Updated Greek translation of WebKitGTK+
​https://bugs.webkit.org/show_bug.cgi?id=156677

Patch by Tom Tryfonidis <​tomtryf@gmail.com> on 2016-04-18
Rubber-stamped by Michael Catanzaro.

  • el.po:
8:32 AM Changeset in webkit [200017] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12

Merge r199664 - Pending API Request URL is wrong after reloading
​https://bugs.webkit.org/show_bug.cgi?id=139342

Reviewed by Darin Adler.

Source/WebKit2:

It happens when reloading a web view loaded with anything but a
URL, because the bf list is not updated for those cases and
WebPageProxy::reload() is setting the current bf list item URL as
pending API request URL. This also causes that progress is
reported wrongly, because
WebPageProxy::decidePolicyForNavigationAction() resets the pending
API request URL when it's different than the requested URL. The
page load transaction causes the progress to be changed, reporting
1.0 (the previous one), but later something < 1.0 is reported
again by the progress tracker.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reload): Use the current active URL as
pending API request URL, falling back to the current bf list item
URL when empty.

Tools:

Update test case to check that the active URL should remain the
same after a reload.

  • TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp:

(TestWebKitAPI::TEST):

8:31 AM Changeset in webkit [200016] by Carlos Garcia Campos
  • 7 edits
    1 add in releases/WebKitGTK/webkit-2.12

Merge r199660 - Pending API request URL no set when loading Data, Alternate HTML or plain text
​https://bugs.webkit.org/show_bug.cgi?id=136916

Reviewed by Darin Adler.

Source/WebKit2:

Set pending API request URL for all load methods in
WebPageProxy. This ensures that right after calling those methods,
the active URL is the requested one and that
PageLoadState::isLoading() returns true.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):

Tools:

Add new test to check that active URL is the requested one right
after calling WKPage load methods.

  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::loadPlainText): Remove FIXME.
(WebViewTest::loadBytes): Ditto.
(WebViewTest::loadAlternateHTML): Ditto.

8:30 AM Changeset in webkit [200015] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12

Merge r199659 - [GTK] Menu list button doesn't use the text color from the theme
​https://bugs.webkit.org/show_bug.cgi?id=118234

Reviewed by Darin Adler.

.:

  • ManualTests/gtk/theme.html: Add a disabled combo test.

Source/WebCore:

Set the combo box color accroding to the theme when adjusting the menu list style like Mac port does.

  • rendering/RenderThemeGtk.cpp:

(WebCore::menuListColor):
(WebCore::RenderThemeGtk::adjustMenuListStyle):

8:23 AM Changeset in webkit [200014] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Tools

Merge r199653 - [GTK] Test /webkit2/WebKitWebView/mouse-target fails with overlay scrollbars
​https://bugs.webkit.org/show_bug.cgi?id=156621

Reviewed by Martin Robinson.

This is a problem of the test itself, we are using an overflow that is not actually scrollable, but that shows
scrollbar troughs when not using overlay scrollbars because it's marked as scrollable. It would be easier to
simply use the main frame scrollbars to test that and it will work no matter of scrollbars are overlay or not.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:

(testWebViewMouseTarget): Remove the div and move the mouse over the main frame scrollbar to test scrolbars hit test.

8:15 AM Changeset in webkit [200013] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/gtk/po

Merge r199637 - Localization files with empty Language: block build with gettext 0.19
​https://bugs.webkit.org/show_bug.cgi?id=133611

Reviewed by Darin Adler.

Fix the language tags. Note that the build error is not actually important here as it only
occurs with an older version of gettext, but presumably it's bad for the language tags to be
wrong.

  • as.po:
  • en_CA.po:
  • gu.po: Also correct the translation team to Gujarati.
  • hu.po:
  • id.po:
  • ko.po:
  • lv.po:
  • pa.po:
  • ru.po:
  • sl.po:
8:14 AM Changeset in webkit [200012] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/gtk/po

Merge r199629 - [GTK] [l10n] Updated Turkish translation of WebKitGTK+
​https://bugs.webkit.org/show_bug.cgi?id=156667

Patch by Muhammet Kara <​muhammetk@gmail.com> on 2016-04-16
Rubber-stamped by Michael Catanzaro.

  • tr.po:
8:13 AM Changeset in webkit [200011] by Carlos Garcia Campos
  • 1 edit
    1 add in releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/gtk/po

Merge r199624 - Submit the first version of Finnish translation
​https://bugs.webkit.org/show_bug.cgi?id=153406

Patch by Jiri Grönroos <​jiri.gronroos+l10n@iki.fi> on 2016-04-16
Rubber-stamped by Michael Catanzaro. For FINLAN.

  • fi.po: Added. Note it's pretty incomplete as of yet.
8:12 AM Changeset in webkit [200010] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/gtk/po

Merge r199623 - [GTK] [l10n] Updated Bulgarian translation of WebKitGTK+
​https://bugs.webkit.org/show_bug.cgi?id=156656

Patch by Zahari Yurukov <​zahari.yurukov@gmail.com> on 2016-04-16
Rubber-stamped by Michael Catanzaro.

  • bg.po:
6:49 AM Changeset in webkit [200009] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r199607 - ASSERT when loading github.com
​https://bugs.webkit.org/show_bug.cgi?id=156604
<rdar://problem/19890634>

Reviewed by Darin Adler.

Source/WebCore:

HTMLFormControlElement::m_isValid is a cache of the results of the valid() function.
When cloning the node, we were preserving each individual item, but not the state
of the cache. Therefore, the cache and the attributes didn't agree with each other.

Test: fast/forms/checkValidity-cloneNode-crash.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement):

LayoutTests:

  • fast/forms/checkValidity-cloneNode-crash-expected.txt: Added.
  • fast/forms/checkValidity-cloneNode-crash.html: Added.
6:42 AM Changeset in webkit [200008] by Carlos Garcia Campos
  • 8 edits
    6 moves
    4 adds
    4 deletes in releases/WebKitGTK/webkit-2.12

Merge r199605 - Remove support for X-Frame-Options in <meta>
​https://bugs.webkit.org/show_bug.cgi?id=156625
<rdar://problem/25748714>

Reviewed by Darin Adler.

Source/WebCore:

Follow RFC7034 (Section 4), which recommends that 'X-Frame-Options' be ignored when delivered as part of
a '<meta http-equiv="...">' tag. This brings us in line with Firefox, Edge, and Blink.

Tests: http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body.html

http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow.html
http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny.html
http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag.html
http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored.html

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Log error message instead of blocking the load.

LayoutTests:

Revise tests to match our desired behavior based on RFC 7034 (Section 4).

  • http/tests/security/XFrameOptions/resources/x-frame-options-deny-meta-tag-subframe-in-body.html:
  • http/tests/security/XFrameOptions/resources/x-frame-options-deny-meta-tag-subframe-parent-same-origin-deny.html:
  • http/tests/security/XFrameOptions/resources/x-frame-options-deny-meta-tag-subframe.html:
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-expected.txt: Removed.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored-expected.txt: Added.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored.html: Copied from LayoutTests/http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options.html.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options.html: Removed.
  • inspector/console/x-frame-options-message-expected.txt: Rebaselined.
  • platform/win/TestExpectations:
6:31 AM Changeset in webkit [200007] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r199599 - Mark NetworkLoad as FastAllocated
​https://bugs.webkit.org/show_bug.cgi?id=156628

Reviewed by Alex Christensen.

Mark NetworkLoad as FastAllocated for performance.

  • NetworkProcess/NetworkLoad.h:
6:30 AM Changeset in webkit [200006] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199598 - Calling SVGAnimatedPropertyTearOff::animationEnded() will crash if the SVG property is not animating
​https://bugs.webkit.org/show_bug.cgi?id=156549

Patch by Said Abou-Hallawa <​sabouhallawa@apple.com> on 2016-04-15
Reviewed by Darin Adler.

A speculative fix for a crash which may happen when calling animationEnded()
of any SVGAnimatedProperty while it is not animating.

  • svg/SVGAnimatedTypeAnimator.h:

(WebCore::SVGAnimatedTypeAnimator::executeAction):

6:27 AM Changeset in webkit [200005] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r199586 - Tail call optimizations lead to crashes on ARM Thumb + Linux
​https://bugs.webkit.org/show_bug.cgi?id=150083

Patch by Zan Dobersek <​zdobersek@igalia.com> on 2016-04-15
Reviewed by Csaba Osztrogonác.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::repatchNearCall): In case of a tail call relink to the
data location of the destination, and not the executable address. This is needed for
the ARM Thumb2 platform where both the source and destination addresses of a jump relink
must not have the bottom bit decorated, as asserted in ARMv7Assembler::relinkJump().

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall): Similarly, when linking a tail call we must link to the
address that has a non-decorated bottom bit, as asserted in ARMv7Assembler::linkJumpAbsolute().

6:13 AM Changeset in webkit [200004] by Carlos Garcia Campos
  • 8 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r199585 - Selection.deleteFromDocument should not leave a selection character
​https://bugs.webkit.org/show_bug.cgi?id=151442

Reviewed by Michael Catanzaro.

Source/WebCore:

This is a merge of Blink r172511:
​https://codereview.chromium.org/255453003

Let Selection.deleteFromDocument not delete a character when the
selection is a caret.

Selection.deleteFromDocument delete a character when the selection
is a caret.
However, current standard says that Selection.deleteFromDocument
does nothing when the selection is a caret:
​https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#dom-selection-deletefromdocument
Both IE10 and FireFox seem following the spec.

Test: imported/blink/editing/selection/deleteFromDocument-undo-crash.html

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::deleteFromDocument): Deleted.

LayoutTests:

  • editing/selection/deleteFromDocument-expected.txt:
  • editing/selection/deleteFromDocument.html:
  • imported/blink/editing/selection/deleteFromDocument-undo-crash-expected.txt: Added.
  • imported/blink/editing/selection/deleteFromDocument-undo-crash.html: Added.
  • TestExpectations: Skip imported/blink/editing/selection/deleteFromDocument-undo-crash.html in Debug.
  • platform/gtk/TestExpectations: Unskip imported/blink/editing/selection/deleteFromDocument-crash.html.
  • platform/win/TestExpectations: Ditto.
6:08 AM Changeset in webkit [200003] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r199561 - CrashTracer: com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::CachedResource::addClientToSet + 27
​https://bugs.webkit.org/show_bug.cgi?id=156602
<rdar://problem/18921091>

Reviewed by Simon Fraser.

Source/WebCore:

The CSS property list-style-image is inherited, so a transition on a parent
might cause a transition on a child. On that child, the value might be between
two generated crossfade images which haven't yet resolved, causing a crash.

Test: transitions/crossfade-transition.html

  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::blend): Return null if there are no cached images.

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc): If we don't have an actual image to blend between, fall
out to the default case.

LayoutTests:

Tests that an animation between two inherited crossfade elements will not crash.

  • transitions/crossfade-transition-expected.txt: Added.
  • transitions/crossfade-transition.html: Added.
6:04 AM Changeset in webkit [200002] by Carlos Garcia Campos
  • 5 edits
    6 adds
    2 deletes in releases/WebKitGTK/webkit-2.12

Merge r199553 - Allow listbox content and scrollbar to intrude padding area.
​https://bugs.webkit.org/show_bug.cgi?id=128489

Reviewed by Myles C. Maxfield.

Source/WebCore:

Originally when the RenderListBox::controlClipRect method was implemented (see [1]), it used
to allow its content (<option>'s) to intrude padding to get rendered. Overlay scrollbars were also
allowed to paint over the padding area, if necessary.

[2] changed this behavior to restrict list-box'es content within the content box rect (excluding padding and border).

This had two consequences:
1) it made WebKit disallow list-box' content to intrude the padding area, diverging from other vendors.
like Firefox and Chrome.
2) Since overlay scrollbar might get painted over the padding area, if any, [2] could result
in the scrollbar being clipped out if padding-right is set (or padding-left in case of RTL content).

Patch changed WebKit back so that it allows list-box' content and overlay scrollbars to intrude the
padding area, matching other browsers vendors

[1] ​https://trac.webkit.org/changeset/18819/trunk/WebCore/rendering/RenderListBox.cpp
[2] ​https://trac.webkit.org/changeset/19037/trunk/WebCore/rendering/RenderListBox.cpp

Tests: fast/forms/listbox-selection-3.html

fast/forms/listbox-padding-clip-selected.html
fast/forms/listbox-padding-clip-expected-mismatch.html (renamed from listbox-padding-clip-overlay-expected.html)
fast/forms/listbox-padding-clip-overlay-expected-mismatch.html (renamed from listbox-padding-clip-expected.html)

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::numVisibleItems): changed to allow list-box items to get rendered on the padding-bottom area.
This matches Firefox and Chrome.
(WebCore::RenderListBox::listIndexAtOffset): relax the check for a given list-box item at a specific offset in the vertical axis.
This means if an list-box item has its content painted into the padding-bottom area, it will be actionable by mouse clicking.
This matches Firefox and Chrome.
(WebCore::RenderListBox::controlClipRect): clips list-box content against the padding box rect rather than the content box rect,
to allow its list-box items' content intrude the padding area.
This matches Firefox and Chrome.

LayoutTests:

  • fast/forms/listbox-selection-3-expected.txt: Added.
  • fast/forms/listbox-selection-3.html: Added.
  • fast/forms/listbox-padding-clip-selected.html: Added.
  • fast/forms/listbox-padding-clip-selected-expected.html: Added.
  • fast/forms/listbox-padding-clip-expected-mismatch.html: Renamed from listbox-padding-clip-overlay-expected.html.
  • fast/forms/listbox-padding-clip-overlay-expected-mismatch.html: Renamed from listbox-padding-clip-expected.html.
6:04 AM Changeset in webkit [200001] by Carlos Garcia Campos
  • 1 edit
    4 adds in releases/WebKitGTK/webkit-2.12/LayoutTests

Merge r199086 - Test listbox clipping to contents rect
​https://bugs.webkit.org/show_bug.cgi?id=156265

Reviewed by Simon Fraser.

These tests create some <select><option></option></select>s with padding.
These list boxes use the zapfino "f" character (because it draws wildly
far outside of its layout box) to create a case where text inside the list
box would naturally intersect with the padding. This overflow should be
clipped so that the padding is undisturbed.

  • fast/forms/listbox-padding-clip-expected.html: Added.
  • fast/forms/listbox-padding-clip-overlay-expected.html: Added.
  • fast/forms/listbox-padding-clip-overlay.html: Added.
  • fast/forms/listbox-padding-clip.html: Added.
  • platform/ios-simulator/TestExpectations: Skip on iOS
5:54 AM Changeset in webkit [200000] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199552 - Collapsed border cache invalidation can lead to O(n2) during style resolve
​https://bugs.webkit.org/show_bug.cgi?id=156570

Reviewed by Darin Adler.

RenderTable::invalidateCollapsedBorders traverses all cells. It is called when table cell border changes.
This can result in O(n2) during style resolve.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):
(WebCore::RenderTable::invalidateCollapsedBorders):

For cell border style change invalidate the hasEmptyCollapsedBorder bits only for the neighbouring cells.
They are the only ones that can be affected.

  • rendering/RenderTable.h:

(WebCore::RenderTable::collapsedBordersAreValid):
(WebCore::RenderTable::collapsedEmptyBorderIsPresent):
(WebCore::RenderTable::currentBorderValue):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::styleDidChange):

5:50 AM Changeset in webkit [199999] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r199516 - Text on compositing layer with negative letter-spacing is truncated.
​https://bugs.webkit.org/show_bug.cgi?id=156550
<rdar://problem/24212140>

Reviewed by Antti Koivisto.

Negative letter-spacing affects the right edge of content's visual overflow (for both RTL and LTR).
This is similar to how normal line layout adjusts it at InlineFlowBox::addTextBoxVisualOverflow().

Source/WebCore:

Test: fast/text/negative-letter-spacing-visual-overflow.html

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::computeOverflow):
(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::collectFlowOverflow):

LayoutTests:

  • fast/text/negative-letter-spacing-visual-overflow-expected.html: Added.
  • fast/text/negative-letter-spacing-visual-overflow.html: Added.
5:48 AM Changeset in webkit [199998] by Carlos Garcia Campos
  • 7 edits
    4 adds in releases/WebKitGTK/webkit-2.12

Merge r199512 - Non-resizable text field looks resizable
​https://bugs.webkit.org/show_bug.cgi?id=152271

Reviewed by Darin Adler.

Source/WebCore:

The 'resizability' of an HTML element is controlled by its 'resize' CSS property value.
By default it is 'none', but certain HTML elements, including <textarea>, have it
set to 'both' by default (defined in html.css). These values mean no resize at all, and
resizable in both vertical and horizontal axis, respectively.
Additionally, 'vertical' and 'horizontal' values are also valid.

Problem here is that the way WebKit handles the 'resize' property on single line
input elements (e.g. <input>) is different than other engines (read Gecko, Blink and Presto):

  • Match: WebKit, Firefox, Presto and Blink all force single line input elements to be non-resizable,

regardless of either the 'resize' properly is set or not.

  • Mismatch: WebKit is the only engine that actually paints the resize control on single line

input elements, even it having no effect.

On WebKit, this happens because the 'resize' property is wrongly implemented as 'inheritable',
differently from other engines. In the way WebKit contructs its RenderTree, 'resize' property
ends up spilling out of <input> and entering its shadow representation, carrying the 'resize'
property on.

Patch fixes this by making the 'resize' properly be non-inherited, matching other vendors
and the spec [1].

[1] ​https://drafts.csswg.org/css-ui/#resize

Tests: fast/css/resize-not-inherited.html

fast/css/resize-single-line-input-no-paint.html

  • rendering/style/RenderStyle.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):

  • rendering/style/StyleRareInheritedData.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

  • fast/css/resize-not-inherited-expected.html: Added.
  • fast/css/resize-not-inherited.html: Added.
  • fast/css/resize-single-line-input-no-paint-expected.html: Added.
  • fast/css/resize-single-line-input-no-paint.html: Added.
5:36 AM Changeset in webkit [199997] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199385 - Fixed uninitialization of Node::DataUnion with GCC 4.8.
​https://bugs.webkit.org/show_bug.cgi?id=156507

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-12
Reviewed by Michael Catanzaro.

This change fixes run time crashes caused by access to uninitialized
memory in Node::renderer().

No new tests needed.

  • dom/Node.h:
5:17 AM Changeset in webkit [199996] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r199313 - fast/loader/opaque-base-url.html crashing during mac and ios debug tests
​https://bugs.webkit.org/show_bug.cgi?id=156179
<rdar://problem/25507719>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Navigate to about:blank if the provided src of an iframe/frame cannot be
resolved to a valid URL.

Test: fast/loader/iframe-src-invalid-url.html

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::requestFrame):

LayoutTests:

  • fast/loader/iframe-src-invalid-url-expected.txt: Added.
  • fast/loader/iframe-src-invalid-url.html: Added.
5:14 AM Changeset in webkit [199995] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r199304 - REGRESSION (r193857): Text selection causes text to disappear.
​https://bugs.webkit.org/show_bug.cgi?id=156448
rdar://problem/25578952

Reviewed by Simon Fraser.

Apparently when the end position of the selection range is smaller than the start position, we need
to repaint the entire text as it indicates selection clearing.

Source/WebCore:

Test: fast/text/text-disappear-on-deselect.html

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintText):

LayoutTests:

  • fast/text/text-disappear-on-deselect-expected.html: Added.
  • fast/text/text-disappear-on-deselect.html: Added.
5:11 AM Changeset in webkit [199994] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199278 - Fixed compilation of JPEGImageDecoder with libjpeg v9.
​https://bugs.webkit.org/show_bug.cgi?id=156445

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-09
Reviewed by Michael Catanzaro.

ICU defines TRUE and FALSE macros, breaking libjpeg v9 headers.

No new tests needed.

  • platform/image-decoders/jpeg/JPEGImageDecoder.h:
5:01 AM Changeset in webkit [199993] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199243 - Timing attack on SVG feComposite filter circumvents same-origin policy
​https://bugs.webkit.org/show_bug.cgi?id=154338

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-04-08
Reviewed by Oliver Hunt.

Ensure the FEComposite arithmetic filter is clamping the resulted color
components in a constant time.

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::clampByte):
(WebCore::computeArithmeticPixels):

4:57 AM Changeset in webkit [199992] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r199204 - Clearing the application cache doesn't work.
​https://bugs.webkit.org/show_bug.cgi?id=156354
rdar://problem/22369239

Patch by Jeremy Jones <​jeremyj@apple.com> on 2016-04-07
Reviewed by Brady Eidson.

Use the correct "ApplicationCache" directory.
Delete the caches, not just the entries.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):

4:21 AM Changeset in webkit [199991] by Carlos Garcia Campos
  • 11 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r199181 - Wheel event callback removing the window causes crash in WebCore.
​https://bugs.webkit.org/show_bug.cgi?id=150871
<rdar://problem/23418283>

Reviewed by Simon Fraser.

Source/WebCore:

Null check the FrameView before using it, since the iframe may have been removed
from its parent document inside the event handler.

The new test triggered a cross-load side-effect, where wheel event filtering wasn't
reset between page loads. Fix by calling clearLatchedState() in EventHandler::clear(),
which resets the filtering.

Since the Frame destructor invokes EventHandler::clear, which invokes MainFrame methods,
we run the risk of attempting to dereference destroyed MainFrame elements of the current
Frame object. Instead, clear the EventHandler in the MainFrame destructor.

Finally, confirm that the mainFrame member is not being destroyed in the handful of
places that might attempt to access the mainFrame during object destruction (essentially
cleanup methods).

Test: fast/events/wheel-event-destroys-frame.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear): Protect against accessing mainFrame content during destruction.

  • page/EventHandler.cpp:

(WebCore::EventHandler::clear): Call 'clearLatchedState' instead of endFilteringDeltas.
(WebCore::EventHandler::clearLatchedState): Null-check the filter before calling it.

  • page/Frame.cpp:

(WebCore::Frame::~Frame): Do not call 'setView' in the destructor for a MainFrame.
(WebCore::Frame::setView): Check for a null event handler before invoking it.
(WebCore::Frame::setMainFrameWasDestroyed): Added. Mark that the MainFrame
member of the Frame is being destroyed (if the current Frame is a MainFrame) and clear
the EventHandler member so that it doesn't attempt to access mainFrame content.
(WebCore::Frame::mainFrame): When accessing the mainFrame member, assert that the
mainFrame is not being destroyed.

  • page/MainFrame.cpp:

(WebCore::MainFrame::~MainFrame): Set the m_recentWheelEventDeltaFilter to nullptr to
prevent attempts to access it during object destruction. Call the new 'setMainFrameWasDestroyed'
method to reset eventHandler and mark the MainFrame as being in the process of destruction.

  • page/WheelEventDeltaFilter.cpp:

(WebCore::WheelEventDeltaFilter::filteredDelta): Add logging.

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformCompleteWheelEvent): Add null check.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo): Add logging.

LayoutTests:

  • fast/events/wheel-event-destroys-frame-expected.txt: Added.
  • fast/events/wheel-event-destroys-frame.html: Added.
  • platform/ios-simulator/TestExpectations: Skip wheel-event test on iOS.
4:21 AM Changeset in webkit [199990] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199155 - FrameView::qualifiesAsVisuallyNonEmpty() returns false when loading a Google search results page before search results are loaded, even though the header is visible
​https://bugs.webkit.org/show_bug.cgi?id=156339
<rdar://problem/24491381>

Reviewed by Andreas Kling.

Jeff's testing indicates lowering the document height threshold improves things visually during page loading.

  • page/FrameView.cpp:

(WebCore::FrameView::qualifiesAsVisuallyNonEmpty):

Lower document height threshold to from 200 to 48 pixels.

3:59 AM Changeset in webkit [199989] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199116 - CRASH in AudioDestinationNode::render()
​https://bugs.webkit.org/show_bug.cgi?id=156308
<rdar://problem/25468815>

Reviewed by Eric Carlson.

AudioDestinationNode::render() will crash when passed in a zero-length frame count. Rather than get into
this bad state, ASSERT() and bail out early in this case.

Also, address the situation in AudioDestinationIOS::render which can cause this 0-frame count to occur.

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::render):

  • platform/audio/ios/AudioDestinationIOS.cpp:

(WebCore::AudioDestinationIOS::render):

3:32 AM Changeset in webkit [199988] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.12

Merge r199110 - REGRESSION(r195463): [GTK] accessibility/roles-computedRoleString.html and accessibility/roles-exposed.html failing
​https://bugs.webkit.org/show_bug.cgi?id=153696

Reviewed by Chris Fleizach.

Source/WebCore:

The failures were due to always mapping style format groups to GroupRole, even for
RenderInline objects. The fix is to expose inline style format groups as InlineRole,
add handling of GroupRole style groups to the ATK code, and InlineRole style groups
to the Mac code.

No new tests because we have sufficient coverage. Updated roles-computedRoleString.html
to reflect new exposure.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):

LayoutTests:

Now that RenderInline style format groups are exposed as InlineRole, there is
no longer a corresponding computed role for ins, samp, and var elements. Updated
the roles-computedRoleString.html test and expectations accordingly. Also added
the now-correct results for Gtk for both of the previously-failing tests.

  • accessibility/roles-computedRoleString-expected.txt: Updated.
  • accessibility/roles-computedRoleString.html: Updated.
  • platform/gtk/TestExpectations: Unskip the two tests which are now passing.
  • platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Updated.
3:30 AM Changeset in webkit [199987] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12

Merge r199107 - Implement operator== and operator!= for Optional<>
​https://bugs.webkit.org/show_bug.cgi?id=156266

Reviewed by Anders Carlsson.
Source/WTF:

Implement non-member operator== and operator!= variants for Optional<>.

  • wtf/Optional.h:

(WTF::operator==):
(WTF::operator!=):

Tools:

  • TestWebKitAPI/Tests/WTF/Optional.cpp:

(TestWebKitAPI::TEST):

3:26 AM Changeset in webkit [199986] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from TextTrack
​https://bugs.webkit.org/show_bug.cgi?id=156899

Reviewed by Chris Dumez.

No behavior changes.

  • html/track/TextTrack.idl: Marking cue and region parameter as nullable.

Also marking cues and activeCues as nullable attributes.

3:23 AM Changeset in webkit [199985] by youenn.fablet@crf.canon.fr
  • 13 edits
    3 adds in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from File API interfaces
​https://bugs.webkit.org/show_bug.cgi?id=156898

Reviewed by Chris Dumez.

Source/WebCore:

Making FileReaderSync API API throwing a TypeError in case of null parameters, in lieu of a NOT_FOUND_ERR.
Making FileReader API taking nullable parameters as a temporary fix.

Test: fast/files/workers/worker-file-reader-sync-bad-parameter.html

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::processOutgoingFrameQueue): Updated to cope with FileReaderLoader::start taking a Blob&.

  • fileapi/FileReader.cpp:

(WebCore::FileReader::readAsArrayBuffer): Updated to cope with readInternal taking a Blob&.
(WebCore::FileReader::readAsBinaryString): Ditto.
(WebCore::FileReader::readAsText): Ditto.
(WebCore::FileReader::readAsDataURL): Ditto.
(WebCore::FileReader::readInternal): Updated to cope with FileReaderLoader::start taking a Blob&.

  • fileapi/FileReader.h:
  • fileapi/FileReader.idl: Marking the readXX methods as taking a nullable blob parameter to keep compatibility, at least temporarily.
  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start): It now takes a Blob& as input.

  • fileapi/FileReaderLoader.h:
  • fileapi/FileReaderSync.cpp:

(WebCore::FileReaderSync::readAsArrayBuffer): Taking a Blob& as input.
(WebCore::FileReaderSync::readAsBinaryString): Ditto.
(WebCore::FileReaderSync::readAsText): Ditto.
(WebCore::FileReaderSync::readAsDataURL): Ditto.
(WebCore::FileReaderSync::startLoading) Ditto.

  • fileapi/FileReaderSync.h:

(WebCore::FileReaderSync::readAsText): Ditto.

  • fileapi/FileReaderSync.idl:

LayoutTests:

Checking FileReaderSync send method in case of null or undefined blob parameter.
worker-read-blob-sync.html and worker-read-file-sync check the case of badly typed parameters.
In all cases, TypeError is thrown.

  • fast/files/workers/resources/worker-file-reader-sync-bad-parameter.js: Added.

(test):

  • fast/files/workers/worker-file-reader-sync-bad-parameter-expected.txt: Added.
  • fast/files/workers/worker-file-reader-sync-bad-parameter.html: Added.
  • fast/files/workers/worker-read-blob-sync-expected.txt: Rebasing expectation.
  • fast/files/workers/worker-read-file-sync-expected.txt: Ditto.
3:08 AM Changeset in webkit [199984] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199113 - Add ASSERT_WITH_SECURITY_IMPLICATION when a float box is referenced by multiple RootInlineBoxes.
​https://bugs.webkit.org/show_bug.cgi?id=156297
<rdar://problem/25580844>

Reviewed by Brent Fulgham.

See ​http://trac.webkit.org/changeset/199101

No change in functionality.

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::appendFloatingObjectToLastLine):
(WebCore::RenderBlockFlow::reattachCleanLineFloats):
(WebCore::RenderBlockFlow::determineStartPosition):

3:07 AM Changeset in webkit [199983] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r199101 - ASSERTION FAILED: !floatingObject->originatingLine() in WebCore::RenderBlockFlow::linkToEndLineIfNeeded
​https://bugs.webkit.org/show_bug.cgi?id=153001

Reviewed by Dan Bernstein.

  1. Float boxes are always attached to the line where we see them first.
  2. Float box can only be attached to one line.
  3. RenderBlockFlow can perform partial layout on dirty lines only.

In certain cases, the last dirty line can "pull up" float boxes from the first clean line.
It simply means that due to some layout changes on previous lines now we see those floats on this last dirty line first.
If after placing the float we still find it on the same position, the line below is still considered clean.
Source/WebCore:

Remove the float box from its original line if the line above already placed it.

Test: fast/block/float/float-moves-between-lines.html

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

(WebCore::RenderBlockFlow::reattachCleanLineFloats):
(WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange): Deleted.

LayoutTests:

Remove the float box from its original line if the line above already placed it.

  • fast/block/float/float-moves-between-lines-expected.txt: Added.
  • fast/block/float/float-moves-between-lines.html: Added.
3:03 AM Changeset in webkit [199982] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/gtk/po

Merge r199100 - [GTK] [l10n] Updated Italian translation of WebKitGTK+
​https://bugs.webkit.org/show_bug.cgi?id=156283

Patch by Milo Casagrande <​milo@milo.name> on 2016-04-06
Rubber-stamped by Michael Catanzaro.

  • it.po:
2:54 AM Changeset in webkit [199981] by Manuel Rego Casasnovas
  • 5 edits
    2 adds in trunk

[css-grid] Fix grid-template-columns|rows computed style with content alignment
​https://bugs.webkit.org/show_bug.cgi?id=156793

Reviewed by Darin Adler.

Source/WebCore:

Computed style of grid-template-columns and grid-template-rows properties
was including the distribution offset because of content alignment.
We should subtract that offset, like we do for the case of gaps,
when we're calculating the computed style.

Test: fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetBetweenTracks):
(WebCore::RenderGrid::populateGridPositions): Deleted FIXME.

  • rendering/RenderGrid.h:

LayoutTests:

  • fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment-expected.txt: Added.
  • fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html: Added.
2:50 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
2:49 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
2:46 AM Changeset in webkit [199980] by fred.wang@free.fr
  • 19 edits
    8 adds
    4 deletes in trunk

Refactor RenderMathMLMenclose.
​https://bugs.webkit.org/show_bug.cgi?id=155019

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-25
Reviewed by Sergio Villar Senin.

Source/WebCore:

Tests: mathml/presentation/menclose-notation-equivalence.html

mathml/presentation/menclose-notation-values.html

We rewrite RenderMathMLMenclose so that layout functions correctly override the
behavior of RenderMathMLRow. We try and rely on the draft of the MathML in HTML5
implementation note, to make easier to get consistency with other rendering engines
in the future. All notations are now drawn with GraphicContext functions instead of
mixing them with CSS style. To save memory space, the list of known notations are
now saved on a short integer using bit masks instead of a vector of string names.
Finally, we remove support for the radical notation so that we no longer need to
create an anonymous RenderMathMLRoot.

  • mathml/MathMLMencloseElement.cpp: Remove code for some special notations and just

reimplement parsing of the notation attribute.
(WebCore::MathMLMencloseElement::MathMLMencloseElement): By default, the notation is longdiv.
(WebCore::MathMLMencloseElement::parseAttribute): By default, the list of notation is empty.
If there is no notation attribute, the default value longdiv is used.
Otherwise, we parse the notation attribute and add each notation, using some equivalences
for box, actuarial and madruwb.
(WebCore::MathMLMencloseElement::isPresentationAttribute): Deleted. No need to define
specific style for some notation.
(WebCore::MathMLMencloseElement::finishParsingChildren): Deleted. No need to add an
anonymous square root.
(WebCore::MathMLMencloseElement::collectStyleForPresentationAttribute): Deleted. No need to
define specific style for some notation.
(WebCore::MathMLMencloseElement::longDivLeftPadding): Deleted. RenderMathMLMenclose uses an
arbitrary size instead of measure a glyph.

  • mathml/MathMLMencloseElement.h: Define simple bit mask for each notation, add a short

integer to store the list of notations together with helper functions. Remove old code.

  • rendering/mathml/RenderMathMLMenclose.cpp: Rewrite RenderMathMLMenclose so that layout

functions correctly override the behavior of RenderMathMLRow.
(WebCore::RenderMathMLMenclose::RenderMathMLMenclose): Init m_ascent to 0.
(WebCore::RenderMathMLMenclose::ruleThickness): For now, we use the fallback value used by
for other bars. We may refine that in the future.
(WebCore::RenderMathMLMenclose::getSpaceAroundContent): Helper function to retrieve the
space to add around the content, depending on the notations specified. Note that for
notation circle, this spacing depends on the content size.
(WebCore::RenderMathMLMenclose::computePreferredLogicalWidths): Reimplement this function.
This is just adding left/right spacing around the content.
(WebCore::RenderMathMLMenclose::layoutBlock): Reimplement this function. We do the normal
RenderMathMLRow layout, adjust spacing and child position and
calculate m_ascent and m_contentRect.
(WebCore::RenderMathMLMenclose::firstLineBaseline): Implement this function.
We just return m_ascent.
(WebCore::drawLine): Helper function to draw a line using strokePath.
(WebCore::RenderMathMLMenclose::paint): We reimplement this function to draw
all notations using GraphicContext.
(WebCore::RenderMathMLMenclose::addChild): Deleted. No need to manage anonymous renderers.
(WebCore::RenderMathMLMenclose::updateLogicalHeight): Deleted. Height is now calculated
in layoutBlock.
(WebCore::RenderMathMLMenclose::checkNotationalValuesValidity): Deleted.

  • rendering/mathml/RenderMathMLMenclose.h: Update member definitions.
  • rendering/mathml/RenderMathMLRoot.cpp: We no longer need anonymous roots.

(WebCore::RenderMathMLRoot::RenderMathMLRoot): Deleted.

  • rendering/mathml/RenderMathMLRoot.h: We no longer need anonymous roots.
  • rendering/mathml/RenderMathMLRow.cpp: Allow to get the exact metrics of the chid row,

for use in RenderMathMLRoot.
(WebCore::RenderMathMLRow::computeLineVerticalStretch): rename parameters.
(WebCore::RenderMathMLRow::layoutRowItems): Set parameters to the final ascent, descent and
logical width of the chid row. Set the temporary logical width for RenderMathMenclose before
laying the children out.
(WebCore::RenderMathMLRow::layoutBlock): Rename parameters ; add a dummy logicalWidth
parameter.

  • rendering/mathml/RenderMathMLRow.h: Make some functions accessible or overridable by

RenderMathMLRoot. Make layoutRowItems return the final ascent, descent and logical width
after the chid row is laid out.

  • rendering/mathml/RenderMathMLSquareRoot.cpp: We no longer need anonymous roots.

(WebCore::RenderMathMLSquareRoot::RenderMathMLSquareRoot): Deleted.
(WebCore::RenderMathMLSquareRoot::createAnonymousWithParentRenderer): Deleted.

  • rendering/mathml/RenderMathMLSquareRoot.h: We no longer need anonymous roots.

LayoutTests:

  • mathml/presentation/menclose-notation-attribute-set1.html: Removed.

This is replaced with menclose-notation-values.

  • mathml/presentation/menclose-notation-attribute-set1-expected.txt: Removed.

This is replaced with menclose-notation-values.

  • mathml/presentation/menclose-notation-attribute-set2-expected-mismatch.html: Removed.

This is replaced with menclose-notation-values.

  • mathml/presentation/menclose-notation-attribute-set2.html: Removed.

This is replaced with menclose-notation-values.

  • mathml/presentation/menclose-notation-values.html: Added.

This test verifies the rendering of various menclose notations.

  • mathml/presentation/menclose-notation-equivalence.html: Added.

This test verifies some equivalence for the notation attribute value.

  • mathml/presentation/menclose-notation-equivalence-expected.html: Added.
  • mathml/presentation/menclose-notation-radical.html: Update the test now that support for

the radical notation is removed.

  • mathml/presentation/menclose-notation-radical-expected.html: ditto.
  • platform/gtk/mathml/presentation/menclose-notation-default-longdiv-expected.png: Update

reference due to small changes in longdiv implementation.

  • platform/gtk/mathml/presentation/menclose-notation-default-longdiv-expected.txt: ditto.
  • platform/mac/mathml/presentation/menclose-notation-default-longdiv-expected.png: ditto.
  • platform/mac/mathml/presentation/menclose-notation-default-longdiv-expected.txt: ditto.
  • platform/ios-simulator/mathml/presentation/menclose-notation-default-longdiv-expected.txt: ditto
  • platform/gtk/mathml/presentation/menclose-notation-values-expected.png: Added.
  • platform/gtk/mathml/presentation/menclose-notation-values-expected.txt: Added.
  • platform/mac/mathml/presentation/menclose-notation-values-expected.png: Added.
  • platform/mac/mathml/presentation/menclose-notation-values-expected.txt: Added.
  • platform/ios-simulator/mathml/presentation/menclose-notation-values-expected.txt: Added.
12:39 AM Changeset in webkit [199979] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.12

Merge r199099 - REGRESSION(r196629): Messages text size only changes for sending text, conversation text size does not change
​https://bugs.webkit.org/show_bug.cgi?id=156287
<rdar://problem/24264756>

Reviewed by Andreas Kling.

Source/WebCore:

  • css/RuleFeature.cpp:

(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::makeAttributeSelectorKey):

Include attribute value to the key. Otherwise we may deduplicate selectors that are not indentical.

(WebCore::RuleFeatureSet::collectFeatures):
(WebCore::RuleFeatureSet::add):

Use HashMap::ensure().

  • css/RuleFeature.h:

LayoutTests:

  • fast/css/style-invalidation-attribute-change-descendants-expected.txt:
  • fast/css/style-invalidation-attribute-change-descendants.html:
12:07 AM WebKitGTK/Gardening/Calendar edited by Carlos Garcia Campos
(diff)
12:04 AM Changeset in webkit [199978] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Minor refactoring in RenderMathMLOperator
​https://bugs.webkit.org/show_bug.cgi?id=156906

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-25
Reviewed by Martin Robinson.

No new tests, this is only minor refactoring that does not change the behavior.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::getGlyphAssemblyFallBack):
We rename the "state" integer to an "expected" enum indicating the next expected part.
(WebCore::RenderMathMLOperator::paintGlyph): We add a missing dot at the end of a sequence.
We also replace ceil(x+1) with ceil(x)+1 to get rid of the temporary variable.

Apr 24, 2016:

11:34 PM Changeset in webkit [199977] by Hunseop Jeong
  • 3 edits in trunk/Source/WebKit2

[EFL] Update the ewk_settings_offline_web_application_cache_enabled_get() expected value after r199854.
​https://bugs.webkit.org/show_bug.cgi?id=156968

Reviewed by Gyuyoung Kim.

  • UIProcess/API/C/WKPreferencesRef.h: Update the comment.
  • UIProcess/API/efl/tests/test_ewk2_settings.cpp:

(TEST_F):

10:59 PM Changeset in webkit [199976] by Chris Dumez
  • 19 edits
    1 delete in trunk/Source/WebCore

[Web IDL] Specify default values for boolean parameters
​https://bugs.webkit.org/show_bug.cgi?id=156964

Reviewed by Darin Adler.

Specify default values for boolean parameters in our IDL files and
let the bindings generator use WTF::Optional<> for the ones without
a default value.

  • CMakeLists.txt:
  • Modules/indexeddb/IDBKeyRange.cpp:
  • Modules/indexeddb/IDBKeyRange.h:
  • Modules/indexeddb/IDBKeyRange.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSDOMTokenListCustom.cpp: Removed.

We no longer need these custom bindings as the bindings generator
will now provide the implementation with an Optional<bool>, given
that the parameter has no default value.

  • bindings/scripts/CodeGeneratorJS.pm:

(CanUseWTFOptionalForParameterType): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_method_with_optional_boolean):
(webkit_dom_test_obj_method_with_optional_boolean_is_false):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBoolean):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalse):

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj methodWithOptionalBoolean:]):
(-[DOMTestObj methodWithOptionalBooleanIsFalse:]):

  • bindings/scripts/test/TestObj.idl:
  • dom/Document.h:
  • dom/Document.idl:
  • dom/Element.idl:
  • dom/EventTarget.idl:
  • html/DOMTokenList.idl:
10:56 PM Changeset in webkit [199975] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Some media tests have been failed after bumping gstreamer ver.

Unreviewed EFL gardening. Mark failing tests to timeout or failure.

  • platform/efl/TestExpectations:
8:09 PM Changeset in webkit [199974] by Matt Baker
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't sort by name/source code location columns in Timeline data grids
​https://bugs.webkit.org/show_bug.cgi?id=156965
<rdar://problem/25898716>

Reviewed by Timothy Hatcher.

Add support for sorting SourceCodeLocation objects to TimelineDataGrid,
and include a grid delegate so that views can extend sorting logic for
other document fragment columns.

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView):
(WebInspector.NetworkTimelineView.prototype.dataGridSortComparator):
Sort "name" column by display name first, then resource URL.

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WebInspector.ScriptDetailsTimelineView):
(WebInspector.ScriptDetailsTimelineView.prototype.dataGridSortComparator):
Sort "name" column by display name first, then subtitle.

  • UserInterface/Views/ScriptTimelineDataGridNode.js:

(WebInspector.ScriptTimelineDataGridNode.prototype.get subtitle):
Make subtitle accessible externally for sorting.
(WebInspector.ScriptTimelineDataGridNode.prototype._createNameCellDocumentFragment):
(WebInspector.ScriptTimelineDataGridNode):

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid):
(WebInspector.TimelineDataGrid.prototype.get sortDelegate):
(WebInspector.TimelineDataGrid.prototype.set sortDelegate):
Fire a SortChanged event if the delegate changed and the grid is sorted.
(WebInspector.TimelineDataGrid.prototype._sort):
If a sort delegate exists, and it returns a numeric value, skip the
default compare.

(WebInspector.TimelineDataGrid.prototype._sortComparator):
Add support for sorting SourceCodeLocation columns.

6:40 PM Changeset in webkit [199973] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, revert part of r199970 that shouldn't have been committed.

  • web-platform-tests/IndexedDB/idbfactory_open9.htm:
6:17 PM WebKitIDL edited by Chris Dumez
Drop [Default] (diff)
6:03 PM Changeset in webkit [199972] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Error when selecting a bar in the Frames timeline
​https://bugs.webkit.org/show_bug.cgi?id=156960
<rdar://problem/25897955>

Reviewed by Timothy Hatcher.

Fixes timeline grid node selection when record selected in the overview.
Adds general purpose findNode method to DataGrid.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.findNode):
Basic find function for locating a grid node in linear time.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._recordSelected):
Remove tree outline references, call generic select method.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.selectRecord):
If a data grid was set, deselect current selection and select the node
associated with the timeline record.

5:59 PM Changeset in webkit [199971] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Events in JavaScript & Events timeline have no profile children
​https://bugs.webkit.org/show_bug.cgi?id=156627
<rdar://problem/25749740>

Reviewed by Timothy Hatcher.

ProfileNodeDataGridNode should handle populate events when expanded.
This was previously done by ProfileNodeTreeElement, which is no longer
used in the Timelines tab.

  • UserInterface/Views/ProfileDataGridNode.js:

(WebInspector.ProfileDataGridNode.prototype._updateChildrenForModifiers):
(WebInspector.ProfileDataGridNode.prototype._populate):
(WebInspector.ProfileDataGridNode):
DataGridNode sets shouldRefreshChildren to false after populating
child nodes. No need to track with a separate flag.

  • UserInterface/Views/ProfileNodeDataGridNode.js:

(WebInspector.ProfileNodeDataGridNode):
(WebInspector.ProfileNodeDataGridNode.prototype._populate):

5:27 PM Changeset in webkit [199970] by Chris Dumez
  • 23 edits in trunk

Autogenerated IDBFactory.open() does the wrong thing if you pass an explicit 'undefined' as the second argument
​https://bugs.webkit.org/show_bug.cgi?id=156939

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Re-sync tests from upstream b1818929.

  • IndexedDB-private-browsing/idbfactory_open9-expected.txt:
  • IndexedDB-private-browsing/idbfactory_open9.html:
  • web-platform-tests/IndexedDB/idbfactory_open9-expected.txt:
  • web-platform-tests/IndexedDB/idbfactory_open9.htm:

Source/WebCore:

As per WebIDL, if undefined is passed by JS for an optional parameter then
we should use its default value if it has one, or use the special value
"missing":
​http://heycam.github.io/webidl/#es-overloads (step 10.4)

Our bindings generator was already mapping undefined to the parameter's
default value when present. However, it was missing the notion of
"missing" value when there no default value. This patch adds supports
for its by passing Optional<>(Nullopt) to the implementation in such
case. This means that the implementation will need to use WTF::Optional<>
type for parameters that do not have a default value. Thankfully though,
in most cases, we will be able to specify a default value in the IDL
so cases where we will need to use WTF::Optional<> will actually be
rare.

To avoid having to do too much refactoring in this patch, the support
for WTF::Optional is currently blacklisted for most IDL types. I will
gradually stop blacklisting each type in follow-up patches, as I either:

  • Add default parameter values in our IDL (preferred)
  • Use WTF::Optional<> in our implementation (when we cannot specify a default value).

This patch fixes a bug with IDBFactory.open()'s second parameter (version)
for which undefined should not throw and indicate that the version
should not be changed. We now use WTF::Optional in the implementation to
distinguish this case and not throw.

No new tests, existing tests were updated / rebaselined.

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::open):
(WebCore::IDBFactory::openInternal): Deleted.

  • Modules/indexeddb/IDBFactory.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldUseWTFOptionalForParameterType):
(GenerateParametersCheck):

  • fileapi/Blob.idl:
  • inspector/InspectorIndexedDBAgent.cpp:

LayoutTests:

Update / rebaseline existing test now that passing undefined as second parameter to
IDBFactory.open() no longer throws.

  • storage/indexeddb/intversion-bad-parameters-expected.txt:
  • storage/indexeddb/intversion-bad-parameters-private-expected.txt:
  • storage/indexeddb/resources/intversion-bad-parameters.js:

(deleteSuccess):

10:23 AM Changeset in webkit [199969] by Chris Dumez
  • 145 edits in trunk

[WebIDL] Drop [Default] WebKit-IDL extended attribute
​https://bugs.webkit.org/show_bug.cgi?id=156955

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline some tests now that a different exception type is thrown
for some of our APIs when passing null.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Drop [Default] WebKit-IDL extended attribute in favor of the standard
WebIDL syntax for parameters' default value.

Here is what it looks like:
[Default=NullString] optional DOMString a -> optional DOMString a = null
[Default=NullString] optional DOMString? a -> optional DOMString? a = null
[Default=Undefined] optional DOMString a -> optional DOMString a = "undefined"
[Default=Undefined] optional DOMString? a -> optional DOMString? a = null
[Default=Undefined] optional long a -> optional long a = 0
[Default=Undefined] optional bool a -> optional bool a = false
[Default=Undefined] optional unrestricted double a -> optional unrestricted double a = NaN
[Default=Undefined] optional unrestricted float a -> optional unrestricted float a = NaN
[Default=Undefined] optional sequence<DOMString> a -> optional sequence<DOMString> a = []

These do not cause any Web-Exposed behavior change. However, when getting
rid of [Default] started passing more parameters by derefence instead of
pointer (as is expected for parameters not marked as nullable). As a result,
I had to mark a few parameters as nullable in the IDL to maintain the
previous behavior. In some cases, the implementation was already throwing
when passing null. In such cases, I have not marked the type as nullable
so that the generated bindings now throw the exception instead of our
implementation code. In some cases, the exception being thrown is now
different. This is why some of the layout tests had to be rebaselined.

No new tests, existing tests have been rebaselined. No significant Web
exposed behavior change is expected from this patch, beside exceptions
type sometimes being different.

  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/gamepad/deprecated/GamepadList.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/mediastream/RTCStatsResponse.idl:
  • Modules/notifications/Notification.idl:
  • Modules/speech/SpeechSynthesisUtterance.idl:
  • Modules/webaudio/AudioNode.idl:
  • Modules/websockets/WebSocket.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/IDLParser.pm:

(parseDefault):
(parseDefaultValue):

  • bindings/scripts/test/TestInterface.idl:
  • bindings/scripts/test/TestNamedConstructor.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestOverrideBuiltins.idl:
  • css/CSSKeyframesRule.idl:
  • css/CSSMediaRule.idl:
  • css/CSSPrimitiveValue.idl:
  • css/CSSRuleList.idl:
  • css/CSSStyleDeclaration.idl:
  • css/CSSStyleSheet.idl:
  • css/CSSSupportsRule.idl:
  • css/CSSValueList.idl:
  • css/MediaList.idl:
  • css/MediaQueryList.idl:
  • css/MediaQueryListListener.idl:
  • css/StyleMedia.idl:
  • css/StyleSheetList.idl:
  • css/WebKitCSSFilterValue.idl:
  • css/WebKitCSSMatrix.idl:
  • css/WebKitCSSTransformValue.idl:
  • dom/ClientRectList.idl:
  • dom/Comment.idl:
  • dom/CompositionEvent.idl:
  • dom/CustomEvent.h:
  • dom/CustomEvent.idl:
  • dom/DOMImplementation.idl:
  • dom/DOMStringList.idl:
  • dom/DataTransferItem.idl:
  • dom/DataTransferItemList.idl:
  • dom/DeviceMotionEvent.idl:
  • dom/DeviceOrientationEvent.idl:
  • dom/Document.cpp:

(WebCore::Document::adoptNode):

  • dom/Document.idl:
  • dom/Element.cpp:

(WebCore::Element::setAttributeNode):
(WebCore::Element::setAttributeNodeNS):
(WebCore::Element::removeAttributeNode):
(WebCore::Element::parseAttributeName): Deleted.

  • dom/Element.h:
  • dom/Element.idl:
  • dom/Event.idl:
  • dom/HashChangeEvent.idl:
  • dom/KeyboardEvent.idl:
  • dom/MessageEvent.idl:
  • dom/MouseEvent.idl:
  • dom/MutationEvent.idl:
  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::setNamedItem):
(WebCore::NamedNodeMap::setNamedItemNS):
(WebCore::NamedNodeMap::item): Deleted.

  • dom/NamedNodeMap.h:
  • dom/NamedNodeMap.idl:
  • dom/Node.idl:
  • dom/NodeFilter.idl:
  • dom/NonElementParentNode.idl:
  • dom/OverflowEvent.idl:
  • dom/Range.idl:
  • dom/Text.idl:
  • dom/TextEvent.idl:
  • dom/TouchEvent.idl:
  • dom/UIEvent.idl:
  • dom/WheelEvent.idl:
  • html/DOMFormData.idl:
  • html/HTMLAllCollection.idl:
  • html/HTMLAudioElement.idl:
  • html/HTMLCanvasElement.idl:
  • html/HTMLCollection.idl:
  • html/HTMLDocument.idl:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::insertAdjacentElement):
(WebCore::contextElementForInsertion): Deleted.

  • html/HTMLElement.h:
  • html/HTMLElement.idl:
  • html/HTMLFormControlsCollection.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLOptionElement.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTableElement.idl:
  • html/HTMLTableRowElement.idl:
  • html/HTMLTableSectionElement.idl:
  • html/HTMLTextAreaElement.idl:
  • html/ImageData.idl:
  • html/canvas/CanvasGradient.idl:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/DOMPath.idl:
  • html/canvas/OESVertexArrayObject.idl:
  • page/DOMSelection.cpp:

(WebCore::DOMSelection::extend):
(WebCore::DOMSelection::getRangeAt): Deleted.

  • page/DOMSelection.h:
  • page/DOMSelection.idl:
  • page/DOMWindow.idl:
  • page/History.idl:
  • page/Performance.idl:
  • page/WindowTimers.idl:
  • plugins/DOMMimeTypeArray.idl:
  • plugins/DOMPlugin.idl:
  • plugins/DOMPluginArray.idl:
  • storage/StorageEvent.idl:
  • svg/SVGAnimationElement.idl:
  • svg/SVGDocument.idl:
  • svg/SVGElement.idl:
  • svg/SVGFEDropShadowElement.idl:
  • svg/SVGFEGaussianBlurElement.idl:
  • svg/SVGFEMorphologyElement.idl:
  • svg/SVGFilterElement.idl:
  • svg/SVGGraphicsElement.idl:
  • svg/SVGMarkerElement.idl:
  • svg/SVGPathElement.idl:
  • svg/SVGSVGElement.idl:
  • svg/SVGTests.idl:
  • svg/SVGTextContentElement.idl:
  • xml/DOMParser.idl:
  • xml/XMLSerializer.cpp:

(WebCore::XMLSerializer::serializeToString):

  • xml/XMLSerializer.h:
  • xml/XMLSerializer.idl:
  • xml/XPathEvaluator.idl:
  • xml/XPathExpression.idl:
  • xml/XPathNSResolver.idl:
  • xml/XPathResult.idl:
  • xml/XSLTProcessor.idl:

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:

LayoutTests:

Rebaseline some tests now that a different exception type is thrown
for some of our APIs when passing null.

  • editing/selection/extend-expected.txt:
  • fast/dom/Element/attr-param-typechecking-expected.txt:
  • fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt:
  • fast/dynamic/insertAdjacentElement-expected.txt:
10:07 AM Changeset in webkit [199968] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Optimize JSON.parse string fast path
​https://bugs.webkit.org/show_bug.cgi?id=156953

Reviewed by Mark Lam.

This patch further optimizes the string parsing fast path.
Previously, we generated the WTF::String to hold the ownership of the token's string.
And always copied the token in LiteralParser side.
Instead, we hold the ownership of the token String by the StringBuilder in LiteralParser::Lexer,
and remove the processing in the string parsing fast path.
This patch gives us stable 1 - 2.5% improvement in Kraken json-parse-financial.

Baseline Modified

json-parse-financial 41.383+-0.248 40.894+-0.189 definitely 1.0120x faster

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::tryJSONPParse):
(JSC::LiteralParser<CharType>::Lexer::lex):
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
(JSC::LiteralParser<CharType>::parse):
(JSC::LiteralParser<CharType>::Lexer::lexString): Deleted.

  • runtime/LiteralParser.h:

(JSC::LiteralParser::tryLiteralParse):
(JSC::LiteralParser::Lexer::currentToken):
(JSC::LiteralParser::Lexer::LiteralParserTokenPtr::LiteralParserTokenPtr):
(JSC::LiteralParser::Lexer::LiteralParserTokenPtr::operator->):

10:05 AM Changeset in webkit [199967] by fpizlo@apple.com
  • 27 edits
    5 adds in trunk

[INTL] Implement String.prototype.localeCompare in ECMA-402
​https://bugs.webkit.org/show_bug.cgi?id=147607

Patch by Filip Pizlo <​fpizlo@apple.com> and Andy VanWagoner <​thetalecrafter@gmail.com> on 2016-04-24
Reviewed by Darin Adler.
Source/JavaScriptCore:


Part of this change is just rolling 194394 back in.

The other part is making that not a regression on CDjs. Other than the fact that it uses
bound functions, the problem with this new localeCompare implementation is that it uses
the arguments object. It uses it in a way that *seems* like ArgumentsEliminationPhase
ought to handle, but to my surprise it didn't:

  • If we have a ForceExit GetByVal on the arguments object, we would previously assume that it escaped. That's false since we just exit at ForceExit. On the other hand we probably should be pruning unreachable paths before we get here, but that's a separate issue. I don't want to play with phase order right now.


  • If we have a OutOfBounds GetByVal on the arguments object, then the best that would previously happen is that we'd compile it into an in-bounds arguments access. That's quite bad, as Andy's localeCompare illustrates: it uses out-of-bounds access on the arguments object to detect if an argument was passed. This change introduces an OutOfBounds version of GetMyArgumentByVal for this purpose.


This change required registering sane chain watchpoints. In the process, I noticed that the
old way of doing it had a race condition: we might register watchpoints for the structure
that had become insane. This change introduces a double-checking idiom that I believe works
because once the structure becomes insane it can't go back to sane and watchpoints
registration already involves executing the hardest possible fences.

  • builtins/StringPrototype.js:

(repeat):
(localeCompare):
(search):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGArrayMode.cpp:

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

  • 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/DFGNodeType.h:
  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGValidate.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):

  • ftl/FTLTypedPointer.h:

(JSC::FTL::TypedPointer::TypedPointer):
(JSC::FTL::TypedPointer::operator bool):
(JSC::FTL::TypedPointer::heap):
(JSC::FTL::TypedPointer::operator!): Deleted.

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

LayoutTests:

  • js/dom/script-tests/string-prototype-properties.js:
  • js/dom/string-prototype-properties-expected.txt:
  • js/regress/locale-compare.html: Added.
  • js/regress/locale-compare-expected.txt: Added.
  • js/regress/scripts-tests/locale-compare.js: Added.
  • js/script-tests/string-localeCompare.js:
  • js/string-localeCompare-expected.txt:
  • js/string-localeCompare.html:
9:20 AM Changeset in webkit [199966] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.29.1/Source

Versioning.

9:18 AM Changeset in webkit [199965] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.29.1

New tag.

6:54 AM Changeset in webkit [199964] by Antti Koivisto
  • 423 edits in trunk/Source/WebCore

RenderStyle should not be reference counted
​https://bugs.webkit.org/show_bug.cgi?id=156846

Reviewed by Andreas Kling.

RenderStyle reference counts its substructures. We no longer share RenderStyle objects between normal renderers
so there is no reason to refcount the RenderStyles themselves too. Making it a non-refcounted type clarifies
ownership relations, reduces branchiness and saves some memory.

This patches switches mostly mechanically from Ref/RefPtr<RenderStyle> to std::unique_ptr<RenderStyle>. In
the future RenderStyle can be given regular value semantics.

  • Modules/plugins/PluginReplacement.h:

(WebCore::PluginReplacement::scriptObject):
(WebCore::PluginReplacement::willCreateRenderer):

  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement):
(WebCore::QuickTimePluginReplacement::createElementRenderer):

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
(WebCore::YouTubePluginReplacement::createElementRenderer):

  • Modules/plugins/YouTubePluginReplacement.h:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::getFontSizeCSSValuePreferringKeyword):
(WebCore::ComputedStyleExtractor::useFixedFontDefaultSize):
(WebCore::updateStyleIfNeededForNode):
(WebCore::computeRenderStyleForProperty):
(WebCore::ComputedStyleExtractor::customPropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
(WebCore::MediaQueryEvaluator::eval):

  • css/MediaQueryEvaluator.h:

Clarify in code that MediaQueryEvaluator does not own the style.

  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::mediaType):
(WebCore::MediaQueryMatcher::documentElementUserAgentStyle):
(WebCore::MediaQueryMatcher::evaluate):
(WebCore::MediaQueryMatcher::matchMedia):
(WebCore::MediaQueryMatcher::styleResolverChanged):
(WebCore::MediaQueryMatcher::prepareEvaluator): Deleted.

  • css/MediaQueryMatcher.h:
  • css/StyleMedia.cpp:

(WebCore::StyleMedia::matchMedium):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::State::updateConversionData):
(WebCore::StyleResolver::State::setStyle):
(WebCore::StyleResolver::State::setParentStyle):

State owns the style explicitly set by setParentStyle but not the one given via constructor.

(WebCore::isAtShadowBoundary):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::applyPropertyToStyle):

  • css/StyleResolver.h:

(WebCore::ElementStyle::ElementStyle):
(WebCore::StyleResolver::style):
(WebCore::StyleResolver::parentStyle):
(WebCore::StyleResolver::setOverrideDocumentElementStyle):
(WebCore::StyleResolver::State::document):
(WebCore::StyleResolver::State::element):
(WebCore::StyleResolver::State::style):
(WebCore::StyleResolver::State::takeStyle):
(WebCore::StyleResolver::State::parentStyle):
(WebCore::StyleResolver::State::rootElementStyle):
(WebCore::StyleResolver::State::regionForStyling):
(WebCore::StyleResolver::State::setParentStyle): Deleted.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):
(WebCore::Document::updateLayoutIgnorePendingStylesheets):
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
(WebCore::Document::isPageBoxVisible):
(WebCore::Document::pageSizeAndMarginsInPixels):
(WebCore::Document::addAutoSizingNode):
(WebCore::Document::validateAutoSizingNodes):
(WebCore::Document::resetAutoSizingNodes):
(WebCore::Document::setFullScreenRenderer):

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::rendererIsNeeded):
(WebCore::Element::createElementRenderer):
(WebCore::Element::resolveComputedStyle):

  • dom/Element.h:

(WebCore::Element::copyNonAttributePropertiesFromElement):

  • dom/ElementRareData.h:

...

  • page/animation/AnimationBase.h:
  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::receivedStartTimeResponse):
(WebCore::AnimationControllerPrivate::getAnimatedStyleForRenderer):
(WebCore::AnimationControllerPrivate::computeExtentOfAnimation):
(WebCore::AnimationController::cancelAnimations):
(WebCore::AnimationController::updateAnimations):

std::unique_ptr<RenderStyle& animatedStyle argument is now expected no be initially null and
is only set if a new style is created.

(WebCore::AnimationController::getAnimatedStyleForRenderer):

  • page/animation/AnimationController.h:
  • page/animation/AnimationControllerPrivate.h:
  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::updateKeyframeAnimations):
(WebCore::CompositeAnimation::animate):
(WebCore::CompositeAnimation::getAnimatedStyle):

  • page/animation/CompositeAnimation.h:
  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::ImplicitAnimation):
(WebCore::ImplicitAnimation::shouldSendEventForListener):
(WebCore::ImplicitAnimation::animate):
(WebCore::ImplicitAnimation::getAnimatedStyle):
(WebCore::ImplicitAnimation::onAnimationEnd):
(WebCore::ImplicitAnimation::reset):

  • page/animation/ImplicitAnimation.h:
  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):
(WebCore::KeyframeAnimation::animate):
(WebCore::KeyframeAnimation::getAnimatedStyle):

  • page/animation/KeyframeAnimation.h:
  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::RenderAttachment):

  • rendering/RenderAttachment.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::clone):
(WebCore::RenderBlock::updateFirstLetterStyle):
(WebCore::RenderBlock::createFirstLetterRenderer):

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

(WebCore::RenderBlockFlow::MarginInfo::MarginInfo):
(WebCore::RenderBlockFlow::RenderBlockFlow):

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

(WebCore::skipBodyBackground):
(WebCore::RenderBox::RenderBox):

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::suspendAnimations):
(WebCore::RenderBoxModelObject::RenderBoxModelObject):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderButton.cpp:

(WebCore::RenderButton::RenderButton):
(WebCore::RenderButton::setupInnerStyle):

  • rendering/RenderButton.h:
  • rendering/RenderCombineText.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):

  • rendering/RenderDeprecatedFlexibleBox.h:
  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::RenderDetailsMarker):

  • rendering/RenderDetailsMarker.h:
  • rendering/RenderElement.cpp:

(WebCore::controlStatesRendererMap):
(WebCore::RenderElement::RenderElement):
(WebCore::RenderElement::~RenderElement):
(WebCore::RenderElement::createFor):
(WebCore::firstLineStyleForCachedUncachedType):
(WebCore::RenderElement::uncachedFirstLineStyle):
(WebCore::RenderElement::cachedFirstLineStyle):
(WebCore::RenderElement::initializeStyle):
(WebCore::RenderElement::setStyle):
(WebCore::RenderElement::propagateStyleToAnonymousChildren):
(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::getCachedPseudoStyle):

Return plain pointer as the cache owns the style.

(WebCore::RenderElement::getUncachedPseudoStyle):

return std::unique_ptr<RenderStyle>

(WebCore::RenderElement::selectionColor):
(WebCore::RenderElement::selectionPseudoStyle):
(WebCore::RenderElement::selectionBackgroundColor):

  • rendering/RenderElement.h:

(WebCore::RenderElement::hasInitializedStyle):
(WebCore::RenderElement::style):
(WebCore::RenderElement::element):
(WebCore::RenderElement::setStyleInternal):

  • rendering/RenderEmbeddedObject.cpp:

...

(WebCore::RenderImage::imageResource):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::RenderInline):
(WebCore::updateStyleOfAnonymousBlockContinuations):
(WebCore::RenderInline::styleDidChange):

Continuations now get their own RenderStyles.

(WebCore::RenderInline::addChildIgnoringContinuation):
(WebCore::RenderInline::clone):

  • rendering/RenderInline.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::currentTransform):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:

...

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::operator==):
(WebCore::KeyframeList::insert):

KeyframeValue is now movable but not copyable type. Adjust accordingly.

  • rendering/style/KeyframeList.h:

(WebCore::KeyframeValue::KeyframeValue):
(WebCore::KeyframeValue::setKey):
(WebCore::KeyframeValue::style):
(WebCore::KeyframeValue::setStyle):
(WebCore::KeyframeList::animationName):
(WebCore::KeyframeList::addProperty):
(WebCore::KeyframeList::containsProperty):

  • rendering/style/RenderStyle.cpp:

(WebCore::defaultStyle):
(WebCore::RenderStyle::create):
(WebCore::RenderStyle::createDefaultStyle):
(WebCore::RenderStyle::createAnonymousStyleWithDisplay):
(WebCore::RenderStyle::clone):
(WebCore::RenderStyle::createStyleInheritingFromPseudoStyle):

Return std::unique_ptr<RenderStyle> instead of Ref<RenderStyle>.

(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::~RenderStyle):
(WebCore::resolveAlignmentData):
(WebCore::RenderStyle::operator==):
(WebCore::RenderStyle::hasUniquePseudoStyle):
(WebCore::RenderStyle::getCachedPseudoStyle):
(WebCore::RenderStyle::addCachedPseudoStyle):
(WebCore::RenderStyle::isStyleAvailable): Deleted.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setStyleType):
(WebCore::RenderStyle::cachedPseudoStyles):
(WebCore::RenderStyle::initialIsolation):
(WebCore::RenderStyle::isPlaceholderStyle):
(WebCore::RenderStyle::setIsPlaceholderStyle):

Add placeholder style bit to rareNonInheritedData. We no longer rely on RenderStyle identity for this test.

(WebCore::RenderStyle::noninheritedFlagsMemoryOffset):

  • rendering/style/SVGRenderStyle.cpp:

(WebCore::defaultSVGStyle):
(WebCore::SVGRenderStyle::createDefaultStyle):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::StyleRareNonInheritedData::contentDataEquivalent):

  • rendering/style/StyleRareNonInheritedData.h:

...

(WebCore::findRenderingRoot):
(WebCore::findRenderingRoots):
(WebCore::RenderTreeUpdater::commit):

Style::Update is no longer const as we move the styles from it to the render tree.

(WebCore::pseudoStyleCacheIsInvalid):
(WebCore::RenderTreeUpdater::updateElementRenderer):
(WebCore::moveToFlowThreadIfNeeded):
(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement):

  • style/RenderTreeUpdater.h:
  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

  • style/StyleResolveForDocument.h:
  • style/StyleSharingResolver.cpp:

(WebCore::Style::elementHasDirectionAuto):
(WebCore::Style::SharingResolver::resolve):

  • style/StyleSharingResolver.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::ensurePlaceholderStyle):

Set the placeholder.

(WebCore::Style::TreeResolver::Parent::Parent):
(WebCore::Style::TreeResolver::pushScope):
(WebCore::Style::TreeResolver::pushEnclosingScope):
(WebCore::Style::TreeResolver::popScope):

Set and clear StyleResolver overrideDocumentElementStyle as needed. It is owned by the TreeResolver.

(WebCore::Style::TreeResolver::styleForElement):

Clone the placeholder style.

(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::TreeResolver::resolve):

Adopt to the std::unique_ptr and ElementStyle move semantics.

  • style/StyleTreeResolver.h:

(WebCore::Style::TreeResolver::scope):

  • style/StyleUpdate.cpp:

(WebCore::Style::Update::elementUpdate):
(WebCore::Style::Update::textUpdate):
(WebCore::Style::Update::elementStyle):
(WebCore::Style::Update::addElement):
(WebCore::Style::Update::addText):

  • style/StyleUpdate.h:

(WebCore::Style::Update::roots):
(WebCore::Style::Update::document):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::svgAttributeChanged):
(WebCore::SVGAElement::createElementRenderer):

...

5:45 AM Changeset in webkit [199963] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from MediaControlsHost
​https://bugs.webkit.org/show_bug.cgi?id=156903

Reviewed by Chris Dumez.

No change of behavior.

  • Modules/mediacontrols/MediaControlsHost.idl: Marking some parameters as nullable.
5:45 AM Changeset in webkit [199962] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from WebGLRenderingContext
​https://bugs.webkit.org/show_bug.cgi?id=156909

Reviewed by Chris Dumez.

No change of behavior.

Marking a lot of method parameters as nullable.

  • html/canvas/WebGLRenderingContextBase.idl:
5:37 AM Changeset in webkit [199961] by youenn.fablet@crf.canon.fr
  • 4 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from WebSocket
​https://bugs.webkit.org/show_bug.cgi?id=156897

Reviewed by Chris Dumez.

No change of behavior.

Updating WebSocket::send methods to take references, except for ArrayBufferView, which is not yet supported by the binding generator.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::send):

  • Modules/websockets/WebSocket.h:
  • Modules/websockets/WebSocket.idl:

Apr 23, 2016:

7:49 PM Changeset in webkit [199960] by aestes@apple.com
  • 20 edits in trunk/Source

Fix issues found by the clang static analyzer
​https://bugs.webkit.org/show_bug.cgi?id=156956

Reviewed by Alexey Proskuryakov.

Source/WebCore:

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange): Stored tz in a RetainPtr.

  • platform/cf/KeyedDecoderCF.cpp:

(WebCore::KeyedDecoderCF::KeyedDecoderCF): If dynamic_cf_cast returned nullptr, the result of
CFPropertyListCreateWithData would leak. Stored the CFPropertyListRef in a RetainPtr, then leaked/adopted it
into m_rootDictionary (to avoid retain count churn) if it is a CFDictionary.

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController dealloc]): Released _externalPlaybackAirPlayDeviceLocalizedName.
(-[WebAVMediaSelectionOption dealloc]): Added to release _localizedDisplayName.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer dealloc]): Released _pixelBufferAttributes.

  • platform/network/cocoa/WebCoreNSURLSession.h: Removed the readwrite attributes from properties, since

properties are readwrite by default.

  • platform/network/cocoa/WebCoreNSURLSession.mm: Removed @dynamic, which isn't necessary just for defining a custom getter.

(-[WebCoreNSURLSessionDataTask dealloc]): Added to release copied ivars.

Source/WebKit/mac:

  • WebView/WebDeviceOrientationProviderMock.mm:

(-[WebDeviceOrientationProviderMock dealloc]): [super dealloc] should be called last.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKPreviewActionItem.mm:

(-[WKPreviewAction dealloc]): Added to release _identifier.

  • UIProcess/_WKWebViewPrintFormatter.mm:

(-[_WKWebViewPrintFormatter dealloc]): Released _frameToPrint.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView inputView]): -createPeripheralWithView: returned a retained object, but the method name did not
match Cocoa conventions. Called -initWithView: instead.
(-[WKContentView _showAttachmentSheet]): Stored the _WKActivatedElementInfo in a RetainPtr.
(-[WKContentView _dataForPreviewItemController:atPosition:type:]): Ditto.
(+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):
The properties contextBeforeSelection, selectedText, markedText, and contextAfterSelection have the 'copy'
annotation in UIWKAutocorrectionContext, so the additional copy made here would be leaked. Removed the extra copy.
(-[WKAutocorrectionContext dealloc]): Deleted.

  • UIProcess/ios/forms/WKFormInputControl.h: Removed -createPeripheralWithView: and declared -initWithView:.
  • UIProcess/ios/forms/WKFormInputControl.mm:

(-[WKFormInputControl initWithView:]): Changed to return instancetype.
(+[WKFormInputControl createPeripheralWithView:]): Deleted.

  • UIProcess/ios/forms/WKFormSelectControl.h: Removed -createPeripheralWithView: and declared -initWithView:.
  • UIProcess/ios/forms/WKFormSelectControl.mm:

(+[WKFormSelectControl createPeripheralWithView:]): Deleted.

  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::decodeLegacySessionState): If dynamic_cf_cast returned nullptr, the result of
CFPropertyListCreateWithData would leak. Stored the CFPropertyListRef in a RetainPtr before calling dynamic_cf_cast.

  • UIProcess/mac/ServicesController.mm:

(WebKit::ServicesController::refreshExistingServices): Used a RetainPtr for attachment and cell.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu): Used a RetainPtr for groupEntry.

7:27 PM Changeset in webkit [199959] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Really enable INDEXED_DATABASE on Apple Mac cmake build
​https://bugs.webkit.org/show_bug.cgi?id=156902

Reviewed by Michael Catanzaro.

  • Scripts/webkitperl/FeatureList.pm:
7:25 PM Changeset in webkit [199958] by aestes@apple.com
  • 3 edits in trunk/Tools

check-webkit-style: fix false-positive warnings about @synchronized
​https://bugs.webkit.org/show_bug.cgi?id=156957

Reviewed by Dan Bernstein.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_spacing_for_function_call): Ignore @synchronized lines.
(check_braces): Ditto.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest.test_brace_at_begin_of_line): Added a test case.

5:13 PM Changeset in webkit [199957] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29.0.1/Source/WebCore

Merged r199956. rdar://problem/25894586

4:51 PM Changeset in webkit [199956] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

<rdar://problem/25894586> A project has failed to build because WTF_MAKE_FAST_ALLOCATED was not defined

Rubber-stamped by Chris Dumez.

Reverted the IntSize part of r199735, to let IntSize.h keep being used in another project.

  • platform/graphics/IntSize.h:

(WebCore::IntSize::IntSize):

2:33 PM Changeset in webkit [199955] by Chris Dumez
  • 22 edits in trunk/Source

Tie the DiagnosticLoggingClient's lifetime to the Page
​https://bugs.webkit.org/show_bug.cgi?id=156938
<rdar://problem/25851499>

Reviewed by Antti Koivisto.

Source/WebCore:

Tie the DiagnosticLoggingClient's lifetime to the Page rather than to the
MainFrame. The diagnostic logging client in WebKit2 requires the WebPage
to be alive in order to send IPC to the UIProcess. The WebPage owns the
Page and Page is not refCounted so the lifetime of the
DiagnosticLoggingClient should now be tied to the one of the WebPage as
well.

Previously, the DiagnosticLoggingClient would stay alive as long as the
MainFrame and could apparently in rare cases outlive the WebPage, thus
crashing when trying to send the IPC.

  • history/PageCache.cpp:

(WebCore::logPageCacheFailureDiagnosticMessage):
(WebCore::canCachePage):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):
(WebCore::logMediaLoadRequest):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::mediaPlayerEngineFailedToLoad):

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:

(WebCore::logNavigation):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

  • loader/ResourceLoader.cpp:

(WebCore::logResourceResponseSource):

  • loader/SubframeLoader.cpp:

(WebCore::logPluginRequest):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::logResourceLoaded):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::logMemoryCacheResourceRequest):
(WebCore::logResourceRevalidationDecision):

  • page/DiagnosticLoggingClient.h:
  • page/MainFrame.cpp:

(WebCore::MainFrame::MainFrame): Deleted.
(WebCore::MainFrame::~MainFrame): Deleted.
(WebCore::MainFrame::diagnosticLoggingClient): Deleted.

  • page/MainFrame.h:
  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::diagnosticLoggingClient):

  • page/Page.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::pageDestroyed):
(WebKit::WebDiagnosticLoggingClient::mainFrameDestroyed): Deleted.

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::willStartUserTriggeredZooming):

10:45 AM Changeset in webkit [199954] by bshafiei@apple.com
  • 11 edits in tags/Safari-602.1.29.0.1/Source/WebKit2

Merged r199951. rdar://problem/25893246

10:44 AM Changeset in webkit [199953] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.29.0.1/Source

Versioning.

10:41 AM Changeset in webkit [199952] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.29.0.1

New tag.

10:37 AM Changeset in webkit [199951] by mitz@apple.com
  • 11 edits in trunk/Source/WebKit2

<rdar://problem/25893246> WebKit2 has failed to build: error: use of undeclared identifier 'm_playbackSessionManager'

Fixed the non-AVKit build.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isShowingVideoPictureInPicture]):
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::fullScreenManager):
(WebKit::WebPageProxy::playbackSessionManager):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidBecomeActive):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createScrollingCoordinator):
(WebKit::WebChromeClient::supportsVideoFullscreen):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::inspectorUI):
(WebKit::WebPage::playbackSessionManager):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/cocoa/WebVideoFullscreenManager.h:
  • WebProcess/cocoa/WebVideoFullscreenManager.mm:
10:05 AM Changeset in webkit [199950] by barraclough@apple.com
  • 4 edits in trunk/Source/bmalloc

bmalloc: vm allocations should plant guard pages
​https://bugs.webkit.org/show_bug.cgi?id=156937

Rolling out - looks like this is memory regression.

  • bmalloc/Object.h:

(bmalloc::Object::operator+):
(bmalloc::Object::operator<=):
(bmalloc::Object::operator-): Deleted.

  • bmalloc/VMAllocate.h:

(bmalloc::vmDeallocate):
(bmalloc::vmRevokePermissions): Deleted.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateSmallChunk):

9:38 AM Changeset in webkit [199949] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, unbreak cloop.

  • runtime/VM.cpp:

(JSC::VM::getHostFunction):

8:18 AM Changeset in webkit [199948] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Hungarian translation
​https://bugs.webkit.org/show_bug.cgi?id=156952

Patch by Gabor Kelemen <​kelemeng@ubuntu.com> on 2016-04-23
Rubber-stamped by Michael Catanzaro.

  • hu.po:
2:12 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)

Apr 22, 2016:

7:49 PM Changeset in webkit [199947] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: HeapAllocationsTimeline grid should use built-in grid column icons
​https://bugs.webkit.org/show_bug.cgi?id=156934

Reviewed by Timothy Hatcher.

  • UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:

(WebInspector.HeapAllocationsTimelineDataGridNode):
Use existing base class helper function to create main title text.
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
Add icon class names to cell, remove icon element.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):
Turn on icons for the column.

7:00 PM Changeset in webkit [199946] by fpizlo@apple.com
  • 19 edits
    3 adds in trunk

Speed up bound functions a bit
​https://bugs.webkit.org/show_bug.cgi?id=156889

Reviewed by Saam Barati.
Source/JavaScriptCore:


Bound functions are hard to optimize because JSC doesn't have a good notion of non-JS code
that does JS-ey things like make JS calls. What I mean by "non-JS code" is code that did not
originate from JS source. A bound function does a highly polymorphic call to the target
stored in the JSBoundFunction. Prior to this change, we represented it as native code that
used the generic native->JS call API. That's not cheap.

We could model bound functions using a builtin, but it's not clear that this would be easy
to grok, since so much of the code would have to access special parts of the JSBoundFunction
type. Doing it that way might solve the performance problems but it would mean extra work to
arrange for the builtin to have speedy access to the call target, the bound this, and the
bound arguments. Also, optimizing bound functions that way would mean that bound function
performance would be gated on the performance of a bunch of other things in our system. For
example, we'd want this polymorphic call to be handled like the funnel that it is: if we're
compiling the bound function's outgoing call with no context then we should compile it as
fully polymorphic but we can let it assume basic sanity like that the callee is a real
function; but if we're compiling the call with any amount of calling context then we want to
use normal call IC's.

Since the builtin path wouldn't lead to a simpler patch and since I think that the VM will
benefit in the long run from using custom handling for bound functions, I kept the native
code and just added Intrinsic/thunk support.

This just adds an Intrinsic for bound function calls where the JSBoundFunction targets a
JSFunction instance and has no bound arguments (only bound this). This intrinsic is
currently only implemented as a thunk and not yet recognized by the DFG bytecode parser.

I needed to loosen some restrictions to do this. For one, I was really tired of our bad use
of ENABLE(JIT) conditionals, which made it so that any serious client of Intrinsics would
have to have #ifdefs. Really what should happen is that if the JIT is not enabled then we
just ignore intrinsics. Also, the code was previously assuming that having a native
constructor and knowing the Intrinsic for your native call were mutually exclusive. This
change makes it possible to have a native executable that has a custom function, custom
constructor, and an Intrinsic.

This is a >4x speed-up on bound function calls with no bound arguments.

In the future, we should teach the DFG Intrinsic handling to deal with bound functions and
we should teach the inliner (and ByteCodeParser::handleCall() in general) how to deal with
the function call inside the bound function. That would be super awesome.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::timesPtr):
(JSC::AbstractMacroAssembler::Address::withOffset):
(JSC::AbstractMacroAssembler::BaseIndex::BaseIndex):
(JSC::MacroAssemblerType>::Address::indexedBy):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::storeCell):
(JSC::AssemblyHelpers::loadCell):
(JSC::AssemblyHelpers::storeValue):
(JSC::AssemblyHelpers::emitSaveCalleeSaves):
(JSC::AssemblyHelpers::emitSaveThenMaterializeTagRegisters):
(JSC::AssemblyHelpers::emitRestoreCalleeSaves):
(JSC::AssemblyHelpers::emitRestoreSavedTagRegisters):
(JSC::AssemblyHelpers::copyCalleeSavesToVMCalleeSavesBuffer):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiNativeTailCall):
(JSC::JITThunks::ctiNativeTailCallWithoutSavedTags):
(JSC::JITThunks::ctiStub):
(JSC::JITThunks::hostFunctionStub):
(JSC::JITThunks::clearHostFunctionStubs):

  • jit/JITThunks.h:
  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::callDoubleToDoublePreservingReturn):
(JSC::SpecializedThunkJIT::tagReturnAsInt32):
(JSC::SpecializedThunkJIT::emitSaveThenMaterializeTagRegisters): Deleted.
(JSC::SpecializedThunkJIT::emitRestoreSavedTagRegisters): Deleted.

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::nativeCallGenerator):
(JSC::nativeTailCallGenerator):
(JSC::nativeTailCallWithoutSavedTagsGenerator):
(JSC::nativeConstructGenerator):
(JSC::randomThunkGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • jit/ThunkGenerators.h:
  • runtime/Executable.cpp:

(JSC::NativeExecutable::create):
(JSC::NativeExecutable::destroy):
(JSC::NativeExecutable::createStructure):
(JSC::NativeExecutable::finishCreation):
(JSC::NativeExecutable::NativeExecutable):
(JSC::ScriptExecutable::ScriptExecutable):

  • runtime/Executable.h:
  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncBind):

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorPrototypeGetterCompare):

  • runtime/Intrinsic.h:
  • runtime/JSBoundFunction.cpp:

(JSC::boundThisNoArgsFunctionCall):
(JSC::boundFunctionCall):
(JSC::boundThisNoArgsFunctionConstruct):
(JSC::boundFunctionConstruct):
(JSC::getBoundFunctionStructure):
(JSC::JSBoundFunction::create):
(JSC::JSBoundFunction::customHasInstance):
(JSC::JSBoundFunction::JSBoundFunction):

  • runtime/JSBoundFunction.h:

(JSC::JSBoundFunction::targetFunction):
(JSC::JSBoundFunction::boundThis):
(JSC::JSBoundFunction::boundArgs):
(JSC::JSBoundFunction::createStructure):
(JSC::JSBoundFunction::offsetOfTargetFunction):
(JSC::JSBoundFunction::offsetOfBoundThis):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::lookUpOrCreateNativeExecutable):
(JSC::JSFunction::create):

  • runtime/VM.cpp:

(JSC::thunkGeneratorForIntrinsic):
(JSC::VM::getHostFunction):

  • runtime/VM.h:

(JSC::VM::getCTIStub):
(JSC::VM::exceptionOffset):

LayoutTests:

This microbenchmark speeds up by >4x with this change.

  • js/regress/bound-function-call-expected.txt: Added.
  • js/regress/bound-function-call.html: Added.
  • js/regress/script-tests/bound-function-call.js: Added.

(foo):

6:14 PM Changeset in webkit [199945] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

6:13 PM Changeset in webkit [199944] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

6:11 PM Changeset in webkit [199943] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix build break since r199866
​https://bugs.webkit.org/show_bug.cgi?id=156892

Reviewed by Darin Adler.

  • runtime/MathCommon.cpp: Follow up to r199913. Remove 'include cmath' in cpp file.
5:58 PM Changeset in webkit [199942] by Chris Dumez
  • 11 edits
    2 adds in trunk

Cannot access the SQLTransaction.constructor.prototype
​https://bugs.webkit.org/show_bug.cgi?id=156613

Reviewed by Darin Adler.

Source/WebCore:

Drop [NoInterfaceObject] from the following SQL interfaces:
Database, SQLError, SQLResultSet, SQLResultSetRowList and SQLTransaction.

This matches the specification:
​https://dev.w3.org/html5/webdatabase/

This was causing the 'constructor' property to be wrong for these
interfaces as it would be a generic Object.

Test: storage/websql/transaction-prototype.html

  • Modules/webdatabase/Database.idl:
  • Modules/webdatabase/SQLError.idl:
  • Modules/webdatabase/SQLResultSet.idl:
  • Modules/webdatabase/SQLResultSetRowList.idl:
  • Modules/webdatabase/SQLTransaction.idl:

LayoutTests:

Rebaseline existing test now that more SQL constructors are exposed on the
global Window object. Also add a test to confirm that it is possible to
access SQLTransaction.constructor.prototype and that it seems correct.

  • js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • storage/websql/transaction-prototype-expected.txt: Added.
  • storage/websql/transaction-prototype.html: Added.
5:45 PM Changeset in webkit [199941] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Optimize number parsing and string parsing in LiteralParser
​https://bugs.webkit.org/show_bug.cgi?id=156896

Reviewed by Mark Lam.

This patch aim to improve JSON.parse performance. Major 2 optimizations are included.

  1. Change double result to int32_t result in integer parsing case.

We already have the optimized path for integer parsing, when it's digits are less than 10.
At that case, the maximum number is 999999999, and the minimum number is -99999999.
The both are in range of Int32. So We can use int32_t for accumulation instead of double.

  1. Add the string parsing fast / slow cases.

We add the fast case for string parsing, which does not include any escape sequences.

Both optimizations improve Kraken json-parse-financial, roughly 3.5 - 4.5%.

json-parse-financial 49.128+-1.589 46.979+-0.912 might be 1.0457x faster

  • runtime/LiteralParser.cpp:

(JSC::isJSONWhiteSpace):
(JSC::isSafeStringCharacter):
(JSC::LiteralParser<CharType>::Lexer::lexString):
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
(JSC::LiteralParser<CharType>::Lexer::lexNumber):

  • runtime/LiteralParser.h:
5:44 PM Changeset in webkit [199940] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Include columnNumber in event listener locations
​https://bugs.webkit.org/show_bug.cgi?id=156927
<rdar://problem/25884584>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-22
Reviewed by Brian Burg.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener):
Include the column number in the location as well.

5:40 PM Changeset in webkit [199939] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

Web Inspector: Source directives lost when using Function constructor repeatedly
​https://bugs.webkit.org/show_bug.cgi?id=156863
<rdar://problem/25861064>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-22
Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Source directives (sourceURL and sourceMappingURL) are normally accessed through
the SourceProvider and normally set when the script is parsed. However, when a
CodeCache lookup skips parsing, the new SourceProvider never gets the directives
(sourceURL/sourceMappingURL). This patch stores the directives on the UnlinkedCodeBlock
and UnlinkedFunctionExecutable when entering the cache, and copies to the new providers
when the cache is used.

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::sourceURLDirective):
(JSC::UnlinkedCodeBlock::sourceMappingURLDirective):
(JSC::UnlinkedCodeBlock::setSourceURLDirective):
(JSC::UnlinkedCodeBlock::setSourceMappingURLDirective):

  • bytecode/UnlinkedFunctionExecutable.h:
  • parser/SourceProvider.h:
  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/CodeCache.h:

Store directives on the unlinked code block / executable when adding
to the cache, so they can be used to update new providers when the
cache gets used.

  • runtime/JSGlobalObject.cpp:

Add needed header after CodeCache header cleanup.

LayoutTests:

  • inspector/debugger/sourceURL-repeated-identical-executions-expected.txt: Added.
  • inspector/debugger/sourceURL-repeated-identical-executions.html: Added.
5:07 PM Changeset in webkit [199938] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.128

New tag.

5:07 PM Changeset in webkit [199937] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.6.17

New tag.

4:56 PM Changeset in webkit [199936] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

bmalloc: vm allocations should plant guard pages
​https://bugs.webkit.org/show_bug.cgi?id=156937

Reviewed by Michael Saboff.

  • bmalloc/Object.h:

(bmalloc::Object::operator-): Added a - helper.

  • bmalloc/VMAllocate.h:

(bmalloc::vmRevokePermissions): Added a helper to revoke permissions on
a VM region. We use this for guard pages.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateSmallChunk): Add guard pages to the start and
end of the chunk.

Note that we don't guard large chunks becuase we need to be able to merge
them. Otherwise, we will run out of virtual addresses.

4:48 PM Changeset in webkit [199935] by mark.lam@apple.com
  • 4 edits
    3 adds in trunk

javascript jit bug affecting Google Maps.
​https://bugs.webkit.org/show_bug.cgi?id=153431

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

The issue was due to the abstract interpreter wrongly marking the type of the
value read from the Uint3Array as SpecInt52, which precludes it from being an
Int32. This proves to be false, and the generated code failed to handle the case
where the read value is actually an Int32.

The fix is to have the abstract interpreter use SpecMachineInt instead of
SpecInt52.

  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

LayoutTests:

  • js/regress/bug-153431-expected.txt: Added.
  • js/regress/bug-153431.html: Added.
  • js/regress/script-tests/bug-153431.js: Added.
4:25 PM Changeset in webkit [199934] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

bmalloc: Constify introspect function pointer table
​https://bugs.webkit.org/show_bug.cgi?id=156936

Reviewed by Michael Saboff.

  • bmalloc/Zone.cpp:

(bmalloc::Zone::Zone): Declaring this function pointer table const puts
it in the read-only section of the binary, providing a little hardening
against overwriting the function pointers at runtime. (We have to
const_cast when assigning because the API declares a pointer to non-const,
but we happen to know it will never try to write through that pointer.
This is not my favorite API.)

4:10 PM Changeset in webkit [199933] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] PredictionPropagation should not be in the top 5 heaviest phases
​https://bugs.webkit.org/show_bug.cgi?id=156891

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-22
Reviewed by Mark Lam.

In DFG, PredictionPropagation is often way too high in profiles.
It is a simple phase, it should not be that hot.

Most of the time is spent accessing memory. This patch attempts
to reduce that.

First, propagate() is split in processInvariants() and propagates().
The step processInvariants() sets all the types for nodes for which
the type does not depends on other nodes.

Adding processInvariants() lowers two hotspot inside PredictionPropagation:
speculationFromValue() and setPrediction().

Next, to avoid touching all the nodes at every operation, we keep
track of the nodes that actually need propagate().
The vector m_dependentNodes keeps the list of those nodes and propagate()
only need to process them at each phase.

This is a smaller gain because growing m_dependentNodes negates
some of the gains.

On 3d-cube, this moves PredictionPropagation from fifth position
to ninth. A lot of the remaining overhead is caused by double-voting
and cannot be fixed by moving stuff around.

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagateToFixpoint): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagate): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagateForward): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagateBackward): Deleted.
(JSC::DFG::PredictionPropagationPhase::doDoubleVoting): Deleted.
(JSC::DFG::PredictionPropagationPhase::doRoundOfDoubleVoting): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagateThroughArgumentPositions): Deleted.

4:10 PM Changeset in webkit [199932] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.29/Source/WebKit2

Merged r199919.

4:09 PM Changeset in webkit [199931] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.29/Source/WebKit2

Merged r199917.

4:08 PM Changeset in webkit [199930] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199915.

4:07 PM Changeset in webkit [199929] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199885.

4:05 PM Changeset in webkit [199928] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebKit2

Merged r199914.

4:04 PM Changeset in webkit [199927] by ggaren@apple.com
  • 20 edits in trunk

super should be available in object literals
​https://bugs.webkit.org/show_bug.cgi?id=156933

Reviewed by Saam Barati.

Source/JavaScriptCore:

When we originally implemented classes, super seemed to be a class-only
feature. But the final spec says it's available in object literals too.

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitBytecode): Having 'super' and being a class
property are no longer synonymous, so we track two separate variables.

(JSC::PropertyListNode::emitPutConstantProperty): Being inside the super
branch no longer guarantees that you're a class property, so we decide
our attributes and our function name dynamically.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createArrowFunctionExpr):
(JSC::ASTBuilder::createGetterOrSetterProperty):
(JSC::ASTBuilder::createArguments):
(JSC::ASTBuilder::createArgumentsList):
(JSC::ASTBuilder::createProperty):
(JSC::ASTBuilder::createPropertyList): Pass through state to indicate
whether we're a class property, since we can't infer it from 'super'
anymore.

  • parser/NodeConstructors.h:

(JSC::PropertyNode::PropertyNode): See ASTBuilder.h.

  • parser/Nodes.h:

(JSC::PropertyNode::expressionName):
(JSC::PropertyNode::name):
(JSC::PropertyNode::type):
(JSC::PropertyNode::needsSuperBinding):
(JSC::PropertyNode::isClassProperty):
(JSC::PropertyNode::putType): See ASTBuilder.h.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parseMemberExpression): I made these error
messages generic because it is no longer practical to say concise things
about the list of places you can use super.

  • parser/Parser.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createArgumentsList):
(JSC::SyntaxChecker::createProperty):
(JSC::SyntaxChecker::appendExportSpecifier):
(JSC::SyntaxChecker::appendConstDecl):
(JSC::SyntaxChecker::createGetterOrSetterProperty): Updated for
interface change.

  • tests/stress/generator-with-super.js:

(test):

  • tests/stress/modules-syntax-error.js:
  • tests/stress/super-in-lexical-scope.js:

(testSyntaxError):
(testSyntaxError.test):

  • tests/stress/tagged-templates-syntax.js: Updated for error message

changes. See Parser.cpp.

LayoutTests:

Updated expected results and added a few new tests.

  • js/arrowfunction-syntax-errors-expected.txt:
  • js/class-syntax-super-expected.txt:
  • js/object-literal-methods-expected.txt:
  • js/script-tests/arrowfunction-syntax-errors.js:
  • js/script-tests/class-syntax-super.js:
  • js/script-tests/object-literal-methods.js:
4:04 PM Changeset in webkit [199926] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199912. rdar://problem/25865315

4:03 PM Changeset in webkit [199925] by bshafiei@apple.com
  • 4 edits in tags/Safari-602.1.29/Source/WebKit

Merged r199908.

4:02 PM Changeset in webkit [199924] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199904.

4:02 PM Changeset in webkit [199923] by matthew_hanson@apple.com
  • 3 adds in branches/safari-601-branch/LayoutTests/http/tests/svg

Merge LayoutTests for r199881. rdar://problem/25879498

4:01 PM Changeset in webkit [199922] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199886.

3:58 PM Changeset in webkit [199921] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.29/Source/WebKit2

Merged r199903.

3:57 PM Changeset in webkit [199920] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199902.

3:46 PM Changeset in webkit [199919] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit2

Fixing a typo in my last commit.

Unreviewed build fix.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
  • WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
3:46 PM Changeset in webkit [199918] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ASSERT(m_stack.last().isTailDeleted) at ShadowChicken.cpp:127 inspecting the inspector
​https://bugs.webkit.org/show_bug.cgi?id=156930

Reviewed by Joseph Pecoraro.

The loop that prunes the stack from the top should preserve the invariant that the top frame
cannot be tail-deleted.

  • interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::update):

3:41 PM Changeset in webkit [199917] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit2

Missed some macros to fix builds that do not support AVKit.

Unreviewed build fix.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
  • WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
3:38 PM Changeset in webkit [199916] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Add JSC test results in json format to a buildbot log
​https://bugs.webkit.org/show_bug.cgi?id=156920

Patch by Srinivasan Vijayaraghavan <​svijayaraghavan@apple.com> on 2016-04-22
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(RunJavaScriptCoreTests):
Add runtime flag to output json into buildbot

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):
Change key names and remove redundant count key

3:30 PM Changeset in webkit [199915] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::isHidden):

3:05 PM Changeset in webkit [199914] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit2

Fix builds that do not support AVKit

Unreviewed build fix.

  • UIProcess/WebPageProxy.h:
3:02 PM Changeset in webkit [199913] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Attempt to fix the CLoop after r199866

  • runtime/MathCommon.h:
2:48 PM Changeset in webkit [199912] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Crash at -[WebAVPlayerLayer resolveBounds]
​https://bugs.webkit.org/show_bug.cgi?id=156931
<rdar://problem/25865315>

Reviewed by Eric Carlson.

When cloning the WebAVPlayerLayer, we must copy over the fullscreenInterface to the cloned layer.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebAVPlayerLayerView_startRoutingVideoToPictureInPicturePlayerLayerView):

2:40 PM Changeset in webkit [199911] by matthew_hanson@apple.com
  • 10 edits in branches/safari-601-branch

Merge r199881. rdar://problem/25879498

2:32 PM Changeset in webkit [199910] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under WebCore::DataDetection::detectContentInRange()
​https://bugs.webkit.org/show_bug.cgi?id=156880
<rdar://problem/25622631>

Reviewed by Darin Adler.

We would sometimes crash under WebCore::DataDetection::detectContentInRange()
when dereferencing a null parentNode pointer. This patch adds a null check
for parentNode in the for() loop. It also does some clean up and optimization
since I was passing by.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):

2:32 PM Changeset in webkit [199909] by matthew_hanson@apple.com
  • 10 edits
    3 adds in branches/safari-601.1.46-branch

Merge r199881. rdar://problem/25879593

2:27 PM Changeset in webkit [199908] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

Source/WebKit:
Unreviewed build fix after r199841.

  • PlatformWin.cmake: Add missing WebApplicationCache.cpp buid directive.

Source/WebKit/win:
Unreviewed build fix after 4199841.

  • WebApplicationCache.cpp:

(WebApplicationCache::WebApplicationCache): Provide missing preference key definition.

2:26 PM Changeset in webkit [199907] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaselining inspector/model/stack-trace.html after r199897

Unreviewed test gardening.

  • inspector/model/stack-trace-expected.txt:
2:25 PM Changeset in webkit [199906] by Simon Fraser
  • 2 edits in trunk/PerformanceTests

Skip two content animation tests which are only meant for iOS testing.

  • Animation/css-animation.html: Added.
  • Animation/raf-animation.html: Added.
  • Skipped:
2:24 PM Changeset in webkit [199905] by keith_miller@apple.com
  • 2 edits in trunk/Source/WebCore

buildObjectForEventListener should not call into JSC with a null ExecState
​https://bugs.webkit.org/show_bug.cgi?id=156923

Reviewed by Joseph Pecoraro.

If a user had disabled JavaScript on their page then the inspector tried to
add an event listener we would fail to create an ExecState. Since we didn't
check this ExecState was valid we would then attempt to stringify the value,
which would cause JSC to crash.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener):

2:22 PM Changeset in webkit [199904] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Yet another attempt at fixing Windows.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::isHidden):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
2:07 PM Changeset in webkit [199903] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit2

Take 2 for fixing builds that do not support AVKit

Unreviewed build fix.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetState):

2:07 PM Changeset in webkit [199902] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Attempt to fix Windows build after r199862

Unreviewed build fix.

  • platform/graphics/ca/win/PlatformCALayerWin.h:
2:06 PM Changeset in webkit [199901] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

WKWebView WebSQL is not enabled
​https://bugs.webkit.org/show_bug.cgi?id=156928
rdar://problem/19029603

Reviewed by Beth Dakin.

Give databases a default quota of 50 MB, matching what we have in UIWebView.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::exceededDatabaseQuota):

1:57 PM Changeset in webkit [199900] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Anchor element 'ping' property should only apply to http/https destinations
​https://bugs.webkit.org/show_bug.cgi?id=156801
<rdar://problem/25834419>

Reviewed by Chris Dumez.

Take advantage of the hyperlink auditing language "UAs may either ignore the
ping attribute altogether, or selectively ignore URLs in the list (e.g. ignoring
any third-party URLs)" to restrict pings to http/https targets. For details, see
<​https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing>.

Tested by http/tests/navigation/ping-attribute tests.

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing): Ignore requests to ping anything outside the
family of HTTP protocols (http/https).

1:28 PM Changeset in webkit [199899] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Change an assert to a warn based on post review feedback.

​https://bugs.webkit.org/show_bug.cgi?id=156919
rdar://problem/25857118

Rubber-stamped by Joseph Pecoraro.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.debuggerDidPause):

1:12 PM Changeset in webkit [199898] by bshafiei@apple.com
  • 8 edits in tags/Safari-602.1.29/Source

Merged r199896.

12:53 PM Changeset in webkit [199897] by timothy@apple.com
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger statement in console does not provide any call frames and debugger UI is confused

​https://bugs.webkit.org/show_bug.cgi?id=156919
rdar://problem/25857118

This makes console expressions show up in the Debugger tab sidebar if a ScriptContentView is shown for them.
We now also show call frames that originate from a console expression, so the call frames in the sidebar is not empty.
Also fix a bug where when there are no call frames we auto resume the debugger and don't leave it in a broken state.

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js: Updated.
  • UserInterface/Base/Utilities.js:

(appendWebInspectorSourceURL): Don't append if another sourceURL is already added.
(appendWebInspectorConsoleEvaluationSourceURL): Added.
(isWebInspectorConsoleEvaluationScript): Added.
(isWebKitInternalScript): Return false for isWebInspectorConsoleEvaluationScript().

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.debuggerDidPause): Resume if call frames is empty. This is not as common now
since console expression call frames are not skipped.
(WebInspector.DebuggerManager.prototype.scriptDidParse): Change an early return for isWebInspectorInternalScript() that
was skipping adding internal scripts to the known script lists, but it should only do that when the debug UI is disabled.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
Call appendWebInspectorConsoleEvaluationSourceURL so the console expressions are tagged before evaluateInInspectedWindow
added the internal sourceURL name.

  • UserInterface/Models/Script.js:

(WebInspector.Script): Assign unique identifiers to console scripts so they are named correctly.
(WebInspector.Script.resetUniqueDisplayNameNumbers): Reset _nextUniqueConsoleDisplayNameNumber.
(WebInspector.Script.prototype.get displayName): Special case console expressions with a better name.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype.treeElementForRepresentedObject): Add a script tree element on demand
like the ResourceSidebarPanel does for anonymous scripts.
(WebInspector.DebuggerSidebarPanel.prototype._addScript): Return treeElement so treeElementForRepresentedObject can use it.

12:44 PM Changeset in webkit [199896] by Ryan Haddad
  • 8 edits in trunk/Source

Fix builds that do not support AVKit

Unreviewed build fix.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::viewDidLeaveWindow):

  • UIProcess/ios/WebPageProxyIOS.mm:
  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:
12:42 PM Changeset in webkit [199895] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r189567): The top of Facebook's messenger.com looks visually broken
​https://bugs.webkit.org/show_bug.cgi?id=156869
<rdar://problem/23204668>

Reviewed by Zalan Bujtas.

Source/WebCore:

Added fast/block/min-content-with-box-sizing.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):

LayoutTests:

  • fast/block/min-content-box-sizing-expected.html: Added.
  • fast/block/min-content-box-sizing.html: Added.
12:27 PM Changeset in webkit [199894] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Integer Multiply of a number by itself does not need negative zero support
​https://bugs.webkit.org/show_bug.cgi?id=156895

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-22
Reviewed by Saam Barati.

You cannot produce negative zero by squaring an integer.

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithMul):
Minor codegen fixes:
-Use the right form of multiply for ARM.
-Use a sign-extended 32bit immediates, that's the one with fast forms

in the MacroAssembler.

12:25 PM Changeset in webkit [199893] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

TextAutoSizingKey should use normal refcounting
​https://bugs.webkit.org/show_bug.cgi?id=156893

Reviewed by Andreas Kling.

Get rid of special refcounting of style in favor of RefPtr. It also becomes a move-only type
to support future switch to non-refcounted RenderStyle.

Also general cleanups and modernization.

  • dom/Document.cpp:

(WebCore::TextAutoSizingTraits::constructDeletedValue):
(WebCore::TextAutoSizingTraits::isDeletedValue):
(WebCore::Document::addAutoSizingNode):
(WebCore::Document::validateAutoSizingNodes):
(WebCore::Document::resetAutoSizingNodes):

Adopt to being move-only.

  • rendering/TextAutoSizing.cpp:

(WebCore::cloneRenderStyleWithState):
(WebCore::TextAutoSizingKey::TextAutoSizingKey):

Clone the style for safety against mutations. Cloning is cheap.

(WebCore::TextAutoSizingValue::numNodes):
(WebCore::TextAutoSizingValue::adjustNodeSizes):
(WebCore::TextAutoSizingValue::reset):
(WebCore::TextAutoSizingKey::~TextAutoSizingKey): Deleted.
(WebCore::TextAutoSizingKey::operator=): Deleted.
(WebCore::TextAutoSizingKey::ref): Deleted.
(WebCore::TextAutoSizingKey::deref): Deleted.

  • rendering/TextAutoSizing.h:

(WebCore::TextAutoSizingKey::TextAutoSizingKey):
(WebCore::TextAutoSizingKey::style):
(WebCore::TextAutoSizingKey::isDeleted):
(WebCore::operator==):
(WebCore::TextAutoSizingKey::doc): Deleted.
(WebCore::TextAutoSizingKey::isValidDoc): Deleted.
(WebCore::TextAutoSizingKey::isValidStyle): Deleted.
(WebCore::TextAutoSizingKey::deletedKeyDoc): Deleted.
(WebCore::TextAutoSizingKey::deletedKeyStyle): Deleted.

m_doc member is not used for anything except deleted value comparisons. Replace it with a bit.

12:25 PM Changeset in webkit [199892] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.29

New tag.

12:25 PM Changeset in webkit [199891] by bshafiei@apple.com
  • 1 delete in tags/Safari-602.1.29

Delete tag.

12:24 PM Changeset in webkit [199890] by Chris Dumez
  • 13 edits in trunk/Source/WebCore

Crash under FontCache::purgeInactiveFontData()
​https://bugs.webkit.org/show_bug.cgi?id=156822
<rdar://problem/25373970>

Reviewed by Darin Adler.

In some rare cases, the Font constructor would mutate the FontPlatformData
that is being passed in. This is an issue because because our FontCache
uses the FontPlatformData as key for the cached fonts. This could lead to
crashes because the WTFMove() in FontCache::purgeInactiveFontData() would
nullify values in our HashMap but we would then fail to remove them from
the HashMap (because the key did not match). We would then reference the
null font when looping again when doing font->hasOneRef().

This patch marks Font::m_platformData member as const to avoid such issues
in the future and moves the code altering the FontPlatformData from the
Font constructor into the FontPlatformData constructor. The purpose of
that code was to initialize FontPlatformData::m_cgFont in case the CGFont
passed in the constructor was null.

  • platform/graphics/Font.h:
  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::fontForPlatformData):
(WebCore::FontCache::purgeInactiveFontData):

  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::FontPlatformData):

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::webFallbackFontFamily): Deleted.
(WebCore::Font::platformInit): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::webFallbackFontFamily):
(WebCore::FontPlatformData::setFallbackCGFont):

  • platform/graphics/win/FontPlatformDataCGWin.cpp:

(WebCore::FontPlatformData::setFallbackCGFont):

12:22 PM Changeset in webkit [199889] by Chris Dumez
  • 18 edits in trunk

Support disabling at runtime IndexedDB constructors exposed to workers
​https://bugs.webkit.org/show_bug.cgi?id=156883

Reviewed by Darin Adler.

Source/WebCore:

Support disabling at runtime IndexedDB constructors exposed to workers.
Previously, constructors visibility to workers and window was constrolled
by the same runtime flag.

  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBCursorWithValue.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBOpenDBRequest.idl:
  • Modules/indexeddb/IDBRequest.idl:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/indexeddb/IDBVersionChangeEvent.idl:
  • workers/WorkerGlobalScope.idl:

LayoutTests:

Add layout test coverage.

  • storage/indexeddb/modern/resources/workers-disabled.js:
  • storage/indexeddb/modern/resources/workers-enable.js:
  • storage/indexeddb/modern/workers-disabled-expected.txt:
  • storage/indexeddb/modern/workers-enable-expected.txt:
12:14 PM Changeset in webkit [199888] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

12:13 PM Changeset in webkit [199887] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.29

New tag.

12:01 PM Changeset in webkit [199886] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Attempting to fix Windows build. Add isHidden implementation.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::isHidden):

11:59 AM Changeset in webkit [199885] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Attempt at a Windows build fix.

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

11:27 AM Changeset in webkit [199884] by hyatt@apple.com
  • 3 edits
    4 adds in trunk

Source/WebCore:

-webkit-image-set doesn't work inside CSS variables

​https://bugs.webkit.org/show_bug.cgi?id=156915
<rdar://problem/25473972>

Reviewed by Zalan Bujtas.

Added new tests in fast/hidpi.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::equals):
(WebCore::CSSPrimitiveValue::buildParserValue):

LayoutTests:
-webkit-image-set doesn't work inside CSS variables
​https://bugs.webkit.org/show_bug.cgi?id=156915
<rdar://problem/25473972>

Reviewed by Zalan Bujtas.

  • fast/hidpi/image-srcset-simple-in-variable-1x-expected.txt: Added.
  • fast/hidpi/image-srcset-simple-in-variable-1x.html: Added.
  • fast/hidpi/image-srcset-simple-in-variable-2x-expected.txt: Added.
  • fast/hidpi/image-srcset-simple-in-variable-2x.html: Added.
11:17 AM Changeset in webkit [199883] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r199877.
​https://bugs.webkit.org/show_bug.cgi?id=156918

The LayoutTest added with this change is failing on all
platforms. (Requested by ryanhaddad on #webkit).

Reverted changeset:

"REGRESSION (r189567): The top of Facebook's messenger.com
looks visually broken"
​https://bugs.webkit.org/show_bug.cgi?id=156869
​http://trac.webkit.org/changeset/199877

Patch by Commit Queue <​commit-queue@webkit.org> on 2016-04-22

11:06 AM Changeset in webkit [199882] by beidson@apple.com
  • 10 edits in trunk/Source

Modern IDB: Rework the ownership/RefCounting model of IDBConnectionToServer and IDBConnectionProxy.
​https://bugs.webkit.org/show_bug.cgi?id=156916

Reviewed by Tim Horton.

Source/WebCore:

No new tests (No behavior change).

  • Modules/indexeddb/IDBFactory.cpp: Remove unneeded include.
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::ref): Ref the ConnectionToServer.
(WebCore::IDBClient::IDBConnectionProxy::deref): Deref it.
(WebCore::IDBClient::IDBConnectionProxy::connectionToServer):
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):
(WebCore::IDBClient::IDBConnectionProxy::create): Deleted.

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::IDBConnectionToServer): Create a proxy owned by this.
(WebCore::IDBClient::IDBConnectionToServer::proxy): Expose it.

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • dom/Document.cpp:

(WebCore::Document::idbConnectionProxy):

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):

10:37 AM Changeset in webkit [199881] by Antti Koivisto
  • 10 edits
    3 adds in trunk

REGRESSION (r194898): Multi download of external SVG defs file by <use> xlinks:href (caching)
​https://bugs.webkit.org/show_bug.cgi?id=156368
<rdar://problem/25611746>

Reviewed by Simon Fraser.

Source/WebCore:

We would load svg resources with fragment identifier again because the encoding never matched.

Test: http/tests/svg/svg-use-external.html

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::setEncoding):
(WebCore::TextResourceDecoder::hasEqualEncodingForCharset):

Encoding can depend on mime type. Add a comparison function that takes this into account.

(WebCore::findXMLEncoding):

  • loader/TextResourceDecoder.h:

(WebCore::TextResourceDecoder::encoding):

  • loader/cache/CachedCSSStyleSheet.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::textResourceDecoder):

Add a way to get the TextResourceDecoder from a cached resource.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::determineRevalidationPolicy):

Use the new comparison function.

  • loader/cache/CachedSVGDocument.h:
  • loader/cache/CachedScript.h:
  • loader/cache/CachedXSLStyleSheet.h:

LayoutTests:

  • http/tests/svg/resources/symbol-defs.svg: Added.
  • http/tests/svg/svg-use-external-expected.txt: Added.
  • http/tests/svg/svg-use-external.html: Added.
10:18 AM Changeset in webkit [199880] by Ryan Haddad
  • 2 edits in trunk/Tools

Update expected result for WKPreferencesGetOfflineWebApplicationCacheEnabled after r199854

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp:

(TestWebKitAPI::TEST):

9:13 AM Changeset in webkit [199879] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from InspectorFrontendHost
​https://bugs.webkit.org/show_bug.cgi?id=156908

Reviewed by Timothy Hatcher.

No change of behavior.

  • inspector/InspectorFrontendHost.idl: Marking event parameter as nullable to keep compatibility.
8:59 AM Changeset in webkit [199878] by Chris Dumez
  • 16 edits in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from MutationObserver
​https://bugs.webkit.org/show_bug.cgi?id=156890

Reviewed by Darin Adler.

Source/WebCore:

Drop [UsePointersEvenForNonNullableObjectArguments] from MutationObserver
and clean up / modernize the code a bit. There is not significant Web-
exposed behavior change except that MutationObserver.observe() now throws
a different kind of exception (a TypeError as per Web IDL) when passed in
a null Node.

No new tests, rebaselined existing test.

  • bindings/js/JSMutationCallback.cpp:

(WebCore::JSMutationCallback::call):

  • bindings/js/JSMutationCallback.h:
  • bindings/js/JSMutationObserverCustom.cpp:

(WebCore::constructJSMutationObserver):

  • css/PropertySetCSSStyleDeclaration.cpp:
  • dom/ChildListMutationScope.cpp:

(WebCore::ChildListMutationAccumulator::enqueueMutationRecord):

  • dom/MutationCallback.h:
  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::create):
(WebCore::MutationObserver::MutationObserver):
(WebCore::MutationObserver::observe):
(WebCore::MutationObserver::takeRecords):
(WebCore::MutationObserver::enqueueMutationRecord):
(WebCore::MutationObserver::deliver):
(WebCore::MutationObserver::disconnect): Deleted.

  • dom/MutationObserver.h:
  • dom/MutationObserver.idl:
  • dom/MutationObserverInterestGroup.cpp:

(WebCore::MutationObserverInterestGroup::enqueueMutationRecord):

  • dom/MutationObserverInterestGroup.h:
  • dom/MutationRecord.cpp:

(WebCore::MutationRecord::createChildList):

  • dom/MutationRecord.h:

LayoutTests:

Rebaseline now that MutationObserver.observe() throws a TypeError instead
of a NOT_FOUND_ERR when passed a null Node.

  • fast/dom/MutationObserver/observe-exceptions-expected.txt:
8:58 AM Changeset in webkit [199877] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r189567): The top of Facebook's messenger.com looks visually broken
​https://bugs.webkit.org/show_bug.cgi?id=156869
<rdar://problem/23204668>

Reviewed by Zalan Bujtas.

Source/WebCore:

Added fast/block/min-content-with-box-sizing.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeContentLogicalHeight):

LayoutTests:

  • fast/block/min-content-with-box-sizing-expected.html: Added.
  • fast/block/min-content-with-box-sizing.html: Added.
5:49 AM Changeset in webkit [199876] by Carlos Garcia Campos
  • 6 edits in trunk

[GTK] Enable the download attribute support
​https://bugs.webkit.org/show_bug.cgi?id=99025

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsGTK.cmake:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

Unskip tests that should pass now.

  • platform/gtk/TestExpectations:
5:21 AM Changeset in webkit [199875] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

NetworkCacheIOChannelSoup: detach the newly-created IOChannel::readSync thread
​https://bugs.webkit.org/show_bug.cgi?id=156907

Reviewed by Carlos Garcia Campos.

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::IOChannel::readSyncInThread): Detach the new thread,
ensuring the resources are released after the thread exits. Next step is
to set up a thread pool and use that, avoiding thread re-creation.

5:08 AM WebKitGTK/Gardening/Calendar edited by Carlos Garcia Campos
(diff)
12:54 AM Changeset in webkit [199874] by Manuel Rego Casasnovas
  • 3 edits
    2 adds in trunk

[css-grid] Fix bug with positioned items in vertical writing mode
​https://bugs.webkit.org/show_bug.cgi?id=156870

Reviewed by Darin Adler.

Source/WebCore:

In RenderGrid::offsetAndBreadthForPositionedChild() we were using
directly borderLeft(), which is wrong in vertical writing modes.

To fix it we just need to use borderLogicalLeft() which is aware of
the current writing mode.

Test: fast/css-grid-layout/grid-positioned-children-writing-modes.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):

LayoutTests:

Add new test to check positioned items in different writing modes
and direction combinations.

  • fast/css-grid-layout/grid-positioned-children-writing-modes-expected.html: Added.
  • fast/css-grid-layout/grid-positioned-children-writing-modes.html: Added.
12:09 AM Changeset in webkit [199873] by jh718.park@samsung.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[ANGLE] Remove deprecated auto_ptr warning. Unreviewed.
​https://bugs.webkit.org/show_bug.cgi?id=156894

  • src/compiler/preprocessor/MacroExpander.h: Use std::unique_ptr instead of std::auto_ptr.

Apr 21, 2016:

11:58 PM Changeset in webkit [199872] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r199738): The ANGLE update broke accelerated compositing in GTK+ port
​https://bugs.webkit.org/show_bug.cgi?id=156789

Reviewed by Carlos Garcia Campos.

After the update, the ANGLE library has to be built with
ANGLE_ENABLE_ESSL and ANGLE_ENABLE_GLSL definitions in order
to compile in the support for the two translators that Linux-based
ports using OpenGL ES or OpenGL require. Missing files are also added.

  • CMakeLists.txt:
11:19 PM Changeset in webkit [199871] by Chris Dumez
  • 12 edits
    4 adds
    2 deletes in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from Document
​https://bugs.webkit.org/show_bug.cgi?id=156881

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Drop [UsePointersEvenForNonNullableObjectArguments] from Document. There
is no major Web-exposed behavior change but the type of the exception
being thrown when passing null or not enough parameters has changed for
some of the API (It is now always a TypeError as per the Web IDL
specification).

Tests: fast/dom/Document/adoptNode-null.html

fast/dom/Document/importNode-null.html

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::takeAllChildrenFrom):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserAppendChild):

  • dom/Document.cpp:

(WebCore::Document::importNode):
(WebCore::Document::adoptNode):
(WebCore::Document::createNodeIterator):
(WebCore::Document::createTreeWalker):
(WebCore::Document::setBodyOrFrameset):
(WebCore::Document::hasValidNamespaceForElements): Deleted.
(WebCore::Document::scheduleForcedStyleRecalc): Deleted.
(WebCore::Document::scheduleStyleRecalc): Deleted.
(WebCore::Document::unscheduleStyleRecalc): Deleted.
(WebCore::Document::hasPendingStyleRecalc): Deleted.
(WebCore::Document::hasPendingForcedStyleRecalc): Deleted.
(WebCore::Document::recalcStyle): Deleted.
(WebCore::Document::explicitClose): Deleted.

  • dom/Document.h:

(WebCore::Document::importNode):

  • dom/Document.idl:
  • dom/NodeIterator.cpp:

(WebCore::NodeIterator::NodeIterator):

  • dom/NodeIterator.h:

(WebCore::NodeIterator::create):

LayoutTests:

Add test cases for cases where the type of the exception being thrown
has changed.

  • fast/dom/Document/adoptNode-null-expected.txt: Added.
  • fast/dom/Document/adoptNode-null.html: Added.
  • fast/dom/Document/importNode-null-expected.txt: Added.
  • fast/dom/Document/importNode-null.html: Added.
  • fast/dom/importNode-null-expected.txt: Removed.
  • fast/dom/importNode-null.html: Removed.
11:07 PM Changeset in webkit [199870] by Darin Adler
  • 2 edits in trunk/Source/JavaScriptCore

Follow-on to the build fix.

  • runtime/MathCommon.h: Use the C++ std namespace version of the

frexp function too.

10:56 PM Changeset in webkit [199869] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

More improvements and explanations regarding resetting CSS properties on the <math> element
​https://bugs.webkit.org/show_bug.cgi?id=156840

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-21
Reviewed by Darin Adler.

We some follow-up improvements regarding CSS rules on the <math> element, after bug 133603:

  • We fix indenting to use 4 spaces.
  • We explain why we set -webkit-line-box-contain and add references to related bugs.
  • We explain why we reset some CSS spacing rules.
  • We explain why the direction is set to ltr.
  • We explain why font-family is set to a list of known math fonts and add reference to the wiki.
  • We mention the need to customize math fonts to get consistent style and add references to a bug report and to the wiki.
  • We described each of the math font listed and add some justification about their orders.
  • We better explain the section about fonts that do not satisfy the requirements for good mathematical rendering, reformulate why we still need them for iOS/Mac and we add some references to a bug report and to the wiki. Some fonts that not pre-installed were removed in r199773.
  • We add a FIXME comments for potential changes of CSS properties on the <math> tag.

We make the following changes to the lists of font-family:

  • We move "TeX Gyre Termes Math" into the Times group.
  • We move "Asana Math" into the Palatino group.
  • We remove iOS conditionals on "Symbol" and "Times New Roman".

No new tests, only order of math fonts that are not used by test framework is changed.

  • css/mathml.css:

(math): We merge the two math selectors, reorder some font-families, remove iOS ifdef and
add more description.

10:56 PM Changeset in webkit [199868] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix build break since r199866. Unreviewed.
​https://bugs.webkit.org/show_bug.cgi?id=156892

  • runtime/MathCommon.h: Add namespace std to isnormal invoking.
10:08 PM Changeset in webkit [199867] by commit-queue@webkit.org
  • 12 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Add primitive String support to compare operators
​https://bugs.webkit.org/show_bug.cgi?id=156783

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-21
Reviewed by Geoffrey Garen.

Just the basics.
We should eventually inline some of the simplest cases.

This is a 2% improvement on Longspider. It is unfortunately neutral
for Sunspider on my machine because most of the comparison are from
baseline.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compare):
(JSC::DFG::SpeculativeJIT::compileStringCompare):
(JSC::DFG::SpeculativeJIT::compileStringIdentCompare):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareLess):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareLessEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareGreater):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareGreaterEq):
(JSC::FTL::DFG::LowerDFGToB3::compare):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::callWithoutSideEffects):

  • jit/JITOperations.h:
  • tests/stress/string-compare.js: Added.

(makeRope):
(makeString):
(let.operator.of.operators.eval.compareStringIdent):
(let.operator.of.operators.compareStringString):
(let.operator.of.operators.compareStringIdentString):
(let.operator.of.operators.compareStringStringIdent):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.eval):

9:46 PM Changeset in webkit [199866] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Commute FDiv-by-constant into FMul-by-reciprocal when it is safe
​https://bugs.webkit.org/show_bug.cgi?id=156871

Patch by Benjamin Poulain <​bpoulain@webkit.org> on 2016-04-21
Reviewed by Filip Pizlo.

FMul is significantly faster than FDiv.
For example, on Haswell, FMul has a latency of 5, a throughput of 1
while FDiv has latency 10-24, throughput 8-18.

Fortunately for us, Sunspider and Kraken have plenty of division
by a simple power of 2 constant. Those are just exponent operations
and can be easily reversed to use FMul instead of FDiv.

LLVM does something similar in InstCombine.

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::loadOperand):
(JSC::JITDivGenerator::generateFastPath):

  • jit/SnippetOperand.h:

(JSC::SnippetOperand::asConstNumber):

  • runtime/MathCommon.h:

(JSC::safeReciprocalForDivByConst):

  • tests/stress/floating-point-div-to-mul.js: Added.

(opaqueDivBy2):
(opaqueDivBy3):
(opaqueDivBy4):
(opaqueDivBySafeMaxMinusOne):
(opaqueDivBySafeMax):
(opaqueDivBySafeMaxPlusOne):
(opaqueDivBySafeMin):
(opaqueDivBySafeMinMinusOne):
(i.catch):
(i.result.opaqueDivBySafeMin.valueOf):

9:29 PM Changeset in webkit [199865] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Improve the absThunkGenerator() for 64bit
​https://bugs.webkit.org/show_bug.cgi?id=156888

Reviewed by Michael Saboff.

A few tests spend a lot of time in this abs() with double argument.

This patch adds custom handling for the JSValue64 representation.
In particular:
-Do not load the value twice. Unbox the GPR if it is not an Int32.
-Deal with IntMin inline instead of falling back to the C function call.
-Box the values ourself to avoid a duplicate function tail and return.

  • jit/ThunkGenerators.cpp:

(JSC::absThunkGenerator):

9:26 PM Changeset in webkit [199864] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

LLInt CallSiteIndex off by 1
​https://bugs.webkit.org/show_bug.cgi?id=156886

Reviewed by Benjamin Poulain.

I think was done for historical reasons but isn't needed anymore.

  • llint/LLIntSlowPaths.cpp:
7:28 PM Changeset in webkit [199863] by keith_miller@apple.com
  • 9 edits
    1 add in trunk/Source/JavaScriptCore

FTL should handle exceptions in operationInOptimize
​https://bugs.webkit.org/show_bug.cgi?id=156885

Reviewed by Michael Saboff.

For some reasone we didn't handle any exceptions in "in" when we called
operationInOptimize in the FTL.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpAssumingJITType):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileIn):

  • ftl/FTLPatchpointExceptionHandle.h: Add comments explaining which

function to use for different exception types.

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionNoFTL):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::ScriptExecutable):

  • runtime/Executable.h:

(JSC::ScriptExecutable::setNeverFTLOptimize):
(JSC::ScriptExecutable::neverFTLOptimize):

  • tests/stress/in-ftl-exception-check.js: Added.

(foo):
(bar):
(catch):

6:48 PM Changeset in webkit [199862] by dino@apple.com
  • 9 edits
    6 adds in trunk

Backdrop Filter should not be visible if element has visibility:hidden
​https://bugs.webkit.org/show_bug.cgi?id=149318
<rdar://problem/22749780>

Reviewed by Simon Fraser.

Source/WebCore:

Make sure that backdrop filter layers take note of when
the contents are visible or not.

Tests: css3/filters/backdrop/backdrop-with-visibility-hidden-changing.html

css3/filters/backdrop/backdrop-with-visibility-hidden.html
css3/filters/backdrop/backdrop-with-visibility-hidden-2.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateContentsVisibility): Tell the backdrop layer about the
change if there is one.
(WebCore::GraphicsLayerCA::updateBackdropFilters): When we update filters, make
sure to check the contents visibility.
(WebCore::dumpInnerLayer): Output "hidden" if the layer is set as such.

  • platform/graphics/ca/PlatformCALayer.h: Add an isHidden method.
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::isHidden): Call into CALayer isHidden.

Source/WebKit2:

Add the isHidden method to PlatformCALayerRemote.

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::isHidden):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:

LayoutTests:

Three tests that check if a backdrop filter should be visible when
its owning element is visibility hidden.

  • css3/filters/backdrop/backdrop-with-visibility-hidden-changing-expected.txt: Added.
  • css3/filters/backdrop/backdrop-with-visibility-hidden-changing.html: Added.
  • css3/filters/backdrop/backdrop-with-visibility-hidden-expected.txt: Added.
  • css3/filters/backdrop/backdrop-with-visibility-hidden.html: Added.
  • css3/filters/backdrop/backdrop-with-visibility-hidden-2.html: Added.
  • css3/filters/backdrop/backdrop-with-visibility-hidden-2-expected.html: Added.
6:25 PM Changeset in webkit [199861] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSC virtual call thunk shouldn't do a structure->classInfo lookup
​https://bugs.webkit.org/show_bug.cgi?id=156874

Reviewed by Keith Miller.

This lookup was unnecessary because we can just test the inlined type field.

But also, this meant that we were exempting JSBoundFunction from the virtual call optimization.
That's pretty bad.

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):

6:23 PM Changeset in webkit [199860] by bshafiei@apple.com
  • 5 edits in branches/safari-601.6.16-branch/Source

Versioning.

6:21 PM Changeset in webkit [199859] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.6.16.1

New tag.

6:18 PM Changeset in webkit [199858] by bshafiei@apple.com
  • 9 edits in branches/safari-601.6.16-branch

Merged r199762. rdar://problem/25786278

6:15 PM Changeset in webkit [199857] by bshafiei@apple.com
  • 5 edits in branches/safari-601.6.16-branch/Source

Versioning.

6:13 PM Changeset in webkit [199856] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

RenderVideo should always update the intrinsic size before layout.
​https://bugs.webkit.org/show_bug.cgi?id=156878

Reviewed by Simon Fraser.

In order to layout video element properly we need to know the correct intrinsic size.
This patch also asserts if we end up updating the intrinsic size right after finishing video renderer layout.

This issues was discovered as part of webkit.org/b/156245. (hence covered by existing tests)

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::updateIntrinsicSize):
(WebCore::RenderVideo::layout):
(WebCore::RenderVideo::updatePlayer):

  • rendering/RenderVideo.h:
6:11 PM Changeset in webkit [199855] by bshafiei@apple.com
  • 1 copy in branches/safari-601.6.16-branch

New Branch.

6:05 PM Changeset in webkit [199854] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

WKWebView HTML5 AppCache not working
​https://bugs.webkit.org/show_bug.cgi?id=156887
rdar://problem/17944162

Reviewed by Tim Horton.

  • Shared/WebPreferencesDefinitions.h:

Set the offlineWebApplicationCacheEnabled property to true by default.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultDataStoreConfiguration):
Set the default applicationCacheFlatFileSubdirectoryName to "Files".

6:03 PM Changeset in webkit [199853] by beidson@apple.com
  • 12 edits in trunk

Modern IDB (Workers): Get the IDBConnectionProxy from the Document to the WorkerGlobalScope.
​https://bugs.webkit.org/show_bug.cgi?id=156877

Reviewed by Tim Horton.

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope): This is the point on the main thread

where we can get the IDBConnectionProxy from the Document and pass it down through Worker
machinery so it can end up at the WorkerGlobalScope.

Everything else is this patch is just passing it along as needed.

And cleaning up header style for neglected headers.

  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerThread.cpp:

(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):

  • workers/DedicatedWorkerThread.h:

(WebCore::DedicatedWorkerThread::create):
(WebCore::DedicatedWorkerThread::workerObjectProxy):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::idbConnectionProxy):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::idbConnectionProxy):

  • workers/WorkerThread.h:

(WebCore::WorkerThread::threadID):
(WebCore::WorkerThread::runLoop):
(WebCore::WorkerThread::workerLoaderProxy):
(WebCore::WorkerThread::workerReportingProxy):
(WebCore::WorkerThread::getNotificationClient):
(WebCore::WorkerThread::setNotificationClient):
(WebCore::WorkerThread::workerGlobalScope):

LayoutTests:

  • storage/indexeddb/modern/workers-enable-expected.txt:
5:50 PM Changeset in webkit [199852] by commit-queue@webkit.org
  • 20 edits
    2 adds in trunk

Web Inspector: sourceMappingURL not loaded in generated script
​https://bugs.webkit.org/show_bug.cgi?id=156022
<rdar://problem/25438595>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-21
Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
Synthetic CallFrames for native code will not have script identifiers.

  • inspector/ScriptCallFrame.cpp:

(Inspector::ScriptCallFrame::ScriptCallFrame):
(Inspector::ScriptCallFrame::isEqual):
(Inspector::ScriptCallFrame::buildInspectorObject):

  • inspector/ScriptCallFrame.h:
  • inspector/protocol/Console.json:

Include the script identifier in ScriptCallFrame so we can correlate this
to the exactly script, even if there isn't a URL. The Script may have a
sourceURL, so the Web Inspector frontend may decide to show / link to it.

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::CreateScriptCallStackFunctor::operator()):
(Inspector::createScriptCallStackFromException):
Include SourceID when we have it.

  • interpreter/Interpreter.cpp:

(JSC::GetStackTraceFunctor::operator()):

  • interpreter/Interpreter.h:
  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::sourceID):

  • interpreter/StackVisitor.h:

Access the SourceID when we have it.

Source/WebInspectorUI:

  • UserInterface/Controllers/SourceMapManager.js:

(WebInspector.SourceMapManager.prototype.downloadSourceMap):
If the sourceMapURL is a dataURL at this point, we can just pass it on,
otherwise we would have returned and skipped it.

  • UserInterface/Models/CallFrame.js:

(WebInspector.CallFrame.fromPayload):
Add handling for "scriptId" if it is available in the Console.CallFrame.
Don't automatically mark CallFrames that didn't have a "url" as native,
instead try to get a SourceCode.

  • UserInterface/Models/Script.js:

(WebInspector.Script.prototype.get displayURL):
Used by SourceCodeLocation formatting, so behave more like Resources
when we have only have a sourceURL name. This produces output like:
"foo.js:#:#" instead of "foo.js (line #:#)"

(WebInspector.Script.prototype.get anonymous):
Easy accessor to see if this would be treated as anonymous or not.

  • UserInterface/Models/SourceMap.js:

(WebInspector.SourceMap.prototype.get sourceMappingBasePathURLComponents):
Gracefully handle no path.

  • UserInterface/Models/StackTrace.js:

(WebInspector.StackTrace.prototype.get firstNonNativeCallFrame):
(WebInspector.StackTrace.prototype.get firstNonNativeNonAnonymousCallFrame):

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
Now that "Eval Code" with a sourceURL is no longer native, we still don't
want to show it in the Web Inspector if it is anonymous. So include a stricter
version that skips native and anonymous call frames.

LayoutTests:

  • inspector/console/messageAdded-from-named-evaluations-expected.txt: Added.
  • inspector/console/messageAdded-from-named-evaluations.html: Added.
  • inspector/debugger/js-stacktrace-expected.txt:
  • inspector/model/stack-trace-expected.txt:
5:33 PM Changeset in webkit [199851] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix crashes when loading SVG images.

  • loader/EmptyClients.cpp:

(WebCore::fillWithEmptyClients):
Give the SVG page its own application cache storage.

5:27 PM Changeset in webkit [199850] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fix the iOS build: WAKView may not respond to drawLayer:inContext:
​https://bugs.webkit.org/show_bug.cgi?id=156879
<rdar://problem/25772661>

Reviewed by Beth Dakin.

  • WebView/WebHTMLView.mm:

WebHTMLView on iOS never uses drawLayer:inContext:, and WAKView
doesn't implement it, so this would have thrown an exception
if called, anyway. Fix the build with stricter CA protocols.

5:18 PM Changeset in webkit [199849] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Get rid of ApplicationCacheStorage::singleton
​https://bugs.webkit.org/show_bug.cgi?id=156882

Reviewed by Tim Horton.

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::setCacheDirectory): Deleted.
(WebCore::ApplicationCacheStorage::singleton): Deleted.

  • loader/appcache/ApplicationCacheStorage.h:
  • page/Page.cpp:

(WebCore::Page::Page):

5:09 PM Changeset in webkit [199848] by sbarati@apple.com
  • 8 edits in trunk/Source

Lets do less locking of symbol tables in the BytecodeGenerator where we don't have race conditions
​https://bugs.webkit.org/show_bug.cgi?id=156821

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

The BytecodeGenerator allocates all the SymbolTables that it uses.
This is before any concurrent compiler thread can use that SymbolTable.
This means we don't actually need to lock for any operations of the
SymbolTable. This patch makes this change by removing all locking.
To do this, I've introduced a new constructor for ConcurrentJITLocker
which implies no locking is necessary. You instantiate such a ConcurrentJITLocker like so:
ConcurrentJITLocker locker(ConcurrentJITLocker::NoLockingNecessary);

This patch also removes all uses of Strong<SymbolTable> from the bytecode
generator and instead wraps bytecode generation in a DeferGC.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::instantiateLexicalVariables):
(JSC::BytecodeGenerator::emitPrefillStackTDZVariables):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitPushWithScope):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::constructorKind):
(JSC::BytecodeGenerator::superBinding):
(JSC::BytecodeGenerator::generate):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):

  • runtime/ConcurrentJITLock.h:

(JSC::ConcurrentJITLockerBase::ConcurrentJITLockerBase):
(JSC::ConcurrentJITLockerBase::~ConcurrentJITLockerBase):
(JSC::ConcurrentJITLocker::ConcurrentJITLocker):

Source/WTF:

This patch introduces a new constructor for Locker which implies no
locking is necessary. You instantiate such a locker like so:
Locker<Lock> locker(Locker<Lock>::NoLockingNecessary);

This is useful to for very specific places when it is not yet
required to engage in a specified locking protocol. As an example,
we use this in JSC when we allocate a particular object that
engages in a locking protocol with the concurrent compiler thread,
but before a concurrent compiler thread that could have access
to the object exists.

  • wtf/Locker.h:

(WTF::Locker::Locker):
(WTF::Locker::~Locker):

5:08 PM Changeset in webkit [199847] by Simon Fraser
  • 4 edits
    4 adds in trunk

ASSERTION FAILED: accumulation == TransformState::FlattenTransform in WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect
​https://bugs.webkit.org/show_bug.cgi?id=155362

Reviewed by Zalan Bujtas.

Source/WebCore:

A particular configuration of composited RenderLayers with preserve-3d and clipping
caused assertions because an ancestor clipping layer had masksToBounds() set, but
a preserves3D() parent, triggering an assertion in GraphicsLayerCA::computeVisibleAndCoverageRect().
Make two changes to address this:

First, CSS clip: and clip-path: should force flattening and override preserve-3d in
the RenderStyle.

Second, don't accumulate transforms in GraphicsLayerCA through layers with masksToBounds().

Tests: compositing/clipping/preserve3d-flatten-assertion-nested.html

compositing/clipping/preserve3d-flatten-assertion.html

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::accumulatesTransform):

LayoutTests:

Test cases that should not assert in debug builds.

  • compositing/clipping/preserve3d-flatten-assertion-nested.html: Added.
  • compositing/clipping/preserve3d-flatten-assertion.html: Added.
4:56 PM Changeset in webkit [199846] by jer.noble@apple.com
  • 7 edits in trunk/Source/WebKit/mac

[WK1] Add WebPlaybackSession support to WebKit
​https://bugs.webkit.org/show_bug.cgi?id=156854

Reviewed by Beth Dakin.

Add support for WebPlaybackSession and the ChromeClient methods setUpPlaybackControlsManager() and
clearPlaybackControlsManager() to WebKit.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::setUpPlaybackControlsManager):
(WebChromeClient::clearPlaybackControlsManager):

  • WebView/WebView.mm:

(-[WebView _hasActiveVideoForControlsInterface]):
(-[WebView _setUpPlaybackControlsManagerForMediaElement:]):
(-[WebView _clearPlaybackControlsManagerForMediaElement:]):

  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:
  • WebView/WebViewInternal.h:
4:30 PM Changeset in webkit [199845] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Remove some unnecessary RefPtrs in the parser
​https://bugs.webkit.org/show_bug.cgi?id=156865

Reviewed by Filip Pizlo.

The IdentifierArena or the SourceProviderCacheItem will own these UniquedStringImpls
while we are using them. There is no need for us to reference count them.

This might be a 0.5% speedup on octane code-load.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):

  • parser/Parser.h:

(JSC::Scope::setIsLexicalScope):
(JSC::Scope::isLexicalScope):
(JSC::Scope::closedVariableCandidates):
(JSC::Scope::declaredVariables):
(JSC::Scope::lexicalVariables):
(JSC::Scope::finalizeLexicalEnvironment):
(JSC::Scope::computeLexicallyCapturedVariablesAndPurgeCandidates):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::getCapturedVars):
(JSC::Scope::setStrictMode):
(JSC::Scope::isValidStrictMode):
(JSC::Scope::shadowsArguments):
(JSC::Scope::copyCapturedVariablesToVector):

  • parser/SourceProviderCacheItem.h:

(JSC::SourceProviderCacheItem::usedVariables):
(JSC::SourceProviderCacheItem::~SourceProviderCacheItem):
(JSC::SourceProviderCacheItem::create):
(JSC::SourceProviderCacheItem::SourceProviderCacheItem):
(JSC::SourceProviderCacheItem::writtenVariables): Deleted.

4:28 PM Changeset in webkit [199844] by Chris Dumez
  • 9 edits in trunk/Source/WebCore

Element::idForStyleResolution() is a foot-gun
​https://bugs.webkit.org/show_bug.cgi?id=156852

Reviewed by Darin Adler.

Element::idForStyleResolution() is a foot-gun. It requires the caller to check
Element::hasID() first or it may end up crashing when dereferencing elementData()
(e.g. see Bug 156806).

This patch updates Element::idForStyleResolution() to return nullAtom is the
Element does not have an ID. I did not see a performance impact on Speedometer,
Dromaeo DOM Core, Dromaeo CSS Selectors and our local performanceTests/.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::collectMatchingRules):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

  • css/SelectorFilter.cpp:

(WebCore::collectElementIdentifierHashes):

  • dom/Element.h:

(WebCore::Element::idForStyleResolution):

  • rendering/RenderBlockFlow.cpp:

(WebCore::needsAppleMailPaginationQuirk):

  • rendering/RenderTreeAsText.cpp:

(WebCore::writeRenderRegionList):

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):

4:25 PM Changeset in webkit [199843] by beidson@apple.com
  • 9 edits in trunk/Source/WebCore

Modern IDB (Workers): Move IDBConnectionProxy into IDBRequest and IDBDatabase.
​https://bugs.webkit.org/show_bug.cgi?id=156868

Reviewed by Tim Horton.

No new tests (No behavior change).

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::create):
(WebCore::IDBDatabase::IDBDatabase):
(WebCore::IDBDatabase::~IDBDatabase):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::maybeCloseInServer):

  • Modules/indexeddb/IDBDatabase.h:

(WebCore::IDBDatabase::connectionProxy):
(WebCore::IDBDatabase::serverConnection):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::createDeleteRequest):
(WebCore::IDBOpenDBRequest::createOpenRequest):
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::maybeCreateDeleteRequest): Deleted.
(WebCore::IDBOpenDBRequest::maybeCreateOpenRequest): Deleted.

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

(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::connectionToServer): Deleted.

  • Modules/indexeddb/IDBRequest.h:

(WebCore::IDBRequest::connectionProxy):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):

4:06 PM Changeset in webkit [199842] by andersca@apple.com
  • 11 edits in trunk/Source/WebKit2

Get rid of the last uses of ApplicationCacheStorage::singleton() from WebKit2
​https://bugs.webkit.org/show_bug.cgi?id=156876

Reviewed by Tim Horton.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:

Add and encode and decode a applicationCacheFlatFileSubdirectoryName.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
Set m_applicationCacheFlatFileSubdirectoryName to "ApplicationCache".

(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
Set m_applicationCacheFlatFileSubdirectoryName to "Files".

(API::ProcessPoolConfiguration::copy):
Copy m_applicationCacheFlatFileSubdirectoryName.

  • UIProcess/API/APIProcessPoolConfiguration.h:

Add getter for applicationCacheFlatFileSubdirectoryName.

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration):
Initialize applicationCacheFlatFileSubdirectoryName from the process pool configuration.

(WebKit::WebProcessPool::createNewWebProcess):
Initialize parameters.applicationCacheFlatFileSubdirectoryName. Remove a call to
ApplicationCacheStorage::singleton().setDefaultOriginQuota since it had no effect (it was called in the UI process).

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
Initialize m_applicationCacheFlatFileSubdirectoryName.

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
Pass m_applicationCacheFlatFileSubdirectoryName when creating the application cache storage.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Add new members.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
Set the application cache storage.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
Initialize the application cache storage.

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::applicationCacheStorage):
Add new getter.

4:03 PM Changeset in webkit [199841] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/win

Add a missing space, as noticed by Darin.

  • WebApplicationCache.cpp:

(applicationCachePath):

3:50 PM Changeset in webkit [199840] by jiewen_tan@apple.com
  • 4 edits in trunk

[iOS] DumpRenderTree crashed in com.apple.WebCore: WebCore::ResourceLoadNotifier::didFailToLoad
​https://bugs.webkit.org/show_bug.cgi?id=156829
<rdar://problem/23348217>

Reviewed by Daniel Bates.

Source/WebCore:

Ensure that the frame associated with the ResourceLoadNotifier is kept alive when notifying the Web Inspector.

Covered by existing tests.

  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::didFailToLoad):
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveData):
(WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
(WebCore::ResourceLoadNotifier::dispatchDidFailLoading):

LayoutTests:

Unmark imported/blink/http/tests/css/remove-placeholder-styles.html as flaky because of bug fix.

  • platform/ios-simulator-wk1/TestExpectations:
3:24 PM Changeset in webkit [199839] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Remove two uses of ApplicationCacheStorage::singleton() from WebKit2
​https://bugs.webkit.org/show_bug.cgi?id=156873

Reviewed by Beth Dakin.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::clearApplicationCache): Deleted.

  • WebProcess/WebProcess.h:
3:24 PM Changeset in webkit [199838] by commit-queue@webkit.org
  • 6 edits
    2 moves in trunk

Web Inspector: Debugger statement gets a space after it when pretty printed
​https://bugs.webkit.org/show_bug.cgi?id=156867
<rdar://problem/25862308>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-21
Reviewed by Geoffrey Garen.

Source/WebInspectorUI:

  • Tools/Formatting/index.html:
  • UserInterface/Workers/Formatter/EsprimaFormatter.js:

(EsprimaFormatter.prototype._handleTokenAtNode):
Handle the unhandled DebuggerStatement node type.

LayoutTests:

  • inspector/formatting/formatting-javascript-expected.txt:
  • inspector/formatting/formatting-javascript.html:
  • inspector/formatting/resources/javascript-tests/other-statements-expected.js: Renamed from LayoutTests/inspector/formatting/resources/javascript-tests/throw-statement-expected.js.
  • inspector/formatting/resources/javascript-tests/other-statements.js: Renamed from LayoutTests/inspector/formatting/resources/javascript-tests/throw-statement.js.
3:11 PM Changeset in webkit [199837] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

PolymorphicAccess adds sizeof(CallerFrameAndPC) rather than subtracting it when calculating stack height
​https://bugs.webkit.org/show_bug.cgi?id=156872

Reviewed by Geoffrey Garen.

The code that added sizeof(CallerFrameAndPC) emerged from a bad copy-paste in r189586. That was
the revision that created the PolymorphicAccess class. It moved code for generating a
getter/setter call from Repatch.cpp to PolymorphicAccess.cpp. You can see the code doing a
subtraction here:

​http://trac.webkit.org/changeset/189586/trunk/Source/JavaScriptCore/jit/Repatch.cpp


This makes the world right again.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateImpl):

2:16 PM Changeset in webkit [199836] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit/win

Stop using ApplicationCacheStorage::singleton() on Windows
​https://bugs.webkit.org/show_bug.cgi?id=156861

Reviewed by Darin Adler.

  • WebApplicationCache.cpp:

(applicationCachePath):
(WebApplicationCache::storage):

  • WebApplicationCache.h:
  • WebCache.cpp:

(WebCache::empty):

  • WebView.cpp:

(WebView::initWithFrame):
(WebKitSetApplicationCachePathIfNecessary): Deleted.

2:08 PM Changeset in webkit [199835] by beidson@apple.com
  • 12 edits in trunk

Modern IDB (Workers): More IDBConnectionProxy refactoring.
​https://bugs.webkit.org/show_bug.cgi?id=156855

Reviewed by Darin Adler.

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::indexedDB):

Hang on to the IDBConnectionProxy passed in at creation time, as it should never change:

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::create):
(WebCore::IDBFactory::IDBFactory):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/indexeddb/IDBFactory.h:

Hang on to the IDBConnectionProxy passed in at creation time, as it should never change:

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:

(WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
(WebCore::WorkerGlobalScopeIndexedDatabase::from):
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:

Make IDBConnectionProxy ThreadSafeRefCounted:

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::create):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • dom/Document.cpp:

(WebCore::Document::idbConnectionProxy):

  • dom/Document.h:

LayoutTests:

  • storage/indexeddb/modern/workers-enable-expected.txt: Revert some of the PASS expectations to FAIL, just for now.
2:00 PM Changeset in webkit [199834] by keith_miller@apple.com
  • 4 edits
    2 adds in trunk

WebScriptObject description swizzler should work in a multi-threaded world
​https://bugs.webkit.org/show_bug.cgi?id=156808

Source/WebCore:

Reviewed by Geoffrey Garen.

A WebKit legacy API user might be running Objective-C code on another thread.
Since we don't want to corrupt other thread's NSObject description method
we use TLS to record if we are in the stringValue function. As an attempt to
preserve any user swizzling we update the non-stringValue NSObject description
method on each call to stringValue if it has changed. Additionally, the TLS
needs to be a int because the user might call into stringValue, back into JS,
then back into stringValue. If the TLS was a boolean then it would be unset
at that point so when we return into the first stringValue call we would call
the original NSObject description method rather than our override.

Test added to API tests: WebKit1.WebScriptObjectDescription

  • bridge/objc/objc_instance.mm:

(-[NSObject _web_description]):
(ObjcInstance::stringValue):
(swizzleNSObjectDescription): Deleted.

Tools:

Add a test for our NSObject swizzling TLS implementation. The test runs on
two threads. One in JS and another in Objective-C. We expect the JS thread
to use our NSObject description override and the Objective-C thread to act
as though it was using the original NSObject description method.

Reviewed by Geoffrey Garen.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/WebScriptObjectDescription.html: Added.
  • TestWebKitAPI/Tests/mac/WebScriptObjectDescription.mm: Added.

(nsObjectDescriptionTest):
(-[WebScriptDescriptionTest webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):

1:23 PM Changeset in webkit [199833] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Build warning: CODE_SIGN_ENTITLEMENTS specified without specifying CODE_SIGN_IDENTITY
​https://bugs.webkit.org/show_bug.cgi?id=156862

Reviewed by Joseph Pecoraro.

  • Configurations/Base.xcconfig: Specify the ad hoc signing identity by

default. See <​http://trac.webkit.org/changeset/143544>.

1:21 PM Changeset in webkit [199832] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::setLegibleMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::invalidate):

1:18 PM Changeset in webkit [199831] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

32 bit build fix.

  • platform/mac/WebPlaybackSessionInterfaceMac.mm:
1:07 PM Changeset in webkit [199830] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Fixed compilation with !ENABLE(SVG_FONTS).
​https://bugs.webkit.org/show_bug.cgi?id=156850

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-21
Reviewed by Michael Catanzaro.

No new tests needed.

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):
Added missing ENABLE(SVG_FONTS) guards.

  • css/CSSFontFaceSource.h: Ditto.
  • platform/graphics/FontCascade.cpp: Ditto.
  • svg/SVGToOTFFontConversion.cpp:

(WebCore::FontCascade::drawGlyphBuffer): Deleted extraneous
!ENABLE(SVG_FONTS) guard.

1:05 PM Changeset in webkit [199829] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Stop using ApplicationCacheStorage::singleton() in WebKitLegacy
​https://bugs.webkit.org/show_bug.cgi?id=156859

Reviewed by Tim Horton.

  • WebCoreSupport/WebApplicationCache.mm:

(+[WebApplicationCache initializeWithBundleIdentifier:]):
Change this to just store the bundle identifier.

(applicationCacheBundleIdentifier):
Helper function that returns the bundle identifier for the app cache.

(applicationCachePath):
Return the application cache path.

(webApplicationCacheStorage):
Create a new ApplicationCacheStorage object.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Set pageConfiguration.applicationCacheStorage to webApplicationCacheStorage().

(WebKitInitializeApplicationCachePathIfNecessary): Deleted.

12:37 PM Changeset in webkit [199828] by Beth Dakin
  • 8 edits in trunk/Source

showCandidates() should take a range and the string should be the whole
paragraph
​https://bugs.webkit.org/show_bug.cgi?id=156813
-and corresponding-
rdar://problem/25760533

Reviewed by Tim Horton.

Source/WebKit/mac:

Cache the range and the paragraph since we compute them in
requestCandidatesForSelection, and then we can use them again in
handleRequestedCandidates.

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::requestCandidatesForSelection):
(WebEditorClient::handleRequestedCandidates):

  • WebView/WebView.mm:

(-[WebView updateWebViewAdditions]):
(-[WebView showCandidates:forString:inRect:forSelectedRange:view:completionHandler:]):
(-[WebView showCandidates:forString:inRect:view:completionHandler:]): Deleted.

  • WebView/WebViewInternal.h:

Source/WebKit2:

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateWebViewImplAdditions):
(WebKit::WebViewImpl::showCandidates):
(WebKit::WebViewImpl::requestCandidatesForSelectionIfNeeded):
(WebKit::WebViewImpl::handleRequestedCandidates):

12:36 PM Changeset in webkit [199827] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Remove reliance on WebAVMediaSelectionOptionMac for the
WebPlaybackControlsManager
​https://bugs.webkit.org/show_bug.cgi?id=156811
-and corresponding-
rdar://problem/25760523

Reviewed by Jer Noble.

  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(-[WebPlaybackControlsManager setSeekableTimeRanges:]):
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]):
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]):
(WebCore::WebPlaybackSessionInterfaceMac::~WebPlaybackSessionInterfaceMac):
(WebCore::WebPlaybackSessionInterfaceMac::setSeekableRanges):
(WebCore::WebPlaybackSessionInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::setLegibleMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::invalidate):
(-[WebAVMediaSelectionOptionMac localizedDisplayName]): Deleted.
(-[WebAVMediaSelectionOptionMac setLocalizedDisplayName:]): Deleted.
(-[WebPlaybackControlsManager isSeeking]): Deleted.
(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]): Deleted.
(-[WebPlaybackControlsManager audioMediaSelectionOptions]): Deleted.
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:]): Deleted.
(-[WebPlaybackControlsManager currentAudioMediaSelectionOption]): Deleted.
(-[WebPlaybackControlsManager setCurrentAudioMediaSelectionOption:]): Deleted.
(-[WebPlaybackControlsManager legibleMediaSelectionOptions]): Deleted.
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:]): Deleted.
(-[WebPlaybackControlsManager currentLegibleMediaSelectionOption]): Deleted.
(-[WebPlaybackControlsManager setCurrentLegibleMediaSelectionOption:]): Deleted.
(-[WebPlaybackControlsManager cancelThumbnailAndAudioAmplitudeSampleGeneration]): Deleted.
(WebCore::mediaSelectionOptions): Deleted.

12:03 PM Changeset in webkit [199826] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip <area ping> tests on ios-simulator
​https://bugs.webkit.org/show_bug.cgi?id=156857

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
11:11 AM Changeset in webkit [199825] by youenn.fablet@crf.canon.fr
  • 8 edits in trunk/LayoutTests/imported/w3c

[Fetch API] Improve some fetch response streams tests
​https://bugs.webkit.org/show_bug.cgi?id=156848

Reviewed by Darin Adler.

Most important changes are for response-stream-disturbed-2.html and response-stream-disturbed-5.html which were broken.
response-stream-disturbed-2.html was calling an undefined function and was expecting to get a resolved promise while it should be rejected.
response-stream-disturbed-5.html was expecting to have a null body if data is consumed.
After rereading the spec, this test is non conformant, as the body should not be null, but getting the reader should throw.

  • web-platform-tests/fetch/api/resources/utils.js: Adding delay helper function.
  • web-platform-tests/fetch/api/response/response-cancel-stream.html: Using delay function.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-1.html: Removing unused function.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-2-expected.txt: Rebasing
  • web-platform-tests/fetch/api/response/response-stream-disturbed-2.html: Fixing test.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-5-expected.txt: Rebasing
  • web-platform-tests/fetch/api/response/response-stream-disturbed-5.html: Fixing test.
11:11 AM Changeset in webkit [199824] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

LayoutTest http/tests/media/hls/video-controls-live-stream.html is sometimes flaky
​https://bugs.webkit.org/show_bug.cgi?id=156851
<rdar://problem/25792102>

Reviewed by Daniel Bates.

  • http/tests/media/hls/video-controls-live-stream.html: Only listen for events once because we don't care if they fire more often.
11:10 AM Changeset in webkit [199823] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS] Allow clients to hide the accessory view on a form input session
​https://bugs.webkit.org/show_bug.cgi?id=155574

Patch by Chelsea Pugh <​cpugh@apple.com> on 2016-04-21
Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/_WKFormInputSession.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFormInputSession accessoryViewShouldNotShow]): Getter for accessoryViewShouldNotShow.
(-[WKFormInputSession setAccessoryViewShouldNotShow:]): Set accessoryViewShouldNotShow and reload input views.
(-[WKContentView requiresAccessoryView]): If the accessory view should be not be shown, do not require
the accessory view.

11:03 AM Changeset in webkit [199822] by dbates@webkit.org
  • 2 edits
    9 adds in trunk/LayoutTests

Add tests for <area ping>
​https://bugs.webkit.org/show_bug.cgi?id=79438
<rdar://problem/22586699>

Reviewed by Alexey Proskuryakov.

  • http/tests/navigation/ping-attribute/anchor-cookie.html: Extracted out code into functions setCookie(),

clearLastPingResultAndRunTest() and clickElement() (defined in utilities.js) so that they can be
used by this test and others. Also added HTML5 doctype declaration since it is unnecessary to run
this test in quirks mode.

  • http/tests/navigation/ping-attribute/area-cookie-expected.txt: Added.
  • http/tests/navigation/ping-attribute/area-cookie.html: Added.
  • http/tests/navigation/ping-attribute/area-cross-origin-expected.txt: Added.
  • http/tests/navigation/ping-attribute/area-cross-origin-from-https-expected.txt: Added.
  • http/tests/navigation/ping-attribute/area-cross-origin-from-https.html: Added.
  • http/tests/navigation/ping-attribute/area-cross-origin.html: Added.
  • http/tests/navigation/ping-attribute/area-same-origin-expected.txt: Added.
  • http/tests/navigation/ping-attribute/area-same-origin.html: Added.
  • http/tests/navigation/ping-attribute/resources/utilities.js: Added.

(setCookie):
(clearLastPingResultAndRunTest.done):
(clearLastPingResultAndRunTest):
(clickElement):

10:02 AM Changeset in webkit [199821] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

REGRESSION(198782): ImageSource::subsamplingLevelForScale() does not cache the MaximumSubsamplingLevel for this ImageSource
​https://bugs.webkit.org/show_bug.cgi?id=156766

Patch by Said Abou-Hallawa <​sabouhallawa@apple.com> on 2016-04-21
Reviewed by Darin Adler.

Ensure the MaximumSubsamplingLevel for the ImageSource is calculated
only once and is cached for subsequent uses.

The image subsampling is on by default only for iOS. So the and this
patch currently affects the iOS port.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::cacheMetadata): Cache m_maximumSubsamplingLevel.
Use m_frameCount as a flag for having_the_cache_done.
(WebCore::ImageSource::subsamplingLevelForScale): Call cacheMetadata()
before using m_maximumSubsamplingLevel.
(WebCore::ImageSource::frameCount): Call cacheMetadata() before returning
m_frameCount.

  • platform/graphics/ImageSource.h:
9:44 AM Changeset in webkit [199820] by aestes@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r199734): WebKit crashes loading numerous websites in iOS Simulator
​https://bugs.webkit.org/show_bug.cgi?id=156842

Reviewed by Daniel Bates.

Disable separated heap on iOS Simulator.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

9:38 AM Changeset in webkit [199819] by commit-queue@webkit.org
  • 12 edits
    8 adds in trunk

Creating a large number of WebGL contexts should recycle older contexts
​https://bugs.webkit.org/show_bug.cgi?id=156689
<rdar://problem/19535330>

Patch by Antoine Quint <Antoine Quint> on 2016-04-21
Reviewed by Dean Jackson.

Source/WebCore:

We used to stop creating WebGL contexts once a maximum of 64 WebGL contexts had been
created on a page. Other browsers have a limit of 16 concurrent active WebGL contexts
and they lose older contexts when the developer creates a new context, logging a warning
to the console. We now follow the same approach.

Tests: webgl/max-active-contexts-console-warning.html

webgl/max-active-contexts-gc.html
webgl/max-active-contexts-oldest-context-lost.html
webgl/max-active-contexts-webglcontextlost-prevent-default.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::recycleContext):

Prints a warning message to the console indicating that an older WebGL context
will be lost to accomodate for the active contexts limit being reached and loses
the provided context in a way that it may not be recovered by calling event.preventDefault()
in the webglcontextlost event handler. Finally, we destroy the associated GraphicsContext3D
since it will no longer be useful and it may hold large Open GL resources.

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/GraphicsContext3D.h:

Changed GraphicsContext3D::create to return RefPtr instead of PassRefPtr.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::create):

  • platform/graphics/efl/GraphicsContext3DEfl.cpp:

(WebCore::GraphicsContext3D::create):

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::activeContexts):
(WebCore::GraphicsContext3D::create):

Check if we are at the active contexts limit (16) and recycle the oldest context
in our active contexts list. Calling recycleContext() on a context will call the
GraphicsContext3D destructor and remove it from the active contexts list there.

(WebCore::GraphicsContext3D::~GraphicsContext3D):

Remove the deconstructed context from the active contexts list.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::recycleContext):

  • platform/graphics/win/GraphicsContext3DWin.cpp:

(WebCore::GraphicsContext3D::create):

LayoutTests:

  • webgl/many-contexts-expected.txt:
  • webgl/many-contexts.html:

New output for this existing test since a lot of warnings are now logged to
indicate that we've reached the active contexts limit. We also removed the
check that the last context created was null since it no longer is due to this
source change (older contexts are lost instead).

  • webgl/max-active-contexts-console-warning-expected.txt: Added.
  • webgl/max-active-contexts-console-warning.html: Added.

This new test checks that we log a warning when we've created one context more
than the active contexts limit.

  • webgl/max-active-contexts-gc-expected.txt: Added.
  • webgl/max-active-contexts-gc.html: Added.

This new test checks that contexts that are garbage collected do not count
agaist the active contexts limit.

  • webgl/max-active-contexts-oldest-context-lost-expected.txt: Added.
  • webgl/max-active-contexts-oldest-context-lost.html: Added.

This new test checks that older contexts are lost when we reach the active
contexts limit and we create a new context.

  • webgl/max-active-contexts-webglcontextlost-prevent-default-expected.txt: Added.
  • webgl/max-active-contexts-webglcontextlost-prevent-default.html: Added.

This new test checks that calling event.preventDefault() in a webglcontextlost
event handler does not prevent a context from being lost when the active contexts
limit is reached.

9:25 AM Changeset in webkit [199818] by hyatt@apple.com
  • 5 edits
    2 adds in trunk

Don't hyphenate the last word in a paragraph of text.
​https://bugs.webkit.org/show_bug.cgi?id=156803

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/hyphenate-avoid-orphaned-word.html

  • rendering/RenderText.h:
  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

LayoutTests:

  • fast/text/hyphenate-avoid-orphaned-word.html: Added.
  • platform/mac/fast/text/hyphenate-avoid-orphaned-word-expected.txt: Added.
  • platform/mac/fast/text/hyphenate-limit-before-after-expected.txt:
9:07 AM Changeset in webkit [199817] by Chris Dumez
  • 42 edits in trunk/Source

Drop [UsePointersEvenForNonNullableObjectArguments] from Range
​https://bugs.webkit.org/show_bug.cgi?id=156805

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, no web-exposed behavior change.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::rangeForNodeContents):
(WebCore::characterOffsetsInOrder):
(WebCore::setRangeStartOrEndWithCharacterOffset):
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange):
(WebCore::AXObjectCache::previousBoundary):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::selectText):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange):

  • dom/Node.cpp:

(WebCore::Node::textRects):

  • dom/Range.cpp:

(WebCore::Range::Range):
(WebCore::Range::setDocument):
(WebCore::Range::setStart):
(WebCore::Range::setEnd):
(WebCore::Range::isPointInRange):
(WebCore::Range::comparePoint):
(WebCore::Range::compareNode):
(WebCore::Range::compareBoundaryPoints):
(WebCore::Range::compareBoundaryPointsForBindings):
(WebCore::Range::intersectsNode):
(WebCore::Range::processContents):
(WebCore::Range::insertNode):
(WebCore::Range::checkNodeWOffset):
(WebCore::Range::setStartAfter):
(WebCore::Range::setEndBefore):
(WebCore::Range::setEndAfter):
(WebCore::Range::selectNode):
(WebCore::Range::selectNodeContents):
(WebCore::Range::surroundContents):
(WebCore::Range::setStartBefore):
(WebCore::Range::contains):
(WebCore::rangesOverlap):
(WebCore::rangeOfContents):
(WebCore::boundaryNodeChildrenWillBeRemoved):
(WebCore::boundaryTextNodesMerged):
(WebCore::boundaryTextNodesSplit):
(WebCore::Range::expand):
(WebCore::checkForDifferentRootContainer): Deleted.
(WebCore::highestAncestorUnderCommonRoot): Deleted.
(WebCore::childOfCommonRootBeforeOffset): Deleted.
(WebCore::deleteCharacterData): Deleted.
(WebCore::Range::toString): Deleted.
(WebCore::Range::toHTML): Deleted.
(WebCore::Range::text): Deleted.
(WebCore::Range::cloneRange): Deleted.
(WebCore::Range::absoluteTextRects): Deleted.
(WebCore::Range::absoluteTextQuads): Deleted.
(WebCore::boundaryNodeChildrenChanged): Deleted.
(WebCore::boundaryNodeWillBeRemoved): Deleted.
(WebCore::Range::nodeWillBeRemoved): Deleted.
(WebCore::boundaryTextRemoved): Deleted.
(WebCore::Range::getBoundingClientRect): Deleted.
(WebCore::Range::getBorderAndTextQuads): Deleted.

  • dom/Range.h:
  • dom/Range.idl:
  • dom/RangeBoundaryPoint.h:

(WebCore::RangeBoundaryPoint::set):
(WebCore::RangeBoundaryPoint::setToStartOfNode):
(WebCore::RangeBoundaryPoint::setToEndOfNode):

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyAlternativeTextToRange):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):

  • editing/Editor.cpp:

(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::rangeOfString):
(WebCore::isFrameInRange):
(WebCore::Editor::countMatchesForText):

  • editing/EditorCommand.cpp:

(WebCore::unionDOMRanges):
(WebCore::executeDeleteToMark):
(WebCore::executeSelectToMark):

  • editing/FormatBlockCommand.cpp:

(WebCore::FormatBlockCommand::formatRange):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::respondToNodeModification):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApplyForSingleParagraph):

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingParagraph::offsetTo):

  • editing/TextIterator.cpp:

(WebCore::CharacterIterator::range):
(WebCore::BackwardsCharacterIterator::range):
(WebCore::TextIterator::rangeFromLocationAndLength):
(WebCore::TextIterator::getLocationAndLengthFromRange):
(WebCore::findPlainText):

  • editing/VisiblePosition.cpp:

(WebCore::setStart):
(WebCore::setEnd):

  • editing/VisibleSelection.cpp:

(WebCore::makeSearchRange):

  • editing/VisibleUnits.cpp:

(WebCore::previousBoundary):
(WebCore::nextBoundary):

  • editing/htmlediting.cpp:

(WebCore::visiblePositionForIndexUsingCharacterIterator):
(WebCore::isNodeVisiblyContainedWithin):

  • editing/htmlediting.h:
  • editing/mac/EditorMac.mm:

(WebCore::Editor::adjustedSelectionRange):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::addRange):

  • page/DragController.cpp:

(WebCore::selectElement):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent):

  • page/Page.cpp:

(WebCore::Page::findStringMatchingRanges):

  • page/TextIndicator.cpp:

(WebCore::hasNonInlineOrReplacedElements):

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::getRanges):

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _smartDeleteRangeForProposedRange:]):

Source/WebKit2:

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange setStart:offset:]):
(-[WKDOMRange setEnd:offset:]):
(-[WKDOMRange selectNode:]):
(-[WKDOMRange selectNodeContents:]):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::contentsAsString):

8:42 AM Changeset in webkit [199816] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from DOMURL
​https://bugs.webkit.org/show_bug.cgi?id=156797

Reviewed by Youenn Fablet.

  • html/DOMURL.cpp:

(WebCore::DOMURL::create):

  • html/DOMURL.h:
  • html/DOMURL.idl:
8:12 AM Changeset in webkit [199815] by Claudio Saavedra
  • 3 edits
    2 moves
    1 add
    2 deletes in trunk/Source/WebCore

[GTK][EFL] Move non-glib/gtk platform implementations out of platform/gtk
​https://bugs.webkit.org/show_bug.cgi?id=156847

Reviewed by Carlos Garcia Campos.

The Language and Logging implementation don't really need glib, so
rework them and move them to a new platform/unix directory so that
they can be shared among Unix ports.

  • PlatformEfl.cmake: Use the unix version.
  • PlatformGTK.cmake: Same.
  • platform/efl/LanguageEfl.cpp: Removed.
  • platform/efl/LoggingEfl.cpp: Removed.
  • platform/unix/LanguageUnix.cpp: Renamed from Source/WebCore/platform/gtk/LanguageGtk.cpp.

(WebCore::platformLanguage):
(WebCore::platformUserPreferredLanguages):

  • platform/unix/LoggingUnix.cpp: Renamed from Source/WebCore/platform/gtk/LoggingGtk.cpp.

(WebCore::logLevelString):

6:45 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
5:33 AM Changeset in webkit [199814] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations for some editing tests that are slow on Debug.

All these pass for me locally when run with --no-timeout.

  • platform/gtk/TestExpectations:
4:45 AM Changeset in webkit [199813] by Carlos Garcia Campos
  • 4 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline tests after r180867.

  • platform/gtk/editing/execCommand/5142012-1-expected.txt:
  • platform/gtk/editing/inserting/insert-at-end-02-expected.txt:
  • platform/gtk/editing/pasteboard/4989774-expected.txt:
3:57 AM Changeset in webkit [199812] by msaboff@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Align RegExp[@@match] with other @@ methods
​https://bugs.webkit.org/show_bug.cgi?id=156832

Reviewed by Mark Lam.

Various changes to align the RegExp[@@match] with [@@search] and [@@split].

Made RegExp.prototype.@exec a hidden property on the global object and
called it @regExpBuiltinExec to match the name it has in the standard.
Changed all places that used the old name to use the new one.

Made the match fast path function, which used to be call @match, to be called
@regExpMatchFast and put it on the global object. Changed it to also handle
expressions both with and without the global flag. Refactored the builtin
@match accordingly.

Added the builtin function @hasObservableSideEffectsForRegExpMatch() that
checks to see if we can use the fast path of if we need the explicit version.

Put the main RegExp functions @match, @search and @split in alphabetical
order in RegExpPrototype.js. Did the same for @match, @repeat, @search and
@split in StringPrototype.js.

  • builtins/RegExpPrototype.js:

(regExpExec):
(hasObservableSideEffectsForRegExpMatch): New.
(match):
(search):
(hasObservableSideEffectsForRegExpSplit):
Reordered in the file and updated to use @regExpBuiltinExec.

  • builtins/StringPrototype.js:

(match):
(repeatSlowPath):
(repeat):
(search):
(split):
Reordered functions in the file.

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::setGlobalThis):
(JSC::getById):
(JSC::getGetterById):
(JSC::JSGlobalObject::init):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncMatchFast):
(JSC::regExpProtoFuncMatchPrivate): Deleted.

  • runtime/RegExpPrototype.h:
3:53 AM Changeset in webkit [199811] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] WebKitWebView should claim the contents size as its natural size
​https://bugs.webkit.org/show_bug.cgi?id=156835

Reviewed by Žan Doberšek.

Source/WebKit2:

And keep claiming 0 as its minimum size since it's scrollable.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::didChangeContentSize): Call webkitWebViewBaseSetContentsSize().

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseGetPreferredWidth): Return the contents width as natural width.
(webkitWebViewBaseGetPreferredHeight): Return the contents height as natural height.
(webkit_web_view_base_class_init): Add implementations of get_preferred_width/height.
(webkitWebViewBaseSetContentsSize): Save the contents size.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Tools:

Add test case to check the WebKitWebView preferred size.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewPreferredSize):
(beforeAll):

3:50 AM Changeset in webkit [199810] by Carlos Garcia Campos
  • 9 edits in trunk/Source/WebKit2

[GTK] WebKitWebView should propagate wheel events not handled by the web process
​https://bugs.webkit.org/show_bug.cgi?id=156834

Reviewed by Žan Doberšek.

We are currently swallowing all wheel events unconditionally, not allowing applications to handle wheel events
when not handled by us. Since the GTK+ event propagation system is synchronous, and our events are handled
asynchronously, we need to do something similar to what we do for key events, not propagate the event the first
time and if not handled by the web process, re-inject it in the event loop and then just propagate it.

  • Shared/NativeWebWheelEvent.h:

(WebKit::NativeWebWheelEvent::nativeEvent): Remove useless const.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): Tell the web view to propagate the next wheel event,
and re-inject the event not handled by the web process in the event loop.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseScrollEvent): Propagate the event if shouldForwardNextWheelEvent is true.
(webkitWebViewBaseForwardNextWheelEvent): Set shouldForwardNextWheelEvent to true.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReceiveEvent): Remove ifdef.

  • UIProcess/efl/WebView.h:
1:50 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
1:41 AM Changeset in webkit [199809] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: stringForTextMarkerRange returning empty string for document range
​https://bugs.webkit.org/show_bug.cgi?id=156819

Reviewed by Chris Fleizach.

Source/WebCore:

Set text marker data with CharacterOffset when VisiblePosition is having PositionIsAfterAnchor
or PositionIsAfterChildren anchor type, so that the character offset corresponds to the anchored
node.

Test: accessibility/mac/text-marker-string-for-document-range.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):

LayoutTests:

  • accessibility/mac/text-marker-string-for-document-range-expected.txt: Added.
  • accessibility/mac/text-marker-string-for-document-range.html: Added.
1:25 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:12 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
12:40 AM WebKitGTK/Gardening/Calendar edited by Carlos Garcia Campos
(diff)

Apr 20, 2016:

10:04 PM Changeset in webkit [199808] by Simon Fraser
  • 2 edits in trunk/Tools

Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
​https://bugs.webkit.org/show_bug.cgi?id=156827

Update the .plan file now that the files are present in SVN.

  • Scripts/webkitpy/benchmark_runner/data/plans/content-animation.plan:
10:02 PM Changeset in webkit [199807] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under WebCore::TextIterator::subrange()
​https://bugs.webkit.org/show_bug.cgi?id=156809
<rdar://problem/21102730>

Reviewed by Ryosuke Niwa.

TextIterator::rangeFromLocationAndLength() may return null. However, we
failed to do a null check before calling TextIterator::subrange() with
that range.

No new tests, do not know how to reproduce.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyAlternativeTextToRange):

10:01 PM Changeset in webkit [199806] by Simon Fraser
  • 1 edit
    2 adds in trunk/PerformanceTests

Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
​https://bugs.webkit.org/show_bug.cgi?id=156827

Add two files missing from the previous commit.

  • Animation/css-animation.html: Added.
  • Animation/raf-animation.html: Added.
9:56 PM Changeset in webkit [199805] by Simon Fraser
  • 9 edits
    2 adds in trunk

Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
​https://bugs.webkit.org/show_bug.cgi?id=156827
PerformanceTests:

Reviewed by Stephanie Lewis.

Two new files for the content-animation suite.

After patching for use in the benchmark, these tests are a little different to other benchmarks.
The test content itself does not collect performance data; the tests spit out a boilerplate JSON
result with a placeholder for framerate, which is collected in native code.

When run as a benchmark, test completion involves a couple of bounces between the test and MobileSafari.
Test completion is initiated by a setTimeout() in the test, at which point location.hash is set to "#done".
MobileSafari detects that, and asynchronously dumps performance data. Once this is complete, MobileSafari
changes the URL has to "#submit", which triggers the XHR to the test relay that indicates the test is
complete.

  • Animation/css-animation.html: Added.
  • Animation/raf-animation.html: Added.

Tools:

rdar://problem/24358135

Reviewed by Stephanie Lewis.

Enhance benchmark_runner so that a benchmark can load a set of tests sequentially,
and collate results across them. Also add the ability for the browser_driver to supply
additional results, allowing for tests that collect results data in native code, rather
than generating it in the web page.

Add a set of "content animation" tests that use this new functionality, which test
CSS animation and requestAnimationFrame performance.

'plan' files have two new optional keys:

'test_files': a list of files to run as a suite
'options': optional parameters. Currently supports one new option,

'animation_command', which affects the way that iOS tests are run,
and is passed to MobileSafari as a parameter on launch.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init): If options is not specified in the plan file, set it to an empty dictionary.
(BenchmarkRunner._get_result): Allow the browser_driver to modify the test results.
(BenchmarkRunner):
(BenchmarkRunner._run_one_test): Factored out of _run_benchmark, this contains logic for
running a single test. It starts and stops the http_server_driver.
(BenchmarkRunner._run_benchmark): Run a test in the traditional way if the plan has an 'entry_point'
key, otherwise look for the new 'test_files' and load each in a loop.
(BenchmarkRunner._dump):

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:

(BrowserDriver.launch_url): Pass options.
(BrowserDriver.add_additional_results): Allow a driver to supply additional results.
(BrowserDriver):

  • Scripts/webkitpy/benchmark_runner/browser_driver/gtk_minibrowser_driver.py:

(GTKMiniBrowserDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver.close_browsers):
(OSXBrowserDriver._terminate_processes): Fix spelling mistake.
(OSXBrowserDriver._terminiate_processes): Deleted.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:

(OSXChromeDriver.launch_url):
(OSXChromeCanaryDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:

(OSXFirefoxDriver.launch_url):
(OSXFirefoxNightlyDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/data/patches/ContentAnimation.patch: Added.
  • Scripts/webkitpy/benchmark_runner/data/plans/content-animation.plan: Added.
9:42 PM Changeset in webkit [199804] by beidson@apple.com
  • 9 edits in trunk/Source/WebCore

Modern IDB (Workers): Remove IDBRequest/IDBOpenDBRequest's requirement to get an IDBServerConnection around.
​https://bugs.webkit.org/show_bug.cgi?id=156826

Reviewed by Alex Christensen.

No new tests (No behavior change, existing tests pass).

This doesn't appear to do much but make things a little more complicated, but it's the first of a few
small pushes in the right direction.

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::maybeCreateDeleteRequest):
(WebCore::IDBOpenDBRequest::maybeCreateOpenRequest):
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::createDeleteRequest): Deleted.
(WebCore::IDBOpenDBRequest::createOpenRequest): Deleted.

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

(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::connectionToServer):

  • Modules/indexeddb/IDBRequest.h:

(WebCore::IDBRequest::connection): Deleted.

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::IDBConnectionProxy):
(WebCore::IDBClient::IDBConnectionProxy::connectionToServer):
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):

  • Modules/indexeddb/client/IDBConnectionProxy.h:

(WebCore::IDBClient::IDBConnectionProxy::serverConnectionIdentifier):

  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::IDBResourceIdentifier):

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:
9:40 PM Changeset in webkit [199803] by ggaren@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JavaScriptCore garbage collection is missing an autorelease pool
​https://bugs.webkit.org/show_bug.cgi?id=156751
<rdar://problem/25787802>

Reviewed by Mark Lam.

  • heap/Heap.cpp:

(JSC::Heap::releaseDelayedReleasedObjects): Add an autorelease pool to
catch autoreleases when we call out to arbitrary ObjC code.

We use the C interface here because this is not an ObjC compilation unit.

9:25 PM Changeset in webkit [199802] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add Subresource Integrity as "Under consideration".
​https://bugs.webkit.org/show_bug.cgi?id=156800

Patch by John Wilander <​wilander@apple.com> on 2016-04-20
Reviewed by Alexey Proskuryakov.

No new tests needed.

  • features.json:

Added an entry for Subresource Integrity.

7:35 PM Changeset in webkit [199801] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

DFG del_by_id support forgets to set()
​https://bugs.webkit.org/show_bug.cgi?id=156830

Reviewed by Saam Barati.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • tests/stress/dfg-del-by-id.js: Added.
5:55 PM Changeset in webkit [199800] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Improve sampling profiler CLI JSC tool
​https://bugs.webkit.org/show_bug.cgi?id=156824

Reviewed by Mark Lam.

This patch enhances the Sampling Profiler CLI tool from the JSC shell
to display the JITType of a particular CodeBlock. Because this happens
once we process a log of stack frames, the data for a particular frame
being in LLInt vs. Baseline could be wrong. For example, we may have taken
a stack trace of a CodeBlock while it was executing in the LLInt, then
it tiers up to the baseline, then we process the log. We will show such CodeBlocks
as being in the baseline JIT. We could be smarter about this in the future if
it turns out to truly be a problem.

This patch also adds a 'samplingProfilerTimingInterval' JSC option to allow
CLI users to control the sleep time between stack traces.

  • jsc.cpp:

(jscmain):

  • runtime/Options.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::SamplingProfiler):
(JSC::SamplingProfiler::processUnverifiedStackTraces):
(JSC::SamplingProfiler::reportTopBytecodes):

  • runtime/SamplingProfiler.h:

(JSC::SamplingProfiler::StackFrame::hasExpressionInfo):

5:35 PM Changeset in webkit [199799] by Ryan Haddad
  • 1 edit
    123 adds in trunk/LayoutTests

Adding ios-simulator-wk1 specific baselines for compositing and css3 LayoutTests due to contentsOpaque difference

Unreviewed test gardening.

  • Truncating changelog due to large number of added files
4:49 PM Changeset in webkit [199798] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Get rid of a couple of uses of ApplicationCacheStorage::singleton()
​https://bugs.webkit.org/show_bug.cgi?id=156818

Reviewed by Geoffrey Garen.

  • loader/appcache/ApplicationCache.cpp:

(WebCore::ApplicationCache::addResource):

  • loader/appcache/ApplicationCacheGroup.h:

(WebCore::ApplicationCacheGroup::storage):

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setApplicationCacheOriginQuota):

4:43 PM Changeset in webkit [199797] by beidson@apple.com
  • 25 edits
    1 copy
    1 add in trunk

Modern IDB (Workers): Introduce "IDBConnectionProxy" for future threading abstraction, and adopt it in IDBFactory.
​https://bugs.webkit.org/show_bug.cgi?id=156810

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Covered by changes to existing tests).

Add the IDBConnectionProxy object, including the ability to replicate IDBFactory functionality:

  • Modules/indexeddb/client/IDBConnectionProxy.cpp: Added.

(WebCore::IDBClient::IDBConnectionProxy::IDBConnectionProxy):
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):

  • Modules/indexeddb/client/IDBConnectionProxy.h:

Add pure virtual IDBConnectionProxy accessor:

  • dom/ScriptExecutionContext.h:

Implement it:

  • dom/Document.cpp:

(WebCore::Document::idbConnectionProxy):

  • dom/Document.h:

Implement it:

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::idbConnectionProxy):

  • workers/WorkerGlobalScope.h:
  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::indexedDB):

Don't keep a reference to IDBConnectionToServer, but rather get at the context's IDBConnectionProxy:

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::create):
(WebCore::IDBFactory::IDBFactory):
(WebCore::IDBFactory::open):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:

(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • inspector/InspectorIndexedDBAgent.cpp:
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

  • storage/indexeddb/intversion-bad-parameters-expected.txt:
  • storage/indexeddb/intversion-bad-parameters-private-expected.txt:
  • storage/indexeddb/modern/opendatabase-request-event-expected.txt:
  • storage/indexeddb/modern/opendatabase-request-event-private-expected.txt:
  • storage/indexeddb/modern/opendatabase-request-expected.txt:
  • storage/indexeddb/modern/opendatabase-request-private-expected.txt:
  • storage/indexeddb/modern/workers-enable-expected.txt:
  • storage/indexeddb/version-change-event-basic-expected.txt:
  • storage/indexeddb/version-change-event-basic-private-expected.txt:
4:28 PM Changeset in webkit [199796] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] DFG should not generate two jumps when the target of DoubleBranch is the next block
​https://bugs.webkit.org/show_bug.cgi?id=156815

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-20
Reviewed by Mark Lam.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleDoubleBranch):

3:56 PM Changeset in webkit [199795] by commit-queue@webkit.org
  • 6 edits in trunk

[GTK] Expose AllowUniversalAccessFromFileURLs preference now that calling localStorage.getItem() results in SecurityError: DOM Exception 18
Source/WebKit2:

Patch by Dustin Falgout <​dustin@falgout.us> on 2016-04-20
Reviewed by Michael Catanzaro.

As of r197858 JavaScript loaded in the context of a file scheme url cannot access local storage. That is a major
breaking change as many applications that serve files locally rely on having access to local storage. The point
of that security fix is to avoid cases of downloaded HTML content (such as e-mail attachments or JS injected
into local contexts) from having access to your local file system and arbitrary local storage. If you are serving
local files in your applications, you can use the WebKitAllowUniversalAccessFromFileURLs preference key to tell
Webkit that you are approve of these kinds of interactions.

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

  • UIProcess/API/gtk/WebKitSettings.cpp:

(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_allow_universal_access_from_file_urls):
(webkit_settings_set_allow_universal_access_from_file_urls):

  • UIProcess/API/gtk/WebKitSettings.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:

Tools:

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

Patch by Dustin Falgout <​dustin@falgout.us> on 2016-04-20
Reviewed by Michael Catanzaro.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp:

(testWebKitSettings):

3:51 PM Changeset in webkit [199794] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking compositing/webgl/webgl-reflection.html as failing on ios-simulator
​https://bugs.webkit.org/show_bug.cgi?id=156812

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
3:45 PM Changeset in webkit [199793] by commit-queue@webkit.org
  • 5 edits in trunk

Web Inspector: console.table(navigator) throws exception about rowPreview.propertyPreviews.length
​https://bugs.webkit.org/show_bug.cgi?id=156698
<rdar://problem/25778244>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-20
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
Handle a row with a value preview but no sub-property previews (a function).

LayoutTests:

  • inspector/console/console-table-expected.txt:
  • inspector/console/console-table.html:
3:24 PM Changeset in webkit [199792] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Add register reuse for ArithAdd of an Int32 and constant in DFG
​https://bugs.webkit.org/show_bug.cgi?id=155164

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-20
Reviewed by Mark Lam.

Every "inc" in loop was looking like this:

move rX, rY
inc rY
jo 0x230f4a200580

This patch add register Reuse to that case to remove
the extra "move".

  • dfg/DFGOSRExit.h:

(JSC::DFG::SpeculationRecovery::SpeculationRecovery):
(JSC::DFG::SpeculationRecovery::immediate):

  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithAdd):

  • tests/stress/arith-add-with-constant-overflow.js: Added.

(opaqueAdd):

3:03 PM Changeset in webkit [199791] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Remove flaky expectation for imported/mozilla/svg/image/image-filter-01.svg on ios-simulator-wk2

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
2:58 PM Changeset in webkit [199790] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Use debounce proxies in a couple more places

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

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._dispatchCurrentRepresentedObjectsDidChangeEvent):
(WebInspector.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.ContentBrowser.prototype._contentViewSupplementalRepresentedObjectsDidChange):
(WebInspector.ContentBrowser.prototype._dispatchCurrentRepresentedObjectsDidChangeEventSoon): Deleted.

  • UserInterface/Views/DOMTreeUpdater.js:

(WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
(WebInspector.DOMTreeUpdater.prototype._characterDataModified):
(WebInspector.DOMTreeUpdater.prototype._nodeInserted):
(WebInspector.DOMTreeUpdater.prototype._nodeRemoved):
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodesSoon): Deleted.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
(WebInspector.NavigationSidebarPanel.prototype._treeElementDisclosureDidChange):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibilitySoon): Deleted.

2:58 PM Changeset in webkit [199789] by timothy@apple.com
  • 6 edits
    2 adds in trunk

Web Inspector: Make debounce use an ES6 Proxy

​https://bugs.webkit.org/show_bug.cgi?id=156756
rdar://problem/25809771

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Base/Utilities.js:

(Object.prototype.soon): Added.
(Object.prototype.debounce): Added.
(Function.prototype.debounce): Deleted.
(Function.prototype.cancelDebounce): Added.

  • UserInterface/Views/BezierEditor.js:

(WebInspector.BezierEditor.createBezierInput): Use new debounce proxy.

  • UserInterface/Views/VisualStyleBackgroundPicker.js:

(WebInspector.VisualStyleBackgroundPicker): Ditto.

  • UserInterface/Views/VisualStyleURLInput.js:

(WebInspector.VisualStyleURLInput): Ditto.

LayoutTests:

  • inspector/unit-tests/debounce-expected.txt: Added.
  • inspector/unit-tests/debounce.html: Added.
2:54 PM Changeset in webkit [199788] by Ryan Haddad
  • 4 edits
    1 add in trunk/LayoutTests

Rebaseline tests for iOS simulator.

Unreviewed test gardening.

  • platform/ios-simulator-wk2/css2.1/t0905-c5525-flthw-00-c-g-expected.txt:
  • platform/ios-simulator-wk2/css2.1/t0905-c5526-flthw-00-c-g-expected.txt:
  • platform/ios-simulator/fast/canvas/set-colors-expected.txt: Added.
  • platform/ios-simulator/fast/text/emoji-expected.txt:
2:47 PM Changeset in webkit [199787] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

We don't need a manual stack for an RAII object when the machine's stack will do just fine
​https://bugs.webkit.org/show_bug.cgi?id=156807

Reviewed by Mark Lam.

We kept around a vector for an RAII object to maintain
the recursive nature of having these RAII objects on
the stack as the parser recursed. Instead, the RAII object
can just have a field with the value it wants to restore
and use the machine's stack.

This is a 1% octane code-load progression.

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::BinaryExprContext::BinaryExprContext):
(JSC::SyntaxChecker::BinaryExprContext::~BinaryExprContext):
(JSC::SyntaxChecker::UnaryExprContext::UnaryExprContext):
(JSC::SyntaxChecker::UnaryExprContext::~UnaryExprContext):
(JSC::SyntaxChecker::operatorStackPop):

2:25 PM Changeset in webkit [199786] by yoav@yoav.ws
  • 2 edits in trunk/LayoutTests

Speculative unflake of dynamic_remove_preload_href layout test
​https://bugs.webkit.org/show_bug.cgi?id=156773

Reviewed by Alexey Proskuryakov.

  • http/tests/preload/dynamic_remove_preload_href.html: Avoid using a blocking script based timeout.
2:07 PM Changeset in webkit [199785] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Use Optional<size_t> for OrderIterator::m_orderIndex instead of int
​https://bugs.webkit.org/show_bug.cgi?id=156796

Reviewed by Anders Carlsson.

Use Optional<size_t> for OrderIterator::m_orderIndex instead of int
(with invalid value of -1). m_orderIndex a vector index and therefore
is in the range of an unsigned (type used internally by Vector, even
though the index is exposed as size_t). Therefore, assigning it to an
int is unsafe as it may overflow.

This may fix <rdar://problem/23410338> which is a top crasher.

  • rendering/OrderIterator.cpp:

(WebCore::OrderIterator::next):
(WebCore::OrderIterator::reset):

  • rendering/OrderIterator.h:
2:07 PM Changeset in webkit [199784] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under needsAppleMailPaginationQuirk()
​https://bugs.webkit.org/show_bug.cgi?id=156806
<rdar://problem/23323479>

Reviewed by Simon Fraser.

Add check for element()->hasID() before calling element()->idForStyleResolution()
so that we don't dereference a potentially null element()->elementData().
Also stop repeatedly atomizing "messageContentContainer" and leverage
the operator==(const AtomicString&, const char*) instead for performance.

  • rendering/RenderBlockFlow.cpp:

(WebCore::needsAppleMailPaginationQuirk):

1:31 PM Changeset in webkit [199783] by msaboff@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

REGRESSION(r190289): Spin trying to view/sign in to hbogo.com
​https://bugs.webkit.org/show_bug.cgi?id=156765

Reviewed by Saam Barati.

In the op_get_by_val case, we were holding the lock on a profiled CodeBlock
when we call into handleGetById(). Changed to drop the lock before calling
handleGetById().

The bug here was that the call to handleGetById() may end up calling in to
getPredictionWithoutOSRExit() for a tail call opcode. As part of that
processing, we walk back up the stack to find the effective caller and when
found, we lock the corresponding CodeBlock to get the predicition.
That CodeBLock may be the same one locked above. There is no need anyway
to hold the CodeBlock lock when calling handleGetById().

Added a new stress test.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • tests/stress/regress-156765.js: Added.

(realValue):
(object.get hello):
(ok):

1:21 PM Changeset in webkit [199782] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Attempt to fix non-INDEXED_DATABASE_IN_WORKERS builds after r199779

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setIndexedDBWorkersEnabled):

  • testing/InternalSettings.h:
12:57 PM Changeset in webkit [199781] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Potential overflow in RenderLayer::hitTestList()
​https://bugs.webkit.org/show_bug.cgi?id=156804

Reviewed by Simon Fraser.

Use size_t type instead of int to iterate over the Vector to make sure
we don't overflow. This is a speculative fix for <rdar://problem/23249479>.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTestList):

12:13 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:10 PM Changeset in webkit [199780] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unindent an unnecessary block in stringProtoFuncSplitFast().
​https://bugs.webkit.org/show_bug.cgi?id=156802

Reviewed by Filip Pizlo.

In webkit.org/b/156013, I refactored stringProtoFuncSplit into
stringProtoFuncSplitFast. In that patch, I left an unnecessary block of code in
its original block (with FIXMEs) to keep the diff for that patch minimal. Now
that the patch for webkit.org/b/156013 has landed, I will unindent that block and
remove the FIXMEs.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncSplitFast):

11:59 AM Changeset in webkit [199779] by beidson@apple.com
  • 23 edits
    6 adds in trunk

Modern IDB (Workers): Enable INDEXED_DATABASE_IN_WORKERS compile time flag, but disabled in RuntimeEnabledFeatures.
​https://bugs.webkit.org/show_bug.cgi?id=156782

Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Test: storage/indexeddb/modern/workers-disabled.html

storage/indexeddb/modern/workers-enable.html

  • Configurations/FeatureDefines.xcconfig:

ScriptExecutionContext shouldn't really be supplementable:

  • dom/ScriptExecutionContext.h:

WorkerGlobalScope should be supplementable.
Also modernize this archaic header (pragma once, and re-indent):

  • workers/WorkerGlobalScope.h:

Update for WorkerGlobalScope now being directly supplementable:

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:

(WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
(WebCore::WorkerGlobalScopeIndexedDatabase::from):
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl:
  • Modules/notifications/WorkerGlobalScopeNotifications.cpp:

(WebCore::WorkerGlobalScopeNotifications::WorkerGlobalScopeNotifications):
(WebCore::WorkerGlobalScopeNotifications::from):
(WebCore::WorkerGlobalScopeNotifications::webkitNotifications):

  • Modules/notifications/WorkerGlobalScopeNotifications.h:

Expose IndexedDBWorkers to RuntimeEnabledFeatures:

  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setIndexedDBWorkersEnabled):
(WebCore::RuntimeEnabledFeatures::indexedDBWorkersEnabled):

Expose IndexedDBWorkers to InternalSettings:

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setIndexedDBWorkersEnabled):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Note: One test has some "FAIL" lines in the expected results, which is intentional.
As work on this progresses, those FAILs will become PASSes and the expectations will be updated.

  • storage/indexeddb/modern/resources/workers-disabled.js: Added.
  • storage/indexeddb/modern/resources/workers-enable.js: Added.
  • storage/indexeddb/modern/workers-disabled-expected.txt: Added.
  • storage/indexeddb/modern/workers-disabled.html: Added.
  • storage/indexeddb/modern/workers-enable-expected.txt: Added.
  • storage/indexeddb/modern/workers-enable.html: Added.
11:26 AM Changeset in webkit [199778] by Brent Fulgham
  • 3 edits
    2 adds in trunk

[WK2][Mac][iOS] WebContent crash when using special ​file:// URI scheme @ WebKit::resolveSymlinksInPath(WTF::CString const&) + 159
​https://bugs.webkit.org/show_bug.cgi?id=156747
<rdar://problem/24648176>

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

FileSystemCF::fileSystemRepresentation return a null string when presented with a file URL that contains embedded nulls. When
this happens, SandboxExtension::createHandle attempts to pass a null string to 'resolveSymlinksInPath', which attemps to call
'strrchr' on the null pointer, causing a crash.

Test: fast/url/file-uri-with-embedded-null-no-crash.html

  • Shared/mac/SandboxExtensionMac.mm:

(WebKit::SandboxExtension::createHandle): If 'fileSystemRepresentation' is null, return early with an error.

LayoutTests:

  • fast/url/file-uri-with-embedded-null-no-crash-expected.txt: Added.
  • fast/url/file-uri-with-embedded-null-no-crash.html: Added.
11:01 AM Changeset in webkit [199777] by hyatt@apple.com
  • 4 edits
    2 adds in trunk

Hangable punctuation measurement using the wrong indices.
​https://bugs.webkit.org/show_bug.cgi?id=155899

Reviewed by Simon Fraser.

Source/WebCore:

New tests in fast/text.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths):

  • rendering/RenderText.cpp:

(WebCore::RenderText::hangablePunctuationStartWidth):
(WebCore::RenderText::hangablePunctuationEndWidth):
(WebCore::RenderText::isHangableStopOrComma):

LayoutTests:

  • fast/text/hanging-punctuation-variable-font-size-expected.html: Added.
  • fast/text/hanging-punctuation-variable-font-size.html: Added.
10:40 AM Changeset in webkit [199776] by Chris Dumez
  • 11 edits in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from several Canvas interfaces
​https://bugs.webkit.org/show_bug.cgi?id=156781

Reviewed by Darin Adler.

Source/WebCore:

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::fill):
(WebCore::CanvasRenderingContext2D::stroke):
(WebCore::CanvasRenderingContext2D::clip):
(WebCore::CanvasRenderingContext2D::isPointInPath):
(WebCore::CanvasRenderingContext2D::isPointInStroke):
(WebCore::size):
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::drawImageFromRect):
(WebCore::CanvasRenderingContext2D::drawFocusIfNeeded):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/DOMPath.h:
  • html/canvas/DOMPath.idl:
  • html/canvas/WebGLDebugShaders.cpp:

(WebCore::WebGLDebugShaders::getTranslatedShaderSource):

  • html/canvas/WebGLDebugShaders.h:
  • html/canvas/WebGLDebugShaders.idl:

LayoutTests:

Update outdated test which expected a legacy TYPE_MISMATCH_ERR exception
to be thrown when passing null instead of the newer TypeError.

  • canvas/philip/tests/2d.drawImage.null.html:
10:27 AM Changeset in webkit [199775] by Chris Dumez
  • 16 edits
    2 adds in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from WebAudio
​https://bugs.webkit.org/show_bug.cgi?id=156777

Reviewed by Darin Adler.

Source/WebCore:

Drop [UsePointersEvenForNonNullableObjectArguments] from WebAudio and
modernize the interface a bit.

There is no major Web-exposed behavioral change except for
the exception type thrown when passing null (now always TypeError).
Tests were updated to add coverage for this.

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::decodeAsync):
(WebCore::AsyncAudioDecoder::DecodingTask::DecodingTask):
(WebCore::AsyncAudioDecoder::DecodingTask::decode): Deleted.

  • Modules/webaudio/AsyncAudioDecoder.h:

(WebCore::AsyncAudioDecoder::DecodingTask::audioData):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::lazyInitialize):
(WebCore::AudioContext::createBuffer):
(WebCore::AudioContext::decodeAudioData):
(WebCore::AudioContext::createBufferSource):
(WebCore::AudioContext::createMediaElementSource):
(WebCore::AudioContext::createMediaStreamSource):
(WebCore::AudioContext::createMediaStreamDestination):
(WebCore::AudioContext::createScriptProcessor):
(WebCore::AudioContext::createBiquadFilter):
(WebCore::AudioContext::createWaveShaper):
(WebCore::AudioContext::createPanner):
(WebCore::AudioContext::createConvolver):
(WebCore::AudioContext::createDynamicsCompressor):
(WebCore::AudioContext::createAnalyser):
(WebCore::AudioContext::createGain):
(WebCore::AudioContext::createDelay):
(WebCore::AudioContext::createChannelSplitter):
(WebCore::AudioContext::createChannelMerger):
(WebCore::AudioContext::createOscillator):
(WebCore::AudioContext::createPeriodicWave):
(WebCore::AudioContext::derefFinishedSourceNodes):
(WebCore::AudioContext::refNode):
(WebCore::AudioContext::derefNode):
(WebCore::AudioContext::notifyNodeFinishedProcessing): Deleted.
(WebCore::AudioContext::derefUnfinishedSourceNodes): Deleted.
(WebCore::AudioContext::lock): Deleted.

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::process):

  • Modules/webaudio/MediaElementAudioSourceNode.h:

(WebCore::MediaElementAudioSourceNode::mediaElement):

  • Modules/webaudio/OscillatorNode.idl:

LayoutTests:

Added test coverage for the type of the exception being thrown when
pasing null to various WebAudio API.

  • webaudio/audiobuffer-expected.txt:
  • webaudio/audiobuffer.html:
  • webaudio/createMediaStreamSource-null-expected.txt: Added.
  • webaudio/createMediaStreamSource-null.html: Added.
  • webaudio/decode-audio-data-basic-expected.txt:
  • webaudio/decode-audio-data-basic.html:
  • webaudio/mediaelementaudiosourcenode-expected.txt:
  • webaudio/mediaelementaudiosourcenode.html:
9:14 AM Changeset in webkit [199774] by beidson@apple.com
  • 5 edits in trunk

Addressing additional review feedback for:
Modern IDB: Lots of IDB bindings cleanup (including making IDBVersionChangeEvent constructible).
​https://bugs.webkit.org/show_bug.cgi?id=156760

Source/WebCore:

  • Modules/indexeddb/IDBVersionChangeEvent.h:

LayoutTests:

  • storage/indexeddb/modern/idbversionchangeevent-constructor-expected.txt:
  • storage/indexeddb/modern/idbversionchangeevent-constructor.html:
8:43 AM Changeset in webkit [199773] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Use OpenType MATH fonts by default
​https://bugs.webkit.org/show_bug.cgi?id=133603

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-20
Reviewed by Alejandro G. Castro.

No new tests. This is already tested by pixel tests like roots.xhtml.
However, new math fonts are not used during test execution.

  • css/mathml.css:

(math): We use only a list of known OpenType fonts with a MATH table but keep some pre-installed fallback fonts for OS X and iOS.

8:03 AM Changeset in webkit [199772] by Claudio Saavedra
  • 2 edits
    4 moves in trunk/Source/WebCore

[GTK] Move GTK+-independent platform code to platform/glib
​https://bugs.webkit.org/show_bug.cgi?id=156787

Reviewed by Carlos Garcia Campos.

There is plenty of code in platform/gtk that is independent from the GTK+ library.
Move those files to platform/glib so that they can be reused by other GLib-based ports.

Also clean some style warnings in those files.

  • PlatformGTK.cmake: Move the files.
  • platform/glib/EventLoopGlib.cpp: Renamed from Source/WebCore/platform/gtk/EventLoopGtk.cpp.

(WebCore::EventLoop::cycle):

  • platform/glib/FileSystemGlib.cpp: Renamed from Source/WebCore/platform/gtk/FileSystemGtk.cpp.

(WebCore::filenameToString):
(WebCore::unescapedFilename):
(WebCore::fileSystemRepresentation):
(WebCore::filenameForDisplay):
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::deleteEmptyDirectory):
(WebCore::getFileStat):
(WebCore::getFileSize):
(WebCore::getFileCreationTime):
(WebCore::getFileModificationTime):
(WebCore::getFileMetadata):
(WebCore::pathByAppendingComponent):
(WebCore::makeAllDirectories):
(WebCore::homeDirectoryPath):
(WebCore::pathGetFileName):
(WebCore::applicationDirectoryPath):
(WebCore::sharedResourcesPath):
(WebCore::getVolumeFreeSizeForPath):
(WebCore::directoryName):
(WebCore::listDirectory):
(WebCore::openTemporaryFile):
(WebCore::openFile):
(WebCore::closeFile):
(WebCore::seekFile):
(WebCore::writeToFile):
(WebCore::readFromFile):
(WebCore::unloadModule):
(WebCore::hardLinkOrCopyFile):

  • platform/glib/GamepadsGlib.cpp: Renamed from Source/WebCore/platform/gtk/GamepadsGtk.cpp.

(WebCore::GamepadDeviceGlib::GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::~GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::readCallback):
(WebCore::GamepadsGlib::GamepadsGlib):
(WebCore::GamepadsGlib::~GamepadsGlib):
(WebCore::GamepadsGlib::registerDevice):
(WebCore::GamepadsGlib::unregisterDevice):
(WebCore::GamepadsGlib::updateGamepadList):
(WebCore::GamepadsGlib::onUEventCallback):
(WebCore::GamepadsGlib::isGamepadDevice):
(WebCore::sampleGamepads):

  • platform/glib/SharedBufferGlib.cpp: Renamed from Source/WebCore/platform/gtk/SharedBufferGtk.cpp.

(WebCore::SharedBuffer::createFromReadingFile):

6:41 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
6:31 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
6:25 AM Changeset in webkit [199771] by fred.wang@free.fr
  • 5 edits in trunk

Refactor RenderMathMLSpace to avoid using flexbox
​https://bugs.webkit.org/show_bug.cgi?id=155168

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-20
Reviewed by Martin Robinson.

Source/WebCore:

No new tests, already covered by existing tests. The behavior of mspace-prefered-width-expected is not specified by the MathML recommendation, we update that test to match our new behavior.

  • rendering/mathml/RenderMathMLSpace.cpp: Implement layout functions without passing by flebox.

(WebCore::RenderMathMLSpace::computePreferredLogicalWidths): Implement this function.
(WebCore::RenderMathMLSpace::layoutBlock): Implement this function.
(WebCore::RenderMathMLSpace::computeIntrinsicLogicalWidths): Deleted.
(WebCore::RenderMathMLSpace::updateLogicalWidth): Deleted.
(WebCore::RenderMathMLSpace::updateLogicalHeight): Deleted.

  • rendering/mathml/RenderMathMLSpace.h: Update function declarations.

LayoutTests:

  • mathml/presentation/mspace-prefered-width-expected.html: Update the expectation so that the logical width and preferred width are both equal to the one specified by the width attribute.
6:05 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
2:06 AM Changeset in webkit [199770] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Mark HLS tests release expectations as release only.

  • platform/gtk/TestExpectations:
1:47 AM Changeset in webkit [199769] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Cairo] Crash in GraphicsContext::drawFocusRing when painting is disabled
​https://bugs.webkit.org/show_bug.cgi?id=156785

Reviewed by Žan Doberšek.

This happens for example when view state changes to focus and paint is called from
FrameView::updateControlTints() with a graphics context that doesn't have a platform context. Layout test
fast/images/image-map-outline-with-scale-transform.html sometimes crashes because of this.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawFocusRing): Return early if painting is disabled.

1:44 AM Changeset in webkit [199768] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Remove unused m_writtenVariables from the parser and related bits
​https://bugs.webkit.org/show_bug.cgi?id=156784

Reviewed by Yusuke Suzuki.

This isn't a octane/codeload speedup even though we're doing less work in
collectFreeVariables. But it's good to get rid of things that are not used.

  • parser/Nodes.h:

(JSC::ScopeNode::usesEval):
(JSC::ScopeNode::usesArguments):
(JSC::ScopeNode::usesArrowFunction):
(JSC::ScopeNode::isStrictMode):
(JSC::ScopeNode::setUsesArguments):
(JSC::ScopeNode::usesThis):
(JSC::ScopeNode::modifiesParameter): Deleted.
(JSC::ScopeNode::modifiesArguments): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseAssignmentExpression):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::hasDeclaredParameter):
(JSC::Scope::preventAllVariableDeclarations):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::mergeInnerArrowFunctionFeatures):
(JSC::Scope::getSloppyModeHoistedFunctions):
(JSC::Scope::getCapturedVars):
(JSC::Scope::setStrictMode):
(JSC::Scope::strictMode):
(JSC::Scope::fillParametersForSourceProviderCache):
(JSC::Scope::restoreFromSourceProviderCache):
(JSC::Parser::hasDeclaredParameter):
(JSC::Parser::exportName):
(JSC::Scope::declareWrite): Deleted.
(JSC::Parser::declareWrite): Deleted.

  • parser/ParserModes.h:
1:33 AM Changeset in webkit [199767] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Follow up gardening for media test.

  • platform/efl/TestExpectations: Unskip 3 media tests.

Apr 19, 2016:

11:58 PM WebKitGTK/Gardening/Calendar edited by Carlos Garcia Campos
(diff)
11:38 PM Changeset in webkit [199766] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Build fix after r199738

  • CMakeLists.txt:
11:26 PM Changeset in webkit [199765] by Brent Fulgham
  • 2 edits in trunk/Tools

Unreviewed build fix after r199752.

  • DumpRenderTree/win/FrameLoadDelegate.cpp:

(FrameLoadDelegate::didChangeIcons): Remove call to removed function.

11:02 PM Changeset in webkit [199764] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

REGRESSION(r198782): SHOULD NEVER BE REACHED failure in ImageSource::setData since r198782
​https://bugs.webkit.org/show_bug.cgi?id=156690

Reviewed by Michael Catanzaro.

The assertion is wrong, because it assumes that ImageDecoder::create() always returns a valid pointer, which is
only true for the CG implementation. The non CG implementation can return nullptr if there isn't enough data to
figure out the image format or if the image format is not supported. This is causing several crashes in the
debug bots.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::setData): Remove the invalid ASSERT and return early if we fail to create the decoder.
(WebCore::ImageSource::ensureDecoderIsCreated): Deleted.

  • platform/graphics/ImageSource.h:
10:49 PM Changeset in webkit [199763] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix cloop build after r199754.

  • jsc.cpp:

(jscmain):

10:13 PM Changeset in webkit [199762] by msaboff@apple.com
  • 9 edits in trunk

iTunes crashing JavaScriptCore.dll
​https://bugs.webkit.org/show_bug.cgi?id=156647

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Given that there there are only 128 FLS indices compared to over a 1000 for TLS,
I eliminated the thread specific m_threadSpecificForThread and instead we look
for the current thread in m_registeredThreads list when we need it.
In most cases there will only be one thread.

Added THREAD_SPECIFIC_CALL to signature of ThreadSpecific remove callbacks
to set the calling convention correctly for Windows 32 bit.

  • heap/MachineStackMarker.cpp:

(JSC::ActiveMachineThreadsManager::remove):
(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::machineThreadForCurrentThread):
(JSC::MachineThreads::removeThread):

  • heap/MachineStackMarker.h:

Source/WTF:

If a thread was created without using the WTF thread apis and that thread uses
a JavaScript VM and that thread exits with the VM still around, JSC won't know
that the thread has exited. Currently, we use ThreadSpecificThreadExit() to
clean up any thread specific keys. Cleaning up these keys is how JSC is
notified of a thread exit. We only call ThreadSpecificThreadExit() from
wtfThreadEntryPoint() when the thread entry point function returns.
This mechanism was put in place for Windows because we layer the WTF::ThreadSpecific
functionality on top of TLS (Thread Local Storage), but TLS doesn't have
a thread exiting callback the way that pthread_create_key does.

The fix is to change from using TLS to using FLS (Fiber Local Storage). Although
Windows allows multiple fibers per thread, WebKit is not designed to work with a
multiple fibers per thread. When there is only one fiber per thread, FLS works just
like TLS, but it has the destroy callback.

I restructured the Windows version of WTF::ThreadSpecific to be almost the same
as the pthread version. Added THREAD_SPECIFIC_CALL to set the correct
calling convenction for Windows 32 bit.

  • wtf/ThreadSpecific.h:

(WTF::threadSpecificKeyCreate):
(WTF::threadSpecificKeyDelete):
(WTF::threadSpecificSet):
(WTF::threadSpecificGet):
(WTF::ThreadSpecific<T>::ThreadSpecific):
(WTF::ThreadSpecific<T>::~ThreadSpecific):
(WTF::ThreadSpecific<T>::get):
(WTF::ThreadSpecific<T>::set):
(WTF::ThreadSpecific<T>::destroy):
Restructured to use FLS. Renamed TLS* to FLS*.

  • wtf/ThreadSpecificWin.cpp:

(WTF::flsKeyCount):
(WTF::flsKeys):
Renamed from tlsKey*() to flsKey*().

(WTF::destructorsList): Deleted.
(WTF::destructorsMutex): Deleted.
(WTF::PlatformThreadSpecificKey::PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::~PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::setValue): Deleted.
(WTF::PlatformThreadSpecificKey::value): Deleted.
(WTF::PlatformThreadSpecificKey::callDestructor): Deleted.
(WTF::tlsKeyCount): Deleted.
(WTF::tlsKeys): Deleted.
(WTF::threadSpecificKeyCreate): Deleted.
(WTF::threadSpecificKeyDelete): Deleted.
(WTF::threadSpecificSet): Deleted.
(WTF::threadSpecificGet): Deleted.
(WTF::ThreadSpecificThreadExit): Deleted.

  • wtf/ThreadingWin.cpp:

(WTF::wtfThreadEntryPoint): Eliminated call to ThreadSpecificThreadExit.

LayoutTests:

Disabled fast/workers/dedicated-worker-lifecycle.html as it creates
more workers that we have ThreadSpecific keys. We need at least one
key per JSC VM we create. I didn't want to weaken the test for other
platforms.

  • platform/win/TestExpectations:
9:27 PM Changeset in webkit [199761] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Add more locking algorithms to the LockSpeedTest.

Rubber stamped by Saam Barati.

  • benchmarks/LockSpeedTest.cpp:

(main):

9:25 PM Changeset in webkit [199760] by fpizlo@apple.com
  • 6 edits in trunk/Source/WTF

Clean up the ParkingLot uparking API a bit
​https://bugs.webkit.org/show_bug.cgi?id=156746

Reviewed by Saam Barati and Geoffrey Garen.

Previously, unparkOne() would either return a boolean to tell you if there are any more threads on
the queue or it would pass your callback a pair of booleans - one to tell if a thread was unparked
and another to tell if there are any more threads. This was an annoying inconsistency. What if you
wanted to know if unparkOne() unparked a thread but you don't care to use callbacks?

This fixes unparkOne() to use a struct called UnparkResult for both of its variants. This makes the
code a bit cleaner.

  • wtf/Atomics.h: Add some more atomic ops.

(WTF::Atomic::exchangeAndAdd):
(WTF::Atomic::exchange):

  • wtf/Condition.h: Change calls to unparkOne().

(WTF::ConditionBase::notifyOne):

  • wtf/Lock.cpp: Change calls to unparkOne().

(WTF::LockBase::unlockSlow):

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::unparkOne):

  • wtf/ParkingLot.h: Switch to using ScopedLambda and introduce UnparkResult.
9:14 PM Changeset in webkit [199759] by ggaren@apple.com
  • 7 edits in trunk/Source/bmalloc

bmalloc: fix up overflow checks
​https://bugs.webkit.org/show_bug.cgi?id=156780

Reviewed by Mark Lam.

We used to try to avoid overflow in large object math by setting a very
high limit on the largest large object. But that's a bit error-prone
since the check is far away from the math that might overflow -- and
we were missing some cases.

This patch removes the limit and instead checks at each math site.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocate):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase): Remove the limit. tryAllocateLarge
will check for overflow for us.

  • bmalloc/Chunk.h: This ASSERT was just totally wrong.
  • bmalloc/Heap.cpp:

(bmalloc::Heap::tryAllocateLarge): Check for overflow when adding.

  • bmalloc/Sizes.h:
  • bmalloc/VMAllocate.h:

(bmalloc::tryVMAllocate): Check for overflow when adding.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::tryAllocateLargeChunk): Check for overflow when adding.

9:03 PM Changeset in webkit [199758] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Small cleanup of RegisterAtOffsetList
​https://bugs.webkit.org/show_bug.cgi?id=156779

Patch by Benjamin Poulain <​bpoulain@webkit.org> on 2016-04-19
Reviewed by Mark Lam.

I was wondering why RegisterAtOffsetList always cache-miss.
It looks like it is doing more than it needs to.

We do not need to sort the values. The total order of
RegisterAtOffset is:
1) Order of Reg.
2) Order of offsets.
We already generate the list in order.

Also allocate the right array size ahead of filling the array.

  • jit/RegisterAtOffsetList.cpp:

(JSC::RegisterAtOffsetList::RegisterAtOffsetList):
(JSC::RegisterAtOffsetList::sort): Deleted.

  • jit/RegisterAtOffsetList.h:

(JSC::RegisterAtOffsetList::append): Deleted.

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

Web Inspector: Picking Snapshot from navigation bar popup does to switch views
​https://bugs.webkit.org/show_bug.cgi?id=156762

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-19
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineDataGridNodePathComponent.js:

(WebInspector.TimelineDataGridNodePathComponent.prototype.get previousSibling):
(WebInspector.TimelineDataGridNodePathComponent.prototype.get nextSibling):
Wrong represented object provided by TimelineDataGridNodePathComponent.

8:08 PM Changeset in webkit [199756] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

2016-04-19 Geoffrey Garen <​ggaren@apple.com>

Unreviewed, try to fix an ASSERT seen on the bots.

  • bmalloc/Heap.cpp: (bmalloc::Heap::tryAllocateLarge): This ASSERT is supposed to be about alignment, not size. Oops.
7:41 PM Changeset in webkit [199755] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a couple UNLIKELY macros in parseMemberExpression
​https://bugs.webkit.org/show_bug.cgi?id=156775

Reviewed by Filip Pizlo.

These UNLIKELY macros have to do with the base of the
member expression being 'super'. I think it's safe to
argue that this is truly UNLIKELY. I am seeing speedups
sometimes on Octane codeload. Usually around 0.5%. Sometimes 1%.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseMemberExpression):

7:24 PM Changeset in webkit [199754] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

allow jsc shell to dump sampling profiler data
​https://bugs.webkit.org/show_bug.cgi?id=156725

Reviewed by Benjamin Poulain.

This patch adds a '--reportSamplingProfilerData' option to the
JSC shell which will enable the sampling profiler and dump
its data at the end of execution. The dump will include the
40 hottest functions and the 80 hottest bytecode locations.
If you're using this option to debug, it's easy to just hack
on the code to make it dump more or less information.

  • jsc.cpp:

(CommandLine::parseArguments):
(jscmain):

  • runtime/Options.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::processUnverifiedStackTraces):
(JSC::SamplingProfiler::stackTracesAsJSON):
(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):

  • runtime/SamplingProfiler.h:

(JSC::SamplingProfiler::StackFrame::hasExpressionInfo):
(JSC::SamplingProfiler::StackFrame::hasBytecodeIndex):
(JSC::SamplingProfiler::StackFrame::hasCodeBlockHash):
(JSC::SamplingProfiler::setStopWatch):

6:36 PM Changeset in webkit [199753] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit2

Fix CMake build.

  • CMakeLists.txt:

Don't compile a file that doesn't exist.

  • PlatformMac.cmake:

Put the XPCServices in the right place.

6:33 PM Changeset in webkit [199752] by Brent Fulgham
  • 9 edits
    2 moves
    2 deletes in trunk

Remove remaining bits of dynamic <link> rel='icon' loading
​https://bugs.webkit.org/show_bug.cgi?id=156727

Reviewed by Darin Adler.

Source/WebCore:

Don't call 'shouldLoadLink' for 'icon' link types. It performs no
useful checks for 'icon' types, and emits the non-standard
'onbeforeload' event.

This work finishes up ​https://webkit.org/b/153151, where we removed
FrameLoaderClient::dispatchDidChangeIcons() and related code.

Test: webarchive/test-link-rel-subresource-beforeload.html

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLink): Remove unneeded call to 'shouldLoadLink'.

Tools:

Remove unused test infrastructure. This code never existed in WebKit2
testing since was only used on Windows.

  • DumpRenderTree/TestRunner.cpp:

(dumpIconChangesCallback): Deleted.

  • DumpRenderTree/TestRunner.h:

(TestRunner::dumpIconChanges): Deleted.
(TestRunner::setDumpIconChanges): Deleted.

LayoutTests:

Rename 'test-link-rel-icon-beforeload.html' to 'test-link-rel-subresource-beforeload.html'.

  • fast/dom/icon-url-property-expected.txt: Removed.
  • fast/dom/icon-url-property.html: Removed.
  • platform/gtk/TestExpectations: Remove references to deleted tests.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/wk2/TestExpectations: Ditto.
  • webarchive/test-link-rel-icon-beforeload-expected.webarchive: Removed.
  • webarchive/test-link-rel-icon-beforeload.html: Removed.
  • webarchive/test-link-rel-subresource-beforeload-expected.webarchive: Copied from LayoutTests/webarchive/test-link-rel-icon-beforeload-expected.webarchive.
  • webarchive/test-link-rel-subresource-beforeload.html: Copied from LayoutTests/webarchive/test-link-rel-icon-beforeload.html.
6:30 PM Changeset in webkit [199751] by Chris Dumez
  • 10 edits
    1 delete in trunk

AudioBufferSourceNode.buffer should be nullable
​https://bugs.webkit.org/show_bug.cgi?id=156769

Reviewed by Darin Adler.

Source/WebCore:

AudioBufferSourceNode.buffer should be nullable as per the
specification:
​https://webaudio.github.io/web-audio-api/#AudioBufferSourceNode

Our implementation was initially returning null when getting
AudioBufferSourceNode.buffer, which is correct. However, it would
throw a TypeError when trying to set the attribute to null. Our
implementation setter actually supported setting the buffer to
null but the custom bindings for the setter would not.

This patch does the following:

  • Get rid of the custom bindings for the AudioBufferSourceNode.buffer setter. We can have the bindings generator generate the same code by using [StrictTypeChecking]. The custom bindinds were also throwing a TypeError if the input AudioBuffer had too many channels but this does not seem to be possible.
  • Mark AudioBufferSourceNode.buffer as nullable in the IDL so that we no longer throw when the JS tries to assign null, but instead calls AudioBufferSourceNode::setBuffer(nullptr)

No new test, updated webaudio/audiobuffersource-channels.html

  • CMakeLists.txt:
  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::setBuffer):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioBufferSourceNode.idl:
  • Modules/webaudio/AudioContext.h:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSAudioBufferSourceNodeCustom.cpp: Removed.

LayoutTests:

Update existing layout test to check that:

  • AudioBufferSourceNode.buffer is initially null
  • AudioBufferSourceNode.buffer can be set to null
  • We cannot create an AudioBuffer that has too many channels
  • webaudio/audiobuffersource-channels-expected.txt:
  • webaudio/audiobuffersource-channels.html:
6:19 PM Changeset in webkit [199750] by beidson@apple.com
  • 20 edits
    2 adds in trunk

Modern IDB: Lots of IDB bindings cleanup (including making IDBVersionChangeEvent constructible).
​https://bugs.webkit.org/show_bug.cgi?id=156760

Reviewed by Darin Adler (and looked over by Chris Dumez and Alex Christensen).

Source/WebCore:

Test: storage/indexeddb/modern/idbversionchangeevent-constructor.html

Add WorkerGlobalScopeConstructors to the xcodeproj:

  • WebCore.xcodeproj/project.pbxproj:

Remove the completely irrelevant webkit* prefixed constructors from DOMWindow:

  • page/DOMWindow.idl:

Remove the poor way most objects were exposed on the WorkerGlobalScope:

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl:

Expose most of the objects on the WorkerGlobalScope the correct way:

  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBCursorWithValue.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBOpenDBRequest.idl:
  • Modules/indexeddb/IDBRequest.idl:
  • Modules/indexeddb/IDBTransaction.idl:

Make IDBVersionChangeEvent constructible:

  • Modules/indexeddb/IDBVersionChangeEvent.cpp:

(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
(WebCore::IDBVersionChangeEvent::newVersion): Deleted.

  • Modules/indexeddb/IDBVersionChangeEvent.h:
  • Modules/indexeddb/IDBVersionChangeEvent.idl:
  • bindings/js/JSDictionary.h:

(WebCore::JSDictionary::convertValue): Add a templated form of convertValue that

handles Optional<>s.

LayoutTests:

  • js/dom/global-constructors-attributes-idb-expected.txt: Updated for removed attributes.
  • storage/indexeddb/modern/idbversionchangeevent-constructor-expected.txt: Added.
  • storage/indexeddb/modern/idbversionchangeevent-constructor.html: Added.
6:05 PM Changeset in webkit [199749] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unskip media tests since r199649

Unreviewed EFL gardening.

  • platform/efl/TestExpectations: r199649 fixed media test crash as well.
5:02 PM Changeset in webkit [199748] by mark.lam@apple.com
  • 27 edits
    18 adds in trunk

Re-landing: ES6: Implement RegExp.prototype[@@search].
​https://bugs.webkit.org/show_bug.cgi?id=156331

Reviewed by Keith Miller.

Source/JavaScriptCore:

What changed?

  1. Implemented search builtin in RegExpPrototype.js. The native path is now used as a fast path.
  2. Added DFG support for an IsRegExpObjectIntrinsic (modelled after the IsJSArrayIntrinsic).
  3. Renamed @isRegExp to @isRegExpObject to match the new IsRegExpObjectIntrinsic.
  4. Change the esSpecIsRegExpObject() implementation to check if the object's JSType is RegExpObjectType instead of walking the classinfo chain.
  • builtins/RegExpPrototype.js:

(search):

  • builtins/StringPrototype.js:

(search):

  • fixed some indentation.
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIsArrayConstructor):
(JSC::DFG::SpeculativeJIT::compileIsRegExpObject):
(JSC::DFG::SpeculativeJIT::compileCallObjectConstructor):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIsFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileIsRegExpObject):
(JSC::FTL::DFG::LowerDFGToB3::compileTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::isExoticForTypeof):
(JSC::FTL::DFG::LowerDFGToB3::isRegExpObject):
(JSC::FTL::DFG::LowerDFGToB3::isType):

  • runtime/Intrinsic.h:
  • Added IsRegExpObjectIntrinsic.
  • runtime/CommonIdentifiers.h:
  • runtime/ECMAScriptSpecInternalFunctions.cpp:

(JSC::esSpecIsConstructor):

  • Changed to use uncheckedArgument since this is only called from internal code.

(JSC::esSpecIsRegExpObject):
(JSC::esSpecIsRegExp): Deleted.

  • runtime/ECMAScriptSpecInternalFunctions.h:
  • Changed to check the object for a JSType of RegExpObjectType.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • Added split fast path.
  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncSearchFast):
(JSC::regExpProtoFuncSearch): Deleted.

  • runtime/RegExpPrototype.h:
  • tests/es6.yaml:
  • tests/stress/regexp-search.js:
  • Rebased test.

LayoutTests:

  • js/regress/regexp-prototype-search-observable-side-effects-expected.txt: Added.
  • js/regress/regexp-prototype-search-observable-side-effects.html: Added.
  • js/regress/regexp-prototype-search-observable-side-effects2-expected.txt: Added.
  • js/regress/regexp-prototype-search-observable-side-effects2.html: Added.
  • js/regress/script-tests/regexp-prototype-search-observable-side-effects.js: Added.
  • js/regress/script-tests/regexp-prototype-search-observable-side-effects2.js: Added.
  • js/regress/script-tests/string-prototype-search-observable-side-effects.js: Added.
  • js/regress/script-tests/string-prototype-search-observable-side-effects2.js: Added.
  • js/regress/script-tests/string-prototype-search-observable-side-effects3.js: Added.
  • js/regress/script-tests/string-prototype-search-observable-side-effects4.js: Added.
  • js/regress/string-prototype-search-observable-side-effects-expected.txt: Added.
  • js/regress/string-prototype-search-observable-side-effects.html: Added.
  • js/regress/string-prototype-search-observable-side-effects2-expected.txt: Added.
  • js/regress/string-prototype-search-observable-side-effects2.html: Added.
  • js/regress/string-prototype-search-observable-side-effects3-expected.txt: Added.
  • js/regress/string-prototype-search-observable-side-effects3.html: Added.
  • js/regress/string-prototype-search-observable-side-effects4-expected.txt: Added.
  • js/regress/string-prototype-search-observable-side-effects4.html: Added.
4:41 PM Changeset in webkit [199747] by timothy@apple.com
  • 19 edits in trunk/Source/WebInspectorUI

Web Inspector: DataGrid should be virtualized so it only renders visible rows

​https://bugs.webkit.org/show_bug.cgi?id=156663
rdar://problem/25765256

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WebInspector.ComputedStyleDetailsPanel.prototype.set containerRegions):
Call updateLayoutIfNeeded since we don't use views here.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
Set inline and variableHeightRows to true, remove direct classList add. Call updateLayoutIfNeeded since we don't use views here.

  • UserInterface/Views/DOMTreeDataGrid.js:

(WebInspector.DOMTreeDataGrid):
Set inline to true, remove direct classList add.

  • UserInterface/Views/DataGrid.css:

(.data-grid td):
(.data-grid table.data):
(.data-grid:not(.variable-height-rows) table.data):
(.data-grid:not(.variable-height-rows) table.data.odd-first-zebra-stripe):
(.data-grid.variable-height-rows table.data tr:nth-child(odd)):
(.data-grid.variable-height-rows table.data tr:nth-child(even)):
(.data-grid.variable-height-rows.odd-first-zebra-stripe table.data tr:nth-child(odd)):
(.data-grid.variable-height-rows.odd-first-zebra-stripe table.data tr:nth-child(even)):
(.data-grid.variable-height-rows table.data tr.filler):
Updated styles to support variable height rows directly and flipping the order of the stripes
when the virtual table starts at an odd row.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid): Added rowHeight and rows.
(WebInspector.DataGrid.prototype.get inline): Added.
(WebInspector.DataGrid.prototype.set inline): Added.
(WebInspector.DataGrid.prototype.get variableHeightRows): Added.
(WebInspector.DataGrid.prototype.set variableHeightRows): Added.
(WebInspector.DataGrid.prototype.layout): Call _updateVisibleRows.
(WebInspector.DataGrid.prototype._noteRowsChanged): Added.
(WebInspector.DataGrid.prototype._updateVisibleRows): Added.
(WebInspector.DataGrid.prototype._sortNodesCallback): Update to not use the DOM.
(WebInspector.DataGridNode.prototype.set hasChildren): Call needsLayout.
(WebInspector.DataGridNode.prototype.collapse): Call needsLayout.
(WebInspector.DataGridNode.prototype.expand): Call needsLayout.
(WebInspector.DataGridNode.prototype._attach): Call _noteRowsChanged.
(WebInspector.DataGridNode.prototype._detach): Call _noteRowsChanged.

  • UserInterface/Views/DatabaseUserQuerySuccessView.js:

(WebInspector.DatabaseUserQuerySuccessView):
Set inline to true, remove direct classList add. Call updateLayoutIfNeeded since we don't use views here.

  • UserInterface/Views/DetailsSection.css:

(.details-section > .content .data-grid td.value-column):
(.details-section > .content .data-grid table.data): Deleted.
(.details-section > .content .data-grid tr:nth-child(even)): Deleted.
(.details-section > .content .data-grid tr:nth-child(odd)): Deleted.
Now handled by DataGrid.css directly.

  • UserInterface/Views/DetailsSectionDataGridRow.js:

(WebInspector.DetailsSectionDataGridRow.prototype.set dataGrid):
Set inline and variableHeightRows to true, remove direct classList add. Call updateLayoutIfNeeded since we don't use views here.

  • UserInterface/Views/HeapSnapshotInstancesContentView.css:

(.heap-snapshot > .data-grid tr:matches(.selected, :hover) td .go-to-arrow):
(.heap-snapshot .icon):
Remove margin-top to fit inside 20px row instead of 21px.

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:

(.content-view.indexed-database-object-store > .data-grid table.data): Deleted.
(.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(even)): Deleted.
(.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(odd)): Deleted.
(.content-view.indexed-database-object-store > .data-grid table.data tr.filler): Deleted.
Now handled by DataGrid.css directly.

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:

(WebInspector.IndexedDatabaseObjectStoreContentView):
Set variableHeightRows to true.

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
Set inline to true, remove direct classList add. Call updateLayoutIfNeeded since we don't use views here.

  • UserInterface/Views/LogContentView.css:

(.console-item .data-grid table.data): Deleted.
(.console-item .data-grid table.data tr:nth-child(even)): Deleted.
Now handled by DataGrid.css directly.

  • UserInterface/Views/NetworkGridContentView.css:

(.content-view.network-grid > .data-grid td): Deleted.
(.content-view.network-grid > .data-grid table.data): Deleted.
Now handled by DataGrid.css directly.

  • UserInterface/Views/ProbeSetDataGrid.js:

(WebInspector.ProbeSetDataGrid):
Set inline to true, remove direct classList add.

  • UserInterface/Views/ProfileView.css:

(.profile > .data-grid td .icon):
(.profile > .data-grid tr:matches(.selected, :hover) .go-to-arrow):
Remove margin-top to fit inside 20px row instead of 21px.

  • UserInterface/Views/TimelineRecordingContentView.css:

(.content-view.timeline-recording > .content-browser > .content-view-container > .timeline-view > .data-grid td): Deleted.
(.content-view.timeline-recording > .content-browser > .content-view-container > .timeline-view > .data-grid table.data): Deleted.
Now handled by DataGrid.css directly.

  • UserInterface/Views/Variables.css:

(:root): Added zebra stripe colors.

4:36 PM Changeset in webkit [199746] by ggaren@apple.com
  • 20 edits
    1 add
    10 deletes in trunk/Source/bmalloc

bmalloc: Merge the large and xlarge allocators
​https://bugs.webkit.org/show_bug.cgi?id=156734

Reviewed by Andreas Kling.

This give us better defense against worst case memory usage:

Baseline Patch Δ

Peak Memory:

nimlang 198,132kB 181,468kB 1.09x smaller

It also eliminates inline metadata for large objects, fixing the
regression introduced in r198675, and more:

run-malloc-benchmarks Baseline:~/OpenSource/WebKitBuildBaseline/Release/ Patch:~/OpenSource/WebKitBuild/Release/

Baseline Patch Δ

Memory at End:

big 10,880kB 3,328kB 3.27x smaller
facebook 3,112kB 2,868kB
1.09x smaller
fragment --parallel 1,848kB 760kB 2.43x smaller
fragment_iterate --parallel 4,908kB 776kB
6.32x smaller
big --parallel 48,076kB 11,892kB 4.04x smaller

Overall memory use looks OK:

run-malloc-benchmarks --memory_warning Baseline:~/OpenSource/WebKitBuildBaseline/Release/ Patch:~/OpenSource/WebKitBuild/Release/

Baseline Patch Δ

Memory at End:

<arithmetic mean> 13,992kB 13,987kB 1.0x smaller

Overall throughput looks OK:

run-malloc-benchmarks Baseline:~/OpenSource/WebKitBuildBaseline/Release/ Patch:~/OpenSource/WebKitBuild/Release/

Baseline Patch Δ

Execution Time:

<arithmetic mean> 103ms 104ms ! 1.01x slower

We're a bit slower on the "all-out large allocations on all cores"
benchmark, but I think that's an OK price to pay:

Baseline Patch Δ

Execution Time:

big --parallel 125ms 136ms ! 1.09x slower

This patch net removes 1.5k lines of code. It turns out that large
allocations are rare, and free memory fragments are also rare, so the
combination is super rare, and a simple O(n) algorithm that ensures good
memory behavior is the best option.

Fun fact: In practice, the odds that the old code would save memory
were *worse* than the odds that it would contain a bug that wasted
memory. :)

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::tryAllocate): largeMax is the new xLargeMax since
xLargeMax is gone now.

(bmalloc::Allocator::allocate): I moved the rounding code into allocateLarge,
so we don't have to do it here.

(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase):
(bmalloc::Allocator::allocateXLarge): Deleted. No more XLarge case.

  • bmalloc/Allocator.h:
  • bmalloc/BeginTag.h: Removed.
  • bmalloc/BoundaryTag.h: Removed.
  • bmalloc/Chunk.h:

(bmalloc::ChunkHash::hash): Added a hash function. The best hash function
is a unique and monotonically increasing integer, and that's exactly what
we typically get from the high bits of a Chunk, since the OS allocates
Chunks at unique and increasing addresses.
(bmalloc::Chunk::boundaryTags): Deleted.
(bmalloc::Chunk::objectType): Deleted.
(bmalloc::Chunk::beginTag): Deleted.
(bmalloc::Chunk::endTag): Deleted.

  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::deallocateSlowCase): We no longer know for sure,
by looking at its bit pattern, whether a pointer is small or large.
Instead, any pointer with large alignment *might* be large, and when
we occasionally encounter such an object, we have to consult a hash
table in the Heap to find out for sure. This turns out to be just as
cheap in practice.

We don't deallocate large objects on the fast path anymore. We can't,
because large objects have out-of-line metadata now.

(bmalloc::Deallocator::deallocateXLarge): Deleted.

  • bmalloc/Deallocator.h:

(bmalloc::Deallocator::deallocateFastCase): See deallocateSlowCase.

  • bmalloc/EndTag.h: Removed.
  • bmalloc/FreeList.cpp: Removed.
  • bmalloc/FreeList.h: Removed.
  • bmalloc/Heap.cpp:

(bmalloc::Heap::allocateSmallPage): Be sure to track each chunk in
the object type map, so we can distinguish small vs large objects.

(bmalloc::Heap::deallocateSmallLine): No need to check object type
because we know object type now by virtue of being on the small object
path.

(bmalloc::Heap::splitAndAllocate): Be sure to track each chunk in
the object type map, so we can distinguish small vs large objects. Large
objects can split across chunks, so we need to add each large object's
chunk as it is allocated.

(bmalloc::Heap::tryAllocateLarge):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::isLarge):
(bmalloc::Heap::largeSize):
(bmalloc::Heap::shrinkLarge):
(bmalloc::Heap::deallocateLarge): Merged in existing XLarge logic for
large objects.

(bmalloc::Heap::scavengeXLargeObjects): Deleted.
(bmalloc::Heap::allocateXLarge): Deleted.
(bmalloc::Heap::tryAllocateXLarge): Deleted.
(bmalloc::Heap::xLargeSize): Deleted.
(bmalloc::Heap::shrinkXLarge): Deleted.
(bmalloc::Heap::deallocateXLarge): Deleted.

  • bmalloc/Heap.h:

(bmalloc::Heap::LargeObjectHash::hash):

  • bmalloc/LargeObject.h: Removed.
  • bmalloc/Map.h: Added.

(bmalloc::Map::size):
(bmalloc::Map::capacity):
(bmalloc::Map::get):
(bmalloc::Map::set):
(bmalloc::Map::remove):
(bmalloc::Map::shouldGrow):
(bmalloc::Map::shouldShrink):
(bmalloc::Map::find):
(bmalloc::Hash>::rehash): Simple hash table.

  • bmalloc/Object.h:
  • bmalloc/ObjectType.cpp:

(bmalloc::objectType):

  • bmalloc/ObjectType.h:

(bmalloc::mightBeLarge): See deallocateSlowCase.
(bmalloc::isXLarge): Deleted.

  • bmalloc/SegregatedFreeList.cpp: Removed.
  • bmalloc/SegregatedFreeList.h: Removed.
  • bmalloc/Sizes.h: Upped smallMax to 64kB. Upping to 32kB is pretty

reasonable, since sizes between 16kB and 32kB share page sizes. I went
all the way up to 64kB because the GC uses 64kB blocks, and also just
for extra padding to ensure that large allocations are indeed rare.

  • bmalloc/SortedVector.h: Removed.
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::tryAllocateLargeChunk):
(bmalloc::VMHeap::allocateSmallChunk):
(bmalloc::VMHeap::VMHeap): Deleted.
(bmalloc::VMHeap::allocateChunk): Deleted.

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::deallocateSmallPage):
(bmalloc::VMHeap::allocateLargeObject): Deleted.
(bmalloc::VMHeap::deallocateLargeObject): Deleted. Nixed all the boundary
tag logic since metadata is out of line now.

  • bmalloc/VMState.h: Removed. Instead of an abstract state, we track

the precise amount of committed physical pages at the head of a VM
range. This allows us to merge aggressively without triggering an madvise
storm most of the time.

  • bmalloc/Vector.h:

(bmalloc::Vector<T>::Vector):
(bmalloc::Vector<T>::insert):
(bmalloc::Vector<T>::remove):
(bmalloc::Vector<T>::resize): Filled out some missing helpers.

  • bmalloc/XLargeMap.cpp:

(bmalloc::XLargeMap::remove):
(bmalloc::XLargeMap::add):
(bmalloc::XLargeMap::removePhysical):
(bmalloc::XLargeMap::takeFree): Deleted.
(bmalloc::XLargeMap::addFree): Deleted.
(bmalloc::XLargeMap::addAllocated): Deleted.
(bmalloc::XLargeMap::getAllocated): Deleted.
(bmalloc::XLargeMap::takeAllocated): Deleted.
(bmalloc::XLargeMap::shrinkToFit): Deleted.
(bmalloc::XLargeMap::takePhysical): Deleted.
(bmalloc::XLargeMap::addVirtual): Deleted.

  • bmalloc/XLargeMap.h:

(bmalloc::XLargeMap::Allocation::operator<): Deleted. We don't track
object sizes anymore -- just free space. (The Heap tracks object sizes.)
We use plain old linear search for free space. (See intro.)

  • bmalloc/XLargeRange.h:

(bmalloc::XLargeRange::physicalSize):
(bmalloc::XLargeRange::setPhysicalSize):
(bmalloc::merge):
(bmalloc::XLargeRange::split):
(bmalloc::XLargeRange::vmState): Deleted.
(bmalloc::XLargeRange::setVMState): Deleted. See VMState.h.

4:31 PM Changeset in webkit [199745] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Replace $vm.printValue() with $vm.value().
​https://bugs.webkit.org/show_bug.cgi?id=156767

Reviewed by Saam Barati.

When debugging with $vm, this change allows us to do this:

$vm.print("myObj = " + $vm.value(myObj) + "\n");

... instead of having to do this:

$vm.print("myObj = ");
$vm.printValue(myObj);
$vm.print("\n");

  • tools/JSDollarVMPrototype.cpp:

(JSC::JSDollarVMPrototype::printValue):
(JSC::functionValue):
(JSC::JSDollarVMPrototype::finishCreation):
(JSC::functionPrintValue): Deleted.

2:51 PM Changeset in webkit [199744] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Rebase test after r199738

  • fast/canvas/webgl/fragment-shader-assertion-expected.txt:

ANGLE gives us a more descriptive error now. No big deal.
This test was added to make sure it didn't crash in ​http://trac.webkit.org/changeset/199340
and it still does not crash.

2:45 PM Changeset in webkit [199743] by achristensen@apple.com
  • 5 edits in trunk/Source

Build fix after r199738

Source/ThirdParty/ANGLE:

  • CMakeLists.txt:

Source/WebCore:

  • platform/graphics/efl/GraphicsContext3DEfl.cpp:

(WebCore::GraphicsContext3D::GraphicsContext3D):

  • platform/graphics/win/GraphicsContext3DWin.cpp:

(WebCore::GraphicsContext3D::GraphicsContext3D):

2:02 PM Changeset in webkit [199742] by keith_miller@apple.com
  • 6 edits
    2 adds in trunk

ObjcInstance::stringValue should not call NSObject's description method
​https://bugs.webkit.org/show_bug.cgi?id=156758

Reviewed by Geoffrey Garen.

Source/WebCore:

This patch makes it so that we no longer call NSObject's description method without first
swizzling the implementation for WebScriptObjects. We restore the incomming NSObject's
description method once we have finished generating the string.

Test: platform/mac/fast/objc/webScriptObject-does-not-call-description-on-nsobject.html

  • bridge/objc/objc_instance.mm:

(swizzleNSObjectDescription):
(ObjcInstance::stringValue):

Tools:

Add new methods to ObjCController that expose two Types of WebScriptObjects. The first is
an NSObject and the second is an NSArray of NSObjects. These are used to test that we don't
call the NSObjects description method without first swizzling it.

  • DumpRenderTree/mac/ObjCController.m:

(+[ObjCController isSelectorExcludedFromWebScript:]):
(+[ObjCController webScriptNameForSelector:]):
(-[ObjCController testArrayOfObjects]):
(-[ObjCController testObject]):

LayoutTests:

Test that we don't use the NSObject's description method when stringifying a WebScriptObject.

  • platform/mac/fast/objc/webScriptObject-does-not-call-description-on-nsobject-expected.txt: Added.
  • platform/mac/fast/objc/webScriptObject-does-not-call-description-on-nsobject.html: Added.
  • platform/wk2/TestExpectations:
1:25 PM Changeset in webkit [199741] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

New SPI to export a dictionary of runtime features
​https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>

Reviewed by Anders Carlsson.

Mark the new SPI as WK_MAC_TBA, WK_IOS_TBA.

  • UIProcess/API/Cocoa/_WKExperimentalFeature.h:
1:20 PM Changeset in webkit [199740] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Crash under WebKit::PluginView::pluginSnapshotTimerFired
​https://bugs.webkit.org/show_bug.cgi?id=156754
<rdar://problem/22566764>

Reviewed by Beth Dakin.

Add null check for frame() before trying to access the frame settings,
similarly to what is done earlier in this function. This fixes a top
crasher.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::pluginSnapshotTimerFired):

12:57 PM Changeset in webkit [199739] by achristensen@apple.com
  • 1 edit
    1 add
    1 delete in trunk/Source/ThirdParty/ANGLE

Build fix.

  • src/compiler/translator/Intermediate.h: Added.

(TIntermediate::TIntermediate):

  • src/compiler/translator/intermediate.h: Removed.

Changed case of Intermediate.h file name for case sensitive file systems.

12:46 PM Changeset in webkit [199738] by achristensen@apple.com
  • 520 edits
    123 adds
    9 deletes in trunk

Update ANGLE
​https://bugs.webkit.org/show_bug.cgi?id=156755

Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

Huge list of changed files omitted.

Source/WebCore:

  • CMakeLists.txt:
  • platform/graphics/ANGLEWebKitBridge.h:

(WebCore::ANGLEWebKitBridge::getResources):

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::GraphicsContext3D):
Continue to compile successfully with new ANGLE.

LayoutTests:

  • webgl/1.0.2/conformance/glsl/reserved/webgl_preprocessor_reserved-expected.txt: Removed.
  • webgl/1.0.2/conformance/glsl/reserved/webgl_preprocessor_reserved.html: Removed.

Removed invalid test based on ​https://github.com/KhronosGroup/WebGL/pull/1230

12:37 PM WebKitGTK/2.12.x edited by Michael Catanzaro
(diff)
12:35 PM Changeset in webkit [199737] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

New SPI to export a dictionary of runtime features
​https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>

Post commit follow-up. Darin gave review comments that
I didn't address in my original commit - I was waiting
on some advice.

  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::isEnabledForFeature): Change the macro
to generate a static list of function pointers, rather than
a lot of conditional statements.
(WebKit::WebPreferences::setEnabledForFeature): Ditto.

12:06 PM Changeset in webkit [199736] by youenn.fablet@crf.canon.fr
  • 4 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/streams/readable-streams/general.https.html is a flaky failure
​https://bugs.webkit.org/show_bug.cgi?id=155760

Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

Flakiness was coming from a callback being called after a timeout.
Timeout was set so that a double promise resolution (promise resolved
in another promise resolution callback) is done before calling the callback.
On some slow bots, the timeout was not big enough.

  • web-platform-tests/streams/readable-streams/general.js: Increased the callback delay.

LayoutTests:

11:39 AM Changeset in webkit [199735] by Chris Dumez
  • 43 edits in trunk/Source

Mark more classes as WTF_MAKE_FAST_ALLOCATED
​https://bugs.webkit.org/show_bug.cgi?id=156732

Reviewed by Darin Adler.

Source/WebCore:

  • css/CSSImageGeneratorValue.h:
  • css/DocumentRuleSets.h:
  • css/MediaQueryMatcher.h:
  • css/RuleFeature.h:
  • css/StyleResolver.h:
  • dom/ActiveDOMCallbackMicrotask.h:
  • dom/DocumentSharedObjectPool.h:
  • dom/MutationObserver.cpp:
  • dom/MutationObserverInterestGroup.h:
  • dom/MutationObserverRegistration.h:
  • dom/ScriptExecutionContext.cpp:
  • dom/SlotAssignment.h:
  • html/HTMLCollection.h:
  • html/canvas/CanvasRenderingContext2D.cpp:
  • html/parser/HTMLToken.h:
  • html/parser/XSSAuditorDelegate.h:
  • loader/FrameLoader.cpp:
  • loader/SubframeLoader.h:
  • page/AutoscrollController.h:
  • page/csp/ContentSecurityPolicySource.h:
  • platform/cf/RunLoopObserver.h:
  • platform/graphics/FloatQuad.h:
  • platform/graphics/FloatRoundedRect.h:
  • platform/graphics/IntSize.h:
  • platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
  • platform/graphics/cg/ImageDecoderCG.h:
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/displaylists/DisplayList.h:
  • platform/graphics/mac/ComplexTextController.h:
  • platform/graphics/mac/FontCustomPlatformData.h:
  • platform/mac/PowerObserverMac.h:
  • platform/network/DataURLDecoder.cpp:
  • platform/text/PlatformLocale.h:
  • rendering/TextAutosizer.h:
  • style/StyleUpdate.h:
  • xml/XMLHttpRequestUpload.h:

Source/WebKit2:

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
  • Shared/API/Cocoa/RemoteObjectInvocation.h:
11:34 AM Changeset in webkit [199734] by oliver@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Enable separated heap by default on ios
​https://bugs.webkit.org/show_bug.cgi?id=156720

Reviewed by ggaren.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

10:58 AM Changeset in webkit [199733] by adachan@apple.com
  • 4 edits in trunk/Source/WebCore

Context menu items related to fullscreen should be specific to standard fullscreen
​https://bugs.webkit.org/show_bug.cgi?id=156723
<rdar://problem/25452632>

Reviewed by Darin Adler.

Introduce HTMLMediaElement::isStandardFullscreen() that the HitTestResult code can use
when handling the validation and selection of fullscreen-related context menu items.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::isStandardFullscreen):
(WebCore::HTMLMediaElement::toggleStandardFullscreenState):
Renamed to make it clear that it's for toggling standard fullscreen. Call the new
HTMLMediaElement::isStandardFullscreen().

  • html/HTMLMediaElement.h:
  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::mediaIsInFullscreen):
Use HTMLMediaElement::isStandardFullscreen().
(WebCore::HitTestResult::toggleMediaFullscreenState):
Call the renamed HTMLMediaElement::toggleStandardFullscreenState().

10:46 AM Changeset in webkit [199732] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):
result is unused.

10:25 AM Changeset in webkit [199731] by mark.lam@apple.com
  • 24 edits
    56 adds in trunk

Re-landing: ES6: Implement String.prototype.split and RegExp.prototype[@@split].
​https://bugs.webkit.org/show_bug.cgi?id=156013

Reviewed by Keith Miller.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/GlobalObject.js:

(speciesConstructor):

  • builtins/PromisePrototype.js:
  • refactored to use the @speciesConstructor internal function.
  • builtins/RegExpPrototype.js:

(advanceStringIndex):

  • refactored from @advanceStringIndexUnicode() to be match the spec. Benchmarks show that there's no advantage in doing the unicode check outside of the advanceStringIndexUnicode part. So, I simplified the code to match the spec (especially since @@split needs to call advanceStringIndex from more than 1 location).

(match):

  • Removed an unnecessary call to @Object because it was already proven above.
  • Changed to use advanceStringIndex instead of advanceStringIndexUnicode. Again, there's no perf regression for this.

(regExpExec):
(hasObservableSideEffectsForRegExpSplit):
(split):
(advanceStringIndexUnicode): Deleted.

  • builtins/StringPrototype.js:

(split):

  • Modified to use RegExp.prototype[@@split].
  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
(JSC::BytecodeIntrinsicRegistry::lookup):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • Added the @@split symbol.
  • runtime/CommonIdentifiers.h:
  • runtime/ECMAScriptSpecInternalFunctions.cpp: Added.

(JSC::esSpecIsConstructor):
(JSC::esSpecIsRegExp):

  • runtime/ECMAScriptSpecInternalFunctions.h: Added.
  • runtime/JSGlobalObject.cpp:

(JSC::getGetterById):
(JSC::JSGlobalObject::init):

  • runtime/PropertyDescriptor.cpp:

(JSC::PropertyDescriptor::setDescriptor):

  • Removed an assert that is no longer valid.
  • runtime/RegExpObject.h:
  • Made advanceStringUnicode() public so that it can be re-used by the regexp split fast path.
  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncSearch):
(JSC::advanceStringIndex):
(JSC::regExpProtoFuncSplitFast):

  • runtime/RegExpPrototype.h:
  • runtime/StringObject.h:

(JSC::jsStringWithReuse):
(JSC::jsSubstring):

  • Hoisted some utility functions from StringPrototype.cpp so that they can be reused by the regexp split fast path.
  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::stringProtoFuncSplitFast):
(JSC::stringProtoFuncSubstr):
(JSC::builtinStringSubstrInternal):
(JSC::stringProtoFuncSubstring):
(JSC::stringIncludesImpl):
(JSC::stringProtoFuncIncludes):
(JSC::builtinStringIncludesInternal):
(JSC::jsStringWithReuse): Deleted.
(JSC::jsSubstring): Deleted.
(JSC::stringProtoFuncSplit): Deleted.

  • runtime/StringPrototype.h:
  • tests/es6.yaml:

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/string-prototype-properties-expected.txt:
  • js/regress/regexp-prototype-split-observable-side-effects-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects2-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects2.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-flags-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-flags.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-global-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-global.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-ignoreCase-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-ignoreCase.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-multiline-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-multiline.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-sticky-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-sticky.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-unicode-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-unicode.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects4-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects4.html: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects2.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-flags.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-global.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-ignoreCase.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-multiline.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-sticky.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-unicode.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects4.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects2.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-flags.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-global.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-ignoreCase.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-multiline.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-sticky.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-unicode.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects4.js: Added.
  • js/regress/string-prototype-split-observable-side-effects-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects.html: Added.
  • js/regress/string-prototype-split-observable-side-effects2-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects2.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-flags-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-flags.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-global-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-global.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-ignoreCase-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-ignoreCase.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-multiline-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-multiline.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-sticky-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-sticky.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-unicode-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-unicode.html: Added.
  • js/regress/string-prototype-split-observable-side-effects4-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects4.html: Added.
  • js/script-tests/Object-getOwnPropertyNames.js:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.14_String.prototype.split/S15.5.4.14_A1_T3-expected.txt:
9:58 AM Changeset in webkit [199730] by beidson@apple.com
  • 14 edits
    20 adds
    5 deletes in trunk

Modern IDB: ObjectStore Blob Support.
​https://bugs.webkit.org/show_bug.cgi?id=143193

Reviewed by Alex Christensen.

Source/WebCore:

Tests: imported/blink/storage/indexeddb/blob-basics-metadata.html

imported/blink/storage/indexeddb/blob-delete-objectstore-db.html
imported/blink/storage/indexeddb/blob-valid-after-deletion.html
imported/blink/storage/indexeddb/blob-valid-before-commit.html
imported/blink/storage/indexeddb/empty-blob-file.html
storage/indexeddb/modern/blob-simple.html

Most of the work has been done already.

Besides a handful of tweaks to that work, all this really does is remove the clause
that prevents blob URLs from going into the database.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::putOrAdd): Only disallow blobs if private browsing is enabled

(Making that work is already covered by another bug)

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::putOrAddOnServer):

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::deleteUnusedBlobFileRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):

  • Modules/indexeddb/server/SQLiteIDBTransaction.cpp:

(WebCore::IDBServer::SQLiteIDBTransaction::deleteBlobFilesIfNecessary):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):

  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::deleteDatabaseFile): Delete all database-related files

now that we use WAL mode.

Source/WebKit2:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob): Don't ASSERT that

this is the first we've heard of this path - The Connection now remembers all extensions.

(WebKit::NetworkConnectionToWebProcess::getBlobDataFileReferenceForPath): Don't take - Just get.

LayoutTests:

Note: The blob-basics-metadata.html test has some failure lines in it because we don't support the
File constructor.

Once support is added, that test will start failing with the correct results, at which point we
can update expectations.

  • imported/blink/storage/indexeddb/blob-basics-metadata-expected.txt: Added.
  • imported/blink/storage/indexeddb/blob-basics-metadata.html: Added.
  • imported/blink/storage/indexeddb/blob-delete-objectstore-db-expected.txt: Added.
  • imported/blink/storage/indexeddb/blob-delete-objectstore-db.html: Added.
  • imported/blink/storage/indexeddb/blob-valid-after-deletion-expected.txt: Added.
  • imported/blink/storage/indexeddb/blob-valid-after-deletion.html: Added.
  • imported/blink/storage/indexeddb/blob-valid-before-commit-expected.txt: Added.
  • imported/blink/storage/indexeddb/blob-valid-before-commit.html: Added.
  • imported/blink/storage/indexeddb/empty-blob-file-expected.txt: Added.
  • imported/blink/storage/indexeddb/empty-blob-file.html: Added.
  • imported/blink/storage/indexeddb/resources/empty.txt: Added.
  • imported/blink/storage/indexeddb/resources/shared.js: Added.
  • imported/blink/storage/indexeddb/resources/test-data.html: Added.
  • imported/blink/storage/indexeddb/resources/test-data.txt: Added.
  • platform/wk2/TestExpectations:
  • storage/indexeddb/modern/blob-simple-expected.txt: Added.
  • storage/indexeddb/modern/blob-simple.html: Added.
  • storage/indexeddb/modern/resources/blob-simple.js: Added.
  • storage/indexeddb/noblobs-expected.txt: Removed.
  • storage/indexeddb/noblobs-private-expected.txt: Removed.
  • storage/indexeddb/noblobs-private.html: Removed.
  • storage/indexeddb/noblobs.html: Removed.
  • storage/indexeddb/resources/noblobs.js: Removed.
9:29 AM Changeset in webkit [199729] by commit-queue@webkit.org
  • 9 edits in trunk

Unreviewed, rolling out r199726.
​https://bugs.webkit.org/show_bug.cgi?id=156748

WebKit tests crash on Windows 32 (Requested by msaboff on
#webkit).

Reverted changeset:

"iTunes crashing JavaScriptCore.dll"
​https://bugs.webkit.org/show_bug.cgi?id=156647
​http://trac.webkit.org/changeset/199726

8:48 AM Changeset in webkit [199728] by svillar@igalia.com
  • 7 edits
    2 adds in trunk

[css-grid] Use the margin box for non-auto minimum sizes
​https://bugs.webkit.org/show_bug.cgi?id=156711

Reviewed by Darin Adler.

Source/WebCore:

When computing the min-size of items with non-auto minimum height/width we are incorrectly
returning the size of the border box, and thus incorrectly ignoring the margins of the item.

This is a follow up patch of r199153 were we added the missing border and paddings for
heights. Contrary to that, we were not including margins for both axis.

This CL requires 3 different interrelated changes:

  • Add the margins to the min-size returned by minSizeForChild (might require a layout).
  • Refactor and extract width computations from logicalHeightForChild(); not totally

mandatory but pretty logical and helpful.

  • Use a new update function to isolate the computation of the override width.

Test: fast/css-grid-layout/min-width-margin-box.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeInlineDirectionMargins): Added const to a parameter.

  • rendering/RenderBox.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackSizesForDirection): Initialize the sizingOperation.
(WebCore::RenderGrid::computeIntrinsicLogicalWidths): Ditto.
(WebCore::RenderGrid::computeIntrinsicLogicalHeight): Ditto.
(WebCore::RenderGrid::logicalHeightForChild): Renamed from logicalContentHeightForChild as
it no longer returns the content size but the outer size.
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::updateOverrideContainingBlockContentLogicalWidthForChild): Extracted
from logicalHeightForChild().
(WebCore::RenderGrid::minContentForChild): Update override width if needed.
(WebCore::RenderGrid::maxContentForChild): Ditto.
(WebCore::RenderGrid::computeMarginLogicalSizeForChild): Generalized from
computeMarginLogicalHeightForChild(), it can now compute also margins for the inline
direction.
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching):
(WebCore::RenderGrid::logicalContentHeightForChild): Deleted.
(WebCore::RenderGrid::computeMarginLogicalHeightForChild): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

  • fast/css-grid-layout/min-height-border-box.html:
  • fast/css-grid-layout/min-width-margin-box-expected.txt: Added.
  • fast/css-grid-layout/min-width-margin-box.html: Added.
8:10 AM Changeset in webkit [199727] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Cairo] GraphicsContext::drawFocusRing methods are not consistent to each other
​https://bugs.webkit.org/show_bug.cgi?id=156742

Reviewed by Martin Robinson.

We are rendering the focus ring differently depending on whether a path is used or a vector of rectangles. This
is causing that some reftests fail because they assume we always render the focus ring the same way. For example
fast/images/image-map-outline-in-positioned-container.html, when rendering the test
GraphicsContext::drawFocusRing is called with a path, and when rendering the reference it's called with a vector
of rectangles, producing different results.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawFocusRing): When receiving a vector of rectangles, build a Path from the given
rectangles and call drawFocusRing() with the built path to ensure consistency.

7:11 AM Changeset in webkit [199726] by msaboff@apple.com
  • 9 edits in trunk

iTunes crashing JavaScriptCore.dll
​https://bugs.webkit.org/show_bug.cgi?id=156647

Reviewed by Saam Barati.

Source/JavaScriptCore:

Given that there there are only 128 FLS indices compared to over a 1000 for TLS, I
eliminated the thread specific m_threadSpecificForThread and instead we look for the
current thread in m_registeredThreads list when we need it. In most cases there
will only be one thread.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::machineThreadForCurrentThread):
(JSC::MachineThreads::removeThread):

  • heap/MachineStackMarker.h:

Source/WTF:

If a thread was created without using the WTF thread apis and that thread uses
a JavaScript VM and that thread exits with the VM still around, JSC won't know
that the thread has exited. Currently, we use ThreadSpecificThreadExit() to
clean up any thread specific keys. Cleaning up these keys is how JSC is
notified of a thread exit. We only call ThreadSpecificThreadExit() from
wtfThreadEntryPoint() when the thread entry point function returns.
This mechanism was put in place for Windows because we layer the WTF::ThreadSpecific
functionality on top of TLS (Thread Local Storage), but TLS doesn't have
a thread exiting callback the way that pthread_create_key.

The fix is to change from using TLS to using FLS (Fiber Local Storage). Although
Windows allows multiple fibers per thread, WebKit is not designed to work with a
multiple fibers per thread. When there is only one fiber per thread, FLS works just
like TLS, but it has the destroy callback.

I restructured the Windows version of WTF::ThreadSpecific to be almost the same
as the pthread version.

  • wtf/ThreadSpecific.h:

(WTF::threadSpecificKeyCreate):
(WTF::threadSpecificKeyDelete):
(WTF::threadSpecificSet):
(WTF::threadSpecificGet):
(WTF::ThreadSpecific<T>::ThreadSpecific):
(WTF::ThreadSpecific<T>::~ThreadSpecific):
(WTF::ThreadSpecific<T>::get):
(WTF::ThreadSpecific<T>::set):
(WTF::ThreadSpecific<T>::destroy):
Restructured to use FLS. Renamed TLS* to FLS*.

  • wtf/ThreadSpecificWin.cpp:

(WTF::flsKeyCount):
(WTF::flsKeys):
Renamed from tlsKey*() to flsKey*().

(WTF::destructorsList): Deleted.
(WTF::destructorsMutex): Deleted.
(WTF::PlatformThreadSpecificKey::PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::~PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::setValue): Deleted.
(WTF::PlatformThreadSpecificKey::value): Deleted.
(WTF::PlatformThreadSpecificKey::callDestructor): Deleted.
(WTF::tlsKeyCount): Deleted.
(WTF::tlsKeys): Deleted.
(WTF::threadSpecificKeyCreate): Deleted.
(WTF::threadSpecificKeyDelete): Deleted.
(WTF::threadSpecificSet): Deleted.
(WTF::threadSpecificGet): Deleted.
(WTF::ThreadSpecificThreadExit): Deleted.

  • wtf/ThreadingWin.cpp:

(WTF::wtfThreadEntryPoint): Eliminated call to ThreadSpecificThreadExit.

LayoutTests:

Disabled fast/workers/dedicated-worker-lifecycle.html as it creates
more workers that we have ThreadSpecific keys. We need at least one
key per JSC VM we create. I didn't want to weaken the test for other
platforms.

  • platform/win/TestExpectations:
6:34 AM Changeset in webkit [199725] by Yusuke Suzuki
  • 9 edits
    1 add in trunk

[INTL] Use @thisNumberValue instead of instanceof @Number
​https://bugs.webkit.org/show_bug.cgi?id=156680

Reviewed by Saam Barati.

Source/JavaScriptCore:

Use @thisNumberValue instead of instanceof @Number.
instanceof @Number is not enough;
For example, given 2 realms, the object created in one realm does not
inherit the Number of another realm.
Another example is that the object which does not inherit Number.

`
var number = new Number(42);
number.proto = null;
`

  • builtins/NumberPrototype.js:

(toLocaleString):

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncValueOf):

  • runtime/NumberPrototype.h:
  • tests/stress/number-to-locale-string-should-accept-strange-number-objects.js: Added.

(shouldBe):

LayoutTests:

  • js/number-toLocaleString-expected.txt:
  • js/script-tests/number-toLocaleString.js:
6:29 AM Changeset in webkit [199724] by gskachkov@gmail.com
  • 29 edits
    1 delete in trunk

Unreviewed, rolling out r199712.
​https://bugs.webkit.org/show_bug.cgi?id=156741

It caused a serious regression on 32 bit platform (Requested
by gskachkov on #webkit).

Reverted changeset:

"calling super() a second time in a constructor should throw"
​https://bugs.webkit.org/show_bug.cgi?id=151113
​http://trac.webkit.org/changeset/199712

Patch by Commit Queue <​commit-queue@webkit.org> on 2016-04-19

6:29 AM Changeset in webkit [199723] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Try to fix iOS build.

  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
6:03 AM Changeset in webkit [199722] by Antti Koivisto
  • 7 edits
    1 copy in trunk/Source/WebCore

Move FontSelectorClient to a file of its own
​https://bugs.webkit.org/show_bug.cgi?id=156738

Reviewed by Carlos Garcia Campos.

So modifying FontSelector does not trigger world rebuild via Document.h.

  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSFontSelector.cpp:
  • dom/Document.h:
  • html/canvas/CanvasRenderingContext2D.h:
  • platform/graphics/FontSelector.h:

(WebCore::FontSelectorClient::~FontSelectorClient): Deleted.

  • platform/graphics/FontSelectorClient.h: Added.

(WebCore::FontSelectorClient::~FontSelectorClient):

5:34 AM Changeset in webkit [199721] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r199635) Web Inspector: Percentages in Heap Allocations view are too large
​https://bugs.webkit.org/show_bug.cgi?id=156729
<rdar://problem/25796002>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-19
Reviewed by Timothy Hatcher.

  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
Fix callsite that failed to be updated once percentageString
required 0..1 input instead of 0..100.

5:26 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
5:25 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
5:22 AM Changeset in webkit [199720] by Carlos Garcia Campos
  • 2 edits
    1 delete in trunk/LayoutTests

Unreviewed GTK+ gardening. Update CSP tests.

Rebaseline http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics.html after r197118 and
remove specific expectations of http/tests/security/contentSecurityPolicy/source-list-parsing-10.html.

  • platform/gtk/http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics-expected.txt:
  • platform/gtk/http/tests/security/contentSecurityPolicy/source-list-parsing-10-expected.txt: Removed.
5:15 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
5:10 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
4:55 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
4:54 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
4:35 AM Changeset in webkit [199719] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline fast/events/updateLayoutForHitTest.html after r195263.

  • platform/gtk/fast/events/updateLayoutForHitTest-expected.txt:
4:21 AM WebKitGTK/2.12.x edited by jdiggs@igalia.com
(diff)
4:16 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
4:10 AM Changeset in webkit [199718] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline fast/transforms/bounding-rect-zoom.html after r197450.

  • platform/gtk/fast/transforms/bounding-rect-zoom-expected.txt:
3:59 AM Changeset in webkit [199717] by Carlos Garcia Campos
  • 6 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline tests after r199659.

We are now using the theme colors for the menu lists text.

  • platform/gtk/fast/forms/basic-selects-expected.txt:
  • platform/gtk/fast/forms/disabled-select-change-index-expected.txt:
  • platform/gtk/fast/forms/menulist-style-color-expected.txt:
  • platform/gtk/fast/forms/select-baseline-expected.txt:
  • platform/gtk/fast/forms/select-disabled-appearance-expected.txt:
3:32 AM Changeset in webkit [199716] by Carlos Garcia Campos
  • 6 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline tests after r199034.

  • platform/gtk/fast/block/float/016-expected.txt:
  • platform/gtk/fast/css/bidi-override-in-anonymous-block-expected.txt:
  • platform/gtk/media/video-zoom-controls-expected.txt:
  • platform/gtk/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
3:28 AM MathML edited by fred.wang@free.fr
(diff)
3:23 AM MathML/Fonts created by fred.wang@free.fr
2:50 AM Changeset in webkit [199715] by jdiggs@igalia.com
  • 5 edits
    1 add in trunk

[GTK] accessibility/gtk/entry-and-password.html is failing since r194847
​https://bugs.webkit.org/show_bug.cgi?id=153062

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The changes in r194847 include using WebCore's rendering for the CapsLock indicator.
As a side effect, password inputs gained a TextControlInnerTextElement child from
the Shadow DOM. If we include that child in the accessibility tree, the child will
emit focus and text notifications that suggest the user is no longer in the control.
This can be especially problematic for screen reader users with key echo enabled
when typing in a password input. To fix this, prune TextControlInnerTextElement
children from the accessibility tree for ATK.

No new tests as existing coverage caught this regression. Also modified the
auto-fill-crash.html test whose expectations include the children count for
a text input.

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

LayoutTests:

The auto-fill-crash.html test has expectations which include the children
count for the text input. These expectations were incorrect for ATK where
accessible text inputs lack accessible text children.

  • accessibility/auto-fill-crash.html: Modified to take platform into account.
  • platform/gtk/TestExpectations: Unskipped entry-and-password.html.
  • platform/gtk/accessibility/auto-fill-crash-expected.txt: Added.
2:22 AM Changeset in webkit [199714] by Carlos Garcia Campos
  • 3 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline tests after r190840.

  • platform/gtk/fast/html/details-remove-summary-1-and-click-expected.txt:
  • platform/gtk/fast/html/details-remove-summary-4-and-click-expected.txt:
2:16 AM Changeset in webkit [199713] by Yusuke Suzuki
  • 5 edits
    1 delete in trunk/Source/WTF

[GTK] Use Generic WorkQueue instead of WorkQueueGLib
​https://bugs.webkit.org/show_bug.cgi?id=156721

Reviewed by Benjamin Poulain.

WorkQueueGLib includes platform-dependent part only for WorkQueue::dispatchAfter.
However, its code is related to RunLoopGLib rather than WorkQueueGLib.
In this patch, we move the code from WorkQueueGLib to RunLoopGLib, drop WorkQueueGLib
and use WorkQueueGeneric.

  • wtf/PlatformGTK.cmake:
  • wtf/RunLoop.h:
  • wtf/WorkQueue.h:
  • wtf/glib/RunLoopGLib.cpp:

(WTF::DispatchAfterContext::DispatchAfterContext):
(WTF::DispatchAfterContext::dispatch):
(WTF::RunLoop::dispatchAfter):

  • wtf/glib/WorkQueueGLib.cpp: Removed.

(WTF::WorkQueue::platformInitialize): Deleted.
(WTF::WorkQueue::platformInvalidate): Deleted.
(WTF::WorkQueue::dispatch): Deleted.
(WTF::DispatchAfterContext::DispatchAfterContext): Deleted.
(WTF::DispatchAfterContext::~DispatchAfterContext): Deleted.
(WTF::DispatchAfterContext::dispatch): Deleted.
(WTF::WorkQueue::dispatchAfter): Deleted.

1:47 AM Changeset in webkit [199712] by gskachkov@gmail.com
  • 29 edits
    1 add in trunk

calling super() a second time in a constructor should throw
​https://bugs.webkit.org/show_bug.cgi?id=151113

Reviewed by Saam Barati and Keith Miller.

Source/JavaScriptCore:

Currently, our implementation checks if 'super()' was called in a constructor more
than once and raises a RuntimeError before the second call. According to the spec
we need to raise an error just after the second super() is finished and before
the new 'this' is assigned ​https://esdiscuss.org/topic/duplicate-super-call-behaviour.
To implement this behavior this patch adds a new op code, op_is_empty, that is used
to check if 'this' is empty.

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitIsEmpty):

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

(JSC::FunctionCallValueNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIsEmpty):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_is_empty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_is_empty):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • tests/stress/class-syntax-double-constructor.js: Added.

LayoutTests:

  • js/class-syntax-super-expected.txt:
  • js/script-tests/class-syntax-super.js:
12:21 AM Changeset in webkit [199711] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed, rolling out r199658.
​https://bugs.webkit.org/show_bug.cgi?id=156736

It broke all EFL layout tests (Requested by KaL on #webkit).

Reverted changeset:

"[UNIX] Initialize WebKit before the platform initializations"
​https://bugs.webkit.org/show_bug.cgi?id=156622
​http://trac.webkit.org/changeset/199658

Apr 18, 2016:

11:54 PM Changeset in webkit [199710] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Fix some overhead affecting small codegen
​https://bugs.webkit.org/show_bug.cgi?id=156728

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-18
Reviewed by Filip Pizlo.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::AbstractMacroAssembler):
(JSC::AbstractMacroAssembler::random):
cryptographicallyRandomNumber() is very costly.
We only need it in lowering some very particular cases
of non-trusted immediates. No inline cache needs that.

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::link):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::addSlowCase):
Do not copy the JumpList to access its elements.

11:33 PM Changeset in webkit [199709] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix after r199700

  • PlatformMac.cmake:
11:02 PM Changeset in webkit [199708] by beidson@apple.com
  • 23 edits in trunk/Source

Modern IDB (Blob support): When reading Blobs from the database, grant the Networking process sandbox access to the files.
​https://bugs.webkit.org/show_bug.cgi?id=156640

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No change in behavior, as blobs in IDB are not yet enabled,

but when they are enabled testing will cover this).

  • Modules/indexeddb/shared/IDBResultData.h: Export some stuff
  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked): Account for

BlobRegistry change described below.

  • platform/network/BlobRegistry.h: Change registerBlobURLOptionallyFileBacked to take a BlobDataFileReference instead of a raw path, to allow WK2 to include a sandbox extension.
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::registerBlobURL): Account for BlobRegistry change described above.
(WebCore::BlobRegistryImpl::registerBlobURLOptionallyFileBacked): Use the passed in

BlobDataFileHandle, and also register the BlobResourceHandle constructor.

  • platform/network/BlobRegistryImpl.h:

Source/WebKit2:

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::getSandboxExtensionsForBlobFiles): Utility function to ask the UI process for

SandboxExtensions for a list of files.

(WebKit::DatabaseProcess::didGetSandboxExtensionsForBlobFiles): Take the SandboxExtensions from the UI process

and pass them along to the completion handler.

  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/DatabaseProcess.messages.in:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didGetRecord): If the value returned from the database doesn't have Blob files,

pass the result directly on to WebCore. If it does, ask the UI process for SandboxExtensions first.

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::registerBlobURLOptionallyFileBacked): Grab the BlobDataFileReference from the

NetworkConnectionToWebProcess to pass along to the BlobRegistry.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob): Add this message

so the WebProcess can preflight the creation of some blob URLs by passing along the SandboxExtensions for their files.

(WebKit::NetworkConnectionToWebProcess::takeBlobDataFileReferenceForPath):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • UIProcess/Databases/DatabaseProcessProxy.cpp:

(WebKit::DatabaseProcessProxy::getSandboxExtensionsForBlobFiles): Create SandboxExtensions for the passed in files and

return them to the DatabaseProcess.

  • UIProcess/Databases/DatabaseProcessProxy.h:
  • UIProcess/Databases/DatabaseProcessProxy.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::didGetRecordWithSandboxExtensions): New form of "didGetRecord" that handles passing

the SandboxExtensions to the Networking process before they are needed.

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
10:08 PM Changeset in webkit [199707] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix iOS build after r199701

  • platform/ios/WebAVPlayerController.mm:
10:05 PM Changeset in webkit [199706] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Updated binding test result to reflect the change to not use Deprecated::ScriptValue.

  • bindings/scripts/test/JS/JSTestObj.cpp: Regenerated with new script.
9:05 PM Changeset in webkit [199705] by mitz@apple.com
  • 2 edits in trunk/Tools

Fixed building with old Xcode.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Preferences.mm:

(TEST):

7:58 PM Changeset in webkit [199704] by Darin Adler
  • 10 edits in trunk/Source/WebCore

Remove all use of Deprecated::ScriptValue in generated bindings
​https://bugs.webkit.org/show_bug.cgi?id=156706

Reviewed by Brady Eidson.

  • Modules/indexeddb/IDBCursor.idl: Removed unneeded [ImplementationReturnType=JSValue].
  • Modules/indexeddb/IDBCursorWithValue.idl: Ditto.
  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::lowerValue): Deleted.
(WebCore::IDBKeyRange::upperValue): Deleted.
(WebCore::IDBKeyRange::only): Changed to take ExecState since the old code just used
the ScriptExecutionContext to get back to the (potentially wrong) ExecState. Also kept
one overload that takes ScriptExecutionContext because I could not change all callers.
(WebCore::IDBKeyRange::lowerBound): Ditto.
(WebCore::IDBKeyRange::upperBound): Ditto.
(WebCore::IDBKeyRange::bound): Ditto.

  • Modules/indexeddb/IDBKeyRange.h: Updated for above.
  • Modules/indexeddb/IDBKeyRange.idl: Use [ImplementationReturnType=IDBKey].

Use ScriptState instead of ScriptExecutionContext.

  • Modules/streams/ReadableStreamSource.h: Take JSValue instead of Deprecated::ScriptValue

for the ignored argument to the cancel function.

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::toJS): Renamed idbKeyToJSValue to this, the traditional name used in the
bindings generator for all these functions. Also changed to take references.
(WebCore::injectIDBKeyIntoScriptValue): Updated to call with the new name and types.
(WebCore::idbKeyDataToScriptValue): Ditto.

  • bindings/js/IDBBindingUtilities.h: Added declaration of toJS for IDBKey.
  • bindings/scripts/CodeGeneratorJS.pm: Use JSC::JSValue instead of Deprecated::ScriptValue

for the "any" type.
(JSValueToNative): Just return the value with no transformation when type is "any".
(NativeToJSValue): Changed default behavior for "any" to just pass the value as is with
no transfomration. Removed unused ImplementationReturnType case for inside Document.
Removed JSValue case since it's the default now. Added IDBKey case that matches the
IDBKeyPath case (still wondering if we can do those without an attribute). Removed bogus
second check for type "any".

7:33 PM Changeset in webkit [199703] by commit-queue@webkit.org
  • 14 edits in trunk

[GTK] Possible off-by-one in hyphenation code
​https://bugs.webkit.org/show_bug.cgi?id=156661

Patch by Martin Robinson <​mrobinson@igalia.com> on 2016-04-18
Reviewed by Michael Catanzaro.

Source/WebCore:

No new tests. This is covered by older tests.

  • platform/text/hyphen/HyphenationLibHyphen.cpp:

(WebCore::lastHyphenLocation): Fix an off by one error in hyphen location.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip a test that is now passing.
  • platform/gtk/fast/text/hyphenate-character-expected.png:
  • platform/gtk/fast/text/hyphenate-character-expected.txt:
  • platform/gtk/fast/text/hyphenate-first-word-expected.png:
  • platform/gtk/fast/text/hyphenate-first-word-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.txt:
  • platform/gtk/fast/text/hyphenate-locale-expected.png:
  • platform/gtk/fast/text/hyphenate-locale-expected.txt:
7:18 PM Changeset in webkit [199702] by dino@apple.com
  • 3 edits in trunk/Source/WebKit2

New SPI to export a dictionary of runtime features
​https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>

Trying to fix GTK and EFL builds. I forgot to add files
to CMake.

  • CMakeLists.txt:
  • PlatformMac.cmake:
6:52 PM Changeset in webkit [199701] by eric.carlson@apple.com
  • 7 edits in trunk/Source/WebCore

[OSX] AVKit is not available on all systems
​https://bugs.webkit.org/show_bug.cgi?id=156724
<rdar://problem/25501587>

Reviewed by Dean Jackson.

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm: Add _OPTIONAL to all AVKit softlink macros.
  • platform/ios/WebAVPlayerController.mm: Ditto.
  • platform/ios/WebPlaybackSessionInterfaceAVKit.mm: Ditto.
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Ditto.
  • platform/mac/WebPlaybackSessionInterfaceMac.mm: Ditto.
  • platform/mac/WebVideoFullscreenInterfaceMac.mm: Ditto.
6:46 PM Changeset in webkit [199700] by dino@apple.com
  • 17 edits
    5 copies in trunk

New SPI to export a dictionary of runtime features
​https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>

Reviewed by Darin Adler.

Source/WebKit2:

Add a new type of Preference for experimental features so that we
can dynamically toggle them from a WebKit2 host. These are special
keys that are tied to runtime flags. The host process can ask WebKit
for the list of keys, each with a small description, in order to
display UI.

  • Add HumanReadableName and HumanReadableDescription parameters to our macros, which are used when building a ExperimentalFeature. These are both empty strings for the existing preferences. At some point we should probably move all this to code generation rather than macros, so that we don't have to carry around unused parameters.
  • I've included two sample experimental features: WebGL2 and ShadowDOM. They are not actually hooked up to the runtime settings yet, but its pretty clear how that will happen. Note that these are new preferences that have an "Experimental" prefix. This is so toggling an experimental feature to off won't cause the feature to not work once it becomes stable enough to enable by default. In other words, when it moves out of the experimental stage, the experimental feature flag will be removed, and you'll no longer check for values with that key.
  • The ExperimentalFeature object is what the host process will read in order to show some UI. It contains the human readable info, as well as the actual key that can be used to query and toggle the experimental feature.
  • Shared/API/APIObject.h: Add the ExperimentalFeature.
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject): Exposes a wrapper around a _WKExperimentalFeature ObjC type.

  • Shared/WebPreferencesDefinitions.h: Change all the existing macros to take the new

parameters, and add the initial experimental keys.

  • Shared/WebPreferencesKeys.cpp: Add new parameters to existing macros.
  • Shared/WebPreferencesKeys.h: Ditto.
  • Shared/WebPreferencesStore.cpp: Ditto.

(WebKit::defaults):

  • UIProcess/API/APIExperimentalFeature.cpp: The API side of the ExperimentalFeature.

(API::ExperimentalFeature::create):
(API::ExperimentalFeature::ExperimentalFeature):
(API::ExperimentalFeature::~ExperimentalFeature):

  • UIProcess/API/APIExperimentalFeature.h:
  • UIProcess/API/Cocoa/WKPreferences.mm: The actual implementation of the SPI.

(+[WKPreferences _experimentalFeatures]): Create and return a list of feature descriptors.
(-[WKPreferences _isEnabledForFeature:]): Get the value.
(-[WKPreferences _setEnabled:forFeature:]): Set the value.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/_WKExperimentalFeature.h: The ObjC version.
  • UIProcess/API/Cocoa/_WKExperimentalFeature.mm:

(-[_WKExperimentalFeature dealloc]):
(-[_WKExperimentalFeature description]):
(-[_WKExperimentalFeature name]):
(-[_WKExperimentalFeature key]):
(-[_WKExperimentalFeature details]):
(-[_WKExperimentalFeature _apiObject]):

  • UIProcess/API/Cocoa/_WKExperimentalFeatureInternal.h: Implementation of the wrapper.

(WebKit::wrapper):

  • UIProcess/WebPreferences.cpp: The C++ implementation that provides the data for the ObjC API.

(WebKit::globalExperimentalFeatures):
(WebKit::WebPreferences::ExperimentalFeatures):
(WebKit::WebPreferences::isEnabledForFeature):
(WebKit::WebPreferences::setEnabledForFeature):

  • UIProcess/WebPreferences.h:
  • UIProcess/mac/WebPreferencesMac.mm: Update some macros.

(WebKit::WebPreferences::platformInitializeStore):

  • WebProcess/WebPage/WebPage.cpp: Ditto

(WebKit::WebPage::updatePreferences):

  • WebKit2.xcodeproj/project.pbxproj: Add the new files.

Tools:

Test the experimental features SPI on WKPreferences.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Preferences.mm:
6:38 PM Changeset in webkit [199699] by sbarati@apple.com
  • 33 edits in trunk/Source/JavaScriptCore

implement dynamic scope accesses in the DFG/FTL
​https://bugs.webkit.org/show_bug.cgi?id=156567

Reviewed by Geoffrey Garen.

This patch adds dynamic scope operations to the DFG/FTL.
This patch adds three new DFG nodes: ResolveScope, PutDynamicVar and GetDynamicVar.
When we encounter a Dynamic/UnresolvedProperty/UnresolvedPropertyWithVarInjectionChecks
resolve type, we will compile dynamic scope resolution nodes. When we encounter
a resolve type that needs var injection checks and the var injection
watchpoint has already been fired, we will compile dynamic scope resolution
nodes.

This patch also adds a new value to the InitializationMode enum: ConstInitialization.
There was a subtle bug where we used to never compile the var injection variant of the
resolve type for an eval that injected a var where there was also a global lexical variable with the same name.
For example, the store compiled in this eval("var foo = 20;") wouldn't be compiled
with var injection checks if there was global let/const variable named "foo".
So there was the potential for the injected var to store to the GlobalLexicalObject.
I found this bug because my initial implementation in the DFG/FTL ran into it.
The reason this bug existed is because when we compile a const initialization,
we never need a var injections check. The const initialization always
knows where to store its value. This same logic leaked into the above eval's
"var foo = 20" store. This new enum value allows us to distinguish const
initialization stores from non-const initialization stores.

(I also changed InitializationMode to be an enum class instead of an enum).

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::initializeVariable):
(JSC::BytecodeGenerator::emitInstanceOf):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::BytecodeGenerator::pushScopedControlFlowContext):
(JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutThisToArrowFunctionContextScope):

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::initializationModeForAssignmentContext):
(JSC::AssignResolveNode::emitBytecode):
(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):
(JSC::BindingNode::bindValue):
(JSC::AssignmentElementNode::bindValue):
(JSC::RestParameterNode::emit):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::noticeArgumentsUse):
(JSC::DFG::ByteCodeParser::promoteToConstant):
(JSC::DFG::ByteCodeParser::needsDynamicLookup):
(JSC::DFG::ByteCodeParser::planLoad):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::identifierNumber):
(JSC::DFG::Node::hasGetPutInfo):
(JSC::DFG::Node::getPutInfo):
(JSC::DFG::Node::hasAccessorAttributes):

  • 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::compilePutGetterSetterById):
(JSC::DFG::SpeculativeJIT::compileResolveScope):
(JSC::DFG::SpeculativeJIT::compileGetDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutAccessorByVal):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compilePutDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compareEqObjectOrOtherToObject):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/GetPutInfo.h:

(JSC::resolveModeName):
(JSC::initializationModeName):
(JSC::isInitialization):
(JSC::makeType):
(JSC::GetPutInfo::GetPutInfo):

  • runtime/JSScope.cpp:

(JSC::abstractAccess):

5:25 PM Changeset in webkit [199698] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

Unreviewed test fix after r199696.

  • inspector/console/x-frame-options-message-expected.txt: Rebaseline.):
5:21 PM Changeset in webkit [199697] by barraclough@apple.com
  • 4 edits in trunk

WebKit should adopt journal_mode=wal for all SQLite databases.
​https://bugs.webkit.org/show_bug.cgi?id=133496

Reviewed by Brady Eidson.

Enabling sqlite3 WAL mode on iOS causes a test failure, but appears just be something that should fail still failing, only in a different way.
Enabling & marking test as failing for now. Tracking test failure here:

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

Source/WebCore:

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):

  • enable on iOS.

LayoutTests:

  • platform/ios-simulator/TestExpectations:
    • storage/websql/alter-to-info-table.html [ Failure ]
4:07 PM Changeset in webkit [199696] by Brent Fulgham
  • 8 edits in trunk

Source/WebCore:
Remove support for X-Frame-Options in <meta>
​https://bugs.webkit.org/show_bug.cgi?id=156625
<rdar://problem/25748714>

Rubberstamped by Darin Adler.

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Revise messaging based on Darin's comments.

LayoutTests:
Crash in ElementDescendantIterator::operator--() when calling m_ancestorSiblingStack.last()
​https://bugs.webkit.org/show_bug.cgi?id=156715
<rdar://problem/25750864>

Patch by Chris Dumez <Chris Dumez> on 2016-04-18
Reviewed by Antti Koivisto.

Add regression test that reproduced the crash.

  • fast/dom/collection-backward-traversal-crash-expected.txt: Added.
  • fast/dom/collection-backward-traversal-crash.html: Added.
4:00 PM Changeset in webkit [199695] by timothy_horton@apple.com
  • 12 edits
    1 add in trunk/Source/WebKit2

Swipe view gesture should be reversed in right-to-left contexts
​https://bugs.webkit.org/show_bug.cgi?id=156714

Reviewed by Anders Carlsson.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/PageClient.h:
  • UIProcess/UserInterfaceLayoutDirection.h: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::userInterfaceLayoutDirection):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::userInterfaceLayoutDirection):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::userInterfaceLayoutDirection):
Plumb RTL-ness through to WebPageProxy.
We look at the WK(Web)View's UI layout direction.
For other platforms, we just assume LTR.

  • UIProcess/mac/ViewGestureController.h:
  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
Decide which way to swipe (and which way to look for back-forward items)
based on the WebPageProxy's reported RTLness.

(WebKit::ViewGestureController::isPhysicallySwipingLeft):
"Back" means "swiping left" in LTR and "swiping right" in RTL.

(WebKit::ViewGestureController::trackSwipeGesture):
(WebKit::ViewGestureController::determineLayerAdjacentToSnapshotForParent):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::handleSwipeGesture):
Make things that were equating "back" with "left" instead check isPhysicallySwipingLeft.

3:59 PM Changeset in webkit [199694] by Yusuke Suzuki
  • 12 edits
    3 copies
    5 adds
    1 delete in trunk

[JSCOnly] Implement RunLoop and remove glib dependency
​https://bugs.webkit.org/show_bug.cgi?id=155706

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/OptionsJSCOnly.cmake:

Source/WTF:

Add missing RunLoop and WorkQueue platform code for JSCOnly port.
The implementation does not use platform specific things. Instead, we
implement them on WTF framework; using condition variables to construct
the run loop and timers.

Since the fallback is implemented, it is not necessary for JSCOnly port
to depend on GLib's RunLoop abstraction. So this patch removes its
dependency. As a result, now, JSCOnly port removes dependencies except for the system ICU.

We clean up event loop ifdefs by introducing USE_XXX_EVENT_LOOP flags.
USE(XXX_EVENT_LOOP) is exclusive to each other. So from now, we do not need to take care
of the order of if-defs for the event loops. (For example, USE(GLIB) should have lead before
OS(DARWIN) in WorkQueue.h for WebKitGTK on Darwin.)

EVENT_LOOP determination is done in Platform.h. This follows the style of WTF PLATFORM.

  • wtf/Platform.h:
  • wtf/PlatformJSCOnly.cmake:
  • wtf/RunLoop.h:
  • wtf/WorkQueue.h:
  • wtf/generic/MainThreadGeneric.cpp: Renamed from Source/WTF/wtf/none/MainThreadNone.cpp.

(WTF::initializeMainThreadPlatform):
(WTF::scheduleDispatchFunctionsOnMainThread):

  • wtf/generic/RunLoopGeneric.cpp: Added.

(WTF::RunLoop::TimerBase::ScheduledTask::create):
(WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
(WTF::RunLoop::TimerBase::ScheduledTask::fired):
(WTF::RunLoop::TimerBase::ScheduledTask::scheduledTimePoint):
(WTF::RunLoop::TimerBase::ScheduledTask::updateReadyTime):
(WTF::RunLoop::TimerBase::ScheduledTask::EarliestSchedule::operator()):
(WTF::RunLoop::TimerBase::ScheduledTask::isActive):
(WTF::RunLoop::TimerBase::ScheduledTask::deactivate):
(WTF::RunLoop::RunLoop):
(WTF::RunLoop::~RunLoop):
(WTF::RunLoop::populateTasks):
(WTF::RunLoop::runImpl):
(WTF::RunLoop::run):
(WTF::RunLoop::iterate):
(WTF::RunLoop::stop):
(WTF::RunLoop::wakeUp):
(WTF::RunLoop::schedule):
(WTF::RunLoop::scheduleAndWakeUp):
(WTF::RunLoop::dispatchAfter):
(WTF::RunLoop::TimerBase::TimerBase):
(WTF::RunLoop::TimerBase::~TimerBase):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::TimerBase::stop):
(WTF::RunLoop::TimerBase::isActive):

  • wtf/generic/WorkQueueGeneric.cpp: Added.

(WorkQueue::platformInitialize):
(WorkQueue::platformInvalidate):
(WorkQueue::dispatch):
(WorkQueue::dispatchAfter):

  • wtf/none/MainThreadNone.cpp:

(WTF::initializeMainThreadPlatform): Deleted.
(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

  • wtf/none/RunLoopNone.cpp:

(WTF::RunLoop::RunLoop): Deleted.
(WTF::RunLoop::~RunLoop): Deleted.
(WTF::RunLoop::run): Deleted.
(WTF::RunLoop::stop): Deleted.
(WTF::RunLoop::wakeUp): Deleted.
(WTF::RunLoop::TimerBase::TimerBase): Deleted.
(WTF::RunLoop::TimerBase::~TimerBase): Deleted.
(WTF::RunLoop::TimerBase::start): Deleted.
(WTF::RunLoop::TimerBase::stop): Deleted.
(WTF::RunLoop::TimerBase::isActive): Deleted.

  • wtf/none/WorkQueueNone.cpp:

(WorkQueue::platformInitialize): Deleted.
(WorkQueue::platformInvalidate): Deleted.
(WorkQueue::dispatch): Deleted.
(WorkQueue::dispatchAfter): Deleted.

Tools:

Add TestWTF to JSCOnly port to test WorkQueue and RunLoop.
Platform specific ones locate under jsconly directory since
it is not generic (Since it includes the GLIB event loop case).

  • CMakeLists.txt:
  • TestWebKitAPI/PlatformJSCOnly.cmake: Added.
  • TestWebKitAPI/PlatformUtilities.h:
  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/config.h:
  • TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp: Renamed from Source/WTF/wtf/none/RunLoopNone.cpp.

(TestWebKitAPI::Util::run):
(TestWebKitAPI::Util::sleep):

  • TestWebKitAPI/jsconly/main.cpp: Renamed from Source/WTF/wtf/none/WorkQueueNone.cpp.

(main):

3:36 PM Changeset in webkit [199693] by Chris Dumez
  • 3 edits
    2 adds in trunk

Crash in ElementDescendantIterator::operator--() when calling m_ancestorSiblingStack.last()
​https://bugs.webkit.org/show_bug.cgi?id=156715
<rdar://problem/25750864>

Reviewed by Antti Koivisto.

Source/WebCore:

Fix correctness of ElementDescendantIterator::operator--(). The last element
in the m_ancestorSiblingStack stack is nullptr. However, if our parent does
not have a sibling, m_current->nextSibling() == m_ancestorSiblingStack.last()
would be true and we would end up removing the nullptr element from
m_ancestorSiblingStack. We would crash on a follow-up call to operator--()
because m_ancestorSiblingStack.last() would do an out-of-bound access, given
that m_ancestorSiblingStack is empty.

Test: fast/dom/collection-backward-traversal-crash.html

  • dom/ElementDescendantIterator.h:

(WebCore::ElementDescendantIterator::operator--):

LayoutTests:

Add regression test that reproduced the crash.

  • fast/dom/collection-backward-traversal-crash-expected.txt: Added.
  • fast/dom/collection-backward-traversal-crash.html: Added.
3:29 PM Changeset in webkit [199692] by andersca@apple.com
  • 8 edits in trunk/Source

Fix build with newer versions of clang.
rdar://problem/25749769

Source/WebCore:

Forward declare performClose:.

  • platform/mac/WebCoreFullScreenWindow.mm:

Source/WebKit/mac:

  • WebCoreSupport/WebContextMenuClient.mm:
  • WebView/WebHTMLView.mm:

Forward declare some AppKit IPI.

Source/WebKit2:

  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/mac/WebPageProxyMac.mm:

Forward declare some AppKit IPI.

3:28 PM Changeset in webkit [199691] by commit-queue@webkit.org
  • 17 edits in trunk/Source

Source/WebCore:
Declare a virtual function in PluginStrategy to be implemented by subclasses.
​https://bugs.webkit.org/show_bug.cgi?id=156540

Patch by Tina Liu <​iting_liu@apple.com> on 2016-04-18
Reviewed by Anders Carlsson.

  • plugins/PluginStrategy.h:

Source/WebKit/mac:
Overrode a virtual function of WebCore::PluginStrategy
​https://bugs.webkit.org/show_bug.cgi?id=156540

Patch by Tina Liu <​iting_liu@apple.com> on 2016-04-18
Reviewed by Anders Carlsson.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy):

Source/WebKit2:
Implement functions to set plug-in load policies for private browsing mode
​https://bugs.webkit.org/show_bug.cgi?id=156540

Patch by Tina Liu <​iting_liu@apple.com> on 2016-04-18
Reviewed by Anders Carlsson.

This patch implements API and wrappers for clients to set policies to use when using
private browsing. WebPlatformStrategies would return which policies to use depending
on whether the page is in private browsing mode.

  • Shared/WebProcessCreationParameters.h:

Add a hash map for plug-in load policies for private browsing.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • UIProcess/API/C/mac/WKContextPrivateMac.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextSetPrivateBrowsingPluginLoadClientPolicy):
Add a wrapper.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):
Set the WebProcessCreationParameters's pluginLoadClientPoliciesForPrivateBrowsing.
(WebKit::WebProcessPool::setPluginLoadClientPolicyForBrowsingMode):
A helper function that sets plug-in policies to the corresponding instance variable:
m_pluginLoadClientPolicies for general browsing and m_pluginLoadClientPoliciesForPrivateBrowsing
for private browsing. The logic is extracted from the original setPluginLoadClientPolicy.
While we are here, get rid of the .contains() lookup as .get() will just return a
constructed object if the key is not found.
(WebKit::WebProcessPool::setPluginLoadClientPolicy):
Switch to use the helper function to set policies.
(WebKit::WebProcessPool::setPrivateBrowsingPluginLoadClientPolicy):
Ditto. Also send a message to the WebProcess for setting policies for private browsing.
(WebKit::WebProcessPool::clearPluginClientPolicies):
Clear plug-ins' private browsing policies.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::setPluginLoadClientPolicyForBrowsingMode):
Ditto as WebProcessPool::setPluginLoadClientPolicyForBrowsingMode.
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
Switch to use setPluginLoadClientPolicyForBrowsingMode to set policies.
(WebKit::WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy):
Use setPluginLoadClientPolicyForBrowsingMode to set policies for private browsing.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies):
Clear plug-ins' private browsing policies.
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost):
Add an argument for private browsing. Read from the corresponding ivar.
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost):
Ditto.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost): Deleted.
Renamed this function as pluginLoadClientPolicyForHostForBrowsingMode.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHostForBrowsingMode):
Ditto.
(WebKit::WebPlatformStrategies::populatePluginCache):
Get the plug-in load policies for a specific host based on the page's session status. If the page
is using ephemeral session, use the private browsing policies.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
Switch to call the helper function setPluginLoadClientPolicyFromCreationParameters.
(WebKit::WebProcess::setPluginLoadClientPolicies):
Logic moved from initializeWebProcess. Call PluginStrategy::setPluginLoadClientPolicy or
PluginStrategy::setPrivateBrowsingPluginLoadClientPolicy depending on the input argument.
(WebKit::WebProcess::setPrivateBrowsingPluginLoadClientPolicy):
Add a wrapper to call PluginStrategy::setPrivateBrowsingPluginLoadClientPolicy.

  • WebProcess/WebProcess.messages.in:

Declare an entry for setPrivateBrowsingPluginLoadClientPolicy.

3:09 PM Changeset in webkit [199690] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Disable AVX.

Rubber stampted by Benjamin Poulain.

AVX is silly. If you use it and some of your other code isn't careful with float register bits, you
will run 10x slower. We could fix the underlying issue, but it's better to stay away from this odd
instruction subset.

This fixes a massive regression on some real code.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::supportsAVX):
(JSC::MacroAssemblerX86Common::updateEax1EcxFlags):

2:53 PM Changeset in webkit [199689] by Joseph Pecoraro
  • 3 edits in trunk

Unreviewed revert accidental ChangeLog modifications.

2:50 PM Changeset in webkit [199688] by Joseph Pecoraro
  • 3 edits in trunk

Web Inspector: sourceMappingURL not used when sourceURL is set
​https://bugs.webkit.org/show_bug.cgi?id=156021
<rdar://problem/25438417>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Clean up Debugger.sourceParsed to separately include:

  • url ("resource URL", "source url" in JSC APIs)
  • sourceURL - # sourceURL directive

By always having the resource URL the Web Inspector frontend
can better match this Script to a Resource of the same URL,
and decide to use the sourceURL if it is available when
appropriate.

  • inspector/protocol/Debugger.json:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::InspectorDebuggerAgent::didParseSource):
Send the new sourceParsed parameters.

Source/WebInspectorUI:

Previously Debugger.sourceParsed only providing the sourceURL, and
wiping out the resourceURL, meant that a Script from a Resource that
set a sourceURL directive would fail to be associated with its Resource.

This would result in duplicated tree elements in the Resources Sidebar,
one for the Resource, and one for the Script. With the Script getting
ultimately getting the SourceMap resources. However, since the frontend
prefers Resources over Scripts when possible, an error that generated
from the script would point to a location in the Resource, not following
source maps.

By always providing the resource URL in Debugger.sourceParsed, a Script
can better be associated with its Resource. The result is now a single
shared tree element in the Resources Sidebar, and the Resource getting
the SourceMap resources. Now the script error goes through the Resource
to its SourceMap resources as we would expect.

  • UserInterface/Protocol/DebuggerObserver.js:

(WebInspector.DebuggerObserver):
(WebInspector.DebuggerObserver.prototype.scriptParsed):
We now have to handle two different signatures of scriptParsed. One
for legacy, and one for non-legacy. Cache that value early on, since
scriptParsed happens a lot.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackend.Agent.prototype.hasEventParameter):
Runtime check a protocol event to see if it has a parameter. This
is used to check if Debugger.sourceParsed is legacy or not based
on if it has the legacy "hasSourceURL" parameter.

  • UserInterface/Models/Script.js:

(WebInspector.Script):
(WebInspector.Script.prototype.get sourceURL):
Treat sourceURL and url separately.

(WebInspector.Script.prototype.get displayName):
Handle both the url and sourceURL in displayName.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
(WebInspector.DebuggerManager.prototype.scriptDidParse):

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
Update code that checks the sourceURL to explicitly use sourceURL.

  • UserInterface/Controllers/SourceMapManager.js:

(WebInspector.SourceMapManager.prototype.downloadSourceMap):
For legacy backends, or in case we get a resource that has an incomplete
baseURL, attempt to get an absolute URL based on the main resource.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._addScript):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
Ignore scripts without a url or sourceURL.

LayoutTests:

  • inspector/debugger/scriptParsed.html:
  • inspector/debugger/search-scripts.html:
  • inspector/debugger/setBreakpointByUrl-sourceURL.html:
  • inspector/debugger/sourceURLs.html:

Update tests that need to handle sourceURL separately.

  • inspector/model/resources/relationship-named.js: Added.
  • inspector/model/resources/relationship-normal.js: Added.
  • inspector/model/script-resource-relationship-expected.txt: Added.
  • inspector/model/script-resource-relationship.html: Added.

Tests for Script and Resource relationships.

1:50 PM Changeset in webkit [199687] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] don't toggle playback when media engine rate changes
​https://bugs.webkit.org/show_bug.cgi?id=156705
<rdar://problem/25779175>

Reviewed by Jer Noble.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::rateChanged): Don't send the play/pause command

unless the player item state is >= MediaPlayerAVPlayerItemStatusPlaybackBufferFull and
the rate change is unexpected.

1:33 PM Changeset in webkit [199686] by fpizlo@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

ToThis should have a fast path based on type info flags
​https://bugs.webkit.org/show_bug.cgi?id=156712

Reviewed by Geoffrey Garen.

Prior to this change, if we couldn't nail down the type of ToThis to something easy, we'd emit code
that would take slow path if the argument was not a final object. We'd end up taking that slow path
a lot.

This adds a type info flag for ToThis having non-obvious behavior and changes the DFG and FTL paths
to test this flag. This is a sub-1% speed-up on SunSpider and Octane.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileToThis):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::create):

  • runtime/JSLexicalEnvironment.h:

(JSC::JSLexicalEnvironment::create):

  • runtime/JSString.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::overridesGetOwnPropertySlot):
(JSC::TypeInfo::interceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero):
(JSC::TypeInfo::structureIsImmortal):
(JSC::TypeInfo::overridesToThis):
(JSC::TypeInfo::overridesGetPropertyNames):
(JSC::TypeInfo::prohibitsPropertyCaching):
(JSC::TypeInfo::getOwnPropertySlotIsImpure):

  • runtime/StrictEvalActivation.h:

(JSC::StrictEvalActivation::create):

  • runtime/Symbol.h:
1:28 PM Changeset in webkit [199685] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Check to see how the perf bots react to megamorphic load being disabled.

Rubber stamped by Chris Dumez.

  • runtime/Options.h:
1:26 PM Changeset in webkit [199684] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix iOS9 build after r199682.

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):

1:02 PM Changeset in webkit [199683] by keith_miller@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

We should support delete in the DFG
​https://bugs.webkit.org/show_bug.cgi?id=156607

Reviewed by Benjamin Poulain.

This patch adds support for the delete in the DFG as it appears that
some major frameworks use the operation in particularly hot functions.
As a result, even if the function rarely ever calls delete we would never
tier up to the DFG. This patch also changes operationDeleteById to take a
UniquedStringImpl and return a size_t.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasIdentifier):

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDeleteById):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_del_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_del_by_id):

11:49 AM Changeset in webkit [199682] by Chris Dumez
  • 10 edits in trunk/Source

[WK2][iOS] Only adjust network responses' MIME type for QuickLook in the context of a main resource load
​https://bugs.webkit.org/show_bug.cgi?id=156639
<rdar://problem/25765848>

Reviewed by Alex Christensen.

Source/WebCore:

Only adjust network responses' MIME type for QuickLook in the context of a main
resource load since we can only preview main resources with QuickLook. This
avoids doing unnecessary work during page load. Also, this makes it a lot less
likely to dlopen() the QuickLook library during page load since we now only
adjust MIME type for QuickLook for main resources, and main resources usually
have the well-known 'text/html' MIME type for which we know we will not use
QuickLook.

After this change, we no longer need to dlopen() the QuickLook library in the
NetworkProcess in the context of the PLT. We would previously dlopen() the
library during the first page load, thus significantly slowing it down. As a
result, we see a ~22% speed up in the PLT's first page load and a 0.9-1% overall
PLT progression.

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
Pass flag to adjustMIMETypeIfNecessary() indicated if this is a main resource load.

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::adjustMIMETypeIfNecessary):
Only adjust the MIME type for QuickLook if the isMainResourceLoad parameter is true.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
Only adjust the MIME type for QuickLook if the isMainResourceLoad parameter is true.

  • platform/network/mac/WebCoreURLResponse.h:
  • platform/network/mac/WebCoreURLResponse.mm:

(WebCore::adjustMIMETypeIfNecessary):

Source/WebKit2:

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::firstRequest):
Add getter to return the first request.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
Pass flag to adjustMIMETypeIfNecessary() indicated if this is a main resource load.

11:41 AM Changeset in webkit [199681] by jonlee@apple.com
  • 2 edits in trunk/Tools

Update Animometer plan.
​https://bugs.webkit.org/show_bug.cgi?id=156652

Reviewed by Darin Adler.

  • Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan: Update to r199616.
10:46 AM Changeset in webkit [199680] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: provide detailed error messages when an automation command fails
​https://bugs.webkit.org/show_bug.cgi?id=156635
<rdar://problem/25754051>

Reviewed by Darin Adler and Timothy Hatcher.

Fill in lots of missing error message details now that the remote end knows
how to parse error strings with predefined error names and details.

  • UIProcess/Automation/WebAutomationSession.cpp:

Rearrange the error message macros. Make it possible to pass a ErrorMessage
variable or just the enum value name and get out an encoded error message
that optionally includes a free-form details string. The predefined error
name and the details string are joined together with a semicolon.

(WebKit::WebAutomationSession::getBrowsingContext):
(WebKit::WebAutomationSession::createBrowsingContext):
(WebKit::WebAutomationSession::closeBrowsingContext):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::resizeWindowOfBrowsingContext):
(WebKit::WebAutomationSession::moveWindowOfBrowsingContext):
(WebKit::WebAutomationSession::navigateBrowsingContext):
(WebKit::WebAutomationSession::goBackInBrowsingContext):
(WebKit::WebAutomationSession::goForwardInBrowsingContext):
(WebKit::WebAutomationSession::reloadBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::didEvaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::didResolveChildFrame):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::didResolveParentFrame):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::didComputeElementLayout):
(WebKit::WebAutomationSession::isShowingJavaScriptDialog):
(WebKit::WebAutomationSession::dismissCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::acceptCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::messageOfCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::didGetCookiesForFrame):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::didDeleteCookie):
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::deleteAllCookies):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::takeScreenshot):
(WebKit::WebAutomationSession::didTakeScreenshot):
Audit almost all early exits and provide a relevant error details message
if the error itself is ambiguous. Make sure to format asynchronous errors.

10:30 AM Changeset in webkit [199679] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WTF

Unreviewed, rolling out r199621.
​https://bugs.webkit.org/show_bug.cgi?id=156708

made windows tests crash (Requested by alexchristensen on
#webkit).

Reverted changeset:

"iTunes crashing JavaScriptCore.dll"
​https://bugs.webkit.org/show_bug.cgi?id=156647
​http://trac.webkit.org/changeset/199621

10:28 AM Changeset in webkit [199678] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: NavigationSidebarPanel does a lot of style recalc and layout on busy sites

​https://bugs.webkit.org/show_bug.cgi?id=156704
rdar://problem/25778744

Reviewed by Brian Burg.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype._treeElementDisclosureDidChange):
Use _updateContentOverflowShadowVisibilitySoon in more places so the style recalc
and layout changes are coalesced into one action after all rapid fire calls.

10:28 AM Changeset in webkit [199677] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Database query result DataGrids have misaligned header columns

​https://bugs.webkit.org/show_bug.cgi?id=156701
rdar://problem/25778310

Reviewed by Brian Burg.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.autoSizeColumns): Set the width on the <col> element
for the body table to match the <col> in the header.

10:28 AM Changeset in webkit [199676] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix the debounce function

​https://bugs.webkit.org/show_bug.cgi?id=156696
rdar://problem/25778133

Reviewed by Brian Burg.

  • UserInterface/Base/Utilities.js:

(Function.prototype.debounce): Store the timeout on the original function instead
of the bound function. Also simplify the implementation with arrow functions
and eliminate the bind altogether.

10:13 AM Changeset in webkit [199675] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

FTL should pin the tag registers at inline caches
​https://bugs.webkit.org/show_bug.cgi?id=156678

Reviewed by Saam Barati.

This is a long-overdue fix to our inline caches. Back when we had LLVM, we couldn't rely on the tags
being pinned to any registers. So, if the inline caches needed tags, they'd have to materialize them.

This removes those materializations. This should reduce the amount of code generated in inline caches
and it should make inline caches faster. The effect appears to be small.

It may be that after this change, we'll even be able to kill the
HaveTagRegisters/DoNotHaveTagRegisters logic.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::getById):

  • jit/Repatch.cpp:

(JSC::readCallTarget):
(JSC::linkPolymorphicCall):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):

10:13 AM Changeset in webkit [199674] by dburkart@apple.com
  • 2 edits in trunk/Tools

svn-apply: add option for ignoring changes to ChangeLog files
​https://bugs.webkit.org/show_bug.cgi?id=156618

Reviewed by Darin Adler.

This change adds a new option to svn-apply, --skip-changelogs, which short-circuits out of
patch() if the file in question is a ChangeLog.

  • Scripts/svn-apply:

(patch):

9:45 AM Changeset in webkit [199673] by Brent Fulgham
  • 15 edits
    4 deletes in trunk

Source/WebCore:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
​https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>

Reviewed by Darin Adler.

Remove the unused dynamic favicon code and tests.

  • loader/EmptyClients.h:
  • loader/FrameLoaderClient.h:
  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLink):

Source/WebKit/mac:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
​https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>

Reviewed by Darin Adler.

Remove the unused dynamic favicon code and tests.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidChangeIcons): Deleted.

Source/WebKit/win:
CSP: Make dynamically-added favicons (via link rel="icon") obey Content-Security-Policy
​https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>

Reviewed by Darin Adler.

Remove the unused dynamic favicon code and tests.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDidChangeIcons): Deleted.

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
​https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>

Reviewed by Darin Adler.

Remove the unused dynamic favicon code and tests.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidChangeIcons): Deleted.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

LayoutTests:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
​https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>

Reviewed by Darin Adler.

Remove the unused dynamic favicon code and tests.

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/icon-allowed-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/icon-allowed.html: Removed.
  • http/tests/security/contentSecurityPolicy/icon-blocked-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/icon-blocked.html: Removed.
9:14 AM Changeset in webkit [199672] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

[Mac][EME] Protected content over HLS is not notified when a HDCP violation occurs.
​https://bugs.webkit.org/show_bug.cgi?id=156633

Reviewed by Eric Carlson.

Pass through the existing "outputObscuredDueToInsufficientExternalProtection" status as an
error, similarly to what we do for CDMSessionMediaSourceAVFObjC.

  • platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:

(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC): Deleted.

  • platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:

(SOFT_LINK_CLASS):
(-[WebCDMSessionAVFoundationObjCListener initWithParent:player:]):
(-[WebCDMSessionAVFoundationObjCListener invalidate]):
(-[WebCDMSessionAVFoundationObjCListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):
(WebCore::CDMSessionAVFoundationObjC::playerDidReceiveError):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:

(WebCore::MediaPlayerPrivateAVFoundationObjC::avPlayer):

9:04 AM Changeset in webkit [199671] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION( r199603): Pandora crashes WebKit in WebPlaybackSessionManager::removeClientForContext
​https://bugs.webkit.org/show_bug.cgi?id=156648

Reviewed by Darin Adler.

Follow up patch to r199615; avoid a double hash lookup by using a .find() pattern instead of
.contains() & .get().

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::setUpPlaybackControlsManager):
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):

8:54 AM Changeset in webkit [199670] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] Updated Greek translation of WebKitGTK+
​https://bugs.webkit.org/show_bug.cgi?id=156677

Patch by Tom Tryfonidis <​tomtryf@gmail.com> on 2016-04-18
Rubber-stamped by Michael Catanzaro.

  • el.po:
8:36 AM Changeset in webkit [199669] by Chris Dumez
  • 8 edits in trunk/Source

Unreviewed, rolling out r199644.

Seems to have caused a 1-2% regression on warm PLT

Reverted changeset:

"[WK2][iOS] Do not dlopen() QuickLook in the NetworkProcess"
​https://bugs.webkit.org/show_bug.cgi?id=156639
​http://trac.webkit.org/changeset/199644

8:33 AM Changeset in webkit [199668] by Darin Adler
  • 46 edits
    1 copy
    4 deletes in trunk/Source/WebCore

Get rid of IDBAny
​https://bugs.webkit.org/show_bug.cgi?id=156681

Reviewed by Brady Eidson.

IDBAny is not part of the public interface of Indexed Database.
It was an implementation technique used to help create language bindings for
functions that have to deal with types that aren't easly expressed with the
normal IDL and C++ type system.

What was particularly dangerous about IDBAny is that it can be used to store
arbitrary JavaScript objects and it's not easy to handle garbage collection and
reference cycles when they are hidden behind this class's abstraction. It's also
a needless extra layer, a reference counted object just to carry the types from
the bindings to the C++ DOM implementation.

Ths patch also does many small style tweaks.

  • CMakeLists.txt: Removed IDBAny source files. Added JSIDBRequestCustom.cpp.
  • DerivedSources.cpp: Ditto.
  • DerivedSources.make: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • Modules/indexeddb/IDBAny.cpp: Removed.
  • Modules/indexeddb/IDBAny.h: Removed.
  • Modules/indexeddb/IDBAny.idl: Removed.
  • Modules/indexeddb/IDBCursor.cpp: Added includes needed now that headers don't

include as much.
(WebCore::IDBCursor::stringToDirection): Removed unneeded IDBCursor namespacing.
(WebCore::IDBCursor::directionToString): Ditto.
(WebCore::IDBCursor::IDBCursor): Removed creation of IDBAny object.
(WebCore::IDBCursor::direction): Removed unneeded IDBCursor namespacing.
(WebCore::IDBCursor::key): Moved this function to the header.
(WebCore::IDBCursor::primaryKey): Ditto.
(WebCore::IDBCursor::value): Ditto.
(WebCore::IDBCursor::source): Deleted this function; replaced with multiple
type-specific functions; all but one will return null.
(WebCore::IDBCursor::update): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBCursor::advance): Take unsigned instead of unsigned long.
Fell prey to the confusion because "unsigned long" in IDL means "unsigned" in C++.
(WebCore::IDBCursor::continueFunction): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBCursor::uncheckedIterateCursor): Take unsigned instead of unsigned long.
(WebCore::IDBCursor::setGetResult): Rewrote to get the VM pointer from the
ScriptExecutionContext here instead of inside the binding utilities functions.

  • Modules/indexeddb/IDBCursor.h: Removed many unneeded includes.

Changed key, primaryKey, and value to no longer take an unneeded ExecState.
Made more functions private.

  • Modules/indexeddb/IDBCursor.idl: Changed type of "source" to "any", which matches

the IDB specification, rather than "IDBAny". Added [CustomGetter] so we can write the
getter that understands the multiple possible values. Removed unneeded
[CallWith=ScriptState] from key and primaryKey attributes.

  • Modules/indexeddb/IDBCursorWithValue.h: Marked the class final.
  • Modules/indexeddb/IDBCursorWithValue.idl: Removed unneeded [CallWith=ScriptState]

from the value attribute.

  • Modules/indexeddb/IDBDatabase.cpp: Added now-needed include.
  • Modules/indexeddb/IDBDatabase.h: Removed this header's include of itself!
  • Modules/indexeddb/IDBFactory.cpp: Added some now-needed includes.

(WebCore::IDBFactory::~IDBFactory): Moved this out of the header file.
(WebCore::IDBFactory::getDatabaseNames): Removed function that always returns nullptr.
(WebCore::IDBFactory::open): Removed unneeded release() calls when returning a RefPtr.
(WebCore::IDBFactory::cmp): Take JSValue instead of Deprecated::ScriptValue.
Also removed unneeded typecast.

  • Modules/indexeddb/IDBFactory.h: Removed many unneeded includes.

Removed the getDatabaseNames function. We still need a solution here, but there is
no reason to keep the placeholder function that returns nullptr here.

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::keyPathAny): Removed.
(WebCore::IDBIndex::openCursor): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBIndex::count): Ditto.
(WebCore::IDBIndex::openKeyCursor): Ditto.
(WebCore::IDBIndex::get): Ditto.
(WebCore::IDBIndex::getKey): Ditto.

  • Modules/indexeddb/IDBIndex.h: Removed many unneeded includes, including this file

including itself. Marked class final. Updated for above changes.

  • Modules/indexeddb/IDBIndex.idl: Changed type of "keyPath" to "any", which matches

the IDB specification, rather than "IDBAny". Specified [ImplementationReturnType=IDBKeyPath]
so the code generator creates the appropriate code to convert from an IDBKeyPath.
In the future, we may find a way to do this without an explicit attribute in the IDL
file but this is fine for now.

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::create): Moved this here from the header. Use booleans instead
of enums because all the call sites outside this class are using booleans.
(WebCore::IDBKeyRange::IDBKeyRange): Updated to use booleans.
(WebCore::IDBKeyRange::~IDBKeyRange): Moved here from the header.
(WebCore::IDBKeyRange::lowerValue): Removed now-unneeded get().
(WebCore::IDBKeyRange::upperValue): Ditto.
(WebCore::IDBKeyRange::only): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBKeyRange::lowerBound): Updated for above changes.
(WebCore::IDBKeyRange::upperBound): Ditto.
(WebCore::IDBKeyRange::bound): Ditto.
(WebCore::IDBKeyRange::isOnlyKey): Removed assertions that lower and upper are not null;
there is no real guarantee of this! Rewrote and streamlined and it handles the null case now.

  • Modules/indexeddb/IDBKeyRange.h: Removed unneeded includes. Changed class to use booleans

instead of enums for m_isLowerOpen and m_isUpperOpen. Moved functions into the cpp file.

  • Modules/indexeddb/IDBKeyRangeData.cpp:

(WebCore::IDBKeyRangeData::maybeCreateIDBKeyRange): Updated to use booleans instead of enums.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::name): Changed return type to const String& to cut down on
reference count churn.
(WebCore::IDBObjectStore::keyPathAny): Deleted.
(WebCore::IDBObjectStore::keyPath): Changed return type to const IDBKeyPath& to cut down on
unnecessary copies.
(WebCore::IDBObjectStore::openCursor): Take JSValue instead of Deprecated::SCriptValue.
(WebCore::IDBObjectStore::get): Ditto.
(WebCore::IDBObjectStore::putOrAdd): Ditto. Removed peculiar adoptRef/leakRef that was not needed.
(WebCore::IDBObjectStore::deleteFunction): Ditto.
(WebCore::IDBObjectStore::modernDelete): Ditto. Use releaseNonNull for better efficiency.
(WebCore::IDBObjectStore::count): Ditto.

  • Modules/indexeddb/IDBObjectStore.h: Removed unneeded includes and changed types as mentioned

above in the cpp file function descriptions.

  • Modules/indexeddb/IDBObjectStore.idl: Changed type of "keyPath" to "any" and

specified [ImplementationReturnType=IDBKeyPath] as above in IDBIndex.idl.

  • Modules/indexeddb/IDBOpenDBRequest.cpp: Added now-needed includes.

(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit): Removed unneeded assertions
that depend on how m_result is implemented, which changed.
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion): Call setResultToUndefined
instead of setting m_result directly.
(WebCore::IDBOpenDBRequest::onSuccess): Call setResult instead of setting m_result and
m_readyState directly.
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):: Ditto. Also use WTFMove to set
m_transaction instead of peculiar adoptRef/leakRef.
(WebCore::IDBOpenDBRequest::onDeleteDatabaseSuccess): Call setResultToUndefined
instead of setting m_result directly.

  • Modules/indexeddb/IDBOpenDBRequest.h: Marked the class final. Removed some unneeded headers

and made more things private.

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::IDBRequest): Don't initialize m_source any more. Instead initialize
m_objectStoreSource and m_indexSource, preserving the old behavior and not setting m_cursorSource
even when passed an IDBCursor.
(WebCore::IDBRequest::~IDBRequest): Simplify the code that calls clearRequest on the result
if it's a cursor. The logic is now simply a null check.
(WebCore::IDBRequest::result): Deleted. The logic is now in a custom binding.
(WebCore::IDBRequest::error): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::source): Deleted. The logic is now in a custom binding.
(WebCore::IDBRequest::setSource): Set m_objectStoreSource, m_indexSource, and m_cursorSource
instead of setting m_source.
(WebCore::IDBRequest::readyState): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::sourceObjectStoreIdentifier): Use m_objectStoreSource and
m_indexSource instead of using m_source. To preserve current behavior, this this does not
use m_cursorSource since the old code did not handle IDBCursor.
(WebCore::IDBRequest::sourceIndexIdentifier): Use m_indexSource instead of m_source, preserving
current behavior.
(WebCore::IDBRequest::requestedIndexRecordType): Ditto.
(WebCore::IDBRequest::dispatchEvent): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::setResult): Rewrote to use the clearResult function so we don't
have to repeat the code to clear result pointers. Also take a reference.
(WebCore::IDBRequest::setResultToStructuredClone): Ditto.
(WebCore::IDBRequest::clearResult): Clear out m_scriptResult, m_cursorResult, and m_databaseResult
instead of m_result.
(WebCore::IDBRequest::setResultToUndefined): Set m_scriptResult instead of m_result.
(WebCore::IDBRequest::resultCursor): Use m_cursorResult instead of m_result.
(WebCore::IDBRequest::willIterateCursor): Updated to use m_isDone instead of m_readyState.
Also call setResultToUndefined instead of setting m_result.
(WebCore::IDBRequest::didOpenOrIterateCursor): Call setResultToUndefined and set m_cursorResult
instead of setting m_result.
(WebCore::IDBRequest::requestCompleted): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::setResult): Added for use by the derived class; sets m_databaseResult.

  • Modules/indexeddb/IDBRequest.h: Removed unneeded includes. Removed unused IDBRequestReadyState,

since that's now done with strings. Added cursorResult, databaseResult, scriptResult,
objectStoreSource, indexSource, and cursorSource function members and corresponding data members.
Later we might re-cast this as some sort of union, but for now these separate functions seem fine.
Removed unused modernResult function. Made more things private.

  • Modules/indexeddb/IDBRequest.idl: Use "any" instead of "IDBAny" for "result" and "source".
  • Modules/indexeddb/IDBTransaction.cpp: Added now-needed includes.

(WebCore::IDBTransaction::didGetRecordOnServer): Updated to call the version of setResult that takes
a reference.
(WebCore::IDBTransaction::didPutOrAddOnServer): Ditto.

  • Modules/indexeddb/IDBTransaction.h: Removed unneeded includes, derive privately from ActiveDOMObject.

Removed some unneeded WebCore prefixes.

  • Modules/indexeddb/server/MemoryIndex.h: Added now-needed include.
  • Modules/indexeddb/server/MemoryObjectStore.cpp: Added now-needed includes.

(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord): Remove unneeded get() call.
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords): Ditto.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: Added now-needed includes.

(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord): Remove unneeded get() call.
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord): Ditto.

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp: Added now-needed include.
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp: Added now-needed includes.

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): Updated to use JSValue.

  • Modules/indexeddb/server/UniqueIDBDatabase.h: Added now-needed forward declaration of JSC::VM.
  • bindings/js/IDBBindingUtilities.cpp: Added now-needed includes.

(WebCore::deserializeIDBValueToJSValue): Return JSValue instead of Strong<Unknown>.
(WebCore::deserializeIDBValueDataToJSValue): Ditto.
(WebCore::idbKeyDataToScriptValue): Ditto.
(WebCore::toJS): Added an overload of toJS for IDBKeyPath here. Moved here from JSIDBAnyCustom.cpp.

  • bindings/js/IDBBindingUtilities.h: Removed unneeded include. Changed return types to JSValue.

Added the toJS function for IDBKeyPath.

  • bindings/js/JSIDBAnyCustom.cpp: Removed.
  • bindings/js/JSIDBCursorCustom.cpp: Added some now-needed includes.

(WebCore::JSIDBCursor::visitAdditionalChildren): Removed ann unneeded type cast.
(WebCore::JSIDBCursor::source): Added. Converts either the index source or the object source into
a JSValue.

  • bindings/js/JSIDBRequestCustom.cpp: Added.

(WebCore::JSIDBRequest::result): Added. Throws an exception if isDone is false and then converts
cursor result, database result, or script result into a JSValue.
(WebCore::JSIDBRequest::source): Added. Converts the cursor source, index source, or object store
source into a JSValue.

  • bindings/scripts/CodeGeneratorJS.pm:

(NativeToJSValue): Tweaked the code for array slightly. Added an ImplementationReturnType case
for IDBKeyPath. The code that's generated is pretty generic, just a call to toJS with the conventional
arguments, so at some point we may be able to do this with C++ overloading and not require a
special case in the code generator.

  • inspector/InspectorIndexedDBAgent.cpp: Put #if 0 around the getDatabaseNames code, which was

dormant and not working.
(WebCore::OpenDatabaseCallback::handleEvent): Changed this to use IDBOpenDBRequest::databaseResult
instead of calling the result function checking for an exception and then doing type checking.
(WebCore::idbKeyRangeFromKeyRange): Updated to use booleans for key range bound open state.
(WebCore::OpenCursorCallback::handleEvent): Same kind of change as for OpenDatabaseCallback above.
Also use simpler interface to key, primaryKey, and value.
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames): Put #if 0 around the getDatabaseNames
code, which was dormant and not working. Needs to be re-implemented.

8:24 AM Changeset in webkit [199667] by eric.carlson@apple.com
  • 4 edits
    2 adds in trunk

Media element "user gesture for fullscreen" restriction is never lifted
​https://bugs.webkit.org/show_bug.cgi?id=156547
<rdar://problem/25707814>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-fullscreen-restriction-removed.html

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted): Check fullscreenPermitted rather than

checking for a user gesture because the restriction can be removed.

LayoutTests:

  • media/video-fullscreen-restriction-removed-expected.txt: Added.
  • media/video-fullscreen-restriction-removed.html: Added.
8:23 AM Changeset in webkit [199666] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

Mark script-height reftest as ImageOnlyFailure on iOS
​https://bugs.webkit.org/show_bug.cgi?id=153918

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
7:47 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
7:45 AM Changeset in webkit [199665] by fred.wang@free.fr
  • 24 edits
    22 adds in trunk

Refactor RenderMathMLScripts layout to avoid using flexbox
​https://bugs.webkit.org/show_bug.cgi?id=153917

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-18
Reviewed by Martin Robinson.

Source/WebCore:

Tests: mathml/mathml-in-html5/subsup-parameters-1.html

mathml/opentype/large-operators-italic-correction.html

Reimplement RenderMathMLScripts without any flexbox or anonymous.
We also rely on parameters from the MATH table to improve rendering.

  • css/mathml.css:

(msub > * + * + *, msup > * + * + *, msubsup > * + * + * + *, msub > mprescripts, msup > mprescripts, msubsup > mprescripts, msub > none, msup > none, msubsup > none, mmultiscripts > mprescripts ~ mprescripts, mmultiscripts > mprescripts ~ mprescripts ~ *): Deleted.
Invalid markup for scripts is now just hidden.

  • rendering/mathml/RenderMathMLOperator.h: ditto.
  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::unembellishedOperator): Reimplemented.
(WebCore::RenderMathMLScripts::getBaseAndScripts): Helper function to verify whether the
child list is valid and retrieve pointers on important children.
(WebCore::RenderMathMLScripts::spaceAfterScript): Helper function to get the
space after a script.
(WebCore::RenderMathMLScripts::italicCorrection): Helper function to read the
italic correction of a largeop base.
(WebCore::RenderMathMLScripts::computePreferredLogicalWidths): Implement this function.
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded): Helper function to get
the maximum ascent/descent of all the scripts and determine the minimal
sub/sup shifts to apply.
(WebCore::RenderMathMLScripts::mirrorIfNeeded): Helper function to calculate the horizontal
offset depending on the directionality.
(WebCore::RenderMathMLScripts::layoutBlock): Implement this function.
(WebCore::RenderMathMLScripts::firstLineBaseline): Implement this function.
(WebCore::RenderMathMLScripts::paintChildren): Implement this function.
(WebCore::RenderMathMLScripts::RenderMathMLScripts): Deleted.
(WebCore::RenderMathMLScripts::base): Deleted.
(WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair): Deleted.
(WebCore::RenderMathMLScripts::fixAnonymousStyles): Deleted.
(WebCore::RenderMathMLScripts::addChildInternal): Deleted.
(WebCore::RenderMathMLScripts::removeChildInternal): Deleted.
(WebCore::RenderMathMLScripts::addChild): Deleted.
(WebCore::RenderMathMLScripts::removeChild): Deleted.
(WebCore::RenderMathMLScripts::styleDidChange): Deleted.
(WebCore::RenderMathMLScripts::layout): Deleted.
(WebCore::RenderMathMLScriptsWrapper::createAnonymousWrapper): Deleted.
(WebCore::RenderMathMLScriptsWrapper::addChildInternal): Deleted.
(WebCore::RenderMathMLScriptsWrapper::addChild): Deleted.
(WebCore::RenderMathMLScriptsWrapper::removeChildInternal): Deleted.
(WebCore::RenderMathMLScriptsWrapper::removeChild): Deleted.

  • rendering/mathml/RenderMathMLScripts.h: Update definitions and remove classes

for anonymous wrappers.

LayoutTests:

We import tests from the MathML in HTML5 test suite to verify various OpenType MATH parameters.
We also add a test for the italic correction of large operators (bug 130325).
Finally, we adjust some tests and expectations to take into account the new rendering.

  • imported/mathml-in-html5/LICENSE: Added.
  • imported/mathml-in-html5/README.md: Added.
  • imported/mathml-in-html5/fonts/math/scripts-spaceafterscript3000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-spaceafterscript3000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-subscriptbaselinedropmin9000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subscriptbaselinedropmin9000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-subscriptshiftdown6000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subscriptshiftdown6000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-subscripttopmax4000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subscripttopmax4000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-subsuperscriptgapmin11000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subsuperscriptgapmin11000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-superscriptbaselinedropmax10000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptbaselinedropmax10000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-superscriptbottommin8000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptbottommin8000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-superscriptshiftup7000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptshiftup7000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-superscriptshiftupcramped5000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptshiftupcramped5000.woff.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-parameters-1-expected.txt: Renamed from LayoutTests/mathml/mathml-in-html5/subsup-parameters-1-expected.txt.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-parameters-1.html: Renamed from LayoutTests/mathml/mathml-in-html5/subsup-parameters-1.html.
  • mathml/msubsup-fuzz-expected.txt: Test adjustment: Update the reference now that nothing

is displayed for invalid markup.

  • accessibility/mac/mathml-multiscript-expected.txt: ditto.
  • mathml/opentype/large-operators-italic-correction.html: Added. This test verifies that the

italic correction from the MATH table is used for positioning subscripts of large operators.

  • mathml/opentype/large-operators-italic-correction-expected.txt: Added.
  • mathml/presentation/bug95015.html: Test adjustment: move down a bit the covering red

rectangle, since the script is slightly lower.

  • mathml/presentation/bug95015-expected.html: ditto
  • mathml/presentation/multiscripts-positions.html: Test adjustment: Modify the expected

vertical positions of scripts now that we follow Gecko's behavior.

  • mathml/presentation/multiscripts-positions-expected.html: ditto.
  • mathml/presentation/multiscripts-noscripts-expected.html: There seem to be small errors in

the ascent of mmultiscripts, probably due to the conversions between firstLineBaseline (int)
and LayoutUnit (fractional pixel). For now, let's tweak the tests.

  • mathml/presentation/multiscripts-noscripts.html: ditto.
  • mathml/presentation/scripts-height-expected.html: ditto
  • mathml/presentation/scripts-height.html: ditto
  • mathml/presentation/scripts-horizontal-alignment.html: Modify the test to make it work

with the new layout rules.

  • mathml/presentation/scripts-horizontal-alignment-expected.html: ditto.
  • platform/gtk/accessibility/math-multiscript-attributes-expected.txt: Test adjustment:

Update reference to take into account a small shift.

  • platform/mac/accessibility/math-multiscript-attributes-expected.txt: ditto.
  • platform/gtk/mathml/presentation/roots-expected.png: Test adjustment: Update reference to

take into account small rendering changes.

  • platform/gtk/mathml/presentation/roots-expected.txt: ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: ditto.
  • platform/mac/TestExpectations: Mark some tests for scripts as failing on mac. MATH fonts

are really needed to make them reliable.

  • platform/ios-simulator/TestExpectations: Ditto
3:36 AM Changeset in webkit [199664] by Carlos Garcia Campos
  • 4 edits in trunk

Pending API Request URL is wrong after reloading
​https://bugs.webkit.org/show_bug.cgi?id=139342

Reviewed by Darin Adler.

Source/WebKit2:

It happens when reloading a web view loaded with anything but a
URL, because the bf list is not updated for those cases and
WebPageProxy::reload() is setting the current bf list item URL as
pending API request URL. This also causes that progress is
reported wrongly, because
WebPageProxy::decidePolicyForNavigationAction() resets the pending
API request URL when it's different than the requested URL. The
page load transaction causes the progress to be changed, reporting
1.0 (the previous one), but later something < 1.0 is reported
again by the progress tracker.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reload): Use the current active URL as
pending API request URL, falling back to the current bf list item
URL when empty.

Tools:

Update test case to check that the active URL should remain the
same after a reload.

  • TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp:

(TestWebKitAPI::TEST):

3:01 AM Changeset in webkit [199663] by Carlos Garcia Campos
  • 7 edits
    1 add in trunk

Pending API request URL no set when loading Data, Alternate HTML or plain text
​https://bugs.webkit.org/show_bug.cgi?id=136916

Reviewed by Darin Adler.

Source/WebKit2:

Set pending API request URL for all load methods in
WebPageProxy. This ensures that right after calling those methods,
the active URL is the requested one and that
PageLoadState::isLoading() returns true.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):

Tools:

Add new test to check that active URL is the requested one right
after calling WKPage load methods.

  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::loadPlainText): Remove FIXME.
(WebViewTest::loadBytes): Ditto.
(WebViewTest::loadAlternateHTML): Ditto.

2:48 AM Changeset in webkit [199662] by commit-queue@webkit.org
  • 7 edits
    1 delete in trunk

Unreviewed, rolling out r199660.
​https://bugs.webkit.org/show_bug.cgi?id=156691

It broke the iOS build (Requested by KaL on #webkit).

Reverted changeset:

"Pending API request URL no set when loading Data, Alternate
HTML or plain text"
​https://bugs.webkit.org/show_bug.cgi?id=136916
​http://trac.webkit.org/changeset/199660

2:45 AM Changeset in webkit [199661] by Manuel Rego Casasnovas
  • 5 edits
    2 adds in trunk

[css-grid] Use grid-template-areas to determine the explicit grid
​https://bugs.webkit.org/show_bug.cgi?id=156575

Reviewed by Darin Adler.

Source/WebCore:

From the spec (​https://drafts.csswg.org/css-grid/#grid-definition):
"The size of the explicit grid is determined by the larger of the number
of rows/columns defined by grid-template-areas and the number
of rows/columns sized by grid-template-rows/grid-template-columns."

So we need to take into account the rows/columns defined by
grid-template-areas to determine the size of the explicit grid.

Test: fast/css-grid-layout/explicit-grid-size.html

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::GridPositionsResolver::explicitGridColumnCount):
(WebCore::GridPositionsResolver::explicitGridRowCount):

LayoutTests:

Created new test to check the right behavior.

  • fast/css-grid-layout/explicit-grid-size-expected.txt: Added.
  • fast/css-grid-layout/explicit-grid-size.html: Added.
  • fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:

Small modification as now the columns defined by
grid-tempalte-areas are in the explicit grid.

  • fast/css-grid-layout/grid-template-shorthand-get-set.html:

Ditto.

1:50 AM Changeset in webkit [199660] by Carlos Garcia Campos
  • 7 edits
    1 add in trunk

Pending API request URL no set when loading Data, Alternate HTML or plain text
​https://bugs.webkit.org/show_bug.cgi?id=136916

Reviewed by Darin Adler.

Source/WebKit2:

Set pending API request URL for all load methods in
WebPageProxy. This ensures that right after calling those methods,
the active URL is the requested one and that
PageLoadState::isLoading() returns true.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):

Tools:

Add new test to check that active URL is the requested one right
after calling WKPage load methods.

  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::loadPlainText): Remove FIXME.
(WebViewTest::loadBytes): Ditto.
(WebViewTest::loadAlternateHTML): Ditto.

1:44 AM Changeset in webkit [199659] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] Menu list button doesn't use the text color from the theme
​https://bugs.webkit.org/show_bug.cgi?id=118234

Reviewed by Darin Adler.

.:

  • ManualTests/gtk/theme.html: Add a disabled combo test.

Source/WebCore:

Set the combo box color accroding to the theme when adjusting the menu list style like Mac port does.

  • rendering/RenderThemeGtk.cpp:

(WebCore::menuListColor):
(WebCore::RenderThemeGtk::adjustMenuListStyle):

1:31 AM Changeset in webkit [199658] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[UNIX] Initialize WebKit before the platform initializations
​https://bugs.webkit.org/show_bug.cgi?id=156622

Reviewed by Michael Catanzaro.

The platform specific initialization might use something that would require WebKit2 to be initialized. For
example, in debug mode, the GTK+ port uses WTF::sleep that requires the threading to be initialized.

  • Shared/unix/ChildProcessMain.h:

(WebKit::ChildProcessMain): Move InitializeWebKit2() before platformInitialize().

1:20 AM Changeset in webkit [199657] by Manuel Rego Casasnovas
  • 4 edits
    4 adds in trunk

[css-grid] Fix positioned items with content alignment
​https://bugs.webkit.org/show_bug.cgi?id=156597

Reviewed by Darin Adler.

Source/WebCore:

Like for the case of gaps we need to take into account
the content alignment in order to properly place and size
the positioned items.

Regarding content alignment we need to care about 2 values:
the position offset and the distribution offset.
The position offset can be extracted from m_column|rowPositions,
but the distribution offset is stored in 2 new variables called
m_offsetBetweenColumns|Rows.

Tests: fast/css-grid-layout/grid-positioned-items-content-alignment.html

fast/css-grid-layout/grid-positioned-items-content-alignment-rtl.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::populateGridPositions):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisPositionForChild): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

  • fast/css-grid-layout/grid-positioned-items-content-alignment-expected.txt: Added.
  • fast/css-grid-layout/grid-positioned-items-content-alignment-rtl-expected.txt: Added.
  • fast/css-grid-layout/grid-positioned-items-content-alignment-rtl.html: Added.
  • fast/css-grid-layout/grid-positioned-items-content-alignment.html: Added.
1:09 AM Changeset in webkit [199656] by commit-queue@webkit.org
  • 4 edits in trunk

Fix incorrect assumption that APPLE implies Mac.
​https://bugs.webkit.org/show_bug.cgi?id=156679

Addresses build failure introduced in r198947

Patch by Jeremy Huddleston Sequoia <​jeremyhu@apple.com> on 2016-04-18
Reviewed by Alex Christensen.

  • CMakeLists.txt:
1:03 AM Changeset in webkit [199655] by Manuel Rego Casasnovas
  • 3 edits in trunk/Source/WebCore

[css-grid] Add method to translate RTL coordinates
​https://bugs.webkit.org/show_bug.cgi?id=156589

Reviewed by Antonio Gomes.

This is just a small refactoring adding a new function
LayoutGrid::translateRTLCoordinate().
This method translates to physical coordinates the information
stored in m_columnPositions when you're using RTL direction.

No new tests, no change of behavior.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetAndBreadthForPositionedChild): Use the new
method translateRTLCoordinate().
(WebCore::RenderGrid::translateRTLCoordinate): New method that converts
a coordinate from m_columnPositions in RTL into a physical coordinate.
(WebCore::RenderGrid::findChildLogicalPosition): Use the new method
translateRTLCoordinate().

  • rendering/RenderGrid.h: Add method signature.
1:01 AM Changeset in webkit [199654] by Yusuke Suzuki
  • 3 edits
    2 adds in trunk

[Fetch] Use @isArray instead of instanceof @Array
​https://bugs.webkit.org/show_bug.cgi?id=156682

Reviewed by Alex Christensen.

Source/WebCore:

Currently, we query whether the given value is Array by using instanceof @Array.
But it is not enough; Array from the other realm should be accepted. And Array
not inheriting @Array should be also accepted.

Test: fetch/header-constructor-is-array.html

  • Modules/fetch/FetchHeaders.js:

(initializeFetchHeaders):

LayoutTests:

  • fetch/header-constructor-is-array-expected.txt: Added.
  • fetch/header-constructor-is-array.html: Added.
12:40 AM Changeset in webkit [199653] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Test /webkit2/WebKitWebView/mouse-target fails with overlay scrollbars
​https://bugs.webkit.org/show_bug.cgi?id=156621

Reviewed by Martin Robinson.

This is a problem of the test itself, we are using an overflow that is not actually scrollable, but that shows
scrollbar troughs when not using overlay scrollbars because it's marked as scrollable. It would be easier to
simply use the main frame scrollbars to test that and it will work no matter of scrollbars are overlay or not.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:

(testWebViewMouseTarget): Remove the div and move the mouse over the main frame scrollbar to test scrolbars hit test.

12:35 AM Changeset in webkit [199652] by Yusuke Suzuki
  • 7 edits
    1 add in trunk/Source/JavaScriptCore

[ES7] yield star should not return if the inner iterator.throw returns { done: true }
​https://bugs.webkit.org/show_bug.cgi?id=156576

Reviewed by Saam Barati.

This is slight generator fix in ES7. When calling generator.throw(),
the yield-star should call the throw() of the inner generator. At that
time, when the result of throw() is { done: true}, the generator should
not stop itself.

function * gen()
{

yield * (function * () {

try {

yield 42;

} catch (error) { }

}());
Continue executing.
yield 42;

}

let g = gen();
g.next();
shouldBe(g.throw().value, 42);

  • builtins/GeneratorPrototype.js:

(generatorResume):
(next):
(return):
(throw):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDelegateYield):

  • runtime/JSGeneratorFunction.h:
  • tests/stress/generator-yield-star.js:

(gen):

  • tests/stress/yield-star-throw-continue.js: Added.

(shouldBe):
(generator):
(shouldThrow):

Apr 17, 2016:

11:52 PM Changeset in webkit [199651] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix incorrect assumption that APPLE implies Mac.
​https://bugs.webkit.org/show_bug.cgi?id=156683

Addresses build failure introduced in r199094

Patch by Jeremy Huddleston Sequoia <​jeremyhu@apple.com> on 2016-04-17
Reviewed by Alex Christensen.

  • CMakeLists.txt:
11:06 PM Changeset in webkit [199650] by yoav@yoav.ws
  • 25 edits
    9 adds in trunk

Initial Link preload support
​https://bugs.webkit.org/show_bug.cgi?id=156334

Source/WebCore:

Added basic <link rel=preload> functionality that enables preloading
of resources according to their type.

Reviewed by Darin Adler.

Tests: http/tests/preload/download_resources.html

http/tests/preload/dynamic_adding_preload.html
http/tests/preload/dynamic_remove_preload_href.html
http/tests/preload/dynamic_removing_preload.html

  • bindings/generic/RuntimeEnabledFeatures.cpp: Added a runtime flag for the feature.

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

  • bindings/generic/RuntimeEnabledFeatures.h: Added a runtime flag for the feature.

(WebCore::RuntimeEnabledFeatures::setLinkPreloadEnabled):
(WebCore::RuntimeEnabledFeatures::linkPreloadEnabled):

  • html/HTMLAttributeNames.in: Added an as attribute.
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process): Added as and crossorigin attribute values to the loadLink() call.
(WebCore::HTMLLinkElement::setCrossOrigin): Setter for crossOrigin.
(WebCore::HTMLLinkElement::crossOrigin): Getter for crossOrigin.

  • html/HTMLLinkElement.idl: Added as and crossorigin to HTMLLinkElement.
  • html/HTMLLinkElement.h: Added getter and setter for crossorigin.
  • html/LinkRelAttribute.cpp:

(WebCore::LinkRelAttribute::LinkRelAttribute): Added "preload" as a potential value.

  • html/LinkRelAttribute.h: Added isLinkPreload.
  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::resourceTypeFromAsAttribute): Translates an as value into a resource type.
(WebCore::preloadIfNeeded): Triggers a resource preload when link element is a preload one.
(WebCore::LinkLoader::loadLink): Added a call to preloadIfNeeded.

  • loader/LinkLoader.h: Added signatures.
  • loader/ResourceLoadInfo.cpp:

(WebCore::toResourceType): Added LinkPreload as a possible CachedResource::type.

  • loader/SubresourceLoader.cpp:

(WebCore::logResourceLoaded): Added LinkPreload as a possible CachedResource::type.

  • loader/cache/CachedResource.cpp: Turned defaultPriorityForResourceType into a static member, as it's now also called from LinkLoader.

(WebCore::CachedResource::defaultPriorityForResourceType): Added LinkPreload as a possible CachedResource::type, giving it low priority.
(WebCore::defaultPriorityForResourceType): Deleted.

  • loader/cache/CachedResource.h: Added LinkPreload as a possible CachedResource::type. Added defaultPriorityForResourceType as static.
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::contentTypeFromResourceType): Added LinkPreload as a possible CachedResource::type.
(WebCore::createResource): Added creation of a LinkPreload resource if needed.
(WebCore::CachedResourceLoader::checkInsecureContent): Added LinkPreload as a possible CachedResource::type.
(WebCore::CachedResourceLoader::canRequest): Added LinkPreload as a possible CachedResource::type.

  • testing/Internals.cpp: Added function to turn on the link preload feature.

(WebCore::setLinkPreloadSupport):

  • testing/Internals.idl: Added function to turn on the link preload feature.
  • testing/Internals.h: Added function signature to turn on the link preload feature.

Source/WebKit2:

Reviewed by Darin Adler.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::maximumBufferingTime): Added LinkPreload as a possible CachedResource::type.

LayoutTests:

Added tests that make sure that <link rel=preload> performs its basic
tasks and preloads resources.

Reviewed by Darin Adler.

  • http/tests/preload/download_resources-expected.txt: Added.
  • http/tests/preload/download_resources.html: Added.
  • http/tests/preload/dynamic_adding_preload-expected.txt: Added.
  • http/tests/preload/dynamic_adding_preload.html: Added.
  • http/tests/preload/dynamic_remove_preload_href-expected.txt: Added.
  • http/tests/preload/dynamic_remove_preload_href.html: Added.
  • http/tests/preload/dynamic_removing_preload-expected.txt: Added.
  • http/tests/preload/dynamic_removing_preload.html: Added.
  • imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Adjusted expected results to progressions.
  • imported/w3c/web-platform-tests/html/dom/reflection-metadata-expected.txt: Adjusted expected results to progressions.
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Adjusted expected results to progressions.
10:36 PM Changeset in webkit [199649] by Gyuyoung Kim
  • 3 edits
    1 delete in trunk/Tools

[EFL] Bump gstreamer from 1.4.4 to 1.6.3
​https://bugs.webkit.org/show_bug.cgi?id=156655

Reviewed by Antonio Gomes.

To support html5 video feature, we should bump gstreamer version.

  • efl/jhbuild.modules:
  • efl/patches/gst-libav.patch: Update against newer version.
  • efl/patches/gst-plugins-bad-remove-gnustep-support.patch: Removed because this patch was merged.
10:13 PM Changeset in webkit [199648] by benjamin@webkit.org
  • 3 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] ReduceDoubleToFloat should work accross Phis
​https://bugs.webkit.org/show_bug.cgi?id=156603
<rdar://problem/25736205>

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-17
Reviewed by Saam Barati and Filip Pizlo.

This patch extends B3's ReduceDoubleToFloat phase to work accross
Upsilon-Phis. This is important to optimize loops and some crazy cases.

In its simplest form, we can have conversion propagated from something
like this:

Double @1 = Phi()
Float @2 = DoubleToFloat(@1)

When that happens, we just need to propagate that the result only
need float precision accross all values coming to this Phi.

There are more complicated cases when the value produced is effectively Float
but the user of the value does not do DoubleToFloat.

Typically, we have something like:

#1

@1 = ConstDouble(1)
@2 = Upsilon(@1, 5)

#2

@3 = FloatToDouble(@x)
@4 = Upsilon(@3, 5)

#3

@5 = Phi()
@6 = Add(@5, @somethingFloat)
@7 = DoubleToFloat(@6)

Here with a Phi-Upsilon that is a Double but can be represented
as Float without loss of precision.

It is valuable to convert such Phis to float if and only if the value
is used as float. Otherwise, you may be just adding useless conversions
(for example, two double constants that flow into a double Add should not
turn into two float constant flowing into a FloatToDouble then Add).

ReduceDoubleToFloat do two analysis passes to gather the necessary
meta information. Then we have a simplify() phase to actually reduce
operation. Finally, the cleanup() pass put the graph into a valid
state again.

The two analysis passes work by disproving that something is float.
-findCandidates() accumulates anything used as Double.
-findPhisContainingFloat() accumulates phis that would lose precision

by converting the input to float.

With this change, Unity3D improves by ~1.5%, box2d-f32 improves
by ~2.8% (on Haswell).

  • b3/B3ReduceDoubleToFloat.cpp:

(JSC::B3::reduceDoubleToFloat):

  • b3/testb3.cpp:

(JSC::B3::testCompareTwoFloatToDouble):
(JSC::B3::testCompareOneFloatToDouble):
(JSC::B3::testCompareFloatToDoubleThroughPhi):
(JSC::B3::testDoubleToFloatThroughPhi):
(JSC::B3::testDoubleProducerPhiToFloatConversion):
(JSC::B3::testDoubleProducerPhiToFloatConversionWithDoubleConsumer):
(JSC::B3::testDoubleProducerPhiWithNonFloatConst):
(JSC::B3::testStoreDoubleConstantAsFloat):
(JSC::B3::run):

  • tests/stress/double-compare-to-float.js: Added.

(canSimplifyToFloat):
(canSimplifyToFloatWithConstant):
(cannotSimplifyA):
(cannotSimplifyB):

  • tests/stress/double-to-float.js: Added.

(upsilonReferencingItsPhi):
(upsilonReferencingItsPhiAllFloat):
(upsilonReferencingItsPhiWithoutConversion):
(conversionPropagages):
(chainedUpsilonBothConvert):
(chainedUpsilonFirstConvert):

2:53 PM Changeset in webkit [199647] by Yusuke Suzuki
  • 3 edits
    2 adds in trunk/Source/JavaScriptCore

[ES6] Use @isObject to check Object Type instead of using instanceof
​https://bugs.webkit.org/show_bug.cgi?id=156676

Reviewed by Darin Adler.

Use @isObject instead of instanceof @Object.
The instanceof check is not enough to check Object Type.
For example, given 2 realms, the object created in one realm does not inherit the Object of another realm.
Another example is that the object which does not inherit Object.
This object can be easily created by calling Object.create(null).

  • builtins/RegExpPrototype.js:

(match):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionCreateGlobalObject):

  • tests/stress/regexp-match-in-other-realm-should-work.js: Added.

(shouldBe):

  • tests/stress/regexp-match-should-work-with-objects-not-inheriting-object-prototype.js: Added.

(shouldBe):
(regexp.exec):

12:33 PM Changeset in webkit [199646] by Conrad Shultz
  • 2 edits in trunk/Source/WebCore

Try (again) to fix debug builds after r199643.

Unreviewed.

  • dom/ScriptExecutionContext.cpp:

Add another missing include.

12:28 PM Changeset in webkit [199645] by Conrad Shultz
  • 2 edits in trunk/Source/WebCore

Try to fix debug builds after r199643.

Unreviewed.

  • Modules/indexeddb/IDBObjectStore.cpp:

Add a missing include.

11:58 AM Changeset in webkit [199644] by Chris Dumez
  • 8 edits in trunk/Source

[WK2][iOS] Do not dlopen() QuickLook in the NetworkProcess
​https://bugs.webkit.org/show_bug.cgi?id=156639

Reviewed by Darin Adler.

Source/WebCore:

Do not unnecessarily dlopen() QuickLook in the NetworkProcess on iOS, as
we already dlopen() this library in the WebContent process. This patch
moves the resource response MIME type adjusting code for QuickLook from
adjustMIMETypeIfNecessary() to a new adjustMIMETypeForQuickLook() function.
adjustMIMETypeIfNecessary() is called in didReceiveResponse() in the Network
process side, for *every* resource response, even though QuickLook can only
be used to preview main resources. The new adjustMIMETypeForQuickLook()
function is called in the QuickLookHandle::createIfNecessary() factory
function, right before checking the MIME type to determine if we need to
use QuickLook, and after checking that the load is for a main resource.
In the WebKit2 case, the factory function is called from
WebResourceLoader::didReceiveResponse(), on the WebContent process side.

This patch speeds up the first page load during PLT by ~22%, because the
first load no longer triggers a dlopen() to QuickLook in the NetworkProcess.
The overall PLT score seems to be progressed by 0.9-1% as well. The change
should also be memory-positive as we no longer need to dlopen() the
QuickLook library in the NetworkProcess at all (and we would already dlopen()
it on the WebContent process side anyway). Sadly, PLUM benchmark does not
show the memory benefit because it does not measure the memory used by the
Network process.

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
Refactor the code a bit for clarity, so that we only
ResourceHandle::setQuickLookHandle() when QuickLookHandle::createIfNecessary()
returns a non-null pointer.

  • platform/network/ios/QuickLook.h:
  • Rename the factories from create() to createIfNecessary() given that they return nullptr when it is unnecessary to create such handle (i.e. this is not a main resource loader, or it is unecessary given the response's MIME type.
  • Make shouldCreateForMIMEType() private now that this is always called inside the factory functions.
  • platform/network/ios/QuickLook.mm:

(adjustMIMETypeForQuickLook):
Extracted code for adjusting the MIME type for QuickLook from the generic
adjustMIMETypeIfNecessary() in WebCoreURLResponseIOS.mm to its own function
here.

(WebCore::QuickLookHandle::createIfNecessary):
Call adjustMIMETypeForQuickLook() before checking the MIME type.

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::adjustMIMETypeIfNecessary):
Extracted QuickLook-specific code to QuickLook.mm.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
Refactor the code a bit for clarity, so that we only
ResourceHandle::setQuickLookHandle() when QuickLookHandle::createIfNecessary()
returns a non-null pointer.

Source/WebKit2:

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponse):
Move checks for main resource load and for MIME type inside of
QuickLookHandle::createIfNecessary(), for consistency with the
other QuickLookHandle factory functions.

11:49 AM Changeset in webkit [199643] by beidson@apple.com
  • 27 edits in trunk/Source/WebCore

Clean up IDBBindingUtilities.
​https://bugs.webkit.org/show_bug.cgi?id=156472

Reviewed by Alex Christensen.

No new tests (No change in behavior).

  • Get rid of a whole bunch of unused functions (since we got rid of Legacy IDB).
  • Make more functions deal in ExecState/ScriptExecutionContexts instead of DOMRequestState.
  • Make more functions deal in JSValue (as JSC::Strong<JSC::Unknown>) instead of Deprecated::ScriptValue.
  • bindings/scripts/IDLAttributes.txt: Add a new attribute to signify that an implementation returns JSValues instead of Deprecated::ScriptState
  • bindings/scripts/CodeGeneratorJS.pm:

(NativeToJSValue): Use that new attribute.

  • Modules/indexeddb/IDBAny.cpp:

(WebCore::IDBAny::IDBAny):
(WebCore::IDBAny::scriptValue):

  • Modules/indexeddb/IDBAny.h:

(WebCore::IDBAny::create):

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::key):
(WebCore::IDBCursor::primaryKey):
(WebCore::IDBCursor::value):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBCursorWithValue.idl:
  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::cmp):

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::count):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::getKey):

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::lowerValue):
(WebCore::IDBKeyRange::upperValue):
(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):

  • Modules/indexeddb/IDBKeyRange.h:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::modernDelete):
(WebCore::IDBObjectStore::count):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::idbKeyPathFromValue):
(WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::canInjectIDBKeyIntoScriptValue):
(WebCore::deserializeIDBValueToJSValue):
(WebCore::deserializeIDBValueDataToJSValue):
(WebCore::scriptValueToIDBKey):
(WebCore::idbKeyDataToScriptValue):
(WebCore::idbKeyDataToJSValue): Deleted.
(WebCore::createIDBKeyFromScriptValueAndKeyPath): Deleted.
(WebCore::deserializeIDBValue): Deleted.
(WebCore::deserializeIDBValueData): Deleted.
(WebCore::deserializeIDBValueBuffer): Deleted.
(WebCore::idbValueDataToJSValue): Deleted.
(WebCore::idbKeyToScriptValue): Deleted.

  • bindings/js/IDBBindingUtilities.h:
  • bindings/js/JSIDBAnyCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSIDBDatabaseCustom.cpp:

(WebCore::JSIDBDatabase::createObjectStore):

  • bindings/js/JSIDBObjectStoreCustom.cpp:

(WebCore::JSIDBObjectStore::createIndex):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::execState):

  • dom/ScriptExecutionContext.h:
  • inspector/InspectorIndexedDBAgent.cpp:
11:39 AM Changeset in webkit [199642] by Darin Adler
  • 44 edits in trunk/Source

Remove more uses of Deprecated::ScriptXXX
​https://bugs.webkit.org/show_bug.cgi?id=156660

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptCallArgumentHandler::appendArgument): Deleted
unneeded overloads that take a ScriptObject and ScriptValue.

  • bindings/ScriptFunctionCall.h: Ditto.
  • bindings/ScriptObject.h: Added operator so this can change

itself into a JSObject*. Helps while phasing this class out.

  • bindings/ScriptValue.h: Export toInspectorValue so it can be

used in WebCore.

  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript): Changed
return value from Deprecated::ScriptObject to JSObject*.
(Inspector::InjectedScriptManager::injectedScriptFor): Updated for
the return value change above.

  • inspector/InjectedScriptManager.h: Ditto.

Source/WebCore:

  • Modules/mediacontrols/MediaControlsHost.h: Removed unneeded include.
  • Modules/plugins/PluginReplacement.h: Removed unneeded include.

Changed argument to installReplacement into a reference. Changed return
value for creation function from PassRefPtr to Ref.

  • Modules/plugins/QuickTimePluginReplacement.h: Removed unneeded includes and

forward declarations. Marked class final. Made almost everything private.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::create): Changed to return Ref.
(WebCore::QuickTimePluginReplacement::installReplacement): Changed to take
a reference.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::create): Changed to return Ref.
(WebCore::YouTubePluginReplacement::installReplacement): Changed to take
a reference.

  • Modules/plugins/YouTubePluginReplacement.h: Removed unneeded includes and

forward declarations. Marked class final. Changed return type of create.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didReceiveBinaryData): Removed local variable so the
MessageEvent::create function gets a Ref&& instead of a RefPtr without having
to add explicit WTFMove.

  • bindings/js/DOMRequestState.h: Removed code that set m_exec twice.
  • bindings/js/Dictionary.h: Reformatted function templates to use a single

line so they are easier to look at.
(WebCore::Dictionary::getEventListener): Rewrote this so it no longer uses
a Deprecated::ScriptValue and also make it a little more compact and terse.

  • bindings/js/JSCommandLineAPIHostCustom.cpp:

(WebCore::JSCommandLineAPIHost::inspect): Rewrote to use JSValue instead of
Deprecated::ScriptValue. Considerably more efficient.

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::data): Streamlined to use Deprecated::ScriptValue
a little bit less.

  • bindings/js/JSNodeCustom.cpp: Moved include here from header.
  • bindings/js/JSNodeCustom.h: Moved include from here to cpp file.
  • bindings/js/JSPopStateEventCustom.cpp:

(WebCore::JSPopStateEvent::state): Updated for changes to return value of the
state() and serializedState functions.

  • bindings/js/ScriptState.h: Removed the ScriptState typedef.
  • bindings/js/SerializedScriptValue.cpp: Moved include here from header.
  • bindings/js/SerializedScriptValue.h: Moved include from here to cpp file.
  • css/FontFace.cpp:

(WebCore::FontFace::create): Changed argument to JSValue instead of ScriptValue.

  • css/FontFace.h: Ditto.
  • dom/MessageEvent.cpp: Moved create functions in here from header file.

Removed some unused ones including one that took a Deprecated::ScriptValue.

  • dom/MessageEvent.h: Streamlined create functions, removing unused functions,

unused arguments, and unused default values for arguments. Also moved them all
into the cpp file instead of inlining them. Also changed the return type of
dataAsScriptValue to JSValue.

  • dom/NodeFilterCondition.h: Removed unneeded include. Tweaked formatting.
  • dom/PopStateEvent.h: Changed return value of state to be a JSValue and of

serializedState to be a raw pointer, not a PassRefPtr.

  • dom/Traversal.h: Removed unneeded include. Removed unnecessary use of

unsigned long instead of unsigned. Fixed indentation.

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Pass reference.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener): Pass JSValue instead
of constructing a Deprecated::ScriptValue.

  • inspector/InspectorFrontendHost.cpp:

(WebCore::FrontendMenuProvider::disconnect): Initialize without explicitly
mentioning the Deprecated::ScriptObject type.

  • inspector/InspectorIndexedDBAgent.cpp: Removed unneeded include.
  • inspector/InspectorInstrumentation.h: Removed unneeded include and also

declaration of two non-existent functions.

  • page/DOMWindow.cpp:

(WebCore::PostMessageTimer::PostMessageTimer): Tweaked types a little bit to
match what is used in MessageEvent now.
(WebCore::PostMessageTimer::event): Streamlined a bit and changed type to
reference.
(WebCore::DOMWindow::postMessage): Updated for changes above.
(WebCore::DOMWindow::postMessageTimerFired): Ditto.

  • page/EventSource.cpp:

(WebCore::EventSource::createMessageEvent): Removed now-unneeded
"false, false" from MessageEvent::create function call.

  • page/csp/ContentSecurityPolicy.h: Removed unneeded include.
  • page/csp/ContentSecurityPolicyDirectiveList.h: Removed unneeded

include and also unneeded non-copyable, since the class has a reference as
a data member and so is automatically non-copyable.

  • testing/Internals.cpp:

(WebCore::Internals::description): Changed to take JSValue.
(WebCore::Internals::parserMetaData): Ditto.
(WebCore::Internals::serializeObject): Removed unnecessary copying of vector.
(WebCore::Internals::isFromCurrentWorld): Changed to take JSValue.
(WebCore::Internals::isReadableStreamDisturbed): Changed to not rely on the
ScriptState typedef and call it JSC::ExecState.

  • testing/Internals.h: Removed unneeded includes. Removed unneeded and

inappropriate use of ASSERT_NO_EXCEPTION.

11:04 AM Changeset in webkit [199641] by youenn.fablet@crf.canon.fr
  • 24 edits
    5 copies
    18 adds in trunk

LayoutTests/imported/w3c:
[Fetch API] Consume HTTP data as a ReadableStream
​https://bugs.webkit.org/show_bug.cgi?id=138968

Reviewed by Alex Christensen.

  • web-platform-tests/fetch/api/basic/stream-response-expected.txt:
  • web-platform-tests/fetch/api/basic/stream-response-worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-consume.html:
  • web-platform-tests/fetch/api/resources/data.json: Added.
  • web-platform-tests/fetch/api/resources/utils.js:

(validateStreamFromString):

  • web-platform-tests/fetch/api/response/response-cancel-stream-expected.txt: Added.
  • web-platform-tests/fetch/api/response/response-cancel-stream.html: Added.
  • web-platform-tests/fetch/api/response/response-clone-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-stream-expected.txt: Added.
  • web-platform-tests/fetch/api/response/response-consume-stream.html: Added.
  • web-platform-tests/fetch/api/response/response-init-002-expected.txt:
  • web-platform-tests/fetch/api/response/response-stream-disturbed-expected-1.txt: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-1.html: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-expected-2.txt: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-2.html: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-expected-3.txt: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-3.html: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-expected-4.txt: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-4.html: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-expected-5.txt: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-5.html: Added.

Source/WebCore:
[Fetch API] Consume HTTP data as a ReadableStream
​https://bugs.webkit.org/show_bug.cgi?id=138968

Reviewed by Alex Christensen.

This patch introduces ReadableStreamSource and ReadableStreamController which allow feeding a ReadableStream from DOM classes.
ReadableStreamSource is a base class for all DOM ReadableStream sources.
ReadableStreamController is a wrapper around JSReadableStreamController that can be invoked by DOM code to enqueue/close/error a ReadableStream.
A createReadableStream function is introduced to allow DOM classes creating ReadableStream.

Added support for a FetchResponse ReadableStream source.
Both synthetic FetchResponse and loading FetchResponse are supported.
A new "Stream" FetchLoader::Type is introduced to allow receiving data as chunks and feeding them to a ReadableStream through ReadableStreamSource.

Currently, FetchResponse is consumed and marked as disturbed as soon as a ReadableStreamSource is created.
This should be changed so that consumption happens on the first read call to the ReadableStreamReader, i.e. when stream gets disturbed.

FetchResponseSource never fulfills the start promise, which allows to enqueue, error or close the stream at any time.
FetchResponseSource must therefore always ensure to close or error the stream.
Added support for locked check in FetchResponse.

Tests: imported/w3c/web-platform-tests/fetch/api/response/response-cancel-stream.html

imported/w3c/web-platform-tests/fetch/api/response/response-consume-stream.html
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-1.html
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-2.html
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-3.html
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-4.html
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-5.html

Also covered by rebased tests.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consumeAsStream): Fill stream with body data.

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::type): Added accessor to body type, used for assertions.

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::isDisturbed): Adding stream isLocked check.
(WebCore::FetchBodyOwner::blobLoadingSucceeded): Added assertion that body type is blob. Closing stream if created.
(WebCore::FetchBodyOwner::blobLoadingFailed): Erroring the stream if created and not cancelled.
(WebCore::FetchBodyOwner::blobChunk): Filling stream with chunk.
(WebCore::FetchBodyOwner::stop): Rmoved call to finishBlobLoading as it should be called as part of FetchLoaderCLient::didFail callbacki.

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchLoader.cpp: Fixing the case of cancel being called when creating the ThreadableLoader by introducing FetchLoader::m_isStarted.

(WebCore::FetchLoader::start): Setting m_isStarted at the end of the start method.
(WebCore::FetchLoader::stop): Fixing the case that FetchLoader can be destroyed when cancelling its loader.
(WebCore::FetchLoader::startStreaming): Introduced to switch the loading type from ArayBuffer to Stream. Already buffered data is returned.
(WebCore::FetchLoader::didReceiveData): Handling of the new Stream type.
(WebCore::FetchLoader::didFinishLoading):

  • Modules/fetch/FetchLoader.h:
  • Modules/fetch/FetchLoaderClient.h:

(WebCore::FetchLoaderClient::didReceiveData): Callback to get data as chunks if loader is of type Stream.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::clone): Removed m_isLocked as it is handled within isDisturbed().
(WebCore::FetchResponse::isDisturbed): Checking whether related ReadableStream is locked.
(WebCore::FetchResponse::BodyLoader::didSucceed): Introduced to handle ReadableStream case.
(WebCore::FetchResponse::BodyLoader::didFail): Ditto.
(WebCore::FetchResponse::BodyLoader::didReceiveData): Ditto.
(WebCore::FetchResponse::BodyLoader::startStreaming): Ditto.
(WebCore::FetchResponse::consumeBodyAsStream): Start filling the ReadableStream with data. Changing loader to Stream if there is one.
(WebCore::FetchResponse::createReadableStreamSource): Called by custom binding to create the source.
(WebCore::FetchResponse::stop): Fixing potential crash in case of cancelling the ibody stream.
(WebCore::FetchResponse::startFetching):
(WebCore::FetchResponse::BodyLoader::didFinishLoadingAsArrayBuffer):

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl:
  • Modules/fetch/FetchResponseSource.cpp: Specialization of ReadableStreamSource for FetchResponse. It is a push source that never resolves the start promise.

(WebCore::FetchResponseSource::FetchResponseSource):
(WebCore::FetchResponseSource::isReadableStreamLocked):
(WebCore::FetchResponseSource::setActive):
(WebCore::FetchResponseSource::setInactive):
(WebCore::FetchResponseSource::doStart):
(WebCore::FetchResponseSource::doCancel):
(WebCore::FetchResponseSource::close):
(WebCore::FetchResponseSource::error):

  • Modules/fetch/FetchResponseSource.h: Added.
  • Modules/streams/ReadableStreamController.js:

(error):

  • Modules/streams/ReadableStreamSource.h: Added (base class for ReadableStream DOM sources).

(WebCore::ReadableStreamSource::~ReadableStreamSource):
(WebCore::ReadableStreamSource::isStarting):
(WebCore::ReadableStreamSource::isPulling):
(WebCore::ReadableStreamSource::isCancelling):
(WebCore::ReadableStreamSource::controller):
(WebCore::ReadableStreamSource::doStart):
(WebCore::ReadableStreamSource::doCancel):
(WebCore::ReadableStreamSource::start):
(WebCore::ReadableStreamSource::cancel):
(WebCore::ReadableStreamSource::startFinished):
(WebCore::ReadableStreamSource::clean):

  • Modules/streams/ReadableStreamSource.idl: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSFetchResponseCustom.cpp: In case body is not created, call createReadableStreamSource.

(WebCore::JSFetchResponse::body):

  • bindings/js/JSReadableStreamSourceCustom.cpp: Added.

(WebCore::JSReadableStreamSource::start):
(WebCore::JSReadableStreamSource::pull):
(WebCore::JSReadableStreamSource::controller):

  • bindings/js/ReadableStreamController.cpp: Added.

(WebCore::callFunction):
(WebCore::ReadableStreamController::invoke):
(WebCore::ReadableStreamController::isControlledReadableStreamLocked):
(WebCore::createReadableStream):

  • bindings/js/ReadableStreamController.h: The DOM wrapper for JSReadableStreamController.

(WebCore::ReadableStreamController::ReadableStreamController):
(WebCore::ReadableStreamController::close):
(WebCore::ReadableStreamController::error):
(WebCore::ReadableStreamController::enqueue):
(WebCore::ReadableStreamController::globalObject):
(WebCore::ReadableStreamController::enqueue<RefPtr<JSC::ArrayBuffer>>):
(WebCore::ReadableStreamController::error<String>):

LayoutTests:
[Streams] Consume HTTP data as a ReadableStream
​https://bugs.webkit.org/show_bug.cgi?id=138968

Reviewed by Alex Christensen.

  • fast/xmlhttprequest/xmlhttprequest-responsetype-stream-expected.txt: Added.
  • fast/xmlhttprequest/xmlhttprequest-responsetype-stream.html: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api-cancelled-expected.txt: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api-cancelled.html: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api-closed-expected.txt: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api-closed.html: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api-expected.txt: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api.html: Added.
  • http/tests/xmlhttprequest/streams/streams-read-expected.txt: Added.
  • http/tests/xmlhttprequest/streams/streams-read.html: Added.
10:56 AM Changeset in webkit [199640] by Antti Koivisto
  • 17 edits in trunk/Source/WebCore

Element should be const in StyleResolver
​https://bugs.webkit.org/show_bug.cgi?id=156672

Reviewed by Darin Adler.

Resolving element style shouldn't mutate it.

This patch just does Element* -> const Element*, all the groundwork has been done already.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::sweepMatchedPropertiesCache):
(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::State::setStyle):
(WebCore::isAtShadowBoundary):
(WebCore::StyleResolver::styleForElement):
(WebCore::doesNotInheritTextDecoration):
(WebCore::StyleResolver::adjustStyleForInterCharacterRuby):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::checkRegionStyle):
(WebCore::StyleResolver::updateFont):
(WebCore::StyleResolver::styleRulesForElement):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::applyMatchedProperties):

  • css/StyleResolver.h:

(WebCore::StyleResolver::style):
(WebCore::StyleResolver::parentStyle):
(WebCore::StyleResolver::rootElementStyle):
(WebCore::StyleResolver::element):
(WebCore::StyleResolver::document):
(WebCore::StyleResolver::documentSettings):
(WebCore::StyleResolver::usesFirstLineRules):
(WebCore::StyleResolver::usesFirstLetterRules):
(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::State::document):
(WebCore::StyleResolver::State::element):
(WebCore::StyleResolver::State::style):
(WebCore::StyleResolver::hasSelectorForId):
(WebCore::checkRegionSelector):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::RenderTheme):
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::adjustCheckboxStyle):
(WebCore::RenderTheme::adjustRadioStyle):
(WebCore::RenderTheme::adjustButtonStyle):
(WebCore::RenderTheme::adjustInnerSpinButtonStyle):
(WebCore::RenderTheme::adjustTextFieldStyle):
(WebCore::RenderTheme::adjustTextAreaStyle):
(WebCore::RenderTheme::adjustMenuListStyle):
(WebCore::RenderTheme::adjustMeterStyle):
(WebCore::RenderTheme::paintMeter):
(WebCore::RenderTheme::adjustCapsLockIndicatorStyle):
(WebCore::RenderTheme::paintCapsLockIndicator):
(WebCore::RenderTheme::adjustAttachmentStyle):
(WebCore::RenderTheme::animationDurationForProgressBar):
(WebCore::RenderTheme::adjustProgressBarStyle):
(WebCore::RenderTheme::shouldHaveCapsLockIndicator):
(WebCore::RenderTheme::adjustMenuListButtonStyle):
(WebCore::RenderTheme::adjustMediaControlStyle):
(WebCore::RenderTheme::adjustSliderTrackStyle):
(WebCore::RenderTheme::adjustSliderThumbStyle):
(WebCore::RenderTheme::adjustSliderThumbSize):
(WebCore::RenderTheme::adjustSearchFieldStyle):
(WebCore::RenderTheme::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderTheme::adjustSearchFieldDecorationPartStyle):
(WebCore::RenderTheme::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderTheme::adjustSearchFieldResultsButtonStyle):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::minimumMenuListSize):
(WebCore::RenderTheme::popupInternalPaddingBox):
(WebCore::RenderTheme::popupOptionSupportsTextIndent):
(WebCore::RenderTheme::paintRadioDecorations):
(WebCore::RenderTheme::paintButtonDecorations):
(WebCore::RenderTheme::paintTextField):
(WebCore::RenderTheme::paintTextFieldDecorations):
(WebCore::RenderTheme::paintTextArea):
(WebCore::RenderTheme::paintTextAreaDecorations):
(WebCore::RenderTheme::paintMenuList):
(WebCore::RenderTheme::paintMenuListDecorations):
(WebCore::RenderTheme::paintMenuListButtonDecorations):
(WebCore::RenderTheme::paintPushButtonDecorations):
(WebCore::RenderTheme::paintSquareButtonDecorations):
(WebCore::RenderTheme::paintProgressBar):
(WebCore::RenderTheme::paintSliderTrack):
(WebCore::RenderTheme::paintSliderThumb):
(WebCore::RenderTheme::paintSliderThumbDecorations):
(WebCore::RenderTheme::paintSearchField):
(WebCore::RenderTheme::paintSearchFieldDecorations):
(WebCore::RenderTheme::paintSearchFieldCancelButton):
(WebCore::RenderTheme::paintSearchFieldDecorationPart):
(WebCore::RenderTheme::paintSearchFieldResultsDecorationPart):
(WebCore::RenderTheme::paintSearchFieldResultsButton):
(WebCore::RenderTheme::paintMediaFullscreenButton):
(WebCore::RenderTheme::paintMediaPlayButton):
(WebCore::RenderTheme::paintMediaOverlayPlayButton):

  • rendering/RenderThemeEfl.cpp:

(WebCore::RenderThemeEfl::paintSliderTrack):
(WebCore::RenderThemeEfl::adjustSliderTrackStyle):
(WebCore::RenderThemeEfl::adjustSliderThumbStyle):
(WebCore::RenderThemeEfl::adjustSliderThumbSize):
(WebCore::RenderThemeEfl::paintSliderThumb):
(WebCore::RenderThemeEfl::adjustCheckboxStyle):
(WebCore::RenderThemeEfl::paintCheckbox):
(WebCore::RenderThemeEfl::adjustRadioStyle):
(WebCore::RenderThemeEfl::paintRadio):
(WebCore::RenderThemeEfl::adjustButtonStyle):
(WebCore::RenderThemeEfl::paintButton):
(WebCore::RenderThemeEfl::adjustMenuListStyle):
(WebCore::RenderThemeEfl::paintMenuList):
(WebCore::RenderThemeEfl::adjustMenuListButtonStyle):
(WebCore::RenderThemeEfl::paintMenuListButtonDecorations):
(WebCore::RenderThemeEfl::adjustTextFieldStyle):
(WebCore::RenderThemeEfl::paintTextField):
(WebCore::RenderThemeEfl::adjustTextAreaStyle):
(WebCore::RenderThemeEfl::paintTextArea):
(WebCore::RenderThemeEfl::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeEfl::paintSearchFieldResultsButton):
(WebCore::RenderThemeEfl::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeEfl::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeEfl::paintSearchFieldCancelButton):
(WebCore::RenderThemeEfl::adjustSearchFieldStyle):
(WebCore::RenderThemeEfl::paintSearchField):
(WebCore::RenderThemeEfl::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeEfl::updateCachedSystemFontDescription):
(WebCore::RenderThemeEfl::adjustProgressBarStyle):

  • rendering/RenderThemeEfl.h:
  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::adjustRepaintRect):
(WebCore::RenderThemeGtk::adjustButtonStyle):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::RenderThemeGtk::adjustMenuListStyle):
(WebCore::RenderThemeGtk::adjustMenuListButtonStyle):
(WebCore::RenderThemeGtk::paintMenuListButtonDecorations):
(WebCore::RenderThemeGtk::adjustTextFieldStyle):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::RenderThemeGtk::paintTextArea):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
(WebCore::RenderThemeGtk::adjustSearchFieldStyle):
(WebCore::RenderThemeGtk::shouldHaveCapsLockIndicator):
(WebCore::RenderThemeGtk::adjustSliderTrackStyle):
(WebCore::RenderThemeGtk::adjustSliderThumbStyle):
(WebCore::RenderThemeGtk::paintSliderTrack):
(WebCore::RenderThemeGtk::adjustSliderThumbSize):
(WebCore::RenderThemeGtk::innerSpinButtonLayout):
(WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
(WebCore::spinButtonArrowSize):
(WebCore::RenderThemeGtk::paintMediaCurrentTime):
(WebCore::RenderThemeGtk::adjustProgressBarStyle):

  • rendering/RenderThemeGtk.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::addRoundedBorderClip):
(WebCore::RenderThemeIOS::adjustCheckboxStyle):
(WebCore::RenderThemeIOS::isControlStyled):
(WebCore::RenderThemeIOS::adjustRadioStyle):
(WebCore::adjustInputElementButtonStyle):
(WebCore::RenderThemeIOS::adjustMenuListButtonStyle):
(WebCore::RenderThemeIOS::adjustSliderTrackStyle):
(WebCore::RenderThemeIOS::paintSliderTrack):
(WebCore::RenderThemeIOS::adjustSliderThumbSize):
(WebCore::RenderThemeIOS::sliderTickOffsetFromTrackCenter):
(WebCore::RenderThemeIOS::adjustSearchFieldStyle):
(WebCore::RenderThemeIOS::paintSearchFieldDecorations):
(WebCore::RenderThemeIOS::adjustButtonStyle):

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

(WebCore::RenderThemeMac::paintTextField):
(WebCore::RenderThemeMac::adjustTextFieldStyle):
(WebCore::RenderThemeMac::paintTextArea):
(WebCore::RenderThemeMac::adjustTextAreaStyle):
(WebCore::RenderThemeMac::animationDurationForProgressBar):
(WebCore::RenderThemeMac::adjustProgressBarStyle):
(WebCore::menuListButtonSizes):
(WebCore::RenderThemeMac::adjustMenuListStyle):
(WebCore::RenderThemeMac::popupMenuSize):
(WebCore::RenderThemeMac::adjustMenuListButtonStyle):
(WebCore::RenderThemeMac::adjustSliderTrackStyle):
(WebCore::RenderThemeMac::paintSliderTrack):
(WebCore::RenderThemeMac::adjustSliderThumbStyle):
(WebCore::RenderThemeMac::setSearchFieldSize):
(WebCore::RenderThemeMac::adjustSearchFieldStyle):
(WebCore::RenderThemeMac::cancelButtonSizes):
(WebCore::RenderThemeMac::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeMac::resultsButtonSizes):
(WebCore::RenderThemeMac::adjustSearchFieldDecorationPartStyle):
(WebCore::RenderThemeMac::paintSearchFieldDecorationPart):
(WebCore::RenderThemeMac::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeMac::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeMac::adjustSliderThumbSize):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::paintButton):
(WebCore::RenderThemeWin::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeWin::paintMenuList):
(WebCore::RenderThemeWin::adjustMenuListStyle):
(WebCore::RenderThemeWin::adjustMenuListButtonStyle):
(WebCore::RenderThemeWin::adjustSliderThumbSize):
(WebCore::RenderThemeWin::paintSearchField):
(WebCore::RenderThemeWin::adjustSearchFieldStyle):
(WebCore::RenderThemeWin::paintSearchFieldCancelButton):
(WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeWin::adjustSearchFieldDecorationPartStyle):
(WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeWin::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeWin::adjustMeterStyle):

  • rendering/RenderThemeWin.h:

Apr 16, 2016:

9:55 PM Changeset in webkit [199639] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] DFG should support relational comparisons of Number and Other
​https://bugs.webkit.org/show_bug.cgi?id=156669

Patch by Benjamin Poulain <​bpoulain@webkit.org> on 2016-04-16
Reviewed by Darin Adler.

In Sunspider/3d-raytrace, DFG falls back to JSValue in some important
relational compare because profiling sees "undefined" from time to time.

This case is fairly common outside Sunspider too because of out-of-bounds array access.
Unfortunately for us, our fallback for compare is really inefficient.

Fortunately, relational comparison with null/undefined/true/false are trival.
We can just convert both side to Double. That's what this patch adds.

I also extended constant folding for those cases because I noticed
a bunch of "undefined" constant going through DoubleRep at runtime.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGFixupPhase.cpp:

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

  • tests/stress/compare-number-and-other.js: Added.

(opaqueSideEffect):
(let.operator.of.operators.eval.testPolymorphic):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.eval.testMonomorphic):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.testMonomorphicLeftConstant):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.testMonomorphicRightConstant):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.i.testPolymorphic):

8:44 PM Changeset in webkit [199638] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] FRound/Negate can produce an impure NaN out of a pure NaN
​https://bugs.webkit.org/show_bug.cgi?id=156528

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-16
Reviewed by Filip Pizlo.

If you fround a double with the bits 0xfff7000000000000
you get 0xfffe000000000000. The first is a pure NaN, the second isn't.

This is without test because I could not find a way to create a 0xfff7000000000000
while convincing DFG that its pure.
When we purify NaNs from typed array, we use a specific value of NaN if the input
is any NaN, making testing tricky.

  • bytecode/SpeculatedType.cpp:

(JSC::typeOfDoubleNegation):

7:39 PM Changeset in webkit [199637] by Michael Catanzaro
  • 11 edits in trunk/Source/WebCore/platform/gtk/po

Localization files with empty Language: block build with gettext 0.19
​https://bugs.webkit.org/show_bug.cgi?id=133611

Reviewed by Darin Adler.

Fix the language tags. Note that the build error is not actually important here as it only
occurs with an older version of gettext, but presumably it's bad for the language tags to be
wrong.

  • as.po:
  • en_CA.po:
  • gu.po: Also correct the translation team to Gujarati.
  • hu.po:
  • id.po:
  • ko.po:
  • lv.po:
  • pa.po:
  • ru.po:
  • sl.po:
6:29 PM Changeset in webkit [199636] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

JS::DFG::nodeValuePairListDump does not compile with libstdc++ 4.8
​https://bugs.webkit.org/show_bug.cgi?id=156670

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-16
Reviewed by Darin Adler.

  • dfg/DFGNode.h:

(JSC::DFG::nodeValuePairListDump): Modified to use lambda as comparator.

6:26 PM Changeset in webkit [199635] by Matt Baker
  • 10 edits
    2 adds in trunk

Web Inspector: Adopt Number.prototype.toLocaleString For All Sizes and Times
​https://bugs.webkit.org/show_bug.cgi?id=152033
<rdar://problem/23815589>

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Update string formatters to localize float and percentage strings. Hook up
console message formatters to use String.standardFormatters so that console
statements (e.g. console.log("%.3f", 3.14159)) are properly formatted.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Utilities.js:

(value):
tokenizeFormatString should default to 6 digits when no precision
sub-specifier is provided.

percentageString should localize formatting, and take a fraction value
(0 to 1) instead of a percentage.

secondsToString should perform special-case formatting for zero values
("0ms") instead of the general purpose float formatter.

(value.d):
Switch to parseInt to floor floating point values and support numeric strings.
Return NaN instead of zero when passed a value that can't be converted to integer.

(value.f):
Switch to parseFloat to support numeric strings, and localize formatting.
Remove precision check, as it will never be less than zero. Return NaN
instead of zero when passed a value that can't be converted to float.

(prettyFunctionName):
Convert substitutions (an arguments object) to an array before calling join.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.floatFormatter):
Use String.standardFormatters.f.

(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.integerFormatter):
Use String.standardFormatters.d.

  • UserInterface/Views/LayoutTimelineDataGridNode.js:

(WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
(WebInspector.LayoutTimelineDataGridNode):
Use integer formatting for pixel values.

  • UserInterface/Views/ProfileDataGridNode.js:

(WebInspector.ProfileDataGridNode.prototype._recalculateData):
(WebInspector.ProfileDataGridNode.prototype._totalTimeContent):
Treat percentage as a fraction from 0 to 1.

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
Use integer formatting for pixel values.

LayoutTests:

Add test coverage for string formatters, and additional test cases for
Number.percentageString and Number.secondsToString.

  • inspector/unit-tests/number-utilities-expected.txt:
  • inspector/unit-tests/number-utilities.html:
  • inspector/unit-tests/string-utilities-expected.txt: Added.
  • inspector/unit-tests/string-utilities.html: Added.
6:20 PM Changeset in webkit [199634] by Matt Baker
  • 8 edits in trunk/Source/WebInspectorUI

display:inline on the tbody is causing the width of the iframe to be shrunk to the minimum size of its text.
​https://bugs.webkit.org/show_bug.cgi?id=15666

Reviewed by Timothy Hatcher.

Fix a regression caused by the recent Timelines UI redesign, and
reorder TimelineDataGrid's constructor arguments now that most
timeline views no longer have an associated tree outline.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView):

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WebInspector.ScriptDetailsTimelineView):
Reorder constructor parameters and omit optional treeOutline and
synchronizerDelegate arguments when they aren't needed.

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid):
Reorder constructor arguments so that treeOutline can be optional.
(WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
Nodes should be refreshed and re-inserted in the data grid without
requiring a grid synchronizer. If a synchronizer exists, re-insert
the tree element for the node. Since the syncronizer is disabled the
order of grid/tree operations doesn't matter.

5:40 PM Changeset in webkit [199633] by weinig@apple.com
  • 2 edits in trunk/Tools

More build fixing.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController share:]):

5:26 PM Changeset in webkit [199632] by weinig@apple.com
  • 2 edits in trunk/Tools

Another build fix.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController sharingServicePicker:sharingServicesForItems:proposedSharingServices:]):

5:19 PM Changeset in webkit [199631] by weinig@apple.com
  • 2 edits in trunk/Tools

Fix 32-bit build.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController share:]):
(-[BrowserWindowController fetch:]):
(-[BrowserWindowController sharingService:transitionImageForShareItem:contentRect:]):

5:10 PM Changeset in webkit [199630] by weinig@apple.com
  • 6 edits in trunk/Tools

Add support for NSSharingService to MiniBrowser, for no great reasons
​https://bugs.webkit.org/show_bug.cgi?id=156658

Reviewed by Darin Adler.

  • MiniBrowser/mac/BrowserWindow.xib:
  • MiniBrowser/mac/BrowserWindowController.h:

Add the share button.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController windowDidLoad]):
Set the share button to fire it's actions on mouse down, as it is supposed to act like a menu.

(-[BrowserWindowController share:]):
Show the picker when the button is pressed.
(-[BrowserWindowController mainContentView]):
Add a new override to get the main content view of derived classes (either a WKWebView or the WebView).

(-[BrowserWindowController sharingServicePicker:sharingServicesForItems:proposedSharingServices:]):
(-[BrowserWindowController sharingServicePicker:delegateForSharingService:]):
(-[BrowserWindowController sharingServicePicker:didChooseSharingService:]):
(-[BrowserWindowController sharingService:sourceFrameOnScreenForShareItem:]):
(-[BrowserWindowController sharingService:transitionImageForShareItem:contentRect:]):
(-[BrowserWindowController sharingService:sourceWindowForShareItems:sharingContentScope:]):
Add delegate methods.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController mainContentView]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController mainContentView]):
Implement to return the web view.

3:52 PM Changeset in webkit [199629] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Turkish translation of WebKitGTK+
​https://bugs.webkit.org/show_bug.cgi?id=156667

Patch by Muhammet Kara <​muhammetk@gmail.com> on 2016-04-16
Rubber-stamped by Michael Catanzaro.

  • tr.po:
2:37 PM Changeset in webkit [199628] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac] Web Content service with a restricted entitlement may load arbitrary dylibs
​https://bugs.webkit.org/show_bug.cgi?id=156668
<rdar://problem/25429784>

Reviewed by Anders Carlsson.

  • Configurations/WebContentService.xcconfig: Enable library validation when the Web Content service is given the XPC domain extension entitlement.
11:16 AM Changeset in webkit [199627] by ap@apple.com
  • 2 edits in trunk/Tools

Build fix.

Temporary workaround for rdar://problem/25754945.

  • LayoutTestRelay/LayoutTestRelay/CoreSimulatorSPI.h:
10:59 AM Changeset in webkit [199626] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Implemented moveZeroToDouble.
​https://bugs.webkit.org/show_bug.cgi?id=155429

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-16
Reviewed by Darin Adler.

This function is required to fix compilation after r197687.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::moveZeroToDouble):

10:53 AM Changeset in webkit [199625] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

CSSCursorImageValue shouldn't mutate element during style resolution
​https://bugs.webkit.org/show_bug.cgi?id=156659

Reviewed by Darin Adler.

CSSCursorImageValue::updateIfSVGCursorIsUsed may mutate the argument element.

This patch removes the code that caches cursor element and image to SVGElement rare data.
The whole things is basically unused. CSSCursorImageValue now maintains a weak map to
SVGCursorElements directly instead of indirectly via the using SVGElements.

  • css/CSSCursorImageValue.cpp:

(WebCore::CSSCursorImageValue::CSSCursorImageValue):
(WebCore::CSSCursorImageValue::~CSSCursorImageValue):
(WebCore::CSSCursorImageValue::customCSSText):
(WebCore::CSSCursorImageValue::updateCursorElement):

We no longer rely on SVGElement rare data so no need to test for SVGElement.

(WebCore::CSSCursorImageValue::cursorElementRemoved):
(WebCore::CSSCursorImageValue::cursorElementChanged):

Factor to a function.

(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::clearCachedImage):
(WebCore::CSSCursorImageValue::equals):
(WebCore::CSSCursorImageValue::removeReferencedElement): Deleted.

Don't track client elements anymore. Just track referenced SVGCursorElements.

  • css/CSSCursorImageValue.h:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueCursor):

No need to make style unique. Initialization is now done in updateSVGCursorElement.

  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::~SVGCursorElement):
(WebCore::SVGCursorElement::isSupportedAttribute):
(WebCore::SVGCursorElement::parseAttribute):
(WebCore::SVGCursorElement::addClient):
(WebCore::SVGCursorElement::removeClient):

Client is now an CSSCursorImageValue rather than SVGElement.

(WebCore::SVGCursorElement::svgAttributeChanged):

Instead of invalidating element style just invalidate the CSSCursorImageValue directly.

(WebCore::SVGCursorElement::addSubresourceAttributeURLs):
(WebCore::SVGCursorElement::removeReferencedElement): Deleted.

  • svg/SVGCursorElement.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::getBoundingBox):
(WebCore::SVGElement::correspondingElement):
(WebCore::SVGElement::setCursorElement): Deleted.
(WebCore::SVGElement::cursorElementRemoved): Deleted.
(WebCore::SVGElement::setCursorImageValue): Deleted.
(WebCore::SVGElement::cursorImageValueRemoved): Deleted.

SVGElements no longer need to know about their cursors.

  • svg/SVGElement.h:
  • svg/SVGElementRareData.h:

(WebCore::SVGElementRareData::instanceUpdatesBlocked):
(WebCore::SVGElementRareData::setInstanceUpdatesBlocked):
(WebCore::SVGElementRareData::correspondingElement):
(WebCore::SVGElementRareData::setCorrespondingElement):
(WebCore::SVGElementRareData::animatedSMILStyleProperties):
(WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
(WebCore::SVGElementRareData::cursorElement): Deleted.
(WebCore::SVGElementRareData::setCursorElement): Deleted.
(WebCore::SVGElementRareData::cursorImageValue): Deleted.
(WebCore::SVGElementRareData::setCursorImageValue): Deleted.

9:08 AM Changeset in webkit [199624] by Michael Catanzaro
  • 1 edit
    1 add in trunk/Source/WebCore/platform/gtk/po

Submit the first version of Finnish translation
​https://bugs.webkit.org/show_bug.cgi?id=153406

Patch by Jiri Grönroos <​jiri.gronroos+l10n@iki.fi> on 2016-04-16
Rubber-stamped by Michael Catanzaro. For FINLAN.

  • fi.po: Added. Note it's pretty incomplete as of yet.
8:54 AM Changeset in webkit [199623] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Bulgarian translation of WebKitGTK+
​https://bugs.webkit.org/show_bug.cgi?id=156656

Patch by Zahari Yurukov <​zahari.yurukov@gmail.com> on 2016-04-16
Rubber-stamped by Michael Catanzaro.

  • bg.po:

Apr 15, 2016:

10:26 PM Changeset in webkit [199622] by mitz@apple.com
  • 4 edits in trunk/Source/WebKit2

[Mac] WebContent, Networking and Databases services have i386 slices that are never used
​https://bugs.webkit.org/show_bug.cgi?id=156654

Reviewed by Alexey Proskuryakov.

  • Configurations/BaseXPCService.xcconfig: Set VALID_ARCHS to ARCHS_STANDARD when not building only for the active architecture.
  • Configurations/PluginService.32.xcconfig: Removed now-redundant definitions.
  • Configurations/PluginService.64.xcconfig: Ditto.
9:52 PM Changeset in webkit [199621] by msaboff@apple.com
  • 4 edits in trunk/Source/WTF

iTunes crashing JavaScriptCore.dll
​https://bugs.webkit.org/show_bug.cgi?id=156647

Reviewed by Geoffrey Garen.

If a thread was created without using the WTF thread apis and that thread uses
a JavaScript VM and that thread exits with the VM still around, JSC won't know
that the thread has exited. Currently, we use ThreadSpecificThreadExit() to
clean up any thread specific keys. Cleaning up these keys is how JSC is
notified of a thread exit. We only call ThreadSpecificThreadExit() from
wtfThreadEntryPoint() when the thread entry point function returns.
This mechanism was put in place for Windos because we layer the WTF::ThreadSpecific
functionality on top of TLS (Thread Local Storage), but TLS doesn't have
a thread exiting callback the way that pthread_create_key.

The fix is to change from using TLS to using FLS (Fiber Local Storage). Although
Windows allows multiple fibers per thread, WebKit is not designed to work with a
multiple fibers per thread. When ther is only one fiber per thread, FLS works just
like TLS, but it has the destroy callback.

I restructured the Windows version of WTF::ThreadSpecific to be almost the same
as the pthread version.

  • wtf/ThreadSpecific.h:

(WTF::threadSpecificKeyCreate):
(WTF::threadSpecificKeyDelete):
(WTF::threadSpecificSet):
(WTF::threadSpecificGet):
(WTF::ThreadSpecific<T>::ThreadSpecific):
(WTF::ThreadSpecific<T>::~ThreadSpecific):
(WTF::ThreadSpecific<T>::get):
(WTF::ThreadSpecific<T>::set):
(WTF::ThreadSpecific<T>::destroy):
Restructured to use FLS. Renamed TLS* to FLS*.

  • wtf/ThreadSpecificWin.cpp:

(WTF::flsKeyCount):
(WTF::flsKeys):
Renamed from tlsKey*() to flsKey*().

(WTF::destructorsList): Deleted.
(WTF::destructorsMutex): Deleted.
(WTF::PlatformThreadSpecificKey::PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::~PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::setValue): Deleted.
(WTF::PlatformThreadSpecificKey::value): Deleted.
(WTF::PlatformThreadSpecificKey::callDestructor): Deleted.
(WTF::tlsKeyCount): Deleted.
(WTF::tlsKeys): Deleted.
(WTF::threadSpecificKeyCreate): Deleted.
(WTF::threadSpecificKeyDelete): Deleted.
(WTF::threadSpecificSet): Deleted.
(WTF::threadSpecificGet): Deleted.
(WTF::ThreadSpecificThreadExit): Deleted.

  • wtf/ThreadingWin.cpp:

(WTF::wtfThreadEntryPoint): Eliminated call to ThreadSpecificThreadExit.

9:29 PM Changeset in webkit [199620] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

Need a way to specify a script name to show in the inspector for scripts injected via WKUserScript
<rdar://problem/25626662>
​https://bugs.webkit.org/show_bug.cgi?id=156653

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:userContentWorld:]):

  • UIProcess/API/Cocoa/WKUserScriptPrivate.h:

Add a new initializer that takes an associate URL that is used to represent the user script.

7:25 PM Changeset in webkit [199619] by Darin Adler
  • 52 edits in trunk/Source

Reduce use of Deprecated::ScriptXXX classes
​https://bugs.webkit.org/show_bug.cgi?id=156632

Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptCallArgumentHandler::appendArgument): Deleted version that takes a Deprecated::ScriptValue.
(Deprecated::ScriptFunctionCall::call): Changed to return a JSValue.

  • bindings/ScriptFunctionCall.h: Updated for the above.
  • bindings/ScriptValue.cpp:

(Inspector::jsToInspectorValue): Moved from Deprecated namespace to Inspector namespace. Later, we should
move this to another source file in the inspector directory.
(Inspector::toInspectorValue): Added.
(Deprecated::ScriptValue::toInspectorValue): Updated for change to underlying function.

  • bindings/ScriptValue.h: Update for the above.
  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::evaluateOnCallFrame): Changed arguments and return values from
Deprecated::ScriptValue to JSC::JSValue.
(Inspector::InjectedScript::functionDetails): Ditto.
(Inspector::InjectedScript::wrapCallFrames): Ditto.
(Inspector::InjectedScript::wrapObject): Ditto.
(Inspector::InjectedScript::wrapTable): Ditto.
(Inspector::InjectedScript::previewValue): Ditto.
(Inspector::InjectedScript::setExceptionValue): Ditto.
(Inspector::InjectedScript::findObjectById): Ditto.
(Inspector::InjectedScript::inspectObject): Ditto.

  • inspector/InjectedScript.h: Ditto.
  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::callFunctionWithEvalEnabled): Ditto.
(Inspector::InjectedScriptBase::makeCall): Ditto.

  • inspector/InjectedScriptBase.h: Ditto.
  • inspector/InjectedScriptModule.cpp:

(Inspector::InjectedScriptModule::ensureInjected): Ditto.

  • inspector/ScriptDebugListener.h: Ditto.
  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction): Ditto.
(Inspector::ScriptDebugServer::dispatchDidPause): Ditto.
(Inspector::ScriptDebugServer::dispatchBreakpointActionProbe): Ditto.
(Inspector::ScriptDebugServer::exceptionOrCaughtValue): Ditto.

  • inspector/ScriptDebugServer.h: Ditto.
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::buildExceptionPauseReason): Ditto.
(Inspector::InspectorDebuggerAgent::didPause): Ditto.
(Inspector::InspectorDebuggerAgent::breakpointActionProbe): Ditto.
(Inspector::InspectorDebuggerAgent::didContinue): Ditto.
(Inspector::InspectorDebuggerAgent::clearDebuggerBreakpointState): Ditto.

  • inspector/agents/InspectorDebuggerAgent.h: Ditto.
  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::getPreview): Ditto.
(Inspector::InspectorHeapAgent::getRemoteObject): Ditto.

Source/WebCore:

  • Modules/mediastream/SDPProcessor.cpp: Removed unneeded include.
  • bindings/js/JSCommandLineAPIHostCustom.cpp:

(WebCore::JSCommandLineAPIHost::inspectedObject): Use JSValue.

  • bindings/js/JSCustomEventCustom.cpp:

(WebCore::JSCustomEvent::detail): Ditto.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld): Ditto.
(WebCore::ScriptController::evaluate): Ditto.
(WebCore::ScriptController::executeScriptInWorld): Ditto.
(WebCore::ScriptController::executeScript): Ditto.
(WebCore::ScriptController::executeIfJavaScriptURL): Ditto.

  • bindings/js/ScriptController.h: Ditto.
  • bindings/js/ScriptGlobalObject.cpp: Removed unused overload of set,

and unused remove and folded handleException function into its one call site.
(WebCore::ScriptGlobalObject::set): Take references instead of pointers.
(WebCore::ScriptGlobalObject::get): Use JSObject instead of Deprecated::ScriptObject.

  • bindings/js/ScriptGlobalObject.h: Updated for the above.
  • dom/CustomEvent.cpp:

(WebCore::CustomEvent::initCustomEvent): Take JSValue and ExecState instead of
Deprecated::ScriptValue.
(WebCore::CustomEvent::trySerializeDetail): Take a reference instead of a pointer.
Also removed an unneeded null check.

  • dom/CustomEvent.h: Use JSValue.
  • dom/CustomEvent.idl: Updated for the above.
  • html/HTMLMediaElement.cpp: Remove unneeded include.
  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::InspectableObject::get): Take reference instead of
pointer and return JSValue.

  • inspector/CommandLineAPIHost.h: Updated for the above.
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::setDocument): Use "document" instead of "doc".
(WebCore::InspectorDOMAgent::setAttributesAsText): Omit redundant class name.
(WebCore::InspectorDOMAgent::focusNode): Ditto. Pass reference instead of pointer.
(WebCore::InspectorDOMAgent::undo): Ditto.
(WebCore::InspectorDOMAgent::redo): Ditto.
(WebCore::InspectorDOMAgent::nodeForObjectId): Stop using Deprecated::ScriptValue.
(WebCore::InspectorDOMAgent::resolveNode): Ditto.
(WebCore::InspectorDOMAgent::scriptValueAsNode): Removed unneeded isObject check,
which is already done by JSNode::toWrapped. Use JSValue.
(WebCore::InspectorDOMAgent::nodeAsScriptValue): Use JSValue.

  • inspector/InspectorDOMAgent.h: Updated for the above.
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::windowObjectCleared): Use references instead of
pointers and removed unneeded local.
(WebCore::InspectorFrontendClientLocal::evaluateAsBoolean): More of the same.

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::showContextMenu): Ditto.

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::breakpointActionProbe): Updated to take
reference instead of pointer and JSValue instead of ScriptValue.

  • inspector/InspectorTimelineAgent.h: Ditto.
  • inspector/PageConsoleAgent.cpp: Ditto.
  • inspector/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::breakpointActionLog): Ditto.

  • inspector/PageDebuggerAgent.h: Ditto.

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]): Use references instead
of pointers.
(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]): Updated
since return value is a JSValue.

  • WebView/WebView.mm:

(-[WebView aeDescByEvaluatingJavaScriptFromString:]): Ditto.

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::performRequest): Use JSValue.

  • WebFrame.cpp:

(WebFrame::stringByEvaluatingJavaScriptInScriptWorld): Ditto.

  • WebView.cpp:

(WebView::stringByEvaluatingJavaScriptFromString): Ditto.

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::performJavaScriptURLRequest): Use JSValue.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::windowObjectCleared): Use references.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScriptInMainFrame): Use JSValue.

6:47 PM Changeset in webkit [199618] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

6:26 PM Changeset in webkit [199617] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Some JIT/DFG operations need NativeCallFrameTracers
​https://bugs.webkit.org/show_bug.cgi?id=156650

Reviewed by Michael Saboff.

Some of our operation functions did not have native call frame
tracers. This meant that we would crash occasionally on some
of our tests when they triggered a GC in one of the functions
without a tracer. In particular, this was exemplified by another
upcoming patch when calling operationSetFunctionName.

This patch does not add tests since this happens consistently in
the patch adding delete_by_id to the DFG.

  • dfg/DFGOperations.cpp:
  • jit/JITOperations.cpp:
6:02 PM Changeset in webkit [199616] by jonlee@apple.com
  • 2 edits in trunk/PerformanceTests

Animometer test could report a NaN
​https://bugs.webkit.org/show_bug.cgi?id=156646

Reviewed by Darin Adler.
Provisionally reviewed by Said Abou-Hallawa.

  • Animometer/tests/resources/main.js:

(didFinishInterval): The ramp controller has a first phase where it ramps up the complexity and
reacts based on how well the system handles the load. The assumption was that it would handle at least
1 particle easily. That is not always the case. As a result, an interpolation calculation could
end up setting an upper bound of NaN.

This occurs because we never get out of the first tier, so this._lastTierComplexity is undefined.
Now that we guarantee a minimum complexity of 1, modify the conditional to check for this._lastTierComplexity
before interpolating the upper bound of the first ramp. In the case where the system struggles with
1 particle, set it to currentComplexity.

5:01 PM Changeset in webkit [199615] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION( r199603): Pandora crashes WebKit in WebPlaybackSessionManager::removeClientForContext
​https://bugs.webkit.org/show_bug.cgi?id=156648
<rdar://problem/25758117>

Reviewed by Beth Dakin.

Mistakenly checked in a reversed condition check, which causes a subsequent assert and crash.

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):

3:37 PM Changeset in webkit [199614] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.127

New Tag.

3:24 PM Changeset in webkit [199613] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

[Font Loading] Test promise gets rejected when unknown format used
​https://bugs.webkit.org/show_bug.cgi?id=156643

Reviewed by Simon Fraser.

When all the sources have an unknown format, the promise should be rejected.

  • fast/text/font-face-javascript-expected.txt:
  • fast/text/font-face-javascript.html:
3:23 PM Changeset in webkit [199612] by dbates@webkit.org
  • 30 edits
    1 copy
    55 adds in trunk

CSP: Ignore paths in CSP matching after redirects
​https://bugs.webkit.org/show_bug.cgi?id=153154
<rdar://problem/24383215>

Reviewed by Brent Fulgham.

Source/WebCore:

For sub-resources that redirect, match the URL that is the result of the redirect against
the source expressions in Content Security Policy ignoring any paths in those source
expressions as per section Paths and Redirects of the Content Security Policy Level 2 spec.,
<​https://w3c.github.io/webappsec-csp/2/> (Editor's Draft, 29 August 2015).

Tests: http/tests/security/contentSecurityPolicy/audio-redirect-allowed2.html

http/tests/security/contentSecurityPolicy/embed-redirect-allowed.html
http/tests/security/contentSecurityPolicy/embed-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/embed-redirect-blocked.html
http/tests/security/contentSecurityPolicy/embed-redirect-blocked2.html
http/tests/security/contentSecurityPolicy/embed-redirect-blocked3.html
http/tests/security/contentSecurityPolicy/font-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed.html
http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src.html
http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src2.html
http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src.html
http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src2.html
http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-child-src.html
http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-frame-src.html
http/tests/security/contentSecurityPolicy/image-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/object-redirect-allowed.html
http/tests/security/contentSecurityPolicy/object-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/object-redirect-blocked.html
http/tests/security/contentSecurityPolicy/object-redirect-blocked2.html
http/tests/security/contentSecurityPolicy/object-redirect-blocked3.html
http/tests/security/contentSecurityPolicy/script-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/stylesheet-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/svg-font-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/svg-image-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/track-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/video-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest): Define a local variable didReceiveRedirectResponse as
to whether this request follows from having received a redirect response from the server. Pass this
information to FrameLoader::checkIfFormActionAllowedByCSP() and PolicyChecker::checkNavigationPolicy()
for its consideration.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived): Pass whether we have a non-null redirect
response (i.e. received a redirect response from the server) to DocumentThreadableLoader::isAllowedByContentSecurityPolicy()
for its consideration.
(WebCore::DocumentThreadableLoader::loadRequest): Pass whether we performed a redirect to
DocumentThreadableLoader::isAllowedByContentSecurityPolicy() for its consideration.
(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy): Modified to take a boolean
argument as to whether a redirect was performed. We pass this information to the appropriate
ContentSecurityPolicy method.

  • loader/DocumentThreadableLoader.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkIfFormActionAllowedByCSP): Modified to take a boolean argument as to whether
a redirect response was received and passes this information to ContentSecurityPolicy::allowFormAction()
for its consideration.
(WebCore::FrameLoader::loadURL): Modified to tell PolicyChecker::checkNavigationPolicy() that the navigation
is not in response to having received a redirect response from the server.
(WebCore::FrameLoader::loadWithDocumentLoader): Ditto.

  • loader/FrameLoader.h:
  • loader/PolicyChecker.cpp:

(WebCore::isAllowedByContentSecurityPolicy): Modified to take a boolean argument as to whether
a redirect response was received and passes this information to the appropriate ContentSecurityPolicy member
function for consideration.
(WebCore::PolicyChecker::checkNavigationPolicy): Modified to take a boolean argument as to whether a redirect
response was received and passes this information through to WebCore::isAllowedByContentSecurityPolicy().

  • loader/PolicyChecker.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal): Modified to tell CachedResourceLoader::canRequest() that
the request is in response to having received a redirect response from the server.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequest): Modified to take a boolean argument as to whether a redirect
response was received and passes this information through to the appropriate ContentSecurityPolicy member
function for consideration.

  • loader/cache/CachedResourceLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowScriptFromSource): Modified to take an argument as to whether a
redirect response was received and passes this information through to ContentSecurityPolicyDirectiveList.
(WebCore::ContentSecurityPolicy::allowObjectFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildContextFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowImageFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowStyleFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFontFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowMediaFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowConnectToSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFormAction): Ditto.

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::checkSource):
(WebCore::checkFrameAncestors):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForChildContext): Modified to take an argument
as to whether a redirect response was received and passes this information through to the CSP directive.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForConnectSource): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFont): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFormAction): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFrame): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForImage): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForMedia): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForObjectSource): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScript): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyle): Ditto.

  • page/csp/ContentSecurityPolicyDirectiveList.h:
  • page/csp/ContentSecurityPolicySource.cpp:

(WebCore::ContentSecurityPolicySource::matches): Modified to take an argument as to whether a redirect response
was received. When the specified URL follows from having received a redirect response then ignore the path
component of the source expression when checking for a match. Otherwise, consider the path component of the
source expression when performing the match.

  • page/csp/ContentSecurityPolicySource.h:
  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::matches): Modified to take an argument as to whether a redirect
response was received and pass this information through to ContentSecurityPolicySource::matches().

  • page/csp/ContentSecurityPolicySourceList.h:
  • page/csp/ContentSecurityPolicySourceListDirective.cpp:

(WebCore::ContentSecurityPolicySourceListDirective::allows): Modified to take an argument as to whether a
redirect response was received and pass this information through to ContentSecurityPolicySourceList::matches().

  • page/csp/ContentSecurityPolicySourceListDirective.h:

LayoutTests:

Add tests to ensure that we ignore the path component of a source expression when matching
a sub-resource URL that is the result of a redirect.

  • TestExpectations: Unskip test http/tests/security/contentSecurityPolicy/redirect-does-not-match-paths.html as it now passes.
  • http/tests/security/contentSecurityPolicy/audio-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/audio-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked2.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked3-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked3.html: Added.
  • http/tests/security/contentSecurityPolicy/font-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/font-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src2.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src2.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-child-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-child-src.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-frame-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-frame-src.html: Added.
  • http/tests/security/contentSecurityPolicy/image-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/image-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked2.html: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked3-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked3.html: Added.
  • http/tests/security/contentSecurityPolicy/redirect-does-not-match-paths-expected.txt: Update expected result now that we pass this test.
  • http/tests/security/contentSecurityPolicy/resources/alert-pass.html:
  • http/tests/security/contentSecurityPolicy/resources/redirect.pl: For resourceType == "image", load image ​http://127.0.0.1:8000/security/resources/abe.png

instead of ​http://127.0.0.1:8000/resources/square20.jpg as the latter does not exist.

  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-allowed.php:
  • http/tests/security/contentSecurityPolicy/script-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/script-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/track-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/track-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/video-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/video-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2.html: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/xsl-redirect-allowed.html.
  • platform/ios-simulator/TestExpectations: Skip tests {embed, object}-redirect-blocked{2, 3}.html as they make

use of a plug-in and plug-ins are not supported on iOS.

  • platform/wk2/TestExpectations: Skip tests {embed, object}-redirect-blocked3.html on WebKit2 as they fail

because of <​https://bugs.webkit.org/show_bug.cgi?id=156612>.

2:28 PM Changeset in webkit [199611] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[CSS Font Loading] FontFace's promise may never be resolved/rejected if Content Security Policy blocks all the URLs
​https://bugs.webkit.org/show_bug.cgi?id=156605

Reviewed by Daniel Bates.

Source/WebCore:

If all the fonts are blocked, we will create a FontFace with no FontFaceSources.
Loading such a FontFace should reject the promise.

Test: fast/text/font-loading-csp-block-all.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::pump):

LayoutTests:

  • fast/text/font-loading-csp-block-all-expected.txt: Added.
  • fast/text/font-loading-csp-block-all.html: Added.
2:09 PM Changeset in webkit [199610] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, rolling out r199600.
​https://bugs.webkit.org/show_bug.cgi?id=156642

It didn't help (Requested by ap_ on #webkit).

Reverted changeset:

"Build fix."
​http://trac.webkit.org/changeset/199600

1:57 PM Changeset in webkit [199609] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Another unreviewed build fix.

  • platform/network/curl/MultipartHandle.cpp:

(WebCore::MultipartHandle::parseHeadersIfPossible):

1:55 PM Changeset in webkit [199608] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed build fix.,

  • platform/network/curl/MultipartHandle.cpp:

(WebCore::MultipartHandle::parseHeadersIfPossible): Correct for new method signature.

12:59 PM Changeset in webkit [199607] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

ASSERT when loading github.com
​https://bugs.webkit.org/show_bug.cgi?id=156604
<rdar://problem/19890634>

Reviewed by Darin Adler.

Source/WebCore:

HTMLFormControlElement::m_isValid is a cache of the results of the valid() function.
When cloning the node, we were preserving each individual item, but not the state
of the cache. Therefore, the cache and the attributes didn't agree with each other.

Test: fast/forms/checkValidity-cloneNode-crash.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement):

LayoutTests:

  • fast/forms/checkValidity-cloneNode-crash-expected.txt: Added.
  • fast/forms/checkValidity-cloneNode-crash.html: Added.
12:55 PM Changeset in webkit [199606] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r199598. rdar://problem/25641321

12:49 PM Changeset in webkit [199605] by Brent Fulgham
  • 8 edits
    5 moves
    5 adds
    5 deletes in trunk

Remove support for X-Frame-Options in <meta>
​https://bugs.webkit.org/show_bug.cgi?id=156625
<rdar://problem/25748714>

Reviewed by Darin Adler.

Source/WebCore:

Follow RFC7034 (Section 4), which recommends that 'X-Frame-Options' be ignored when delivered as part of
a '<meta http-equiv="...">' tag. This brings us in line with Firefox, Edge, and Blink.

Tests: http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body.html

http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow.html
http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny.html
http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag.html
http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored.html

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Log error message instead of blocking the load.

LayoutTests:

Revise tests to match our desired behavior based on RFC 7034 (Section 4).

  • http/tests/security/XFrameOptions/resources/x-frame-options-deny-meta-tag-subframe-in-body.html:
  • http/tests/security/XFrameOptions/resources/x-frame-options-deny-meta-tag-subframe-parent-same-origin-deny.html:
  • http/tests/security/XFrameOptions/resources/x-frame-options-deny-meta-tag-subframe.html:
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-expected.txt: Removed.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored-expected.txt: Added.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored.html: Copied from LayoutTests/http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options.html.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options.html: Removed.
  • inspector/console/x-frame-options-message-expected.txt: Rebaselined.
  • platform/win/TestExpectations:
12:20 PM Changeset in webkit [199604] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark inspector/formatting/formatting-javascript.html as flaky on mac
​https://bugs.webkit.org/show_bug.cgi?id=156634

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:06 PM Changeset in webkit [199603] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Audio elements should be able to have a controls manager.
​https://bugs.webkit.org/show_bug.cgi?id=156630

Reviewed by Beth Dakin.

Now that there is no longer a architectural restriction about what kind of media elements
can be used with WebPlaybackSessionManager, allow audio elements to create a controls
manager.

Drive-by fix: clear the controls manager when destroying the media player due to entering
the page cache, and when destroying the media element.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager):

12:01 PM Changeset in webkit [199602] by commit-queue@webkit.org
  • 17 edits
    4 adds in trunk

Web Inspector: sourceMappingURL not used when sourceURL is set
​https://bugs.webkit.org/show_bug.cgi?id=156021
<rdar://problem/25438417>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-15
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Clean up Debugger.sourceParsed to separately include:

  • url ("resource URL", "source url" in JSC APIs)
  • sourceURL - # sourceURL directive

By always having the resource URL the Web Inspector frontend
can better match this Script to a Resource of the same URL,
and decide to use the sourceURL if it is available when
appropriate.

  • inspector/protocol/Debugger.json:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::InspectorDebuggerAgent::didParseSource):
Send the new sourceParsed parameters.

Source/WebInspectorUI:

Previously Debugger.sourceParsed only providing the sourceURL, and
wiping out the resourceURL, meant that a Script from a Resource that
set a sourceURL directive would fail to be associated with its Resource.

This would result in duplicated tree elements in the Resources Sidebar,
one for the Resource, and one for the Script. With the Script getting
ultimately getting the SourceMap resources. However, since the frontend
prefers Resources over Scripts when possible, an error that generated
from the script would point to a location in the Resource, not following
source maps.

By always providing the resource URL in Debugger.sourceParsed, a Script
can better be associated with its Resource. The result is now a single
shared tree element in the Resources Sidebar, and the Resource getting
the SourceMap resources. Now the script error goes through the Resource
to its SourceMap resources as we would expect.

  • UserInterface/Protocol/DebuggerObserver.js:

(WebInspector.DebuggerObserver):
(WebInspector.DebuggerObserver.prototype.scriptParsed):
We now have to handle two different signatures of scriptParsed. One
for legacy, and one for non-legacy. Cache that value early on, since
scriptParsed happens a lot.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackend.Agent.prototype.hasEventParameter):
Runtime check a protocol event to see if it has a parameter. This
is used to check if Debugger.sourceParsed is legacy or not based
on if it has the legacy "hasSourceURL" parameter.

  • UserInterface/Models/Script.js:

(WebInspector.Script):
(WebInspector.Script.prototype.get sourceURL):
Treat sourceURL and url separately.

(WebInspector.Script.prototype.get displayName):
Handle both the url and sourceURL in displayName.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
(WebInspector.DebuggerManager.prototype.scriptDidParse):

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
Update code that checks the sourceURL to explicitly use sourceURL.

  • UserInterface/Controllers/SourceMapManager.js:

(WebInspector.SourceMapManager.prototype.downloadSourceMap):
For legacy backends, or in case we get a resource that has an incomplete
baseURL, attempt to get an absolute URL based on the main resource.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._addScript):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
Ignore scripts without a url or sourceURL.

LayoutTests:

  • inspector/debugger/scriptParsed.html:
  • inspector/debugger/search-scripts.html:
  • inspector/debugger/setBreakpointByUrl-sourceURL.html:
  • inspector/debugger/sourceURLs.html:

Update tests that need to handle sourceURL separately.

  • inspector/model/resources/relationship-named.js: Added.
  • inspector/model/resources/relationship-normal.js: Added.
  • inspector/model/script-resource-relationship-expected.txt: Added.
  • inspector/model/script-resource-relationship.html: Added.

Tests for Script and Resource relationships.

11:56 AM Changeset in webkit [199601] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.28.0.1/Source

Versioning.

11:33 AM Changeset in webkit [199600] by ap@apple.com
  • 2 edits in trunk/Tools

Build fix.

  • LayoutTestRelay/LayoutTestRelay/main.m: Allow some deprecated methods.
11:26 AM Changeset in webkit [199599] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Mark NetworkLoad as FastAllocated
​https://bugs.webkit.org/show_bug.cgi?id=156628

Reviewed by Alex Christensen.

Mark NetworkLoad as FastAllocated for performance.

  • NetworkProcess/NetworkLoad.h:
11:24 AM Changeset in webkit [199598] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Calling SVGAnimatedPropertyTearOff::animationEnded() will crash if the SVG property is not animating
​https://bugs.webkit.org/show_bug.cgi?id=156549

Patch by Said Abou-Hallawa <​sabouhallawa@apple.com> on 2016-04-15
Reviewed by Darin Adler.

A speculative fix for a crash which may happen when calling animationEnded()
of any SVGAnimatedProperty while it is not animating.

  • svg/SVGAnimatedTypeAnimator.h:

(WebCore::SVGAnimatedTypeAnimator::executeAction):

11:08 AM Changeset in webkit [199597] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for iOS simulator. Assert the correct variable.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):

10:59 AM Changeset in webkit [199596] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/text/font-face-javascript.html as flaky
​https://bugs.webkit.org/show_bug.cgi?id=156631

Unreviewed test gardening.

10:53 AM Changeset in webkit [199595] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.28.0.1

New tag.

10:50 AM Changeset in webkit [199594] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html as flaky on mac-wk1
​https://bugs.webkit.org/show_bug.cgi?id=156629

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:50 AM Changeset in webkit [199593] by jer.noble@apple.com
  • 29 edits
    3 copies
    13 adds in trunk/Source

Allow WebVideoFullscreenManager and Proxy to be used by audio elements.
​https://bugs.webkit.org/show_bug.cgi?id=156564

Reviewed by Beth Dakin.

Source/WebCore:

No new tests; this refactors existing functionality into new classes.

Tease apart the various WebVideoFullscreen{Interface,Model}{AVKit,Mac,VideoElement} into new
WebPlaybackSession… classes dealing exclusively with playback state and commands, leaving
fullscreen state and commands in the WebVideoFullscreen… classes. Specifically, create the
following new classes:

  • WebPlaybackSessionInterface (copied from WebVideoFullscreenInterface)
  • WebPlaybackSessionModelMediaElement (copied from WebVideoFullscreenModelMediaElement)
  • WebPlaybackSessionModel (copied from WebVideoFullscreenModel)
  • WebPlaybackSessionInterfaceAVKit (copied from WebVideoFullscreenInterfaceAVKit)
  • WebPlaybackSessionInterfaceMac (copied from WebVideoFullscreenInterfaceMac)

WebVideoFullscreenInterface and WebVideoFullscreenModel now inherit from
WebPlaybackSessionInterface and WebPlaybackSessionModel, respectively. The concrete
WebVideoFullscreen… subclasses each take their respective WebPlaybackSession… subclasses and
fulfill their WebPlaybackSession interfaces through composition.

As part of this big tease-apart, the WebAVPlayerController class needs to be exposed in a
header (as it's accessed by two different classes now), so that class is moved into its own
implementation and header files.

The one case where a change in a WebPlaybackSession… class needs to be reflected in a
WebVideoFullscreen… class is in WebPlaybackSessionInterfaceAVKit, where
WebVideoFullscreenInterfaceAVKit needs to be notified when external playback becomes dis/en-
abled, so a new WebPlaybackSessionInterfaceAVKitClient interface has been added to allow the
WebPlaybackSession… to notify the WebVideoFullscreen….

The responsibility for the "controls manager" has moved from the WebVideoFullscreen… classes
to the WebPlaybackSession… classes, so the ChromeClient interface for creating and destroying
those controls is similarly renamed from setUpVideoControlsManager() to
setUpPlaybackControlsManager().

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

(WebCore::HTMLMediaElement::updatePlayState):

  • page/ChromeClient.h:
  • platform/cocoa/WebPlaybackSessionInterface.h: Copied from Source/WebCore/platform/cocoa/WebVideoFullscreenInterface.h.

(WebCore::WebPlaybackSessionInterface::~WebPlaybackSessionInterface):

  • platform/cocoa/WebPlaybackSessionModel.h: Added.

(WebCore::WebPlaybackSessionModel::~WebPlaybackSessionModel):

  • platform/cocoa/WebPlaybackSessionModelMediaElement.h: Added.

(WebCore::WebPlaybackSessionModelMediaElement::create):
(WebCore::WebPlaybackSessionModelMediaElement::mediaElement):

  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm: Added.

(WebPlaybackSessionModelMediaElement::WebPlaybackSessionModelMediaElement):
(WebPlaybackSessionModelMediaElement::~WebPlaybackSessionModelMediaElement):
(WebPlaybackSessionModelMediaElement::setWebPlaybackSessionInterface):
(WebPlaybackSessionModelMediaElement::setMediaElement):
(WebPlaybackSessionModelMediaElement::handleEvent):
(WebPlaybackSessionModelMediaElement::updateForEventName):
(WebPlaybackSessionModelMediaElement::play):
(WebPlaybackSessionModelMediaElement::pause):
(WebPlaybackSessionModelMediaElement::togglePlayState):
(WebPlaybackSessionModelMediaElement::beginScrubbing):
(WebPlaybackSessionModelMediaElement::endScrubbing):
(WebPlaybackSessionModelMediaElement::seekToTime):
(WebPlaybackSessionModelMediaElement::fastSeek):
(WebPlaybackSessionModelMediaElement::beginScanningForward):
(WebPlaybackSessionModelMediaElement::beginScanningBackward):
(WebPlaybackSessionModelMediaElement::endScanning):
(WebPlaybackSessionModelMediaElement::selectAudioMediaOption):
(WebPlaybackSessionModelMediaElement::selectLegibleMediaOption):
(WebPlaybackSessionModelMediaElement::updateLegibleOptions):
(WebPlaybackSessionModelMediaElement::observedEventNames):
(WebPlaybackSessionModelMediaElement::eventNameAll):

  • platform/cocoa/WebPlaybackSessionModelVideoElement.cpp: Copied from Source/WebCore/platform/cocoa/WebVideoFullscreenModelVideoElement.mm.

(WebPlaybackSessionModelVideoElement::WebPlaybackSessionModelVideoElement):
(WebPlaybackSessionModelVideoElement::~WebPlaybackSessionModelVideoElement):
(WebPlaybackSessionModelVideoElement::setWebVideoFullscreenInterface):
(WebPlaybackSessionModelVideoElement::setVideoElement):
(WebPlaybackSessionModelVideoElement::handleEvent):
(WebPlaybackSessionModelVideoElement::updateForEventName):
(WebPlaybackSessionModelVideoElement::play):
(WebPlaybackSessionModelVideoElement::pause):
(WebPlaybackSessionModelVideoElement::togglePlayState):
(WebPlaybackSessionModelVideoElement::beginScrubbing):
(WebPlaybackSessionModelVideoElement::endScrubbing):
(WebPlaybackSessionModelVideoElement::seekToTime):
(WebPlaybackSessionModelVideoElement::fastSeek):
(WebPlaybackSessionModelVideoElement::beginScanningForward):
(WebPlaybackSessionModelVideoElement::beginScanningBackward):
(WebPlaybackSessionModelVideoElement::endScanning):
(WebPlaybackSessionModelVideoElement::selectAudioMediaOption):
(WebPlaybackSessionModelVideoElement::selectLegibleMediaOption):
(WebPlaybackSessionModelVideoElement::updateLegibleOptions):
(WebPlaybackSessionModelVideoElement::observedEventNames):
(WebPlaybackSessionModelVideoElement::eventNameAll):

  • platform/cocoa/WebVideoFullscreenInterface.h:
  • platform/cocoa/WebVideoFullscreenModel.h:

(WebCore::WebVideoFullscreenModel::~WebVideoFullscreenModel): Deleted.

  • platform/cocoa/WebVideoFullscreenModelVideoElement.h:

(WebCore::WebVideoFullscreenModelVideoElement::create):

  • platform/cocoa/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::WebVideoFullscreenModelVideoElement):
(WebVideoFullscreenModelVideoElement::setWebVideoFullscreenInterface):
(WebVideoFullscreenModelVideoElement::setVideoElement):
(WebVideoFullscreenModelVideoElement::play):
(WebVideoFullscreenModelVideoElement::pause):
(WebVideoFullscreenModelVideoElement::togglePlayState):
(WebVideoFullscreenModelVideoElement::beginScrubbing):
(WebVideoFullscreenModelVideoElement::endScrubbing):
(WebVideoFullscreenModelVideoElement::seekToTime):
(WebVideoFullscreenModelVideoElement::fastSeek):
(WebVideoFullscreenModelVideoElement::beginScanningForward):
(WebVideoFullscreenModelVideoElement::beginScanningBackward):
(WebVideoFullscreenModelVideoElement::endScanning):
(WebVideoFullscreenModelVideoElement::selectAudioMediaOption):
(WebVideoFullscreenModelVideoElement::selectLegibleMediaOption):
(WebVideoFullscreenModelVideoElement::handleEvent): Deleted.
(WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): Deleted.
(WebVideoFullscreenModelVideoElement::setVideoLayerFrame): Deleted.
(WebVideoFullscreenModelVideoElement::setVideoLayerGravity): Deleted.
(WebVideoFullscreenModelVideoElement::observedEventNames): Deleted.
(WebVideoFullscreenModelVideoElement::eventNameAll): Deleted.
(WebVideoFullscreenModelVideoElement::fullscreenModeChanged): Deleted.
(WebVideoFullscreenModelVideoElement::isVisible): Deleted.

  • platform/ios/WebAVPlayerController.h: Added.
  • platform/ios/WebAVPlayerController.mm: Added.

(-[WebAVPlayerController dealloc]):
(-[WebAVPlayerController resetState]):
(-[WebAVPlayerController player]):
(-[WebAVPlayerController forwardingTargetForSelector:]):
(-[WebAVPlayerController play:]):
(-[WebAVPlayerController pause:]):
(-[WebAVPlayerController togglePlayback:]):
(-[WebAVPlayerController togglePlaybackEvenWhenInBackground:]):
(-[WebAVPlayerController isPlaying]):
(-[WebAVPlayerController setPlaying:]):
(+[WebAVPlayerController keyPathsForValuesAffectingPlaying]):
(-[WebAVPlayerController beginScrubbing:]):
(-[WebAVPlayerController endScrubbing:]):
(-[WebAVPlayerController seekToTime:]):
(-[WebAVPlayerController currentTimeWithinEndTimes]):
(-[WebAVPlayerController setCurrentTimeWithinEndTimes:]):
(+[WebAVPlayerController keyPathsForValuesAffectingCurrentTimeWithinEndTimes]):
(-[WebAVPlayerController hasLiveStreamingContent]):
(+[WebAVPlayerController keyPathsForValuesAffectingHasLiveStreamingContent]):
(-[WebAVPlayerController skipBackwardThirtySeconds:]):
(-[WebAVPlayerController gotoEndOfSeekableRanges:]):
(-[WebAVPlayerController canScanForward]):
(+[WebAVPlayerController keyPathsForValuesAffectingCanScanForward]):
(-[WebAVPlayerController beginScanningForward:]):
(-[WebAVPlayerController endScanningForward:]):
(-[WebAVPlayerController beginScanningBackward:]):
(-[WebAVPlayerController endScanningBackward:]):
(-[WebAVPlayerController canSeekToBeginning]):
(+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToBeginning]):
(-[WebAVPlayerController seekToBeginning:]):
(-[WebAVPlayerController seekChapterBackward:]):
(-[WebAVPlayerController canSeekToEnd]):
(+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToEnd]):
(-[WebAVPlayerController seekToEnd:]):
(-[WebAVPlayerController seekChapterForward:]):
(-[WebAVPlayerController hasMediaSelectionOptions]):
(+[WebAVPlayerController keyPathsForValuesAffectingHasMediaSelectionOptions]):
(-[WebAVPlayerController hasAudioMediaSelectionOptions]):
(+[WebAVPlayerController keyPathsForValuesAffectingHasAudioMediaSelectionOptions]):
(-[WebAVPlayerController hasLegibleMediaSelectionOptions]):
(+[WebAVPlayerController keyPathsForValuesAffectingHasLegibleMediaSelectionOptions]):
(-[WebAVPlayerController currentAudioMediaSelectionOption]):
(-[WebAVPlayerController setCurrentAudioMediaSelectionOption:]):
(-[WebAVPlayerController currentLegibleMediaSelectionOption]):
(-[WebAVPlayerController setCurrentLegibleMediaSelectionOption:]):
(-[WebAVPlayerController isPlayingOnExternalScreen]):
(+[WebAVPlayerController keyPathsForValuesAffectingPlayingOnExternalScreen]):
(-[WebAVPlayerController isPictureInPictureInterrupted]):
(-[WebAVPlayerController setPictureInPictureInterrupted:]):

  • platform/ios/WebPlaybackSessionInterfaceAVKit.h: Added.

(WebCore::WebPlaybackSessionInterfaceAVKitClient::~WebPlaybackSessionInterfaceAVKitClient):

  • platform/ios/WebPlaybackSessionInterfaceAVKit.mm: Added.

(WebCore::WebPlaybackSessionInterfaceAVKit::WebPlaybackSessionInterfaceAVKit):
(WebCore::WebPlaybackSessionInterfaceAVKit::~WebPlaybackSessionInterfaceAVKit):
(WebCore::WebPlaybackSessionInterfaceAVKit::resetMediaState):
(WebCore::WebPlaybackSessionInterfaceAVKit::setWebPlaybackSessionModel):
(WebCore::WebPlaybackSessionInterfaceAVKit::setDuration):
(WebCore::WebPlaybackSessionInterfaceAVKit::setCurrentTime):
(WebCore::WebPlaybackSessionInterfaceAVKit::setBufferedTime):
(WebCore::WebPlaybackSessionInterfaceAVKit::setRate):
(WebCore::WebPlaybackSessionInterfaceAVKit::setSeekableRanges):
(WebCore::WebPlaybackSessionInterfaceAVKit::setCanPlayFastReverse):
(WebCore::mediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceAVKit::setAudioMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceAVKit::setLegibleMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceAVKit::setExternalPlayback):
(WebCore::WebPlaybackSessionInterfaceAVKit::setWirelessVideoPlaybackDisabled):
(WebCore::WebPlaybackSessionInterfaceAVKit::wirelessVideoPlaybackDisabled):
(WebCore::WebPlaybackSessionInterfaceAVKit::invalidate):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setUpFullscreen):

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerViewControllerDelegate fullscreenInterface]):
(-[WebAVPlayerViewControllerDelegate setFullscreenInterface:]):
(-[WebAVPlayerLayer fullscreenInterface]):
(-[WebAVPlayerLayer setFullscreenInterface:]):
(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):
(WebVideoFullscreenInterfaceAVKit::create):
(WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit):
(WebVideoFullscreenInterfaceAVKit::~WebVideoFullscreenInterfaceAVKit):
(WebVideoFullscreenInterfaceAVKit::playerController):
(WebVideoFullscreenInterfaceAVKit::resetMediaState):
(WebVideoFullscreenInterfaceAVKit::setDuration):
(WebVideoFullscreenInterfaceAVKit::setCurrentTime):
(WebVideoFullscreenInterfaceAVKit::setBufferedTime):
(WebVideoFullscreenInterfaceAVKit::setRate):
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions):
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges):
(WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse):
(WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions):
(WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions):
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback):
(WebVideoFullscreenInterfaceAVKit::externalPlaybackEnabledChanged):
(WebVideoFullscreenInterfaceAVKit::setWirelessVideoPlaybackDisabled):
(WebVideoFullscreenInterfaceAVKit::wirelessVideoPlaybackDisabled):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreen):
(WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture):
(-[WebAVPlayerViewControllerDelegate playerViewControllerWillStartPictureInPicture:]): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewControllerDidStartPictureInPicture:]): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewControllerFailedToStartPictureInPicture:withError:]): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewControllerWillStopPictureInPicture:]): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewControllerDidStopPictureInPicture:]): Deleted.
(convertToExitFullScreenReason): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewController:shouldExitFullScreenWithReason:]): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewController:restoreUserInterfaceForPictureInPictureStopWithCompletionHandler:]): Deleted.
(-[WebAVPlayerLayer init]): Deleted.
(-[WebAVPlayerLayer dealloc]): Deleted.
(-[WebAVPlayerLayer videoGravity]): Deleted.
(-[WebAVPlayerLayer videoRect]): Deleted.
(+[WebAVPlayerLayer keyPathsForValuesAffectingVideoRect]): Deleted.
(WebAVPictureInPicturePlayerLayerView_layerClass): Deleted.
(getWebAVPictureInPicturePlayerLayerViewClass): Deleted.
(WebAVPlayerLayerView_layerClass): Deleted.
(WebAVPlayerLayerView_playerController): Deleted.
(WebAVPlayerLayerView_setPlayerController): Deleted.
(WebAVPlayerLayerView_videoView): Deleted.
(WebAVPlayerLayerView_setVideoView): Deleted.
(WebAVPlayerLayerView_startRoutingVideoToPictureInPicturePlayerLayerView): Deleted.
(WebAVPlayerLayerView_stopRoutingVideoToPictureInPicturePlayerLayerView): Deleted.
(WebAVPlayerLayerView_pictureInPicturePlayerLayerView): Deleted.
(WebAVPlayerLayerView_dealloc): Deleted.
(getWebAVPlayerLayerViewClass): Deleted.
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): Deleted.
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenChangeObserver): Deleted.
(WebVideoFullscreenInterfaceAVKit::applicationDidBecomeActive): Deleted.
(WebVideoFullscreenInterfaceAVKit::enterFullscreen): Deleted.
(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard): Deleted.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen): Deleted.
(WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture): Deleted.
(WebVideoFullscreenInterfaceAVKit::failedToStartPictureInPicture): Deleted.
(WebVideoFullscreenInterfaceAVKit::willStopPictureInPicture): Deleted.
(WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture): Deleted.
(WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler): Deleted.
(WebVideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): Deleted.
(WebVideoFullscreenInterfaceAVKit::watchdogTimerFired): Deleted.
(WebVideoFullscreenInterfaceAVKit::setMode): Deleted.
(WebVideoFullscreenInterfaceAVKit::clearMode): Deleted.
(WebCore::supportsPictureInPicture): Deleted.

  • platform/mac/WebPlaybackSessionInterfaceMac.h: Added.
  • platform/mac/WebPlaybackSessionInterfaceMac.mm: Copied from Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.mm.

(-[WebAVMediaSelectionOptionMac localizedDisplayName]):
(-[WebAVMediaSelectionOptionMac setLocalizedDisplayName:]):
(-[WebPlaybackControlsManager initWithWebPlaybackSessionInterfaceMac:]):
(-[WebPlaybackControlsManager timing]):
(-[WebPlaybackControlsManager setTiming:]):
(-[WebPlaybackControlsManager seekableTimeRanges]):
(-[WebPlaybackControlsManager setSeekableTimeRanges:]):
(-[WebPlaybackControlsManager isSeeking]):
(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebPlaybackControlsManager audioMediaSelectionOptions]):
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:]):
(-[WebPlaybackControlsManager currentAudioMediaSelectionOption]):
(-[WebPlaybackControlsManager setCurrentAudioMediaSelectionOption:]):
(-[WebPlaybackControlsManager legibleMediaSelectionOptions]):
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:]):
(-[WebPlaybackControlsManager currentLegibleMediaSelectionOption]):
(-[WebPlaybackControlsManager setCurrentLegibleMediaSelectionOption:]):
(-[WebPlaybackControlsManager cancelThumbnailAndAudioAmplitudeSampleGeneration]):
(WebCore::WebPlaybackSessionInterfaceMac::~WebPlaybackSessionInterfaceMac):
(WebCore::WebPlaybackSessionInterfaceMac::setWebPlaybackSessionModel):
(WebCore::WebPlaybackSessionInterfaceMac::setDuration):
(WebCore::WebPlaybackSessionInterfaceMac::setCurrentTime):
(WebCore::WebPlaybackSessionInterfaceMac::setRate):
(WebCore::WebPlaybackSessionInterfaceMac::setSeekableRanges):
(WebCore::mediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::setLegibleMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::invalidate):
(WebCore::WebPlaybackSessionInterfaceMac::ensureControlsManager):
(WebCore::WebPlaybackSessionInterfaceMac::playBackControlsManager):

  • platform/mac/WebVideoFullscreenInterfaceMac.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(WebCore::WebVideoFullscreenInterfaceMac::WebVideoFullscreenInterfaceMac):
(WebCore::WebVideoFullscreenInterfaceMac::setWebVideoFullscreenModel):
(WebCore::WebVideoFullscreenInterfaceMac::setDuration):
(WebCore::WebVideoFullscreenInterfaceMac::setCurrentTime):
(WebCore::WebVideoFullscreenInterfaceMac::setRate):
(WebCore::WebVideoFullscreenInterfaceMac::setSeekableRanges):
(WebCore::WebVideoFullscreenInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebVideoFullscreenInterfaceMac::setLegibleMediaSelectionOptions):
(WebCore::WebVideoFullscreenInterfaceMac::ensureControlsManager):
(WebCore::WebVideoFullscreenInterfaceMac::~WebVideoFullscreenInterfaceMac): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setWebVideoFullscreenChangeObserver): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setMode): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::clearMode): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setupFullscreen): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::enterFullscreen): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::exitFullscreen): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::exitFullscreenWithoutAnimationToMode): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::cleanupFullscreen): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::invalidate): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::preparedToReturnToInline): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setVideoDimensions): Deleted.
(WebCore::supportsPictureInPicture): Deleted.

Source/WebKit2:

Tease apart WebVideoFullscreenManager and …Proxy into WebPlaybackSessionManager and …Proxy
classes dealing exclusively with playback state and commands, leaving fullscreen state and
commands in the WebVideoFullscreenManager… classes.

WebVideoFullscreenManager and …Proxy will now require an associated
WebPlaybackSessionManager and …Proxy class. The WebPlaybackSessionManager classes can be
used separately and without the WebVideoFullscreenManager classes.

  • DerivedSources.make:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):

  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h: Copied from Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h.
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in: Copied from Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in.
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm: Added.

(WebKit::WebPlaybackSessionModelContext::play):
(WebKit::WebPlaybackSessionModelContext::pause):
(WebKit::WebPlaybackSessionModelContext::togglePlayState):
(WebKit::WebPlaybackSessionModelContext::beginScrubbing):
(WebKit::WebPlaybackSessionModelContext::endScrubbing):
(WebKit::WebPlaybackSessionModelContext::seekToTime):
(WebKit::WebPlaybackSessionModelContext::fastSeek):
(WebKit::WebPlaybackSessionModelContext::beginScanningForward):
(WebKit::WebPlaybackSessionModelContext::beginScanningBackward):
(WebKit::WebPlaybackSessionModelContext::endScanning):
(WebKit::WebPlaybackSessionModelContext::selectAudioMediaOption):
(WebKit::WebPlaybackSessionModelContext::selectLegibleMediaOption):
(WebKit::WebPlaybackSessionManagerProxy::create):
(WebKit::WebPlaybackSessionManagerProxy::WebPlaybackSessionManagerProxy):
(WebKit::WebPlaybackSessionManagerProxy::~WebPlaybackSessionManagerProxy):
(WebKit::WebPlaybackSessionManagerProxy::invalidate):
(WebKit::WebPlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::WebPlaybackSessionManagerProxy::ensureModelAndInterface):
(WebKit::WebPlaybackSessionManagerProxy::ensureModel):
(WebKit::WebPlaybackSessionManagerProxy::ensureInterface):
(WebKit::WebPlaybackSessionManagerProxy::addClientForContext):
(WebKit::WebPlaybackSessionManagerProxy::removeClientForContext):
(WebKit::WebPlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID):
(WebKit::WebPlaybackSessionManagerProxy::clearPlaybackControlsManager):
(WebKit::WebPlaybackSessionManagerProxy::resetMediaState):
(WebKit::WebPlaybackSessionManagerProxy::setCurrentTime):
(WebKit::WebPlaybackSessionManagerProxy::setBufferedTime):
(WebKit::WebPlaybackSessionManagerProxy::setSeekableRangesVector):
(WebKit::WebPlaybackSessionManagerProxy::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionManagerProxy::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setExternalPlaybackProperties):
(WebKit::WebPlaybackSessionManagerProxy::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManagerProxy::setDuration):
(WebKit::WebPlaybackSessionManagerProxy::setRate):
(WebKit::WebPlaybackSessionManagerProxy::play):
(WebKit::WebPlaybackSessionManagerProxy::pause):
(WebKit::WebPlaybackSessionManagerProxy::togglePlayState):
(WebKit::WebPlaybackSessionManagerProxy::beginScrubbing):
(WebKit::WebPlaybackSessionManagerProxy::endScrubbing):
(WebKit::WebPlaybackSessionManagerProxy::seekToTime):
(WebKit::WebPlaybackSessionManagerProxy::fastSeek):
(WebKit::WebPlaybackSessionManagerProxy::beginScanningForward):
(WebKit::WebPlaybackSessionManagerProxy::beginScanningBackward):
(WebKit::WebPlaybackSessionManagerProxy::endScanning):
(WebKit::WebPlaybackSessionManagerProxy::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManagerProxy::selectLegibleMediaOption):
(WebKit::WebPlaybackSessionManagerProxy::controlsManagerInterface):

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenModelContext::WebVideoFullscreenModelContext):
(WebKit::WebVideoFullscreenModelContext::~WebVideoFullscreenModelContext):
(WebKit::WebVideoFullscreenModelContext::play):
(WebKit::WebVideoFullscreenModelContext::pause):
(WebKit::WebVideoFullscreenModelContext::togglePlayState):
(WebKit::WebVideoFullscreenModelContext::beginScrubbing):
(WebKit::WebVideoFullscreenModelContext::endScrubbing):
(WebKit::WebVideoFullscreenModelContext::seekToTime):
(WebKit::WebVideoFullscreenModelContext::fastSeek):
(WebKit::WebVideoFullscreenModelContext::beginScanningForward):
(WebKit::WebVideoFullscreenModelContext::beginScanningBackward):
(WebKit::WebVideoFullscreenModelContext::endScanning):
(WebKit::WebVideoFullscreenModelContext::selectAudioMediaOption):
(WebKit::WebVideoFullscreenModelContext::selectLegibleMediaOption):
(WebKit::WebVideoFullscreenManagerProxy::create):
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
(WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface):
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::exitFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::cleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::preparedToReturnToInline): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::requestFullscreenMode): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didSetupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didEnterFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::playbackSessionManager):
(WebKit::WebPageProxy::videoFullscreenManager):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::hasActiveVideoForControlsManager):
(WebKit::WebPageProxy::isPlayingMediaDidChange): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::supportsVideoFullscreen):
(WebKit::WebChromeClient::setUpPlaybackControlsManager):
(WebKit::WebChromeClient::clearPlaybackControlsManager):
(WebKit::WebChromeClient::enterVideoFullscreenForVideoElement):
(WebKit::WebChromeClient::exitVideoFullscreenForVideoElement):
(WebKit::WebChromeClient::exitVideoFullscreenToModeWithoutAnimation):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::playbackSessionManager):
(WebKit::WebPage::videoFullscreenManager):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/cocoa/WebPlaybackSessionManager.h: Copied from Source/WebKit2/WebProcess/cocoa/WebVideoFullscreenManager.h.

(WebKit::WebPlaybackSessionInterfaceContext::create):
(WebKit::WebPlaybackSessionInterfaceContext::invalidate):

  • WebProcess/cocoa/WebPlaybackSessionManager.messages.in: Added.
  • WebProcess/cocoa/WebPlaybackSessionManager.mm: Added.

(WebKit::nextContextId):
(WebKit::WebPlaybackSessionInterfaceContext::WebPlaybackSessionInterfaceContext):
(WebKit::WebPlaybackSessionInterfaceContext::~WebPlaybackSessionInterfaceContext):
(WebKit::WebPlaybackSessionInterfaceContext::resetMediaState):
(WebKit::WebPlaybackSessionInterfaceContext::setDuration):
(WebKit::WebPlaybackSessionInterfaceContext::setCurrentTime):
(WebKit::WebPlaybackSessionInterfaceContext::setBufferedTime):
(WebKit::WebPlaybackSessionInterfaceContext::setRate):
(WebKit::WebPlaybackSessionInterfaceContext::setSeekableRanges):
(WebKit::WebPlaybackSessionInterfaceContext::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionInterfaceContext::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionInterfaceContext::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionInterfaceContext::setExternalPlayback):
(WebKit::WebPlaybackSessionInterfaceContext::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManager::create):
(WebKit::WebPlaybackSessionManager::WebPlaybackSessionManager):
(WebKit::WebPlaybackSessionManager::~WebPlaybackSessionManager):
(WebKit::WebPlaybackSessionManager::createModelAndInterface):
(WebKit::WebPlaybackSessionManager::ensureModelAndInterface):
(WebKit::WebPlaybackSessionManager::ensureModel):
(WebKit::WebPlaybackSessionManager::ensureInterface):
(WebKit::WebPlaybackSessionManager::removeContext):
(WebKit::WebPlaybackSessionManager::addClientForContext):
(WebKit::WebPlaybackSessionManager::removeClientForContext):
(WebKit::WebPlaybackSessionManager::setUpPlaybackControlsManager):
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):
(WebKit::WebPlaybackSessionManager::contextIdForMediaElement):
(WebKit::WebPlaybackSessionManager::resetMediaState):
(WebKit::WebPlaybackSessionManager::setDuration):
(WebKit::WebPlaybackSessionManager::setCurrentTime):
(WebKit::WebPlaybackSessionManager::setBufferedTime):
(WebKit::WebPlaybackSessionManager::setRate):
(WebKit::WebPlaybackSessionManager::setSeekableRanges):
(WebKit::WebPlaybackSessionManager::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionManager::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionManager::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionManager::setExternalPlayback):
(WebKit::WebPlaybackSessionManager::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManager::play):
(WebKit::WebPlaybackSessionManager::pause):
(WebKit::WebPlaybackSessionManager::togglePlayState):
(WebKit::WebPlaybackSessionManager::beginScrubbing):
(WebKit::WebPlaybackSessionManager::endScrubbing):
(WebKit::WebPlaybackSessionManager::seekToTime):
(WebKit::WebPlaybackSessionManager::fastSeek):
(WebKit::WebPlaybackSessionManager::beginScanningForward):
(WebKit::WebPlaybackSessionManager::beginScanningBackward):
(WebKit::WebPlaybackSessionManager::endScanning):
(WebKit::WebPlaybackSessionManager::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManager::selectLegibleMediaOption):

  • WebProcess/cocoa/WebVideoFullscreenManager.h:

(WebKit::WebVideoFullscreenInterfaceContext::create):

  • WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
  • WebProcess/cocoa/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenInterfaceContext::WebVideoFullscreenInterfaceContext):
(WebKit::WebVideoFullscreenInterfaceContext::resetMediaState):
(WebKit::WebVideoFullscreenInterfaceContext::setDuration):
(WebKit::WebVideoFullscreenInterfaceContext::setCurrentTime):
(WebKit::WebVideoFullscreenInterfaceContext::setBufferedTime):
(WebKit::WebVideoFullscreenInterfaceContext::setRate):
(WebKit::WebVideoFullscreenInterfaceContext::setSeekableRanges):
(WebKit::WebVideoFullscreenInterfaceContext::setCanPlayFastReverse):
(WebKit::WebVideoFullscreenInterfaceContext::setAudioMediaSelectionOptions):
(WebKit::WebVideoFullscreenInterfaceContext::setLegibleMediaSelectionOptions):
(WebKit::WebVideoFullscreenInterfaceContext::setExternalPlayback):
(WebKit::WebVideoFullscreenInterfaceContext::setWirelessVideoPlaybackDisabled):
(WebKit::WebVideoFullscreenManager::create):
(WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
(WebKit::WebVideoFullscreenManager::createModelAndInterface):
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenInterfaceContext::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenManager::~WebVideoFullscreenManager): Deleted.
(WebKit::WebVideoFullscreenManager::ensureModelAndInterface): Deleted.
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenManager::requestFullscreenMode): Deleted.
(WebKit::WebVideoFullscreenManager::fullscreenModeChanged): Deleted.
(WebKit::WebVideoFullscreenManager::didSetupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::didEnterFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::didExitFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoLayerGravityEnum): Deleted.
(WebKit::WebVideoFullscreenManager::fullscreenMayReturnToInline): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): Deleted.

10:18 AM Changeset in webkit [199592] by Joseph Pecoraro
  • 38 edits
    2 deletes in trunk

Web Inspector: Cleanup inspector/debugger tests
​https://bugs.webkit.org/show_bug.cgi?id=156619

Reviewed by Brian Burg.

Source/JavaScriptCore:

While cleaning up the tests it exposed the fact that breakpoints
were not getting disabled when the inspector closes. This means
that opening the inspector, with breakpoints, and closing the
inspector, would leave the JSC::Debugger thinking breakpoints
are active. The JSC::Debugger should be reset.

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::disable):

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WebInspector.loaded):

  • UserInterface/Controllers/DebuggerManager.js:

Remove agent checks for agents that are always available.

LayoutTests:

  • inspector/debugger/breakpoint-action-detach.html:
  • inspector/debugger/breakpoint-action-with-exception.html:
  • inspector/debugger/breakpoint-condition-detach.html:
  • inspector/debugger/breakpoint-condition-with-bad-script.html:
  • inspector/debugger/breakpoint-condition-with-exception.html:
  • inspector/debugger/breakpoint-eval-with-exception.html:
  • inspector/debugger/breakpoint-inside-conditons-and-actions.html:
  • inspector/debugger/call-frame-function-name.html:
  • inspector/debugger/call-frame-this-host.html:
  • inspector/debugger/call-frame-this-nonstrict.html:
  • inspector/debugger/call-frame-this-strict.html:
  • inspector/debugger/debugger-statement.html:
  • inspector/debugger/didSampleProbe-multiple-probes.html:
  • inspector/debugger/hit-breakpoint-from-console.html:
  • inspector/debugger/nested-inspectors.html:
  • inspector/debugger/pause-on-assert.html:
  • inspector/debugger/regress-133182.html:
  • inspector/debugger/removeBreakpoint.html:
  • inspector/debugger/setBreakpoint-actions.html:
  • inspector/debugger/setBreakpoint-autoContinue.html:
  • inspector/debugger/setBreakpoint-column.html:
  • inspector/debugger/setBreakpoint-condition.html:
  • inspector/debugger/setBreakpoint-dfg-and-modify-local.html:
  • inspector/debugger/setBreakpoint-dfg-callee-and-examine-dfg-local.html:
  • inspector/debugger/setBreakpoint-dfg.html:
  • inspector/debugger/setBreakpoint-options-exception.html:
  • inspector/debugger/setBreakpoint.html:
  • inspector/debugger/setBreakpointByUrl-sourceURL.html:
  • inspector/debugger/setPauseOnExceptions-all.html:
  • inspector/debugger/setPauseOnExceptions-none.html:
  • inspector/debugger/setPauseOnExceptions-uncaught.html:

Activate breakpoints in protocol tests that may set breakpoints and pause.
Inspector tests automatically enable breakpoints.

  • inspector/debugger/setVariableValue-expected.txt: Removed.
  • inspector/debugger/setVariableValue.html: Removed.
  • platform/gtk/TestExpectations:

Remove references to bad test. The protocol command no longer exists.

9:44 AM Changeset in webkit [199591] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[COCOA] Do not unnecessarily initialize ResourceResponse::m_httpVersion as part of common fields
​https://bugs.webkit.org/show_bug.cgi?id=156606

Reviewed by Darin Adler.

Do not unnecessarily initialize ResourceResponse::m_httpVersion as part of common fields.

We previously initialized m_httpVersion when calling platformLazyInit(CommonFieldsOnly),
even though this is not a common field. The corresponding getter/setter in
HTTPResponseBase call lazyInit(AllFields).

  • platform/network/cf/ResourceResponseCFNet.cpp:

(WebCore::ResourceResponse::platformLazyInit):

  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::ResourceResponse::platformLazyInit):

9:39 AM Changeset in webkit [199590] by commit-queue@webkit.org
  • 16 edits in trunk

Refactor WebSockets handshake to use StringView instead of String for header validation.
​https://bugs.webkit.org/show_bug.cgi?id=155602

Patch by John Wilander <​wilander@apple.com> on 2016-04-15
Reviewed by Darin Adler.

Source/WebCore:

No new tests. Existing test have been augmented.

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::readServerHandshake):

Made sure failure reason was set consistently with makeString().

(WebCore::headerHasValidHTTPVersion):

Now operates on the HTTP status line with StringView.

(WebCore::WebSocketHandshake::readStatusLine):

Now operates on the HTTP status line with StringView.

(WebCore::WebSocketHandshake::readHTTPHeaders):

Now operates on header names with StringView.
Made sure failure reason was set consistently with makeString() and ASCIILiteral().

(WebCore::WebSocketHandshake::checkResponseHeaders):

Made sure failure reason was set consistently with ASCIILiteral().

  • platform/network/HTTPParsers.cpp:

(WebCore::parseHTTPRequestLine):

Made sure failure reason was set consistently with ASCIILiteral().

(WebCore::isValidHeaderNameCharacter):

Inlined function to check if a character is allowed in an HTTP header name according to RFC 7230.
​https://tools.ietf.org/html/rfc7230 (June 2014)

(WebCore::parseHTTPHeader):

  • platform/network/HTTPParsers.h:

Now receives the HTTP header name as a StringView.
Checks that header names only contain valid characters according to RFC 7230 (see above).

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::addHTTPHeaderField):

  • platform/network/ResourceRequestBase.h:

Now has an overloaded function which receives the HTTP header name as an HTTPHeaderName enum value.

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::addHTTPHeaderField):

  • platform/network/ResourceResponseBase.h:

Now has an overloaded function which receives the HTTP header name as an HTTPHeaderName enum value.

Source/WebKit2:

  • UIProcess/InspectorServer/HTTPRequest.cpp:

(WebKit::HTTPRequest::parseHeaders):

Now declares the HTTP header name as a StringView to match the change in WebCore::parseHTTPHeader.

LayoutTests:

  • http/tests/websocket/tests/hybi/bad-handshake-crash-expected.txt:

Fixed so that new error output is expected.

  • http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt:
  • http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1.html:
  • http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1_wsh.py:

Now tests HTTP versions that are higher than 1.1, are lower than 1.1, have bad characters, and are empty.

  • http/tests/websocket/tests/hybi/long-invalid-header-expected.txt:

Fixed so that slightly refined error output is expected.

9:18 AM Changeset in webkit [199589] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

2016-04-14 Geoffrey Garen <​ggaren@apple.com>

CopiedBlock should be 64kB

Reviewed by Benjamin Poulain.

Let's try another value.

This is 25% faster on kraken-audio-beat-detection on Mac Pro.

  • heap/CopiedBlock.h:
8:51 AM Changeset in webkit [199588] by jdiggs@igalia.com
  • 9 edits
    3 adds in trunk

AX: Presentational role on SVG elements is trumped by child 'title' and 'desc' elements
​https://bugs.webkit.org/show_bug.cgi?id=156519

Reviewed by Chris Fleizach.

Source/WebCore:

Override the presentational role on SVG elements which have a child 'title' or 'desc'
element. As a result of this change, AccessibilitySVGRoot objects would be exposed
with an AccessibilityRole of UnknownRole. Therefore map included AccessibilitySVGRoot
objects to GroupRole as per the SVG Accessibility API Mapping specification.

Also use indexOfBestMatchingLanguageInList() to identify which child 'title' or 'desc'
element is the best match for the parent element.

New Test: accessibility/w3c-svg-content-language-attribute.html

Also: Update w3c-svg-presentational-role.html expectations because there are test cases
in which elements are now being included in the accessibility tree as a result of this
change. Also add new test cases which lack child 'title' and 'desc' elements.

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::childElementWithMatchingLanguage):
(WebCore::AccessibilitySVGElement::accessibilityDescription):
(WebCore::AccessibilitySVGElement::helpText):
(WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored):
(WebCore::AccessibilitySVGElement::determineAriaRoleAttribute):

  • accessibility/AccessibilitySVGElement.h:
  • accessibility/AccessibilitySVGRoot.h:

LayoutTests:

Update w3c-svg-presentational-role.html expectations because there are test cases in which
elements are now being included in the accessibility tree as a result of this change. Also
add new test cases which lack child 'title' and 'desc' elements.

  • accessibility/w3c-svg-content-language-attribute.html: Added.
  • accessibility/w3c-svg-presentational-role.html: New test cases added.
  • platform/gtk/accessibility/w3c-svg-content-language-attribute-expected.txt: Added.
  • platform/gtk/accessibility/w3c-svg-presentational-role-expected.txt: Updated.
  • platform/mac/accessibility/w3c-svg-content-language-attribute-expected.txt: Added.
  • platform/mac/accessibility/w3c-svg-presentational-role-expected.txt: Updated.
7:12 AM Changeset in webkit [199587] by Chris Dumez
  • 27 edits in trunk/Source/WebCore

Rename [GlobalContext] extended attribute to [Exposed] and align with WebIDL
​https://bugs.webkit.org/show_bug.cgi?id=156615

Reviewed by Youenn Fablet.

Rename [GlobalContext] extended attribute to [Exposed] and align with WebIDL:

  • bindings/scripts/IDLAttributes.txt:

Stop recognizing [GlobalContext] and start recognizing [Exposed].

  • bindings/scripts/IDLParser.pm:

(parseIdentifierList):
(parseExtendedAttributeRest2):
Add IDL parser support for having a list of identifiers as value
for an IDL extended attribute, e.g. Exposed=(Window, Worker).

  • bindings/scripts/preprocess-idls.pl:

Tweak existing support for [GlobalContext] to use [Exposed] instead
and support the new syntax.

(getInterfaceExtendedAttributesFromIDL):
Do not split on commas that are within brackets.

  • Modules/fetch/FetchBody.idl:
  • Modules/fetch/FetchHeaders.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/streams/ByteLengthQueuingStrategy.idl:
  • Modules/streams/CountQueuingStrategy.idl:
  • Modules/streams/ReadableStream.idl:
  • Modules/streams/ReadableStreamController.idl:
  • Modules/streams/ReadableStreamReader.idl:
  • Modules/websockets/WebSocket.idl:
  • dom/MessageChannel.idl:
  • dom/MessageEvent.idl:
  • fileapi/Blob.idl:
  • fileapi/FileReader.idl:
  • fileapi/FileReaderSync.idl:
  • html/DOMURL.idl:
  • html/ImageData.idl:
  • page/EventSource.idl:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/WorkerGlobalScope.idl:
  • workers/WorkerLocation.idl:
  • xml/XMLHttpRequest.idl:
  • xml/XMLHttpRequestEventTarget.idl:

Use [Exposed] instead of [GlobalContext] to match their respective
specifications.

2:07 AM Changeset in webkit [199586] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Tail call optimizations lead to crashes on ARM Thumb + Linux
​https://bugs.webkit.org/show_bug.cgi?id=150083

Patch by Zan Dobersek <​zdobersek@igalia.com> on 2016-04-15
Reviewed by Csaba Osztrogonác.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::repatchNearCall): In case of a tail call relink to the
data location of the destination, and not the executable address. This is needed for
the ARM Thumb2 platform where both the source and destination addresses of a jump relink
must not have the bottom bit decorated, as asserted in ARMv7Assembler::relinkJump().

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall): Similarly, when linking a tail call we must link to the
address that has a non-decorated bottom bit, as asserted in ARMv7Assembler::linkJumpAbsolute().

1:53 AM Changeset in webkit [199585] by Carlos Garcia Campos
  • 8 edits
    2 adds in trunk

Selection.deleteFromDocument should not leave a selection character
​https://bugs.webkit.org/show_bug.cgi?id=151442

Reviewed by Michael Catanzaro.

Source/WebCore:

This is a merge of Blink r172511:
​https://codereview.chromium.org/255453003

Let Selection.deleteFromDocument not delete a character when the
selection is a caret.

Selection.deleteFromDocument delete a character when the selection
is a caret.
However, current standard says that Selection.deleteFromDocument
does nothing when the selection is a caret:
​https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#dom-selection-deletefromdocument
Both IE10 and FireFox seem following the spec.

Test: imported/blink/editing/selection/deleteFromDocument-undo-crash.html

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::deleteFromDocument): Deleted.

LayoutTests:

  • editing/selection/deleteFromDocument-expected.txt:
  • editing/selection/deleteFromDocument.html:
  • imported/blink/editing/selection/deleteFromDocument-undo-crash-expected.txt: Added.
  • imported/blink/editing/selection/deleteFromDocument-undo-crash.html: Added.
  • TestExpectations: Skip imported/blink/editing/selection/deleteFromDocument-undo-crash.html in Debug.
  • platform/gtk/TestExpectations: Unskip imported/blink/editing/selection/deleteFromDocument-crash.html.
  • platform/win/TestExpectations: Ditto.
1:16 AM Changeset in webkit [199584] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Fix return value nullptr -> false.

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):

12:54 AM Changeset in webkit [199583] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

AffectsNextSibling style relation marking is inefficient
​https://bugs.webkit.org/show_bug.cgi?id=156593

Reviewed by Benjamin Poulain.

We currently add a Style::Relation entry for each sibling to mark. With long sibling lists this can be inefficient
in terms of both memory and speed. Instead make a single entry that includes the sibling count to mark.

  • css/SelectorChecker.cpp:

(WebCore::addStyleRelation):

When adding AffectsNextSibling entry check if the last entry in the style relation vector has the
same type and is part of the same sibling chain. If so just update the existing entry.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelation):

The same thing in hand-crafted macro assembler.

  • cssjit/SelectorCompiler.h:

Stop lying about the constness of the CheckingContext.

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelations):

Mark as many sibling elements as the value indicates.

  • style/StyleRelations.h:

(WebCore::Style::Relation::Relation):

Make element a pointer so we can udpate it.

12:26 AM Changeset in webkit [199582] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Don't copy entire NSURLSessionConfiguration just to test for credentials
​https://bugs.webkit.org/show_bug.cgi?id=156598

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-04-15
Reviewed by Brady Eidson.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate initWithNetworkSession:withCredentials:]):
(-[WKNetworkSessionDelegate URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:]):
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
(WebKit::NetworkSession::NetworkSession):
(-[WKNetworkSessionDelegate initWithNetworkSession:]): Deleted.

12:22 AM Changeset in webkit [199581] by beidson@apple.com
  • 13 edits in trunk

Add the message property to DOMError.
​https://bugs.webkit.org/show_bug.cgi?id=139173

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Updated existing tests).

Adding this property brings us up to date with other browsers, and will help
test the few web features that still use DOMError.

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::onError):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
(WebCore::IDBRequest::onError):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::didCreateIndexOnServer):

  • Modules/mediastream/NavigatorUserMediaError.h:

(WebCore::NavigatorUserMediaError::NavigatorUserMediaError):

  • dom/DOMError.cpp:

(WebCore::DOMError::DOMError):

  • dom/DOMError.h:

(WebCore::DOMError::create):
(WebCore::DOMError::message):

  • dom/DOMError.idl:

LayoutTests:

  • storage/indexeddb/createIndex-after-failure-expected.txt:
  • storage/indexeddb/createIndex-after-failure-private-expected.txt:
  • storage/indexeddb/intversion-upgrades-expected.txt:
  • storage/indexeddb/intversion-upgrades-private-expected.txt:
12:02 AM Changeset in webkit [199580] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark perf/array-binary-search.html as flaky on ios-simulator-wk2
​https://bugs.webkit.org/show_bug.cgi?id=153049

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:

Apr 14, 2016:

11:51 PM Changeset in webkit [199579] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/animation/request-animation-frame-iframe2.html as flaky on ios-simulator-wk2
​https://bugs.webkit.org/show_bug.cgi?id=156620

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:38 PM Changeset in webkit [199578] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/animation/request-animation-frame-during-modal.html as flaky on ios-simulator-wk2
​https://bugs.webkit.org/show_bug.cgi?id=82762

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:35 PM Changeset in webkit [199577] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

Unreviewed. Fix GTK+ build after r199558.

  • UIProcess/API/gtk/WebKitFileChooserRequest.cpp:

(webkitFileChooserRequestCreate):
(webkit_file_chooser_request_select_files):

  • UIProcess/API/gtk/WebKitFileChooserRequestPrivate.h:
  • UIProcess/API/gtk/WebKitUIClient.cpp:
11:27 PM Changeset in webkit [199576] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark inspector/console/addInspectedNode.html as flaky on mac-wk2 for ElCapitan
​https://bugs.webkit.org/show_bug.cgi?id=155138

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:04 PM Changeset in webkit [199575] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark http/tests/cache/disk-cache/disk-cache-vary-no-body.html as flaky on ios-simulator-wk2
​https://bugs.webkit.org/show_bug.cgi?id=149087

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
10:50 PM Changeset in webkit [199574] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark http/tests/cache/disk-cache/disk-cache-vary.html as flaky for ios-simulator-wk2
​https://bugs.webkit.org/show_bug.cgi?id=149087

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
10:50 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
9:37 PM Changeset in webkit [199573] by ap@apple.com
  • 2 edits in trunk/Tools

Some GuardMalloc bots are not happy when running many parallel processes
​https://bugs.webkit.org/show_bug.cgi?id=156614
rdar://problem/24711525

Reviewed by David Kilzer.

  • Scripts/webkitpy/port/mac.py: (MacPort.default_child_processes):
8:42 PM Changeset in webkit [199572] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r199567.

performance regression on kraken on macbook*

Reverted changeset:

"CopiedBlock should be 8kB"
​https://bugs.webkit.org/show_bug.cgi?id=156610
​http://trac.webkit.org/changeset/199567

5:45 PM Changeset in webkit [199571] by Brent Fulgham
  • 20 edits in trunk

Make <a download> a runtime enabled option
​https://bugs.webkit.org/show_bug.cgi?id=156583
<rdar://problem/25733449>

Reviewed by Alex Christensen.

Source/WebCore:

Mark the download attribute interface as EnabledAtRuntime=DownloadAttribute.
Add DownloadAttribute runtime flag getter and setter.

  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::fetchAPIEnabled):
(WebCore::RuntimeEnabledFeatures::setDownloadAttributeEnabled):
(WebCore::RuntimeEnabledFeatures::downloadAttributeEnabled):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

  • html/HTMLAnchorElement.idl:

Source/WebKit/mac:

Add a download attribute runtime flag based on preferences.
Disable the download attribute by default.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences setFetchAPIEnabled:]):
(-[WebPreferences downloadAttributeEnabled]):
(-[WebPreferences setDownloadAttributeEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged]): Set the runtime flag properly
based on the user preferences.

Source/WebKit2:

Add a download attribute runtime flag based on preferences.
Disable the download attribute by default.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesGetFetchAPIEnabled):
(WKPreferencesSetDownloadAttributeEnabled):
(WKPreferencesGetDownloadAttributeEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setDownloadAttributeEnabled):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
5:30 PM Changeset in webkit [199570] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Cleanup: Run all Content Security Policy 1.1 tests by default

It is now feasible to run all tests in directory LayoutTests/http/tests/security/contentSecurityPolicy/1.1
by default following r199172, r199525 and r199538. There is still work to be done to make all CSP 1.1 tests
pass. The number of 1.1 tests that either fail or timeout now represent a minority of all 1.1 tests.

  • TestExpectations: Remove all CSP tests marked PASS, remove the entry to skip all tests in directory

LayoutTests/http/tests/security/contentSecurityPolicy/1.1, and sort the list of failing tests by
bug number, filename.

5:23 PM Changeset in webkit [199569] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (r158956): Remove vestigial range code in FileReaderLoader class after removing ENABLE(STREAM)
<​http://webkit.org/b/156609>

Reviewed by Brent Fulgham.

This code was left behind when ENABLE(STREAM) was removed in
November 2013.

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::FileReaderLoader): Remove
initializers.
(WebCore::FileReaderLoader::start): Remove code that uses
m_hasRange, which is always false.
(WebCore::FileReaderLoader::didReceiveResponse): Ditto.

  • fileapi/FileReaderLoader.h:

(WebCore::FileReaderLoader): Remove unused instance variables.

5:01 PM Changeset in webkit [199568] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit2

Build fix after r199554.

  • CMakeLists.txt:
  • PlatformMac.cmake:
4:33 PM Changeset in webkit [199567] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

CopiedBlock should be 8kB
​https://bugs.webkit.org/show_bug.cgi?id=156610

Reviewed by Michael Saboff.

On Mac Pro, this is:

15% faster on kraken-audio-beat-detection

5% faster on v8-splay

Hopefully, this will be OK on MacBook* bots as well.

32kB is the full size of L1 cache on x86. So, allocating and zero-filling
a 32kB CopiedBlock would basically flush the L1 cache. We can ameliorate
this problem by using smaller blocks -- or, if that doesn't work, we can
use larger blocks to amortize the cost.

  • heap/CopiedBlock.h:
4:08 PM Changeset in webkit [199566] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

PolymorphicAccess should try to generate a stub only once
​https://bugs.webkit.org/show_bug.cgi?id=156555

Reviewed by Geoffrey Garen.

This changes the PolymorphicAccess heuristics to reduce the amount of code generation even
more than before. We used to always generate a monomorphic stub for the first case we saw.
This change disables that. This change also increases the buffering countdown to match the
cool-down repatch count. This means that we will allow for ten slow paths for adding cases,
then we will generate a stub, and then we will go into cool-down and the repatching slow
paths will not even attempt repatching for a while. After we emerge from cool-down - which
requires a bunch of slow path calls - we will again wait for ten slow paths to get new
cases. Note that it only takes 13 cases to cause the stub to give up on future repatching
entirely. Also, most stubs don't ever get to 10 cases. Therefore, for most stubs this change
means that each IC will repatch once. If they make it to two repatching, then the likelihood
of a third becomes infinitesimal because of all of the rules that come into play at that
point (the size limit being 13, the fact that we go into exponential cool-down every time we
generate code, and the fact that if we have lots of self cases then we will create a
catch-all megamorphic load case).

This also undoes a change to the megamorphic optimization that I think was unintentional.
As in the change that originally introduced megamorphic loads, we want to do this only if we
would otherwise exhaust the max size of the IC. This is because megamorphic loads are pretty
expensive and it's best to use them only if we know that the alternative is giving up on
caching.

This is neutral on JS benchmarks, but looks like it's another speed-up for page loading.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::canBeReplacedByMegamorphicLoad):
(JSC::AccessCase::canReplace):
(JSC::AccessCase::dump):
(JSC::PolymorphicAccess::regenerate):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::StructureStubInfo):

  • runtime/Options.h:
4:04 PM Changeset in webkit [199565] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: suppress automatic text correction in pages controlled by automation
​https://bugs.webkit.org/show_bug.cgi?id=156599
<rdar://problem/25712646>

Reviewed by Timothy Hatcher.

If the page is controlled by automation, then automatic text corrections will
cause unexpected behaviors by nondeterministically modifying text inserted by
a test. Just pretend these behaviors are disabled if controlled by automation.

  • WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:

(WebKit::WebEditorClient::isAutomaticQuoteSubstitutionEnabled):
(WebKit::WebEditorClient::isAutomaticDashSubstitutionEnabled):
(WebKit::WebEditorClient::isAutomaticTextReplacementEnabled):
(WebKit::WebEditorClient::isAutomaticSpellingCorrectionEnabled):

3:59 PM Changeset in webkit [199564] by mark.lam@apple.com
  • 1310 edits in trunk/LayoutTests

Add svn:eol-style=LF to LayoutTests/ietestcenter/Javascript/TestCases/ files.
​https://bugs.webkit.org/show_bug.cgi?id=156588

Rubber-stamped by Geoffrey Garen.

These files are currently using CRs in their eols. As a result, the EWS bots
will always fail to apply a patch if the patch touches one these files. Adding
svn:eol-style=LF to them should resolve the issue.

Specifically, I ran the following command:
$ svn propset svn:eol-style LF LayoutTests/ietestcenter/Javascript/TestCases/*

Note: this patch will touch 1306 files (not including this ChangeLog).

  • ietestcenter/Javascript/TestCases/10.4.2-1-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.4.2-1-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.4.2-1-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.4.2-1-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.4.2-1-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.4.2-2-c-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.return.inner):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.6-10-c-ii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.6-10-c-ii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.6-12-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.6-12-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/10.6-13-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.6-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/10.6-6-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/10.6-6-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/10.6-6-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/10.6-6-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.1.4-0.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.1.5-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.1.5-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.1.5_4-4-a-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.1.5_4-4-a-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.1.5_4-4-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_4-4-b-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_4-4-c-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_4-4-c-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_4-4-d-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_4-4-d-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_4-4-d-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_4-4-d-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_5-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_6-3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_6-3-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_7-3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.1.5_7-3-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.13.1-1-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.13.1-1-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.13.1-1-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.13.1-1-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.13.1-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.4.1-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-2-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-2-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-2-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-2-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-2-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-3-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-3-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.getter):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-4.a-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/11.4.1-5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.f):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-0-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.f.innerf):
(ES5Harness.registerTest.test.testcase.f):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-0-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.f.innerf):
(ES5Harness.registerTest.test.testcase.f):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-0-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.f.innerf):
(ES5Harness.registerTest.test.testcase.f):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-0-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.with.f):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-0-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-0-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-0-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.f.innerf):
(ES5Harness.registerTest.test.testcase.f):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-2-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-2-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.10-7-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.f.innerf):
(ES5Harness.registerTest.test.testcase.f):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.f.innerf):
(ES5Harness.registerTest.test.testcase.f):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.f.innerf):
(ES5Harness.registerTest.test.testcase.f):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.capturedFoo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.o.foo):
(ES5Harness.registerTest.test.testcase.catch.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.o.foo):
(ES5Harness.registerTest.test.testcase.catch.foo):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.14-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.f.innerf):
(ES5Harness.registerTest.test.testcase.f):
(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.2.1-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/12.2.1-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.10.6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.10.7.1-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.10.7.2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.10.7.3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.10.7.4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.10.7.5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.12-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12-0-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12-0-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-0-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-0-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-0-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-0-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-0-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-0-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-0-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g1-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g1-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g1-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g1-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g2-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g2-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g2-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g2-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g6-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g6-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g6-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g6-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g6-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g6-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.1.1-g6-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.2-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.2-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.2-0-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-0-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precodition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-11-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-5-a-i-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-5-b-i-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-6-a-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-6-a-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-6-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-6-b-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-6-b-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-6-b-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-7-a-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-8-a-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-8-a-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-8-a-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-8-a-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3-8-a-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3_2-2-b-i-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toJSON):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3_2-2-b-i-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toJSON):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3_2-2-b-i-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toJSON):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3_2-3-a-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3_2-3-a-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3_2-3-a-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3_4-1-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3_4-1-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.12.3_4-1-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.10-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.10-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.10-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.10-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.11-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-21.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-22.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-23.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-24.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-25.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-26.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-27.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.11-4-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.12-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-21.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-22.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-23.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-24.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-25.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-26.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-27.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.12-3-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.13-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-0-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-21.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.13-2-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.14-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-1-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-1-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-1-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-1-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-1-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-2-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-2-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.Array):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-2-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-2-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-2-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-3-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-3-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-3-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.testArgs2):
(ES5Harness.registerTest.test.testcase.testArgs3):
(ES5Harness.registerTest.test.testcase.testArgs4):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.14-3-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.2-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-0-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.base):
(ES5Harness.registerTest.test.testcase.derived):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.2-2-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.3-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-2-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-100.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-101.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-102.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-103.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-104.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-105.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-106.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-107.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-108.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-109.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-110.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-111.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-112.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-113.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-114.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-115.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-116.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-117.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-118.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-119.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-120.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-121.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-122.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-123.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-124.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-125.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-126.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-127.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-128.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-129.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-130.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-131.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-132.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-133.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-134.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-135.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-136.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-137.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-138.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-139.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-140.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-141.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-142.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-143.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-144.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-145.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-146.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-147.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-148.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-149.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-150.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-151.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-152.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-153.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-154.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-155.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-156.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-157.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-158.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-159.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-160.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-161.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-162.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-163.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-164.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-165.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-166.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-167.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-168.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-169.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-170.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-171.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-172.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-173.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-174.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-175.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-176.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-177.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-178.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-179.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-180.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-182.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-185.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-186.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-187.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-188.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-189.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-190.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-191.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-192.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-193.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-194.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-195.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-196.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-197.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-198.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-199.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-200.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-201.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-202.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-203.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-204.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-205.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-206.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-207.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-208.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-209.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-21.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-210.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-211.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-212.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-213.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-214.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-215.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-216.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-217.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-218.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-219.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-22.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-220.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-221.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-222.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-23.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-24.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-25.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-26.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-27.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-28.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-29.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.getter):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-30.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-31.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-32.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-33.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-34.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-35.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-36.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-37.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-38.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-39.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-40.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-41.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-42.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-43.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-44.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-45.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-46.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-47.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-48.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-49.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-50.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-51.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-52.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-53.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-54.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-55.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-56.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-57.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-58.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-59.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-60.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-61.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-62.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-63.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-64.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-65.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-66.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-67.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-68.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-69.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-70.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-71.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-72.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-73.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-74.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-75.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-76.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-77.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-78.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-79.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-80.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-81.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-82.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-84.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-85.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-86.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-88.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-89.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-90.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-91.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-92.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-93.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-94.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-96.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-97.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-98.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-99.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.4-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.4-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.4-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.4-4-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.5-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.5-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.5-2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.base):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.5-3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.base):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.5-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.base):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.6-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.getter):
(ES5Harness.registerTest.test.testcase.desc.get getter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.desc.set setter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.desc.set setter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.desc.set setter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.desc.set setter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.desc.set setter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.getter):
(ES5Harness.registerTest.test.testcase.desc.get getter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.setter):
(ES5Harness.registerTest.test.testcase.desc.set setter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.setter):
(ES5Harness.registerTest.test.testcase.desc.set setter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.desc.get getter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.desc.get getter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.desc.get getter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.desc.get getter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-3-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.desc.get getter):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.sameDataDescriptorValues):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.6-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.sameAccessorDescriptorValues):
(ES5Harness.registerTest.test.testcase.desc):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.7-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.7-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.7-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.8-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.8-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.8-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.9-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.2.3.9-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.2.3.9-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.2.1-11-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.3.2.1-11-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.3.2.1-11-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.3.3.2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.3.4.5-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-13.b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-13.b-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-13.b-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-13.b-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-13.b-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-15-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-15-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-16-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-2-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-2-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-2-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-2-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-2-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-2-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-2-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-2-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-8-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-8-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-9-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.3.4.5-9-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.3.2-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.3.2-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.3.2-0-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.3.2-0-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.3.2-0-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.3.2-0-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.3.2-0-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.14-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-1-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-10-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-10-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var.Con):
(ES5Harness.registerTest.test.testcase.get var):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var.Con):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.try.):
(ES5Harness.registerTest.test.testcase.try.get var):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.set var.Con):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.func):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.Con):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var.Con):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.try.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.Con):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get Object):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-2-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.Con):
(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.length.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.length.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-21.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.length.toString):
(ES5Harness.registerTest.test.testcase.obj.length.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-22.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.length.toString):
(ES5Harness.registerTest.test.testcase.obj.length.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-23.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.proto.valueOf):
(ES5Harness.registerTest.test.testcase.Con):
(ES5Harness.registerTest.test.testcase.child.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-24.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-25.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-28.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-29.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.i.Array.prototype.indexOf.call.):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.i.Array.prototype.indexOf.call.):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-4-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-21.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-22.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-23.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.toString):
(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-24.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.toString):
(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-25.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.proto.valueOf):
(ES5Harness.registerTest.test.testcase.Con):
(ES5Harness.registerTest.test.testcase.child.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-28.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-29.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var.fromIndex.valueOf):
(ES5Harness.registerTest.test.testcase.get var):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-30.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var.fromIndex.valueOf):
(ES5Harness.registerTest.test.testcase.get var):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-31.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-32.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-33.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-5-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-6-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-7-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-7-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-7-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-7-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-7-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-7-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-8-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-8-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-8-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-8-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-8-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-8-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-8-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj1.toString):
(ES5Harness.registerTest.test.testcase.obj2.toString):
(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-a-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-a-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get Object):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-a-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get Object):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-a-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.targetObj):
(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-a-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.targetObj):
(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-a-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-a-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-a-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get try):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-24.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-25.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.func):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-26.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.func):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-27.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.func):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.try.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.try.):
(ES5Harness.registerTest.test.testcase.try.get return):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-i-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-ii-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-iii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.14-9-b-iii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get Object):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.15-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-1-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var.Con):
(ES5Harness.registerTest.test.testcase.get var):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var.Con):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.try.):
(ES5Harness.registerTest.test.testcase.try.get var):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.set var.Con):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.targetObj):
(ES5Harness.registerTest.test.testcase.arguments.2):
(ES5Harness.registerTest.test.testcase.func):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.Con):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var.Con):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.try.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.Con):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-2-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.Con):
(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.length.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.length.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-21.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.length.toString):
(ES5Harness.registerTest.test.testcase.obj.length.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-22.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.length.toString):
(ES5Harness.registerTest.test.testcase.obj.length.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-23.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.proto.valueOf):
(ES5Harness.registerTest.test.testcase.Con):
(ES5Harness.registerTest.test.testcase.child.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-24.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-25.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-26.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-27.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-28.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-29.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.i.Array.prototype.lastIndexOf.call.):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.toString):
(ES5Harness.registerTest.test.testcase.i.Array.prototype.lastIndexOf.call.):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-4-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-15.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-17.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-21.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-22.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test.testcase.targetObj):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-23.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.toString):
(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-24.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.toString):
(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-25.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.proto.valueOf):
(ES5Harness.registerTest.test.testcase.Con):
(ES5Harness.registerTest.test.testcase.child.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-28.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-29.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var.fromIndex.valueOf):
(ES5Harness.registerTest.test.testcase.get var):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-30.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var.fromIndex.valueOf):
(ES5Harness.registerTest.test.testcase.get var):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-31.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-32.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-33.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-5-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-6-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-6-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-6-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-6-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-6-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-6-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-7-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-7-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-7-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-7-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj1.toString):
(ES5Harness.registerTest.test.testcase.obj2.toString):
(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.obj.toString):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-a-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-a-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get Object):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-a-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get Object):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-a-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.targetObj):
(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-a-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.targetObj):
(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-a-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-a-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-a-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.fromIndex.valueOf):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-2.js: Added property svn:eol-style.
  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-24.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-25.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.func):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-26.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.func):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-27.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.func):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-4.js: Added property svn:eol-style.
  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.try.):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-6.js: Added property svn:eol-style.
  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-i-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-ii-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-iii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-8-b-iii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get Object):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-9-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.15-9-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.):
(ES5Harness.registerTest.test.testcase.get var):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.16-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-5-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-5-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-5-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-7-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-7-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-7-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-7-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-7-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-7-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-7-c-ii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-7-c-ii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-7-c-ii-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.valueOf):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.toString):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.16-8-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.17-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-4-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-5-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-5-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-5-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-7-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-7-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-7-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-7-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-7-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-7-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-7-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-7-c-ii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-7-c-ii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-7-c-ii-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.valueOf):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.toString):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.17-8-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.18-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-5-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-5-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-5-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-7-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-7-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-7-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-7-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-7-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-7-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-7-c-ii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-7-c-ii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.bCalled.false.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.valueOf):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.toString):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.18-8-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.19-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-5-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-5-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-5-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-5-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.toString):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-5-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-8-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-8-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-8-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-8-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-8-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-8-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-8-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-8-c-ii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-8-c-ii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.bCalled.false.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-8-c-iii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-9-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-9-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-9-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.19-9-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.20-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-10-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-10-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-10-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-10-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-5-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-5-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-5-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-6-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-6-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-6-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-6-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-6-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-6-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.valueOf):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-6-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.toString):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-6-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-9-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-9-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-9-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-9-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-9-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-9-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-9-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-9-c-ii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-9-c-ii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.bCalled.false.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.20-9-c-iii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.21-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-10-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-10-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-10-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-10-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-10-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-10-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-10-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-10-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-5-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-5-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-5-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.valueOf):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-5-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.toString):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-5-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-7-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-7-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-7-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-7-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-7-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-7-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.valueOf):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-7-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.toString):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-7-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-7-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-8-c-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-8-c-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-8-c-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-c-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-c-ii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-c-ii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-c-ii-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.21-9-c-ii-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.22-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-10-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-10-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-10-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-10-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-10-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-10-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-10-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-10-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-4-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-5-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-5-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-5-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-5-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.valueOf):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-5-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.toString):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-5-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-7-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-7-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-7-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-7-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-7-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-7-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.valueOf):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-7-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.o.toString):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-7-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-7-9.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.foo):
(ES5Harness.registerTest.test.testcase.cb):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-8-c-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-8-c-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-8-c-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-b-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-c-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-c-ii-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-c-ii-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-c-ii-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.4.22-9-c-ii-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test.testcase.callbackfn):
(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.4.5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.5.1-3.d-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.5.1-3.d-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.5.1-3.d-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.5.1-5-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.5.1-5-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.4.20-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.4.20-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-1-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-1-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-1-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-1-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-1-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-1-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-1-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-10.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-11.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-12.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-13.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-14.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-16.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-18.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-19.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-20.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-21.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-22.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-24.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-27.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-28.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-29.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-30.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-32.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-34.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-35.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-36.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-37.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-38.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-39.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-40.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-41.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-42.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-43.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-44.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-45.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-46.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-47.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-48.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-49.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-50.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-51.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-52.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-53.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-54.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-55.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-56.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-57.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-58.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-59.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-60.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.4.20-4-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-1-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-1-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-3-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-3-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-3-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-3-5.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-3-6.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-3-7.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-3-8.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-7-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-7-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-7-3.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.5.5.5.2-7-4.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.7.3-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.7.3-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.7.3.1-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.7.3.1-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.7.4-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.9.4.4-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.9.4.4-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.9.5.43-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.9.5.43-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

  • ietestcenter/Javascript/TestCases/15.9.5.44-0-1.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.9.5.44-0-2.js: Added property svn:eol-style.

(ES5Harness.registerTest.test):
(ES5Harness.registerTest.precondition):

3:51 PM Changeset in webkit [199563] by andersca@apple.com
  • 2 edits in trunk/Tools

Another build fix attempt.

  • MiniBrowser/mac/WK2BrowserWindowController.m:
3:47 PM Changeset in webkit [199562] by achristensen@apple.com
  • 5 edits in trunk/Source/WebCore

Build fix after r199549.
​https://bugs.webkit.org/show_bug.cgi?id=156580

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformWin.cmake:

KillRingNone.cpp is indeed platform-specific. KillRingMac.mm is used instead only on Mac.

3:35 PM Changeset in webkit [199561] by dino@apple.com
  • 4 edits
    2 adds in trunk

CrashTracer: com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::CachedResource::addClientToSet + 27
​https://bugs.webkit.org/show_bug.cgi?id=156602
<rdar://problem/18921091>

Reviewed by Simon Fraser.

Source/WebCore:

The CSS property list-style-image is inherited, so a transition on a parent
might cause a transition on a child. On that child, the value might be between
two generated crossfade images which haven't yet resolved, causing a crash.

Test: transitions/crossfade-transition.html

  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::blend): Return null if there are no cached images.

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc): If we don't have an actual image to blend between, fall
out to the default case.

LayoutTests:

Tests that an animation between two inherited crossfade elements will not crash.

  • transitions/crossfade-transition-expected.txt: Added.
  • transitions/crossfade-transition.html: Added.
3:26 PM Changeset in webkit [199560] by andersca@apple.com
  • 2 edits in trunk/Tools

Fix build.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):

3:14 PM Changeset in webkit [199559] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the Yosemite build.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::runOpenPanel):

3:07 PM Changeset in webkit [199558] by andersca@apple.com
  • 27 edits
    3 copies
    2 moves in trunk

[Mac] Add API for open panel handling to WKWebView
​https://bugs.webkit.org/show_bug.cgi?id=137759
rdar://problem/23278623

Reviewed by Tim Horton.

Source/WebKit2:

Based on a patch by Brian Michel.

  • Shared/API/Cocoa/WebKit.h:

Import WKOpenPanelParameters.h.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):
Create a WKOpenPanelParameters for Type::OpenPanelParameters.

  • UIProcess/API/APIOpenPanelParameters.cpp: Renamed from Source/WebKit2/Shared/WebOpenPanelParameters.cpp.
  • UIProcess/API/APIOpenPanelParameters.h: Renamed from Source/WebKit2/Shared/WebOpenPanelParameters.h.

Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::runOpenPanel):
Change this to take a SecurityOriginData.

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKOpenPanelParametersRef.cpp:

(WKOpenPanelParametersGetTypeID):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.

  • UIProcess/API/C/WKOpenPanelResultListener.cpp:

(filePathsFromFileURLs):
(WKOpenPanelResultListenerChooseFiles):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.

  • UIProcess/API/Cocoa/WKOpenPanelParameters.h: Added.
  • UIProcess/API/Cocoa/WKOpenPanelParameters.mm: Added.

(-[WKOpenPanelParameters allowsMultipleSelection]):
(-[WKOpenPanelParameters _apiObject]):

  • UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h:

Add a WKOpenPanelParameters class which contains information about a file upload control.

  • UIProcess/API/Cocoa/WKUIDelegate.h:

Add new delegate method.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
Record whether the UI delegate implements the new delegate method.

(WebKit::UIDelegate::UIClient::runOpenPanel):
Invoke the new delegate method.

  • UIProcess/PageClient.h:

(WebKit::PageClient::handleRunOpenPanel):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.

  • UIProcess/WebOpenPanelResultListenerProxy.cpp:

(WebKit::WebOpenPanelResultListenerProxy::chooseFiles):

  • UIProcess/WebOpenPanelResultListenerProxy.h:

Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runOpenPanel):

  • UIProcess/WebPageProxy.h:

Change this to take a SecurityOriginData.

  • UIProcess/WebPageProxy.messages.in:

Change RunOpenPanel to take a SecurityOriginData.

  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::handleRunOpenPanel):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _showRunOpenPanel:resultListener:]):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.

  • UIProcess/ios/forms/WKFileUploadPanel.h:
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.

(-[WKFileUploadPanel presentWithParameters:resultListener:]):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.

  • WebKit2.xcodeproj/project.pbxproj:

Add new file.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::runOpenPanel):
Pass the security origin of the frame along.

Tools:

Have MiniBrowser implement the new delegate method.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):

2:54 PM Changeset in webkit [199557] by jiewen_tan@apple.com
  • 27 edits
    2 moves
    3 deletes in trunk

Unreviewed, rolling out r199554.

The change breaks Yosemite Release/Debug build

Reverted changeset:

"[Mac] Add API for open panel handling to WKWebView"
​https://bugs.webkit.org/show_bug.cgi?id=137759
​http://trac.webkit.org/changeset/199554

2:46 PM Changeset in webkit [199556] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Web Inspector: Add a JavaScript Formatting test for template strings
​https://bugs.webkit.org/show_bug.cgi?id=156600

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-14
Reviewed by Brian Burg.

Source/WebInspectorUI:

  • Tools/Formatting/index.html:

LayoutTests:

  • inspector/formatting/formatting-javascript-expected.txt:
  • inspector/formatting/formatting-javascript.html:
  • inspector/formatting/resources/javascript-tests/template-strings-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/template-strings.js: Added.
2:37 PM Changeset in webkit [199555] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Websites/webkit.org

Publish the Web-exposed feature policy on webkit.org.
​https://bugs.webkit.org/show_bug.cgi?id=156552

Patch by Edward O'Connor <Theresa O'Connor> on 2016-04-14
Reviewed by Timothy Hatcher.

  • feature-policy.md: Added.
2:21 PM Changeset in webkit [199554] by andersca@apple.com
  • 27 edits
    3 copies
    2 moves in trunk

[Mac] Add API for open panel handling to WKWebView
​https://bugs.webkit.org/show_bug.cgi?id=137759
rdar://problem/23278623

Reviewed by Tim Horton.

Source/WebKit2:

Based on a patch by Brian Michel.

  • Shared/API/Cocoa/WebKit.h:

Import WKOpenPanelParameters.h.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):
Create a WKOpenPanelParameters for Type::OpenPanelParameters.

  • UIProcess/API/APIOpenPanelParameters.cpp: Renamed from Source/WebKit2/Shared/WebOpenPanelParameters.cpp.
  • UIProcess/API/APIOpenPanelParameters.h: Renamed from Source/WebKit2/Shared/WebOpenPanelParameters.h.

Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::runOpenPanel):
Change this to take a SecurityOriginData.

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKOpenPanelParametersRef.cpp:

(WKOpenPanelParametersGetTypeID):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.

  • UIProcess/API/C/WKOpenPanelResultListener.cpp:

(filePathsFromFileURLs):
(WKOpenPanelResultListenerChooseFiles):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.

  • UIProcess/API/Cocoa/WKOpenPanelParameters.h: Added.
  • UIProcess/API/Cocoa/WKOpenPanelParameters.mm: Added.

(-[WKOpenPanelParameters allowsMultipleSelection]):
(-[WKOpenPanelParameters _apiObject]):

  • UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h:

Add a WKOpenPanelParameters class which contains information about a file upload control.

  • UIProcess/API/Cocoa/WKUIDelegate.h:

Add new delegate method.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
Record whether the UI delegate implements the new delegate method.

(WebKit::UIDelegate::UIClient::runOpenPanel):
Invoke the new delegate method.

  • UIProcess/PageClient.h:

(WebKit::PageClient::handleRunOpenPanel):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.

  • UIProcess/WebOpenPanelResultListenerProxy.cpp:

(WebKit::WebOpenPanelResultListenerProxy::chooseFiles):

  • UIProcess/WebOpenPanelResultListenerProxy.h:

Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runOpenPanel):

  • UIProcess/WebPageProxy.h:

Change this to take a SecurityOriginData.

  • UIProcess/WebPageProxy.messages.in:

Change RunOpenPanel to take a SecurityOriginData.

  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::handleRunOpenPanel):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _showRunOpenPanel:resultListener:]):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.

  • UIProcess/ios/forms/WKFileUploadPanel.h:
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]):
Change chooseFiles to take a Vector<String> instead of an API::Array of URLs.

(-[WKFileUploadPanel presentWithParameters:resultListener:]):
Rename WebKit::WebOpenPanelParameters to API::OpenPanelParameters.

  • WebKit2.xcodeproj/project.pbxproj:

Add new file.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::runOpenPanel):
Pass the security origin of the frame along.

Tools:

Have MiniBrowser implement the new delegate method.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):

2:14 PM Changeset in webkit [199553] by tonikitoo@webkit.org
  • 6 edits
    6 adds
    2 deletes in trunk

Allow listbox content and scrollbar to intrude padding area.
​https://bugs.webkit.org/show_bug.cgi?id=128489

Reviewed by Myles C. Maxfield.

Source/WebCore:

Originally when the RenderListBox::controlClipRect method was implemented (see [1]), it used
to allow its content (<option>'s) to intrude padding to get rendered. Overlay scrollbars were also
allowed to paint over the padding area, if necessary.

[2] changed this behavior to restrict list-box'es content within the content box rect (excluding padding and border).

This had two consequences:
1) it made WebKit disallow list-box' content to intrude the padding area, diverging from other vendors.
like Firefox and Chrome.
2) Since overlay scrollbar might get painted over the padding area, if any, [2] could result
in the scrollbar being clipped out if padding-right is set (or padding-left in case of RTL content).

Patch changed WebKit back so that it allows list-box' content and overlay scrollbars to intrude the
padding area, matching other browsers vendors

[1] ​https://trac.webkit.org/changeset/18819/trunk/WebCore/rendering/RenderListBox.cpp
[2] ​https://trac.webkit.org/changeset/19037/trunk/WebCore/rendering/RenderListBox.cpp

Tests: fast/forms/listbox-selection-3.html

fast/forms/listbox-padding-clip-selected.html
fast/forms/listbox-padding-clip-expected-mismatch.html (renamed from listbox-padding-clip-overlay-expected.html)
fast/forms/listbox-padding-clip-overlay-expected-mismatch.html (renamed from listbox-padding-clip-expected.html)

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::numVisibleItems): changed to allow list-box items to get rendered on the padding-bottom area.
This matches Firefox and Chrome.
(WebCore::RenderListBox::listIndexAtOffset): relax the check for a given list-box item at a specific offset in the vertical axis.
This means if an list-box item has its content painted into the padding-bottom area, it will be actionable by mouse clicking.
This matches Firefox and Chrome.
(WebCore::RenderListBox::controlClipRect): clips list-box content against the padding box rect rather than the content box rect,
to allow its list-box items' content intrude the padding area.
This matches Firefox and Chrome.

LayoutTests:

  • fast/forms/listbox-selection-3-expected.txt: Added.
  • fast/forms/listbox-selection-3.html: Added.
  • fast/forms/listbox-padding-clip-selected.html: Added.
  • fast/forms/listbox-padding-clip-selected-expected.html: Added.
  • fast/forms/listbox-padding-clip-expected-mismatch.html: Renamed from listbox-padding-clip-overlay-expected.html.
  • fast/forms/listbox-padding-clip-overlay-expected-mismatch.html: Renamed from listbox-padding-clip-expected.html.
2:09 PM Changeset in webkit [199552] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

Collapsed border cache invalidation can lead to O(n2) during style resolve
​https://bugs.webkit.org/show_bug.cgi?id=156570

Reviewed by Darin Adler.

RenderTable::invalidateCollapsedBorders traverses all cells. It is called when table cell border changes.
This can result in O(n2) during style resolve.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):
(WebCore::RenderTable::invalidateCollapsedBorders):

For cell border style change invalidate the hasEmptyCollapsedBorder bits only for the neighbouring cells.
They are the only ones that can be affected.

  • rendering/RenderTable.h:

(WebCore::RenderTable::collapsedBordersAreValid):
(WebCore::RenderTable::collapsedEmptyBorderIsPresent):
(WebCore::RenderTable::currentBorderValue):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::styleDidChange):

1:49 PM Changeset in webkit [199551] by Manuel Rego Casasnovas
  • 4 edits
    2 adds in trunk

[css-grid] Implement CSSGridTemplateAreasValue::equals
​https://bugs.webkit.org/show_bug.cgi?id=156578

Reviewed by Darin Adler.

Source/WebCore:

This was causing an infinite loop setting grid-template-areas
from JavaScript.

The reason was that CSSGridTemplateAreasValue needs
an specific implementation of equals() method.

Test: fast/css-grid-layout/grid-template-areas-infinite-loop.html

  • css/CSSGridTemplateAreasValue.cpp:

(WebCore::CSSGridTemplateAreasValue::equals):

  • css/CSSGridTemplateAreasValue.h:

LayoutTests:

  • fast/css-grid-layout/grid-template-areas-infinite-loop-expected.txt: Added.
  • fast/css-grid-layout/grid-template-areas-infinite-loop.html: Added.
1:22 PM Changeset in webkit [199550] by jonlee@apple.com
  • 2 edits in trunk/Tools

Update Animometer plan
​https://bugs.webkit.org/show_bug.cgi?id=156569

Reviewed by Alex Christensen.

  • Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan: Update to r199328. Includes update to screen

resolution, starting with complexity of 1, and fixing SVG, multiply, and text tests.

12:02 PM Changeset in webkit [199549] by Brent Fulgham
  • 7 edits in trunk/Source/WebCore

[CMake] Clean up CMake files
​https://bugs.webkit.org/show_bug.cgi?id=156580

Reviewed by Alex Christensen.

Revise the various CMake input files to reduce the amount of duplicated file references in
the various ports.

  • CMakeLists.txt:
  • PlatformAppleWin.cmake:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformWin.cmake:
  • PlatformWinCairo.cmake:
11:27 AM Changeset in webkit [199548] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

RenderMathMLOperator: Add helper function to retrieve italic correction
​https://bugs.webkit.org/show_bug.cgi?id=156572

Reviewed by Darin Adler.

No new tests, the helper function will only be used in bug 153918.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::italicCorrection): Return the italic correction from the MATH table if it's a large operator.

  • rendering/mathml/RenderMathMLOperator.h: Declare italicCorrection.
11:23 AM Changeset in webkit [199547] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

RenderMathMLOperator: Move glyph measuring helper functions outside the class
​https://bugs.webkit.org/show_bug.cgi?id=156571

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-14
Reviewed by Darin Adler.

No new tests, this is just a simple refactoring to prepare the patch
for bug 156542, without any behavior change.

  • rendering/mathml/RenderMathMLOperator.cpp: MATHML_OPDICT_SIZE was removed in bug 152242, so no need to undef it.

(WebCore::boundsForGlyph): Static inline helper function moved from the RenderMathMLOperator class.
(WebCore::heightForGlyph): Ditto.
(WebCore::advanceWidthForGlyph): Ditto and renamed.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Rename advanceForGlyph.
(WebCore::RenderMathMLOperator::findStretchyData): Ditto.
(WebCore::RenderMathMLOperator::updateStyle): Ditto.
(WebCore::RenderMathMLOperator::paintGlyph): Ditto.
(WebCore::RenderMathMLOperator::paint): Ditto.
(WebCore::RenderMathMLOperator::trailingSpaceError): Ditto.
(WebCore::RenderMathMLOperator::setOperatorProperties): Deleted.
(WebCore::RenderMathMLOperator::boundsForGlyph): Deleted.
(WebCore::RenderMathMLOperator::heightForGlyph): Deleted.
(WebCore::RenderMathMLOperator::advanceForGlyph): Deleted.

  • rendering/mathml/RenderMathMLOperator.h:
11:21 AM Changeset in webkit [199546] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Set some RenderMathMLOperator members as final
​https://bugs.webkit.org/show_bug.cgi?id=156574

Reviewed by Darin Adler.

No new tests, this is only a simple refactoring without behavior change.

  • rendering/mathml/RenderMathMLOperator.h: Replace "override" with "final" for some members.
11:16 AM Changeset in webkit [199545] by mark.lam@apple.com
  • 13 edits
    3 adds in trunk

Update treatment of invoking RegExp.prototype methods on RegExp.prototype.
​https://bugs.webkit.org/show_bug.cgi?id=155922

Reviewed by Keith Miller.

Source/JavaScriptCore:

According to the TC39 committee, when invoking the following RegExp.prototype
methods on the RegExp.prototype:

  1. RegExp.prototype.flags yields ""
  2. RegExp.prototype.global yields undefined
  3. RegExp.prototype.ignoreCase yields undefined
  4. RegExp.prototype.multiline yields undefined
  5. RegExp.prototype.unicode yields undefined
  6. RegExp.prototype.source yields "(?:)"
  7. RegExp.prototype.sticky yields undefined
  8. RegExp.prototype.toString() yields "/(?:)/"

and RegExp.prototype is still NOT an instance of RegExp. The above behavior
changes is a special dispensation applicable only to RegExp.prototype. The ES6
spec of throwing errors still applies if those methods are applied to anything =
else that is not a RegExp object.

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoGetterGlobal):
(JSC::regExpProtoGetterIgnoreCase):
(JSC::regExpProtoGetterMultiline):
(JSC::regExpProtoGetterSticky):
(JSC::regExpProtoGetterUnicode):
(JSC::regExpProtoGetterFlags):
(JSC::regExpProtoGetterSource):

  • Implemented new behavior.
  • tests/es6/miscellaneous_built-in_prototypes_are_not_instances.js:

(test):

  • Updated to match current kangax test.

LayoutTests:

  • fast/regex/script-tests/toString.js:
  • fast/regex/toString-expected.txt:
  • ietestcenter/Javascript/15.10.7.1-1-expected.txt:
  • ietestcenter/Javascript/TestCases/15.10.7.1-1.js:

(ES5Harness.registerTest.test):

  • js/kde/RegExp-expected.txt:
  • js/kde/script-tests/RegExp.js:
  • js/pic/cached-named-property-getter.html:
  • js/regexp-flags-expected.txt:
  • js/script-tests/regexp-flags.js:
  • updated test behaviors in some cases, and rebased results as needed.
  • js/regress/regexp-prototype-is-not-instance-expected.txt: Added.
  • js/regress/regexp-prototype-is-not-instance.html: Added.
  • js/regress/script-tests/regexp-prototype-is-not-instance.js: Added.
  • Tests new RegExp.prototype method behaviors.
11:04 AM Changeset in webkit [199544] by fred.wang@free.fr
  • 6 edits
    1 move
    3 adds
    1 delete in trunk

Ensure that RenderMathMLOperator::stretchTo functions are called with stretchy operators that have the correct direction
​https://bugs.webkit.org/show_bug.cgi?id=156542

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-14
Reviewed by Darin Adler.

Source/WebCore:

In the RenderMathMLUnderOver refactoring (r199293), we avoided doing a
horizontal stretchTo call for non-stretchy operators. Here we do the
same for RenderMathMLRow and avoid doing a vertical stretchTo call for
horizontal or non-stretchy operators. We also add appropriate ASSERT in
the RenderMathMLOperator::stretchTo functions. To avoid failing tests
with DOM/style update, we make our updates a bit stricter. Hopefully,
we could manage such things better in the future (bug 156536).

Tests: mathml/presentation/row-nonstretchy-or-horizontal.html

mathml/presentation/underover-nonstretchy-or-vertical.html

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::parseAttribute): Replace setOperatorFlagAndScheduleLayoutIfNeeded with a stronger rendering update.
Also ensure that this is done when the lspace/rspace attributes change.
This avoids breaking mathml/presentation/mo-lspace-rspace-dynamic.html

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::stretchTo): Add ASSERT to ensure that it is only called with stretchy operators that have the correct direction.
(WebCore::RenderMathMLOperator::styleDidChange): Do a stronger rendering update when the style changes.
This avoids breaking mathml/presentation/style-changed.html
(WebCore::RenderMathMLOperator::setOperatorFlagAndScheduleLayoutIfNeeded): Deleted.

  • rendering/mathml/RenderMathMLOperator.h: Make updateFromElement public so that it can be called from MathMLTextElement::parseAttribute

Remove setOperatorFlagAndScheduleLayoutIfNeeded and declare styleDidChange.

  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::RenderMathMLRow::layoutRowItems): Only call stretchTo for vertical stretchy operators.

LayoutTests:

Add a test to ensure that nonstretchy or horizontal operators in a
RenderMathMLRow do not stretch. This is similar to the existing test
for munderover and we improve a bit that one too.
Besides the verification of the rendering, these two tests will also
check that the RenderMathMLOperator::stretchTo calls are not done in a
way that violates the ASSERT at the top of stretchTo.

  • mathml/presentation/row-nonstretchy-or-horizontal.html: Added.
  • mathml/presentation/row-nonstretchy-or-horizontal-expected.html: Added.
  • mathml/presentation/underover-nonstretchy-horizontal.html: Removed.
  • mathml/presentation/underover-nonstretchy-horizontal-expected.html: Removed.
  • mathml/presentation/underover-nonstretchy-or-vertical.html: Renamed from LayoutTests/mathml/presentation/underover-nonstretchy-horizontal.html.

We now also test the case of vertical operators in munderover.

  • mathml/presentation/underover-nonstretchy-or-vertical-expected.html: Renamed from LayoutTests/mathml/presentation/underover-nonstretchy-horizontal-expected.html.
10:56 AM Changeset in webkit [199543] by ggaren@apple.com
  • 26 edits in trunk/Source/JavaScriptCore

Some imported ES6 tests are missing createIterableObject
​https://bugs.webkit.org/show_bug.cgi?id=156584

Reviewed by Keith Miller.

These tests were failing because I neglected to include createIterableObject
when I first imported them. Now they pass.

  • tests/es6.yaml:
  • tests/es6/Array_static_methods_Array.from_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/Array_static_methods_Array.from_instances_of_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/Array_static_methods_Array.from_iterator_closing.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/Array_static_methods_Array.from_map_function_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/Array_static_methods_Array.from_map_function_instances_of_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/Map_iterator_closing.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/Promise_Promise.all_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test.asyncTestPassed):

  • tests/es6/Promise_Promise.race_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test.asyncTestPassed):

  • tests/es6/Set_iterator_closing.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/WeakMap_iterator_closing.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/WeakSet_iterator_closing.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/destructuring_iterator_closing.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/destructuring_with_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/destructuring_with_instances_of_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/for..of_loops_iterator_closing_break.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/for..of_loops_iterator_closing_throw.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/for..of_loops_with_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/for..of_loops_with_instances_of_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/generators_yield_star_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/generators_yield_star_iterator_closing_via_throw.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/spread_..._operator_with_generic_iterables_in_arrays.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/spread_..._operator_with_generic_iterables_in_calls.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/spread_..._operator_with_instances_of_iterables_in_arrays.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

  • tests/es6/spread_..._operator_with_instances_of_iterables_in_calls.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):
(test):

10:48 AM Changeset in webkit [199542] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.28/Source/WebKit2

Merged r199528. rdar://problem/25697779

10:44 AM Changeset in webkit [199541] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: Remote inspector doesn't work
​https://bugs.webkit.org/show_bug.cgi?id=156543

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2016-04-14
Reviewed by Timothy Hatcher.

WebSocket connection is blocked by CSP, but needed by the remote web inspector to work, so allow connect to ws
URLs from the web inspector. Also add stubs for zoomFactor and setZoomFactor to InspectorFrontendHostStub,
required after r199396.

  • UserInterface/Base/InspectorFrontendHostStub.js:

(window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.setZoomFactor):
(window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.zoomFactor):

  • UserInterface/Main.html:
10:34 AM Changeset in webkit [199540] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

When FileInputType::setFiles is called with an empty file list, the last set icon is not cleared
​https://bugs.webkit.org/show_bug.cgi?id=156582

Reviewed by Beth Dakin.

  • html/FileInputType.cpp:

(WebCore::FileInputType::requestIcon):

10:10 AM Changeset in webkit [199539] by Darin Adler
  • 13 edits in trunk

Remove UsePointersEvenForNonNullableObjectArguments from Internals
​https://bugs.webkit.org/show_bug.cgi?id=156539

Reviewed by Alex Christensen.

Source/WebCore:

  • html/HTMLImageElement.idl: Exported this so it can be used as the type for

a function argument in Internals.idl.

  • html/HTMLInputElement.idl: Ditto.
  • html/HTMLLinkElement.idl: Ditto.
  • html/HTMLSelectElement.idl: Ditto.
  • testing/Internals.cpp:

(WebCore::InspectorStubFrontend::InspectorStubFrontend): Take a Page&.
(WebCore::Internals::create): Take a Document&.
(WebCore::Internals::resetToConsistentState): Take a Page&.
(WebCore::Internals::Internals): Take a Document&.
(WebCore::Internals::settings): Use nullptr instead of 0.
(WebCore::Internals::address): Take a Node&.
(WebCore::Internals::nodeNeedsStyleRecalc): Take a Node& and no ExceptionCode&.
(WebCore::Internals::styleChangeType): Ditto.
(WebCore::Internals::xhrResponseSource): Take an XMLHttpRequest&.
(WebCore::Internals::isSharingStyleSheetContents): Take two
HTMLLinkElement&.
(WebCore::Internals::isStyleSheetLoadingSubresources): Take an HTMLLinkElement&.
(WebCore::Internals::imageFrameIndex): Take an HTMLImageElement& and no
ExceptionCode&. Also return an unsigned rather than size_t, since the IDL expects
unsigned long, which means unsigned in C++ code.
(WebCore::Internals::treeScopeRootNode): Take a Node& and no ExceptionCode&.
(WebCore::Internals::parentTreeScope): Ditto.
(WebCore::Internals::pauseAnimationAtTimeOnElement): Take an Element&.
(WebCore::Internals::pauseAnimationAtTimeOnPseudoElement): Ditto.
(WebCore::Internals::pauseTransitionAtTimeOnElement): Ditto.
(WebCore::Internals::pauseTransitionAtTimeOnPseudoElement): Ditto.
(WebCore::Internals::attached): Deleted.
(WebCore::Internals::elementRenderTreeAsText): Take an Element&.
(WebCore::Internals::hasPausedImageAnimations): Take an Element& and no
ExceptionCode&.
(WebCore::Internals::computedStyleIncludingVisitedInfo): Take a Node& and no
ExceptionCode&.
(WebCore::Internals::ensureShadowRoot): Take an Element&.
(WebCore::Internals::ensureUserAgentShadowRoot): Take an Element& and no
ExceptionCode&.
(WebCore::Internals::createShadowRoot): Take an Element&.
(WebCore::Internals::shadowRoot): Take an Element& and no ExceptionCode&.
(WebCore::Internals::shadowRootType): Take a Node&.
(WebCore::Internals::includerFor): Deleted.
(WebCore::Internals::shadowPseudoId): Take an Element& and no ExceptionCode&.
(WebCore::Internals::setShadowPseudoId): Ditto.
(WebCore::Internals::visiblePlaceholder): Take an Element&.
(WebCore::Internals::selectColorInColorChooser): Take an HTMLInputElement&.
(WebCore::Internals::boundingBox): Take an Element& and no ExceptionCode&.
(WebCore::Internals::markerCountForNode): Take a Node&.
(WebCore::Internals::markerAt): Ditto.
(WebCore::Internals::markerRangeForNode): Ditto.
(WebCore::Internals::markerDescriptionForNode): Ditto.
(WebCore::Internals::addTextMatchMarker): Take a const Range&.
(WebCore::Internals::setScrollViewPosition): Take int instead of long; long in
IDL means int in C++ code.
(WebCore::Internals::wasLastChangeUserEdit): Take an Element&.
(WebCore::Internals::elementShouldAutoComplete): Take an HTMLInputElement&.
(WebCore::Internals::setEditingValue): Take an HTMLInputElement& and no
ExceptionCode&.
(WebCore::Internals::setAutofilled): Ditto.
(WebCore::Internals::setShowAutoFillButton): Ditto.
(WebCore::Internals::scrollElementToRect): Take an Element& and int instead of long.
(WebCore::Internals::autofillFieldName): Take an Element&.
(WebCore::Internals::rangeFromLocationAndLength): Take an Element& and no ExceptionCode&.
(WebCore::Internals::locationFromRange): Ditto.
(WebCore::Internals::lengthFromRange): Take an Element& and const Range& and no
ExceptionCode&.
(WebCore::Internals::rangeAsText): Take const Range& an no ExceptionCode&.
(WebCore::Internals::subrange): Take Range& an no ExceptionCode&.
(WebCore::Internals::nodesFromRect): Take a Document&.
(WebCore::Internals::openDummyInspectorFrontend): Ditto.
(WebCore::Internals::layerTreeAsText): Take an Element&.
(WebCore::Internals::setElementUsesDisplayListDrawing): Ditto.
(WebCore::Internals::setElementTracksDisplayListReplay): Ditto.
(WebCore::Internals::displayListForElement): Ditto.
(WebCore::Internals::replayDisplayListForElement): Ditto.
(WebCore::Internals::counterValue): Ditto.
(WebCore::Internals::pageNumber): Ditto.
(WebCore::Internals::webkitWillEnterFullScreenForElement): Ditto.
(WebCore::Internals::webkitDidEnterFullScreenForElement): Ditto.
(WebCore::Internals::webkitWillExitFullScreenForElement): Ditto.
(WebCore::Internals::webkitDidExitFullScreenForElement): Ditto.
(WebCore::Internals::layerFlushCount): Return unsigned instead of unsigned long.
IDL unsigned long means unsigned in C++ code.
(WebCore::Internals::styleRecalcCount): Ditto.
(WebCore::Internals::compositingUpdateCount): Ditto.
(WebCore::Internals::deserializeBuffer): Take an ArrayBuffer&.
(WebCore::Internals::markerTextForListItem): Take an Element& and no ExceptionCode&.
(WebCore::Internals::toolTipFromElement): Ditto.
(WebCore::Internals::getImageSourceURL): Ditto.
(WebCore::Internals::simulateAudioInterruption): Take an HTMLMediaElement&.
(WebCore::Internals::mediaElementHasCharacteristic): Ditto.
(WebCore::Internals::isSelectPopupVisible): Take an HTMLSelectElement&.
(WebCore::Internals::closestTimeToTimeRanges): Take a TimeRange&.
(WebCore::Internals::isPluginUnavailabilityIndicatorObscured): Take an Element&.
(WebCore::Internals::isPluginSnapshotted): Take an Element& and no ExceptionCode&.
(WebCore::Internals::bufferedSamplesForTrackID): Take a SourceBuffer&.
(WebCore::Internals::setShouldGenerateTimestamps): Ditto.
(WebCore::Internals::setMediaElementRestrictions): Take an HTMLMediaElement&.
(WebCore::Internals::elementIsBlockingDisplaySleep): Take an HTMLMediaElement&.
(WebCore::Internals::setAudioContextRestrictions): Take an AudioContext&.
(WebCore::Internals::scrollSnapOffsets): Take an Element&.
(WebCore::Internals::getCurrentMediaControlsStatusForElement): Take an HTMLMediaElement&.
(WebCore::Internals::userVisibleString): Take a const DOMURL&.
(WebCore::Internals::composedTreeAsText): Take a Node&.

  • testing/Internals.h: Update for all the changes listed above.
  • testing/Internals.idl: Removed UsePointersEvenForNonNullableObjectArguments. Removed

many unneeded [RaisesException]. Used more specific types for many arguments. Removed
unused, and unimplemented, attached and includedFor functions. Made the node argument to
updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks nullable as well as optional.

  • testing/Internals.mm:

(WebCore::Internals::userVisibleString): Take a const DOMURL&.

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::injectInternalsObject): Pass a Document& rather than a Document*.
(WebCoreTestSupport::resetInternalsObject): Pass a Page& rather than a Page*.

LayoutTests:

  • fast/forms/color/input-color-onchange-event-expected.txt: Updated.
  • fast/forms/color/input-color-onchange-event.html: Removed unneeded test of how the

internals object handles incorrect values passed to the test function. This wasn't testing
actual WebKit code at all, it was just a test of the internals object implementation.

9:48 AM Changeset in webkit [199538] by dbates@webkit.org
  • 7 edits
    7 adds
    5 deletes in trunk

CSP: Ignore report-only policy delivered via meta element
​https://bugs.webkit.org/show_bug.cgi?id=156565
<rdar://problem/25718167>

Reviewed by Brent Fulgham.

Source/WebCore:

Only honor a report-only policy delivered via the HTTP header Content-Security-Policy-Report-Only
or X-WebKit-CSP-Report-Only as per section Content-Security-Policy-Report-Only Header Field of
the Content Security Policy Level 2 spec., <​https://w3c.github.io/webappsec-csp/2/> (Editor's Draft, 29 August 2015).

Currently we honor a report-only policy delivered via a meta element or an HTTP header. Instead
we should only honor such a policy when delivered via an HTTP header.

Tests: http/tests/security/contentSecurityPolicy/1.1/reportonly-in-meta-ignored2.html

http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report.php
http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode.php
http/tests/security/contentSecurityPolicy/report-multiple-violations-01.php
http/tests/security/contentSecurityPolicy/report-multiple-violations-02.php
http/tests/security/contentSecurityPolicy/report-only-report-uri-missing.php

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Do not process policy for HTTP equivalent header
Content-Security-Policy-Report-Only and X-WebKit-CSP-Report-Only.

LayoutTests:

Add new test LayoutTests/http/tests/security/contentSecurityPolicy/1.1/reportonly-in-meta-ignored2.html
to ensure that we ignore X-WebKit-CSP-Report-Only when delivered via a meta element.

Rename test report-multiple-violations-0{1, 2}.html and eval-allowed-in-report-only-mode-and-sends-report.html
to report-multiple-violations-0{1, 2}.php and eval-allowed-in-report-only-mode-and-sends-report.php, respectively,
so that we can make use of PHP to deliver the report-only policy via an HTTP header instead of via a meta element
as the latter is no longer supported. Additionally, fix up code style in some tests to make them more
consistent with the code style we use for tests.

  • TestExpectations: Update some entries due to renaming and mark tests reportonly-in-meta-ignored.html

and reportonly-in-meta-ignored2.html as PASS so that we run them.

  • http/tests/security/contentSecurityPolicy/1.1/reportonly-in-meta-ignored-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/reportonly-in-meta-ignored.html:
  • http/tests/security/contentSecurityPolicy/1.1/reportonly-in-meta-ignored2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/reportonly-in-meta-ignored2.html: Added.
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report.php: Renamed from LayoutTests/http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report.html.
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-expected.txt:
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode.php: Renamed from LayoutTests/http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode.html.
  • http/tests/security/contentSecurityPolicy/report-multiple-violations-01.php: Renamed from LayoutTests/http/tests/security/contentSecurityPolicy/report-multiple-violations-01.html.
  • http/tests/security/contentSecurityPolicy/report-multiple-violations-02.php: Renamed from LayoutTests/http/tests/security/contentSecurityPolicy/report-multiple-violations-02.html.
  • http/tests/security/contentSecurityPolicy/report-only-report-uri-missing.html: Removed.
  • http/tests/security/contentSecurityPolicy/report-only-report-uri-missing.php: Added.
7:08 AM Changeset in webkit [199537] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Dashboard is spelled as Dashbard in several source files
​https://bugs.webkit.org/show_bug.cgi?id=156577

Patch by Antoine Quint <Antoine Quint> on 2016-04-14
Reviewed by Eric Carlson.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getContext):

  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::CanvasGradient):
(WebCore::CanvasGradient::addColorStop):

  • html/canvas/CanvasGradient.h:

(WebCore::CanvasGradient::setDashboardCompatibilityMode):

4:09 AM Changeset in webkit [199536] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

WebGL based canvases composite incorrectly after changing size
​https://bugs.webkit.org/show_bug.cgi?id=152556
<rdar://problem/24012678>

Patch by Antoine Quint <Antoine Quint> on 2016-04-14
Reviewed by Dean Jackson.

Source/WebCore:

On iOS, we use the CAEAGLLayer's bounds to set the size of the backing store.
However, that layer's bounds is also used to size the layer during layout. If
the canvas backing store is resized after layout has been performed, the call
to setBounds loses the layout value and the <canvas> element is incorrectly
sized on screen.

To address this, when updating the backing store, we keep track of the previous
layer bounds so we can reset it after we sized the backing store.

Test: webgl/webgl-backing-store-size-update.html

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::GraphicsContext3D::setRenderbufferStorageFromDrawable):

LayoutTests:

Adding a new test that sets the size of the backing store to a different
size than the layout size after the layout size of the <canvas> element
has been applied to ensure that the implementation correctly retains the
layout size as the canvas backing store is resized.

  • webgl/webgl-backing-store-size-update-expected.html: Added.
  • webgl/webgl-backing-store-size-update.html: Added.
3:12 AM Changeset in webkit [199535] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.12.1

WebKitGTK+ 2.12.1

3:10 AM Changeset in webkit [199534] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.12.1 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.12.1.
2:13 AM Changeset in webkit [199533] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebInspectorUI

Unreviewed. REGRESSION: Web Inspector: Remote inspector doesn't work
​https://bugs.webkit.org/show_bug.cgi?id=156543

WebSocket connection is blocked by CSP, but needed by the remote web inspector to work, so allow connect to ws
URLs from the web inspector.

  • UserInterface/Main.html:
12:49 AM Changeset in webkit [199532] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit2

Fix build without IndexedDB.

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
(WebKit::DatabaseProcess::grantSandboxExtensionsForBlobs):
(WebKit::DatabaseProcess::prepareForAccessToTemporaryFile):

  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/DatabaseProcess.messages.in:

Apr 13, 2016:

11:37 PM Changeset in webkit [199531] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API break after r199392.

Since r199392 webkit_dom_attr_set_value() no longer raises exceptions, but we need to keep the GError parameter
to keep backwards compatibility.

  • bindings/scripts/CodeGeneratorGObject.pm:

(FunctionUsedToRaiseException):

10:56 PM Changeset in webkit [199530] by achristensen@apple.com
  • 5 edits in trunk

CMake MiniBrowser should be an app bundle
​https://bugs.webkit.org/show_bug.cgi?id=156521

Reviewed by Brent Fulgham.

Source/JavaScriptCore:

  • PlatformMac.cmake:

Unreviewed build fix. Define STDC_WANT_LIB_EXT1 so we can find memset_s.

Tools:

  • MiniBrowser/mac/CMakeLists.txt:

Make an app bundle and compile nibs.

  • MiniBrowser/mac/Info.plist:

CMake doesn't know what to do with :rfc1034identifier and there's no reason to keep it. This is just MiniBrowser.

9:59 PM Changeset in webkit [199529] by commit-queue@webkit.org
  • 6 edits in trunk

JSContext Inspector: Improve Class instances and JSC API Exported Values view in Console / ObjectTree
​https://bugs.webkit.org/show_bug.cgi?id=156566
<rdar://problem/16392365>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-13
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.RemoteObject.prototype._appendPropertyPreviews):
Treat non-basic object types as not lossless so they can be expanded.
Show non-enumerable native getters in Object previews.

LayoutTests:

  • inspector/console/console-table-expected.txt:
  • inspector/model/remote-object.html:
  • platform/mac/inspector/model/remote-object-expected.txt:

More values are treated as not-lossless and therefore expandable.

8:21 PM Changeset in webkit [199528] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r199401): Internal builds of Safari hang on launch
​https://bugs.webkit.org/show_bug.cgi?id=156545
<rdar://problem/25697779>

As pointed out by Darin Adler, remove RELEASE_ASSERT() that I inadvertently left in
WebCore::secCodeForProcess() as part of r199504. For now, we handle
SecCodeCopyGuestWithAttributes() returning an error. In a subsequent commit we will
look to re-introduce the use of a RELEASE_ASSERT() to enforce the invariant that
SecCodeCopyGuestWithAttributes() returns a success status.

  • Shared/mac/CodeSigning.mm:

(WebKit::secCodeForProcess):

7:39 PM Changeset in webkit [199527] by dbates@webkit.org
  • 3 edits
    16 adds in trunk

CSP: Nested browsing context created for <object> or <embed> should respect object-src directive
​https://bugs.webkit.org/show_bug.cgi?id=156563
<rdar://problem/25715713>

Reviewed by Darin Adler.

Source/WebCore:

As per section object-src of the Content Security Policy Level 2 spec.,
<​https://w3c.github.io/webappsec-csp/2/> (Editor's Draft, 29 August 2015), a nested browsing
context created for an HTML object or HTML embed element should respect the object-src directive.

Currently a nested browsing context created for an HTML object or HTML embed element respects
the child-src directive or frame-src directive (in that order). Instead such nested browsing
contexts should respect the object-src directive.

Tests: http/tests/security/contentSecurityPolicy/object-src-allows-embed-blocked-by-child-src.html

http/tests/security/contentSecurityPolicy/object-src-allows-embed-blocked-by-frame-src.html
http/tests/security/contentSecurityPolicy/object-src-allows-object-blocked-by-child-src.html
http/tests/security/contentSecurityPolicy/object-src-allows-object-blocked-by-frame-src.html
http/tests/security/contentSecurityPolicy/object-src-blocks-embed-allowed-by-child-src.html
http/tests/security/contentSecurityPolicy/object-src-blocks-embed-allowed-by-frame-src.html
http/tests/security/contentSecurityPolicy/object-src-blocks-object-allowed-by-child-src.html
http/tests/security/contentSecurityPolicy/object-src-blocks-object-allowed-by-frame-src.html

  • loader/PolicyChecker.cpp:

(WebCore::isAllowedByContentSecurityPolicy): Added. Checks whether the specified URL is allowed by the
object-src or the child-src/frame-src directive for a plugin element and non-plugin element, respectively.
(WebCore::PolicyChecker::checkNavigationPolicy): Modified to call isAllowedByContentSecurityPolicy().

LayoutTests:

Add tests to ensure that nested browsing context created for <object> and <embed> respect
the object-src directive.

  • http/tests/security/contentSecurityPolicy/object-src-allows-embed-blocked-by-child-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-src-allows-embed-blocked-by-child-src.html: Added.
  • http/tests/security/contentSecurityPolicy/object-src-allows-embed-blocked-by-frame-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-src-allows-embed-blocked-by-frame-src.html: Added.
  • http/tests/security/contentSecurityPolicy/object-src-allows-object-blocked-by-child-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-src-allows-object-blocked-by-child-src.html: Added.
  • http/tests/security/contentSecurityPolicy/object-src-allows-object-blocked-by-frame-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-src-allows-object-blocked-by-frame-src.html: Added.
  • http/tests/security/contentSecurityPolicy/object-src-blocks-embed-allowed-by-child-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-src-blocks-embed-allowed-by-child-src.html: Added.
  • http/tests/security/contentSecurityPolicy/object-src-blocks-embed-allowed-by-frame-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-src-blocks-embed-allowed-by-frame-src.html: Added.
  • http/tests/security/contentSecurityPolicy/object-src-blocks-object-allowed-by-child-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-src-blocks-object-allowed-by-child-src.html: Added.
  • http/tests/security/contentSecurityPolicy/object-src-blocks-object-allowed-by-frame-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-src-blocks-object-allowed-by-frame-src.html: Added.
7:35 PM Changeset in webkit [199526] by dbates@webkit.org
  • 1 edit
    2 deletes in trunk/LayoutTests

CSP: Remove duplicate test meta-outside-head.html
​https://bugs.webkit.org/show_bug.cgi?id=156556

Reviewed by Brent Fulgham.

It is unnecessary to keep the test http/tests/security/contentSecurityPolicy/1.1/meta-outside-head.html as
the functionality it exercises is covered by test http/tests/security/contentSecurityPolicy/meta-tag-ignored-if-not-in-head.html.
The output of the latter test better conveys the purpose of the test and how to interpret its result than
the former.

  • http/tests/security/contentSecurityPolicy/1.1/meta-outside-head-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/meta-outside-head.html: Removed.
7:29 PM Changeset in webkit [199525] by dbates@webkit.org
  • 179 edits
    63 deletes in trunk

CSP: Remove experimental directive reflected-xss
​https://bugs.webkit.org/show_bug.cgi?id=156554

Reviewed by Brent Fulgham.

Source/WebCore:

The Content Security Policy directive reflected-xss was removed from the Content Security
Policy Level 2 spec., <​https://w3c.github.io/webappsec-csp/2/> (Editor's Draft, 29 August 2015).
This directive was considered experimental and was guarded by a run-time flag that was never
enabled by default. We should remove support for this directive.

  • html/parser/XSSAuditor.cpp:

(WebCore::XSSAuditor::XSSAuditor): Initialize m_xssProtection to XSSProtectionDisposition::Enabled.
(WebCore::XSSAuditor::init): Write logic in terms of enum class XSSProtectionDisposition.
(WebCore::XSSAuditor::filterToken): Ditto.
(WebCore::combineXSSProtectionHeaderAndCSP): Deleted.

  • html/parser/XSSAuditor.h: Change data type of m_xssProtection from ContentSecurityPolicy::ReflectedXSSDisposition

to XSSProtectionDisposition.

  • html/parser/XSSAuditorDelegate.cpp: Ditto.

(WebCore::buildConsoleError): Remove logic to emit a remarks in the console error when a XSS is
blocked because of the directive reflected-xss. Also substituted "because" for "as" in the remark
added to the error message when the XSS Auditor is enabled because the server did not send HTTP
header X-XSS-Protection.

  • html/parser/XSSAuditorDelegate.h:

(WebCore::XSSInfo::XSSInfo): Removed argument didSendCSPHeader as we are removing support for the
directive reflected-xss.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reflectedXSSDisposition): Deleted.
(WebCore::ContentSecurityPolicy::reportInvalidReflectedXSS): Deleted.

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::ContentSecurityPolicyDirectiveList): Remove initialization
of m_reflectedXSSDisposition as we are removing support for the directive reflected-xss.
(WebCore::ContentSecurityPolicyDirectiveList::parseReflectedXSS): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::addDirective): Remove logic to parse directive reflected-xss.

  • page/csp/ContentSecurityPolicyDirectiveList.h:

(WebCore::ContentSecurityPolicyDirectiveList::reflectedXSSDisposition): Deleted.

  • page/csp/ContentSecurityPolicyDirectiveNames.cpp:
  • page/csp/ContentSecurityPolicyDirectiveNames.h:
  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::isCSPDirectiveName):
(WebCore::isExperimentalDirectiveName): Deleted.

  • platform/network/HTTPParsers.cpp:

(WebCore::parseXSSProtectionHeader): Write it terms of enum class XSSProtectionDisposition.

  • platform/network/HTTPParsers.h: Define enum class XSSProtectionDisposition. Change return type

of parseXSSProtectionHeader() from ContentSecurityPolicy::ReflectedXSSDisposition to XSSProtectionDisposition
as we are removing the former.

LayoutTests:

Remove tests for directive reflected-xss and update the expected results of existing XSS Auditor tests
to reflect the change made to the wording of the error message emitted when an XSS attack is blocked.

  • fast/frames/xss-auditor-handles-file-urls-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-allow-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-allow.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-allow-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-allow.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-block-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-block.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-filter-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-filter.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-invalid-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-invalid.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-unset-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-unset.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-allow-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-allow.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-block-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-block.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-filter-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-filter.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-invalid-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-invalid.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-unset-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-unset.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-allow-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-allow.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-block-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-block.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-filter-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-filter.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-invalid-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-invalid.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-unset-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-unset.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-allow-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-allow.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-block-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-block.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-filter-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-filter.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-invalid-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-invalid.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-unset-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-unset.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-allow-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-allow.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-block-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-block.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-filter-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-filter.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-invalid-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-invalid.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-unset-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-unset.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-block-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-block.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-empty-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-empty.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-filter-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-filter.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-invalid-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-invalid.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-parsing-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/reflected-xss-parsing.html: Removed.
  • http/tests/security/contentSecurityPolicy/resources/reflected-xss-and-xss-protection.js: Removed.
  • http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-expected.txt:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-null-char-expected.txt:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location-javascript-URL-expected.txt:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt:
  • http/tests/security/xssAuditor/base-href-control-char-expected.txt:
  • http/tests/security/xssAuditor/base-href-expected.txt:
  • http/tests/security/xssAuditor/base-href-null-char-expected.txt:
  • http/tests/security/xssAuditor/base-href-scheme-relative-expected.txt:
  • http/tests/security/xssAuditor/cookie-injection-expected.txt:
  • http/tests/security/xssAuditor/dom-write-URL-expected.txt:
  • http/tests/security/xssAuditor/dom-write-location-expected.txt:
  • http/tests/security/xssAuditor/dom-write-location-inline-event-expected.txt:
  • http/tests/security/xssAuditor/dom-write-location-javascript-URL-expected.txt:
  • http/tests/security/xssAuditor/embed-tag-code-attribute-2-expected.txt:
  • http/tests/security/xssAuditor/embed-tag-code-attribute-expected.txt:
  • http/tests/security/xssAuditor/embed-tag-control-char-expected.txt:
  • http/tests/security/xssAuditor/embed-tag-expected.txt:
  • http/tests/security/xssAuditor/embed-tag-in-path-unterminated-expected.txt:
  • http/tests/security/xssAuditor/embed-tag-javascript-url-expected.txt:
  • http/tests/security/xssAuditor/embed-tag-null-char-expected.txt:
  • http/tests/security/xssAuditor/form-action-expected.txt:
  • http/tests/security/xssAuditor/formaction-on-button-expected.txt:
  • http/tests/security/xssAuditor/formaction-on-input-expected.txt:
  • http/tests/security/xssAuditor/frameset-injection-expected.txt:
  • http/tests/security/xssAuditor/full-block-iframe-no-inherit-expected.txt:
  • http/tests/security/xssAuditor/get-from-iframe-expected.txt:
  • http/tests/security/xssAuditor/iframe-injection-expected.txt:
  • http/tests/security/xssAuditor/iframe-javascript-url-expected.txt:
  • http/tests/security/xssAuditor/iframe-javascript-url-more-encoding-expected.txt:
  • http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode-expected.txt:
  • http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode2-expected.txt:
  • http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode3-expected.txt:
  • http/tests/security/xssAuditor/iframe-javascript-url-url-encoded-expected.txt:
  • http/tests/security/xssAuditor/iframe-onload-GBK-char-expected.txt:
  • http/tests/security/xssAuditor/iframe-onload-in-svg-tag-expected.txt:
  • http/tests/security/xssAuditor/iframe-srcdoc-expected.txt:
  • http/tests/security/xssAuditor/iframe-srcdoc-property-blocked-expected.txt:
  • http/tests/security/xssAuditor/img-onerror-GBK-char-expected.txt:
  • http/tests/security/xssAuditor/img-onerror-accented-char-expected.txt:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char-default-encoding-expected.txt:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char-expected.txt:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char2-default-encoding-expected.txt:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char2-expected.txt:
  • http/tests/security/xssAuditor/img-tag-with-comma-expected.txt:
  • http/tests/security/xssAuditor/inline-event-HTML-entities-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities-control-char-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities-named-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities-null-char-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-ampersand-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-control-char-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-null-char-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-one-plus-one-expected.txt:
  • http/tests/security/xssAuditor/javascript-link-url-encoded-expected.txt:
  • http/tests/security/xssAuditor/link-onclick-ampersand-expected.txt:
  • http/tests/security/xssAuditor/link-onclick-control-char-expected.txt:
  • http/tests/security/xssAuditor/link-onclick-entities-expected.txt:
  • http/tests/security/xssAuditor/link-onclick-expected.txt:
  • http/tests/security/xssAuditor/link-onclick-null-char-expected.txt:
  • http/tests/security/xssAuditor/link-opens-new-window-expected.txt:
  • http/tests/security/xssAuditor/malformed-HTML-expected.txt:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-1-expected.txt:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-2-expected.txt:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-3-expected.txt:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-4-expected.txt:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-5-expected.txt:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-6-expected.txt:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-7-expected.txt:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-8-expected.txt:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-9-expected.txt:
  • http/tests/security/xssAuditor/meta-tag-http-refresh-javascript-url-expected.txt:
  • http/tests/security/xssAuditor/object-embed-tag-control-char-expected.txt:
  • http/tests/security/xssAuditor/object-embed-tag-expected.txt:
  • http/tests/security/xssAuditor/object-embed-tag-null-char-expected.txt:
  • http/tests/security/xssAuditor/object-tag-expected.txt:
  • http/tests/security/xssAuditor/object-tag-javascript-url-expected.txt:
  • http/tests/security/xssAuditor/open-attribute-body-expected.txt:
  • http/tests/security/xssAuditor/open-event-handler-iframe-expected.txt:
  • http/tests/security/xssAuditor/open-iframe-src-01-expected.txt:
  • http/tests/security/xssAuditor/open-iframe-src-02-expected.txt:
  • http/tests/security/xssAuditor/open-iframe-src-03-expected.txt:
  • http/tests/security/xssAuditor/open-script-src-01-expected.txt:
  • http/tests/security/xssAuditor/open-script-src-02-expected.txt:
  • http/tests/security/xssAuditor/open-script-src-03-expected.txt:
  • http/tests/security/xssAuditor/open-script-src-04-expected.txt:
  • http/tests/security/xssAuditor/post-from-iframe-expected.txt:
  • http/tests/security/xssAuditor/property-escape-comment-01-expected.txt:
  • http/tests/security/xssAuditor/property-escape-comment-02-expected.txt:
  • http/tests/security/xssAuditor/property-escape-comment-03-expected.txt:
  • http/tests/security/xssAuditor/property-escape-entity-01-expected.txt:
  • http/tests/security/xssAuditor/property-escape-entity-02-expected.txt:
  • http/tests/security/xssAuditor/property-escape-entity-03-expected.txt:
  • http/tests/security/xssAuditor/property-escape-expected.txt:
  • http/tests/security/xssAuditor/property-escape-long-expected.txt:
  • http/tests/security/xssAuditor/property-escape-quote-01-expected.txt:
  • http/tests/security/xssAuditor/property-escape-quote-02-expected.txt:
  • http/tests/security/xssAuditor/property-escape-quote-03-expected.txt:
  • http/tests/security/xssAuditor/reflection-in-path-expected.txt:
  • http/tests/security/xssAuditor/resources/echo-intertag.pl:
  • http/tests/security/xssAuditor/script-tag-Big5-char-expected.txt:
  • http/tests/security/xssAuditor/script-tag-Big5-char-twice-url-encode-16bit-unicode-expected.txt:
  • http/tests/security/xssAuditor/script-tag-Big5-char-twice-url-encode-expected.txt:
  • http/tests/security/xssAuditor/script-tag-Big5-char2-expected.txt:
  • http/tests/security/xssAuditor/script-tag-addslashes-backslash-expected.txt:
  • http/tests/security/xssAuditor/script-tag-addslashes-double-quote-expected.txt:
  • http/tests/security/xssAuditor/script-tag-addslashes-null-char-expected.txt:
  • http/tests/security/xssAuditor/script-tag-addslashes-single-quote-expected.txt:
  • http/tests/security/xssAuditor/script-tag-control-char-expected.txt:
  • http/tests/security/xssAuditor/script-tag-convoluted-expected.txt:
  • http/tests/security/xssAuditor/script-tag-entities-expected.txt:
  • http/tests/security/xssAuditor/script-tag-expected.txt:
  • http/tests/security/xssAuditor/script-tag-expression-follows-expected.txt:
  • http/tests/security/xssAuditor/script-tag-inside-svg-tag-expected.txt:
  • http/tests/security/xssAuditor/script-tag-inside-svg-tag2-expected.txt:
  • http/tests/security/xssAuditor/script-tag-inside-svg-tag3-expected.txt:
  • http/tests/security/xssAuditor/script-tag-near-start-expected.txt:
  • http/tests/security/xssAuditor/script-tag-null-char-expected.txt:
  • http/tests/security/xssAuditor/script-tag-post-control-char-expected.txt:
  • http/tests/security/xssAuditor/script-tag-post-expected.txt:
  • http/tests/security/xssAuditor/script-tag-post-null-char-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode-surrogate-pair-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode2-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode3-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode4-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode5-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-actual-comma-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-callbacks-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-comma-01-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-comma-02-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-fancy-unicode-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-injected-comment-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-invalid-closing-tag-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-invalid-url-encoding-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-control-char-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url2-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url3-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-double-quote-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-entities-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-no-quote-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-null-char-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-relative-scheme-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-same-host-with-query-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-unterminated-01-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-unterminated-02-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-source-unterminated-03-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-three-times-url-encoded-16bit-unicode-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment-U2028-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment2-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment3-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment4-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment5-expected.txt:
  • http/tests/security/xssAuditor/script-tag-with-trailing-script-and-urlencode-expected.txt:
  • http/tests/security/xssAuditor/svg-animate-expected.txt:
  • http/tests/security/xssAuditor/svg-script-tag-expected.txt:
  • http/tests/security/xssAuditor/xss-filter-bypass-big5-expected.txt:
  • http/tests/security/xssAuditor/xss-filter-bypass-long-string-expected.txt:
  • http/tests/security/xssAuditor/xss-filter-bypass-sjis-expected.txt:
5:54 PM Changeset in webkit [199524] by beidson@apple.com
  • 37 edits in trunk/Source

Modern IDB (Blob support): Support retrieving Blobs from IDB.
​https://bugs.webkit.org/show_bug.cgi?id=156367

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No testable change in behavior yet, current tests pass).

This patch does the following:

  • Pulls BlobURLs and stored filenames out of IDB whenever an IDB record is fetched.
  • Adds those URLs and filenames to IDBValue.
  • Uses IDBValue in more places instead of SharedBuffer/ThreadSafeBuffer.
  • Teaches SerializedScriptValue, Blob, and File how to read the URLs and filenames when they exist.
  • Teaches the Blob registry to register a new type of Blob that is not a "File" but is backed by one.
  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::setResultToStructuredClone):

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

(WebCore::IDBTransaction::didGetRecordOnServer):

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):

  • Modules/indexeddb/IDBValue.h:
  • Modules/indexeddb/server/MemoryIndexCursor.cpp:

(WebCore::IDBServer::MemoryIndexCursor::currentData):

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::currentData):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::getBlobRecordsForObjectStoreRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::currentData):
(WebCore::IDBServer::SQLiteIDBCursor::internalAdvanceOnce):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:

(WebCore::IDBServer::SQLiteIDBCursor::currentValue):
(WebCore::IDBServer::SQLiteIDBCursor::currentValueBuffer): Deleted.

  • Modules/indexeddb/server/SQLiteIDBTransaction.h:

(WebCore::IDBServer::SQLiteIDBTransaction::backingStore):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::deserializeIDBValueDataToJSValue):
(WebCore::deserializeIDBValueData):
(WebCore::deserializeIDBValue):

  • bindings/js/IDBBindingUtilities.h:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readFile):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::CloneDeserializer::blobFilePathForBlobURL):
(WebCore::SerializedScriptValue::deserialize):

  • bindings/js/SerializedScriptValue.h:
  • fileapi/Blob.cpp:

(WebCore::Blob::Blob):

  • fileapi/Blob.h:

(WebCore::Blob::deserialize):

  • fileapi/File.cpp:

(WebCore::File::File):

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::threadableQueue):
(WebCore::ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked):

  • fileapi/ThreadableBlobRegistry.h:
  • platform/CrossThreadTask.h:

(WebCore::createCrossThreadTask):

  • platform/network/BlobRegistry.h:
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLOptionallyFileBacked):

  • platform/network/BlobRegistryImpl.h:

Source/WebKit2:

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::registerBlobURLOptionallyFileBacked):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
5:47 PM Changeset in webkit [199523] by msaboff@apple.com
  • 7 edits in trunk

Some tests fail with ES6 u (Unicode) flag for regular expressions
​https://bugs.webkit.org/show_bug.cgi?id=151597

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Added two new tables to handle the anomolies of \w and \W CharacterClassEscapes
when specified in RegExp's with both the unicode and ignoreCase flags. Given the
case folding rules described in the standard vie the meta function Canonicalize(),
which allow cross ASCII case folding when unicode is specified, the unicode characters
\u017f (small sharp s) and \u212a (kelvin symbol) are part of the \w (word) characterClassEscape.
This is true because they case fold to 's' and 'k' respectively. Because they case fold
to lower case letters, the corresponding letters, 'k', 'K', 's' and 'S', are also matched with
\W with the unicode and ignoreCase flags.

  • create_regex_tables:
  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::atomBuiltInCharacterClass):
(JSC::Yarr::YarrPatternConstructor::atomCharacterClassBuiltIn):
(JSC::Yarr::YarrPattern::YarrPattern):

  • yarr/YarrPattern.h:

(JSC::Yarr::YarrPattern::wordcharCharacterClass):
(JSC::Yarr::YarrPattern::wordUnicodeIgnoreCaseCharCharacterClass):
(JSC::Yarr::YarrPattern::nonwordcharCharacterClass):
(JSC::Yarr::YarrPattern::nonwordUnicodeIgnoreCaseCharCharacterClass):

LayoutTests:

Updated tests.

  • js/regexp-unicode-expected.txt:
  • js/script-tests/regexp-unicode.js:
5:42 PM Changeset in webkit [199522] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

5:14 PM Changeset in webkit [199521] by Chris Dumez
  • 7 edits
    5 adds in trunk

We should not speculatively revalidate cached redirects
​https://bugs.webkit.org/show_bug.cgi?id=156548
<rdar://problem/25583886>

Reviewed by Darin Adler.

Source/WebKit2:

Stop speculatively revalidating cached redirects. This matches matches
the behavior in NetworkCache's makeUseDecision() which reuses cached
redirects only if they do not need revalidation.

This was breaking fonts.css loading on stripe.com because the
SpeculativeLoadManager would wrongly speculatively revalidate the
redirect and then serve a 302 response the NetworkResourceLoader
when the actual request came in. This would cause us to not follow
the redirect.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
Abort the speculative load if it hits a redirect. This is the safe thing
to do in this case, as we are supposed to do a hand-shake with WebCore
in such case.

(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):
Let successful validations fall through instead of calling didComplete()
early. This matches what is not in NetworkResourceLoader. This way,
didFinishLoading() ends up getting called for both successful and
unsuccessful (i.e. did not return a 302 status code) network validation.

(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):

  • Stop dealing with redirects as we abort the load as soon as we hit a redirect now.
  • Stop asserting that m_cacheEntryForValidation is null now that this is called for successful validations as well.

(WebKit::NetworkCache::SpeculativeLoad::abort):
New method that aborts the network loads, calls the completion handler
and clean up. It is called in the case we hit a redirect while
revalidating.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:

Drop m_redirectChainCacheStatus member as we no longer deal with
redirects.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage):
If the resource needs revalidation AND is a cached redirect, then do not
use it. This matches what is done in NetworkCache's makeUseDecision().

Tools:

Re-enable speculative loading in the context of layout tests. This was
turned off by mistake when speculative loading was turned into a
setting recently.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generatePageConfiguration):

LayoutTests:

Add layout test to make sure that speculative loading does not break
redirects. This replicates the issue seen with fonts.css on stripe.com.

  • http/tests/cache/disk-cache/speculative-validation/cacheable-redirect-expected.txt: Added.
  • http/tests/cache/disk-cache/speculative-validation/cacheable-redirect.html: Added.
  • http/tests/cache/disk-cache/speculative-validation/resources/cacheable-redirect-frame.php: Added.
  • http/tests/cache/disk-cache/speculative-validation/resources/css-to-revalidate.php: Added.
  • http/tests/cache/disk-cache/speculative-validation/resources/redirect-to-css.php: Added.
5:13 PM Changeset in webkit [199520] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.6.16

New tag.

5:13 PM Changeset in webkit [199519] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.6.15

New tag.

3:58 PM Changeset in webkit [199518] by commit-queue@webkit.org
  • 2 edits in trunk

FindWebP should not be misguided by pkg-config when cross-compiling.
​https://bugs.webkit.org/show_bug.cgi?id=156544

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-13
Reviewed by Michael Catanzaro.

We should use pkg-config output only as a hint, like other modules do.

  • Source/cmake/FindWebP.cmake:
3:45 PM Changeset in webkit [199517] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Modern IDB: NetworkProcessConnection::didClose needs to have a self ref.
<rdar://problem/25700864> and ​https://bugs.webkit.org/show_bug.cgi?id=156559

Reviewed by Alex Christensen.

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didClose): Self ref to protect this.

3:11 PM Changeset in webkit [199516] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Text on compositing layer with negative letter-spacing is truncated.
​https://bugs.webkit.org/show_bug.cgi?id=156550
<rdar://problem/24212140>

Reviewed by Antti Koivisto.

Negative letter-spacing affects the right edge of content's visual overflow (for both RTL and LTR).
This is similar to how normal line layout adjusts it at InlineFlowBox::addTextBoxVisualOverflow().

Source/WebCore:

Test: fast/text/negative-letter-spacing-visual-overflow.html

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::computeOverflow):
(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::collectFlowOverflow):

LayoutTests:

  • fast/text/negative-letter-spacing-visual-overflow-expected.html: Added.
  • fast/text/negative-letter-spacing-visual-overflow.html: Added.
3:09 PM Changeset in webkit [199515] by eric.carlson@apple.com
  • 3 edits
    2 adds in trunk

[iOS] remote command should be considered user events
​https://bugs.webkit.org/show_bug.cgi?id=156546
<rdar://problem/25560877>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/remote-control-command-is-user-gesture.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): Increment/decrement

m_processingRemoteControlCommand around calling remote command method.

(WebCore::HTMLMediaElement::processingUserGesture): Return true if called while handling

a remote control command.

  • html/HTMLMediaElement.h:

LayoutTests:

  • media/remote-control-command-is-user-gesture-expected.txt: Added.
  • media/remote-control-command-is-user-gesture.html: Added.
3:02 PM Changeset in webkit [199514] by commit-queue@webkit.org
  • 40 edits
    74 deletes in trunk

Unreviewed, rolling out r199502 and r199511.
​https://bugs.webkit.org/show_bug.cgi?id=156557

Appears to have in-browser perf regression (Requested by mlam
on #webkit).

Reverted changesets:

"ES6: Implement String.prototype.split and
RegExp.prototype[@@split]."
​https://bugs.webkit.org/show_bug.cgi?id=156013
​http://trac.webkit.org/changeset/199502

"ES6: Implement RegExp.prototype[@@search]."
​https://bugs.webkit.org/show_bug.cgi?id=156331
​http://trac.webkit.org/changeset/199511

1:49 PM Changeset in webkit [199513] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

isJSArray should use ArrayType rather than the ClassInfo
​https://bugs.webkit.org/show_bug.cgi?id=156551

Reviewed by Filip Pizlo.

Using the JSType rather than the ClassInfo should be slightly faster
since the type is inline on the cell whereas the ClassInfo is only
on the structure.

  • runtime/JSArray.h:

(JSC::isJSArray):

1:40 PM Changeset in webkit [199512] by tonikitoo@webkit.org
  • 7 edits
    4 adds in trunk

Non-resizable text field looks resizable
​https://bugs.webkit.org/show_bug.cgi?id=152271

Reviewed by Darin Adler.

Source/WebCore:

The 'resizability' of an HTML element is controlled by its 'resize' CSS property value.
By default it is 'none', but certain HTML elements, including <textarea>, have it
set to 'both' by default (defined in html.css). These values mean no resize at all, and
resizable in both vertical and horizontal axis, respectively.
Additionally, 'vertical' and 'horizontal' values are also valid.

Problem here is that the way WebKit handles the 'resize' property on single line
input elements (e.g. <input>) is different than other engines (read Gecko, Blink and Presto):

  • Match: WebKit, Firefox, Presto and Blink all force single line input elements to be non-resizable,

regardless of either the 'resize' properly is set or not.

  • Mismatch: WebKit is the only engine that actually paints the resize control on single line

input elements, even it having no effect.

On WebKit, this happens because the 'resize' property is wrongly implemented as 'inheritable',
differently from other engines. In the way WebKit contructs its RenderTree, 'resize' property
ends up spilling out of <input> and entering its shadow representation, carrying the 'resize'
property on.

Patch fixes this by making the 'resize' properly be non-inherited, matching other vendors
and the spec [1].

[1] ​https://drafts.csswg.org/css-ui/#resize

Tests: fast/css/resize-not-inherited.html

fast/css/resize-single-line-input-no-paint.html

  • rendering/style/RenderStyle.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):

  • rendering/style/StyleRareInheritedData.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

  • fast/css/resize-not-inherited-expected.html: Added.
  • fast/css/resize-not-inherited.html: Added.
  • fast/css/resize-single-line-input-no-paint-expected.html: Added.
  • fast/css/resize-single-line-input-no-paint.html: Added.
1:00 PM Changeset in webkit [199511] by mark.lam@apple.com
  • 27 edits
    18 adds in trunk

ES6: Implement RegExp.prototype[@@search].
​https://bugs.webkit.org/show_bug.cgi?id=156331

Reviewed by Keith Miller.

Source/JavaScriptCore:

What changed?

  1. Implemented search builtin in RegExpPrototype.js. The native path is now used as a fast path.
  2. Added DFG support for an IsRegExpObjectIntrinsic (modelled after the IsJSArrayIntrinsic).
  3. Renamed @isRegExp to @isRegExpObject to match the new IsRegExpObjectIntrinsic.
  4. Change the esSpecIsRegExpObject() implementation to check if the object's JSType is RegExpObjectType instead of walking the classinfo chain.
  • builtins/RegExpPrototype.js:

(search):

  • builtins/StringPrototype.js:

(search):

  • fixed some indentation.
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIsArrayConstructor):
(JSC::DFG::SpeculativeJIT::compileIsRegExpObject):
(JSC::DFG::SpeculativeJIT::compileCallObjectConstructor):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIsFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileIsRegExpObject):
(JSC::FTL::DFG::LowerDFGToB3::compileTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::isExoticForTypeof):
(JSC::FTL::DFG::LowerDFGToB3::isRegExpObject):
(JSC::FTL::DFG::LowerDFGToB3::isType):

  • runtime/Intrinsic.h:
  • Added IsRegExpObjectIntrinsic.
  • runtime/CommonIdentifiers.h:
  • runtime/ECMAScriptSpecInternalFunctions.cpp:

(JSC::esSpecIsConstructor):

  • Changed to use uncheckedArgument since this is only called from internal code.

(JSC::esSpecIsRegExpObject):
(JSC::esSpecIsRegExp): Deleted.

  • runtime/ECMAScriptSpecInternalFunctions.h:
  • Changed to check the object for a JSType of RegExpObjectType.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • Added split fast path.
  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncSearchFast):
(JSC::regExpProtoFuncSearch): Deleted.

  • runtime/RegExpPrototype.h:
  • tests/es6.yaml:
  • tests/stress/regexp-search.js:
  • Rebased test.

LayoutTests:

  • js/regress/regexp-prototype-search-observable-side-effects-expected.txt: Added.
  • js/regress/regexp-prototype-search-observable-side-effects.html: Added.
  • js/regress/regexp-prototype-search-observable-side-effects2-expected.txt: Added.
  • js/regress/regexp-prototype-search-observable-side-effects2.html: Added.
  • js/regress/script-tests/regexp-prototype-search-observable-side-effects.js: Added.
  • js/regress/script-tests/regexp-prototype-search-observable-side-effects2.js: Added.
  • js/regress/script-tests/string-prototype-search-observable-side-effects.js: Added.
  • js/regress/script-tests/string-prototype-search-observable-side-effects2.js: Added.
  • js/regress/script-tests/string-prototype-search-observable-side-effects3.js: Added.
  • js/regress/script-tests/string-prototype-search-observable-side-effects4.js: Added.
  • js/regress/string-prototype-search-observable-side-effects-expected.txt: Added.
  • js/regress/string-prototype-search-observable-side-effects.html: Added.
  • js/regress/string-prototype-search-observable-side-effects2-expected.txt: Added.
  • js/regress/string-prototype-search-observable-side-effects2.html: Added.
  • js/regress/string-prototype-search-observable-side-effects3-expected.txt: Added.
  • js/regress/string-prototype-search-observable-side-effects3.html: Added.
  • js/regress/string-prototype-search-observable-side-effects4-expected.txt: Added.
  • js/regress/string-prototype-search-observable-side-effects4.html: Added.
12:35 PM Changeset in webkit [199510] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/canvas/webgl/gl-teximage.html as flaky on Macs
​https://bugs.webkit.org/show_bug.cgi?id=58766

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:07 PM Changeset in webkit [199509] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.28/Source/WebKit2

Merged r199504. rdar://problem/25697779

12:04 PM Changeset in webkit [199508] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

PolymorphicAccess::regenerate() shouldn't have to clone non-generated AccessCases
​https://bugs.webkit.org/show_bug.cgi?id=156493

Reviewed by Geoffrey Garen.

Cloning AccessCases is only necessary if they hold some artifacts that are used by code that
they already generated. So, if the state is not Generated, we don't have to bother with
cloning them.

This should speed up PolymorphicAccess regeneration a bit more.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::commit):
(JSC::PolymorphicAccess::regenerate):

11:52 AM Changeset in webkit [199507] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/streams/readable-streams/general.https.html as flaky
​https://bugs.webkit.org/show_bug.cgi?id=155760

Unreviewed test gardening.

11:17 AM Changeset in webkit [199506] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark media/track/track-in-band-duplicate-tracks-when-source-changes.html as flaky on Yosemite
​https://bugs.webkit.org/show_bug.cgi?id=124222

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:51 AM Changeset in webkit [199505] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

10:51 AM Changeset in webkit [199504] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r199401): Internal builds of Safari hang on launch
​https://bugs.webkit.org/show_bug.cgi?id=156545
<rdar://problem/25697779>

Reviewed by Anders Carlsson.

For some reason SecCodeCopyGuestWithAttributes() is failing with an error in Apple Internal
Safari builds. For now, temporarily allow the failure while I investigate the cause in
<rdar://problem/25706517>.

  • Shared/mac/CodeSigning.mm:

(WebKit::secCodeForProcess): Log the failure with OSStatus code and return nullptr;
(WebKit::codeSigningIdentifierForProcess): Return a null string if secCodeForProcess() returns a nullptr.
This will cause us to treat affected Apple Internal Safari builds the same as we would treat
an unsigned or third-party signed app.

10:50 AM Changeset in webkit [199503] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.28

New tag.

10:44 AM Changeset in webkit [199502] by mark.lam@apple.com
  • 24 edits
    56 copies in trunk

ES6: Implement String.prototype.split and RegExp.prototype[@@split].
​https://bugs.webkit.org/show_bug.cgi?id=156013

Reviewed by Keith Miller.

Re-landing r199393 now that the shadow chicken crash has been fixed.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/GlobalObject.js:

(speciesConstructor):

  • builtins/PromisePrototype.js:
  • refactored to use the @speciesConstructor internal function.
  • builtins/RegExpPrototype.js:

(advanceStringIndex):

  • refactored from @advanceStringIndexUnicode() to be match the spec. Benchmarks show that there's no advantage in doing the unicode check outside of the advanceStringIndexUnicode part. So, I simplified the code to match the spec (especially since @@split needs to call advanceStringIndex from more than 1 location).

(match):

  • Removed an unnecessary call to @Object because it was already proven above.
  • Changed to use advanceStringIndex instead of advanceStringIndexUnicode. Again, there's no perf regression for this.

(regExpExec):
(hasObservableSideEffectsForRegExpSplit):
(split):
(advanceStringIndexUnicode): Deleted.

  • builtins/StringPrototype.js:

(split):

  • Modified to use RegExp.prototype[@@split].
  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
(JSC::BytecodeIntrinsicRegistry::lookup):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • Added the @@split symbol.
  • runtime/CommonIdentifiers.h:
  • runtime/ECMAScriptSpecInternalFunctions.cpp: Added.

(JSC::esSpecIsConstructor):
(JSC::esSpecIsRegExp):

  • runtime/ECMAScriptSpecInternalFunctions.h: Added.
  • runtime/JSGlobalObject.cpp:

(JSC::getGetterById):
(JSC::JSGlobalObject::init):

  • runtime/PropertyDescriptor.cpp:

(JSC::PropertyDescriptor::setDescriptor):

  • Removed an assert that is no longer valid.
  • runtime/RegExpObject.h:
  • Made advanceStringUnicode() public so that it can be re-used by the regexp split fast path.
  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncSearch):
(JSC::advanceStringIndex):
(JSC::regExpProtoFuncSplitFast):

  • runtime/RegExpPrototype.h:
  • runtime/StringObject.h:

(JSC::jsStringWithReuse):
(JSC::jsSubstring):

  • Hoisted some utility functions from StringPrototype.cpp so that they can be reused by the regexp split fast path.
  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::stringProtoFuncSplitFast):
(JSC::stringProtoFuncSubstr):
(JSC::builtinStringSubstrInternal):
(JSC::stringProtoFuncSubstring):
(JSC::stringIncludesImpl):
(JSC::stringProtoFuncIncludes):
(JSC::builtinStringIncludesInternal):
(JSC::jsStringWithReuse): Deleted.
(JSC::jsSubstring): Deleted.
(JSC::stringProtoFuncSplit): Deleted.

  • runtime/StringPrototype.h:
  • tests/es6.yaml:

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/string-prototype-properties-expected.txt:
  • js/regress/regexp-prototype-split-observable-side-effects-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects2-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects2.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-flags-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-flags.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-global-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-global.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-ignoreCase-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-ignoreCase.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-multiline-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-multiline.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-sticky-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-sticky.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-unicode-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-unicode.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects4-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects4.html: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects2.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-flags.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-global.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-ignoreCase.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-multiline.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-sticky.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-unicode.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects4.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects2.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-flags.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-global.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-ignoreCase.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-multiline.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-sticky.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-unicode.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects4.js: Added.
  • js/regress/string-prototype-split-observable-side-effects-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects.html: Added.
  • js/regress/string-prototype-split-observable-side-effects2-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects2.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-flags-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-flags.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-global-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-global.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-ignoreCase-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-ignoreCase.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-multiline-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-multiline.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-sticky-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-sticky.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-unicode-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-unicode.html: Added.
  • js/regress/string-prototype-split-observable-side-effects4-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects4.html: Added.
  • js/script-tests/Object-getOwnPropertyNames.js:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.14_String.prototype.split/S15.5.4.14_A1_T3-expected.txt:
10:37 AM Changeset in webkit [199501] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

Fix client certificate authentication with NetworkSession
​https://bugs.webkit.org/show_bug.cgi?id=156527
<rdar://problem/25489156>

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-04-13
Reviewed by Darin Adler.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
We only want to use serverTrustCredential for ServerTrustEvaluation authentication challenges, not

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):

  • Shared/Authentication/AuthenticationManager.h:
  • Shared/Authentication/mac/AuthenticationManager.mac.mm:

(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
Don't use challenge.sender with NSURLSession, which requires callbacks instead.

10:13 AM Changeset in webkit [199500] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Remove UsePointersEvenForNonNullableObjectArguments from DataTransfer
​https://bugs.webkit.org/show_bug.cgi?id=156495

Reviewed by Chris Dumez.

  • dom/DataTransfer.idl: Removed UsePointersEvenForNonNullableObjectArguments

and marked the element argument to setDragImage as nullable.

9:35 AM WebKitGTK/StableRelease edited by Andres Gomez
(diff)
9:28 AM Changeset in webkit [199499] by beidson@apple.com
  • 5 edits in trunk/Source/WebCore

Modern IDB (Blob support): Support deleting stored blob files.
​https://bugs.webkit.org/show_bug.cgi?id=156523

Reviewed by Alex Christensen.

No new tests (No testable change in behavior yet, current tests pass).

There's 3 points in time when we need to delete blob files (and records of them):
1 - When deleting a specific object store record.
2 - When deleting an entire object store.
3 - When deleting a whole database.

This patch does those three things.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteUnusedBlobFileRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBTransaction.cpp:

(WebCore::IDBServer::SQLiteIDBTransaction::commit):
(WebCore::IDBServer::SQLiteIDBTransaction::deleteBlobFilesIfNecessary):
(WebCore::IDBServer::SQLiteIDBTransaction::addRemovedBlobFile):

  • Modules/indexeddb/server/SQLiteIDBTransaction.h:
9:25 AM Changeset in webkit [199498] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

REGRESSION(r199444): Perf dashboard always fetches all measurement sets
​https://bugs.webkit.org/show_bug.cgi?id=156534

Reviewed by Darin Adler.

The bug was cased by SummaryPage's constructor fetching all measurement sets. Since each page is always
constructed in main(), this resulted in all measurement sets being fetched on all pages.

  • public/v3/pages/summary-page.js:

(SummaryPage):
(SummaryPage.prototype.open): Fetch measurement set JSONs here.
(SummaryPage.prototype._createConfigurationGroup): Renamed from _createConfigurationGroupAndStartFetchingData.

9:16 AM Changeset in webkit [199497] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Fix two coding mistakes in MathMLInlineContainerElement::childrenChanged
​https://bugs.webkit.org/show_bug.cgi?id=156538

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-13
Reviewed by Darin Adler.

We fix the call to updateOperatorProperties inside MathMLInlineContainerElement::childrenChanged
for the <math> and <msqrt> tags.

The <math> tag is already a RenderMathMLRow so the hasTagName(mathTag)
conditional is never executed. The tag does not create any anonymous
wrapper so we do not need a special case for it anyway.

The <msqrt> tag is not a RenderMathMLRow (yet). However, the anonymous
wrapper behaving as a RenderMathMLRow is actually the last child, not
the first one.

No new tests, this is already covered by mathml/presentation/mo-form-dynamic.html
Note that for some reason the coding error for <msqrt> only shows up
after the refactoring of bug 152244.

  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::childrenChanged): Fix the two mistakes and add some FIXME comments.

9:10 AM Changeset in webkit [199496] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ShadowChicken::visitChildren() should not visit tailMarkers and throwMarkers.
​https://bugs.webkit.org/show_bug.cgi?id=156532

Reviewed by Saam Barati and Filip Pizlo.

ShadowChicken can store tailMarkers and throwMarkers in its log, specifically in
the callee field of a log packet. However, ShadowChicken::visitChildren()
unconditionally visits the callee field of each packet as if they are real
objects. If visitChildren() encounters one of these markers in the log, we get a
crash.

This crash was observed in the v8-v6/v8-regexp.js stress test running with shadow
chicken when r199393 landed. r199393 introduced tail calls to a RegExp split
fast path, and the v8-regexp.js test exercised this fast path a lot. Throw in
some timely GCs, and we get a crash party.

The fix is to have ShadowChicken::visitChildren() filter out the tailMarker and
throwMarker.

Alternatively, if perf is an issue, we can allocate 2 dedicated objects for
these markers so that ShadowChicken can continue to visit them. For now, I'm
going with the filter.

  • interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::visitChildren):

8:54 AM WebKitGTK/2.12.x edited by Carlos Garcia Campos
(diff)
8:53 AM Changeset in webkit [199495] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r199458 - Fix build in glibc-based BSD systems
​https://bugs.webkit.org/show_bug.cgi?id=156533

Reviewed by Carlos Garcia Campos.

Change the order of the #elif conditionals so glibc-based BSD
systems (e.g. Debian GNU/kFreeBSD) use the code inside the
OS(FREEBSD) blocks.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::Thread::Registers::stackPointer):
(JSC::MachineThreads::Thread::Registers::framePointer):
(JSC::MachineThreads::Thread::Registers::instructionPointer):
(JSC::MachineThreads::Thread::Registers::llintPC):

8:53 AM Changeset in webkit [199494] by Carlos Garcia Campos
  • 4 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r199229 - AX: [ATK] Crash getting text under element in CSS table
​https://bugs.webkit.org/show_bug.cgi?id=156328

Reviewed by Chris Fleizach.

Source/WebCore:

AccessibilityRenderObject::textUnderElement() assumes (and asserts) that
the first and last child of an anonymous block will each have nodes with
which to define positions. This is not the case for CSS Tables and their
anonymous descendants. AccessibilityNodeObject:textUnderElement() is our
fallback for the instances where a text range cannot be created based on
positions, so let it handle anonymous RenderTable parts.

Test: accessibility/generated-content-with-display-table-crash.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement):
(WebCore::AccessibilityRenderObject::shouldGetTextFromNode):

  • accessibility/AccessibilityRenderObject.h:

LayoutTests:

While this crash is currently seen only for ATK, there is nothing to
prevent another port from attempting to get all the text under a CSS
RenderTable. Hence the shared test.

  • accessibility/generated-content-with-display-table-crash.html: Added.
  • platform/gtk/accessibility/generated-content-with-display-table-crash-expected.txt: Added.
  • platform/mac/accessibility/generated-content-with-display-table-crash-expected.txt: Added.
8:51 AM Changeset in webkit [199493] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r198945 - [JSC] Missing PATH_MAX definition
​https://bugs.webkit.org/show_bug.cgi?id=156102

Reviewed by Yusuke Suzuki.

Not all systems define PATH_MAX, so add a fallback value that is
long enough.

  • jsc.cpp:
8:42 AM Changeset in webkit [199492] by Jon Davis
  • 1 edit in trunk/Websites/webkit.org/ChangeLog

Remove database quote escapes from pushed tweets.

Reviewed by Timothy Hatcher.

  • wp-content/plugins/tweet-listener.php:
8:42 AM Changeset in webkit [199491] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Remove database quote escapes.

Reviewed by Timothy Hatcher.

  • wp-content/plugins/tweet-listener.php:
8:28 AM Changeset in webkit [199490] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WTF

Merge r199366 - S390X and PPC64 architectures detection is wrong
​https://bugs.webkit.org/show_bug.cgi?id=156337

Patch by Tomas Popela <​tpopela@redhat.com> on 2016-04-12
Reviewed by Carlos Garcia Campos.

After the ​http://trac.webkit.org/changeset/198919 was committed
it showed that the PPC64 detection is wrong as the CPU(PPC) path was
activated even for PPC64. The thing is that GCC defines ppc
even on PPC64 and not just on PPC(32). The same applies for S390X.

  • wtf/Platform.h:
8:28 AM WebKitGTK/2.12.x edited by Carlos Garcia Campos
(diff)
8:18 AM Changeset in webkit [199489] by Carlos Garcia Campos
  • 5 edits
    11 adds in releases/WebKitGTK/webkit-2.12

Merge r199087 - MessageEvent.source window is incorrect once window has been reified
​https://bugs.webkit.org/show_bug.cgi?id=156227
<rdar://problem/25545831>

Reviewed by Mark Lam.

Source/WebCore:

MessageEvent.source window was incorrect once window had been reified.

If the Window had not been reified, we kept constructing new
postMessage() functions when calling window.postMessage(). We used to
pass activeDOMWindow(execState) as source Window to
DOMWindow::postMessage(). activeDOMWindow() uses
exec->lexicalGlobalObject() which did the right thing because we
used to construct a new postMessage() function in the caller's context.

However, after reification, due to the way JSDOMWindow::getOwnPropertySlot()
was implemented, we would stop constructing new postMessage() functions
when calling window.postMessage(). As a result, the source window would
become incorrect because exec->lexicalGlobalObject() would return the
target Window instead.

In this patch, the following is done:

  1. Stop constructing a new function every time in the same origin case for postMessage, blur, focus and close. This was inefficient and lead to incorrect behavior:
    • The behavior would differ depending if the Window is reified or not
    • It would be impossible to delete those operations, which is incompatible with the specification and other browsers (tested Firefox and Chrome).
  2. Use callerDOMWindow(execState) instead of activeDOMWindow(execState) as source Window in JSDOMWindow::handlePostMessage(). callerDOMWindow() is a new utility function that returns the caller's Window object.

Tests: fast/dom/Window/delete-operations.html

fast/dom/Window/messageevent-source-postmessage-reified.html
fast/dom/Window/messageevent-source-postmessage.html
fast/dom/Window/messageevent-source-postmessage2.html
fast/dom/Window/window-postmessage-clone-frames.html
fast/dom/Window/post-message-crash2.html

  • bindings/js/JSDOMBinding.cpp:

(WebCore::GetCallerCodeBlockFunctor::operator()):
(WebCore::GetCallerCodeBlockFunctor::codeBlock):
(WebCore::callerDOMWindow):

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::handlePostMessage):

LayoutTests:

Add tests that cover using MessageEvent.source Window for messaging
using postMessage(). There are 2 versions of the test, one where the
main window is reified and one where it is not. The test that has a
reified main window was failing because this fix.

  • fast/dom/Window/delete-operations-expected.txt: Added.
  • fast/dom/Window/delete-operations.html: Added.

Make sure that operations on Window are indeed deletable. Previously,
it would be impossible to delete postMessage, blur, focus and close.

  • fast/dom/Window/messageevent-source-postmessage-expected.txt: Added.
  • fast/dom/Window/messageevent-source-postmessage-reified-expected.txt: Added.
  • fast/dom/Window/messageevent-source-postmessage-reified.html: Added.
  • fast/dom/Window/messageevent-source-postmessage.html: Added.
  • fast/dom/Window/messageevent-source-postmessage2.html: Added.
  • fast/dom/Window/resources/messageevent-source-postmessage-frame.html: Added.
  • fast/dom/Window/post-message-crash2-expected.txt: Added.
  • fast/dom/Window/post-message-crash2.html: Added.
8:06 AM Changeset in webkit [199488] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Added background color for Safari Technology Preview posts.

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/style.css:

(.tile.category-safari-technology-preview .background-image):

8:04 AM Changeset in webkit [199487] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/gtk/po

Merge r199063 - Updated Brazilian Portuguese translation
​https://bugs.webkit.org/show_bug.cgi?id=156236

Patch by Rafael Fontenelle <​rafaelff@gnome.org> on 2016-04-05
Rubber-stamped by Michael Catanzaro.

  • pt_BR.po:
8:03 AM Changeset in webkit [199486] by Carlos Garcia Campos
  • 4 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r199061 - We sometimes fail to remove outdated entry from the disk cache after revalidation and when the resource is no longer cacheable
​https://bugs.webkit.org/show_bug.cgi?id=156048
<rdar://problem/25514480>

Reviewed by Antti Koivisto.

Source/WebKit2:

We would sometimes fail to remove outdated entry from the disk cache
after revalidation and when the resource is no longer cacheable. This
was due to Storage::removeFromPendingWriteOperations() only removing
the first pending write operation with a given key instead of actually
removing all of the operations with this key.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::removeFromPendingWriteOperations):

  • NetworkProcess/cache/NetworkCacheStorage.h:

LayoutTests:

Add test coverage for the bug.

  • http/tests/cache/disk-cache/disk-cache-remove-several-pending-writes-expected.txt: Added.
  • http/tests/cache/disk-cache/disk-cache-remove-several-pending-writes.html: Added.
  • http/tests/cache/disk-cache/resources/json.php: Added.
7:59 AM Changeset in webkit [199485] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199045 - [TexMap] Improve viewport array access in TextureMapperGL::bindDefaultSurface()
​https://bugs.webkit.org/show_bug.cgi?id=156159

Reviewed by Antonio Gomes.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::bindDefaultSurface): Create a reference to the
viewport array in the TextureMapperGLData object. Inline the IntSize constructor
for the object that's passed to createProjectionMatrix(), and use the reference
to access all four elements of the array as necessary.

7:59 AM Changeset in webkit [199484] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199044 - [TexMap] resolveOverlaps() should be passed-in the first Region parameter via a reference
​https://bugs.webkit.org/show_bug.cgi?id=156158

Reviewed by Antonio Gomes.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::resolveOverlaps): Don't copy the Region object that's passed through
the first parameter by accepting a reference to the object instead. This does
modify the passed-in object, but these modifications don't have any effect on
any state via the call sites in TextureMapperLayer::computeOverlapRegions().

7:57 AM WebKitGTKStableReleases edited by Andres Gomez
(diff)
7:56 AM Changeset in webkit [199483] by Carlos Garcia Campos
  • 33 edits in releases/WebKitGTK/webkit-2.12

Merge r199034 - CSS Triangles Rendering Regression affecting CSS Ribbons.
​https://bugs.webkit.org/show_bug.cgi?id=156121

Reviewed by Simon Fraser.

Source/WebCore:

We use floored border width values for painting (see BorderEdge).
However border-box sizing is based on rounded border values. This mismatch could result in a 2 device pixel
gap when both top and bottom (or left and right) borders are present.

This patch applies flooring on the computed border width value.

It matches FireFox (44.0.2) behaviour (both by inspecting box-sizing visually and through getComputedStyle() values on border-width).

Covered by existing tests.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertLineWidth):

LayoutTests:

Rebeaseline to match current behaviour.

  • fast/inline/hidpi-inline-text-decoration-with-subpixel-value-expected.html:
  • platform/mac/css1/units/length_units-expected.txt:
  • platform/mac/fast/css/bidi-override-in-anonymous-block-expected.txt:
  • platform/mac/fast/multicol/span/anonymous-style-inheritance-expected.txt:
  • platform/mac/fast/repaint/repaint-during-scroll-with-zoom-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-initial-value-001-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-style-001-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-style-002-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-style-004-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-with-three-values-001-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-with-two-values-001-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-003-expected.txt:
  • platform/mac/media/video-zoom-expected.txt:
  • platform/mac/svg/custom/svg-fonts-in-html-expected.txt:
  • platform/mac/svg/zoom/page/zoom-background-image-tiled-expected.txt:
  • platform/mac/svg/zoom/page/zoom-background-images-expected.txt:
  • platform/mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
  • platform/mac/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
  • platform/mac/svg/zoom/page/zoom-svg-float-border-padding-expected.txt:
  • platform/mac/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
7:56 AM WebKitGTK/StableRelease edited by Andres Gomez
(diff)
7:52 AM Changeset in webkit [199482] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r199027 - Tapping on tabs in webpages caused WK crash at WebKit: WebKit::WebFrame::didReceivePolicyDecision
​https://bugs.webkit.org/show_bug.cgi?id=156119
<rdar://problem/20732167>

Reviewed by Andy Estes.

Protect the m_frame so that it is present for completion handlers.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

7:52 AM WebKitGTK/StartHacking edited by Andres Gomez
(diff)
7:51 AM Changeset in webkit [199481] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r199025 - [JSC][x86] Fix an assertion in MacroAssembler::branch8()
​https://bugs.webkit.org/show_bug.cgi?id=156181

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-04
Reviewed by Geoffrey Garen.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branch8):
The test was wrong because valid negative numbers have ones
in the top bits.

I replaced the assertion to be explicit about the valid range.

7:42 AM WebKitGTK/Releasing edited by Andres Gomez
(diff)
7:41 AM WebKitGTK edited by Andres Gomez
Pointing to the StableReleases page always (diff)
6:52 AM Changeset in webkit [199480] by Carlos Garcia Campos
  • 7 edits
    5 deletes in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r199002 - Fix WEB_PROCESS_CMD_PREFIX and NETWORK_PROCESS_CMD_PREFIX after r196500
​https://bugs.webkit.org/show_bug.cgi?id=156060

Patch by Emanuele Aina <Emanuele Aina> on 2016-04-04
Reviewed by Darin Adler.

Commit r196500 was a bit too eager in removing the
platformGetLaunchOptions() callsites as non-mac platform still use
that in debug builds to attach debugging tools to spawned
subprocesses (eg. gdbserver).

Instead of reinstating them and relying on each subprocess type to
implement its own platformGetLaunchOptions() version (all alike),
avoid duplication and check the *_PROCESS_CMD_PREFIX environment
variables in a single place, ChildProcessProxy::getLaunchOptions().

Doing so also improves consistency in *_PROCESS_CMD_PREFIX support:
only WEB_PROCESS_CMD_PREFIX and NETWORK_PROCESS_CMD_PREFIX worked with
both the GTK and EFL ports while PLUGIN_PROCESS_CMD_PREFIX only
worked for EFL and there was no corresponding
DATABASE_PROCESS_CMD_PREFIX implementation.

  • UIProcess/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::getLaunchOptions): Check the
appropriate *_PROCESS_CMD_PREFIX environment variable.

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::PluginProcessProxy::platformGetLaunchOptions): Drop
check for PLUGIN_PROCESS_COMMAND_PREFIX, now handled by
ChildProcessProxy::getLaunchOptions().

  • UIProcess/Databases/DatabaseProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebProcessProxy.h: Drop platformGetLaunchOptions()

prototypes.

  • UIProcess/Network/soup/NetworkProcessProxySoup.cpp:
  • UIProcess/Databases/efl/DatabaseProcessProxyEfl.cpp:
  • UIProcess/Databases/gtk/DatabaseProcessProxyGtk.cpp:
  • UIProcess/efl/WebProcessProxyEfl.cpp:
  • UIProcess/gtk/WebProcessProxyGtk.cpp: Removed, they only contained

platformGetLaunchOptions() implementations.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake: Drop removed files.
6:47 AM Changeset in webkit [199479] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199001 - [TexMap] Trim redundant guards
​https://bugs.webkit.org/show_bug.cgi?id=155927

Patch by Emanuele Aina <Emanuele Aina> on 2016-04-04
Reviewed by Žan Doberšek.

  • platform/graphics/GraphicsContext3DPrivate.cpp: Drop some redundant

checks in preprocessor guards.

6:46 AM Changeset in webkit [199478] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199000 - Rely on PlatformLayer to choose the TextureMapperPlatformLayer impl
​https://bugs.webkit.org/show_bug.cgi?id=155926

Patch by Emanuele Aina <Emanuele Aina> on 2016-04-04
Reviewed by Žan Doberšek.

Use PlatformLayer to replace a bunch of subtly different #ifdef
scattered over the codebase to choose between TextureMapperPlatformLayer
and TextureMapperPlatformLayerProxyProvider.

  • platform/graphics/GraphicsContext3DPrivate.h:
  • platform/graphics/cairo/ImageBufferDataCairo.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Use

PlatformLayer.h an inherit from PlatformLayer instead of choosing the
right implementation every time.

  • platform/graphics/texmap/TextureMapperPlatformLayer.h: Add

TEXTURE_MAPPER guards to make it unconditionally usable.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: Add

COORDINATED_GRAPHICS_THREADED guards to make it unconditionally
usable.

6:40 AM Changeset in webkit [199477] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199344 - [GTK] Rework scrollbars theming code for GTK+ 3.20
​https://bugs.webkit.org/show_bug.cgi?id=156462

Reviewed by Michael Catanzaro.

In r199292, we reworked the theming code to ensure it works with the new GTK+ CSS theming system. The same is
needed for scrollbars, this patch uses the RenderThemeGadget classes introduced in r199292 to render the native
scrollbars. The code is now split in 3 parts: stub methods for GTK+2 (since this file is compiled for
WebCoreGTK, but not used), the implementation for GTK+ < 3.20 and the implementation for GTK+ >= 3.20. This
reduces the amount of ifdefed code, and ensures that changes in new code don't break the rendering with older
versions of GTK+. I noticed that we were overriding both, the specific paint methods to render scrollbars
parts and the global paint method that renders all the scrollbar parts. We don't really need the specific paint
methods, so I've removed the implemention leaving only the paint method. This also allows us to get rid of the
GtkStyleContext cache.

  • platform/gtk/RenderThemeGadget.cpp:

(WebCore::RenderThemeGadget::create): Handle scrollbars gadgets.
(WebCore::appendElementToPath): In case of scrollbar gadget, use the scrollbar GType when creating the path to
be able to get non-CSS style properties.
(WebCore::RenderThemeGadget::opacity): Add method to get the opacity CSS style property.
(WebCore::RenderThemeScrollbarGadget::RenderThemeScrollbarGadget): Initialize m_steppers option set with the
steppers used by the theme.

  • platform/gtk/RenderThemeGadget.h:
  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::themeChangedCallback):
(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):
(WebCore::createStyleContext):
(WebCore::createChildStyleContext):
(WebCore::ScrollbarThemeGtk::themeChanged):
(WebCore::ScrollbarThemeGtk::updateThemeProperties):
(WebCore::scrollbarPartStateFlags):
(WebCore::scrollbarGadgetForLayout):
(WebCore::contentsGadgetForLayout):
(WebCore::ScrollbarThemeGtk::trackRect):
(WebCore::ScrollbarThemeGtk::hasThumb):
(WebCore::ScrollbarThemeGtk::backButtonRect):
(WebCore::ScrollbarThemeGtk::forwardButtonRect):
(WebCore::ScrollbarThemeGtk::paint):
(WebCore::paintStepper):
(WebCore::adjustRectAccordingToMargin):
(WebCore::ScrollbarThemeGtk::scrollbarThickness):
(WebCore::ScrollbarThemeGtk::minimumThumbLength):

  • platform/gtk/ScrollbarThemeGtk.h:
6:40 AM Changeset in webkit [199476] by Carlos Garcia Campos
  • 7 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r199292 - [GTK] Rework the theming code for GTK+ 3.20
​https://bugs.webkit.org/show_bug.cgi?id=156333

Reviewed by Michael Catanzaro.

.:

Add a manual test to check how themed elements are rendered.

  • ManualTests/gtk/theme.html: Added.

Source/WebCore:

During the 3.19 GTK+ release cycle, the GTK+ css system was reworked, making themes and programs rendering
themed widgets, incompatible with the new system. We were trying to fix our rendering every time GTK+ broke
something, but we were just changing whatever it was needed to make our rendering look like current GTK+ with
the default theme Adwaita. This means that our rendering will be broken for other themes or that changes in
Adwaita can break our rendering. This solution was good enough to ensure WebKitGTK+ 2.12 looked good with GTK+
3.20, but it doesn't work in the long term. We need to ensure that our theming code honors the new GTK+ CSS
properties (max-width, min-width, margin, padding, border, ...) in all the cases, not only the cases where
Adwaita uses them like we currently do.
This patch splits all rendering methods to keep the current code for previous GTK+ versions and adds new code
for GTK+ >= 3.20 using the new RenderThemeGadget classes. This makes the code easier to read, since there aren't
ifdef blocks in the functions, and we ensure we don't break previous rendering.

  • PlatformGTK.cmake: Add new files to compilation.
  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::defaultEventHandler): Check the button layout used by the theme to decide the
current buttons state.

  • platform/gtk/RenderThemeGadget.cpp: Added.

(WebCore::RenderThemeGadget::create):
(WebCore::createStyleContext):
(WebCore::appendElementToPath):
(WebCore::RenderThemeGadget::RenderThemeGadget):
(WebCore::RenderThemeGadget::~RenderThemeGadget):
(WebCore::RenderThemeGadget::marginBox):
(WebCore::RenderThemeGadget::borderBox):
(WebCore::RenderThemeGadget::paddingBox):
(WebCore::RenderThemeGadget::contentsBox):
(WebCore::RenderThemeGadget::color):
(WebCore::RenderThemeGadget::backgroundColor):
(WebCore::RenderThemeGadget::minimumSize):
(WebCore::RenderThemeGadget::preferredSize):
(WebCore::RenderThemeGadget::render):
(WebCore::RenderThemeGadget::renderFocus):
(WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget):
(WebCore::RenderThemeTextFieldGadget::RenderThemeTextFieldGadget):
(WebCore::RenderThemeTextFieldGadget::minimumSize):
(WebCore::RenderThemeToggleGadget::RenderThemeToggleGadget):
(WebCore::RenderThemeToggleGadget::render):
(WebCore::RenderThemeArrowGadget::RenderThemeArrowGadget):
(WebCore::RenderThemeArrowGadget::render):
(WebCore::RenderThemeIconGadget::RenderThemeIconGadget):
(WebCore::RenderThemeIconGadget::gtkIconSizeForPixelSize):
(WebCore::RenderThemeIconGadget::render):
(WebCore::RenderThemeIconGadget::minimumSize):

  • platform/gtk/RenderThemeGadget.h: Added.

(WebCore::RenderThemeGadget::context):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::innerSpinButtonLayout): Added this method to allow themes use a different layout for the
buttons.

  • rendering/RenderThemeGtk.cpp:

(WebCore::themeChangedCallback): Just moved this code to a common place.
(WebCore::RenderThemeGtk::RenderThemeGtk): Initialize the theme monitor in the constructor.
(WebCore::createStyleContext): Remove the render parts that are specific to GTK+ 3.20.
(WebCore::RenderThemeGtk::adjustRepaintRect): Moved inside a GTK+ < 3.20 ifdef block.
(WebCore::themePartStateFlags): Helper function to get the GtkStateFlags of a theme part for a given RenderObject.
(WebCore::shrinkToMinimumSizeAndCenterRectangle): Move this common code to a helper function.
(WebCore::setToggleSize):
(WebCore::paintToggle):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::RenderThemeGtk::popupInternalPaddingBox):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::adjustTextFieldStyle): For GTK+ 3.20 we need to ensure a minimum size for spin buttons,
so if the text field is for a spin button, we adjust the desired size here.
(WebCore::RenderThemeGtk::paintTextField): In GTK+ 3.20 the CSS gadgets used to render spin buttons are
different, so we check here if this is the entry of a spin button to use the right gadgets.
(WebCore::adjustSearchFieldIconStyle):
(WebCore::RenderThemeGtk::paintTextArea):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
(WebCore::paintSearchFieldIcon):
(WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
(WebCore::centerRectVerticallyInParentInputElement): Moved inside a GTK+ < 3.20 ifdef block.
(WebCore::RenderThemeGtk::paintSliderTrack):
(WebCore::RenderThemeGtk::adjustSliderThumbSize):
(WebCore::RenderThemeGtk::paintSliderThumb):
(WebCore::RenderThemeGtk::progressBarRectForBounds): Ensure a minimum size of progress bars in GTK+ 3.20.
(WebCore::RenderThemeGtk::paintProgressBar):
(WebCore::RenderThemeGtk::innerSpinButtonLayout): Use an horizontal layout for spin buttons.
(WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeGtk::paintInnerSpinButton):
(WebCore::styleColor):
(WebCore::RenderThemeGtk::paintMediaButton):

  • rendering/RenderThemeGtk.h:
6:40 AM Changeset in webkit [199475] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198983 - Replace all RenderTheme::popupInternalPadding methods with a single one returning a LengthBox
​https://bugs.webkit.org/show_bug.cgi?id=156098

Reviewed by Darin Adler.

The caller always wants all padding sides, so we can simplify both the caller and the implementations by using a
single method. It's also more efficient for the GTK+ port that creates and destroys the same style contexts on
every call.

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::adjustInnerStyle):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::popupInternalPaddingBox):
(WebCore::RenderTheme::popupInternalPaddingLeft): Deleted.
(WebCore::RenderTheme::popupInternalPaddingRight): Deleted.
(WebCore::RenderTheme::popupInternalPaddingTop): Deleted.
(WebCore::RenderTheme::popupInternalPaddingBottom): Deleted.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::popupInternalPaddingBox):
(WebCore::getComboBoxMetrics): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingLeft): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingRight): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingTop): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingBottom): Deleted.

  • rendering/RenderThemeGtk.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::popupInternalPaddingBox):
(WebCore::RenderThemeIOS::popupInternalPaddingRight): Deleted.

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

(WebCore::RenderThemeMac::popupInternalPaddingBox):
(WebCore::RenderThemeMac::popupInternalPaddingLeft): Deleted.
(WebCore::RenderThemeMac::popupInternalPaddingRight): Deleted.
(WebCore::RenderThemeMac::popupInternalPaddingTop): Deleted.
(WebCore::RenderThemeMac::popupInternalPaddingBottom): Deleted.

6:39 AM Changeset in webkit [199474] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r197170 - RenderTheme::controlSize* methods should take const RenderStyle&.
​https://bugs.webkit.org/show_bug.cgi?id=154708

Reviewed by Darin Adler.

No change in functionality.

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::minimumMenuListSize):
(WebCore::RenderTheme::popupInternalPaddingLeft):
(WebCore::RenderTheme::popupInternalPaddingRight):
(WebCore::RenderTheme::popupInternalPaddingTop):
(WebCore::RenderTheme::popupInternalPaddingBottom):

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

(WebCore::RenderThemeMac::controlSizeForFont):
(WebCore::RenderThemeMac::sizeForFont):
(WebCore::RenderThemeMac::sizeForSystemFont):
(WebCore::RenderThemeMac::controlSizeForSystemFont):
(WebCore::RenderThemeMac::minimumProgressBarHeight):
(WebCore::RenderThemeMac::popupInternalPaddingLeft):
(WebCore::RenderThemeMac::popupInternalPaddingRight):
(WebCore::RenderThemeMac::popupInternalPaddingTop):
(WebCore::RenderThemeMac::popupInternalPaddingBottom):
(WebCore::RenderThemeMac::minimumMenuListSize):

6:25 AM Changeset in webkit [199473] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198958 - putImageData leaves visible artifacts on retina display
​https://bugs.webkit.org/show_bug.cgi?id=156039
<rdar://problem/25482243>

Reviewed by Simon Fraser.

Inflate the repaint rect to cover anti-aliasing bits.

Source/WebCore:

Test: fast/canvas/hidpi-repaint-on-retina-leaves-bits-behind.html

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::didDraw):

LayoutTests:

  • fast/canvas/hidpi-repaint-on-retina-leaves-bits-behind-expected.html: Added.
  • fast/canvas/hidpi-repaint-on-retina-leaves-bits-behind.html: Added.
6:24 AM Changeset in webkit [199472] by Carlos Garcia Campos
  • 8 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r198956 - WebKit should dispatchDidFailProvisionalLoad while loading invalid URLs
​https://bugs.webkit.org/show_bug.cgi?id=155995
<rdar://problem/14967004>

Reviewed by Andy Estes.

Source/WebCore:

Added API Tests.

If a loading request contains an invalid URL, DocumentLoader will now dispatch
cannotShowURLError to the clients.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

Source/WebKit2:

Ensure that alternative HTML string will not be loaded back to back for
failing provisional loads.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::didFinishLoadForFrame):

  • UIProcess/WebPageProxy.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/LoadAlternateHTMLString.mm:

(-[LoadAlternateHTMLStringFromProvisionalLoadErrorController webView:didFailProvisionalNavigation:withError:]):
(-[LoadAlternateHTMLStringFromProvisionalLoadErrorController webView:didStartProvisionalNavigation:]):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/LoadInvalidURLRequest.mm: Added.

(literalURL):
(-[LoadInvalidURLNavigationActionDelegate webView:didCommitNavigation:]):
(-[LoadInvalidURLNavigationActionDelegate webView:didFailProvisionalNavigation:withError:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/LoadInvalidURLRequest.html: Added.
  • TestWebKitAPI/Tests/mac/LoadInvalidURLRequest.mm: Added.

(-[LoadInvalidURLWebFrameLoadDelegate webView:didCommitLoadForFrame:]):
(-[LoadInvalidURLWebFrameLoadDelegate webView:didFailProvisionalLoadWithError:forFrame:]):
(TestWebKitAPI::TEST):

6:14 AM Changeset in webkit [199471] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198924 - REGRESSION (r195605): ASSERTION FAILED: !NoEventDispatchAssertion::isEventDispatchForbidden()
when pressing the back button on a page with a focused subframe
​https://bugs.webkit.org/show_bug.cgi?id=156033
<rdar://problem/25446561>

Reviewed by Chris Dumez.

Source/WebCore:

Fixes an assertion failure when navigating back, by pressing the browser back button, to
the previous page from a page with a focused subframe.

Following r195605 (​https://bugs.webkit.org/show_bug.cgi?id=153449), the responsibility for
dispatching a DOM pagehide event moved from CachedFrame to PageCache and we now instantiate
a NoEventDispatchAssertion object to enforce the invariant that no additional DOM events are
dispatched as part of adding a page to the page cache. When adding a page with a focused
subframe to the page cache we focus its main frame, which implicitly defocuses the subframe
and dispatches a DOM blur event at it. Therefore an assertion failure occurs when dispatching
this DOM blur event (because a NoEventDispatchAssertion object was allocated on the stack).

Test: fast/history/back-from-page-with-focused-iframe.html

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame): Move logic to focus the main frame from here...

  • history/PageCache.cpp:

(WebCore::PageCache::addIfCacheable): to here such that any DOM blur and focus events
are dispatched before instantiate the NoEventDispatchAssertion object and enter the page
cache.

LayoutTests:

Add a test to ensure that when navigating back from a page with a focused <iframe> f, a DOM
blur event is dispatched to f, a DOM focus event is dispatched at the main frame and that
an assertion failure does not occur (only applicable in a debug build).

  • fast/history/back-from-page-with-focused-iframe-expected.txt: Added.
  • fast/history/back-from-page-with-focused-iframe.html: Added.
6:13 AM Changeset in webkit [199470] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r198919 - Fails to build in Linux / PowerPC due to different ucontext_t definition
​https://bugs.webkit.org/show_bug.cgi?id=156015

Reviewed by Michael Catanzaro.

PPC does not have mcontext_t in ucontext_t::uc_mcontext.
So we take the special way to retrieve mcontext_t in PPC.

  • heap/MachineStackMarker.cpp:

(pthreadSignalHandlerSuspendResume):

6:12 AM Changeset in webkit [199469] by Carlos Garcia Campos
  • 4 edits
    5 deletes in releases/WebKitGTK/webkit-2.12

Merge r198917 - REGRESSION (r191180): Safari does not send Referer Header to iframe src in certain situations
​https://bugs.webkit.org/show_bug.cgi?id=155754
<rdar://problem/25296445>

Unreviewed, roll out r191180 as it breaks sites and needs to be reworked.

Source/WebCore:

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::tagIdFor): Deleted.
(WebCore::TokenPreloadScanner::initiatorFor): Deleted.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Deleted.
(WebCore::TokenPreloadScanner::StartTagScanner::resourceType): Deleted.

  • html/parser/HTMLPreloadScanner.h:

LayoutTests:

  • fast/preloader/frame-src-expected.txt: Removed.
  • fast/preloader/frame-src.html: Removed.
  • fast/preloader/resources/testFrame.html: Removed.
  • http/tests/loading/preload-no-store-frame-src-expected: Removed.
  • http/tests/loading/preload-no-store-frame-src.html: Removed.
6:08 AM Changeset in webkit [199468] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198904 - SelectionController::positionForPlatform should ask EditingBehavior for platform specific behavior
​https://bugs.webkit.org/show_bug.cgi?id=41976

Reviewed by Darin Adler.

SSIA.

No new tests needed.

  • editing/EditingBehavior.h:

(WebCore::EditingBehavior::shouldAlwaysExtendSelectionFromExtentEndpoint):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::positionForPlatform):

5:55 AM Changeset in webkit [199467] by Carlos Garcia Campos
  • 27 edits in releases/WebKitGTK/webkit-2.12/Source

Merge r198869 - Make BlobData use ThreadSafeSharedBuffer instead of RawData.
​https://bugs.webkit.org/show_bug.cgi?id=156041

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No change in behavior).

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::extractFromText):
(WebCore::blobFromArrayBuffer):

  • Modules/fetch/FetchBody.h:
  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didReceiveBinaryData):

  • Modules/websockets/WebSocket.h:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::processFrame):

  • Modules/websockets/WebSocketChannel.h:
  • Modules/websockets/WebSocketChannelClient.h:

(WebCore::WebSocketChannelClient::didReceiveBinaryData):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • fileapi/Blob.cpp:

(WebCore::Blob::Blob):

  • fileapi/Blob.h:

(WebCore::Blob::create):

  • fileapi/WebKitBlobBuilder.h:
  • platform/network/BlobData.cpp:

(WebCore::BlobData::BlobData):
(WebCore::BlobDataItem::length):
(WebCore::BlobData::appendData):
(WebCore::BlobData::setContentType): Deleted.

  • platform/network/BlobData.h:

(WebCore::BlobDataItem::type):
(WebCore::BlobDataItem::data):
(WebCore::BlobDataItem::file):
(WebCore::BlobDataItem::BlobDataItem):
(WebCore::BlobData::create):
(WebCore::RawData::create): Deleted.
(WebCore::RawData::data): Deleted.
(WebCore::RawData::length): Deleted.
(WebCore::RawData::RawData): Deleted.

  • platform/network/BlobPart.h:

(WebCore::BlobPart::BlobPart):
(WebCore::BlobPart::data):
(WebCore::BlobPart::moveData):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::BlobRegistryImpl::registerFileBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::getSizeForNext):
(WebCore::BlobResourceHandle::readSync):
(WebCore::BlobResourceHandle::readDataSync):
(WebCore::BlobResourceHandle::readFileSync):
(WebCore::BlobResourceHandle::readAsync):
(WebCore::BlobResourceHandle::readDataAsync):
(WebCore::BlobResourceHandle::readFileAsync):

  • platform/network/BlobResourceHandle.h:
  • platform/network/FormData.cpp:

(WebCore::appendBlobResolved):

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::blobIsOutOfDate):
(WebCore::addEncodedBlobItemToSoupMessageBody):

  • platform/text/LineEnding.cpp:

(WebCore::normalizeToCROrLF):
(WebCore::normalizeLineEndingsToNative):
(WebCore::normalizeLineEndingsToCR): Deleted.
(WebCore::normalizeLineEndingsToLF): Deleted.

  • platform/text/LineEnding.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::responseBlob):

Source/WebKit2:

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::filesInBlob):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<BlobPart>::decode):

5:27 AM Changeset in webkit [199466] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r198868 - Change some release asserts in CodeBlock linking into debug asserts
​https://bugs.webkit.org/show_bug.cgi?id=155500

Reviewed by Filip Pizlo.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

5:23 AM Changeset in webkit [199465] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198852 - Random SerializedScriptValue cleanup.
​https://bugs.webkit.org/show_bug.cgi?id=156032

Rubberstamped by Tim Hatcher.

  • Remove two unused functions.
  • Make the class always be ThreadSafeRefCounted.
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::numberValue): Deleted.
(WebCore::SerializedScriptValue::undefinedValue): Deleted.

  • bindings/js/SerializedScriptValue.h:
5:18 AM Changeset in webkit [199464] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Make animation events non-cancelable
​https://bugs.webkit.org/show_bug.cgi?id=78110

Reviewed by Dan Bates.

Source/WebCore:

Make the animation events non-cancelable.

Test: animations/animation-events-not-cancelable.html

  • dom/AnimationEvent.cpp:

(WebCore::AnimationEvent::AnimationEvent):

LayoutTests:

  • animations/animation-events-not-cancelable-expected.txt: Added.
  • animations/animation-events-not-cancelable.html: Added.
5:16 AM Changeset in webkit [199463] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.12

Merge r198827 - [WTF] Removing a smart pointer from HashTable issues two stores to the same location
​https://bugs.webkit.org/show_bug.cgi?id=155676

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-03-29
Reviewed by Darin Adler.

Source/WTF:

While working on the hot loop of r198376, I noticed something
weird...
Every time we removed a smart pointer from the hash table,
the code generated was something like:

Load([bucket]) -> Tmp
Store(0 -> [bucket])
JumpIfZero(Tmp, ->End)
Call fastFree()
Store(-1 -> [bucket])
-> End:

The useless store before the branch is annoying, especially on ARM.

Here is what happens:

1) The destructor of the smart pointer swaps its internal value with nullptr.
2) Since the smart pointer is not a local in-register value, that nullptr

is stored in memory because it could be observable from fastFree().

3) The destructor destroy the value if not zero (or deref for RefPtr).

The "if-not-zero" may or may not be eliminated depending on what
is between getting the iterator and the call to remove().

4) fastFree() is called.
5) The deleted value is set in the bucket.

This patch adds custom deletion for those cases to avoid the useless
store. The useless null check is still eliminated when we are lucky.

I went this path instead of changing the destructor of RefPtr for two reasons:
-I need this to work in unique_ptr for JSC.
-Nulling the memory may have security advantages in the cases where we do not immediately

write over that memory again.

This patch removes 13kb out of x86_64 WebCore.

  • wtf/HashTable.h:

(WTF::HashTable::deleteBucket):
(WTF::KeyTraits>::removeIf):

  • wtf/HashTraits.h:

(WTF::HashTraits<RefPtr<P>>::customDeleteBucket):
(WTF::hashTraitsDeleteBucket):
(WTF::KeyValuePairHashTraits::customDeleteBucket):

  • wtf/text/AtomicStringHash.h:

(WTF::HashTraits<WTF::AtomicString>::isEmptyValue):
(WTF::HashTraits<WTF::AtomicString>::customDeleteBucket):

  • wtf/text/StringHash.h:

(WTF::HashTraits<String>::customDeleteBucket):

Tools:

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:
  • TestWebKitAPI/Tests/WTF/HashSet.cpp:
4:41 AM Changeset in webkit [199462] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198785 - REGRESSION (r196813): Missing plug-in placeholder is missing
​https://bugs.webkit.org/show_bug.cgi?id=155973
<rdar://problem/25068392>

Reviewed by Andy Estes.

Show unavailable plugin indicator when UnavailablePluginIndicatorState (uninitialized, hidden, visible) is not set to hidden explicitly.
It matches pre-196813 behaviour.

Unable to test.

  • rendering/RenderEmbeddedObject.h:

(WebCore::RenderEmbeddedObject::showsUnavailablePluginIndicator):

4:38 AM Changeset in webkit [199461] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.12

Merge r198780 - media/track/track-remove-track.html is flaky, crashing and failing
​https://bugs.webkit.org/show_bug.cgi?id=130971

Reviewed by Alexey Proskuryakov.
Source/WebCore:

Prevent HTMLMediaElement from being collected while it is creating media controls.
These changes prevent the test from crashing but they do not fix the flakiness,
which is caused by another bug. Fixing that is tracked by
​https://bugs.webkit.org/show_bug.cgi?id=155956.

  • html/HTMLMediaElement.cpp:

(WebCore::actionName): New, debugging-only helper function.
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize new variables.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Log the flag names to make debugging easier.
(WebCore::HTMLMediaElement::scheduleNextSourceChild): Add logging.
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Update logging.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Drive-by optimization: don't call

updateCaptionContainer here, call it before exiting configureTextTracks so we only call
it once instead of once per track group.

(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::ensureMediaControlsShadowRoot): New, wrapper around calling

ensureUserAgentShadowRoot so m_creatingControls can be set and cleared appropriately.

(WebCore::HTMLMediaElement::updateCaptionContainer): ensureUserAgentShadowRoot ->

ensureMediaControlsShadowRoot. Drive by optimization: set/test m_haveSetupCaptionContainer
so we only do this setup once.

(WebCore::HTMLMediaElement::configureTextTracks): Call updateCaptionContainer.
(WebCore::HTMLMediaElement::clearMediaPlayer): Log flag names.
(WebCore::HTMLMediaElement::hasPendingActivity): Return true when creating controls so GC

won't happen during controls setup.

(WebCore::HTMLMediaElement::updateTextTrackDisplay): ensureUserAgentShadowRoot ->

ensureMediaControlsShadowRoot.

(WebCore::HTMLMediaElement::createMediaControls): Ditto.
(WebCore::HTMLMediaElement::configureMediaControls): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Ditto.

  • html/HTMLMediaElement.h:

LayoutTests:

  • platform/mac/TestExpectations: Mark crash as flaky only.
4:38 AM Changeset in webkit [199460] by Carlos Garcia Campos
  • 6 edits
    1 add in releases/WebKitGTK/webkit-2.12/Source

Merge r198778 - REGRESSION(r192914): 10% regression on Sunspider's date-format-tofte
​https://bugs.webkit.org/show_bug.cgi?id=155559

Reviewed by Saam Barati.

Source/JavaScriptCore:

The fast path of the eval function is the super hot path in date-format-tofte.
Any performance regression is not allowed here.
Before this patch, we allocated SourceCode in the fast path.
This allocation incurs 10% performance regression.

This patch removes this allocation in the fast path.
And change the key of the EvalCodeCache to EvalCodeCache::CacheKey.
It combines RefPtr<StringImpl> and isArrowFunctionContext.
Since EvalCodeCache does not cache any eval code evaluated under the strict mode,
it is unnecessary to include several options (ThisTDZMode, and DerivedContextType) in the cache map's key.
But isArrowFunctionContext is necessary since the sloppy mode arrow function exists.

To validate this change, we add a new test that evaluates the same code
under the non-arrow function context and the arrow function context.

After introducing CacheKey, we observed 1% regression compared to the RefPtr<StringImpl> keyed case.
This is because HashMap<RefPtr<T>, ...>::get(T*) is specially optimized; this path is inlined while the normal ::get() is not inlined.
To avoid this performance regression, we introduce HashMap::fastGet, that aggressively encourages inlining.
The relationship between fastGet() and get() is similar to fastAdd() and add().
After applying this change, the evaluation shows no performance regression in comparison with the RefPtr<StringImpl> keyed case.

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::CacheKey::CacheKey):
(JSC::EvalCodeCache::CacheKey::hash):
(JSC::EvalCodeCache::CacheKey::isEmptyValue):
(JSC::EvalCodeCache::CacheKey::operator==):
(JSC::EvalCodeCache::CacheKey::isHashTableDeletedValue):
(JSC::EvalCodeCache::CacheKey::Hash::hash):
(JSC::EvalCodeCache::CacheKey::Hash::equal):
(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):
(JSC::EvalCodeCache::isCacheable):

  • interpreter/Interpreter.cpp:

(JSC::eval):

  • tests/stress/eval-in-arrow-function.js: Added.

(shouldBe):
(i):

Source/WTF:

Add HashTable::inlineLookup and HashMap::fastGet.

  • wtf/HashMap.h:
  • wtf/HashTable.h:
4:16 AM Changeset in webkit [199459] by Yusuke Suzuki
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Add @@toStringTag to GeneratorFunction
​https://bugs.webkit.org/show_bug.cgi?id=156499

Reviewed by Mark Lam.

GeneratorFunction.prototype has @@toStringTag property, "GeneratorFunction".
​https://tc39.github.io/ecma262/#sec-generatorfunction.prototype-@@tostringtag

  • runtime/GeneratorFunctionPrototype.cpp:

(JSC::GeneratorFunctionPrototype::finishCreation):

  • tests/es6.yaml:
  • tests/es6/well-known_symbols_Symbol.toStringTag_new_built-ins.js: Added.

(test):

3:50 AM Changeset in webkit [199458] by berto@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix build in glibc-based BSD systems
​https://bugs.webkit.org/show_bug.cgi?id=156533

Reviewed by Carlos Garcia Campos.

Change the order of the #elif conditionals so glibc-based BSD
systems (e.g. Debian GNU/kFreeBSD) use the code inside the
OS(FREEBSD) blocks.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::Thread::Registers::stackPointer):
(JSC::MachineThreads::Thread::Registers::framePointer):
(JSC::MachineThreads::Thread::Registers::instructionPointer):
(JSC::MachineThreads::Thread::Registers::llintPC):

3:21 AM Changeset in webkit [199457] by Carlos Garcia Campos
  • 10 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198771 - Pixel turds when bordered div is resized on SMF forum software.
​https://bugs.webkit.org/show_bug.cgi?id=155957
<rdar://problem/25010646>

Reviewed by Simon Fraser.

Use unmodified, non-snapped bounding box rect when computing dirty rects.

Source/WebCore:

Test: fast/repaint/hidpi-box-with-subpixel-height-inflates.html

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::getTrailingCorner):

  • rendering/RenderInline.h:
  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::borderBoundingBox): Deleted.

  • rendering/RenderLineBreak.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::setBestTruncatedAt):

LayoutTests:

  • fast/repaint/hidpi-box-with-subpixel-height-inflates-expected.txt: Added.
  • fast/repaint/hidpi-box-with-subpixel-height-inflates.html: Added.
3:03 AM Changeset in webkit [199456] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198753 - Setup cloned continuation renderer properly.
​https://bugs.webkit.org/show_bug.cgi?id=155640

Reviewed by Simon Fraser.

Set the "renderer has outline ancestor" flag on the cloned inline renderer when
we split the original renderer for continuation.
It ensures that when the cloned part of the continuation requests repaint, we properly
invalidate the ancestor outline (if needed).

Source/WebCore:

Test: fast/inline/outline-with-continuation-assert.html

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clone):

LayoutTests:

  • fast/inline/outline-with-continuation-assert-expected.txt: Added.
  • fast/inline/outline-with-continuation-assert.html: Added.
3:00 AM Changeset in webkit [199455] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198701 - RenderImage::repaintOrMarkForLayout fails when the renderer is detached.
​https://bugs.webkit.org/show_bug.cgi?id=155885
<rdar://problem/25359164>

Reviewed by Simon Fraser.

Making containingBlockFor* functions standalone ensures that we don't
call them on an invalid object.

Covered by existing tests.

  • dom/Element.cpp:

(WebCore::layoutOverflowRectContainsAllDescendants):

  • rendering/LogicalSelectionOffsetCaches.h:

(WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):

  • rendering/RenderElement.cpp:

(WebCore::containingBlockForFixedPosition):
(WebCore::containingBlockForAbsolutePosition):
(WebCore::containingBlockForObjectInFlow):
(WebCore::RenderElement::containingBlockForFixedPosition): Deleted.
(WebCore::RenderElement::containingBlockForAbsolutePosition): Deleted.
(WebCore::isNonRenderBlockInline): Deleted.
(WebCore::RenderElement::containingBlockForObjectInFlow): Deleted.

  • rendering/RenderElement.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleWillChange):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::containingBlock):

2:52 AM WebKitGTK/2.12.x edited by berto@igalia.com
(diff)
2:39 AM Changeset in webkit [199454] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r199246 - bmalloc: stress_aligned test fails if you increase smallMax
​https://bugs.webkit.org/show_bug.cgi?id=156414

Reviewed by Oliver Hunt.

When size exceeds alignment and is a multiple of alignment and is not
a power of two, such as 24kB with 8kB alignment, the small allocator
did not always guarantee alignment. Let's fix that.

  • bmalloc/Algorithm.h:

(bmalloc::divideRoundingUp): Math is hard.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::allocate): Align to the page size unconditionally.
Even if the page size is not a power of two, it might be a multiple of
a power of two, and we want alignment to that smaller power of two to
be guaranteed.

2:39 AM Changeset in webkit [199453] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r199115 - bmalloc: handle aligned allocations on the fast path
​https://bugs.webkit.org/show_bug.cgi?id=156302

Reviewed by Michael Saboff.

This helps keep the JavaScriptCore GC on the fast path, and it also
helps avoid fragmentation on our website stress test:

nimlang 209,584kB 198,076kB 1.06x smaller

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::allocate): Because we arrange for power-of-two size
classes to allocate at power-of-two alignments, we can allocate any
small aligned request on the small path.

  • bmalloc/Chunk.h:

(bmalloc::Chunk::bytes):
(bmalloc::Chunk::lines):
(bmalloc::Chunk::pages):
(bmalloc::Chunk::boundaryTags):
(bmalloc::Chunk::objectType): Moved some code around to provide better
API.

(bmalloc::Chunk::Chunk): Moved this code to VMHeap.

(bmalloc::Chunk::offset):
(bmalloc::Chunk::object): Use our new bytes() helper function.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateChunk): Moved code here from Chunk.

(bmalloc::VMHeap::allocateSmallChunk): Ensure that power-of-two page
sizes always begin allocation at the same alignment. Power-of-two object
sizes always request power-of-two page sizes (since that's the least
wasteful option), so if we also ensure that power-of-two page sizes get
power-of-two alignment, then everything is aligned for all small objects.

2:39 AM Changeset in webkit [199452] by Carlos Garcia Campos
  • 13 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198995 - bmalloc: segregate small and large objects again, and allocate more objects on the small path
​https://bugs.webkit.org/show_bug.cgi?id=156152

Reviewed by Sam Weinig.

Microbenchmark data suggested that it was a good idea for small and large
objects to share memory. But r198675 did not improve memory use in
full browser benchmarks.

This patch reverts to segregating small and large objects -- but without
going back to doubled VM usage -- in order to capture a few benefits:

(*) Small pages fragment the large heap. Separating them out saves a lot
of memory in our worst case fragmentation recording:

nimlang 276,076kB 209,636kB 1.32x smaller

(*) Small objects are common enough that even their slow paths benefit
from simpler code:

Execution Time:

...
facebook 234ms 216ms 1.08x faster
reddit 114ms 108ms
1.06x faster
flickr 118ms 111ms 1.06x faster
theverge 146ms 140ms
1.04x faster
...
<arithmetic mean> 107ms 102ms 1.04x faster

(*) We can use less metadata:

Memory at End:

...
list_allocate 460kB 384kB 1.2x smaller
tree_allocate 492kB 424kB
1.16x smaller
tree_churn 480kB 404kB 1.19x smaller
fragment 532kB 452kB
1.18x smaller
fragment_iterate 712kB 588kB 1.21x smaller
medium 15,152kB 11,796kB
1.28x smaller
big 15,044kB 10,976kB 1.37x smaller
...
<arithmetic mean> 7,724kB 7,190kB
1.07x smaller

This patch also takes advantage of our support for varying the page size
at runtime by allocating more objects on the small object path:

medium 178ms 150ms 1.19x faster

Some microbenchmarks report memory use increases from this change -- like
they reported memory use decreases from r198675 -- but I'm ignoring them
for now because I expect our full browser memory benchmarks to confirm
that this patch is fine.

  • bmalloc/BumpAllocator.h:

(bmalloc::BumpAllocator::BumpAllocator): Use a full unsigned because we
can allocate objects larger than 16kB - 1, and a full unsigned does not
make BumpAllocator any larger on 64bit systems.

  • bmalloc/Chunk.h:

(bmalloc::Chunk::begin):
(bmalloc::Chunk::end):
(bmalloc::Chunk::size):
(bmalloc::Chunk::objectType): Store ObjectType in the Chunk, since it only
varies by Chunk now, and not from page to page within a Chunk. Also,
union together small and large object metadata, since we will only use
one or the other. This saves memory.

(bmalloc::Chunk::Chunk): Conditionalize initialization based on object
type, since only one kind of metadata or the other can be used at runtime.

(bmalloc::Object::Object):
(bmalloc::Object::begin):
(bmalloc::SmallPage::end): Deleted.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):
(bmalloc::Heap::initializeLineMetadata): Save a little space, since we
know that lines are only 256 bytes long.

(bmalloc::Heap::initializePageMetadata): Store a dynamic page size for
each size class. We used to use only one page size (the system page size)
but that limited our ability to allocate objects larger than 1kB on the
small object path. Now we can handle any object size we want by storing
objects of that size in a custom page size.

(bmalloc::Heap::concurrentScavenge):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeSmallPages): Revert to our old linked list
strategy for storing small pages.

(bmalloc::Heap::splitAndAllocate): Object type is per Chunk now.

(bmalloc::Heap::allocateLarge): Don't nuke the small page list when
allocating a large object because the two don't share memory anymore.

(bmalloc::Heap::allocateSmallPage): Revert to our old linked list
strategy for storing small pages.

(bmalloc::Heap::deallocateSmallLine): Don't return early in the case
where this is the first free object in the page. In the case of large-ish
objects, the first free object might also be the last free object,
since there's one object per page.

(bmalloc::Heap::allocateSmallBumpRangesByMetadata): Split out some helper
lambdas to make this code clearer.

(bmalloc::Heap::allocateSmallBumpRangesByObject): Added a fast scan
for objects larger than the line size. When multiple objects fit in
a single line, it's an optimization to scan a line at a time. But when
it's one object per line, or one object per 64 lines, it's better just
to scan an object at a time.

  • bmalloc/Heap.h:

(bmalloc::Heap::allocateSmallBumpRanges):
(bmalloc::Heap::derefSmallLine): Match the changes above.

  • bmalloc/LineMetadata.h: We weren't using all those bits.
  • bmalloc/List.h:

(bmalloc::List::remove): Put a removed Node fully back into the default
(empty) state it was in before it entered the list. This change is not
observable, but it makes things clearer when you're debugging.

  • bmalloc/Object.h:

(bmalloc::Object::Object):
(bmalloc::Object::chunk):
(bmalloc::Object::offset):
(bmalloc::Object::operator+):
(bmalloc::Object::operator<=): Added some helpers for iterating by object.

  • bmalloc/ObjectType.cpp:

(bmalloc::objectType): Updated for API change.

  • bmalloc/Sizes.h:

(bmalloc::Sizes::maskObjectSize):
(bmalloc::Sizes::objectSize):
(bmalloc::Sizes::pageSize): Support more page sizes.

  • bmalloc/SmallPage.h:

(bmalloc::SmallPage::SmallPage):
(bmalloc::SmallPage::objectType): Deleted.
(bmalloc::SmallPage::setObjectType): Deleted.
(bmalloc::SmallPage::smallPageCount): Deleted.
(bmalloc::SmallPage::setSmallPageCount): Deleted. Object type is per
Chunk now, and we can infer page count from size class.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateChunk):
(bmalloc::VMHeap::allocateSmallChunk):

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateSmallPage):
(bmalloc::VMHeap::deallocateSmallPage):
(bmalloc::VMHeap::allocateLargeObject): Support our old behavior of
storing free pages in linked lists.

2:38 AM Changeset in webkit [199451] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198829 - bmalloc: support physical page sizes that don't match the virtual page size (take 2)
​https://bugs.webkit.org/show_bug.cgi?id=156003

Reviewed by Andreas Kling.

This is a memory savings on iOS devices where the virtual page size
is 16kB but the physical page size is 4kB.

Take 1 was a memory regression on 16kB virtual / 16kB physical systems
because it used a 4kB page size within a 16kB page size, allowing up to
4 different object types to mix within a physical page. Because objects
of the same type tend to deallocate at the same time, mixing objects of
different types made pages less likely to become completely empty.

(Take 1 also had a bug where it used a platform #ifdef that didn't exist.
Oops.)

Take 2 allocates units of SmallPages equal to the physical page size.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):
(bmalloc::Heap::initializeLineMetadata):
(bmalloc::Heap::allocateSmallBumpRanges):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::tryAllocateXLarge):
(bmalloc::Heap::shrinkXLarge):

  • bmalloc/Heap.h: Use the physical page size for our VM operations because

we're only concerned with returning physical pages to the OS.

  • bmalloc/VMAllocate.h:

(bmalloc::vmPageSize):
(bmalloc::vmPageShift):
(bmalloc::vmSize):
(bmalloc::vmValidate):
(bmalloc::vmPageSizePhysical):
(bmalloc::vmValidatePhysical):
(bmalloc::tryVMAllocate):
(bmalloc::vmDeallocatePhysicalPages):
(bmalloc::vmAllocatePhysicalPages):
(bmalloc::vmDeallocatePhysicalPagesSloppy):
(bmalloc::vmAllocatePhysicalPagesSloppy): Use the physical page size.

2:38 AM Changeset in webkit [199450] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198821 - bmalloc: page size should be configurable at runtime
​https://bugs.webkit.org/show_bug.cgi?id=155993

Reviewed by Andreas Kling.

This is a memory win on 32bit iOS devices, since their page sizes are
4kB and not 16kB.

It's also a step toward supporting 64bit iOS devices that have a
16kB/4kB virtual/physical page size split.

  • bmalloc/Chunk.h: Align to largeAlignment since 2 * smallMax isn't

required by the boundary tag allocator.

(bmalloc::Chunk::page): Account for the slide when accessing a page.
Each SmallPage hashes 4kB of memory. When we want to allocate a region
of memory larger than 4kB, we store our metadata in the first SmallPage
in the region and we assign a slide to the remaining SmallPages, so
they forward to that first SmallPage when accessed.

NOTE: We could use a less flexible technique that just hashed by
vmPageSize() instead of 4kB at runtime, with no slide, but I think we'll
be able to use this slide technique to make even more page sizes
dynamically at runtime, which should save some memory and simplify
the allocator.

(bmalloc::SmallPage::begin): It's invalid to access a SmallPage with
a slide, since such SmallPages do not contain meaningful data.

(bmalloc::SmallPage::end): Account for smallPageCount when computing
the size of a page.

(bmalloc::Chunk::pageBegin): Deleted.
(bmalloc::Chunk::pageEnd): Deleted.
(bmalloc::Object::pageBegin): Deleted.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap): Cache vmPageSize because computing it might require
a syscall.

(bmalloc::Heap::initializeLineMetadata): Line metadata is a vector instead
of a 2D array because we don't know how much metadata we'll need until
we know the page size.

(bmalloc::Heap::scavengeSmallPage): Be sure to revert the slide when
deallocating a page. Otherwise, the next attempt to allocate the page
will slide when initializing it, sliding to nowhere.

(bmalloc::Heap::allocateSmallBumpRanges): Account for vector change to
line metadata.

(bmalloc::Heap::allocateSmallPage): Initialize slide and smallPageCount
since they aren't constant anymore.

(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::tryAllocateXLarge):
(bmalloc::Heap::shrinkXLarge): Adopt dynamic page size.

  • bmalloc/Heap.h:
  • bmalloc/Sizes.h: smallPageSize is no longer equal to the VM page

size -- it's just the smallest VM page size we're interested in supporting.

  • bmalloc/SmallPage.h:

(bmalloc::SmallPage::slide):
(bmalloc::SmallPage::setSlide):
(bmalloc::SmallPage::smallPageCount):
(bmalloc::SmallPage::setSmallPageCount):
(bmalloc::SmallPage::ref):
(bmalloc::SmallPage::deref): Support slide and small page count as
dynamic values. This doesn't increase metadata size since sizeof(SmallPage)
rounds up to alignment anyway.

  • bmalloc/VMAllocate.h:

(bmalloc::vmPageSize):
(bmalloc::vmPageShift):
(bmalloc::vmSize):
(bmalloc::vmValidate):
(bmalloc::tryVMAllocate):
(bmalloc::vmDeallocatePhysicalPagesSloppy):
(bmalloc::vmAllocatePhysicalPagesSloppy): Treat page size as a variable.

  • bmalloc/Vector.h:

(bmalloc::Vector::initialCapacity):
(bmalloc::Vector<T>::insert):
(bmalloc::Vector<T>::grow):
(bmalloc::Vector<T>::shrink):
(bmalloc::Vector<T>::shrinkCapacity):
(bmalloc::Vector<T>::growCapacity): Treat page size as a variable.

2:38 AM Changeset in webkit [199449] by Carlos Garcia Campos
  • 5 edits
    4 adds in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198809 - bmalloc: add logging for mmap() failures
<​http://webkit.org/b/155409>
<rdar://problem/24568515>

Reviewed by Saam Barati.

This patch causes additional logging to be generated on internal
iOS builds when mmap() fails. We are trying to track down an
issue where the WebContent process runs out of VM address space
before it is killed by jetsam.

  • CMakeLists.txt: Add Logging.cpp.
  • bmalloc.xcodeproj/project.pbxproj: Add new files.
  • bmalloc/BAssert.h:

(RELEASE_BASSERT_WITH_MESSAGE): Add macro.

  • bmalloc/Logging.cpp: Added.

(bmalloc::logVMFailure): Implementation.

  • bmalloc/Logging.h: Added.

(bmalloc::logVMFailure): Declaration.

  • bmalloc/VMAllocate.h:

(bmalloc::tryVMAllocate): Call logVMFailure() on mmap() failure.

  • bmalloc/darwin/BSoftLinking.h: Copied from Source/WebCore/platform/mac/SoftLinking.h.
2:37 AM Changeset in webkit [199448] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198680 - bmalloc: stress_aligned fails when allocating a zero-sized object with XLarge alignment
​https://bugs.webkit.org/show_bug.cgi?id=155896

Reviewed by Andreas Kling.

We normally filter zero-sized allocations into small allocations, but
a zero-sized allocation can sneak through if it requires sufficiently
large alignment.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::tryAllocateXLarge): Set a floor on allocation size to
catch zero-sized allocations.

2:37 AM Changeset in webkit [199447] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198693 - Unreviewed, try to fix a crash seen on the bots.

  • bmalloc/Allocator.cpp: (bmalloc::Allocator::reallocate): We have to take the lock even if we're only reading our own data becuse LargeObject contains validation code that will read our neighbors' data as well.
2:37 AM Changeset in webkit [199446] by Carlos Garcia Campos
  • 15 edits
    1 move
    1 delete in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198679 - bmalloc: Renamed LargeChunk => Chunk
​https://bugs.webkit.org/show_bug.cgi?id=155894

Reviewed by Michael Saboff.

A Chunk can contain both small and large objects now.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::allocate):

  • bmalloc/BoundaryTag.h:

(bmalloc::BoundaryTag::isFree):

  • bmalloc/Chunk.h: Copied from Source/bmalloc/bmalloc/LargeChunk.h.

(bmalloc::Chunk::pages):
(bmalloc::Chunk::begin):
(bmalloc::Chunk::end):
(bmalloc::Chunk::Chunk):
(bmalloc::Chunk::get):
(bmalloc::Chunk::beginTag):
(bmalloc::Chunk::endTag):
(bmalloc::Chunk::offset):
(bmalloc::Chunk::object):
(bmalloc::Chunk::page):
(bmalloc::Chunk::line):
(bmalloc::SmallLine::begin):
(bmalloc::SmallPage::begin):
(bmalloc::SmallPage::end):
(bmalloc::Object::Object):
(bmalloc::Object::begin):
(bmalloc::LargeChunk::pages): Deleted.
(bmalloc::LargeChunk::begin): Deleted.
(bmalloc::LargeChunk::end): Deleted.
(bmalloc::LargeChunk::LargeChunk): Deleted.
(bmalloc::LargeChunk::get): Deleted.
(bmalloc::LargeChunk::beginTag): Deleted.
(bmalloc::LargeChunk::endTag): Deleted.
(bmalloc::LargeChunk::offset): Deleted.
(bmalloc::LargeChunk::object): Deleted.
(bmalloc::LargeChunk::page): Deleted.
(bmalloc::LargeChunk::line): Deleted.

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

(bmalloc::Heap::allocateLarge):

  • bmalloc/LargeChunk.h: Removed.
  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::LargeObject):
(bmalloc::LargeObject::merge):
(bmalloc::LargeObject::split):

  • bmalloc/Object.h:

(bmalloc::Object::chunk):

  • bmalloc/ObjectType.cpp:
  • bmalloc/Sizes.h:
  • bmalloc/SmallAllocator.h: Removed.
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::VMHeap):
(bmalloc::VMHeap::allocateChunk):
(bmalloc::VMHeap::allocateLargeChunk): Deleted.

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateLargeObject):
(bmalloc::VMHeap::deallocateLargeObject):

  • bmalloc/Zone.cpp:

(bmalloc::enumerator):

  • bmalloc/Zone.h:

(bmalloc::Zone::chunks):
(bmalloc::Zone::addChunk):
(bmalloc::Zone::largeChunks): Deleted.
(bmalloc::Zone::addLargeChunk): Deleted.

2:36 AM Changeset in webkit [199445] by Carlos Garcia Campos
  • 19 edits
    2 deletes in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198675 - bmalloc: small and large objects should share memory
​https://bugs.webkit.org/show_bug.cgi?id=155866

Reviewed by Andreas Kling.

This patch cuts our VM footprint in half. (VM footprint usually doesn't
matter, but on iOS there's an artificial VM limit around 700MB, and if
you hit it you jetsam / crash.)

It's also a step toward honoring the hardware page size at runtime,
which will reduce memory usage on iOS.

This patch is a small improvement in peak memory usage because it allows
small and large objects to recycle each other's memory. The tradeoff is
that we require more metadata, which causes more memory usage after
shrinking down from peak memory usage. In the end, we have some memory
wins and some losses, and a small win in the mean on our standard memory
benchmarks.

  • bmalloc.xcodeproj/project.pbxproj: Removed SuperChunk.
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::reallocate): Adopt a new Heap API for shrinking
large objects because it's a little more complicated than it used to be.

Don't check for equality in the XLarge case because we don't do it in
other cases, and it's unlikely that we'll be called for no reason.

  • bmalloc/BumpAllocator.h:

(bmalloc::BumpAllocator::allocate): Don't ASSERT isSmall because that's
an old concept from when small and large objects were in distinct memory
regions.

  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::deallocateSlowCase): Large objects are not
segregated anymore.

(bmalloc::Deallocator::deallocateLarge): Deleted.

  • bmalloc/Deallocator.h:

(bmalloc::Deallocator::deallocateFastCase): Don't ASSERT isSmall(). See
above.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeSmallPage):
(bmalloc::Heap::scavengeSmallPages): New helpers for returning cached
small pages to the large object heap.

(bmalloc::Heap::allocateSmallPage): Allocate small pages from the large
object heap. This is how we accomplish sharing.

(bmalloc::Heap::deallocateSmallLine): Handle large objects since we can
encounter them on this code path now.

(bmalloc::Heap::splitAndAllocate): Fixed a bug where we would sometimes
not split even though we could.

Allocating a large object also requires ref'ing its small line so that
we can alias memory between small and large objects.

(bmalloc::Heap::allocateLarge): Return cached small pages before
allocating a large object that would fit in a cached small page. This
allows some large allocations to reuse small object memory.

(bmalloc::Heap::shrinkLarge): New helper.

(bmalloc::Heap::deallocateLarge): Deleted.

  • bmalloc/Heap.h:
  • bmalloc/LargeChunk.h:

(bmalloc::LargeChunk::pageBegin):
(bmalloc::LargeChunk::pageEnd):
(bmalloc::LargeChunk::lines):
(bmalloc::LargeChunk::pages):
(bmalloc::LargeChunk::begin):
(bmalloc::LargeChunk::end):
(bmalloc::LargeChunk::LargeChunk):
(bmalloc::LargeChunk::get):
(bmalloc::LargeChunk::endTag):
(bmalloc::LargeChunk::offset):
(bmalloc::LargeChunk::object):
(bmalloc::LargeChunk::page):
(bmalloc::LargeChunk::line):
(bmalloc::SmallLine::begin):
(bmalloc::SmallLine::end):
(bmalloc::SmallPage::begin):
(bmalloc::SmallPage::end):
(bmalloc::Object::Object):
(bmalloc::Object::begin):
(bmalloc::Object::pageBegin):
(bmalloc::Object::line):
(bmalloc::Object::page): I merged all the SmallChunk metadata and code
into LargeChunk. Now we use a single class to track both small and large
metadata, so we can share memory between small and large objects.

I'm going to rename this class to Chunk in a follow-up patch.

  • bmalloc/Object.h:

(bmalloc::Object::chunk): Updated for LargeChunk transition.

  • bmalloc/ObjectType.cpp:

(bmalloc::objectType):

  • bmalloc/ObjectType.h:

(bmalloc::isXLarge):
(bmalloc::isSmall): Deleted. The difference between small and large
objects is now stored in metadata and is not a property of their
virtual address range.

  • bmalloc/SegregatedFreeList.h: One more entry because we cover all of

what used to be the super chunk in a large chunk now.

  • bmalloc/Sizes.h: Removed bit masking helpers because we don't use

address masks to distinguish small vs large object type anymore.

  • bmalloc/SmallChunk.h: Removed.
  • bmalloc/SmallPage.h:

(bmalloc::SmallPage::SmallPage): Store object type per page because any
given page can be used for large objects or small objects.

  • bmalloc/SuperChunk.h: Removed.
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::VMHeap):
(bmalloc::VMHeap::allocateLargeChunk):
(bmalloc::VMHeap::allocateSmallChunk): Deleted.
(bmalloc::VMHeap::allocateSuperChunk): Deleted.

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateLargeObject):
(bmalloc::VMHeap::deallocateLargeObject):
(bmalloc::VMHeap::allocateSmallPage): Deleted.
(bmalloc::VMHeap::deallocateSmallPage): Deleted. Removed super chunk and
small chunk support.

  • bmalloc/Zone.cpp:

(bmalloc::enumerator):

  • bmalloc/Zone.h:

(bmalloc::Zone::largeChunks):
(bmalloc::Zone::addLargeChunk):
(bmalloc::Zone::superChunks): Deleted.
(bmalloc::Zone::addSuperChunk): Deleted. Removed super chunk and
small chunk support.

2:26 AM Changeset in webkit [199444] by rniwa@webkit.org
  • 9 edits
    2 adds in trunk/Websites/perf.webkit.org

Add a summary page to v3 UI
​https://bugs.webkit.org/show_bug.cgi?id=156531

Reviewed by Stephanie Lewis.

Add new "Summary" page, which shows the average difference (better or worse) from the baseline across
multiple platforms and tests by a single number.

  • public/include/manifest.php:

(ManifestGenerator::generate): Include "summary" in manifest.json.

  • public/shared/statistics.js:

(Statistics.mean): Added.
(Statistics.median): Added.

  • public/v3/components/ratio-bar-graph.js: Added.

(RatioBarGraph): Shows a horizontal bar graph that visualizes the relative difference (e.g. 3% better).
(RatioBarGraph.prototype.update):
(RatioBarGraph.prototype.render):
(RatioBarGraph.cssTemplate):
(RatioBarGraph.htmlTemplate):

  • public/v3/index.html:
  • public/v3/main.js:

(main): Instantiate SummaryPage and add it to the navigation bar and the router.

  • public/v3/models/manifest.js:

(Manifest._didFetchManifest): Let "summary" pass through from manifest.json to main().

  • public/v3/models/measurement-set.js:

(MeasurementSet.prototype._failedToFetchJSON): Invoke the callback with an error or true in order for
the callback can detect a failure.
(MeasurementSet.prototype._invokeCallbacks): Ditto.

  • public/v3/pages/charts-page.js:

(ChartsPage.createStateForConfigurationList): Added to add a hyperlink from summary page to charts page.

  • public/v3/pages/summary-page.js: Added.

(SummaryPage): Added.
(SummaryPage.prototype.routeName): Added.
(SummaryPage.prototype.open): Added.
(SummaryPage.prototype.render): Added.
(SummaryPage.prototype._createConfigurationGroupAndStartFetchingData): Added.
(SummaryPage.prototype._constructTable): Added.
(SummaryPage.prototype._constructRatioGraph): Added.
(SummaryPage.htmlTemplate): Added.
(SummaryPage.cssTemplate): Added.
(SummaryPageConfigurationGroup): Added. Represents a set of platforms and tests shown in a single cell.
(SummaryPageConfigurationGroup.prototype.ratio): Added.
(SummaryPageConfigurationGroup.prototype.label): Added.
(SummaryPageConfigurationGroup.prototype.changeType): Added.
(SummaryPageConfigurationGroup.prototype.configurationList): Added.
(SummaryPageConfigurationGroup.prototype.fetchAndComputeSummary): Added.
(SummaryPageConfigurationGroup.prototype._computeSummary): Added.
(SummaryPageConfigurationGroup.prototype._fetchAndComputeRatio): Added. Invoked for each time series in
the set, and stores the computed ratio of the current values to the baseline in this._setToRatio.
The results are aggregated by _computeSummary as a single number later.
(SummaryPageConfigurationGroup._medianForTimeRange): Added.
(SummaryPageConfigurationGroup._fetchData): A thin wrapper to make MeasurementSet.fetchBetween promise
friendly since MeasurementSet doesn't support Promise at the moment (but it should!).

  • server-tests/api-manifest.js: Updated a test case.
2:20 AM Changeset in webkit [199443] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r198629 - Fix null dereferencing in NetworkLoad::continueCanAuthenticateAgainstProtectionSpace
​https://bugs.webkit.org/show_bug.cgi?id=155799
rdar://25289012

Reviewed by Tim Horton.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
Null-check all the things!

2:19 AM Changeset in webkit [199442] by Carlos Garcia Campos
  • 9 edits
    1 copy in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198606 - bmalloc: Added an Object helper class
​https://bugs.webkit.org/show_bug.cgi?id=155818

Reviewed by Gavin Barraclough.

Object is an abstraction that breaks out a void* into its component
metadata pointers.

This is slightly faster than recomputing them, and it enables a future
patch in which Object will tell us whether it is small or large.

  • bmalloc.xcodeproj/project.pbxproj: Added to the project.
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::reallocate): Use Object to compute size.

  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::processObjectLog):

  • bmalloc/Heap.cpp:

(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::deallocateSmallLine):

  • bmalloc/Heap.h:

(bmalloc::Heap::derefSmallLine): Use Object to deallocate.

  • bmalloc/Object.h: Added.

(bmalloc::Object::Object):
(bmalloc::Object::chunk):
(bmalloc::Object::line):
(bmalloc::Object::page): Helper class to break out a void* into its
component metadata pointers.

  • bmalloc/SmallChunk.h:

(bmalloc::SmallChunk::SmallChunk): SmallPage::get doesn't exist anymore
so we use our new helper functions instead.

(bmalloc::SmallChunk::offset):
(bmalloc::SmallChunk::object):
(bmalloc::SmallChunk::page):
(bmalloc::SmallChunk::line):
(bmalloc::SmallLine::begin):
(bmalloc::SmallLine::end):
(bmalloc::SmallPage::begin): New helpers that operate on the data
stored in Object.

(bmalloc::SmallLine::get): Deleted.
(bmalloc::SmallPage::get): Deleted.

  • bmalloc/SmallLine.h:

(bmalloc::SmallLine::refCount): Added a default ref value for convenience.

  • bmalloc/SmallPage.h:

(bmalloc::SmallPage::SmallPage):

2:17 AM Changeset in webkit [199441] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198597 - ASSERTION FAILED: y2 >= y1 in WebCore::RenderElement::drawLineForBoxSide
​https://bugs.webkit.org/show_bug.cgi?id=155791

Reviewed by Simon Fraser.

With certain combination of border rect and adjacent width, we could end up with an empty final rect.
This patch ensures that we don't try to paint this empty rect.

Source/WebCore:

Test: fast/borders/empty-outline-border-assert.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::drawLineForBoxSide):

LayoutTests:

  • fast/borders/empty-outline-border-assert-expected.txt: Added.
  • fast/borders/empty-outline-border-assert.html: Added.
2:16 AM Changeset in webkit [199440] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198594 - bmalloc: process the object log before asking for new memory
​https://bugs.webkit.org/show_bug.cgi?id=155801

Reviewed by Gavin Barraclough.

This is a step toward merging large and small objects: In future, if we
have large objects in the log, we need to process them right away to
avoid pushing up peak memory use.

But it also appears to be a speedup and memory use improvement now.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::allocate):
(bmalloc::Allocator::refillAllocatorSlowCase):
(bmalloc::Allocator::allocateLarge): Process the log before asking for
more memory.

  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::processObjectLog):
(bmalloc::Deallocator::deallocateSlowCase):

  • bmalloc/Deallocator.h: Provide a public API for processing the object log.
  • bmalloc/Heap.cpp:

(bmalloc::Heap::allocateSmallPage): Pop fragmented pages from the front
instead of from the back. This resolves a regression on tree_churn
--parallel. Popping from the front gives us the oldest pages. The oldest
pages have had the most time to accumulate free lines. They are therefore
the least fragmented on average.

  • bmalloc/List.h:

(bmalloc::List::popFront):
(bmalloc::List::insertAfter): New API to pop from front.

2:15 AM Changeset in webkit [199439] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198588 - [WebGL] Non-power-of-two texture optimization
​https://bugs.webkit.org/show_bug.cgi?id=118409

Reviewed by Dean Jackson.

Source/WebCore:

Based on a patch by Przemyslaw Szymanski <​p.szymanski3@samsung.com>

This patch optimizes usage of handleNPOTTextures. We do not need to
iterate over each texture unit if no black textures were set. This
optimization provides a few more frames per seconds for certain
draw calls.

Tested by:
(1) Existing tests: webgl/resources/webgl_test_files/conformance/textures/texture-npot.html
(2) New test case: fast/canvas/webgl/texture-alternating-npot.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::compressedTexImage2D): Use new helper method.
(WebCore::WebGLRenderingContextBase::validateNPOTTextureLevel): Added.
(WebCore::WebGLRenderingContextBase::drawArrays): Only check texture completeness
if a black texture was used.
(WebCore::WebGLRenderingContextBase::drawElements): Ditto.
(WebCore::WebGLRenderingContextBase::texImage2DBase): Use new helper method.
(WebCore::WebGLRenderingContextBase::validateTexFunc): Ditto.
(WebCore::WebGLRenderingContextBase::checkTextureCompleteness): Return flag to indicate
if a black fallbacktexture was used.

  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

  • fast/canvas/webgl/texture-alternating-npot-expected.txt: Added.
  • fast/canvas/webgl/texture-alternating-npot.html: Added.
2:13 AM Changeset in webkit [199438] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198584 - Share style by sharing RenderStyle substructures not the object itself
​https://bugs.webkit.org/show_bug.cgi?id=155787

Reviewed by Anreas Kling.

The current approach where we share RenderStyle objects between elements leads to lot of awkward and bug-prone code.
Most of the RenderStyle consists of shareable substructures. It is better to just share those.

With this patch we create shared styles with RenderStyle::clone(). Sharing is traced as state in Style::SharingResolver
instead of relying on RenderStyle equality to locate potential sharing cousins.

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::operator==):

m_altText was missing from operator==
This was exposed by TreeResolver::resolveElement change, tested by fast/css/alt-inherit-initial.html

  • style/StyleSharingResolver.cpp:

(WebCore::Style::elementHasDirectionAuto):
(WebCore::Style::SharingResolver::resolve):

Save share results to a map.

(WebCore::Style::SharingResolver::findSibling):
(WebCore::Style::SharingResolver::locateCousinList):

Instead of traversing we can now just do a hash lookup to locate a candidate cousin list.
There is no need for recursion anymore, the map covers sharing beyond immediate siblings too.
Remove most tests here as they have been already covered when sharing occured.

(WebCore::Style::canShareStyleWithControl):

  • style/StyleSharingResolver.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::TreeResolver::resolveElement):

No need to do forced setting anymore just to support style sharing.

2:11 AM Changeset in webkit [199437] by Carlos Garcia Campos
  • 4 edits
    4 adds in releases/WebKitGTK/webkit-2.12

Merge r198575 - showModalDialog code runs with “first window” set to wrong window
​https://bugs.webkit.org/show_bug.cgi?id=155710

Source/WebCore:

Reviewed by Brent Fulgham.

Test: http/tests/security/cross-origin-modal-dialog-base.html

  • page/Chrome.cpp:

(WebCore::Chrome::runModal): Null out entryScope so that the "first window"
checks inside the modal dialog won't run in the context of the original window
that presented the dialog.

LayoutTests:

Test by John Wilander.

Reviewed by Brent Fulgham.

  • http/tests/security/cross-origin-modal-dialog-base-expected.txt: Added.
  • http/tests/security/cross-origin-modal-dialog-base.html: Added.
  • http/tests/security/resources/cross-origin-modal-dialog-base-1.html: Added.
  • http/tests/security/resources/cross-origin-modal-dialog-base-2.html: Added.
  • platform/wk2/TestExpectations: Skip test until we get better showModalDialog support.
2:09 AM Changeset in webkit [199436] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198574 - userSpaceOnUse patterns are not stroked for empty object bounding box elements
​https://bugs.webkit.org/show_bug.cgi?id=109758

Patch by Said Abou-Hallawa <​sabouhallawa@apple.com> on 2016-03-22
Reviewed by Brent Fulgham.
Source/WebCore:

Checking whether the patternUnits is objectBoundingBox needs to be done
after calling collectPatternAttributes(). Otherwise the default value
will be always checked which is 'objectBoundingBox'.

Tests: svg/custom/pattern-units-fill-stroke.svg

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):
(WebCore::RenderSVGResourcePattern::applyResource):

LayoutTests:

Ensure the SVG pattern is drawn correctly if it is used as a stroke for
empty objectBoundingBox elements.

  • svg/custom/pattern-units-fill-stroke-expected.svg: Added.
  • svg/custom/pattern-units-fill-stroke.svg: Added.
1:54 AM Changeset in webkit [199435] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198571 - bmalloc: use a log scale for large-ish size classes
​https://bugs.webkit.org/show_bug.cgi?id=155770

Reviewed by Michael Saboff.

At larger sizes, precise allocation sizes don't save much memory -- and
they can cost memory when objects of distinct size classes can't
allocate together.

This is a small savings up to our current allocation limits, and it may
enable changing those limits in the long term.

  • bmalloc/Algorithm.h:

(bmalloc::log2): We use this to compute large-ish size classes.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::Allocator): Iterate by size class instead of by
object size so we can change object size limits without breaking stuff.

(bmalloc::Allocator::scavenge): Ditto.

(bmalloc::Allocator::allocateLogSizeClass): New helper function for
allocating based on log size classes.

(bmalloc::Allocator::allocateSlowCase): Account for extra size class
possibilities.

  • bmalloc/Allocator.h:

(bmalloc::Allocator::allocateFastCase): We only handle up to 512b on
the fastest fast path now.

  • bmalloc/BumpAllocator.h:

(bmalloc::BumpAllocator::validate): Deleted. I noticed that this function
had been refactored not to do anything anymore.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::initializeLineMetadata): Iterate by size class. (See
Allocator::Allocator.)

  • bmalloc/Heap.h: Use the sizeClassCount constant instead of hard coding

things.

  • bmalloc/Sizes.h:

(bmalloc::Sizes::maskSizeClass):
(bmalloc::Sizes::maskObjectSize):
(bmalloc::Sizes::logSizeClass):
(bmalloc::Sizes::logObjectSize):
(bmalloc::Sizes::sizeClass):
(bmalloc::Sizes::objectSize): Separate size class calculation between
simple size classes that can be computed with a mask and are 8-byte-precise
and complex size classes that require more math and are less precise.

  • bmalloc/SmallLine.h:

(bmalloc::SmallLine::ref):

  • bmalloc/SmallPage.h:

(bmalloc::SmallPage::SmallPage):
(bmalloc::SmallPage::ref):
(bmalloc::SmallPage::deref): Cleaned up some ASSERTs that triggered
while working on this patch.

  • bmalloc/Zone.cpp:

(bmalloc::statistics):
(bmalloc::zoneSize):
(bmalloc::Zone::Zone):
(bmalloc::size): Deleted. Renamed these symbols to work around an lldb
bug that makes it impossible to print out variables named 'size' -- which
can be a problem when working on malloc.

1:52 AM Changeset in webkit [199434] by Carlos Garcia Campos
  • 7 edits
    1 copy
    2 moves
    21 adds in releases/WebKitGTK/webkit-2.12

Merge r198561 - Restrict WebSockets header parsing according to RFC6455 and RFC7230. Based on Lamarque V. Souza's original patch.
​https://bugs.webkit.org/show_bug.cgi?id=82714

Patch by John Wilander <​wilander@apple.com> on 2016-03-22
Reviewed by Brent Fulgham.

Source/WebCore:

Tests: http/tests/websocket/tests/hybi/error-event-ready-state-non-existent-url-with-server-responding-404.html

http/tests/websocket/tests/hybi/handshake-fail-by-invalid-http-version.html
http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-accept.html
http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-extensions.html
http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-protocol.html
http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-status-line.html
http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status.html
http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1.html

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::httpURLForAuthenticationAndCookies):
(WebCore::headerHasValidHTTPVersion):

  • Check for HTTP version 1.1 and above.

(WebCore::WebSocketHandshake::readStatusLine):

  • Only allow ASCII characters in status line.
  • Only allow HTTP version 1.1 and above in status line.

(WebCore::WebSocketHandshake::readHTTPHeaders):

  • Only allow ASCII characters in values for new HTTP headers.

LayoutTests:

  • http/tests/websocket/tests/hybi/error-event-ready-state-expected.txt: Removed.
    • See comment below on the associated HTML file.
  • http/tests/websocket/tests/hybi/error-event-ready-state-non-existent-url-with-server-responding-404-expected.txt: Added.
  • http/tests/websocket/tests/hybi/error-event-ready-state-non-existent-url-with-server-responding-404.html: Added.
    • Uses PHP to respond with an HTTP 1.1 404. The old (now removed) test case failed once we restricted WebSockets to HTTP 1.1 and above because the test server responded with an HTTP 1.0 404 for non-existing files.
  • http/tests/websocket/tests/hybi/error-event-ready-state.html: Removed.
    • This test case was renamed "error-event-ready-state-non-existent-url-with-server-responding-404" to make it clear it now relies on a server responding with HTTP 1.1 404.
  • http/tests/websocket/tests/hybi/handshake-fail-by-invalid-http-version-expected.txt: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-invalid-http-version.html: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-invalid-http-version_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • Test case for lower than HTTP 1.1 versions.
  • http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header-expected.txt:
  • http/tests/websocket/tests/hybi/handshake-fail-by-more-extensions-header-expected.txt:
  • http/tests/websocket/tests/hybi/handshake-fail-by-more-protocol-header-expected.txt:
    • Updated to pass with lowercase 'must not' in the failure reason.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-accept-expected.txt: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-accept.html: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-accept_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • Test case for non-ASCII characters in new HTTP header Sec-WebSocket-Accept.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-extensions-expected.txt: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-extensions.html: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-extensions_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • Test case for non-ASCII characters in new HTTP header Sec-WebSocket-Extensions.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-protocol-expected.txt: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-protocol.html: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-protocol_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • Test case for non-ASCII characters in new HTTP header Sec-WebSocket-Protocol.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-status-line-expected.txt: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-status-line.html: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-status-line_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • Test case for non-ASCII characters in HTTP status line.
  • http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status-expected.txt: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status.html: Added.
  • http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • Test case for null character in the middle of the HTTP status line.
  • http/tests/websocket/tests/hybi/handshake-fail-by-prepended-null_wsh.py:

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • This test case was changed to prepend a null character to the actual status line. Previously it used a WebSockets frame with a prepended null before the status line. The Python WebSockets lib uses non-ASCII characters in that frame which meant the test case hit the non-ASCII check before the null check. It was confusing to me that the description and intent of the test was to run with a null in the status line, not in a frame before the status line. I believe the changed test case better reflects the intention of the test.
  • http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt: Added.
  • http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1.html: Added.
  • http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • Test case for HTTP versions higher than 1.1.
  • http/tests/websocket/tests/hybi/resources/status-404-without-body.php: Added.
    • To use with the error-event-ready-state-non-existent-url-with-server-responding-404.html test described above.
1:47 AM Changeset in webkit [199433] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.12/Source/bmalloc

Merge r198545 - bmalloc: shrink largeMax
​https://bugs.webkit.org/show_bug.cgi?id=155759

Reviewed by Michael Saboff.

If a largeChunk contains N bytes and we allocate objects of size
N / 2 + 8 bytes, then we waste 50% of physical memory at peak.

This patch sets largeMax to N / 2, reducing maximum waste to 25%.

  • bmalloc/BoundaryTag.h:
  • bmalloc/LargeChunk.h:

(bmalloc::LargeChunk::LargeChunk):

  • bmalloc/SegregatedFreeList.cpp:

(bmalloc::SegregatedFreeList::SegregatedFreeList):
(bmalloc::SegregatedFreeList::insert): Honor largeMax vs largeObjectMax.

  • bmalloc/Sizes.h: Distinguish between the largest thing we can store

in a free list (largeObjectMax) and the largest thing we're willing to
allocate (largeMax).

1:46 AM Changeset in webkit [199432] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198542 - Add null check in CachedResourceLoader::determineRevalidationPolicy
​https://bugs.webkit.org/show_bug.cgi?id=155758
rdar://problem/25108408

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-03-22
Reviewed by Jer Noble.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::frame):
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
Null-check frame() before dereferencing it.

1:43 AM Changeset in webkit [199431] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12

Merge r198530 - SharedBuffer::copy() can cause a segmentation fault.
​https://bugs.webkit.org/show_bug.cgi?id=155739

Reviewed by Ryosuke Niwa.

Based on a Blink patch by Huang Dongsung <​luxtella@company100.net>.
<​https://src.chromium.org/viewvc/blink?revision=153850&view=revision>

After SharedBuffer::copy(), SharedBuffer::append() can cause segmentation fault,
because copy() calls clone->m_buffer.append(m_segments[i], segmentSize) even if
'i' is the last index. The data size of m_segments.last() is often less than
segmentSize. So, in the cloned instance m_size < (m_buffer.size() + SUM(m_segments[i].size())).
This patch appends the exact size of the last segment instead of segmentSize.

Tested by TestWebKitAPI SharedBufferTest::copy

  • platform/SharedBuffer.cpp:

(SharedBuffer::copy):

Tools:
[Win] SharedBuffer::copy() can cause a segmentation fault.
​https://bugs.webkit.org/show_bug.cgi?id=155739

Reviewed by Ryosuke Niwa.

  • TestWebKitAPI/PlatformWin.cmake: Build and run the

SharedBuffer tests.

1:41 AM Changeset in webkit [199430] by Carlos Garcia Campos
  • 33 edits in releases/WebKitGTK/webkit-2.12/Source

Merge r198527 - Unreviewed typo fix.

  • src/compiler/translator/InfoSink.cpp:

(TInfoSinkBase::prefix): "UNKOWN" => "UNKOWN".

Source/WebCore:
Unreviewed typo fix.

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::textTrackAutomaticMenuItemText): "choosen" => "chosen"

Source/WebCore/platform/gtk/po:
Unreviewed typo fix "choosen" => "chosen"

  • as.po:
  • bg.po:
  • ca.po:
  • de.po:
  • en_GB.po:
  • es.po:
  • fr.po:
  • gl.po:
  • gu.po:
  • he.po:
  • hi.po:
  • it.po:
  • ja.po:
  • kn.po:
  • mr.po:
  • nl.po:
  • or.po:
  • pl.po:
  • pt_BR.po:
  • sl.po:
  • sv.po:
  • ta.po:
  • te.po:
  • tr.po:

Source/WebKit2:
Unreviewed typo fixes.

  • Shared/linux/WebMemorySamplerLinux.cpp:

(WebKit::WebMemorySampler::sampleWebKit): "Commited" => "Committed"

  • UIProcess/API/gtk/WebKitFileChooserRequest.cpp:

(webkit_file_chooser_request_select_files): "choosen" => "chosen"

  • UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:

(webkit_user_media_permission_request_class_init): "Wether" => "Whether"

1:38 AM Changeset in webkit [199429] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198521 - [TextureMapper] Destructing TextureMapperLayer should clean up its effect target
​https://bugs.webkit.org/show_bug.cgi?id=155718

Reviewed by Darin Adler.

TextureMapperLayer destructor should, in case of non-null effect target,
null out the effect target's mask and replica layer pointers if those
pointers point to the TextureMapperLayer object that's being destroyed,
avoiding use-after-free occurrences.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::~TextureMapperLayer):

1:37 AM Changeset in webkit [199428] by Antti Koivisto
  • 1 edit
    2 adds in trunk/LayoutTests

Crash at com.apple.JavaScriptCore: bool WTF::startsWith<WTF::StringImpl, WTF::StringImpl> + 8
​https://bugs.webkit.org/show_bug.cgi?id=156512
rdar://problem/24220567

Reviewed by Benjamin Poulain.

Land a test that verifies that setting attr to null does not crash with attribute selectors.
This was fixed by ​http://trac.webkit.org/changeset/199392.

  • fast/css/attribute-selector-null-crash-expected.html: Added.
  • fast/css/attribute-selector-null-crash.html: Added.
1:36 AM Changeset in webkit [199427] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198506 - WebCore::RenderTableCell::setCol should put a cap on the column value.
​https://bugs.webkit.org/show_bug.cgi?id=155642
<rdar://problem/15895201>

Reviewed by Simon Fraser.

This patch ensures that we don't crash when the column number is large enough.
see webkit.org/b/71135 for more information.

Source/WebCore:

Test: tables/colspan-with-large-value-crash.html

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::setCol):

LayoutTests:

  • tables/colspan-with-large-value-crash-expected.txt: Added.
  • tables/colspan-with-large-value-crash.html: Added.
1:32 AM Changeset in webkit [199426] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198498 - Very flashy scrolling on ​http://quellish.tumblr.com page
​https://bugs.webkit.org/show_bug.cgi?id=155728
rdar://problem/22299375

Reviewed by Zalan Bujtas.

​http://quellish.tumblr.com/post/126712999812/how-on-earth-the-facebook-ios-application-is-so
has many elements that are nested inside elements with non-equal corner radius clipping.
This requires building bezier paths for the rounded-rect clip which is expensive.

For many rows of the table, we can avoid the rounded-rect clipping because the intersection
of the paintDirtyRect and the clip is actually rectangular.

  • platform/graphics/FloatRoundedRect.cpp:

(WebCore::FloatRoundedRect::intersectionIsRectangular):

  • platform/graphics/FloatRoundedRect.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::clipToRect):

1:24 AM Changeset in webkit [199425] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.12

Merge r198482 - The setter of binaryType attribute in WebSocket should raise the exception.
​https://bugs.webkit.org/show_bug.cgi?id=135874

Patch by Jinwoo Jeong <​jw00.jeong@samsung.com> on 2016-03-20
Reviewed by Antonio Gomes.

Source/WebCore:

According to W3C WebSocket Specification, <​https://www.w3.org/TR/2012/CR-websockets-20120920/>
when an invalid value is set on binaryType of WebSocket, a SyntaxError should be raised.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::setBinaryType): Add a parameter to set an exception.

  • Modules/websockets/WebSocket.h: Ditto.
  • Modules/websockets/WebSocket.idl: Update that setter of binaryType could raise an exception.

LayoutTests:

According to W3C WebSocket Specification, <​https://www.w3.org/TR/2012/CR-websockets-20120920/>,
when an invalid value is set on binaryType of WebSocket, a SyntaxError should be raised.

  • http/tests/websocket/tests/hybi/binary-type.html: Catch a syntax exception when binary type is set with invalid values.
1:14 AM Changeset in webkit [199424] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r198478 - Crash in stress/regexp-matches-array-slow-put.js due to stomping on memory when having bad time
​https://bugs.webkit.org/show_bug.cgi?id=155679

Reviewed by Saam Barati.

Allocate out of line storage based on what the structure says it needs
in JSArray::tryCreateUninitialized.

  • runtime/JSArray.h:

(JSC::JSArray::tryCreateUninitialized):

12:51 AM Changeset in webkit [199423] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r198477 - Crash on DFG::WorkList thread in JSC::Heap::isCollecting for destroyed Web Worker
​https://bugs.webkit.org/show_bug.cgi?id=155678
<rdar://problem/25251439>

Reviewed by Filip Pizlo.

This fixes a crash that we saw with GuardMalloc. If the Plan was
Cancelled it may not be safe to access the VM. If the Plan was
cancelled we are just going to bail anyways, so keep the ASSERT but
short-circuit if the plan was Cancelled.

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::runThread):

12:39 AM Changeset in webkit [199422] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198471 - Data URL DecodeTask may get deleted outside main thread
​https://bugs.webkit.org/show_bug.cgi?id=155584
rdar://problem/24492104

Reviewed by David Kilzer.

Follow-up: fix a possible null pointer crash.

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::DecodingResultDispatcher::startTimer):

If timer fires under startOneShot m_decodeTask may become zero before schedule() is called.
Fix by copying schedule context to a local before calling startOneShot.

12:37 AM Changeset in webkit [199421] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198451 - ASSERTION FAILED: m_isValid == valid() in WebCore::HTMLFormControlElement::isValidFormControlElement
​https://bugs.webkit.org/show_bug.cgi?id=139481

Reviewed by Daniel Bates.

Source/WebCore:

Test: fast/forms/validity-assertion-inserting-into-datalist.html

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::insertedInto): Set the flags that will cause
"will validate" to be recomputed *before* calling willValidate().

LayoutTests:

  • fast/forms/validity-assertion-inserting-into-datalist-expected.txt: Added.
  • fast/forms/validity-assertion-inserting-into-datalist.html: Added.
12:35 AM Changeset in webkit [199420] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r198439 - Local file restrictions should not block sessionStorage access
​https://bugs.webkit.org/show_bug.cgi?id=155609
<rdar://problem/25229461>

Reviewed by Andy Estes.

Source/WebCore:

Use of 'sesssionStorage' is governed by SecurityOrigin with third party access
set to 'ShouldAllowFromThirdParty::AlwaysAllowFromThirdParty'. We should not
reject local files for this combination of arguments.

Test: storage/domstorage/sessionstorage/blocked-file-access.html

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canAccessStorage): For the case of sessionStorage,
allow local file access.

LayoutTests:

  • storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Added.
  • storage/domstorage/sessionstorage/blocked-file-access.html: Added.
  • storage/domstorage/sessionstorage/resources/blocked-example.html: Added.
12:32 AM Changeset in webkit [199419] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r198429 - Protect against excessive cache traversal
​https://bugs.webkit.org/show_bug.cgi?id=155635
rdar://problem/24241008

Reviewed by Darin Adler.

We can't handle unlimited number of parallel cache traversal requests from the client.
We'll run out of dispatch queues and other system resources. CPU will spin.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::traverse):

Add limit of maximum 3 traversals. When exceeded return nothing and log an error.

  • NetworkProcess/cache/NetworkCache.h:
12:30 AM Changeset in webkit [199418] by Carlos Garcia Campos
  • 8 edits
    11 adds in releases/WebKitGTK/webkit-2.12

Merge r198395 - crossorigin element resource loading should check HTTP redirection
​https://bugs.webkit.org/show_bug.cgi?id=130578

Reviewed by Daniel Bates and Brent Fulgham.

Source/WebCore:

Moved part of DocumentThreadableLoader redirection cross origin control code
into functions in CrossOriginAccessControl.cpp. Added cross origin control for
redirections in SubResourceLoader when policy is set to PotentiallyCrossOriginEnabled
using CrossOriginAccessControl.cpp new functions. Added a new test that checks that
cross-origin redirections are checked against CORS.

Test: http/tests/security/shape-image-cors-redirect.html

  • loader/CrossOriginAccessControl.cpp:

(WebCore::isValidCrossOriginRedirectionURL): Returns true if the redirected URL is a valid URL for cross-origin requests.
(WebCore::cleanRedirectedRequestForAccessControl): Removes all headers added by the network backend that may cause the response CORS validation to fail.

  • loader/CrossOriginAccessControl.h: Added above function prototypes.
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived): Used new CORS redirection methods of CrossOriginAccessControl.cpp.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::init): Initialize the SecurityOrigin to be used for loading the resource.
(WebCore::SubresourceLoader::willSendRequest): Added cross-origin redirection response check.
(WebCore::SubresourceLoader::checkCrossOriginAccessControl): Checks CORS and update request if needed. Returns true if control checks passed.

  • loader/SubresourceLoader.h: Added checkCrossOriginAccessControl declaration and m_origin declaration.

LayoutTests:

shape-image-cors-redirect.html checks that cross-origin redirections are checked against CORS.
It also checks that same-origin redirections are not checked against CORS.

  • http/tests/security/resources/redirect-allow-star.php: Added.
  • http/tests/security/shape-image-cors-redirect-expected.html: Added.
  • http/tests/security/shape-image-cors-redirect.html: Added.
12:25 AM Changeset in webkit [199417] by Carlos Garcia Campos
  • 8 edits
    247 copies
    737 moves
    2 adds
    245 deletes in releases/WebKitGTK/webkit-2.12/LayoutTests

Merge r198394 - Move IndexedDB regular test to web-platform-tests
​https://bugs.webkit.org/show_bug.cgi?id=155581

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Moving regular IndexedDB tests from LayoutTests/imported/w3c/indexeddb to LayoutTests/imported/w3c/web-platform-tests/IndexedDB.
Moving private browsing IndexedDB tests from LayoutTests/imported/w3c/indexeddb to LayoutTests/imported/w3c/IndexedDB-private-browsing.
Removed private prefix from private browsing IndexedDB tests since they are stored in their own folder.

Modified support.js to remove unnecessary calls to testRunner API.
Modified also IndexedDB-private-browsing/support.js to always activate testRunner private browsing mode.

LayoutTests:

Renaming indexeddb test expectation according new path and directory name.

  • TestExpectations:
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:

Apr 12, 2016:

11:53 PM Changeset in webkit [199416] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198387 - Data URL DecodeTask may get deleted outside main thread
​https://bugs.webkit.org/show_bug.cgi?id=155584
rdar://problem/24492104

Reviewed by Darin Adler.

This is unsafe as it owns strings and other types that are only safe to delete in the main thread.

There is a race between deref in dispatch() and deref in timerFired(). If the timer fires before dispatch()
exits the implicit deref will trigger deletion of DecodingResultDispatcher in the dispatching thread.

(WebCore::DataURLDecoder::DecodingResultDispatcher::timerFired):

Fix by clearing m_decodeTask when the timer fires.

11:51 PM Changeset in webkit [199415] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198377 - [XSS Auditor] Off by one in XSSAuditor::canonicalizedSnippetForJavaScript()
​https://bugs.webkit.org/show_bug.cgi?id=155624
<rdar://problem/25219962>

Unreviewed merge from Blink (patch by Tom Sepez <​tsepez@chromium.org>):
<​https://src.chromium.org/viewvc/blink?revision=201803&view=revision>

Source/WebCore:

Test: http/tests/security/xssAuditor/script-tag-with-trailing-script-and-urlencode.html

  • html/parser/XSSAuditor.cpp:

(WebCore::XSSAuditor::canonicalizedSnippetForJavaScript): Correct off-by-one error.

LayoutTests:

  • http/tests/security/xssAuditor/script-tag-with-trailing-script-and-urlencode-expected.txt: Added.
  • http/tests/security/xssAuditor/script-tag-with-trailing-script-and-urlencode.html: Added.
11:48 PM Changeset in webkit [199414] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198374 - Images in feed on ebay.com jiggle when one is hovered
​https://bugs.webkit.org/show_bug.cgi?id=155608
<rdar://problem/25160681>

The content offset in compositing layer = subpixel gap between the graphics layer and the layer bounds + layer bounds top left.

Reviewed by Simon Fraser.

Source/WebCore:

Test: compositing/hidpi-viewport-clipping-on-composited-content.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::contentOffsetInCompostingLayer):

  • rendering/RenderLayerBacking.h:

LayoutTests:

  • compositing/hidpi-viewport-clipping-on-composited-content-expected.html: Added.
  • compositing/hidpi-viewport-clipping-on-composited-content.html: Added.
11:47 PM Changeset in webkit [199413] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198372 - Don't initiate a style recall while drawing text
​https://bugs.webkit.org/show_bug.cgi?id=155618

Patch by Zalan Bujtas <Alan Bujtas> on 2016-03-17
Reviewed by Simon Fraser.

This patch ensures that we don't initiate a style recalc while in the middle of text drawing.

Source/WebCore:

Test: fast/canvas/crash-while-resizing-canvas.html

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::drawTextInternal):

LayoutTests:

  • fast/canvas/crash-while-resizing-canvas-expected.txt: Added.
  • fast/canvas/crash-while-resizing-canvas.html: Added.
11:46 PM Changeset in webkit [199412] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198370 - Improve some metadata tests
​https://bugs.webkit.org/show_bug.cgi?id=155616

Patch by Eric Carlson <​eric.carlson@apple.com> on 2016-03-17
Reviewed by Saam Barati.

  • html/track/DataCue.cpp:

(WebCore::DataCue::DataCue):
(WebCore::DataCue::setData):

11:45 PM Changeset in webkit [199411] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198361 - Some media tests are flaky.
​https://bugs.webkit.org/show_bug.cgi?id=155614

Reviewed by Eric Carlson.

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::~TextTrack):

11:44 PM Changeset in webkit [199410] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r198357 - Don't try to restore deleted MemoryIndexes if their owning object store is not restored.
​https://bugs.webkit.org/show_bug.cgi?id=155068

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/deleteindex-4-private.html

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::indexDeleted):

LayoutTests:

  • storage/indexeddb/modern/deleteindex-4-private-expected.txt: Added.
  • storage/indexeddb/modern/deleteindex-4-private.html: Added.
  • storage/indexeddb/modern/resources/deleteindex-4.js: Added.
11:41 PM Changeset in webkit [199409] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12/Source/WTF

Merge r198345 - Silence leaks in ParkingLot
​https://bugs.webkit.org/show_bug.cgi?id=155510

Reviewed by Alexey Proskuryakov.

ParkingLot has a concurrent hashtable that it reallocates on demand. It will not reallocate
it in steady state. The hashtable is sized to accommodate the high watermark of the number
of active threads - so long as the program doesn't just keep starting an unbounded number
of threads that are all active, the hashtable will stop resizing. Each resize operation is
designed to stay out of the way of the data-access-parallel normal path, in which two
threads operating on different lock addresses don't have to synchronize. To do this, it
simply drops the old hashtable without deleting it, so that threads that were still using
it don't crash. They will realize that they have the wrong hashtable before doing anything
bad, but we don't have a way of proving when all of those threads are no longer going to
read from the old hashtables. So, we just leak them.

This is a bounded leak, since the hashtable resizes exponentially. Thus the total memory
utilization of all hashtables, including the leaked ones, converges to a linear function of
the current hashtable's size (it's 2 * size of current hashtable).

But this leak is a problem for leaks tools, which will always report this leak. This is not
useful. It's better to silence the leak. That's what this patch does by ensuring that all
hashtables, including leaked ones, end up in a global vector. This is perf-neutral.

This requires making a StaticWordLock variant of WordLock. That's probably the biggest part
of this change.

  • wtf/ParkingLot.cpp:
  • wtf/WordLock.cpp:

(WTF::WordLockBase::lockSlow):
(WTF::WordLockBase::unlockSlow):
(WTF::WordLock::lockSlow): Deleted.
(WTF::WordLock::unlockSlow): Deleted.

  • wtf/WordLock.h:

(WTF::WordLockBase::lock):
(WTF::WordLockBase::isLocked):
(WTF::WordLock::WordLock):
(WTF::WordLock::lock): Deleted.
(WTF::WordLock::isLocked): Deleted.

11:37 PM Changeset in webkit [199408] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198309 - Subpixel rendering: Directly composited image layers need pixelsnapping.
​https://bugs.webkit.org/show_bug.cgi?id=155558

Reviewed by Simon Fraser.

In order to match non-composited image size/position, we need to pixelsnap both the contents and the clipping
layer bounds for directly composited images.

Source/WebCore:

Test: fast/images/hidpi-directly-composited-image-on-subpixel-position.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::resetContentsRect):
(WebCore::RenderLayerBacking::updateChildClippingStrategy):
(WebCore::RenderLayerBacking::updateImageContents):

LayoutTests:

  • fast/images/hidpi-directly-composited-image-on-subpixel-position-expected.html: Added.
  • fast/images/hidpi-directly-composited-image-on-subpixel-position.html: Added.
11:35 PM Changeset in webkit [199407] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198305 - Fix assertion failure on drive.google.com after r196052
​https://bugs.webkit.org/show_bug.cgi?id=155562

Reviewed by Jer Noble.

  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::mapToContainer):
Change float equality check to areEssentiallyEqual.
This assertion was failing because rendererMappedResult was (944.335693, 232.047409)
but result was (944.335693, 232.047394). They differ by (0, 0.000015).

11:34 PM Changeset in webkit [199406] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r198296 - ASSERTION FAILED: !edge->isPhantomAllocation() in regress/script-tests/sink-huge-activation.js.ftl-eager in debug mode
​https://bugs.webkit.org/show_bug.cgi?id=153805

Reviewed by Mark Lam.

The object allocation sinking phase uses InferredValue::isStillValid() in the opposite
way from most clients: it will do an *extra* optimization if it returns false. The
phase will first compute sink candidates and then it will compute materialization
points. If something is a sink candidate then it is not a materialization point. A
NewFunction node may appear as not being a sink candidate during the first pass, so it's
not added to the set of things that will turn into PhantomNewFunction. But on the second
pass where we add materializations, we check isStillValid() again. Now this may become
false, so that second pass thinks that NewFunction is a sink candidate (even though it's
not in the sink candidates set) and so is not a materialization point.

This manifests as the NewFunction referring to a PhantomCreateActivation or whatever.

The solution is to have the phase cache results of calls to isStillValid(). It's OK if
we just remember the result of the first call and assume that it's not a sink candidate.
That's the worst that can happen.

No new tests since this is a super hard race and sink-huge-activation seemed to already
be catching it.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
11:26 PM Changeset in webkit [199405] by Carlos Garcia Campos
  • 22 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198289 - URL Parsing should signal failure for illegal IDN
​https://bugs.webkit.org/show_bug.cgi?id=154945
<rdar://problem/8014795>

Reviewed by Brent Fulgham.

Source/WebCore:

WebCore::URL will now invalidate URLs with illegal IDN. And functions inside WebCoreNSURLExtras.h
that deal with IDN mapping will now return nil to signal error.

Test: fast/url/invalid-idn.html

  • platform/URL.cpp:

(WebCore::isSchemeFirstChar):
(WebCore::URL::init):
(WebCore::appendEncodedHostname):
(WebCore::encodeHostnames):
(WebCore::encodeRelativeString):

  • platform/mac/WebCoreNSURLExtras.h:
  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::mapHostNameWithRange):
(WebCore::hostNameNeedsDecodingWithRange):
(WebCore::hostNameNeedsEncodingWithRange):
(WebCore::decodeHostNameWithRange):
(WebCore::encodeHostNameWithRange):
(WebCore::decodeHostName):
(WebCore::encodeHostName):
(WebCore::collectRangesThatNeedMapping):
(WebCore::mapHostNames):
(WebCore::URLWithData):
(WebCore::dataWithUserTypedString):
(WebCore::URLWithUserTypedString):
(WebCore::URLWithUserTypedStringDeprecated):
(WebCore::userVisibleString):

Source/WebKit/ios:

  • Misc/WebNSStringExtrasIOS.m:

(-[NSString _web_possibleURLsForForUserTypedString:]):

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder _updateTitleForURL:]):

Source/WebKit/mac:

In this patch, we add new SPIs _webkit_URLWithUserTypedString, _webkit_decodeHostName and
_webkit_encodeHostName which will return nil while dealing with illegal IDN.

Old SPIs _web_URLWithUserTypedString, _web_decodeHostName and _web_encodeHostName are marked
deprecated as they ignore URL parsing failure.

  • History/WebHistoryItem.mm:

(-[WebHistoryItem initFromDictionaryRepresentation:]):

  • Misc/WebKitErrors.m:

(+[NSError _webKitErrorWithCode:failingURL:]):

  • Misc/WebNSFileManagerExtras.mm:

(-[NSFileManager _webkit_setMetadataURL:referrer:atPath:]):

  • Misc/WebNSPasteboardExtras.mm:

(-[NSPasteboard _web_bestURL]):

  • Misc/WebNSURLExtras.h:
  • Misc/WebNSURLExtras.mm:

(+[NSURL _web_URLWithUserTypedString:]):
(+[NSURL _webkit_URLWithUserTypedString:relativeToURL:]):
(+[NSURL _webkit_URLWithUserTypedString:]):
(-[NSString _web_decodeHostName]):
(-[NSString _web_encodeHostName]):
(-[NSString _webkit_decodeHostName]):
(-[NSString _webkit_encodeHostName]):

  • Panels/WebAuthenticationPanel.m:

(-[WebAuthenticationPanel setUpForChallenge:]):

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::canonicalizeURLString):

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController fetch:]):

  • TestWebKitAPI/Tests/Cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

LayoutTests:

  • fast/url/host-expected.txt:
  • fast/url/idna2003-expected.txt:
  • fast/url/invalid-idn-expected.txt: Added.
  • fast/url/invalid-idn.html: Added.
11:20 PM Changeset in webkit [199404] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198284 - Don't invalidate style unnecessarily when setting inline style cssText
​https://bugs.webkit.org/show_bug.cgi?id=155541
rdar://problem/23318893

Reviewed by Simon Fraser.

Source/WebCore:

We currently invalidate style when cssText is set whether the style declaration changed or not.

Based on a patch by Simon.

Test: fast/css/style-invalidation-inline-csstext.html

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::cssText):
(WebCore::PropertySetCSSStyleDeclaration::setCssText):

Invalidate only if the parsed style changed.

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::parseDeclaration):

Compare the original and new style after parsing, return result.

  • css/StyleProperties.h:

LayoutTests:

  • fast/css/style-invalidation-inline-csstext-expected.txt: Added.
  • fast/css/style-invalidation-inline-csstext.html: Added.
8:57 PM Changeset in webkit [199403] by ap@apple.com
  • 2 edits in trunk/Tools

Python test webkitpy.common.system.executive_unittest.ExecutiveTest.serial_test_kill_process is flaky
​https://bugs.webkit.org/show_bug.cgi?id=155367

Reviewed by Darin Adler.

  • Scripts/webkitpy/common/system/executive.py: (Executive.kill_process):

Don't flakily consume the return code with waitpid, callers need to do waitpid on
their own. Not sure if this line of code was even intentional.

8:14 PM Changeset in webkit [199402] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed undo change from ArrayClass to ArrayWithUndecided, which
was not intedend to land with r199397.

  • runtime/ArrayPrototype.h:

(JSC::ArrayPrototype::createStructure):

7:29 PM Changeset in webkit [199401] by dbates@webkit.org
  • 5 edits
    2 adds in trunk/Source/WebKit2

REGRESSION (r198933): Unable to login to Google account from Internet Accounts preference pane
​https://bugs.webkit.org/show_bug.cgi?id=156447
<rdar://problem/25628133>

Reviewed by Darin Adler.

Reverts the workaround landed in r199301 and teaches ProcessLauncherMac to use the code
signing identifier of the UI process as the client-identifier if it is signed. Otherwise,
we fall back to using the main bundle identifier or _NSGetProgname() depending on whether
the UI process has an associated app bundle.

  • PlatformMac.cmake: Add file Shared/mac/CodeSigning.mm.
  • Shared/mac/ChildProcessMac.mm:

(WebKit::ChildProcess::initializeSandbox):
(WebKit::codeSigningIdentifierForProcess): Deleted; moved from here to file Shared/mac/CodeSigning.mm.

  • Shared/mac/CodeSigning.h: Added.
  • Shared/mac/CodeSigning.mm: Added.

(WebKit::secCodeForCurrentProcess): Added.
(WebKit::secCodeForProcess): Added.
(WebKit::secCodeSigningInformation): Added.
(WebKit::appleSignedOrMacAppStoreSignedOrAppleDeveloperSignedRequirement): Added.
(WebKit::secCodeSigningIdentifier): Added.
(WebKit::codeSigningIdentifier): Returns the code signing identifier for the current process.
(WebKit::codeSigningIdentifierForProcess): Moved from file Shared/mac/ChildProcessMac.mm. Extracted logic
into various helper functions (above) so that it can be shared with WebKit::codeSigningIdentifier() as
well as to improve the readability of the code. Removed the OSStatus out argument that was used by callers
for logging purposes and moved such logging responsibility into WebKit::secCodeSigningIdentifier() as
a release assertion message since we always want to log this error when code signing validation fails. We
use a release assertion to cause a noticeable crash because we such failures should not occur and if they
do then we want to see crash reports so that we can handle such failures. Using a release assertion for
validation failures also simplifies the possible return values of this function as such failures represented
the only case where this function would return an empty string. We now return either a null string or a non-
empty string. We return a null string when the specified process is either unsigned or signed by a third-party;
otherwise, we return a non-empty string that represents the code signing identifier.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService): Use the code signing identifier for the client-identifier if we have one (e.g.
we are signed app). If we do not have a code signing identifier then take client-identifier to be the
bundle identifier of our main bundle. Failing that we take client-identifier to be _NSGetProgname().

  • WebKit2.xcodeproj/project.pbxproj: Add files Shared/mac/CodeSigning.{h, mm}.
6:31 PM Changeset in webkit [199400] by mark.lam@apple.com
  • 24 edits
    56 deletes in trunk

Rollout: ES6: Implement String.prototype.split and RegExp.prototype[@@split].
​https://bugs.webkit.org/show_bug.cgi?id=156013

Speculative rollout to fix 32-bit shadow-chicken.yaml/tests/v8-v6/v8-regexp.js.shadow-chicken test failure.

Not reviewed.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/GlobalObject.js:

(speciesGetter):
(speciesConstructor): Deleted.

  • builtins/PromisePrototype.js:
  • builtins/RegExpPrototype.js:

(advanceStringIndexUnicode):
(match):
(advanceStringIndex): Deleted.
(regExpExec): Deleted.
(hasObservableSideEffectsForRegExpSplit): Deleted.
(split): Deleted.

  • builtins/StringPrototype.js:

(repeat):
(split): Deleted.

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
(JSC::BytecodeIntrinsicRegistry::lookup):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • runtime/CommonIdentifiers.h:
  • runtime/ECMAScriptSpecInternalFunctions.cpp: Removed.
  • runtime/ECMAScriptSpecInternalFunctions.h: Removed.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::setGlobalThis):
(JSC::JSGlobalObject::init):
(JSC::getGetterById): Deleted.

  • runtime/PropertyDescriptor.cpp:

(JSC::PropertyDescriptor::setDescriptor):

  • runtime/RegExpObject.h:

(JSC::RegExpObject::offsetOfLastIndexIsWritable):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncSearch):
(JSC::advanceStringIndex): Deleted.
(JSC::regExpProtoFuncSplitFast): Deleted.

  • runtime/RegExpPrototype.h:
  • runtime/StringObject.h:

(JSC::jsStringWithReuse): Deleted.
(JSC::jsSubstring): Deleted.

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::jsStringWithReuse):
(JSC::jsSubstring):
(JSC::substituteBackreferencesSlow):
(JSC::splitStringByOneCharacterImpl):
(JSC::stringProtoFuncSplit):
(JSC::stringProtoFuncSubstr):
(JSC::stringProtoFuncSubstring):
(JSC::stringProtoFuncEndsWith):
(JSC::stringProtoFuncIncludes):
(JSC::stringProtoFuncIterator):
(JSC::stringProtoFuncSplitFast): Deleted.
(JSC::builtinStringSubstrInternal): Deleted.
(JSC::stringIncludesImpl): Deleted.
(JSC::builtinStringIncludesInternal): Deleted.

  • runtime/StringPrototype.h:
  • tests/es6.yaml:

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/string-prototype-properties-expected.txt:
  • js/regress/regexp-prototype-split-observable-side-effects-expected.txt: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects.html: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects2-expected.txt: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects2.html: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-flags-expected.txt: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-flags.html: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-global-expected.txt: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-global.html: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-ignoreCase-expected.txt: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-ignoreCase.html: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-multiline-expected.txt: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-multiline.html: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-sticky-expected.txt: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-sticky.html: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-unicode-expected.txt: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects3-unicode.html: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects4-expected.txt: Removed.
  • js/regress/regexp-prototype-split-observable-side-effects4.html: Removed.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects.js: Removed.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects2.js: Removed.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-flags.js: Removed.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-global.js: Removed.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-ignoreCase.js: Removed.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-multiline.js: Removed.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-sticky.js: Removed.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-unicode.js: Removed.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects4.js: Removed.
  • js/regress/script-tests/string-prototype-split-observable-side-effects.js: Removed.
  • js/regress/script-tests/string-prototype-split-observable-side-effects2.js: Removed.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-flags.js: Removed.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-global.js: Removed.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-ignoreCase.js: Removed.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-multiline.js: Removed.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-sticky.js: Removed.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-unicode.js: Removed.
  • js/regress/script-tests/string-prototype-split-observable-side-effects4.js: Removed.
  • js/regress/string-prototype-split-observable-side-effects-expected.txt: Removed.
  • js/regress/string-prototype-split-observable-side-effects.html: Removed.
  • js/regress/string-prototype-split-observable-side-effects2-expected.txt: Removed.
  • js/regress/string-prototype-split-observable-side-effects2.html: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-flags-expected.txt: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-flags.html: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-global-expected.txt: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-global.html: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-ignoreCase-expected.txt: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-ignoreCase.html: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-multiline-expected.txt: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-multiline.html: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-sticky-expected.txt: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-sticky.html: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-unicode-expected.txt: Removed.
  • js/regress/string-prototype-split-observable-side-effects3-unicode.html: Removed.
  • js/regress/string-prototype-split-observable-side-effects4-expected.txt: Removed.
  • js/regress/string-prototype-split-observable-side-effects4.html: Removed.
  • js/script-tests/Object-getOwnPropertyNames.js:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.14_String.prototype.split/S15.5.4.14_A1_T3-expected.txt:
6:07 PM Changeset in webkit [199399] by enrica@apple.com
  • 9 edits in trunk/Source/WebKit2

Should retrieve text surrounding the selection when performing lookup.
​https://bugs.webkit.org/show_bug.cgi?id=156525
rdar://problem/25043678

Reviewed by Tim Horton.

The lookup functionality requires the surrounding text to improve
the quality of the results. This patch changes the implementation of
_lookup to retrieve the text before and the text after the selection.
It also renames DictationContextCallback to SelectionContextCallback so
that it can be used for both dictation and lookup, since they both need
the surrounding text.

  • UIProcess/AutoCorrectionCallback.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _lookup:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::autocorrectionDataCallback):
(WebKit::WebPageProxy::selectionContextCallback):
(WebKit::WebPageProxy::getAutocorrectionContext):
(WebKit::WebPageProxy::getSelectionContext):
(WebKit::WebPageProxy::handleTwoFingerTapAtPoint):
(WebKit::WebPageProxy::dictationContextCallback): Deleted.
(WebKit::WebPageProxy::getLookupContextAtPoint): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::performDefaultBehaviorForKeyEvent):
(WebKit::WebPage::getSelectionContext):
(WebKit::WebPage::accessibilityObjectForMainFramePlugin):
(WebKit::WebPage::requestDictationContext):
(WebKit::WebPage::replaceSelectedText):
(WebKit::WebPage::getLookupContextAtPoint): Deleted.

5:48 PM Changeset in webkit [199398] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove 2 unused JSC options.
​https://bugs.webkit.org/show_bug.cgi?id=156526

Reviewed by Benjamin Poulain.

The options JSC_assertICSizing and JSC_dumpFailedICSizing are no longer in use
now that we have B3.

  • runtime/Options.h:
5:37 PM Changeset in webkit [199397] by keith_miller@apple.com
  • 40 edits
    5 adds in trunk

[ES6] Add support for Symbol.isConcatSpreadable.
​https://bugs.webkit.org/show_bug.cgi?id=155351

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch adds support for Symbol.isConcatSpreadable. In order to do so it was necessary to move the
Array.prototype.concat function to JS. A number of different optimizations were needed to make such the move to
a builtin performant. First, four new DFG intrinsics were added.

1) IsArrayObject (I would have called it IsArray but we use the same name for an IndexingType): an intrinsic of

the Array.isArray function.

2) IsJSArray: checks the first child is a JSArray object.
3) IsArrayConstructor: checks the first child is an instance of ArrayConstructor.
4) CallObjectConstructor: an intrinsic of the Object constructor.

IsActualObject, IsJSArray, and CallObjectConstructor can all be converted into constants in the abstract interpreter if
we are able to prove that the first child is an Array or for ToObject an Object.

In order to further improve the perfomance we also now cover more indexing types in our fast path memcpy
code. Before we would only memcpy Arrays if they had the same indexing type and did not have Array storage and
were not undecided. Now the memcpy code covers the following additional two cases: One array is undecided and
the other is a non-array storage and the case where one array is Int32 and the other is contiguous (we map this
into a contiguous array).

This patch also adds a new fast path for concat with more than one array argument by using memcpy to append
values onto the result array. This works roughly the same as the two array fast path using the same methodology
to decide if we can memcpy the other butterfly into the result butterfly.

Two new debugging tools are also added to the jsc cli. One is a version of the print function with a private
name so it can be used for debugging builtins. The other is dumpDataLog, which takes a JSValue and runs our
dataLog function on it.

Finally, this patch add a new constructor to JSValueRegsTemporary that allows it to reuse the the registers of a
JSValueOperand if the operand's use count is one.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ArrayPrototype.js:

(concatSlowPath):
(concat):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • 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::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileIsJSArray):
(JSC::DFG::SpeculativeJIT::compileIsArrayObject):
(JSC::DFG::SpeculativeJIT::compileIsArrayConstructor):
(JSC::DFG::SpeculativeJIT::compileCallObjectConstructor):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileIsArrayObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsJSArray):
(JSC::FTL::DFG::LowerDFGToB3::compileIsArrayConstructor):
(JSC::FTL::DFG::LowerDFGToB3::isArray):

  • jit/JITOperations.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionDataLogValue):

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::finishCreation):
(JSC::arrayConstructorPrivateFuncIsArrayConstructor):

  • runtime/ArrayConstructor.h:

(JSC::isArrayConstructor):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):
(JSC::arrayProtoPrivateFuncIsJSArray):
(JSC::moveElements):
(JSC::arrayProtoPrivateFuncConcatMemcpy):
(JSC::arrayProtoPrivateFuncAppendMemcpy):
(JSC::arrayProtoFuncConcat): Deleted.

  • runtime/ArrayPrototype.h:

(JSC::ArrayPrototype::createStructure):

  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.h:
  • runtime/JSArray.cpp:

(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastConcatWith): Deleted.

  • runtime/JSArray.h:

(JSC::JSArray::createStructure):
(JSC::JSArray::fastConcatType): Deleted.

  • runtime/JSArrayInlines.h: Added.

(JSC::JSArray::memCopyWithIndexingType):
(JSC::JSArray::canFastCopy):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSType.h:
  • runtime/ObjectConstructor.h:

(JSC::constructObject):

  • tests/es6.yaml:
  • tests/stress/array-concat-spread-object.js: Added.

(arrayEq):

  • tests/stress/array-concat-spread-proxy-exception-check.js: Added.

(arrayEq):

  • tests/stress/array-concat-spread-proxy.js: Added.

(arrayEq):

  • tests/stress/array-concat-with-slow-indexingtypes.js: Added.

(arrayEq):

  • tests/stress/array-species-config-array-constructor.js:

LayoutTests:

Fix tests for Symbol.isConcatSpreadable on the Symbol object.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/array-prototype-properties-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
4:57 PM Changeset in webkit [199396] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: save inspector's zoom factor as a persistent setting across sessions
​https://bugs.webkit.org/show_bug.cgi?id=156522
<rdar://problem/25635774>

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.loaded):
Initialize the setting and immediately set the zoom before the frontend page loads.

(WebInspector._increaseZoom):
(WebInspector._decreaseZoom):
(WebInspector._resetZoom):
Use the internal get/set method which updates the WebInspector.Setting.

(WebInspector._setZoomFactor):
Added. Round-trip through the frontend host method in case it further clamps the value.

(WebInspector._zoomFactor):
Added. Just return the setting, since there's no other way for zoom to have changed.

3:48 PM Changeset in webkit [199395] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Web Inspector: Dock controls are not available in toolbar if Web Inspector window leaves fullscreen
​https://bugs.webkit.org/show_bug.cgi?id=156520
<rdar://problem/22101106>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-12
Reviewed by Timothy Hatcher.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCanAttach):
Be more explicit about the attachment view check. Its intent
was to prevent allowing a 2nd level inspector from attaching
to a 1st level inspector. We can use a stronger check. Also,
remove deprecated pragmas by switching to new value.

3:42 PM Changeset in webkit [199394] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Lets not iterate over the constant pool twice every time we link a code block
​https://bugs.webkit.org/show_bug.cgi?id=156517

Reviewed by Mark Lam.

I introduced a second iteration over the constant pool when I implemented
block scoping. I did this because we must clone all the symbol tables when
we link a CodeBlock. We can just do this cloning when setting the constant
registers for the first time. There is no need to iterate over the constant
pool a second time.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::setAlternative):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::replaceConstant):
(JSC::CodeBlock::setConstantRegisters): Deleted.

3:40 PM Changeset in webkit [199393] by mark.lam@apple.com
  • 24 edits
    56 adds in trunk

ES6: Implement String.prototype.split and RegExp.prototype[@@split].
​https://bugs.webkit.org/show_bug.cgi?id=156013

Reviewed by Keith Miller.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/GlobalObject.js:

(speciesConstructor):

  • builtins/PromisePrototype.js:
  • refactored to use the @speciesConstructor internal function.
  • builtins/RegExpPrototype.js:

(advanceStringIndex):

  • refactored from @advanceStringIndexUnicode() to be match the spec. Benchmarks show that there's no advantage in doing the unicode check outside of the advanceStringIndexUnicode part. So, I simplified the code to match the spec (especially since @@split needs to call advanceStringIndex from more than 1 location).

(match):

  • Removed an unnecessary call to @Object because it was already proven above.
  • Changed to use advanceStringIndex instead of advanceStringIndexUnicode. Again, there's no perf regression for this.

(regExpExec):
(hasObservableSideEffectsForRegExpSplit):
(split):
(advanceStringIndexUnicode): Deleted.

  • builtins/StringPrototype.js:

(split):

  • Modified to use RegExp.prototype[@@split].
  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
(JSC::BytecodeIntrinsicRegistry::lookup):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • Added the @@split symbol.
  • runtime/CommonIdentifiers.h:
  • runtime/ECMAScriptSpecInternalFunctions.cpp: Added.

(JSC::esSpecIsConstructor):
(JSC::esSpecIsRegExp):

  • runtime/ECMAScriptSpecInternalFunctions.h: Added.
  • runtime/JSGlobalObject.cpp:

(JSC::getGetterById):
(JSC::JSGlobalObject::init):

  • runtime/PropertyDescriptor.cpp:

(JSC::PropertyDescriptor::setDescriptor):

  • Removed an assert that is no longer valid.
  • runtime/RegExpObject.h:
  • Made advanceStringUnicode() public so that it can be re-used by the regexp split fast path.
  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncSearch):
(JSC::advanceStringIndex):
(JSC::regExpProtoFuncSplitFast):

  • runtime/RegExpPrototype.h:
  • runtime/StringObject.h:

(JSC::jsStringWithReuse):
(JSC::jsSubstring):

  • Hoisted some utility functions from StringPrototype.cpp so that they can be reused by the regexp split fast path.
  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::stringProtoFuncSplitFast):
(JSC::stringProtoFuncSubstr):
(JSC::builtinStringSubstrInternal):
(JSC::stringProtoFuncSubstring):
(JSC::stringIncludesImpl):
(JSC::stringProtoFuncIncludes):
(JSC::builtinStringIncludesInternal):
(JSC::jsStringWithReuse): Deleted.
(JSC::jsSubstring): Deleted.
(JSC::stringProtoFuncSplit): Deleted.

  • runtime/StringPrototype.h:
  • tests/es6.yaml:

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/string-prototype-properties-expected.txt:
  • js/regress/regexp-prototype-split-observable-side-effects-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects2-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects2.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-flags-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-flags.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-global-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-global.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-ignoreCase-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-ignoreCase.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-multiline-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-multiline.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-sticky-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-sticky.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-unicode-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects3-unicode.html: Added.
  • js/regress/regexp-prototype-split-observable-side-effects4-expected.txt: Added.
  • js/regress/regexp-prototype-split-observable-side-effects4.html: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects2.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-flags.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-global.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-ignoreCase.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-multiline.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-sticky.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-unicode.js: Added.
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects4.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects2.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-flags.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-global.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-ignoreCase.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-multiline.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-sticky.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-unicode.js: Added.
  • js/regress/script-tests/string-prototype-split-observable-side-effects4.js: Added.
  • js/regress/string-prototype-split-observable-side-effects-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects.html: Added.
  • js/regress/string-prototype-split-observable-side-effects2-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects2.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-flags-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-flags.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-global-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-global.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-ignoreCase-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-ignoreCase.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-multiline-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-multiline.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-sticky-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-sticky.html: Added.
  • js/regress/string-prototype-split-observable-side-effects3-unicode-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects3-unicode.html: Added.
  • js/regress/string-prototype-split-observable-side-effects4-expected.txt: Added.
  • js/regress/string-prototype-split-observable-side-effects4.html: Added.
  • js/script-tests/Object-getOwnPropertyNames.js:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.14_String.prototype.split/S15.5.4.14_A1_T3-expected.txt:
3:38 PM Changeset in webkit [199392] by Chris Dumez
  • 7 edits
    2 adds in trunk

Attr.value should not be nullable
​https://bugs.webkit.org/show_bug.cgi?id=156515

Reviewed by Benjamin Poulain.

Source/WebCore:

Update Attr.value so that it is no longer nullable, as per:
​https://dom.spec.whatwg.org/#interface-attr

This aligns our behavior with Firefox and Chrome as well.

Test: fast/dom/Attr/value-not-nullable.html

  • dom/Attr.cpp:

(WebCore::Attr::setValueForBindings):
(WebCore::Attr::setNodeValue):
(WebCore::Attr::setValue):

  • dom/Attr.h:
  • dom/Attr.idl:

LayoutTests:

Add layout test and rebaseline existing one now that Attr.value is no
longer nullable.

  • fast/dom/Attr/value-not-nullable-expected.txt: Added.
  • fast/dom/Attr/value-not-nullable.html: Added.
  • fast/dom/coreDOM-element-attribute-js-null-expected.txt:
  • fast/dom/coreDOM-element-attribute-js-null.xhtml:
2:52 PM Changeset in webkit [199391] by keith_miller@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

AbstractValue should use the result type to filter structures
​https://bugs.webkit.org/show_bug.cgi?id=156516

Reviewed by Geoffrey Garen.

When filtering an AbstractValue with a SpeculatedType we would not use the merged type when
filtering out the valid structures (despite what the comment directly above said). This
would cause us to crash if our structure-set was Top and the two speculated types were
different kinds of cells.

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::filter):

  • tests/stress/ai-consistency-filter-cells.js: Added.

(get value):
(attribute.value.get record):
(attribute.attrs.get this):
(get foo):
(let.thisValue.return.serialize):
(let.thisValue.transformFor):

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

Web Inspector: Show the normal Native icon for all Internal objects in Heap Snapshots
​https://bugs.webkit.org/show_bug.cgi?id=156513

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-12
Reviewed by Timothy Hatcher.

  • UserInterface/Views/HeapSnapshotClusterContentView.js:

(WebInspector.HeapSnapshotClusterContentView.iconStyleClassNameForClassName):
Show the native icon for internal objects.

2:10 PM Changeset in webkit [199389] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, remove FIXME for ​https://bugs.webkit.org/show_bug.cgi?id=156457 and replace it
with a comment that describes what we do now.

  • bytecode/PolymorphicAccess.h:
2:04 PM Changeset in webkit [199388] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Make sync-buildbot.js fault safe
​https://bugs.webkit.org/show_bug.cgi?id=156498

Reviewed by Chris Dumez.

Fixed a bug that sync-buildbot.js will continue to schedule build requests from multiple test groups
if multiple test groups are simultaneously in-progress on the same builder. Also fixed a bug that if
a build request had failed without leaving a trace (i.e. no entry on any of the builders we know of),
sync-buildbot.js throws an exception.

  • server-tests/tools-buildbot-triggerable-tests.js: Added test cases.
  • tools/js/buildbot-syncer.js:

(BuildbotSyncer.prototype.scheduleRequestInGroupIfAvailable): Renamed. Optionally takes the slave name.
When this parameter is specified, schedule the request only if the specified slave is available.

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable.prototype._scheduleNextRequestInGroupIfSlaveIsAvailable): Always use
scheduleRequestInGroupIfAvailable to schedule a new build request. Using scheduleRequest for non-first
build requests was problematic when there were multiple test groups with pending requests because then
we would schedule those pending requests without checking whether there is already a pending job or if
we have previously scheduled a job. Also fallback to use any syncer / builder when groupInfo.syncer is
not set even if the next request was not the first one in the test group since we can't determine on
which builder preceding requests are processed in such cases.

  • unit-tests/buildbot-syncer-tests.js:
2:03 PM Changeset in webkit [199387] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

Web Inspector: inspector/heap/getRemoteObject.html is flakey
<​http://webkit.org/b/156077>

Unreviewed test expectations update.

  • platform/mac-wk2/TestExpectations:

(inspector/heap/getRemoteObject.html): Update bug number.

1:56 PM Changeset in webkit [199386] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

Web Inspector: inspector/heap/getRemoteObject.html is flakey
<​http://webkit.org/b/156514>

Unreviewed test expectations update.

  • platform/mac-wk2/TestExpectations:

(inspector/heap/getRemoteObject.html): Mark as flakey.

1:47 PM Changeset in webkit [199385] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fixed uninitialization of Node::DataUnion with GCC 4.8.
​https://bugs.webkit.org/show_bug.cgi?id=156507

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-12
Reviewed by Michael Catanzaro.

This change fixes run time crashes caused by access to uninitialized
memory in Node::renderer().

No new tests needed.

  • dom/Node.h:
1:47 PM Changeset in webkit [199384] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

isLocked() assertion broke builds because ConcurrentJITLock isn't always a real lock.

Rubber-stamped by Filip Pizlo.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::resultProfileForBytecodeOffset):
(JSC::CodeBlock::ensureResultProfile):

1:40 PM Changeset in webkit [199383] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] do not exit AirPlay when the screen locks
​https://bugs.webkit.org/show_bug.cgi?id=156502
<rdar://problem/24616592>

Reviewed by Jer Noble.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Add logging.
(WebCore::HTMLMediaElement::purgeBufferedDataIfPossible): Don't tell the media engine to purge

data if it is playing to a wireless target because that will drop the connection.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted): Add logging.
(WebCore::MediaElementSession::canPlayToWirelessPlaybackTarget): Drive by fix: iOS doesn't

have an explicit playbackTarget, don't test for it.

(WebCore::MediaElementSession::isPlayingToWirelessPlaybackTarget): Ditto.

1:06 PM Changeset in webkit [199382] by fpizlo@apple.com
  • 14 edits in trunk/Source

PolymorphicAccess should buffer AccessCases before regenerating
​https://bugs.webkit.org/show_bug.cgi?id=156457

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Prior to this change, whenever we added an AccessCase to a PolymorphicAccess, we would
regenerate the whole stub. That meant that we'd do O(N2) work for N access cases.

One way to fix this is to have each AccessCase generate a stub just for itself, which
cascades down to the already-generated cases. But that removes the binary switch
optimization, which makes the IC perform great even when there are many cases.

This change fixes the issue by buffering access cases. When we take slow path and try to add
a new case, the StructureStubInfo will usually just buffer the new case without generating
new code. We simply guarantee that after we buffer a case, we will take at most
Options::repatchBufferingCountdown() slow path calls before generating code for it. That
option is currently 7. Taking 7 more slow paths means that we have 7 more opportunities to
gather more access cases, or to realize that this IC is too crazy to bother with.

This change ensures that the DFG still gets the same kind of profiling. This is because the
buffered AccessCases are still part of PolymorphicAccess and so are still scanned by
GetByIdStatus and PutByIdStatus. The fact that the AccessCases hadn't been generated and so
hadn't executed doesn't change much. Mainly, it increases the likelihood that the DFG will
see an access case that !couldStillSucceed(). The DFG's existing profile parsing logic can
handle this just fine.

There are a bunch of algorithmic changes here. StructureStubInfo now caches the set of
structures that it has seen as a guard to prevent adding lots of redundant cases, in case
we see the same 7 cases after buffering the first one. This cache means we won't wastefully
allocate 7 identical AccessCase instances. PolymorphicAccess is now restructured around
having separate addCase() and regenerate() calls. That means a bit more moving data around.
So far that seems OK for performance, probably since it's O(N) work rather than O(N2) work.
There is room for improvement for future patches, to be sure.

This is benchmarking as slightly positive or neutral on JS benchmarks. It's meant to reduce
pathologies I saw in page loads.

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::PolymorphicAccess):
(JSC::PolymorphicAccess::~PolymorphicAccess):
(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::addCase):
(JSC::PolymorphicAccess::visitWeak):
(JSC::PolymorphicAccess::dump):
(JSC::PolymorphicAccess::commit):
(JSC::PolymorphicAccess::regenerate):
(JSC::PolymorphicAccess::aboutToDie):
(WTF::printInternal):
(JSC::PolymorphicAccess::regenerateWithCases): Deleted.
(JSC::PolymorphicAccess::regenerateWithCase): Deleted.

  • bytecode/PolymorphicAccess.h:

(JSC::AccessCase::isGetter):
(JSC::AccessCase::callLinkInfo):
(JSC::AccessGenerationResult::AccessGenerationResult):
(JSC::AccessGenerationResult::madeNoChanges):
(JSC::AccessGenerationResult::gaveUp):
(JSC::AccessGenerationResult::buffered):
(JSC::AccessGenerationResult::generatedNewCode):
(JSC::AccessGenerationResult::generatedFinalCode):
(JSC::AccessGenerationResult::shouldGiveUpNow):
(JSC::AccessGenerationResult::generatedSomeCode):
(JSC::PolymorphicAccess::isEmpty):
(JSC::PolymorphicAccess::size):
(JSC::PolymorphicAccess::at):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeForStubInfo):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):
(JSC::StructureStubInfo::visitWeakReferences):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::considerCaching):
(JSC::StructureStubInfo::willRepatch): Deleted.
(JSC::StructureStubInfo::willCoolDown): Deleted.

  • jit/JITOperations.cpp:
  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryRepatchIn):
(JSC::repatchIn):

  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::putByIndex):
(JSC::JSValue::structureOrNull):
(JSC::JSValue::structureOrUndefined):

  • runtime/Options.h:

Source/WTF:

  • wtf/TinyPtrSet.h:

(WTF::TinyPtrSet::add): Add a helpful comment because I had forgotten what the bool return meant.

12:37 PM Changeset in webkit [199381] by barraclough@apple.com
  • 2 edits in trunk/Source/WebCore

WebKit should adopt journal_mode=wal for all SQLite databases.
​https://bugs.webkit.org/show_bug.cgi?id=133496

Rubber stamped by Chris Dumez.

Temporarily disable on iOS - this broke a test.
(storage/websql/alter-to-info-table.html)

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):

12:35 PM Changeset in webkit [199380] by Joseph Pecoraro
  • 22 edits in trunk/Source

Web Inspector: Keyboard shortcut for "Inspect Element" only works when Web Inspector is open.
​https://bugs.webkit.org/show_bug.cgi?id=111193
<rdar://problem/13325889>

Reviewed by Timothy Hatcher.

Source/WebCore:

  • inspector/InspectorClient.h:

(WebCore::InspectorClient::elementSelectionChanged):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::setSearchingForNode):
Inform the client when element selection changes.

Source/WebInspectorUI:

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype.set inspectModeEnabled):
(WebInspector.DOMTreeManager.set inspectModeEnabled.callback):

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.setElementSelectionEnabled):
Frontend API to enable element selection.

Source/WebKit2:

  • UIProcess/API/C/WKInspector.cpp:

(WKInspectorIsElementSelectionActive):
(WKInspectorToggleElementSelection):

  • UIProcess/API/C/WKInspector.h:

API for WebKit clients to toggle element selection.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::toggleElementSelection):
(WebKit::WebInspectorProxy::elementSelectionChanged):

  • UIProcess/WebInspectorProxy.h:

(WebKit::WebInspectorProxy::isElementSelectionActive):

  • UIProcess/WebInspectorProxy.messages.in:

UIProcess update according to the state of the page
and action to tell the page to toggle.
When starting, pre-connect the inspector. When the
state changes, if we were stopping and nothing was
selected, then disconnect. Otherwise, we will bring
the inspector to the front.

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::elementSelectionChanged):

  • WebProcess/WebCoreSupport/WebInspectorClient.h:

Let the UIProcess update its cached state of whether or
not element selection is enabled or disabled.

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::startElementSelection):
(WebKit::WebInspector::stopElementSelection):
(WebKit::WebInspector::elementSelectionChanged):

  • WebProcess/WebPage/WebInspector.h:
  • WebProcess/WebPage/WebInspector.messages.in:

Messages in both directions.
UIProcess -> InspectorProcess enable/disable.
WebProcess -> UIProcess updated element selection state.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::startElementSelection):
(WebKit::WebInspectorUI::stopElementSelection):

  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebInspectorUI.messages.in:

Open the inspector and enable element selection.

12:35 PM Changeset in webkit [199379] by Joseph Pecoraro
  • 16 edits in trunk

Web Inspector: Should be able to expand Objects in Heap Allocations View to see exactly what it retains
​https://bugs.webkit.org/show_bug.cgi?id=156419
<rdar://problem/25633863>

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

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

Remove strings, and fix sort.

  • UserInterface/Models/HeapSnapshotRootPath.js:

(WebInspector.HeapSnapshotRootPath.pathComponentForIndividualEdge):
(WebInspector.HeapSnapshotRootPath.canPropertyNameBeDotAccess):
(WebInspector.HeapSnapshotRootPath.prototype.appendPropertyName):
(WebInspector.HeapSnapshotRootPath.prototype._canPropertyNameBeDotAccess):
Provide a helper to get an path component string for an individual edge.

  • UserInterface/Models/PropertyPreview.js:

(WebInspector.PropertyPreview):
Fix an assert that may have errantly fired for an empty string name.

  • UserInterface/Proxies/HeapSnapshotNodeProxy.js:

(WebInspector.HeapSnapshotNodeProxy):
(WebInspector.HeapSnapshotNodeProxy.deserialize):
Include "hasChildren" property in the original proxy message.

(WebInspector.HeapSnapshotNodeProxy.prototype.retainedNodes):
The method now also returns a list of edges for each of the retained nodes.

  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

(WebInspector.HeapSnapshotInstanceDataGridNode):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.sort):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populate):
An instance DataGrid node can now show children. It can expand to show
its retained node graph.

  • UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:

(HeapSnapshot.instancesWithClassName):
(HeapSnapshot.prototype.dominatedNodes):
(HeapSnapshot.prototype.retainers):
(HeapSnapshot.prototype.serializeNode):
Remove unnecessary calls to bind in favor of using the thisObject argument.

(HeapSnapshot.prototype.retainedNodes):
Return a parallel list of edges for each of the nodes.

  • UserInterface/Views/HeapSnapshotClassDataGridNode.js:

(WebInspector.HeapSnapshotClassDataGridNode.prototype.createCellContent):
(WebInspector.HeapSnapshotClassDataGridNode.prototype._populate):

  • UserInterface/Views/HeapSnapshotClusterContentView.js:

(WebInspector.HeapSnapshotClusterContentView.prototype.get summaryContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype.get instancesContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype.shown):
(WebInspector.HeapSnapshotClusterContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype.get navigationItems): Deleted.
(WebInspector.HeapSnapshotClusterContentView.prototype._contentViewExtraArguments): Deleted.
(WebInspector.HeapSnapshotClusterContentView.prototype._toggleShowInternalObjectsSetting): Deleted.
(WebInspector.HeapSnapshotClusterContentView.prototype._updateViewsForShowInternalObjectsSettingValue): Deleted.
(WebInspector.HeapSnapshotClusterContentView.prototype._updateShowInternalObjectsButtonNavigationItem): Deleted.

  • UserInterface/Views/HeapSnapshotInstancesContentView.js:

(WebInspector.HeapSnapshotInstancesContentView):
(WebInspector.HeapSnapshotInstancesContentView.prototype.get showInternalObjects): Deleted.
(WebInspector.HeapSnapshotInstancesContentView.prototype.set showInternalObjects): Deleted.

  • UserInterface/Views/HeapSnapshotInstancesDataGridTree.js:

(WebInspector.HeapSnapshotInstancesDataGridTree.prototype._populateTopLevel):
(WebInspector.HeapSnapshotInstancesDataGridTree):
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.get includeInternalObjects): Deleted.
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.set includeInternalObjects): Deleted.

  • UserInterface/Views/HeapSnapshotSummaryContentView.js:

Remove the show/hide internal objects button. In the Instances view we will
only show non-Internal objects at the top level, and show internal objects
when those instances are expanded.

LayoutTests:

  • inspector/unit-tests/heap-snapshot-expected.txt:
  • inspector/unit-tests/heap-snapshot.html:

Add a quick test that retainedNodes returns a list of edges.

11:44 AM Changeset in webkit [199378] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r199360): assertion hit in Element::fastGetAttribute()
​https://bugs.webkit.org/show_bug.cgi?id=156509

Reviewed by Ryosuke Niwa.

Stop using fastGetAttribute() / setAttributeWithoutSynchronization()
given that DOMTokenList is used for the class attribute and we need
to synchronize in this case.

No new tests, already covered by existing tests.

  • html/DOMTokenList.cpp:

(WebCore::DOMTokenList::updateAssociatedAttributeFromTokens):
(WebCore::DOMTokenList::tokens):

11:40 AM Changeset in webkit [199377] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[RTL Scrollbars] Overlay scrollbars push contents inwards
​https://bugs.webkit.org/show_bug.cgi?id=156225
<rdar://problem/25137040>

Reviewed by Darin Adler.

Source/WebCore:

The contents should be pushed in by the occupied width of the
scrollbar, which is 0 for overlay scrollbars.

Test: fast/scrolling/rtl-scrollbars-overlay-no-push-contents.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::computeScrollDimensions):

LayoutTests:

  • fast/scrolling/rtl-scrollbars-overlay-no-push-contents-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-overlay-no-push-contents.html: Added.
11:38 AM Changeset in webkit [199376] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

There is a race with the compiler thread and the main thread with result profiles
​https://bugs.webkit.org/show_bug.cgi?id=156503

Reviewed by Filip Pizlo.

The compiler thread should not be asking for a result
profile while the execution thread is creating one.
We must guard against such races with a lock.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::resultProfileForBytecodeOffset):
(JSC::CodeBlock::ensureResultProfile):
(JSC::CodeBlock::capabilityLevel):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::couldTakeSlowCase):
(JSC::CodeBlock::numberOfResultProfiles):
(JSC::CodeBlock::specialFastCaseProfileCountForBytecodeOffset):
(JSC::CodeBlock::ensureResultProfile): Deleted.

11:33 AM Changeset in webkit [199375] by mmaxfield@apple.com
  • 14 edits in trunk

[OS X] Flakey crash after ScrollAnimatorMac destruction
​https://bugs.webkit.org/show_bug.cgi?id=156372

Reviewed by Darin Adler.

Source/WebCore:

Previously, we were disabling the mock scrollbars using JavaScript after
the WebView was created. However, enabling these mock scrollbars can be
triggered with a bit of state inside the WebPreferences object, which
means WebKit clients can change it at any point. DumpRenderTree is doing
this during the document's lifetime.

This means that the creation of the Scrollbar objects saw a non-mock
ScrollbarTheme, but the destruction of the Scrollbar objects saw a mock
ScrollbarTheme. Therefore, the non-mock ScrollbarTheme doesn't get
cleaned up correctly (ScrollAnimatorMac::willRemoveVerticalScrollbar()
returns early because it sees that there is nothing to deregister
due to the ScrollbarTheme being mocked).

This cleanup is necessary because it sets the NSScrollerImp's delegate
to nil before the NSScrollerImpDelegate gets destroyed. Because the
cleanup wasn't happening, the delegate pointer wasn't getting set to
nil, so the pointer was dangling, and AppKit was following it and
crashing.

Because the clients of this bit of state can change it at any time,
it is incorrect to change it in JavaScript. Instead, the client must
manage this bit of state (so the client and the web process are always
in sync). Therefore, the correct way to set this bit of state must be
done in the test runner rather than Javascript internals. The mechanism
we have to do that is the <!-- webkit-test-runner --> comment at the
beginning of the test. This patch migrates to this mechanism and removes
the old internals method.

Test: fast/scrolling/rtl-scrollbars-animation-property.html

  • page/Settings.cpp:
  • testing/Internals.cpp:

(WebCore::Internals::setMockScrollbarsEnabled): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Tools:

Implement the new <!-- webkit-test-runner --> flag.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::ensureViewSupportsOptionsForTest):
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::TestController::resetStateToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::invoke):

  • WebKitTestRunner/TestOptions.h:
  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WKR::PlatformWebView::viewSupportsOptions):

LayoutTests:

Migrate to the new mechanism for disabling mock scrollbars in tests.

  • fast/scrolling/rtl-scrollbars-animation-property.html:
10:55 AM Changeset in webkit [199374] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: clearing the console should exit all console groups
​https://bugs.webkit.org/show_bug.cgi?id=156496
<rdar://problem/25676416>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._logCleared):
Reset nesting level to zero.

10:40 AM Changeset in webkit [199373] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r199339.
​https://bugs.webkit.org/show_bug.cgi?id=156505

memset_s is indeed necessary (Requested by alexchristensen_ on
#webkit).

Reverted changeset:

"Build fix after r199299."
​https://bugs.webkit.org/show_bug.cgi?id=155508
​http://trac.webkit.org/changeset/199339

10:27 AM Changeset in webkit [199372] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

MIPS: add MacroAssemblerMIPS::store8(TrustedImm32,ImplicitAddress)
​https://bugs.webkit.org/show_bug.cgi?id=156481

This method with this signature is used by r199075, and therefore
WebKit doesn't build on MIPS since then.

Patch by Guillaume Emont <​guijemont@igalia.com> on 2016-04-12
Reviewed by Mark Lam.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::store8):

10:08 AM Changeset in webkit [199371] by Darin Adler
  • 7 edits in trunk/Source/WebCore

Remove UsePointersEvenForNonNullableObjectArguments from SVG lists
​https://bugs.webkit.org/show_bug.cgi?id=156494

Reviewed by Chris Dumez.

  • bindings/scripts/CodeGenerator.pm:

(ShouldPassWrapperByReference): For now, don't do this for any tear-off classes.
This includes the items stored in most SVG list classes.

  • svg/SVGLengthList.idl: Removed UsePointersEvenForNonNullableObjectArguments.
  • svg/SVGNumberList.idl: Ditto.
  • svg/SVGPointList.idl: Ditto.
  • svg/SVGTransformList.idl: Ditto.
  • svg/SVGPathSegList.idl: Removed UsePointersEvenForNonNullableObjectArguments.

Marked the arguments nullable, and added FIXMEs about returning later since they
don't really need to be nullable. But fixing this requires some reworking of the
SVG list template and it's not urgent at this time. Preserves behavior where we
get an exception when passing null, it's just an SVG exception instead of TypeError.

9:58 AM Changeset in webkit [199370] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198243 - Occasional crash under GraphicsContext::platformContext() when dragging Google maps
​https://bugs.webkit.org/show_bug.cgi?id=155521
rdar://problem/24357307

Reviewed by Tim Horton.

It's possible for createDragImageForSelection() to return a null image, if the bounds
of the selection are an empty rect. That would cause a crash under convertImageToBitmap()
because a zero-sized ShareableBitmap will return a null GraphicsContext.

To avoid this, early return from DragController::startDrag() if the dragImage is null.

I wasn't able to come up with a test for this.

  • page/DragController.cpp:

(WebCore::DragController::startDrag):

9:57 AM Changeset in webkit [199369] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198238 - Delay HTMLFormControlElement::focus() call until after layout is finished.
​https://bugs.webkit.org/show_bug.cgi?id=155503
<rdar://problem/24046635>

Reviewed by Simon Fraser.

Calling focus on a form element can trigger arbitrary JS code which could interfere with
the ongoing layout.
This patch delays HTMLFormControlElement::focus() call until after layout is finished.
If we are currently not in the middle of a layout, HTMLFormControlElement::focus() is delayed until
after style resolution is done.

Covered by LayoutTests/fast/dom/adopt-node-crash-2.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::updateBackingStore):

  • dom/Document.cpp:

(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::updateLayout):
(WebCore::Document::updateLayoutIfDimensionsOutOfDate):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::renderWidgetLoadingPlugin):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::didAttachRenderers):

  • page/FrameView.cpp:

(WebCore::FrameView::layout):
(WebCore::FrameView::queuePostLayoutCallback):
(WebCore::FrameView::flushPostLayoutTasksQueue):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::sendResizeEventIfNeeded):

  • page/FrameView.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::imageChanged):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):

9:50 AM Changeset in webkit [199368] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.12

Merge r198216 - REGRESSION (196383): Class change invalidation does not handle :not correctly
​https://bugs.webkit.org/show_bug.cgi?id=155493
<rdar://problem/24846762>

Reviewed by Andreas Kling.

We fail to invalidate bar style in

:not(.foo) bar { }

when class foo is added or removed.

There is a logic error in the invalidation code. It assumes that class addition can only make new selectors match
and removal make them not match. This is not true when :not is present.

  • style/AttributeChangeInvalidation.h:

(WebCore::Style::AttributeChangeInvalidation::AttributeChangeInvalidation):

  • style/ClassChangeInvalidation.cpp:

(WebCore::Style::ClassChangeInvalidation::invalidateStyle):

Invalidate style and collect full set of rules that may affect descendant style.

(WebCore::Style::ClassChangeInvalidation::invalidateDescendantStyle):

Invalidate with this set both before and after committing the changes.

(WebCore::Style::ClassChangeInvalidation::computeClassChange): Deleted.

  • style/ClassChangeInvalidation.h:

(WebCore::Style::ClassChangeInvalidation::ClassChangeInvalidation):
(WebCore::Style::ClassChangeInvalidation::~ClassChangeInvalidation):

LayoutTests:
Class change invalidation does not handle :not correctly
​https://bugs.webkit.org/show_bug.cgi?id=155493
<rdar://problem/24846762>

Reviewed by Andreas Kling.

  • fast/css/style-invalidation-attribute-change-descendants-expected.txt:
  • fast/css/style-invalidation-attribute-change-descendants.html:

Also add :not case for attribute changes (which handles this correctly already).

  • fast/css/style-invalidation-class-change-descendants-expected.txt:
  • fast/css/style-invalidation-class-change-descendants.html:

Add :not case.

9:46 AM Changeset in webkit [199367] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198205 - Leak: Accelerated ImageBufferCairo doesn't destroy the used textures
​https://bugs.webkit.org/show_bug.cgi?id=155431

Patch by Miguel Gomez <​magomez@igalia.com> on 2016-03-15
Reviewed by Žan Doberšek.

When using the Cairo backend, add a destructor to ImageBufferData and use it to destroy the
textures created if the buffer is being accelerated.

No new tests, already covered by existing ones.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBufferData::ImageBufferData):
Store the renderingMode flag.
(WebCore::ImageBufferData::~ImageBufferData):
Destroy gl resources if renderingMode is accelerated.
(WebCore::ImageBuffer::ImageBuffer):
Pass renderingMode to the data class and use it fro checks instead of the function parameter.

  • platform/graphics/cairo/ImageBufferDataCairo.h:

Add destructor and a renderingMode flag.

9:44 AM Changeset in webkit [199366] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

S390X and PPC64 architectures detection is wrong
​https://bugs.webkit.org/show_bug.cgi?id=156337

Patch by Tomas Popela <​tpopela@redhat.com> on 2016-04-12
Reviewed by Carlos Garcia Campos.

After the ​http://trac.webkit.org/changeset/198919 was committed
it showed that the PPC64 detection is wrong as the CPU(PPC) path was
activated even for PPC64. The thing is that GCC defines ppc
even on PPC64 and not just on PPC(32). The same applies for S390X.

  • wtf/Platform.h:
9:41 AM Changeset in webkit [199365] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r198173 - [mips] Fix unaligned access in LLINT.
​https://bugs.webkit.org/show_bug.cgi?id=153228

Address loads used with btbxx opcodes were wrongly converted to lw
instruction instead of lbu, leading to unaligned access on mips
platforms. This is not a bug as it's silently fixed up by kernel,
but it's more efficient to avoid unaligned accesses for mips.

Reviewed by Geoffrey Garen.

  • offlineasm/mips.rb:
9:40 AM Changeset in webkit [199364] by Carlos Garcia Campos
  • 4 edits
    6 adds in releases/WebKitGTK/webkit-2.12

Merge r198163 - Selecting with shift+drag results in unexpected drag-n-drop
​https://bugs.webkit.org/show_bug.cgi?id=155314

Reviewed by Darin Adler.

Source/WebCore:

Test: editing/selection/shift-drag-selection-no-drag-n-drop.html

Whenever user tries to extend an existing text selection by dragging the mouse
(left button hold) with shift key pressed, WebKit enters drag-n-drop mode.
This behavior does not match common editing behavior out there, including other
browsers' (Firefox, Opera/Presto and IE).

Patch changes WebKit so that whenever one extends a selection with mouse
and shift key pressed off of a #text node, it does not enter drag-n-drop mode.

Additionally, patch also adds some further tests to ensure that when
selection is extended off of either a link or an image, drag-n-drop does
get triggered, no matter if shift key is pressed.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):

LayoutTests:

Tests that ensure that WebKit:

1) does not enter drag-n-drop mode and extending selection by dragging with mouse with shift key is pressed,

off of a #text node.

2) does enter drag-n-drop mode and extending selection by dragging with mouse with shift key is pressed,

off of a link.

3) does enter drag-n-drop mode and extending selection by dragging with mouse with shift key is pressed,

off of an image.

Note that (1) is a behavior changed by this patch, whereas (2) and (3) represent existing
behavior that is kept.
Tests are also skip for iOS similarly to other drag-n-drop related tests.

  • fast/events/shift-drag-selection-no-drag-n-drop-expected.txt: Added.
  • fast/events/shift-drag-selection-no-drag-n-drop.html: Added.
  • fast/events/shift-drag-selection-on-link-triggers-drag-n-drop-expected.txt: Added.
  • fast/events/shift-drag-selection-on-link-triggers-drag-n-drop.html: Added.
  • fast/events/shift-drag-selection-on-image-triggers-drag-n-drop-expected.txt: Added.
  • fast/events/shift-drag-selection-on-image-triggers-drag-n-drop.html: Added.
9:32 AM Changeset in webkit [199363] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198090 - REGRESSION (r190840): crash inside details element's slotNameFunction
​https://bugs.webkit.org/show_bug.cgi?id=155388

Reviewed by Antti Koivisto.

Source/WebCore:

The bug was caused by HTMLDetailsElement::isActiveSummary calling findAssignedSlot with a summary element
inside the shadow tree of the detials element. Fixed it by existing early when the summary element passed
to isActiveSummary is not a direct child of the details element.

Test: fast/html/details-summary-tabindex-crash.html

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::findAssignedSlot): Added an assertion for regression testing.

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::findAssignedSlot): Removed the superfluous call to assignSlots added in r190840.
There is no need to update the slot assignments here (entires in m_slots are added or removed by
addSlotElementByName or removeSlotElementByName and assignSlots only updates assignedNodes in each SlotInfo
which is never used in this function or findFirstSlotElement.

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::isActiveSummary): Fixed the bug.

LayoutTests:

Added a regression test.

  • fast/html/details-summary-tabindex-crash-expected.txt: Added.
  • fast/html/details-summary-tabindex-crash.html: Added.
9:30 AM Changeset in webkit [199362] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r198087 - ComposedTreeIterator fails to traverse slots if root is shadow host
​https://bugs.webkit.org/show_bug.cgi?id=155407

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/shadow-dom/composed-tree-shadow-subtree.html

  • dom/ComposedTreeIterator.cpp:

(WebCore::ComposedTreeIterator::ComposedTreeIterator):

Traversal functions assume m_contextStack is deeper than 1 before they need to enter slot traversal code paths.
Call initializeContextStack in case of shadow host which does the right thing.

(WebCore::ComposedTreeIterator::traverseSiblingInSlot):
(WebCore::composedTreeAsText):

Add option to include pointers as debugging aid.

  • dom/ComposedTreeIterator.h:

(WebCore::composedTreeChildren):

LayoutTests:

  • fast/shadow-dom/composed-tree-shadow-subtree-expected.txt: Added.
  • fast/shadow-dom/composed-tree-shadow-subtree.html: Added.
9:27 AM Changeset in webkit [199361] by Carlos Garcia Campos
  • 5 edits
    4 adds in releases/WebKitGTK/webkit-2.12

Merge r198075 - REGRESSION (r188647): Teamtreehouse website sidebar buttons are not rendered
​https://bugs.webkit.org/show_bug.cgi?id=155400
<rdar://problem/24818602>

Reviewed by Anders Carlsson.

Source/WebCore:

When we unprefixed CSS filters we accidentally
stopped SVG elements that use the CSS filter shorthands
from rendering. We still don't actually support
the shorthands in this case, but we should render
the element without the filter.

Tests: css3/filters/filters-on-svg-element.html

css3/filters/filters-on-svg-root.html

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::hasReferenceFilterOnly): Add
this new function that tells us if we have the
style of filter that we can handle in SVG content.

  • rendering/style/RenderStyle.h:
  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
We can mark an element as ready to render if it
has a shorthand filter.

LayoutTests:

Add tests with SVG content that uses CSS filter
shorthands. These particular filters are no-ops
so should not affect rendering. If they actually
tried to do something you wouldn't see them work
until we enable shorthand filters on SVG content.

  • css3/filters/filters-on-svg-element-expected.html: Added.
  • css3/filters/filters-on-svg-element.html: Added.
  • css3/filters/filters-on-svg-root-expected.html: Added.
  • css3/filters/filters-on-svg-root.html: Added.
9:21 AM Changeset in webkit [199360] by Chris Dumez
  • 8 edits in trunk/Source/WebCore

Lazily update tokens in DOMTokenList when the associated attribute value changes
​https://bugs.webkit.org/show_bug.cgi?id=156474

Reviewed by Ryosuke Niwa.

Lazily update tokens in DOMTokenList when the associated attribute value
changes for performance. Constructing the sanitized vector of tokens
every time the associated Element attribute changes is too expensive.
Instead, we mark the vector as dirty whenever the attribute changes, and
we only construct the sanitized vector when it is actually required.

Also do some renaming for clarity.

There is no web-exposed behavior change.

  • dom/Element.cpp:

(WebCore::Element::classAttributeChanged):

  • html/DOMTokenList.cpp:

(WebCore::DOMTokenList::contains):
(WebCore::DOMTokenList::addInternal):
(WebCore::DOMTokenList::removeInternal):
(WebCore::DOMTokenList::toggle):
(WebCore::DOMTokenList::value):
(WebCore::DOMTokenList::setValue):
(WebCore::DOMTokenList::updateTokensFromAttributeValue):
(WebCore::DOMTokenList::associatedAttributeValueChanged):
(WebCore::DOMTokenList::updateAssociatedAttributeFromTokens):
(WebCore::DOMTokenList::tokens):
(WebCore::DOMTokenList::DOMTokenList): Deleted.

  • html/DOMTokenList.h:

(WebCore::DOMTokenList::tokens):
(WebCore::DOMTokenList::length):
(WebCore::DOMTokenList::item):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parseAttribute):

  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::parseAttribute):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::parseAttribute):

  • html/HTMLOutputElement.cpp:

(WebCore::HTMLOutputElement::parseAttribute):

9:16 AM Changeset in webkit [199359] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r198050 - WebKit should not be redirected to an invalid URL
​https://bugs.webkit.org/show_bug.cgi?id=155263
<rdar://problem/22820172>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/navigation/redirect-to-invalid-url.html

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

LayoutTests:

  • http/tests/navigation/redirect-to-invalid-url-expected.txt: Added.
  • http/tests/navigation/redirect-to-invalid-url.html: Added.
  • http/tests/navigation/resources/redirect-to-invalid-url-frame.php: Added.
9:15 AM Changeset in webkit [199358] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r198044 - Fix typo in StyleTreeResolver.cpp
​https://bugs.webkit.org/show_bug.cgi?id=139946

Patch by Maksim Kisilev <​mkisilev@yandex-team.ru> on 2016-03-10
Reviewed by Andy Estes.

The constructor for CheckForVisibilityChangeOnRecalcStyle was improperly comparing the
result of WKContentChange() (which is not a function) to WKContentVisibilityChange. I
believe the above cast would implicitly resolve to WKContentNoChange in all cases,
whether a visibility change had been observed or not.

This patch corrects this problem. I would expect that this might affect some content
visibility change behavior, but I'm not sure what the appropriate test case would be
since this was apparently found through code inspection.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::CheckForVisibilityChangeOnRecalcStyle):

9:11 AM Changeset in webkit [199357] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Remove UsePointersEvenForNonNullableObjectArguments from HTMLMediaElement
​https://bugs.webkit.org/show_bug.cgi?id=156492

Reviewed by Chris Dumez.

  • html/HTMLMediaElement.idl: Removed UsePointersEvenForNonNullableObjectArguments,

sorted remaining class attributes, simplified #if around canPlayType a bit,
removed comment that is not all that useful, made the argument to
webkitSetMediaKeys nullable since the implementation supports that.

9:10 AM Changeset in webkit [199356] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.12

Merge r197989 - CRASH at WebCore::RenderView::updateVisibleViewportRect
​https://bugs.webkit.org/show_bug.cgi?id=155209
<rdar://problem/23997530>

Reviewed by Simon Fraser.

Source/WebCore:

Test: media/video-crash-invisible-autoplay-display-none.html

Between the time when the video element's renderer is created and destroyed, we may have unset the
InvisibleAutoplayNotPermitted restriction. So rather than check for that restriction before
unregistering for the "visible in viewport" notification, unregister only if the renderer
was previously registered.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::willDetachRenderers):

LayoutTests:

(These files were mistakenly landed in a previous commit:)

  • media/video-crash-invisible-autoplay-display-none-expected.txt: Added.
  • media/video-crash-invisible-autoplay-display-none.html: Added.
9:08 AM Changeset in webkit [199355] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r197967 - REGRESSION: GuardMallloc crash in SVGListPropertyTearOff<SVGPointList>::processIncomingListItemWrapper
​https://bugs.webkit.org/show_bug.cgi?id=154969

Patch by Said Abou-Hallawa <​sabouhallawa@apple.com> on 2016-03-10
Reviewed by Darin Adler.

The life cycle of the SVGAnimatedPropertyTearOff::m_baseVal and m_animVal
was not correct. Like what was done in SVGAnimatedListPropertyTearOff,
m_baseVal and m_animVal have to be raw RefCounted pointers. When requested
through, SVGAnimatedPropertyTearOff::baseVal() and animVal() they are
encapsulated in a RefPtr to ensure they existence as long as they are
referenced. When the animated property object (which is stored in either
m_baseVal or m_animVal) is not referenced by anyone, it is going to be
deleted. In the destructor of their class, SVGAnimatedPropertyTearOff
will be notified of this deletion through propertyWillBeDeleted() to clean
its member m_baseVal or m_animVal.

  • bindings/scripts/CodeGeneratorJS.pm:

(NativeToJSValue): Now all the SVG animated property return RefPtrs. In
addition to that, SVGViewSpec.transform also returns
RefPtr<SVGTransformListPropertyTearOff>.

  • svg/properties/SVGAnimatedListPropertyTearOff.h:

(WebCore::SVGAnimatedListPropertyTearOff::animVal):
(WebCore::SVGAnimatedListPropertyTearOff::currentAnimatedValue):
(WebCore::SVGAnimatedListPropertyTearOff::animationStarted):
(WebCore::SVGAnimatedListPropertyTearOff::animationEnded):
(WebCore::SVGAnimatedListPropertyTearOff::synchronizeWrappersIfNeeded):
(WebCore::SVGAnimatedListPropertyTearOff::isAnimating):
(WebCore::SVGAnimatedListPropertyTearOff::propertyWillBeDeleted):
Change propertyWillBeDeleted() to be virtual and make it takes an SVGProperty*.
Rename m_animatingAnimVal to be m_animatedProperty. Add isAnimating() which
returns true if m_animatedProperty is not null. Use isAnimating() instead of
m_isAnimating because it's deleted from the base class.

  • svg/properties/SVGAnimatedProperty.cpp:

(WebCore::SVGAnimatedProperty::SVGAnimatedProperty):
(WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):

  • svg/properties/SVGAnimatedProperty.h:

(WebCore::SVGAnimatedProperty::isAnimating):
(WebCore::SVGAnimatedProperty::propertyWillBeDeleted):
Delete m_isAnimating since its value can be deduced from the value of
m_animatedProperty in the derived class. Add propertyWillBeDeleted() and
isAnimating() as virtual functions with the default behavior.

  • svg/properties/SVGAnimatedPropertyTearOff.h:

(WebCore::SVGAnimatedPropertyTearOff::baseVal):
(WebCore::SVGAnimatedPropertyTearOff::animVal):
Like SVGAnimatedListPropertyTearOff::baseVal() and animVal() create the
value if it does not exist. Keep a raw RefCounted pointer but return a
RefPtr.

(WebCore::SVGAnimatedPropertyTearOff::isAnimating):
(WebCore::SVGAnimatedPropertyTearOff::propertyWillBeDeleted):
Override virtual functions.

(WebCore::SVGAnimatedPropertyTearOff::currentAnimatedValue):
(WebCore::SVGAnimatedPropertyTearOff::animationStarted):
(WebCore::SVGAnimatedPropertyTearOff::animationEnded):
(WebCore::SVGAnimatedPropertyTearOff::animValWillChange):
(WebCore::SVGAnimatedPropertyTearOff::animValDidChange):
Replace m_isAnimating with isAnimating(). Ensure that we get a new animated
property through animVal() and store it in a RefPtr to ensure it will not
go away while animating.

  • svg/properties/SVGAnimatedStaticPropertyTearOff.h:

(WebCore::SVGAnimatedStaticPropertyTearOff::isAnimating):
(WebCore::SVGAnimatedStaticPropertyTearOff::currentAnimatedValue):
(WebCore::SVGAnimatedStaticPropertyTearOff::animationStarted):
(WebCore::SVGAnimatedStaticPropertyTearOff::animationEnded):
(WebCore::SVGAnimatedStaticPropertyTearOff::animValWillChange):
(WebCore::SVGAnimatedStaticPropertyTearOff::animValDidChange):
Add isAnimating() and replace all the instances of m_isAnimating with calls
to isAnimating().

  • svg/properties/SVGPropertyTearOff.h:

(WebCore::SVGPropertyTearOff::animatedProperty):
(WebCore::SVGPropertyTearOff::setAnimatedProperty):
(WebCore::SVGPropertyTearOff::contextElement):
(WebCore::SVGPropertyTearOff::SVGPropertyTearOff):
(WebCore::SVGPropertyTearOff::~SVGPropertyTearOff):
SVGPropertyTearOff is what SVGAnimatedPropertyTearOff creates for its
baseVal() and animVal() values. These values can be null anytime once
they are not referenced. The SVGAnimatedPropertyTearOff holds only raw
RefCounted pointer for them. So (1) SVGPropertyTearOff needs to hold a
RefPtr for its SVGAnimatedProperty and (2) it needs to notify its
SVGAnimatedProperty when it's deleted by calling propertyWillBeDeleted()
from the destructor. Also there is no need to get the contextElement()
and save it in class member, m_contextElement since it can be always be
retrieved from SVGAnimatedProperty::contextElement().

8:53 AM WebKitGTK/2.12.x edited by tpopela@redhat.com
(diff)
8:46 AM Changeset in webkit [199354] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.12

Merge r197788 - Support iterating over an OptionSet and checking if it is empty
​https://bugs.webkit.org/show_bug.cgi?id=154941
<rdar://problem/24964187>

Reviewed by Darin Adler.

Source/WTF:

Implements support for iterating over the enumerators in an OptionSet as well as
determining if the set is empty.

Iterating over an OptionSet is in Big Theta(N) where N is the number of items in
the set. More precisely, it is in Big Theta(log M) where M is the bitmask represented
by the bitwise OR-ing of all enumerators in the set.

  • wtf/OptionSet.h: Added comment to describe the purpose of this class and its invariant -

the enumerators must be positive powers of two.
(WTF::OptionSet::Iterator::operator*): Returns the enumerator pointed to by the iterator.
(WTF::OptionSet::Iterator::operator++): Advance to the next smallest enumerator in the set.
(WTF::OptionSet::Iterator::operator==): Returns whether the iterator is equal to the specified iterator.
(WTF::OptionSet::Iterator::operator!=): Returns whether the iterator is not equal to the specified iterator.
(WTF::OptionSet::Iterator::Iterator): Added.
(WTF::OptionSet::fromRaw): Instantiate using specialized private constructor to allow
instantiation with a raw value of 0.
(WTF::OptionSet::OptionSet): Specialized constructor that asserts that the specified value
is a positive power of two. This variant is only compiled when assertions are enabled (i.e. !ASSERT_DISABLED).
(WTF::OptionSet::isEmpty): Returns whether the set is empty.
(WTF::OptionSet::begin): Returns an iterator to the enumerator with the smallest value in the set.
(WTF::OptionSet::end): Returns an iterator that represents the end sentinel of the set.

Tools:

Add tests to ensure that we do not regression both iteration of an OptionSet and
determining whether an OptionSet is empty.

  • TestWebKitAPI/Test.h:

(TestWebKitAPI::Util::assertStrongEnum): Helper function to assert two strong enum type for equality.

  • TestWebKitAPI/Tests/WTF/OptionSet.cpp:

(TestWebKitAPI::TEST):

8:45 AM Changeset in webkit [199353] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r197191,r197523 - Add WTF::OptionSet and use it for the website data types enum
​https://bugs.webkit.org/show_bug.cgi?id=154733

Patch by Anders Carlsson <​andersca@apple.com> on 2016-02-26
Reviewed by Geoffrey Garen.

Add WTF::OptionSet which makes it easier to use strong enums as flags.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Forward.h:
  • wtf/OptionSet.h: Copied from Source/WebKit2/Shared/WebsiteData/WebsiteData.h.

(WTF::OptionSet::fromRaw):
(WTF::OptionSet::OptionSet):
(WTF::OptionSet::toRaw):
(WTF::OptionSet::contains):
(WTF::OptionSet::operator|=):

8:21 AM Changeset in webkit [199352] by sbarati@apple.com
  • 9 edits in trunk

We incorrectly parse arrow function expressions
​https://bugs.webkit.org/show_bug.cgi?id=156373

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch removes the notion of "isEndOfArrowFunction".
This was a very weird function and it was incorrect.
It checked that the arrow functions with concise body
grammar production "had a valid ending". "had a valid
ending" is in quotes because concise body arrow functions
have a valid ending as long as their body has a valid
assignment expression. I've removed all notion of this
function because it was wrong and was causing us
to throw syntax errors on valid programs.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::nextTokenIsColon):
(JSC::Lexer<T>::lex):
(JSC::Lexer<T>::setTokenPosition): Deleted.

  • parser/Lexer.h:

(JSC::Lexer::setIsReparsingFunction):
(JSC::Lexer::isReparsingFunction):
(JSC::Lexer::lineNumber):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseArrowFunctionSingleExpressionBodySourceElements):
(JSC::Parser<LexerType>::parseFunctionInfo):

  • parser/Parser.h:

(JSC::Parser::matchIdentifierOrKeyword):
(JSC::Parser::tokenStart):
(JSC::Parser::autoSemiColon):
(JSC::Parser::canRecurse):
(JSC::Parser::isEndOfArrowFunction): Deleted.
(JSC::Parser::setEndOfStatement): Deleted.

  • tests/stress/arrowfunction-others.js:

(testCase):
(simpleArrowFunction):
(truthy):
(falsey):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:

(catch):

8:19 AM Changeset in webkit [199351] by eric.carlson@apple.com
  • 10 edits in trunk/Source/WebCore

[iOS] media title sometimes remain in Control Center after tab is closed
​https://bugs.webkit.org/show_bug.cgi?id=156243
<rdar://problem/20167445>

Reviewed by Darin Adler.

  • Modules/webaudio/AudioContext.h: Implement characteristics.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaLoadingFailed): Call mediaSession->clientCharacteristicsChanged.
(WebCore::HTMLMediaElement::setReadyState): Ditto.
(WebCore::HTMLMediaElement::clearMediaPlayer): Ditto.
(WebCore::HTMLMediaElement::stop): Call mediaSession->stopSession.
(WebCore::HTMLMediaElement::characteristics): New, return current characteristics.

  • html/HTMLMediaElement.h:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::stopSession): Suspend playback, and remove the session

from the manager, it will never play again.

(WebCore::PlatformMediaSession::characteristics): Return client characteristics.
(WebCore::PlatformMediaSession::clientCharacteristicsChanged):

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::stopAllMediaPlaybackForProcess): Call stopSession

instead of pauseSession to signal that playback will never start again.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback): Add logging.
(WebCore::MediaSessionManageriOS::removeSession): Update NowPlaying.
(WebCore::MediaSessionManageriOS::sessionWillEndPlayback): Add logging.
(WebCore::MediaSessionManageriOS::clientCharacteristicsChanged): Update NowPlaying.
(WebCore::MediaSessionManageriOS::nowPlayingEligibleSession): New, return the first session

that is an audio or video element with playable audio. WebAudio is not currently controllable
so it isn't appropriate to show it in the NowPlaying info center.

(WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Remember the last state passed to

NowPlaying so we can call it only when something has changed.

7:56 AM Changeset in webkit [199350] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Modify the CXXFLAGS in webkitdirs.pm just on architectures where the flags are supported
​https://bugs.webkit.org/show_bug.cgi?id=156338

Patch by Tomas Popela <​tpopela@redhat.com> on 2016-04-12
Reviewed by Michael Catanzaro.

Add the "-march=pentium4 -msse2 -mfpmath=sse " into the CXXFLAGS just
for the i686 where it is supported and not for other architectures
(such as s390(x) and ppc(64)) where the build will fail with these
CXXFLAGS.

  • Scripts/webkitdirs.pm:

(generateBuildSystemFromCMakeProject):

6:52 AM Changeset in webkit [199349] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.12

Merge r197874 - Move attributes to the instance for most interfaces that have "Error" in their name
​https://bugs.webkit.org/show_bug.cgi?id=155231

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Our bindings generator was keeping attributes on the instances for
interfaces having "Error" or "Exception" in their name. The reason is
that interfaces that have "Error" in their prototype would not behave
correctly otherwise because "Error" incorrectly has its attributes on
the instance at the moment. However, in our bindings generator, the
condition to decide if an interface's prototype should be "Error" is
if $interface->isException. Therefore, we should use the same condition
to decide if we should keep attributes on the instance until "Error"
is updated to have its attributes on the prototype. Doing this for any
interface having "Error" or "Exception" in their name is overkill.

No new tests, already covered by existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(InterfaceRequiresAttributesOnInstance):

6:33 AM Changeset in webkit [199348] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.12

Merge r197868 - Removing and re-adding a script message handler with the same name results in an unusable message handler
​https://bugs.webkit.org/show_bug.cgi?id=155223

Reviewed by Sam Weinig.
Source/WebCore:

New API test: WKUserContentController.ScriptMessageHandlerReplaceWithSameName.

  • page/UserMessageHandler.h:

(WebCore::UserMessageHandler::descriptor):

  • page/UserMessageHandlersNamespace.cpp:

(WebCore::UserMessageHandlersNamespace::handler):
This lazy removal mechanism combined with the fact that we only compare
handler name and world makes it such that m_messageHandlers could have
a stale UserMessageHandler with a UserMessageHandlerDescriptor that differed
only in client.

It is safe to compare the descriptors by pointer instead because m_messageHandler
holds a strong reference to its UserMessageHandlerDescriptors, and this will ensure
that the add-remove-add path (with identical name and world) causes a new
UserContentController to be created.

We also now clean up any stale UserMessageHandlers whenever we're about to
add a new one, by removing any which the UserContentController no longer knows about.

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:

(TEST):
Add a test ensuring that it is possible to remove and re-add a script message handler
with the same name and still dispatch messages to it.

6:25 AM Changeset in webkit [199347] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r197858 - Local HTML should be blocked from localStorage access unless "Disable Local File Restrictions" is checked..
​https://bugs.webkit.org/show_bug.cgi?id=155185
<rdar://problem/11101440>

Reviewed by Zalan Bujtas.

Source/WebCore:

Tested by storage/domstorage/localstorage/blocked-file-access.html.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canAccessStorage): If the origin is a local file, and we have not been granted
universal file access, prevent access to DOM localStorage.

LayoutTests:

  • storage/domstorage/localstorage/blocked-file-access-expected.txt: Added.
  • storage/domstorage/localstorage/blocked-file-access.html: Added.
  • storage/domstorage/localstorage/resources/blocked-example.html: Added.
6:25 AM Changeset in webkit [199346] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.12/Source

Merge r198532 - [GTK] WebInspector broken after r197620
​https://bugs.webkit.org/show_bug.cgi?id=155497
<rdar://problem/25171910>

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2016-03-22
Reviewed by Philippe Normand.

Source/WebCore:

Add resource scheme to the list of secure protocols.

  • platform/SchemeRegistry.cpp:

(WebCore::secureSchemes):

Source/WebKit2:

Stop registering resource:// URLs as local, because they are not
like a local file at all. Compare also the URL protocols when
checking whether requested URL is main or test inspector page
instead of checking that the protocol is registered as local.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::isMainOrTestInspectorPage): Compare also the URL protocols.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage): Do not
set setAllowFileAccessFromFileURLs setting to true.

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Do not
register resource:// URLS as local.

6:14 AM Changeset in webkit [199345] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r197856 - ImageDocuments leak their world.
<​https://webkit.org/b/155167>
<rdar://problem/24987363>

Reviewed by Antti Koivisto.

Source/WebCore:

ImageDocument uses a special code path in ImageLoader in order to manually
control how the image is loaded. It has to do this because the ImageDocument
is really just a synthetic wrapper around a main resource that's an image.

This custom loading code had a bug where it would create a new CachedImage
and neglect to set its CachedResource::m_state flag to Pending (which is
normally set by CachedResource::load(), but we don't call that for these.)

This meant that when ImageDocument called CachedImage::finishLoading() to
trigger the notifyFinished() callback path, the image would look at its
loading state and see that it was Unknown (not Pending), and conclude that
it hadn't loaded yet. So we never got the notifyFinished() signal.

The world leaks here because ImageLoader slaps a ref on its <img> element
while it waits for the loading operation to complete. Once finished, whether
successfully or with an error, it derefs the <img>.

Since we never fired notifyFinished(), we ended up with an extra ref on
these <img> forever, and then the element kept its document alive too.

Test: fast/dom/ImageDocument-world-leak.html

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

LayoutTests:

Made a little test that loads an image into an <iframe> 10 times and then
triggers a garbage collection and checks that all the documents got destroyed.

Prior to this change, all 10 ImageDocuments would remain alive at the end.

This got rolled out the first time because it failed on bots. It failed due
to expecting a specific number of documents to be live at the start of the
test, which was not reliable on bots since we appear to have more leaks(!)

Tweaked the test to check the delta in live document count instead.

  • fast/dom/ImageDocument-world-leak-expected.txt: Added.
  • fast/dom/ImageDocument-world-leak.html: Added.
5:42 AM Changeset in webkit [199344] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebCore

[GTK] Rework scrollbars theming code for GTK+ 3.20
​https://bugs.webkit.org/show_bug.cgi?id=156462

Reviewed by Michael Catanzaro.

In r199292, we reworked the theming code to ensure it works with the new GTK+ CSS theming system. The same is
needed for scrollbars, this patch uses the RenderThemeGadget classes introduced in r199292 to render the native
scrollbars. The code is now split in 3 parts: stub methods for GTK+2 (since this file is compiled for
WebCoreGTK, but not used), the implementation for GTK+ < 3.20 and the implementation for GTK+ >= 3.20. This
reduces the amount of ifdefed code, and ensures that changes in new code don't break the rendering with older
versions of GTK+. I noticed that we were overriding both, the specific paint methods to render scrollbars
parts and the global paint method that renders all the scrollbar parts. We don't really need the specific paint
methods, so I've removed the implemention leaving only the paint method. This also allows us to get rid of the
GtkStyleContext cache.

  • platform/gtk/RenderThemeGadget.cpp:

(WebCore::RenderThemeGadget::create): Handle scrollbars gadgets.
(WebCore::appendElementToPath): In case of scrollbar gadget, use the scrollbar GType when creating the path to
be able to get non-CSS style properties.
(WebCore::RenderThemeGadget::opacity): Add method to get the opacity CSS style property.
(WebCore::RenderThemeScrollbarGadget::RenderThemeScrollbarGadget): Initialize m_steppers option set with the
steppers used by the theme.

  • platform/gtk/RenderThemeGadget.h:
  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::themeChangedCallback):
(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):
(WebCore::createStyleContext):
(WebCore::createChildStyleContext):
(WebCore::ScrollbarThemeGtk::themeChanged):
(WebCore::ScrollbarThemeGtk::updateThemeProperties):
(WebCore::scrollbarPartStateFlags):
(WebCore::scrollbarGadgetForLayout):
(WebCore::contentsGadgetForLayout):
(WebCore::ScrollbarThemeGtk::trackRect):
(WebCore::ScrollbarThemeGtk::hasThumb):
(WebCore::ScrollbarThemeGtk::backButtonRect):
(WebCore::ScrollbarThemeGtk::forwardButtonRect):
(WebCore::ScrollbarThemeGtk::paint):
(WebCore::paintStepper):
(WebCore::adjustRectAccordingToMargin):
(WebCore::ScrollbarThemeGtk::scrollbarThickness):
(WebCore::ScrollbarThemeGtk::minimumThumbLength):

  • platform/gtk/ScrollbarThemeGtk.h:
5:21 AM Changeset in webkit [199343] by svillar@igalia.com
  • 9 edits
    4 adds in trunk

[css-grid] Add parsing support for <auto-repeat> syntax
​https://bugs.webkit.org/show_bug.cgi?id=155583

Reviewed by Antti Koivisto.

Source/WebCore:

The repeat() notation allows now to specify auto-fill or auto-fit instead of
a fixed number of repetitions meaning that it will be automatically computed
depending on the available space.

This patch just adds the parsing support, the expansion of the repeat notation
will be implemented in a follow up patch because it cannot be done at
parsing level (since it requires knowledge about the available space).

Test: fast/css-grid-layout/grid-element-auto-repeat-get-set.html

  • CMakeLists.txt:
  • css/CSSGridAutoRepeatValue.cpp: Added.

(WebCore::CSSGridAutoRepeatValue::customCSSText):

  • css/CSSGridAutoRepeatValue.h: Added.

(WebCore::CSSGridAutoRepeatValue::create):
(WebCore::CSSGridAutoRepeatValue::autoRepeatID):
(WebCore::CSSGridAutoRepeatValue::CSSGridAutoRepeatValue):

  • css/CSSParser.cpp:

(WebCore::allTracksAreFixedSized):
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTrackRepeatFunction):
(WebCore::CSSParser::parseGridTrackSize):
(WebCore::CSSParser::parseGridBreadth):

  • css/CSSParser.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isGridAutoRepeatValue):

  • css/CSSValueKeywords.in:

LayoutTests:

  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt: Added.
  • fast/css-grid-layout/grid-element-auto-repeat-get-set.html: Added.
1:25 AM Changeset in webkit [199342] by Yusuke Suzuki
  • 7 edits in trunk/Source

[JSC] addStaticGlobals should emit SymbolTableEntry watchpoints to encourage constant folding in DFG
​https://bugs.webkit.org/show_bug.cgi?id=155110

Reviewed by Saam Barati.

Source/JavaScriptCore:

addStaticGlobals does not emit SymbolTableEntry watchpoints for the added entries.
So, all the global variable lookups pointing to these static globals are not converted
into constants in DFGBytecodeGenerator: this fact leaves these lookups as GetGlobalVar.
Such thing avoids constant folding chance and emits CheckCell for @privateFunction inlining.
This operation is pure overhead.

Static globals are not configurable, and they are typically non-writable.
So they are constants in almost all the cases.

This patch initializes watchpoints for these static globals.
These watchpoints allow DFG to convert these nodes into constants in DFG BytecodeParser.
These watchpoints includes many builtin operations and undefined.

The microbenchmark, many-foreach-calls shows 5 - 7% improvement since it removes unnecessary CheckCell.

  • bytecode/VariableWriteFireDetail.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addStaticGlobals):

  • runtime/JSSymbolTableObject.h:

(JSC::symbolTablePutTouchWatchpointSet):
(JSC::symbolTablePutInvalidateWatchpointSet):
(JSC::symbolTablePut):
(JSC::symbolTablePutWithAttributesTouchWatchpointSet): Deleted.

  • runtime/SymbolTable.h:

(JSC::SymbolTableEntry::SymbolTableEntry):
(JSC::SymbolTableEntry::operator=):
(JSC::SymbolTableEntry::swap):

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::updateDocument):

1:24 AM Changeset in webkit [199341] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

[css-grid] Pass GridSizingData instead of columnTracks to track sizing methods
​https://bugs.webkit.org/show_bug.cgi?id=156466

Reviewed by Darin Adler.

Several methods used to compute the items' size contribution to the tracks they span in, get
as an argument a vector with the sizes of the column tracks.

In order to support grids with orthogonal flows (among other things) it's much better to
pass the GridSizingData struct and let those methods decide whether to use the columns or
the rows.

No new tests as this is just a minor refactoring with no change in behavior.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::logicalContentHeightForChild):
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
(WebCore::RenderGrid::currentItemSizeForTrackSizeComputationPhase):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):

  • rendering/RenderGrid.h:
12:38 AM Changeset in webkit [199340] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Remove failing assertion in ANGLE
​https://bugs.webkit.org/show_bug.cgi?id=156485

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-04-12
Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

  • src/compiler/translator/glslang.l:
  • src/compiler/translator/glslang_lex.cpp:

LayoutTests:

  • fast/canvas/webgl/fragment-shader-assertion-expected.txt: Added.
  • fast/canvas/webgl/fragment-shader-assertion.html: Added.
12:29 AM Changeset in webkit [199339] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Build fix after r199299.
​https://bugs.webkit.org/show_bug.cgi?id=155508

  • jit/ExecutableAllocatorFixedVMPool.cpp:

(JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps):
memset_s is not defined. STDC_WANT_LIB_EXT1 is not defined anywhere.
Since the return value is unused and set_constraint_handler_s is never called
I'm chaning it to memset.

Apr 11, 2016:

11:53 PM Changeset in webkit [199338] by achristensen@apple.com
  • 6 edits
    1 add in trunk

Build MiniBrowser with CMake on Mac
​https://bugs.webkit.org/show_bug.cgi?id=156471

Reviewed by Daniel Bates.

Source/WebKit2:

  • DatabaseProcess/DatabaseProcess.messages.in:

Tools:

  • CMakeLists.txt:
  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/PlatformWin.cmake:
  • MiniBrowser/mac/CMakeLists.txt: Added.
11:16 PM Changeset in webkit [199337] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] B3 can use undefined bits or not defined required bits when spilling
​https://bugs.webkit.org/show_bug.cgi?id=156486

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-11
Reviewed by Filip Pizlo.

Spilling had issues when replacing arguments in place.

The problems are:
1) If we have a 32bit stackslot, a x86 instruction could still try to load 64bits from it.
2) If we have a 64bit stackslot, Move32 would only set half the bits.
3) We were reducing Move to Move32 even if the top bits are read from the stack slot.

The case 1 appear with something like this:

Move32 %tmp0, %tmp1
Op64 %tmp1, %tmp2, %tmp3

When we spill %tmp1, the stack slot is 32bit, Move32 sets 32bits
but Op64 supports addressing for %tmp1. When we substitute %tmp1 in Op64,
we are creating a 64bit read for a 32bit stack slot.

The case 2 is an other common one. If we have:

BB#1

Move32 %tmp0, %tmp1
Jump #3

BB#2

Op64 %tmp0, %tmp1
Jump #3

BB#3

Use64 %tmp1

We have a stack slot of 64bits. When spilling %tmp1 in #1, we are
effectively doing a 32bit store on the stack slot, leaving the top bits undefined.

Case 3 is pretty much the same as 2 but we create the Move32 ourself
because the source is a 32bit with ZDef.

Case (1) is solved by requiring that the stack slot is at least as large as the largest
use/def of that tmp.

Case (2) and (3) are solved by not replacing a Tmp by an Address if the Def
is smaller than the stack slot.

  • b3/air/AirIteratedRegisterCoalescing.cpp:
  • b3/testb3.cpp:

(JSC::B3::testSpillDefSmallerThanUse):
(JSC::B3::testSpillUseLargerThanDef):
(JSC::B3::run):

11:12 PM Changeset in webkit [199336] by ryuan.choi@navercorp.com
  • 12 edits in trunk

[EFL] Do not pass context to EwkViewCreate
​https://bugs.webkit.org/show_bug.cgi?id=156461

Reviewed by Darin Adler.

Source/WebKit2:

EWKViewCreate already has pageConfiguration which contains context.
So, this patch removes context argument from EWKViewCreate.

  • UIProcess/API/C/CoordinatedGraphics/WKView.cpp:

(WKViewCreate):

  • UIProcess/API/C/CoordinatedGraphics/WKView.h:
  • UIProcess/API/efl/ewk_view.cpp:

(EWKViewCreate): Call WebView::Create instead of WKViewCreate not to use WK API.
(ewk_view_smart_add):
(ewk_view_add_with_configuration):
(ewk_view_add_with_context):

  • UIProcess/API/efl/ewk_view_private.h:
  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/efl/WebView.cpp:

(WebKit::WebView::create):
(WebKit::WebView::WebView):

  • UIProcess/efl/WebView.h:

Tools:

  • TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewUserViewportToContents.cpp:

(TestWebKitAPI::TEST): Removed context argument from EwkViewCreate calls.

  • TestWebKitAPI/efl/PlatformWebView.cpp:

(TestWebKitAPI::PlatformWebView::PlatformWebView): Ditto.

  • WebKitTestRunner/efl/PlatformWebViewEfl.cpp:

(WTR::PlatformWebView::PlatformWebView): Ditto.

10:49 PM Changeset in webkit [199335] by Darin Adler
  • 4 edits in trunk/Source/WebCore

Remove UsePointersEvenForNonNullableObjectArguments from HTMLOptionsCollection
​https://bugs.webkit.org/show_bug.cgi?id=156491

Reviewed by Chris Dumez.

  • html/HTMLOptionsCollection.cpp:

(WebCore::HTMLOptionsCollection::add): Take a reference instead of a pointer.

  • html/HTMLOptionsCollection.h: Removed unneeded forward declaration. Changed

add to take a reference instead of a pointer for the element to add. Used
final instead of override on virtual functions.

  • html/HTMLOptionsCollection.idl: Removed now-unneeded attribute

UsePointersEvenForNonNullableObjectArguments; the only function affected was
add, and the overloading code was already checking for null.

9:15 PM Changeset in webkit [199334] by Darin Adler
  • 20 edits in trunk/Source

Remove UsePointersEvenForNonNullableObjectArguments from HTMLSelectElement
​https://bugs.webkit.org/show_bug.cgi?id=156458

Reviewed by Chris Dumez.

Source/WebCore:

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:

(WebCore::JSHTMLOptionsCollection::remove): Updated to call remove with a reference
rather than a pointer.

  • bindings/js/JSHTMLSelectElementCustom.cpp:

(WebCore::JSHTMLSelectElement::remove): Updated to call remove with a reference
rather than a pointer.
(WebCore::selectIndexSetter): Updated to call setOption with a reference rather
than a pointer.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateFunction): Added basic support for passing wrappers by reference.
GObject bindings already check arguments for null, so didn't add any new checks.

  • bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
  • bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
  • bindings/scripts/test/GObject/WebKitDOMTestCallbackFunction.cpp:
  • bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

Updated.

  • editing/FrameSelection.cpp: Updated includes.
  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::setSelected): Pass reference when calling
HTMLSelectElement::optionSelectionStateChanged.
(WebCore::HTMLOptionElement::insertedInto): Ditto.

  • html/HTMLOptionsCollection.cpp:

(WebCore::HTMLOptionsCollection::add): Moved null checking behavior here.
Preserves existing "silently do nothing if null".
(WebCore::HTMLOptionsCollection::remove): Changed function to take a reference
instead of a pointer.

  • html/HTMLOptionsCollection.h: Updated include. Changed remove to take a

reference instead of a pointer.

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::add): Changed to take a reference instead of
a pointer. Also removed unneeded protect code, since insertBefore already
protects itself, and unneeded call to updateValidity, since the
HTMLSelectElement::childrenChanged function already calls updateValidity.
(WebCore::HTMLSelectElement::remove): Changed to take a reference instead
of a pointer.
(WebCore::HTMLSelectElement::setOption): Changed to take a reference
instead of a pointer.
(WebCore::HTMLSelectElement::setLength): Renamed "newLen" to "newLength".
Use Ref instead of RefPtr for result of createElement, which makes the
argument passed to add be a reference rather than a pointer.
(WebCore::HTMLSelectElement::willRespondToMouseClickEvents): Put the #if
for this here instead of in the header.
(WebCore::HTMLSelectElement::optionSelectionStateChanged): Changed to take
a reference instead of a pointer for the option element.

  • html/HTMLSelectElement.h: Removed unneeded includes. Derive privately

from TypeAheadDataSource instead of publicly. Make all overrides final
except for the one that is actually overridden by a derived class.
Changed the arguments of the add, remove, setOption, and
optionSelectionStateChanged functions to be references instead of pointers.
Tweaked formatting a bit and used nullptr instead of 0. Override
willRespondToMouseClickEvents on all platforms, not just iOS.

  • html/HTMLSelectElement.idl: Removed UsePointersEvenForNonNullableObjectArguments.

Removed a comment that is no longer needed. Made some types nullable to match
the specification, in places that currently have no effect on code generation.
Added a FIXME comment about the argument to setCustomValidity incorrectly being
marked as nullable.

Source/WebKit/win:

  • DOMCoreClasses.cpp: Added now-needed include.

Source/WebKit2:

  • WebProcess/Plugins/PDF/PDFPluginAnnotation.mm: Updated includes.
8:42 PM Changeset in webkit [199333] by rniwa@webkit.org
  • 1 edit
    1 add
    2 deletes in trunk/Websites/perf.webkit.org

Replace script runner to use mocha.js tests
​https://bugs.webkit.org/show_bug.cgi?id=156490

Reviewed by Chris Dumez.

Replaced run-tests.js, which was a whole test harness for running legacy tests by tools/run-tests.py
which is a thin wrapper around mocha.js.

  • run-tests.js: Removed.
  • tests: Removed.
  • tools/run-tests.py: Added.

(main):

8:18 PM Changeset in webkit [199332] by rniwa@webkit.org
  • 6 edits in trunk/Websites/perf.webkit.org

New syncing script sometimes schedules a build request on a wrong builder
​https://bugs.webkit.org/show_bug.cgi?id=156489

Reviewed by Stephanie Lewis.

The bug was caused by _scheduleNextRequestInGroupIfSlaveIsAvailable scheduling the next build request on
any available syncer regardless of whether the request is the first one in the test group or not because
BuildRequest.order was returning a string instead of a number.

Also fixed a bug that BuildbotTriggerable.syncOnce was re-ordering test groups by their id's instead of
respecting the order in which the perf dashboard returned.

  • public/v3/models/build-request.js:

(BuildRequest.prototype.order): Force the order to be a number.

  • server-tests/api-build-requests-tests.js: Assert the order as numbers.
  • server-tests/resources/mock-data.js:

(MockData.addAnotherMockTestGroup): Changed the test group id to 601, which is after the first mock data.
The old number was masking a bug in BuildbotTriggerable that it was re-ordering test groups by their id's
instead of using the order set forth by the perf dashboard.
(MockData.mockTestSyncConfigWithSingleBuilder):

  • server-tests/tools-buildbot-triggerable-tests.js: Added a test case for scheduling two build requests in

a single call to syncOnce. Each build request should be scheduled on the same builder as the previous build
requests in the same test group.

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable.prototype.syncOnce): Order test groups by groupOrder, which is the index at which first
build request in the group appeared.
(BuildbotTriggerable.prototype._scheduleNextRequestInGroupIfSlaveIsAvailable): Don't re-order build requests
as they're already sorted on the server side.
(BuildbotTriggerable._testGroupMapForBuildRequests): Added groupOrder to test group info

8:07 PM Changeset in webkit [199331] by Brent Fulgham
  • 13 edits
    2 adds in trunk

Use WeakPtrs to avoid using deallocated Widgets and ScrollableAreas
​https://bugs.webkit.org/show_bug.cgi?id=156420
<rdar://problem/25637378>

Reviewed by Darin Adler.

Source/WebCore:

Avoid the risk of using deallocated Widgets and ScrollableAreas by using WeakPtrs instead of
bare pointers. This allows us to remove some explicit calls to get ScrollableArea and Widget
members in the event handling logic. Instead, null checks are sufficient to ensure we never
accidentally dereference a deleted element.

  1. Modify the ScrollableArea class to support vending WeakPtrs.
  2. Modify the Event Handling code to use WeakPtrs to hold ScrollableArea and RenderWidget objects, and to null-check these elements after event handling dispatching is finished to handle cases where these objects are destroyed.

Test: fast/events/wheel-event-destroys-frame.html

fast/events/wheel-event-destroys-overflow.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::platformPrepareForWheelEvents): Change signature for WeakPtr.
(WebCore::EventHandler::platformCompleteWheelEvent): Ditto.
(WebCore::EventHandler::platformNotifyIfEndGesture): Ditto.
(WebCore::widgetForElement): Change to return a WeakPtr.
(WebCore::EventHandler::handleWheelEvent): Use WeakPtrs to hold elements that might be destroyed
during event handling.

  • page/EventHandler.h:
  • page/mac/EventHandlerEfl.cpp: Rename passWheelEventToWidget to widgetDidHandleWheelEvent.
  • page/mac/EventHandlerGtk.cpp: Ditto.
  • page/mac/EventHandlerIOS.mm: Ditto.
  • page/mac/EventHandlerMac.mm:

(WebCore::scrollableAreaForEventTarget): Renamed from scrollViewForEventTarget. Return
a WeakPtr rather than a bare pointer.
(WebCore::scrollableAreaForContainerNode): Return WeakPtr rather than bare pointer.
(WebCore::EventHandler::completeWidgetWheelEvent): Added.
(WebCore::EventHandler::passWheelEventToWidget): Deleted.
(WebCore::EventHandler::platformPrepareForWheelEvents): Convert to WeakPtrs.
(WebCore::EventHandler::platformCompleteWheelEvent): Ditto.
(WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Ditto.
(WebCore::EventHandler::platformNotifyIfEndGesture): Ditto.
(WebCore::EventHandler::widgetDidHandleWheelEvent): Renamed from passWheelEventToWidget.
(WebCore::EventHandler::widgetForEventTarget): Converted from static function to static
method so it can be shared with EventHandlerMac.
(WebCore::scrollViewForEventTarget): Deleted.

  • page/mac/EventHandlerWin.cpp: Rename passWheelEventToWidget to widgetDidHandleWheelEvent.
  • platform/ScrollableArea.cpp:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::createWeakPtr): Added.

  • platform/Widget.h:

(WebCore::ScrollableArea::createWeakPtr): Added.

LayoutTests:

  • fast/events/wheel-event-destroys-overflow-expected.txt: Added.
  • fast/events/wheel-event-destroys-overflow.html: Added.
  • platform/ios-simulator/TestExpectations: Skip wheel-event test on iOS.
7:57 PM Changeset in webkit [199330] by dino@apple.com
  • 3 edits
    2 adds in trunk

putImageData needs to premultiply input
​https://bugs.webkit.org/show_bug.cgi?id=156488
<rdar://problem/25672675>

Reviewed by Zalan Bujtas.

Source/WebCore:

I made a mistake in r187534 as I was converting get and putImageData
to use Accelerate. The incoming data is unmultiplied, and should
be premultiplied before copying into the backing store. I was
accidentally unmultiplying unmultiplied data, which caused
some pretty psychedelic results.

Test: fast/canvas/putImageData-unmultiplied.html

  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::ImageBufferData::putData): Call premultiply, not unpremultiply.

LayoutTests:

Tests that putImageData is taking unmultiplied data,
premultiplying it, then copying into the backing store.

  • fast/canvas/putImageData-unmultiplied-expected.html: Added.
  • fast/canvas/putImageData-unmultiplied.html: Added.
7:20 PM Changeset in webkit [199329] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

7:12 PM Changeset in webkit [199328] by jonlee@apple.com
  • 7 edits in trunk/PerformanceTests

Update Animometer to accommodate different screens
​https://bugs.webkit.org/show_bug.cgi?id=156449

Reviewed by Darin Adler.
Provisionally reviewed by Said Abou-Hallawa.

  • Animometer/index.html: Wrap button in a container to add padding at the bottom.
  • Animometer/resources/debug-runner/animometer.css:

(@media screen and (min-device-width: 1800px)): Deleted.
(@media screen and (min-width: 1800px)): Cannot use min-device-width since it may match incorrectly.
(screen and (max-device-height: 414px) and (orientation: landscape)): Some devices swap device width
and height with orientation change.

  • Animometer/resources/runner/animometer.css: Similar.

(screen and (min-device-width: 1024px) and (orientation: landscape)):
(screen and (max-device-height: 414px) and (orientation: landscape)):
(.frame-container): On smaller iPhones, adding 1px prevents the navigation bars from appearing.
(@media screen and (min-device-width: 768px) and (max-device-width: 1024px)): Deleted.
(@media (min-device-height: 768px) and (max-device-height: 1024px)): Target iPad Airs and similar.
(@media screen and (min-device-width: 1024px) and (max-device-width: 1366px)): Deleted.
(@media screen and (max-device-width: 1024px) and (min-device-height: 1366px)): Target iPad Pro.
(#results footer): Add padding below the button for testing again.

  • Animometer/tests/master/multiply.html: Remove the center text.
  • Animometer/tests/master/resources/text.js: Update the test so that in every frame the text moves.
  • Animometer/tests/master/text.html: Update the text sizing depending on the size of the device.
6:32 PM Changeset in webkit [199327] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.126

New tag.

6:00 PM Changeset in webkit [199326] by commit-queue@webkit.org
  • 28 edits in trunk/Source

When clearing cache, also clear AVFoundation cache.
​https://bugs.webkit.org/show_bug.cgi?id=155783
rdar://problem/25252541

Patch by Jeremy Jones <​jeremyj@apple.com> on 2016-04-11
Reviewed by Darin Adler.

Source/WebCore:

Use AVAssetCache at a specified location on disk for all AVURLAssets. This AVAssetCache
can then be used to manage the cache storage used by AVFoundation. It is used to query the
contents of the cache in originsInMediaCache() and to clear the cache completely or partially in
clearMediaCache() and clearMediaCacheForOrigins().

Use SecurityOrigin instead of the less formal site String to represent origins in the cache.

  • html/HTMLMediaElement.cpp:

(WebCore::sharedMediaCacheDirectory): Added.
(WebCore::HTMLMediaElement::setMediaCacheDirectory): Added.
(WebCore::HTMLMediaElement::mediaCacheDirectory): Added.
(WebCore::HTMLMediaElement::originsInMediaCache): Added.
(WebCore::HTMLMediaElement::clearMediaCache): Added parameter.
(WebCore::HTMLMediaElement::clearMediaCacheForOrigins): Added.
(WebCore::HTMLMediaElement::mediaPlayerMediaCacheDirectory): Added.
(WebCore::HTMLMediaElement::getSitesInMediaCache): Deleted.
(WebCore::HTMLMediaElement::clearMediaCacheForSite): Deleted.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::clearMediaCache): Added parameter.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::addMediaEngine): Add new cache methods.
(WebCore::addToHash): Added.
(WebCore::MediaPlayer::originsInMediaCache): Added.
(WebCore::MediaPlayer::clearMediaCache): Added parameter.
(WebCore::MediaPlayer::clearMediaCacheForOrigins): Added.
(WebCore::MediaPlayer::getSitesInMediaCache): Deleted.
(WebCore::MediaPlayer::clearMediaCacheForSite): Deleted.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerMediaCacheDirectory): Added.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::originsInMediaCache): Added.
(WebCore::MediaPlayerPrivateInterface::clearMediaCache): Added parameter.
(WebCore::MediaPlayerPrivateInterface::clearMediaCacheForOrigins): Added.
(WebCore::MediaPlayerPrivateInterface::getSitesInMediaCache): Deleted.
(WebCore::MediaPlayerPrivateInterface::clearMediaCacheForSite): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Added cache methods.
(WebCore::assetCacheForPath): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::originsInMediaCache): Added.
(WebCore::toSystemClockTime): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache): Added parameter.
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCacheForOrigins): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Added.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Added cache methods.
(WebCore::MediaPlayerPrivateQTKit::originsInMediaCache): Added.
(WebCore::MediaPlayerPrivateQTKit::clearMediaCache): Added parameter.
(WebCore::MediaPlayerPrivateQTKit::clearMediaCacheForOrigins): Added.
(WebCore::MediaPlayerPrivateQTKit::getSitesInMediaCache): Deleted.
(WebCore::MediaPlayerPrivateQTKit::clearMediaCacheForSite): Deleted.

  • platform/spi/mac/AVFoundationSPI.h:

Source/WebKit2:

Include the HTMLMediaElement media cache when doing disk cache operations.
Add a sandbox extension for media cache directory. This allows the UI process and the web process
to access the same cache.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Add media cache directory.
(WebKit::WebProcessCreationParameters::decode): Add media cache directory.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration): Add media cache directory.
(API::ProcessPoolConfiguration::copy): Add media cache directory.

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::defaultMediaCacheDirectory): Default implementation.

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultMediaCacheDirectory): Media cache is in temporary directory.
(API::WebsiteDataStore::tempDirectoryFileSystemRepresentation): For resources in temporary directory.
(API::WebsiteDataStore::defaultDataStoreConfiguration): Init media cache directory.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory):

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration): Add mediaCacheDirectory.
(WebKit::WebProcessPool::createNewWebProcess): Add mediaCacheDirectory.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::fetchData): Implement for mediaCacheDirectory.
(WebKit::WebsiteDataStore::removeData): Implement for mediaCacheDirectory.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Added.

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Added.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess): Initialize media cache directory.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess): Consume sandbox extension.

5:48 PM Changeset in webkit [199325] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Tab Bar items get unreadable at narrow window widths, should collapse earlier
​https://bugs.webkit.org/show_bug.cgi?id=156477

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-11
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar.prototype.layout):
Hide-titles sooner since a width of 60 results in only a few characters
and looks poor.

5:45 PM Changeset in webkit [199324] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unskip imported/w3c/web-platform-tests/IndexedDB/idbindex-multientry-big.htm
​https://bugs.webkit.org/show_bug.cgi?id=156480

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
4:49 PM Changeset in webkit [199323] by commit-queue@webkit.org
  • 25 edits in trunk/Source/WebCore

Unreviewed, rolling out r199310.
​https://bugs.webkit.org/show_bug.cgi?id=156483

This change turns many indexeddb tests into crashes (Requested
by jwtan on #webkit).

Reverted changeset:

"Clean up IDBBindingUtilities."
​https://bugs.webkit.org/show_bug.cgi?id=156472
​http://trac.webkit.org/changeset/199310

4:47 PM Changeset in webkit [199322] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Unstyled nodes in ObjectTree previews look poor
​https://bugs.webkit.org/show_bug.cgi?id=156475
<rdar://problem/25667351>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-11
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendPreview):
Treat nodes as simple values.

(WebInspector.ObjectPreviewView.prototype._initTitleElement):
(WebInspector.ObjectPreviewView.prototype._appendValuePreview):
Format nodes nicely, and treat them as lossy since they have properties.

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

Unreviewed, rolling out r199315.
​https://bugs.webkit.org/show_bug.cgi?id=156482

This change broke the OS X Yosemite build. (Requested by jwtan
on #webkit).

Reverted changeset:

"When clearing cache, also clear AVFoundation cache."
​https://bugs.webkit.org/show_bug.cgi?id=155783
​http://trac.webkit.org/changeset/199315

4:22 PM Changeset in webkit [199320] by BJ Burg
  • 9 edits in trunk/Source

Web Inspector: get rid of InspectorBasicValue and InspectorString subclasses
​https://bugs.webkit.org/show_bug.cgi?id=156407
<rdar://problem/25627659>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

There's no point having these subclasses as they don't save any space.
Add a StringImpl to the union and merge some implementations of writeJSON.

Rename m_data to m_map and explicitly name the union as InspectorValue::m_value.
If the value is a string and the string is not empty or null (i.e., it has a
StringImpl), then we need to ref() and deref() the string as the InspectorValue
is created or destroyed.

Move uses of the subclass to InspectorValue and delete redundant methods.
Now, most InspectorValue methods are non-virtual so they can be templated.

  • bindings/ScriptValue.cpp:

(Deprecated::jsToInspectorValue):

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeCall):
Don't used deleted subclasses.

  • inspector/InspectorValues.cpp:

(Inspector::InspectorValue::null):
(Inspector::InspectorValue::create):
(Inspector::InspectorValue::asValue):
(Inspector::InspectorValue::asBoolean):
(Inspector::InspectorValue::asDouble):
(Inspector::InspectorValue::asInteger):
(Inspector::InspectorValue::asString):
These only need one implementation now.

(Inspector::InspectorValue::writeJSON):
Still a virtual method since Object and Array need their members.

(Inspector::InspectorObjectBase::InspectorObjectBase):
(Inspector::InspectorBasicValue::asBoolean): Deleted.
(Inspector::InspectorBasicValue::asDouble): Deleted.
(Inspector::InspectorBasicValue::asInteger): Deleted.
(Inspector::InspectorBasicValue::writeJSON): Deleted.
(Inspector::InspectorString::asString): Deleted.
(Inspector::InspectorString::writeJSON): Deleted.
(Inspector::InspectorString::create): Deleted.
(Inspector::InspectorBasicValue::create): Deleted.

  • inspector/InspectorValues.h:

(Inspector::InspectorObjectBase::find):
(Inspector::InspectorObjectBase::setBoolean):
(Inspector::InspectorObjectBase::setInteger):
(Inspector::InspectorObjectBase::setDouble):
(Inspector::InspectorObjectBase::setString):
(Inspector::InspectorObjectBase::setValue):
(Inspector::InspectorObjectBase::setObject):
(Inspector::InspectorObjectBase::setArray):
(Inspector::InspectorArrayBase::pushBoolean):
(Inspector::InspectorArrayBase::pushInteger):
(Inspector::InspectorArrayBase::pushDouble):
(Inspector::InspectorArrayBase::pushString):
(Inspector::InspectorArrayBase::pushValue):
(Inspector::InspectorArrayBase::pushObject):
(Inspector::InspectorArrayBase::pushArray):
Use new factory methods.

  • replay/EncodedValue.cpp:

(JSC::ScalarEncodingTraits<bool>::encodeValue):
(JSC::ScalarEncodingTraits<double>::encodeValue):
(JSC::ScalarEncodingTraits<float>::encodeValue):
(JSC::ScalarEncodingTraits<int32_t>::encodeValue):
(JSC::ScalarEncodingTraits<int64_t>::encodeValue):
(JSC::ScalarEncodingTraits<uint32_t>::encodeValue):
(JSC::ScalarEncodingTraits<uint64_t>::encodeValue):

  • replay/EncodedValue.h:

Use new factory methods.

Source/WebCore:

  • inspector/InspectorDatabaseAgent.cpp: Don't use deleted subclasses.
4:16 PM Changeset in webkit [199319] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.27.0.1/Source/WebCore

Merged r199317. rdar://problem/25627389

4:16 PM Changeset in webkit [199318] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Skip imported/w3c/web-platform-tests/IndexedDB/idbindex-multientry-big.htm on ios-simulators
​https://bugs.webkit.org/show_bug.cgi?id=156480

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
4:13 PM Changeset in webkit [199317] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r198909.
​https://bugs.webkit.org/show_bug.cgi?id=156479

made double-click-and-drag on text drag instead of
highlighting (Requested by alexchristensen_ on #webkit).

Reverted changeset:

"eventMayStartDrag() does not check for shiftKey or
isOverLink"
​https://bugs.webkit.org/show_bug.cgi?id=155746
​http://trac.webkit.org/changeset/198909

Patch by Commit Queue <​commit-queue@webkit.org> on 2016-04-11

4:00 PM Changeset in webkit [199316] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

[WebIDL] Add support for [ImplementedAs] for EventHandler attributes
​https://bugs.webkit.org/show_bug.cgi?id=156421

Reviewed by Darin Adler.

Add support for [ImplementedAs] for EventHandler attributes so we can
get rid of some ugly name hard-coding in the bindings generator.

  • Modules/notifications/Notification.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(EventHandlerAttributeEventName):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjOnwebkitfoo):
(WebCore::setJSTestObjOnwebkitfoo):

  • bindings/scripts/test/TestObj.idl:
  • dom/Element.idl:
  • page/DOMWindow.idl:
3:43 PM Changeset in webkit [199315] by commit-queue@webkit.org
  • 28 edits in trunk/Source

When clearing cache, also clear AVFoundation cache.
​https://bugs.webkit.org/show_bug.cgi?id=155783
rdar://problem/25252541

Patch by Jeremy Jones <​jeremyj@apple.com> on 2016-04-11
Reviewed by Darin Adler.

Source/WebCore:

Use AVAssetCache at a specified location on disk for all AVURLAssets. This AVAssetCache
can then be used to manage the cache storage used by AVFoundation. It is used to query the
contents of the cache in originsInMediaCache() and to clear the cache completely or partially in
clearMediaCache() and clearMediaCacheForOrigins().

Use SecurityOrigin instead of the less formal site String to represent origins in the cache.

  • html/HTMLMediaElement.cpp:

(WebCore::sharedMediaCacheDirectory): Added.
(WebCore::HTMLMediaElement::setMediaCacheDirectory): Added.
(WebCore::HTMLMediaElement::mediaCacheDirectory): Added.
(WebCore::HTMLMediaElement::originsInMediaCache): Added.
(WebCore::HTMLMediaElement::clearMediaCache): Added parameter.
(WebCore::HTMLMediaElement::clearMediaCacheForOrigins): Added.
(WebCore::HTMLMediaElement::mediaPlayerMediaCacheDirectory): Added.
(WebCore::HTMLMediaElement::getSitesInMediaCache): Deleted.
(WebCore::HTMLMediaElement::clearMediaCacheForSite): Deleted.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::clearMediaCache): Added parameter.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::addMediaEngine): Add new cache methods.
(WebCore::addToHash): Added.
(WebCore::MediaPlayer::originsInMediaCache): Added.
(WebCore::MediaPlayer::clearMediaCache): Added parameter.
(WebCore::MediaPlayer::clearMediaCacheForOrigins): Added.
(WebCore::MediaPlayer::getSitesInMediaCache): Deleted.
(WebCore::MediaPlayer::clearMediaCacheForSite): Deleted.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerMediaCacheDirectory): Added.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::originsInMediaCache): Added.
(WebCore::MediaPlayerPrivateInterface::clearMediaCache): Added parameter.
(WebCore::MediaPlayerPrivateInterface::clearMediaCacheForOrigins): Added.
(WebCore::MediaPlayerPrivateInterface::getSitesInMediaCache): Deleted.
(WebCore::MediaPlayerPrivateInterface::clearMediaCacheForSite): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Added cache methods.
(WebCore::assetCacheForPath): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::originsInMediaCache): Added.
(WebCore::toSystemClockTime): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache): Added parameter.
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCacheForOrigins): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Added.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Added cache methods.
(WebCore::MediaPlayerPrivateQTKit::originsInMediaCache): Added.
(WebCore::MediaPlayerPrivateQTKit::clearMediaCache): Added parameter.
(WebCore::MediaPlayerPrivateQTKit::clearMediaCacheForOrigins): Added.
(WebCore::MediaPlayerPrivateQTKit::getSitesInMediaCache): Deleted.
(WebCore::MediaPlayerPrivateQTKit::clearMediaCacheForSite): Deleted.

  • platform/spi/mac/AVFoundationSPI.h:

Source/WebKit2:

Include the HTMLMediaElement media cache when doing disk cache operations.
Add a sandbox extension for media cache directory. This allows the UI process and the web process
to access the same cache.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Add media cache directory.
(WebKit::WebProcessCreationParameters::decode): Add media cache directory.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration): Add media cache directory.
(API::ProcessPoolConfiguration::copy): Add media cache directory.

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::defaultMediaCacheDirectory): Default implementation.

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultMediaCacheDirectory): Media cache is in temporary directory.
(API::WebsiteDataStore::tempDirectoryFileSystemRepresentation): For resources in temporary directory.
(API::WebsiteDataStore::defaultDataStoreConfiguration): Init media cache directory.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory):

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration): Add mediaCacheDirectory.
(WebKit::WebProcessPool::createNewWebProcess): Add mediaCacheDirectory.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::fetchData): Implement for mediaCacheDirectory.
(WebKit::WebsiteDataStore::removeData): Implement for mediaCacheDirectory.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Added.

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Added.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess): Initialize media cache directory.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess): Consume sandbox extension.

2:42 PM Changeset in webkit [199314] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[WebGL2] Use Open GL ES 3.0 to back WebGL2 contexts
​https://bugs.webkit.org/show_bug.cgi?id=141178

Patch by Antoine Quint <Antoine Quint> on 2016-04-11
Reviewed by Dean Jackson.

We add a new useGLES3 attribute when creating a GraphicsContext3D in the event that the
context type is "webgl2". This attribute is then read by the GraphicsContext3D constructor
to request an Open GL ES 3.0 backend when creating the EAGLContext on iOS.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

  • platform/graphics/GraphicsContext3D.h:

(WebCore::GraphicsContext3D::Attributes::Attributes):

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):

2:35 PM Changeset in webkit [199313] by jiewen_tan@apple.com
  • 4 edits
    2 adds in trunk

fast/loader/opaque-base-url.html crashing during mac and ios debug tests
​https://bugs.webkit.org/show_bug.cgi?id=156179
<rdar://problem/25507719>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Navigate to about:blank if the provided src of an iframe/frame cannot be
resolved to a valid URL.

Test: fast/loader/iframe-src-invalid-url.html

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::requestFrame):

LayoutTests:

  • fast/loader/iframe-src-invalid-url-expected.txt: Added.
  • fast/loader/iframe-src-invalid-url.html: Added.
2:33 PM Changeset in webkit [199312] by commit-queue@webkit.org
  • 25 edits
    2 adds
    1 delete in trunk

Merge CG ImageSource and non CG ImageSource implementation in one file
​https://bugs.webkit.org/show_bug.cgi?id=155456

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-04-11
Reviewed by Darin Adler.
Source/WebCore:

ImageSource for CG and CG code paths look very similar. All the platform
specific code can be moved to ImageDecoder classes for CG and non CG. And
we can have the ImageSource be platform independent and we get rid of
ImageSourceCG.cpp.

Test: fast/images/image-subsampling.html

  • CMakeLists.txt:
  • PlatformAppleWin.cmake:
  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Delete ImageSourceCG.cpp form all make files and add ImageSource.cpp to
CMakeLists.txt.

  • platform/Cursor.cpp:

(WebCore::determineHotSpot):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::hotSpot):
(WebCore::BitmapImage::getHotSpot): Deleted.

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:

(WebCore::Image::hotSpot):
(WebCore::Image::getHotSpot): Deleted.
Rename getHotSpot() to hotSpot() and change it to return Optional<IntPoint>.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::~ImageSource): Remove clear(true) call. It does nothing.
(WebCore::ImageSource::clearFrameBufferCache): A wrapper which calls ImageDecoder::clearFrameBufferCache().
(WebCore::ImageSource::clear): Calls clearFrameBufferCache() which will do nothing for CG.

(WebCore::ImageSource::ensureDecoderIsCreated): Change SharedBuffer* to
const SharedBuffer& and remove the call to ImageDecoder::setMaxNumPixels().
The value of const static int CG ImageDecoder::m_maxNumPixels will be set
based on IMAGE_DECODER_DOWN_SAMPLING.

(WebCore::ImageSource::setData): Pass SharedBuffer& to the underlying functions.

(WebCore::ImageSource::calculateMaximumSubsamplingLevel): Returns the maximum
subsampling level allowed for an image.

(WebCore::ImageSource::subsamplingLevelForScale): Converts from a scale to
SubsamplingLevel taking into consideration the maximumSubsamplingLevel for
a particular image.

(WebCore::ImageSource::bytesDecodedToDetermineProperties): Returns the number
of encoded bytes which can determine the image properties. For non CG it's
zero. For CG it is a maximum value which can be corrected later.

(WebCore::ImageSource::isSizeAvailable):
(WebCore::ImageSource::sizeRespectingOrientation):
(WebCore::ImageSource::frameCount):
(WebCore::ImageSource::repetitionCount):
(WebCore::ImageSource::filenameExtension):
(WebCore::ImageSource::getHotSpot):
(WebCore::ImageSource::frameIsCompleteAtIndex):
(WebCore::ImageSource::frameHasAlphaAtIndex):
(WebCore::ImageSource::allowSubsamplingOfFrameAtIndex):
(WebCore::ImageSource::frameSizeAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):
(WebCore::ImageSource::frameDurationAtIndex):
(WebCore::ImageSource::orientationAtIndex):
(WebCore::ImageSource::createFrameImageAtIndex):
These are wrappers for the ImageDecoder APIs. The purpose of these functions
is to ensure the ImageDecoder is created.

(WebCore::ImageSource::dump): Called from BitmapImage::dump().

(WebCore::ImageSource::getHotSpot): Deleted.

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::setAllowSubsampling): Called from BitmapImage::setAllowSubsampling().

(WebCore::ImageSource::maxPixelsPerDecodedImage): Deleted.
(WebCore::ImageSource::setMaxPixelsPerDecodedImage): Deleted.
Setting maxPixelsPerDecodedImage was moved to the non CG ImageDecoder.

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoder::setData): Change SharedBuffer* to SharedBuffer&.

(WebCore::ImageDecoder::subsamplingLevelForScale): Deleted.
The code was moved to ImageSource::subsamplingLevelForScale().

  • platform/graphics/cg/ImageDecoderCG.h:

(WebCore::ImageDecoder::create): Make the prototype of this function
suitable for CG and non CG cases.
(WebCore::ImageDecoder::clearFrameBufferCache): Empty functions for CG.

  • platform/graphics/cg/ImageSourceCG.cpp: Removed.
  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::frameIsCompleteAtIndex): A mew function to return
whether the frame decoding is complete or not.

(WebCore::ImageDecoder::frameHasAlphaAtIndex): Simplify the logic.

(WebCore::ImageDecoder::frameDurationAtIndex): The code was moved from
ImageSource::frameDurationAtIndex() in ImageSource.cpp.

(WebCore::ImageDecoder::createFrameImageAtIndex): The code was moved from
ImageSource::createFrameImageAtIndex() in ImageSource.cpp.

  • platform/image-decoders/ImageDecoder.h:

(WebCore::ImageDecoder::ImageDecoder): Initialize the members in class.
(WebCore::ImageDecoder::~ImageDecoder): Fix the braces style.
(WebCore::ImageDecoder::setData): Change the type of the argument from
SharedBuffer* to SharedBuffer&.
(WebCore::ImageDecoder::frameSizeAtIndex): Add the argument SubsamplingLevel
so it can have the same prototype as CG.
(WebCore::ImageDecoder::orientationAtIndex): Rename it to the same of CG.

(WebCore::ImageDecoder::allowSubsamplingOfFrameAtIndex):
(WebCore::ImageDecoder::bytesDecodedToDetermineProperties):
(WebCore::ImageDecoder::subsamplingLevelForScale): Add these functions
and return the default values so we do not have to add directive compiled
non CG blocks in ImageSource.cpp.

(WebCore::ImageDecoder::hotSpot): Return Optional<IntPoint>.

(WebCore::ImageDecoder::orientation): Deleted.
(WebCore::ImageDecoder::setMaxNumPixels): Deleted.

  • platform/image-decoders/bmp/BMPImageDecoder.cpp:

(WebCore::BMPImageDecoder::setData):

  • platform/image-decoders/bmp/BMPImageDecoder.h:
  • platform/image-decoders/gif/GIFImageDecoder.cpp:

(WebCore::GIFImageDecoder::setData):
(WebCore::GIFImageDecoder::decode):

  • platform/image-decoders/gif/GIFImageDecoder.h:
  • platform/image-decoders/gif/GIFImageReader.h:

(GIFImageReader::setData):

  • platform/image-decoders/ico/ICOImageDecoder.cpp:

(WebCore::ICOImageDecoder::setData):
Use reference SharedBuffer instead of pointer SharedBuffer.

(WebCore::ICOImageDecoder::hotSpot):
(WebCore::ICOImageDecoder::hotSpotAtIndex):
Change hotSpot() to return Optional<IntPoint>.

  • platform/image-decoders/ico/ICOImageDecoder.h:

(WebCore::ICOImageDecoder::setDataForPNGDecoderAtIndex):
Pass reference SharedBuffer instead of pointer SharedBuffer.

Source/WebKit2:

  • UIProcess/API/efl/EwkView.cpp:

(EwkView::setCursor):
Replace the call to Image::getHotSpot() by Image::hotSpot().

LayoutTests:

Add a test for image sub-sampling. The image subsampling is enabled by
default for iOS platform only. But it can be explicitly enabled through
the setting ImageSubsamplingEnabled.

  • fast/images/image-subsampling-expected.html: Added.
  • fast/images/image-subsampling.html: Added.
2:32 PM Changeset in webkit [199311] by andersca@apple.com
  • 6 edits
    2 moves in trunk/Source/WebKit2

Rename WKOpenPanelParameters files to WKOpenPanelParametersRef
​https://bugs.webkit.org/show_bug.cgi?id=156473

Reviewed by Alex Christensen.

  • UIProcess/API/C/WKOpenPanelParameters.cpp:

(WKOpenPanelParametersGetTypeID): Deleted.
(WKOpenPanelParametersGetAllowsMultipleFiles): Deleted.
(WKOpenPanelParametersCopyAcceptedMIMETypes): Deleted.
(WKOpenPanelParametersCopyCapture): Deleted.
(WKOpenPanelParametersGetCaptureEnabled): Deleted.
(WKOpenPanelParametersCopySelectedFileNames): Deleted.

  • UIProcess/API/C/WKOpenPanelParametersRef.cpp: Renamed from Source/WebKit2/UIProcess/API/C/WKOpenPanelParameters.cpp.

(WKOpenPanelParametersGetTypeID):
(WKOpenPanelParametersGetAllowsMultipleFiles):
(WKOpenPanelParametersCopyAcceptedMIMETypes):
(WKOpenPanelParametersCopyCapture):
(WKOpenPanelParametersGetCaptureEnabled):
(WKOpenPanelParametersCopySelectedFileNames):

  • UIProcess/API/C/WKOpenPanelParametersRef.h: Renamed from Source/WebKit2/UIProcess/API/C/WKOpenPanelParameters.h.
  • UIProcess/API/C/WebKit2_C.h:
  • UIProcess/API/efl/ewk_file_chooser_request.cpp:
  • UIProcess/mac/WebInspectorProxyMac.mm:
  • WebKit2.xcodeproj/project.pbxproj:
2:31 PM Changeset in webkit [199310] by beidson@apple.com
  • 25 edits in trunk/Source/WebCore

Clean up IDBBindingUtilities.
​https://bugs.webkit.org/show_bug.cgi?id=156472

Reviewed by Alex Christensen.

No new tests (No change in behavior).

  • Get rid of a whole bunch of unused functions (since we got rid of Legacy IDB).
  • Make more functions deal in ExecState/ScriptExecutionContexts instead of DOMRequestState.
  • Make more functions deal in JSValue instead of Deprecated::ScriptValue.
  • bindings/scripts/IDLAttributes.txt: Add a new attribute to signify that an implementation returns JSValues instead of Deprecated::ScriptState
  • bindings/scripts/CodeGeneratorJS.pm:

(NativeToJSValue): Use that new attribute.

  • Modules/indexeddb/IDBAny.cpp:

(WebCore::IDBAny::IDBAny):
(WebCore::IDBAny::scriptValue):

  • Modules/indexeddb/IDBAny.h:

(WebCore::IDBAny::create):

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::key):
(WebCore::IDBCursor::primaryKey):
(WebCore::IDBCursor::value):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBCursorWithValue.idl:
  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::cmp):

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::count):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::getKey):

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::lowerValue):
(WebCore::IDBKeyRange::upperValue):
(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):

  • Modules/indexeddb/IDBKeyRange.h:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::modernDelete):
(WebCore::IDBObjectStore::count):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::idbKeyPathFromValue):
(WebCore::deserializeIDBValueDataToJSValue):
(WebCore::scriptValueToIDBKey):
(WebCore::idbKeyDataToScriptValue):
(WebCore::idbKeyDataToJSValue): Deleted.
(WebCore::injectIDBKeyIntoScriptValue): Deleted.
(WebCore::createIDBKeyFromScriptValueAndKeyPath): Deleted.
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath): Deleted.
(WebCore::canInjectIDBKeyIntoScriptValue): Deleted.
(WebCore::deserializeIDBValue): Deleted.
(WebCore::deserializeIDBValueData): Deleted.
(WebCore::deserializeIDBValueBuffer): Deleted.
(WebCore::idbValueDataToJSValue): Deleted.
(WebCore::idbKeyToScriptValue): Deleted.

  • bindings/js/IDBBindingUtilities.h:
  • bindings/js/JSIDBAnyCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSIDBDatabaseCustom.cpp:

(WebCore::JSIDBDatabase::createObjectStore):

  • bindings/js/JSIDBObjectStoreCustom.cpp:

(WebCore::JSIDBObjectStore::createIndex):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::execState):

  • dom/ScriptExecutionContext.h:
  • inspector/InspectorIndexedDBAgent.cpp:
1:10 PM Changeset in webkit [199309] by barraclough@apple.com
  • 16 edits in trunk/Source

WebKit should adopt journal_mode=wal for all SQLite databases.
​https://bugs.webkit.org/show_bug.cgi?id=133496

Reviewed by Darin Adler.

Source/WebCore:

The statement intended to enable WAL mode is always failing because it is missing a
prepare(). Fix this. We were also previously permitting SQLITE_OK results - this
was in error (we were only getting these because stepping the unprepared statement
returned SQLITE_OK). Also set the SQLITE_OPEN_AUTOPROXY flag when opening the
database - this will improve perfomance when the database is accessed via an AFP
mount.

This exposed a bug, that deleteAllDatabases does not actually delete the databases on
iOS, for testing to reset back to a known state between tests it should be doing so.

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::deleteAllDatabases):

  • force databases to actually be deleted on iOS. This method is only used from testing code (DumpRenderTree / WebKitTestRunner).

(WebCore::DatabaseTracker::deleteOrigin):

  • added IOSDeletionMode.

(WebCore::DatabaseTracker::deleteDatabaseFile):

  • added IOSDeletionMode, modified to actually delete if this is set.
  • Modules/webdatabase/DatabaseTracker.h:
    • added IOSDeletionMode.
  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):

  • call prepareAndStep(), only check for SQLITE_ROW result.
  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::openDatabase):

  • should set SQLITE_OPEN_AUTOPROXY flag when opening database.

Source/WebKit/mac:

  • Storage/WebDatabaseManagerPrivate.h:
    • renamed deleteAllDatabases -> deleteAllDatabasesImmediately.

Source/WebKit/win:

  • WebDatabaseManager.cpp:

(WebDatabaseManager::deleteAllDatabases):

  • renamed deleteAllDatabases -> deleteAllDatabasesImmediately.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleClearAllDatabases):

  • renamed deleteAllDatabases -> deleteAllDatabasesImmediately.
1:00 PM Changeset in webkit [199308] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: HeapSnapshot instance property path popover should include a descriptive header
​https://bugs.webkit.org/show_bug.cgi?id=156431
<rdar://problem/25633594>

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendTitle):
Title for the popover. Because localization may change the location of the @1234
in the string, localize first with a placeholder, and then replace the placeholder
with the @1234 link.

(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPath):
Give the table a container for extra padding.

(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPathRow):
Do not include the space before @1234 as part of the clickable link.

(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler):
Include a title when the popover shows a root path.

  • UserInterface/Views/HeapSnapshotInstancesContentView.css:

(.heap-snapshot-instance-popover-content > .title):
(.heap-snapshot-instance-popover-content):
(.heap-snapshot-instance-popover-content > .table-container):
(.heap-snapshot-instance-popover-content table):
Provide styles for the title. Let the title extend across the entire
popover horizontally, but pad the table so that it appears more
centered under the title. Because the table has border collapse we have
to wrap it in a container to give it back the padding we want.

12:52 PM Changeset in webkit [199307] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Simplify InlineTextBox::selectionStartEnd()
​https://bugs.webkit.org/show_bug.cgi?id=156459

Reviewed by Darin Adler.

No change in functionality.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::selectionState):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::selectionStartEnd):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):

  • rendering/InlineTextBox.h:
  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::paintText):

12:37 PM Changeset in webkit [199306] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.27.0.1/Source/WebKit2

Merged r199301. rdar://problem/25628133

12:33 PM Changeset in webkit [199305] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.27.0.1/Source

Versioning.

12:31 PM Changeset in webkit [199304] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION (r193857): Text selection causes text to disappear.
​https://bugs.webkit.org/show_bug.cgi?id=156448
rdar://problem/25578952

Reviewed by Simon Fraser.

Apparently when the end position of the selection range is smaller than the start position, we need
to repaint the entire text as it indicates selection clearing.

Source/WebCore:

Test: fast/text/text-disappear-on-deselect.html

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintText):

LayoutTests:

  • fast/text/text-disappear-on-deselect-expected.html: Added.
  • fast/text/text-disappear-on-deselect.html: Added.
12:31 PM Changeset in webkit [199303] by fpizlo@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

It should be possible to edit StructureStubInfo without recompiling the world
​https://bugs.webkit.org/show_bug.cgi?id=156470

Reviewed by Keith Miller.

This change makes it less painful to make changes to the IC code. It used to be that any
change to StructureStubInfo caused every JIT-related file to get recompiled. Now only a
smaller set of files - ones that actually peek into StructureStubInfo - will recompile. This
is mainly because CodeBlock.h no longer includes StructureStubInfo.h.

  • bytecode/ByValInfo.h:
  • bytecode/CodeBlock.cpp:
  • bytecode/CodeBlock.h:
  • bytecode/GetByIdStatus.cpp:
  • bytecode/GetByIdStatus.h:
  • bytecode/PutByIdStatus.cpp:
  • bytecode/PutByIdStatus.h:
  • bytecode/StructureStubInfo.h:

(JSC::getStructureStubInfoCodeOrigin):

  • dfg/DFGByteCodeParser.cpp:
  • dfg/DFGJITCompiler.cpp:
  • dfg/DFGOSRExitCompilerCommon.cpp:
  • dfg/DFGSpeculativeJIT.h:
  • ftl/FTLLowerDFGToB3.cpp:
  • ftl/FTLSlowPathCall.h:
  • jit/IntrinsicEmitter.cpp:
  • jit/JITInlineCacheGenerator.cpp:
  • jit/JITInlineCacheGenerator.h:
  • jit/JITOperations.cpp:
  • jit/JITPropertyAccess.cpp:
  • jit/JITPropertyAccess32_64.cpp:
12:20 PM Changeset in webkit [199302] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.27.0.1

New tag.

12:06 PM Changeset in webkit [199301] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r198933): Unable to login to Google account from Internet Accounts preference pane
​https://bugs.webkit.org/show_bug.cgi?id=156447
<rdar://problem/25628133>

Reviewed by Anders Carlsson.

Temporarily perform code signing verification only for Mac App Store- and Apple Developer- signed apps.

  • Shared/mac/ChildProcessMac.mm:

(WebKit::codeSigningIdentifierForProcess):

12:04 PM Changeset in webkit [199300] by gskachkov@gmail.com
  • 19 edits in trunk/Source/JavaScriptCore

Remove NewArrowFunction from DFG IR
​https://bugs.webkit.org/show_bug.cgi?id=156439

Reviewed by Saam Barati.

It seems that NewArrowFunction was left in DFG IR during refactoring by mistake.

  • dfg/DFGAbstractInterpreterInlines.h:
  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:
  • dfg/DFGDoesGC.cpp:
  • dfg/DFGFixupPhase.cpp:
  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToPhantomNewFunction):

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewFunction):

  • dfg/DFGSpeculativeJIT32_64.cpp:
  • dfg/DFGSpeculativeJIT64.cpp:
  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • dfg/DFGStructureRegistrationPhase.cpp:
  • ftl/FTLCapabilities.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):

12:00 PM Changeset in webkit [199299] by oliver@apple.com
  • 21 edits in trunk

Remove compile time define for SEPARATED_HEAP
​https://bugs.webkit.org/show_bug.cgi?id=155508

Reviewed by Mark Lam.

Source/JavaScriptCore:

Remove the SEPARATED_HEAP compile time flag. The separated
heap is available, but off by default, on x86_64, ARMv7, and
ARM64.

Working through the issues that happened last time essentially
required implementing the ARMv7 path for the separated heap
just so I could find all the ways it was going wrong.

We fixed all the logic by making the branch and jump logic in
the linker and assemblers take two parameters, the location to
write to, and the location we'll actually be writing to. We
need to do this because it's no longer sufficient to compute
jumps relative to region the linker is writing to.

The repatching jump, branch, and call functions only need the
executable address as the patching is performed directly using
performJITMemcpy function which works in terms of the executable
address.

There is no performance impact on jsc-benchmarks with the separate
heap either emabled or disabled.

  • Configurations/FeatureDefines.xcconfig:
  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::linkJump):
(JSC::ARM64Assembler::linkCall):
(JSC::ARM64Assembler::relinkJump):
(JSC::ARM64Assembler::relinkCall):
(JSC::ARM64Assembler::link):
(JSC::ARM64Assembler::linkJumpOrCall):
(JSC::ARM64Assembler::linkCompareAndBranch):
(JSC::ARM64Assembler::linkConditionalBranch):
(JSC::ARM64Assembler::linkTestAndBranch):
(JSC::ARM64Assembler::relinkJumpOrCall):

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::revertJumpTo_movT3movtcmpT2):
(JSC::ARMv7Assembler::revertJumpTo_movT3):
(JSC::ARMv7Assembler::link):
(JSC::ARMv7Assembler::linkJump):
(JSC::ARMv7Assembler::relinkJump):
(JSC::ARMv7Assembler::repatchCompact):
(JSC::ARMv7Assembler::replaceWithJump):
(JSC::ARMv7Assembler::replaceWithLoad):
(JSC::ARMv7Assembler::replaceWithAddressComputation):
(JSC::ARMv7Assembler::setInt32):
(JSC::ARMv7Assembler::setUInt7ForLoad):
(JSC::ARMv7Assembler::isB):
(JSC::ARMv7Assembler::isBX):
(JSC::ARMv7Assembler::isMOV_imm_T3):
(JSC::ARMv7Assembler::isMOVT):
(JSC::ARMv7Assembler::isNOP_T1):
(JSC::ARMv7Assembler::isNOP_T2):
(JSC::ARMv7Assembler::linkJumpT1):
(JSC::ARMv7Assembler::linkJumpT2):
(JSC::ARMv7Assembler::linkJumpT3):
(JSC::ARMv7Assembler::linkJumpT4):
(JSC::ARMv7Assembler::linkConditionalJumpT4):
(JSC::ARMv7Assembler::linkBX):
(JSC::ARMv7Assembler::linkConditionalBX):
(JSC::ARMv7Assembler::linkJumpAbsolute):

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::link):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::link):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

  • jit/ExecutableAllocatorFixedVMPool.cpp:

(JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps):
(JSC::FixedVMPoolExecutableAllocator::jitWriteThunkGenerator):
(JSC::FixedVMPoolExecutableAllocator::genericWriteToJITRegion):
(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator): Deleted.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

  • runtime/Options.h:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:
  • wtf/Platform.h:
11:49 AM Changeset in webkit [199298] by Chris Dumez
  • 15 edits
    2 deletes in trunk/Source/WebCore

Merge AttributedDOMTokenList into DOMTokenList
​https://bugs.webkit.org/show_bug.cgi?id=156468

Reviewed by Ryosuke Niwa.

Merge AttributedDOMTokenList into DOMTokenList to simplify the code.
DOMTokenList is not constructible and AttributedDOMTokenList is its
only constructible subclass after r196123.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::Element::classList):

  • dom/ElementRareData.h:

(WebCore::ElementRareData::classList):
(WebCore::ElementRareData::setClassList):

  • html/AttributeDOMTokenList.cpp: Removed.
  • html/AttributeDOMTokenList.h: Removed.
  • html/DOMTokenList.cpp:

(WebCore::DOMTokenList::DOMTokenList):
(WebCore::DOMTokenList::attributeValueChanged):
(WebCore::DOMTokenList::updateAfterTokenChange):

  • html/DOMTokenList.h:

(WebCore::DOMTokenList::ref):
(WebCore::DOMTokenList::deref):
(WebCore::DOMTokenList::element):
(WebCore::DOMTokenList::~DOMTokenList): Deleted.
(WebCore::DOMTokenList::updateAfterTokenChange): Deleted.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::relList):

  • html/HTMLAnchorElement.h:
  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::sandbox):

  • html/HTMLIFrameElement.h:
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::sizes):
(WebCore::HTMLLinkElement::relList):

  • html/HTMLLinkElement.h:
  • html/HTMLOutputElement.cpp:

(WebCore::HTMLOutputElement::htmlFor):

  • html/HTMLOutputElement.h:
11:20 AM Changeset in webkit [199297] by fpizlo@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Clean up how we reason about the states of AccessCases
​https://bugs.webkit.org/show_bug.cgi?id=156454

Reviewed by Mark Lam.

Currently when we add an AccessCase to a PolymorphicAccess stub, we regenerate the stub.
That means that as we grow a stub to have N cases, we will do O(N2) generation work. I want
to explore buffering AccessCases so that we can do O(N) generation work instead. But to
before I go there, I want to make sure that the statefulness of AccessCase makes sense. So,
I broke it down into three different states and added assertions about the transitions. I
also broke out a separate operation called AccessCase::commit(), which is the work that
cannot be buffered since there cannot be any JS effects between when the AccessCase was
created and when we do the work in commit().

This opens up a fairly obvious path to buffering AccessCases: add them to the list without
regenerating. Then when we do eventually trigger regeneration, those cases will get cloned
and generated automagically. This patch doesn't implement this technique yet, but gives us
an opportunity to independently test the scaffolding necessary to do it.

This is perf-neutral on lots of tests.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationResult::dump):
(JSC::AccessCase::clone):
(JSC::AccessCase::commit):
(JSC::AccessCase::guardedByStructureCheck):
(JSC::AccessCase::dump):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generate):
(JSC::AccessCase::generateImpl):
(JSC::PolymorphicAccess::regenerateWithCases):
(JSC::PolymorphicAccess::regenerate):
(WTF::printInternal):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessCase::type):
(JSC::AccessCase::state):
(JSC::AccessCase::offset):
(JSC::AccessCase::viaProxy):
(JSC::AccessCase::callLinkInfo):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::addAccessCase):

  • bytecode/Watchpoint.h:
  • dfg/DFGOperations.cpp:
  • jit/Repatch.cpp:

(JSC::repatchGetByID):
(JSC::repatchPutByID):
(JSC::repatchIn):

  • runtime/VM.cpp:

(JSC::VM::dumpRegExpTrace):
(JSC::VM::ensureWatchpointSetForImpureProperty):
(JSC::VM::registerWatchpointForImpureProperty):
(JSC::VM::addImpureProperty):

  • runtime/VM.h:
9:50 AM Changeset in webkit [199296] by Chris Dumez
  • 15 edits in trunk

DOMTokenList.contains() should not throw
​https://bugs.webkit.org/show_bug.cgi?id=156453

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Re-sync dom/nodes/Element-classlist.html with upstream @26308720.

  • web-platform-tests/dom/nodes/Element-classlist-expected.txt:
  • web-platform-tests/dom/nodes/Element-classlist.html:

Source/WebCore:

DOMTokenList.contains() should not throw if the input token is invalid:
​https://github.com/whatwg/dom/commit/6d3076e3cbcba662489b272a718bc6b8c0082a74

We now return false in such cases, instead of throwing, which should be
safe with regards to backward compatibility.

No new tests, already covered by existing tests.

  • html/DOMTokenList.cpp:

(WebCore::DOMTokenList::contains):

  • html/DOMTokenList.h:
  • html/DOMTokenList.idl:

LayoutTests:

Update existing layout tests now that DOMTokenList.contains() no longer
throws when called with an invalid token.

  • fast/dom/HTMLElement/class-list-expected.txt:
  • fast/dom/HTMLElement/class-list-quirks-expected.txt:
  • fast/dom/HTMLElement/script-tests/class-list.js:

(shouldThrowDOMException): Deleted.

  • fast/dom/HTMLOutputElement/dom-settable-token-list-expected.txt:
  • fast/dom/HTMLOutputElement/script-tests/dom-settable-token-list.js:

(shouldThrowDOMException): Deleted.

  • fast/dom/rel-list-expected.txt:
  • fast/dom/rel-list.html:
9:07 AM WebKitIDL edited by Chris Dumez
Add [ExportMacro] (diff)
8:45 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
8:38 AM Changeset in webkit [199295] by fred.wang@free.fr
  • 15 edits
    2 adds in trunk

Refactor RenderMathMLFraction layout to avoid using flexbox
​https://bugs.webkit.org/show_bug.cgi?id=153917

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-11
Reviewed by Sergio Villar Senin.

Source/WebCore:

Based on a patch by Alejandro G. Castro <​alex@igalia.com>

Implement the layoutBlock method to handle the layout calculations
directly in the class. This also fixes parsing of absolute values for
linethickness attribute (e.g. 10px) and adds support for the AxisHeight
and FractionRuleThickness MATH parameters.

Test: mathml/opentype/fraction-line.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::mathLineThickness): Use the thickness relative to the
default line thickness since that's really what is expected by mathml-line-fraction.html

  • css/mathml.css: Remove flexbox properties for mfrac.

(mfrac): Deleted.
(mfrac > *): Deleted.
(mfrac[numalign="left"] > :first-child): Deleted.
(mfrac[numalign="right"] > :first-child): Deleted.
(mfrac[denomalign="left"] > :last-child): Deleted.
(mfrac[denomalign="right"] > :last-child): Deleted.
(mfrac > :first-child): Deleted.
(mfrac > :last-child): Deleted.
(mfrac): Deleted.

  • rendering/mathml/RenderMathMLBlock.cpp: Introduce a helper function to retrieve the math

axis height.
(WebCore::RenderMathMLBlock::mathAxisHeight):

  • rendering/mathml/RenderMathMLBlock.h: Declare mathAxisHeight.
  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::RenderMathMLFraction):
(WebCore::RenderMathMLFraction::parseAlignmentAttribute): Helper function to parse the align
attribute.
(WebCore::RenderMathMLFraction::isValid): Helper function to verify whether the child list
is valid with respect to the MathML specificitation.
(WebCore::RenderMathMLFraction::numerator): Helper function to retrieve the numerator.
(WebCore::RenderMathMLFraction::denominator): Helper function to retrieve the denominator.
(WebCore::RenderMathMLFraction::updateFromElement): Use the FractionRuleThickness parameter
when avaiable to calculate the default linethickness.
Fix computation of linethickness for absolute values (e.g. 10px), the default linethickness
must not be involved for such values.
We no longer need to manage style of anonymous wrappers.
(WebCore::RenderMathMLFraction::unembellishedOperator): Use the helper function and we no
longer care about anonymous wrappers.
(WebCore::RenderMathMLFraction::computePreferredLogicalWidths): Implement this function
without using flexbox.
(WebCore::RenderMathMLFraction::horizontalOffset): Helper function to get the horizontal
offsets of children depending of the alignment.
(WebCore::RenderMathMLFraction::layoutBlock): Implement this function without using flexbox.
(WebCore::RenderMathMLFraction::paint): Do not paint if the fraction is invalid. Use helper
function. Use the width of the renderer (instead of the one of the denominator) as the
length of the fraction bar.
(WebCore::RenderMathMLFraction::firstLineBaseline): Use the helper functions to get children
and axis height.
(WebCore::RenderMathMLFraction::paintChildren): Temporary function to remove in a
follow-up patch.
(WebCore::RenderMathMLFraction::fixChildStyle): Deleted. We no longer need to manage style
of anonymous wrappers.
(WebCore::RenderMathMLFraction::addChild): Deleted. We no longer need to manage
anonymous wrappers.
(WebCore::RenderMathMLFraction::styleDidChange): We no longer need to manage style of
anonymous wrappers.
(WebCore::RenderMathMLFraction::layout): Deleted.

  • rendering/mathml/RenderMathMLFraction.h: Replace lineThickness with relativeLineThickness,

as needed by the accessibility code. Update function and members declarations.

LayoutTests:

  • TestExpectations: No longer skip mathml/presentation/fractions-positions.html
  • mathml/opentype/fraction-line-expected.html: Added. New test to verify AxisHeight and

FractionRuleThickness parameters.

  • mathml/opentype/fraction-line.html: Added. New test to verify axis height and rule

thickness parameters.

  • mathml/presentation/fractions-linethickness-expected.html: Adjust the test to be sure that

the default rule thickness is 1px.

  • mathml/presentation/fractions-linethickness.html: Adjust the test to be sure that the

default rule thickness is 1px.

  • platform/gtk/mathml/presentation/roots-expected.txt: Update reference to take into account

changes in the render tree.

  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto
  • platform/mac/TestExpectations: Mark fraction-line and fractions-linethickness as

possibly failing since these tests require Latin Modern Math to work reliably.

  • platform/ios-simulator/TestExpectations: Ditto
5:46 AM Changeset in webkit [199294] by commit-queue@webkit.org
  • 25 edits
    1 copy
    2 deletes in trunk

Unreviewed, rolling out r199290.
​https://bugs.webkit.org/show_bug.cgi?id=156465

broke 300 tests (Requested by mcatanzaro on #webkit).

Reverted changeset:

"Merge CG ImageSource and non CG ImageSource implementation in
one file"
​https://bugs.webkit.org/show_bug.cgi?id=155456
​http://trac.webkit.org/changeset/199290

5:12 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
5:11 AM Changeset in webkit [199293] by fred.wang@free.fr
  • 13 edits
    2 adds in trunk

Refactor RenderMathMLUnderOver layout functions to avoid using flexbox
​https://bugs.webkit.org/show_bug.cgi?id=153742

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-11
Reviewed by Sergio Villar Senin.

Source/WebCore:

Based on a patch by Javier Fernandez <​jfernandez@igalia.com>

Refactor the UnderOver renderer to use its own layoutBlock method that
does all the layout calculations without considering the flexbox
restrictions.

  • css/mathml.css:

(mo, mfrac, munder, mover, munderover): Delete the underover elements from the line defining
the column direction.
(munder, mover, munderover): Deleted. This flexbox property is no longer needed.
(mover > :last-child, munderover > :last-child): Deleted. This flexbox property is no longer
needed.

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::firstLineBaseline): Use ascentForChild.
(WebCore::RenderMathMLUnderOver::computeOperatorsHorizontalStretch): Avoid stretching
operators that are not stretchy.
(WebCore::RenderMathMLUnderOver::isValid): Helper function to ensure that the child list is
valid with respect to the MathML specification.
(WebCore::RenderMathMLUnderOver::base): Added. Helper function.
(WebCore::RenderMathMLUnderOver::under): Added. Helper function.
(WebCore::RenderMathMLUnderOver::over): Added. Helper function.
(WebCore::RenderMathMLUnderOver::computePreferredLogicalWidths): Added.
The preferred width is the maximum preferred width of the base, under and over scripts.
(WebCore::RenderMathMLUnderOver::horizontalOffset): Added, helper to calculate the
horizontal position of children (horizontally centered).
(WebCore::RenderMathMLUnderOver::layoutBlock): Added, it lays out the base, underscript and
overscript. It calculates the exact logical width, which may differ from the preferred width when
one child contains stretchy operators. It later sets the locations of children accordingly
and sets the heigth of the render element.
(WebCore::RenderMathMLUnderOver::paintChildren): Added, we have to use the usual traverse
instead of the one that comes from the flexbox. This will be removed in a follow-up patch.
(WebCore::RenderMathMLUnderOver::layout): Deleted.

  • rendering/mathml/RenderMathMLUnderOver.h: Added new functions definitions.

LayoutTests:

Apply some small adjustments to the expectations of MathML tests after
the refactoring of RenderMathMLUnderOver. We also add a test for
non-stretchy horizontal operators in underover.

  • platform/gtk/mathml/opentype/horizontal-expected.png:
  • platform/gtk/mathml/opentype/horizontal-expected.txt:
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png:
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • mathml/mn-as-list-item-assert.html: Move the test description out of the invalid munderover

so that it is still displayed.

  • mathml/mn-as-list-item-assert-expected.txt: Update the text expectation.
  • mathml/presentation/underover-nonstretchy-horizontal.html: Ensure that nonstretchy horizontal operators are not stretched in munderover.
  • mathml/presentation/underover-nonstretchy-horizontal-expected.html: Ditto.
3:59 AM Changeset in webkit [199292] by Carlos Garcia Campos
  • 7 edits
    3 adds in trunk

[GTK] Rework the theming code for GTK+ 3.20
​https://bugs.webkit.org/show_bug.cgi?id=156333

Reviewed by Michael Catanzaro.

.:

Add a manual test to check how themed elements are rendered.

  • ManualTests/gtk/theme.html: Added.

Source/WebCore:

During the 3.19 GTK+ release cycle, the GTK+ css system was reworked, making themes and programs rendering
themed widgets, incompatible with the new system. We were trying to fix our rendering every time GTK+ broke
something, but we were just changing whatever it was needed to make our rendering look like current GTK+ with
the default theme Adwaita. This means that our rendering will be broken for other themes or that changes in
Adwaita can break our rendering. This solution was good enough to ensure WebKitGTK+ 2.12 looked good with GTK+
3.20, but it doesn't work in the long term. We need to ensure that our theming code honors the new GTK+ CSS
properties (max-width, min-width, margin, padding, border, ...) in all the cases, not only the cases where
Adwaita uses them like we currently do.
This patch splits all rendering methods to keep the current code for previous GTK+ versions and adds new code
for GTK+ >= 3.20 using the new RenderThemeGadget classes. This makes the code easier to read, since there aren't
ifdef blocks in the functions, and we ensure we don't break previous rendering.

  • PlatformGTK.cmake: Add new files to compilation.
  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::defaultEventHandler): Check the button layout used by the theme to decide the
current buttons state.

  • platform/gtk/RenderThemeGadget.cpp: Added.

(WebCore::RenderThemeGadget::create):
(WebCore::createStyleContext):
(WebCore::appendElementToPath):
(WebCore::RenderThemeGadget::RenderThemeGadget):
(WebCore::RenderThemeGadget::~RenderThemeGadget):
(WebCore::RenderThemeGadget::marginBox):
(WebCore::RenderThemeGadget::borderBox):
(WebCore::RenderThemeGadget::paddingBox):
(WebCore::RenderThemeGadget::contentsBox):
(WebCore::RenderThemeGadget::color):
(WebCore::RenderThemeGadget::backgroundColor):
(WebCore::RenderThemeGadget::minimumSize):
(WebCore::RenderThemeGadget::preferredSize):
(WebCore::RenderThemeGadget::render):
(WebCore::RenderThemeGadget::renderFocus):
(WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget):
(WebCore::RenderThemeTextFieldGadget::RenderThemeTextFieldGadget):
(WebCore::RenderThemeTextFieldGadget::minimumSize):
(WebCore::RenderThemeToggleGadget::RenderThemeToggleGadget):
(WebCore::RenderThemeToggleGadget::render):
(WebCore::RenderThemeArrowGadget::RenderThemeArrowGadget):
(WebCore::RenderThemeArrowGadget::render):
(WebCore::RenderThemeIconGadget::RenderThemeIconGadget):
(WebCore::RenderThemeIconGadget::gtkIconSizeForPixelSize):
(WebCore::RenderThemeIconGadget::render):
(WebCore::RenderThemeIconGadget::minimumSize):

  • platform/gtk/RenderThemeGadget.h: Added.

(WebCore::RenderThemeGadget::context):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::innerSpinButtonLayout): Added this method to allow themes use a different layout for the
buttons.

  • rendering/RenderThemeGtk.cpp:

(WebCore::themeChangedCallback): Just moved this code to a common place.
(WebCore::RenderThemeGtk::RenderThemeGtk): Initialize the theme monitor in the constructor.
(WebCore::createStyleContext): Remove the render parts that are specific to GTK+ 3.20.
(WebCore::RenderThemeGtk::adjustRepaintRect): Moved inside a GTK+ < 3.20 ifdef block.
(WebCore::themePartStateFlags): Helper function to get the GtkStateFlags of a theme part for a given RenderObject.
(WebCore::shrinkToMinimumSizeAndCenterRectangle): Move this common code to a helper function.
(WebCore::setToggleSize):
(WebCore::paintToggle):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::RenderThemeGtk::popupInternalPaddingBox):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::adjustTextFieldStyle): For GTK+ 3.20 we need to ensure a minimum size for spin buttons,
so if the text field is for a spin button, we adjust the desired size here.
(WebCore::RenderThemeGtk::paintTextField): In GTK+ 3.20 the CSS gadgets used to render spin buttons are
different, so we check here if this is the entry of a spin button to use the right gadgets.
(WebCore::adjustSearchFieldIconStyle):
(WebCore::RenderThemeGtk::paintTextArea):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
(WebCore::paintSearchFieldIcon):
(WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
(WebCore::centerRectVerticallyInParentInputElement): Moved inside a GTK+ < 3.20 ifdef block.
(WebCore::RenderThemeGtk::paintSliderTrack):
(WebCore::RenderThemeGtk::adjustSliderThumbSize):
(WebCore::RenderThemeGtk::paintSliderThumb):
(WebCore::RenderThemeGtk::progressBarRectForBounds): Ensure a minimum size of progress bars in GTK+ 3.20.
(WebCore::RenderThemeGtk::paintProgressBar):
(WebCore::RenderThemeGtk::innerSpinButtonLayout): Use an horizontal layout for spin buttons.
(WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeGtk::paintInnerSpinButton):
(WebCore::styleColor):
(WebCore::RenderThemeGtk::paintMediaButton):

  • rendering/RenderThemeGtk.h:
2:13 AM Changeset in webkit [199291] by Antti Koivisto
  • 13 edits in trunk

Implement functional :host() pseudo class
​https://bugs.webkit.org/show_bug.cgi?id=156397
<rdar://problem/25621445>

Reviewed by Darin Adler.

Source/WebCore:

We already support :host. Add functional syntax too.

  • css/CSSGrammar.y.in:

Parse functional :host().

  • css/CSSParser.cpp:

(WebCore::CSSParser::detectFunctionTypeToken):

  • css/CSSParserValues.cpp:

(WebCore::CSSParserSelector::parsePseudoClassHostFunctionSelector):

  • css/CSSParserValues.h:
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::matchedRuleList):
(WebCore::ElementRuleCollector::addMatchedRule):

Factor some shared code here.

(WebCore::ElementRuleCollector::matchHostPseudoClassRules):

Instead of using the generic paths use a :host specific code path for matching.
This makes it easier to avoid :host matching when it shouldn't.

(WebCore::ElementRuleCollector::collectMatchingRulesForList):

  • css/ElementRuleCollector.h:
  • css/RuleSet.cpp:

(WebCore::computeMatchBasedOnRuleHash):

:host is always handled by the special matching path.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::match):
(WebCore::SelectorChecker::matchHostPseudoClass):

Add a function specifically for checking :host. In always fails on the normal code paths.
Check the argument selector if provided.

(WebCore::hasScrollbarPseudoElement):

  • css/SelectorChecker.h:

LayoutTests:

Enable, fix and expand the test.

  • fast/shadow-dom/css-scoping-shadow-host-functional-rule.html:
  • platform/mac/TestExpectations:
12:30 AM MathML edited by fred.wang@free.fr
Update Bugzilla links (diff)
12:29 AM Changeset in webkit [199290] by commit-queue@webkit.org
  • 25 edits
    2 adds
    1 delete in trunk

Merge CG ImageSource and non CG ImageSource implementation in one file
​https://bugs.webkit.org/show_bug.cgi?id=155456

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-04-11
Reviewed by Darin Adler.
Source/WebCore:

ImageSource for CG and CG code paths look very similar. All the platform
specific code can be moved to ImageDecoder classes for CG and non CG. And
we can have the ImageSource be platform independent and we get rid of
ImageSourceCG.cpp.

Test: fast/images/image-subsampling.html

  • CMakeLists.txt:
  • PlatformAppleWin.cmake:
  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Delete ImageSourceCG.cpp form all make files and add ImageSource.cpp to
CMakeLists.txt.

  • platform/Cursor.cpp:

(WebCore::determineHotSpot):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::hotSpot):
(WebCore::BitmapImage::getHotSpot): Deleted.

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:

(WebCore::Image::hotSpot):
(WebCore::Image::getHotSpot): Deleted.
Rename getHotSpot() to hotSpot() and change it to return Optional<IntPoint>.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::~ImageSource): Remove clear(true) call. It does nothing.
(WebCore::ImageSource::clearFrameBufferCache): A wrapper which calls ImageDecoder::clearFrameBufferCache().
(WebCore::ImageSource::clear): Calls clearFrameBufferCache() which will do nothing for CG.

(WebCore::ImageSource::ensureDecoderIsCreated): Change SharedBuffer* to
const SharedBuffer& and remove the call to ImageDecoder::setMaxNumPixels().
The value of const static int CG ImageDecoder::m_maxNumPixels will be set
based on IMAGE_DECODER_DOWN_SAMPLING.

(WebCore::ImageSource::setData): Pass SharedBuffer& to the underlying functions.

(WebCore::ImageSource::calculateMaximumSubsamplingLevel): Returns the maximum
subsampling level allowed for an image.

(WebCore::ImageSource::subsamplingLevelForScale): Converts from a scale to
SubsamplingLevel taking into consideration the maximumSubsamplingLevel for
a particular image.

(WebCore::ImageSource::bytesDecodedToDetermineProperties): Returns the number
of encoded bytes which can determine the image properties. For non CG it's
zero. For CG it is a maximum value which can be corrected later.

(WebCore::ImageSource::isSizeAvailable):
(WebCore::ImageSource::sizeRespectingOrientation):
(WebCore::ImageSource::frameCount):
(WebCore::ImageSource::repetitionCount):
(WebCore::ImageSource::filenameExtension):
(WebCore::ImageSource::getHotSpot):
(WebCore::ImageSource::frameIsCompleteAtIndex):
(WebCore::ImageSource::frameHasAlphaAtIndex):
(WebCore::ImageSource::allowSubsamplingOfFrameAtIndex):
(WebCore::ImageSource::frameSizeAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):
(WebCore::ImageSource::frameDurationAtIndex):
(WebCore::ImageSource::orientationAtIndex):
(WebCore::ImageSource::createFrameImageAtIndex):
These are wrappers for the ImageDecoder APIs. The purpose of these functions
is to ensure the ImageDecoder is created.

(WebCore::ImageSource::dump): Called from BitmapImage::dump().

(WebCore::ImageSource::getHotSpot): Deleted.

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::setAllowSubsampling): Called from BitmapImage::setAllowSubsampling().

(WebCore::ImageSource::maxPixelsPerDecodedImage): Deleted.
(WebCore::ImageSource::setMaxPixelsPerDecodedImage): Deleted.
Setting maxPixelsPerDecodedImage was moved to the non CG ImageDecoder.

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoder::setData): Change SharedBuffer* to SharedBuffer&.

(WebCore::ImageDecoder::subsamplingLevelForScale): Deleted.
The code was moved to ImageSource::subsamplingLevelForScale().

  • platform/graphics/cg/ImageDecoderCG.h:

(WebCore::ImageDecoder::create): Make the prototype of this function
suitable for CG and non CG cases.
(WebCore::ImageDecoder::clearFrameBufferCache): Empty functions for CG.

  • platform/graphics/cg/ImageSourceCG.cpp: Removed.
  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::frameIsCompleteAtIndex): A mew function to return
whether the frame decoding is complete or not.

(WebCore::ImageDecoder::frameHasAlphaAtIndex): Simplify the logic.

(WebCore::ImageDecoder::frameDurationAtIndex): The code was moved from
ImageSource::frameDurationAtIndex() in ImageSource.cpp.

(WebCore::ImageDecoder::createFrameImageAtIndex): The code was moved from
ImageSource::createFrameImageAtIndex() in ImageSource.cpp.

  • platform/image-decoders/ImageDecoder.h:

(WebCore::ImageDecoder::ImageDecoder): Initialize the members in class.
(WebCore::ImageDecoder::~ImageDecoder): Fix the braces style.
(WebCore::ImageDecoder::setData): Change the type of the argument from
SharedBuffer* to SharedBuffer&.
(WebCore::ImageDecoder::frameSizeAtIndex): Add the argument SubsamplingLevel
so it can have the same prototype as CG.
(WebCore::ImageDecoder::orientationAtIndex): Rename it to the same of CG.

(WebCore::ImageDecoder::allowSubsamplingOfFrameAtIndex):
(WebCore::ImageDecoder::bytesDecodedToDetermineProperties):
(WebCore::ImageDecoder::subsamplingLevelForScale): Add these functions
and return the default values so we do not have to add directive compiled
non CG blocks in ImageSource.cpp.

(WebCore::ImageDecoder::hotSpot): Return Optional<IntPoint>.

(WebCore::ImageDecoder::orientation): Deleted.
(WebCore::ImageDecoder::setMaxNumPixels): Deleted.

  • platform/image-decoders/bmp/BMPImageDecoder.cpp:

(WebCore::BMPImageDecoder::setData):

  • platform/image-decoders/bmp/BMPImageDecoder.h:
  • platform/image-decoders/gif/GIFImageDecoder.cpp:

(WebCore::GIFImageDecoder::setData):
(WebCore::GIFImageDecoder::decode):

  • platform/image-decoders/gif/GIFImageDecoder.h:
  • platform/image-decoders/gif/GIFImageReader.h:

(GIFImageReader::setData):

  • platform/image-decoders/ico/ICOImageDecoder.cpp:

(WebCore::ICOImageDecoder::setData):
Use reference SharedBuffer instead of pointer SharedBuffer.

(WebCore::ICOImageDecoder::hotSpot):
(WebCore::ICOImageDecoder::hotSpotAtIndex):
Change hotSpot() to return Optional<IntPoint>.

  • platform/image-decoders/ico/ICOImageDecoder.h:

(WebCore::ICOImageDecoder::setDataForPNGDecoderAtIndex):
Pass reference SharedBuffer instead of pointer SharedBuffer.

Source/WebKit2:

  • UIProcess/API/efl/EwkView.cpp:

(EwkView::setCursor):
Replace the call to Image::getHotSpot() by Image::hotSpot().

LayoutTests:

Add a test for image sub-sampling. The image subsampling is enabled by
default for iOS platform only. But it can be explicitly enabled through
the setting ImageSubsamplingEnabled.

  • fast/images/image-subsampling-expected.html: Added.
  • fast/images/image-subsampling.html: Added.
12:28 AM Changeset in webkit [199289] by commit-queue@webkit.org
  • 28 edits in trunk

[CMake] Make FOLDER property INHERITED
​https://bugs.webkit.org/show_bug.cgi?id=156460

Patch by Fujii Hironori <​Hironori.Fujii@jp.sony.com> on 2016-04-11
Reviewed by Brent Fulgham.

.:

Some CMake targets are not setting the FOLDER property. This causes the
generated projects to be displayed in the top-level folder of the solution.

Making the FOLDER property INHERITED ensures that all the targets
are placed in their proper directories.

  • Source/cmake/OptionsCommon.cmake:

Define FOLDER property as a inherited property.

  • Source/cmake/WebKitMacros.cmake:

Do not set FOLDER target property.

Source/bmalloc:

  • CMakeLists.txt:

Set FOLDER property as a directory property not a target property

Source/JavaScriptCore:

  • CMakeLists.txt:
  • shell/CMakeLists.txt:
  • shell/PlatformWin.cmake:

Set FOLDER property as a directory property not a target property

Source/ThirdParty/ANGLE:

  • CMakeLists.txt:

Set FOLDER property as a directory property not a target property

Source/WebCore:

  • CMakeLists.txt:

Set FOLDER property as a directory property not a target property

Source/WebKit:

  • CMakeLists.txt:
  • PlatformWin.cmake:

Set FOLDER property as a directory property not a target property

Source/WebKit2:

  • CMakeLists.txt:

Set FOLDER property as a directory property not a target property

Source/WTF:

  • CMakeLists.txt:

Set FOLDER directory property

Tools:

  • CMakeLists.txt:
  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/PlatformWin.cmake:
  • ImageDiff/CMakeLists.txt:
  • MiniBrowser/efl/CMakeLists.txt:
  • MiniBrowser/gtk/CMakeLists.txt:
  • MiniBrowser/win/CMakeLists.txt:

Set FOLDER property as a directory property not a target property

12:22 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)

Apr 10, 2016:

5:10 PM Changeset in webkit [199288] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[Tools] correctly check for braces in multiline branches in macro definition
​https://bugs.webkit.org/show_bug.cgi?id=156441

Patch by Caitlin Potter <​caitp@igalia.com> on 2016-04-10
Reviewed by Darin Adler.

Prevents emitting whitespace/braces warning for code like the
following:

`
#define MACRO(x) \

if (x) { \

doTheThing(); \
continue; \

}

`

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_braces):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_line_breaking):

12:04 PM Changeset in webkit [199287] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build.

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker):

11:48 AM Changeset in webkit [199286] by weinig@apple.com
  • 39 edits in trunk/Source

Remove support for custom target picker actions
<rdar://problem/24987783>
​https://bugs.webkit.org/show_bug.cgi?id=156434

Reviewed by Eric Carlson.

This mostly entailed rolling out r197429 and r197569.

Source/WebCore:

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::removeAllPlaybackTargetPickerClients):
(WebCore::WebMediaSessionManager::showPlaybackTargetPicker):
(WebCore::WebMediaSessionManager::clientStateDidChange):
(WebCore::WebMediaSessionManager::externalOutputDeviceAvailableDidChange):
(WebCore::WebMediaSessionManager::configureNewClients):
(WebCore::WebMediaSessionManager::customPlaybackActionSelected): Deleted.

  • Modules/mediasession/WebMediaSessionManager.h:
  • Modules/mediasession/WebMediaSessionManagerClient.h:
  • dom/Document.cpp:

(WebCore::Document::removePlaybackTargetPickerClient):
(WebCore::Document::showPlaybackTargetPicker):
(WebCore::Document::playbackTargetPickerClientStateDidChange):
(WebCore::Document::setShouldPlayToPlaybackTarget):
(WebCore::Document::customPlaybackActionSelected): Deleted.

  • dom/Document.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
(WebCore::HTMLMediaElement::setShouldPlayToPlaybackTarget):
(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless):
(WebCore::HTMLMediaElement::customPlaybackActionSelected): Deleted.
(WebCore::HTMLMediaElement::playbackTargetPickerCustomActionName): Deleted.

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::showPlaybackTargetPicker):
(WebCore::MediaElementSession::hasWirelessPlaybackTargets):
(WebCore::MediaElementSession::setShouldPlayToPlaybackTarget):
(WebCore::MediaElementSession::mediaStateDidChange):
(WebCore::MediaElementSession::customPlaybackActionSelected): Deleted.

  • html/MediaElementSession.h:
  • page/ChromeClient.h:
  • page/Page.cpp:

(WebCore::Page::removePlaybackTargetPickerClient):
(WebCore::Page::showPlaybackTargetPicker):
(WebCore::Page::setShouldPlayToPlaybackTarget):
(WebCore::Page::ensureTestTrigger):
(WebCore::Page::customPlaybackActionSelected): Deleted.

  • page/Page.h:

(WebCore::Page::testTrigger):

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSessionClient::canPlayToWirelessPlaybackTarget):
(WebCore::PlatformMediaSessionClient::isPlayingToWirelessPlaybackTarget):
(WebCore::PlatformMediaSessionClient::setShouldPlayToPlaybackTarget):
(WebCore::PlatformMediaSessionClient::customPlaybackActionSelected): Deleted.

  • platform/graphics/MediaPlaybackTargetClient.h:
  • platform/graphics/MediaPlaybackTargetPicker.cpp:

(WebCore::MediaPlaybackTargetPicker::pendingActionTimerFired):
(WebCore::MediaPlaybackTargetPicker::addPendingAction):
(WebCore::MediaPlaybackTargetPicker::showPlaybackTargetPicker):

  • platform/graphics/MediaPlaybackTargetPicker.h:

(WebCore::MediaPlaybackTargetPicker::availableDevicesDidChange):
(WebCore::MediaPlaybackTargetPicker::currentDeviceDidChange):
(WebCore::MediaPlaybackTargetPicker::Client::customPlaybackActionSelected): Deleted.
(WebCore::MediaPlaybackTargetPicker::customPlaybackActionSelected): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::devicePicker):
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker):

  • platform/mac/WebVideoFullscreenInterfaceMac.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(WebCore::WebVideoFullscreenInterfaceMac::preparedToReturnToInline):
(WebCore::WebVideoFullscreenInterfaceMac::setVideoDimensions):
(WebCore::WebVideoFullscreenInterfaceMac::setExternalPlayback): Deleted.

  • platform/mock/MediaPlaybackTargetPickerMock.cpp:

(WebCore::MediaPlaybackTargetPickerMock::timerFired):
(WebCore::MediaPlaybackTargetPickerMock::showPlaybackTargetPicker):

  • platform/mock/MediaPlaybackTargetPickerMock.h:
  • platform/spi/cocoa/AVKitSPI.h:

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::removePlaybackTargetPickerClient):
(WebChromeClient::showPlaybackTargetPicker):

  • WebView/WebMediaPlaybackTargetPicker.h:
  • WebView/WebMediaPlaybackTargetPicker.mm:

(WebMediaPlaybackTargetPicker::removePlaybackTargetPickerClient):
(WebMediaPlaybackTargetPicker::showPlaybackTargetPicker):
(WebMediaPlaybackTargetPicker::playbackTargetPickerClientStateDidChange):
(WebMediaPlaybackTargetPicker::setShouldPlayToPlaybackTarget):
(WebMediaPlaybackTargetPicker::invalidate):
(WebMediaPlaybackTargetPicker::customPlaybackActionSelected): Deleted.

  • WebView/WebView.mm:

(-[WebView _showPlaybackTargetPicker:location:hasVideo:]):
(-[WebView _playbackTargetPickerClientStateDidChange:state:]):

Source/WebKit2:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::removePlaybackTargetPickerClient):
(WebKit::WebPageProxy::showPlaybackTargetPicker):
(WebKit::WebPageProxy::playbackTargetPickerClientStateDidChange):
(WebKit::WebPageProxy::setShouldPlayToPlaybackTarget):
(WebKit::WebPageProxy::didChangeBackgroundColor):
(WebKit::WebPageProxy::customPlaybackActionSelected): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::removePlaybackTargetPickerClient):
(WebKit::WebChromeClient::showPlaybackTargetPicker):
(WebKit::WebChromeClient::playbackTargetPickerClientStateDidChange):

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

(WebKit::WebPage::setShouldPlayToPlaybackTarget):
(WebKit::WebPage::customPlaybackActionSelected): Deleted.

3:14 AM Changeset in webkit [199285] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.4.11

WebKitGTK+ 2.4.11

3:14 AM Changeset in webkit [199284] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4

Unreviewed. Update NEWS and Versions.m4 for 2.4.11 release.

.:

  • Source/autotools/Versions.m4: Bump version numbers.

Source/WebKit/gtk:

  • NEWS: Added release notes for 2.4.11.
1:53 AM Changeset in webkit [199283] by Carlos Garcia Campos
  • 2 adds in releases/WebKitGTK/webkit-2.4/Source/WebCore/platform/gtk/po

Translation updates: Chinese, Japanese

12:50 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
12:49 AM Changeset in webkit [199282] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r165044 - REGRESSION(r164856): Use after free in WebCore::QualifiedName::operator== / WebCore::StyledElement::attributeChanged
​https://bugs.webkit.org/show_bug.cgi?id=129550

Reviewed by Andreas Kling.

Source/WebCore:

We can't store a reference to QualifiedName here because ensureUniqueElementData could delete QualifiedName inside Attribute.

Test: fast/dom/uniquing-attributes-via-setAttribute.html

  • dom/Element.cpp:

(WebCore::Element::setAttributeInternal):

LayoutTests:

Added a regression test.

  • fast/dom/uniquing-attributes-via-setAttribute-expected.txt: Added.
  • fast/dom/uniquing-attributes-via-setAttribute.html: Added.
12:45 AM Changeset in webkit [199281] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r166233 - [ARM64] GNU assembler fails in TransformationMatrix::multiply
​https://bugs.webkit.org/show_bug.cgi?id=130454

Reviewed by Zoltan Herczeg.

Change the NEON intstructions to the proper style.

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::multiply):

12:45 AM Changeset in webkit [199280] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WTF

Merge r166234 - [ARM64] GCC generates wrong code with -O2 flag in WTF::weakCompareAndSwap
​https://bugs.webkit.org/show_bug.cgi?id=130500

Reviewed by Filip Pizlo.

Set the first operand to the exact register in the inline assembly with GCC.

  • wtf/Atomics.h:

(WTF::weakCompareAndSwap):

Apr 9, 2016:

8:38 PM Changeset in webkit [199279] by keith_miller@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

tryGetById should be supported by the DFG/FTL
​https://bugs.webkit.org/show_bug.cgi?id=156378

Reviewed by Filip Pizlo.

This patch adds support for tryGetById in the DFG/FTL. It adds a new DFG node
TryGetById, which acts similarly to the normal GetById DFG node. One key
difference between GetById and TryGetById is that in the LLInt and Baseline
we do not profile the result type. This profiling is unnessary for the current
use case of tryGetById, which is expected to be a strict equality comparision
against a specific object or undefined. In either case other DFG optimizations
will make this equally fast with or without the profiling information.

Additionally, this patch adds new reuse modes for JSValueRegsTemporary that take
an operand and attempt to reuse the registers for that operand if they are free
after the current DFG node.

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFromLLInt):
(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasIdentifier):

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileTryGetById):
(JSC::DFG::JSValueRegsTemporary::JSValueRegsTemporary):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::GPRTemporary::operator=):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::getById):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • tests/stress/try-get-by-id.js:

(tryGetByIdTextStrict):
(get let):
(let.get createBuiltin):
(get throw):
(getCaller.obj.1.throw.new.Error): Deleted.

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

Fixed compilation of JPEGImageDecoder with libjpeg v9.
​https://bugs.webkit.org/show_bug.cgi?id=156445

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-09
Reviewed by Michael Catanzaro.

ICU defines TRUE and FALSE macros, breaking libjpeg v9 headers.

No new tests needed.

  • platform/image-decoders/jpeg/JPEGImageDecoder.h:
5:26 PM Changeset in webkit [199277] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Allocation sinking SSA Defs are allowed to have replacements
​https://bugs.webkit.org/show_bug.cgi?id=156444

Reviewed by Filip Pizlo.

Consider the following program and the annotations that explain why
the SSA defs we create in allocation sinking can have replacements.

function foo(a1) {

let o1 = {x: 20, y: 50};
let o2 = {y: 40, o1: o1};
let o3 = {};


We're Defing a new variable here, call it o3_field.
o3_field is defing the value that is the result of
a GetByOffset that gets eliminated through allocation sinking.
o3.field = o1.y;


dontCSE();


This control flow is here to not allow the phase to consult
its local SSA mapping (which properly handles replacements)
for the value of o3_field.
if (a1) {

a1 = true;

} else {

a1 = false;

}


Here, we ask for the reaching def of o3_field, and assert
it doesn't have a replacement. It does have a replacement
though. The original Def was the GetByOffset. We replaced
that GetByOffset with the value of the o1_y variable.
let value = o3.field;
assert(value === 50);

}

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • tests/stress/allocation-sinking-defs-may-have-replacements.js: Added.

(dontCSE):
(assert):
(foo):

1:54 PM Changeset in webkit [199276] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Unreviewed, rolling out r199242.
​https://bugs.webkit.org/show_bug.cgi?id=156442

Caused many many leaks (Requested by ap on #webkit).

Reverted changeset:

"Web Inspector: get rid of InspectorBasicValue and
InspectorString subclasses"
​https://bugs.webkit.org/show_bug.cgi?id=156407
​http://trac.webkit.org/changeset/199242

1:41 PM Changeset in webkit [199275] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Debug JSC test failure: stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool
​https://bugs.webkit.org/show_bug.cgi?id=156406

Reviewed by Saam Barati.

The failure was because the GC ran from within the butterfly allocation call in a put_by_id
transition AccessCase that had to deal with indexing storage. When the GC runs in a call from a stub,
then we need to be extra careful:

1) The GC may reset the IC and delete the stub. So, the stub needs to tell the GC that it might be on

the stack during GC, so that the GC keeps it alive if it's currently running.


2) If the stub uses (dereferences or stores) some object after the call, then we need to ensure that

the stub routine knows about that object independently of the IC.


In the case of put_by_id transitions that use a helper to allocate the butterfly, we have both
issues. A long time ago, we had to deal with (2), and we still had code to handle that case, although
it appears to be dead. This change revives that code and glues it together with PolymorphicAccess.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::alternateBase):
(JSC::AccessCase::doesCalls):
(JSC::AccessCase::couldStillSucceed):
(JSC::AccessCase::generate):
(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessCase::customSlotBase):
(JSC::AccessCase::isGetter):
(JSC::AccessCase::doesCalls): Deleted.

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::GCAwareJITStubRoutine::markRequiredObjectsInternal):
(JSC::MarkingGCAwareJITStubRoutine::MarkingGCAwareJITStubRoutine):
(JSC::MarkingGCAwareJITStubRoutine::~MarkingGCAwareJITStubRoutine):
(JSC::MarkingGCAwareJITStubRoutine::markRequiredObjectsInternal):
(JSC::GCAwareJITStubRoutineWithExceptionHandler::GCAwareJITStubRoutineWithExceptionHandler):
(JSC::createJITStubRoutine):
(JSC::MarkingGCAwareJITStubRoutineWithOneObject::MarkingGCAwareJITStubRoutineWithOneObject): Deleted.
(JSC::MarkingGCAwareJITStubRoutineWithOneObject::~MarkingGCAwareJITStubRoutineWithOneObject): Deleted.
(JSC::MarkingGCAwareJITStubRoutineWithOneObject::markRequiredObjectsInternal): Deleted.

  • jit/GCAwareJITStubRoutine.h:

(JSC::createJITStubRoutine):

1:13 PM Changeset in webkit [199274] by commit-queue@webkit.org
  • 13 edits in trunk

Unreviewed, rolling out r199268.
​https://bugs.webkit.org/show_bug.cgi?id=156440

Broke Windows build (Requested by ap on #webkit).

Reverted changeset:

"Implement functional :host() pseudo class"
​https://bugs.webkit.org/show_bug.cgi?id=156397
​http://trac.webkit.org/changeset/199268

11:16 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
11:16 AM Changeset in webkit [199273] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Update another GStreamer test expectation

Unreviewed.

  • platform/gtk/TestExpectations:
11:11 AM Changeset in webkit [199272] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Update some more IndexedDB test expectations.

Unreviewed.

  • platform/gtk/TestExpectations:
10:59 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
10:58 AM Changeset in webkit [199271] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Remove failure expectation from storage/indexeddb/connection-leak.html

It's skipped in the global TestExpectations, see bug #152643.

  • platform/gtk/TestExpectations:
10:45 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
10:38 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
10:37 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
10:29 AM Changeset in webkit [199270] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Gardening unexpected passes and IndexedDB tests.

Unreviewed gardening.

  • platform/gtk/TestExpectations:
12:40 AM Changeset in webkit [199269] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix. Don't treat a build number 0 as a pending build.

  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntry.prototype.isPending):

12:38 AM Changeset in webkit [199268] by Antti Koivisto
  • 13 edits in trunk

Implement functional :host() pseudo class
​https://bugs.webkit.org/show_bug.cgi?id=156397
<rdar://problem/25621445>

Reviewed by Darin Adler.

Source/WebCore:

We already support :host. Add functional syntax too.

  • css/CSSGrammar.y.in:

Parse functional :host().

  • css/CSSParser.cpp:

(WebCore::CSSParser::detectFunctionTypeToken):

  • css/CSSParserValues.cpp:

(WebCore::CSSParserSelector::parsePseudoClassHostFunctionSelector):

  • css/CSSParserValues.h:
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::matchedRuleList):
(WebCore::ElementRuleCollector::addMatchedRule):

Factor some shared code here.

(WebCore::ElementRuleCollector::matchHostPseudoClassRules):

Instead of using the generic paths use a :host specific code path for matching.
This makes it easier to avoid :host matching when it shouldn't.

(WebCore::ElementRuleCollector::collectMatchingRulesForList):

  • css/ElementRuleCollector.h:
  • css/RuleSet.cpp:

(WebCore::computeMatchBasedOnRuleHash):

:host is always handled by the special matching path.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::match):
(WebCore::SelectorChecker::matchHostPseudoClass):

Add a function specifically for checking :host. In always fails on the normal code paths.
Check the argument selector if provided.

(WebCore::hasScrollbarPseudoElement):

  • css/SelectorChecker.h:

LayoutTests:

Enable, fix and expand the test.

  • fast/shadow-dom/css-scoping-shadow-host-functional-rule.html:
  • platform/mac/TestExpectations:

Apr 8, 2016:

10:16 PM Changeset in webkit [199267] by jonlee@apple.com
  • 2 edits in trunk/PerformanceTests

Have Animometer benchmark always start with complexity of 1
​https://bugs.webkit.org/show_bug.cgi?id=156432

Reviewed by Ryosuke Niwa.

  • Animometer/tests/resources/main.js: Update the default Controller and RampController to

set its minimum complexities to 1 instead of 0.

9:56 PM Changeset in webkit [199266] by rniwa@webkit.org
  • 7 edits in trunk/Websites/perf.webkit.org

Escape builder names in url* and pathFor* methods of BuildbotSyncer
​https://bugs.webkit.org/show_bug.cgi?id=156427

Reviewed by Darin Adler.

The build fix in r199251 breaks other usage of RemoteAPI. Fix it properly by escaping builder names in
various methods of BuildbotSyncer.

Also fixed a typo in the logging and a bug that the new syncing script never updated "scheduled" to "running".

  • server-tests/resources/mock-data.js:

(MockData.mockTestSyncConfigWithTwoBuilders): Renamed "some-builder-2" to "some builder 2" to test the
new escaping behavior in tools-buildbot-triggerable-tests.js and buildbot-syncer-tests.js.

  • server-tests/tools-buildbot-triggerable-tests.js: Added tests for status url, and added a new test case

for updating "scheduled" to "running".

  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntry.buildRequestStatusIfUpdateIsNeeded): Update the status to "running" when the request's
status is "scheduled" and the buildbot's build is currently in progress.
(BuildbotSyncer.prototype.pathForPendingBuildsJSON): Escape the builder name.
(BuildbotSyncer.prototype.pathForBuildJSON): Ditto.
(BuildbotSyncer.prototype.pathForForceBuild): Ditto.
(BuildbotSyncer.prototype.url): Ditto.
(BuildbotSyncer.prototype.urlForBuildNumber): Ditto.

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable.prototype._pullBuildbotOnAllSyncers):
(BuildbotTriggerable.prototype._scheduleNextRequestInGroupIfSlaveIsAvailable): Fixed a typo. We are
scheduling new build requests, not syncing them.

  • tools/js/remote.js:

(RemoteAPI.sendHttpRequest): Reverted r199251.

  • unit-tests/buildbot-syncer-tests.js:
8:46 PM Changeset in webkit [199265] by Darin Adler
  • 28 edits in trunk

Improve IDL support for object arguments that are neither optional nor nullable
​https://bugs.webkit.org/show_bug.cgi?id=156149

Reviewed by Chris Dumez.

Source/WebCore:

After this patch, we are almost ready to change some more DOM functions to
use references instead of pointers. Remaining blocking issue is lack of support
for ShouldPassWrapperByReference in the gobject bindings.

  • bindings/objc/ExceptionHandlers.h: Add NO_RETURN to raiseDOMException.

Added a new raiseTypeErrorException. Re-indented header and removed unneeded
include and forward declarations.

  • bindings/objc/ExceptionHandlers.mm:

(WebCore::raiseDOMException): Added RELEASE_ASSERT_NOT_REACHED so the compiler
will understand this is NO_RETURN. Also updated FIXME comment.
(WebCore::raiseTypeErrorException): Added.

  • bindings/scripts/CodeGenerator.pm: Removed unneeded code that allows the type

"AtomicString" in IDL files.
(ShouldPassWrapperByReference): Added. Contains the logic from the function in
the JavaScript code generator that was named IsPointerParameterPassedByReference,
minus a couple checks that are unneeded. For use in other code generators so they
are all consistent about how they call the DOM implementation.

  • bindings/scripts/CodeGeneratorGObject.pm:

(SkipFunction): Removed support for unused CustomBinding extended attribute.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Removed support for unused CustomBinding extended attribute.
(GenerateImplementation): Ditto. Also changed type checking code to throw a
type error in a more efficient way, using throwVMTypeError directly.
(GenerateParametersCheck): Rearranged code a bit so that arguments that need to
be passed in unusual ways are handled all in one place. Use WTFMove for newly
created NodeFilter objects. Simplified the reference logic so it doesn't need
to do an additional check to see if a type is a callback. Also changed type
checking code to throw a type error in a more efficient way, using throwVMTypeError
directly. Also corrected mistake where null checking code was throwing
TYPE_MISMATCH_ERR instead of a type error.
(GetNativeType): Coding style tweak.
(ShouldPassWrapperByReference): Renamed from IsPointerParameterPassedByReference.
Changed to call underlying ShouldPassWrapperByReference function in the language-
independent code generator.
(GenerateConstructorDefinition): Updated for name change.

  • bindings/scripts/CodeGeneratorObjC.pm:

(SkipFunction): Removed support for unused CustomBinding extended attribute.
(GenerateImplementation): Added code to null check and pass a reference when
ShouldPassWrapperByReference returns true.

  • bindings/scripts/IDLAttributes.txt: Sorted in the AppleCopyright and

UsePointersEvenForNonNullableObjectArguments arguments. Removed the unused
CPPPureInterface and CustomBinding attributes.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Regenerated test results.
  • bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestObj.h: Ditto.
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
  • bindings/scripts/test/ObjC/DOMTestActiveDOMObject.mm: Ditto.
  • bindings/scripts/test/ObjC/DOMTestCallback.mm: Ditto.
  • bindings/scripts/test/ObjC/DOMTestCallbackFunction.mm: Ditto.
  • bindings/scripts/test/ObjC/DOMTestInterface.mm: Ditto.
  • bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.mm: Ditto.
  • bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
  • bindings/scripts/test/TestObj.idl: Removed test for CustomBinding.
  • dom/DOMImplementation.idl: Fixed #if so that only the return type is different

between JavaScript and the other bindings. Without this change, the different
bindings got different results for ShouldPassWrapperByReference. Also formatted
functions all on a single line.

  • dom/EventListener.idl: Removed CPPPureInterface, since it had no effect.
  • dom/EventTarget.idl: Ditto.

LayoutTests:

  • fast/canvas/canvas-path-addPath-expected.txt: Updated expected result to expect

TypeError rather than TYPE_MISMATCH_ERR. A progression.

  • fast/text/font-face-set-javascript-expected.txt: Ditto.
8:07 PM Changeset in webkit [199264] by Chris Dumez
  • 32 edits in trunk/Source/WebCore

[WebIDL] Add support for [ExportMacro=XXX] IDL extended attribute
​https://bugs.webkit.org/show_bug.cgi?id=156428

Reviewed by Ryosuke Niwa.

Add support for [ExportMacro=XXX] IDL extended attribute (e.g. [ExportMacro=WEBCORE_EXPORT])
so developers can indicate in the IDL which macro to use to export the generated JS bindings
class.

We previously supported this by hard-coding JS class names in the bindings generator which
was ugly.

  • Modules/mediasession/MediaSession.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/notifications/Notification.idl:
  • Modules/webaudio/AudioContext.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GetExportMacroForJSClass):
(GenerateHeader):
(AddIncludesForType): Deleted.
(AddToImplIncludes): Deleted.

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/TestInterface.idl:
  • bindings/scripts/test/TestNode.idl:
  • css/CSSStyleDeclaration.idl:
  • dom/ClientRect.idl:
  • dom/ClientRectList.idl:
  • dom/Document.idl:
  • dom/Element.idl:
  • dom/Node.idl:
  • dom/Range.idl:
  • fileapi/File.idl:
  • html/DOMURL.idl:
  • html/HTMLElement.idl:
  • html/HTMLMediaElement.idl:
  • html/TimeRanges.idl:
  • html/canvas/DOMPath.idl:
  • inspector/ScriptProfile.idl:
  • inspector/ScriptProfileNode.idl:
  • page/DOMWindow.idl:
  • page/make_settings.pl:

(generateInternalSettingsIdlFile):

  • testing/InternalSettings.idl:
  • testing/Internals.idl:
  • testing/MallocStatistics.idl:
  • testing/MemoryInfo.idl:
  • testing/TypeConversions.idl:
  • xml/XMLHttpRequest.idl:
7:37 PM Changeset in webkit [199263] by commit-queue@webkit.org
  • 12 edits
    6 adds in trunk

Web Inspector: XHRs and Web Worker scripts are not searchable
​https://bugs.webkit.org/show_bug.cgi?id=154214
<rdar://problem/24643587>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-08
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Page.json:

Add optional requestId to search results properties and search
parameters for when the frameId and url are not enough. XHR
resources, and "Other" resources will use this.

Source/WebCore:

Test: inspector/page/searchInResources.html

  • inspector/InspectorPageAgent.h:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::searchInResource):
(WebCore::InspectorPageAgent::searchInResources):
Let the NetworkAgent handle individual search requests
with a requestId. And provide global search results for
"other" resources and will include requestId properties.

  • inspector/InspectorNetworkAgent.h:
  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::didFinishXHRLoading):
(WebCore::buildObjectForSearchResult):
(WebCore::InspectorNetworkAgent::searchOtherRequests):
(WebCore::InspectorNetworkAgent::searchInRequest):
Search saved "other" resource data content.

  • inspector/NetworkResourcesData.h:
  • inspector/NetworkResourcesData.cpp:

(WebCore::NetworkResourcesData::resources):
Expose the resources for iteration by the NetworkAgent.

Source/WebInspectorUI:

  • UserInterface/Views/SearchSidebarPanel.js:

(WebInspector.SearchSidebarPanel.prototype.performSearch.resourceCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
Carry forward the requestId property if it is available.

LayoutTests:

  • inspector/page/resources/search-script.js: Added.
  • inspector/page/resources/search-stylesheet.css: Added.
  • inspector/page/resources/search-worker.js: Added.
  • inspector/page/resources/search-xhr.txt: Added.
  • inspector/page/searchInResources-expected.txt: Added.
  • inspector/page/searchInResources.html: Added.

Test for the Page domain's search commands.

7:32 PM Changeset in webkit [199262] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Allocation snapshot hover persists after switching tabs
​https://bugs.webkit.org/show_bug.cgi?id=156430
<rdar://problem/25633800>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-08
Reviewed by Timothy Hatcher.

  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler):
Don't show the popover if the tree is no longer visible.

  • UserInterface/Views/HeapSnapshotInstancesContentView.js:

(WebInspector.HeapSnapshotInstancesContentView.prototype.shown):

  • UserInterface/Views/HeapSnapshotInstancesDataGridTree.js:

(WebInspector.HeapSnapshotInstancesDataGridTree):
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.get visible):
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.shown):
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.hidden):
Give the tree a visible state and have its containing ContentView
update it with normal ContentView shown/hidden.

  • UserInterface/Views/Popover.js:

We are presenting while we were dismissing, so completely clear the
dismissing state.

6:20 PM Changeset in webkit [199261] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

MIPS: support Signed cond in branchTest32()
​https://bugs.webkit.org/show_bug.cgi?id=156260

This is needed since r197688 makes use of it.

Patch by Guillaume Emont <​guijemont@igalia.com> on 2016-04-08
Reviewed by Mark Lam.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchTest32):

6:19 PM Changeset in webkit [199260] by jdiggs@igalia.com
  • 15 edits in trunk

AX: "AXLandmarkApplication" is an inappropriate subrole for ARIA "application" since it's no longer a landmark
​https://bugs.webkit.org/show_bug.cgi?id=155403

Reviewed by Chris Fleizach.

The new subrole is AXWebApplication and the new role description is "web application".
As part of the fix, the WebCore AccessibilityRole for ARIA's "application" role was
renamed from LandmarkApplicationRole to WebApplicationRole.

The roles-exposed.html and aria-grouping-roles.html test expectations were also updated.

Source/WebCore:

  • English.lproj/Localizable.strings:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::accessibleNameDerivesFromContent):
(WebCore::AccessibilityObject::isLandmark):
(WebCore::initializeRoleMap):

  • accessibility/AccessibilityObject.h:
  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase ariaLandmarkRoleDescription]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):

  • platform/LocalizedStrings.cpp:

(WebCore::AXARIAContentGroupText):

Source/WebKit/win:

  • AccessibleBase.cpp: Update the rolename

(MSAARole):

LayoutTests:

  • accessibility/mac/aria-grouping-roles-expected.txt:
  • accessibility/mac/aria-grouping-roles.html:
  • platform/mac/accessibility/roles-exposed-expected.txt:
6:18 PM Changeset in webkit [199259] by Simon Fraser
  • 16 edits in trunk/Source

[iOS WK2] WKWebViews should consult ancestor UIScrollViews to determine tiling area
​https://bugs.webkit.org/show_bug.cgi?id=156429
rdar://problem/25455111

Reviewed by Tim Horton.

When a WKWebView is expanded to full size, then embedded in UIScrollView, it would
create huge tiles that cover the entire view area (since it considered itself non-scrollable).

Fix to always use 512x512 tiles in this configuration, and to adjust the tile coverage
for the area exposed through the enclosing UIScrollView.

Source/WebCore:

  • loader/HistoryController.cpp:

(WebCore::HistoryController::saveScrollPositionAndViewStateToItem): setObscuredInset()
moved from FrameView to Page.

  • page/FrameView.cpp:

(WebCore::FrameView::adjustTiledBackingScrollability): If we're clipped by an ancestor scrollView,
just assume we're scrollable on both axes.

  • page/Page.h:

(WebCore::Page::obscuredInset):
(WebCore::Page::setObscuredInset):
(WebCore::Page::enclosedInScrollView):
(WebCore::Page::setEnclosedInScrollView):

  • platform/ScrollView.h:

(WebCore::ScrollView::platformObscuredInset): Deleted.
(WebCore::ScrollView::platformSetObscuredInset): Deleted.

Source/WebKit2:

  • Shared/VisibleContentRectUpdateInfo.cpp: Add enclosedInScrollView(), which is used to

trigger normal-sized tiles.
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):

  • Shared/VisibleContentRectUpdateInfo.h:

(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::enclosedInScrollView):
(WebKit::operator==):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didInvokeUIScrollViewDelegateCallback]): Pass our scrollView.
(-[WKWebView _didFinishScrolling]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewDidZoom:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
(-[WKWebView _scrollViewDidInterruptDecelerating:]):
(-[WKWebView _visibleRectInEnclosingScrollView:]):
(-[WKWebView _visibleContentRect]): Compute the exposed part of the content relative
to the WKWebView, then intersect with the exposed part via any ancestor UIScrollView.
(-[WKWebView _didScroll]): This is called by UIKit when some ancestor UIScrollView scrolls.
However, we don't get all the UIScrollView delegate callbacks, so have to use a timer to
trigger a call to -_updateVisibleContentRects when we're in a stable state.
(-[WKWebView _enclosingScrollerScrollingEnded:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _updateVisibleContentRectAfterScrollInView:]): Get the stable state from the
scroll view that the user is interacting with.
(-[WKWebView _updateContentRectsWithState:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/WebPageProxy.h: Rather than pass a bazillion arguments through updateVisibleContentRects(), just

pass the VisibleContentRectUpdateInfo struct.

  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollView:]):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::updateVisibleContentRects):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

5:42 PM Changeset in webkit [199258] by commit-queue@webkit.org
  • 4 edits in trunk/Source

[iOS Simulator] Build failure (property 'contentsFormat' not found on object of type 'LegacyTileLayer *')
​https://bugs.webkit.org/show_bug.cgi?id=156415

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-08
Reviewed by Simon Fraser.

Source/WebCore:

  • platform/spi/cocoa/QuartzCoreSPI.h:

Provide SPI forward declaration of the CALayer contentsFormat property.

Source/WebKit2:

  • UIProcess/API/Cocoa/_WKElementAction.mm:

(-[_WKElementAction runActionWithElementInfo:]):
Use WeakObjCPtr instead of weak to avoid build errors when not under ARC.

5:36 PM Changeset in webkit [199257] by achristensen@apple.com
  • 19 edits in trunk

Progress towards running CMake WebKit2 on Mac
​https://bugs.webkit.org/show_bug.cgi?id=156426

Reviewed by Tim Horton.

.:

  • Source/cmake/OptionsMac.cmake:

FTL works on Mac, so let's use it.

  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

  • PlatformMac.cmake:

Source/WebCore:

  • CMakeLists.txt:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWin.cmake:

On Mac, WTF is a static library that is linked only with JavaScriptCore.

Source/WebKit:

  • CMakeLists.txt:
  • PlatformMac.cmake:
  • PlatformWin.cmake:

Source/WebKit2:

  • CMakeLists.txt:
  • PlatformMac.cmake:

Put the xpc service binaries in the right place.

Source/WTF:

  • wtf/PlatformMac.cmake:
5:33 PM Changeset in webkit [199256] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit2

Build fix with IndexedDB disabled but DatabaseProcess enabled after r199230
​https://bugs.webkit.org/show_bug.cgi?id=156321

Rubber-stamped by Brady Eidson.

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
(WebKit::DatabaseProcess::grantSandboxExtensionsForBlobs):
(WebKit::DatabaseProcess::accessToTemporaryFileComplete):
(WebKit::DatabaseProcess::indexedDatabaseOrigins):

  • DatabaseProcess/DatabaseProcess.h:

Add some more guards.

4:01 PM Changeset in webkit [199255] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r199253. rdar://problem/25533763

3:59 PM Changeset in webkit [199254] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r199252. rdar://problem/25533763

3:54 PM Changeset in webkit [199253] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed 32-bit build fix; make type of std::min<> explicit.

  • platform/audio/ios/AudioDestinationIOS.cpp:

(WebCore::AudioDestinationIOS::render):

3:41 PM Changeset in webkit [199252] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

CRASH in AudioDestinationNode::render()
​https://bugs.webkit.org/show_bug.cgi?id=156308

Reviewed by Eric Carlson.

Yet another math error in AudioDestinationIOS::render(). It is possible for the difference between
m_startSpareFrame and m_endSpareFrame to be greater than the numberOfFrames to be rendered. Protect
against this case by taking the min() of those two values and only advancing m_startSpareFrame by
that amount. This guarantees that framesThisTime will never underflow, and that data will not be
written past the end of the ioData parameter.

  • platform/audio/ios/AudioDestinationIOS.cpp:

(WebCore::AudioDestinationIOS::render):

3:37 PM Changeset in webkit [199251] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix. We need to escape the path or http.request would fail.

  • tools/js/remote.js:
3:01 PM Changeset in webkit [199250] by beidson@apple.com
  • 12 edits in trunk/Source/WebCore

Modern IDB: Use more IDBValue and IDBGetResult in IDBBackingStore.
​https://bugs.webkit.org/show_bug.cgi?id=156418

Reviewed by Alex Christensen.

No new tests (Refactor, no change in behavior).

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):

  • Modules/indexeddb/IDBValue.h:
  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::addRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getRecord):

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::addRecord):

  • Modules/indexeddb/server/MemoryObjectStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::performGetRecord):

2:21 PM Changeset in webkit [199249] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Debugger may dereference m_currentCallFrame even after the VM has gone idle
​https://bugs.webkit.org/show_bug.cgi?id=156413

Reviewed by Mark Lam.

There is a bug where the debugger may dereference its m_currentCallFrame
pointer after that pointer becomes invalid to read from. This happens like so:

We may step over an instruction which causes the end of execution for the
current program. This causes the VM to exit. Then, we perform a GC which
causes us to collect the global object. The global object being collected
causes us to detach the debugger. In detaching, we think we still have a
valid m_currentCallFrame, we dereference it, and crash. The solution is to
make sure we're paused when dereferencing this pointer inside ::detach().

  • debugger/Debugger.cpp:

(JSC::Debugger::detach):

2:11 PM Changeset in webkit [199248] by beidson@apple.com
  • 8 edits in trunk/Source/WebCore

Modern IDB: Make IDBGetResult contain an IDBValue instead of a buffer, and remove unused methods.
​https://bugs.webkit.org/show_bug.cgi?id=156416

Reviewed by Alex Christensen.

No new tests (Refactor, no change in behavior).

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::dataFromBuffer):
(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):
(WebCore::IDBGetResult::value):
(WebCore::IDBGetResult::encode):
(WebCore::IDBGetResult::decode):
(WebCore::IDBGetResult::valueBuffer): Deleted.
(WebCore::IDBGetResult::setValueBuffer): Deleted.
(WebCore::IDBGetResult::setKeyData): Deleted.
(WebCore::IDBGetResult::setPrimaryKeyData): Deleted.
(WebCore::IDBGetResult::setKeyPath): Deleted.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::didGetRecordOnServer):

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):

  • Modules/indexeddb/IDBValue.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):

2:01 PM Changeset in webkit [199247] by Alan Bujtas
  • 10 edits
    6 adds in trunk

Focus ring drawn at incorrect location on image map with CSS transform.
​https://bugs.webkit.org/show_bug.cgi?id=143527
<rdar://problem/21908735>

Reviewed by Simon Fraser.

Source/WebCore:

Implement pathForFocusRing for HTMLAreaElement. It follows the logic of RenderObject::addFocusRingRects().

Tests: fast/images/image-map-outline-in-positioned-container.html

fast/images/image-map-outline-with-paint-root-offset.html
fast/images/image-map-outline-with-scale-transform.html
fast/images/image-map-outline.html

  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::pathForFocusRing):

  • html/HTMLAreaElement.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::paintFocusRing): Move addFocusRingRects() out of focus ring painting.
(WebCore::RenderElement::paintOutline):

  • rendering/RenderElement.h:
  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paint):
(WebCore::RenderImage::paintAreaElementFocusRing):

  • rendering/RenderImage.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::paintOutline):

LayoutTests:

Implement pathForFocusRing for HTMLAreaElement.

  • fast/images/image-map-outline-in-positioned-container-expected.html: Added.
  • fast/images/image-map-outline-in-positioned-container.html: Added.
  • fast/images/image-map-outline-with-paint-root-offset-expected.html: Added.
  • fast/images/image-map-outline-with-paint-root-offset.html: Added.
  • fast/images/image-map-outline-with-scale-transform-expected.html: Added.
  • fast/images/image-map-outline-with-scale-transform.html: Added.
1:59 PM Changeset in webkit [199246] by ggaren@apple.com
  • 3 edits in trunk/Source/bmalloc

bmalloc: stress_aligned test fails if you increase smallMax
​https://bugs.webkit.org/show_bug.cgi?id=156414

Reviewed by Oliver Hunt.

When size exceeds alignment and is a multiple of alignment and is not
a power of two, such as 24kB with 8kB alignment, the small allocator
did not always guarantee alignment. Let's fix that.

  • bmalloc/Algorithm.h:

(bmalloc::divideRoundingUp): Math is hard.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::allocate): Align to the page size unconditionally.
Even if the page size is not a power of two, it might be a multiple of
a power of two, and we want alignment to that smaller power of two to
be guaranteed.

1:46 PM Changeset in webkit [199245] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[WK1] Wheel event callback removing the window causes crash in WebCore
​https://bugs.webkit.org/show_bug.cgi?id=156409
<rdar://problem/25631267>

Reviewed by Simon Fraser.

Null check the Widget before using it, since the iframe may have been removed
from its parent document inside the event handler.

This is the WK1 fix for ​https://bugs.webkit.org/show_bug.cgi?id=150871.

Tested by fast/events/wheel-event-destroys-frame.html

  • page/EventHandler.cpp:

(WebCore::widgetForElement): Added.
(WebCore::EventHandler::handleWheelEvent): Use new helper function to
clean up the code, and allow us to check that the Widget has not been
destroyed during the event handler.

1:19 PM Changeset in webkit [199244] by jonlee@apple.com
  • 5 edits in trunk/PerformanceTests

Fix SVG benchmark test
​https://bugs.webkit.org/show_bug.cgi?id=156410

Reviewed by Dean Jackson.

  • Animometer/resources/extensions.js: Update Point.zero to be a static Point.
  • Animometer/tests/simple/resources/tiled-canvas-image.js:

(Stage.call._setupTiles): Refactor.

  • Animometer/tests/master/resources/particles.js:

(Particle.prototype.reset): Use Point.center.
(complexity): We are not using a gradient background anymore, so remove the +1.

  • Animometer/tests/master/resources/svg-particles.js: Update to use SVG transform

instead of CSS transform.

1:07 PM Changeset in webkit [199243] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

Timing attack on SVG feComposite filter circumvents same-origin policy
​https://bugs.webkit.org/show_bug.cgi?id=154338

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-04-08
Reviewed by Oliver Hunt.

Ensure the FEComposite arithmetic filter is clamping the resulted color
components in a constant time.

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::clampByte):
(WebCore::computeArithmeticPixels):

12:59 PM Changeset in webkit [199242] by BJ Burg
  • 9 edits in trunk/Source

Web Inspector: get rid of InspectorBasicValue and InspectorString subclasses
​https://bugs.webkit.org/show_bug.cgi?id=156407
<rdar://problem/25627659>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

There's no point having these subclasses as they don't save any space.
Add m_stringValue to the union and merge some implementations of writeJSON.
Move uses of the subclass to InspectorValue and delete redundant methods.
Now, most InspectorValue methods are non-virtual so they can be templated.

  • bindings/ScriptValue.cpp:

(Deprecated::jsToInspectorValue):

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeCall):
Don't used deleted subclasses.

  • inspector/InspectorValues.cpp:

(Inspector::InspectorValue::null):
(Inspector::InspectorValue::create):
(Inspector::InspectorValue::asValue):
(Inspector::InspectorValue::asBoolean):
(Inspector::InspectorValue::asDouble):
(Inspector::InspectorValue::asInteger):
(Inspector::InspectorValue::asString):
These only need one implementation now.

(Inspector::InspectorValue::writeJSON):
Still a virtual method since Object and Array need their members.

(Inspector::InspectorObjectBase::InspectorObjectBase):
(Inspector::InspectorBasicValue::asBoolean): Deleted.
(Inspector::InspectorBasicValue::asDouble): Deleted.
(Inspector::InspectorBasicValue::asInteger): Deleted.
(Inspector::InspectorBasicValue::writeJSON): Deleted.
(Inspector::InspectorString::asString): Deleted.
(Inspector::InspectorString::writeJSON): Deleted.
(Inspector::InspectorString::create): Deleted.
(Inspector::InspectorBasicValue::create): Deleted.

  • inspector/InspectorValues.h:

(Inspector::InspectorObjectBase::setBoolean):
(Inspector::InspectorObjectBase::setInteger):
(Inspector::InspectorObjectBase::setDouble):
(Inspector::InspectorObjectBase::setString):
(Inspector::InspectorArrayBase::pushBoolean):
(Inspector::InspectorArrayBase::pushInteger):
(Inspector::InspectorArrayBase::pushDouble):
(Inspector::InspectorArrayBase::pushString):
Use new factory methods.

  • replay/EncodedValue.cpp:

(JSC::ScalarEncodingTraits<bool>::encodeValue):
(JSC::ScalarEncodingTraits<double>::encodeValue):
(JSC::ScalarEncodingTraits<float>::encodeValue):
(JSC::ScalarEncodingTraits<int32_t>::encodeValue):
(JSC::ScalarEncodingTraits<int64_t>::encodeValue):
(JSC::ScalarEncodingTraits<uint32_t>::encodeValue):
(JSC::ScalarEncodingTraits<uint64_t>::encodeValue):

  • replay/EncodedValue.h:

Use new factory methods.

Source/WebCore:

  • inspector/InspectorDatabaseAgent.cpp: Don't use deleted subclasses.
12:40 PM Changeset in webkit [199241] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

JSContext Inspector: Fix asserts and uncaught exception showing Timeline Tab
​https://bugs.webkit.org/show_bug.cgi?id=156411

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-08
Reviewed by Timothy Hatcher.

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype.closed):
Gracefully handle if we do not have a Network Timeline.

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView.prototype._changeViewMode):
This function is always called by the constructor, so the assert
is not useful since it can be called when FPS is not supported.

12:37 PM Changeset in webkit [199240] by fpizlo@apple.com
  • 8 edits
    19 adds in trunk

Add IC support for arguments.length
​https://bugs.webkit.org/show_bug.cgi?id=156389

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


This adds support for caching accesses to arguments.length for both DirectArguments and
ScopedArguments. In strict mode, we already cached these accesses since they were just
normal properties.

Amazingly, we also already supported caching of overridden arguments.length in both
DirectArguments and ScopedArguments. This is because when you override, the property gets
materialized as a normal JS property and the structure is changed.

This patch painstakingly preserves our previous caching of overridden length while
introducing caching of non-overridden length (i.e. the common case). In fact, we even cache
the case where it could either be overridden or not, since we just end up with an AccessCase
for each and they cascade to each other.

This is a >3x speed-up on microbenchmarks that do arguments.length in a polymorphic context.
Entirely monomorphic accesses were already handled by the DFG.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::calculateLiveRegistersForCallAndExceptionHandling):
(JSC::AccessCase::guardedByStructureCheck):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generate):
(WTF::printInternal):

  • bytecode/PolymorphicAccess.h:
  • jit/ICStats.h:
  • jit/JITOperations.cpp:
  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):
(JSC::tryCachePutByID):
(JSC::tryRepatchIn):

  • tests/stress/direct-arguments-override-length-then-access-normal-length.js: Added.

(args):
(foo):
(result.foo):

LayoutTests:

  • js/regress/direct-arguments-length-expected.txt: Added.
  • js/regress/direct-arguments-length.html: Added.
  • js/regress/direct-arguments-overridden-length-expected.txt: Added.
  • js/regress/direct-arguments-overridden-length.html: Added.
  • js/regress/direct-arguments-possibly-overridden-length-expected.txt: Added.
  • js/regress/direct-arguments-possibly-overridden-length.html: Added.
  • js/regress/scoped-arguments-length-expected.txt: Added.
  • js/regress/scoped-arguments-length.html: Added.
  • js/regress/scoped-arguments-overridden-length-expected.txt: Added.
  • js/regress/scoped-arguments-overridden-length.html: Added.
  • js/regress/scoped-arguments-possibly-overridden-length-expected.txt: Added.
  • js/regress/scoped-arguments-possibly-overridden-length.html: Added.
  • js/regress/script-tests/direct-arguments-length.js: Added.

(args):

  • js/regress/script-tests/direct-arguments-overridden-length.js: Added.

(args):

  • js/regress/script-tests/direct-arguments-possibly-overridden-length.js: Added.

(args1):
(args2):

  • js/regress/script-tests/scoped-arguments-length.js: Added.

(args):

  • js/regress/script-tests/scoped-arguments-overridden-length.js: Added.

(args):

  • js/regress/script-tests/scoped-arguments-possibly-overridden-length.js: Added.

(args1):
(args2):

11:55 AM Changeset in webkit [199239] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

11:32 AM Changeset in webkit [199238] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Fix leaks in WebAVMediaSelectionOptionMac and WebPlaybackControlsManager
​https://bugs.webkit.org/show_bug.cgi?id=156379

Reviewed by Tim Horton.

These classes should use RetainPtrs.

  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(-[WebAVMediaSelectionOptionMac localizedDisplayName]):
(-[WebAVMediaSelectionOptionMac setLocalizedDisplayName:]):
(-[WebPlaybackControlsManager timing]):
(-[WebPlaybackControlsManager setTiming:]):
(-[WebPlaybackControlsManager seekableTimeRanges]):
(-[WebPlaybackControlsManager setSeekableTimeRanges:]):
(-[WebPlaybackControlsManager audioMediaSelectionOptions]):
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:]):
(-[WebPlaybackControlsManager currentAudioMediaSelectionOption]):
(-[WebPlaybackControlsManager setCurrentAudioMediaSelectionOption:]):
(-[WebPlaybackControlsManager legibleMediaSelectionOptions]):
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:]):
(-[WebPlaybackControlsManager currentLegibleMediaSelectionOption]):
(-[WebPlaybackControlsManager setCurrentLegibleMediaSelectionOption:]):

11:28 AM Changeset in webkit [199237] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Touching any IDL files rebuilds all bindings in CMake Ninja build
​https://bugs.webkit.org/show_bug.cgi?id=156400

Patch by Fujii Hironori <​Hironori.Fujii@jp.sony.com> on 2016-04-08
Reviewed by Brent Fulgham.

  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttribute):
WriteFileIfChanged does not work due to flaky results of 'keys'.
Sort results of 'keys'.

11:18 AM Changeset in webkit [199236] by Joseph Pecoraro
  • 3 edits in trunk/LayoutTests

Redefining a method of the same name hits an assertion
​https://bugs.webkit.org/show_bug.cgi?id=144258

Reviewed by Ryosuke Niwa.

This test no longer asserts.

11:07 AM Changeset in webkit [199235] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

UInt32ToNumber should have an Int52 path
​https://bugs.webkit.org/show_bug.cgi?id=125704

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-08
Reviewed by Filip Pizlo.

When dealing with big numbers, fall back to Int52 instead
of double when possible.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileUInt32ToNumber):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileUInt32ToNumber):

10:50 AM Changeset in webkit [199234] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[cmake] Use ICU include dirs in WebKit.
​https://bugs.webkit.org/show_bug.cgi?id=156402

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-08
Reviewed by Brent Fulgham.

  • CMakeLists.txt:
10:22 AM Changeset in webkit [199233] by Simon Fraser
  • 19 edits in trunk/Source

[iOS WK2] Stop using exposedContentRect for history scroll state restoration
​https://bugs.webkit.org/show_bug.cgi?id=156392

Reviewed by Tim Horton.

A future commit will alter the meaning of exposedContentRect on iOS to take into
account clipped out parts of the WKWebView. To achieve this, wean history restoration
off of using exposedContentRect for scroll state restoration. It did this to restore
the page to the same position relative to the view's top-left (to avoid jiggles caused
by changing obscured insets).

Do this by pushing the left/top obscured insets down with visible content rects updates,
storing them on ScrollView, and adding them to HistoryItem. Those insets are then used
for scroll state restoration in WKWebView.

Source/WebCore:

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::HistoryItem):

  • history/HistoryItem.h:

(WebCore::HistoryItem::obscuredInset):
(WebCore::HistoryItem::setObscuredInset):

  • loader/HistoryController.cpp:

(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):

  • platform/ScrollView.h:

(WebCore::ScrollView::platformObscuredInset):
(WebCore::ScrollView::platformSetObscuredInset):

Source/WebKit2:

  • Shared/VisibleContentRectUpdateInfo.cpp: Add FloatSize for obscuredInset.

(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):

  • Shared/VisibleContentRectUpdateInfo.h:

(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::obscuredInset):
(WebKit::operator==):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _processDidExit]): Rename _needsToRestoreExposedRect to _needsToRestoreScrollPosition
(-[WKWebView _didCommitLayerTree:]): Restore the scroll position using the scaled scrollOffset minus
the old obscuredInset.
(-[WKWebView _layerTreeCommitComplete]):
(-[WKWebView _restorePageScrollPosition:scrollOrigin:previousObscuredInset:scale:]):
(-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):
(-[WKWebView _scrollToContentScrollPosition:scrollOrigin:]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _restorePageStateToExposedRect:scrollOrigin:scale:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::restorePageState):

  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::updateVisibleContentRects):
(WebKit::WebPageProxy::restorePageState):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::restorePageState):
(WebKit::WebPage::updateVisibleContentRects):

10:21 AM Changeset in webkit [199232] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix followup to ​http://trac.webkit.org/changeset/199230

Unreviewed.

  • platform/posix/FileSystemPOSIX.cpp:

(WebCore::hardLinkOrCopyFile): Stricter POSIX systems require a umask for O_CREAT opens,

so let's provide one.

9:59 AM Changeset in webkit [199231] by Darin Adler
  • 16 edits in trunk/Source/WebCore

Remove 14 more unnecessary uses of UsePointersEvenForNonNullableObjectArguments
​https://bugs.webkit.org/show_bug.cgi?id=156405

Reviewed by Chris Dumez.

  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • dom/Element.idl:
  • dom/NamedNodeMap.idl:
  • html/HTMLElement.idl:
  • html/canvas/OESVertexArrayObject.idl:
  • html/canvas/WebGLRenderingContext.idl:
  • page/DOMSelection.idl:
  • storage/StorageEvent.idl:
  • svg/SVGSVGElement.idl:
  • xml/XMLSerializer.idl:
  • xml/XPathEvaluator.idl:
  • xml/XPathExpression.idl:
  • xml/XSLTProcessor.idl:

Removed UsePointersEvenForNonNullableObjectArguments, which was having no effect
in any of these classes. Also tweaked formatting of some of the IDL, merging things
onto single lines, changing paragraphing and indenting a bit, and fixing some typos.

9:57 AM Changeset in webkit [199230] by beidson@apple.com
  • 27 edits in trunk/Source

Modern IDB (Blob support): Write blobs to temporary files and move them to the correct location when storing them.
​https://bugs.webkit.org/show_bug.cgi?id=156321

Reviewed by Alex Christensen, Andy Estes, and Darin Adler.

Source/WebCore:

No new tests (No testable change in behavior yet, current tests pass).

When asked to store a Blob (including Files) in IndexedDB, the Blob is written out to a temporary file.

Then when the putOrAdd request is received by IDBServer it includes a list of blobURLs and their mappings
to temporary files.

Finally, as part of storing the Blob value in the database, those temporary files are moved in to place
under the IndexedDB directory for storage and later retrieval.

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):

  • Modules/indexeddb/server/IDBBackingStore.h:

(WebCore::IDBServer::IDBBackingStoreTemporaryFileHandler::~IDBBackingStoreTemporaryFileHandler):

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::create):
(WebCore::IDBServer::IDBServer::IDBServer):
(WebCore::IDBServer::IDBServer::createBackingStore):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::blobRecordsTableSchema):
(WebCore::IDBServer::blobRecordsTableSchemaAlternate):
(WebCore::IDBServer::blobFilesTableSchema):
(WebCore::IDBServer::blobFilesTableSchemaAlternate):
(WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidBlobTables):
(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:

(WebCore::IDBServer::SQLiteIDBBackingStore::temporaryFileHandler):

  • Modules/indexeddb/server/SQLiteIDBTransaction.cpp:

(WebCore::IDBServer::SQLiteIDBTransaction::commit):
(WebCore::IDBServer::SQLiteIDBTransaction::moveBlobFilesIfNecessary):
(WebCore::IDBServer::SQLiteIDBTransaction::abort):
(WebCore::IDBServer::SQLiteIDBTransaction::reset):
(WebCore::IDBServer::SQLiteIDBTransaction::addBlobFile):

  • Modules/indexeddb/server/SQLiteIDBTransaction.h:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::InProcessIDBServer):
(WebCore::InProcessIDBServer::accessToTemporaryFileComplete):

  • Modules/indexeddb/shared/InProcessIDBServer.h:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::blobURLsIsolatedCopy):

  • bindings/js/SerializedScriptValue.h:
  • platform/FileSystem.h:
  • platform/gtk/FileSystemGtk.cpp:

(WebCore::hardLinkOrCopyFile):

  • platform/posix/FileSystemPOSIX.cpp:

(WebCore::hardLinkOrCopyFile):

Source/WebKit2:

The NetworkProcess writes a blob to a temporary file, then tells the UIProcess to grant the DatabaseProcess
a Sandbox Extension to that path.

It then tells the WebProcess the paths for the temporary files, which then tells the DatabaseProcess to store
the contents of those files as blob references in the database.

Since the UIProcess had already granted it a Sandbox Extension, it is able to do so.

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::idbServer):
(WebKit::DatabaseProcess::grantSandboxExtensionsForBlobs):
(WebKit::DatabaseProcess::prepareForAccessToTemporaryFile):
(WebKit::DatabaseProcess::accessToTemporaryFileComplete):

  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/DatabaseProcess.messages.in:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::grantSandboxExtensionsToDatabaseProcessForBlobs):
(WebKit::NetworkProcess::didGrantSandboxExtensionsToDatabaseProcessForBlobs):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
9:40 AM WebKitGTK/2.12.x edited by jdiggs@igalia.com
Replace bug link with changeset link now that patch has landed (diff)
9:39 AM WebKitGTK/2.10.x edited by jdiggs@igalia.com
Replace bug link with changeset link now that patch has landed (diff)
9:36 AM Changeset in webkit [199229] by jdiggs@igalia.com
  • 4 edits
    3 adds in trunk

AX: [ATK] Crash getting text under element in CSS table
​https://bugs.webkit.org/show_bug.cgi?id=156328

Reviewed by Chris Fleizach.

Source/WebCore:

AccessibilityRenderObject::textUnderElement() assumes (and asserts) that
the first and last child of an anonymous block will each have nodes with
which to define positions. This is not the case for CSS Tables and their
anonymous descendants. AccessibilityNodeObject:textUnderElement() is our
fallback for the instances where a text range cannot be created based on
positions, so let it handle anonymous RenderTable parts.

Test: accessibility/generated-content-with-display-table-crash.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement):
(WebCore::AccessibilityRenderObject::shouldGetTextFromNode):

  • accessibility/AccessibilityRenderObject.h:

LayoutTests:

While this crash is currently seen only for ATK, there is nothing to
prevent another port from attempting to get all the text under a CSS
RenderTable. Hence the shared test.

  • accessibility/generated-content-with-display-table-crash.html: Added.
  • platform/gtk/accessibility/generated-content-with-display-table-crash-expected.txt: Added.
  • platform/mac/accessibility/generated-content-with-display-table-crash-expected.txt: Added.
9:11 AM Changeset in webkit [199228] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests

Unreviewed.
Rebasing LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-childList.html expectation after ​https://trac.webkit.org/changeset/199225.
Removing its Timeout expectation.

9:05 AM Changeset in webkit [199227] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Attempting to dismiss a popover that is already being dismissed causes an error
​https://bugs.webkit.org/show_bug.cgi?id=156385
<rdar://problem/25617962>

Reviewed by Timothy Hatcher.

The Popover element is removed from the DOM once it's fade-out transition
completes. Since Popover.dismiss proceeds as long as it's element has a
parent, successive calls to dismiss can run before the popover is removed.

Rather than rely on the presence of the popover in the DOM, set a "dismissing"
flag the first time dismiss is called, before the fade-out animation begins.

  • UserInterface/Controllers/BreakpointPopoverController.js:

(WebInspector.BreakpointPopoverController.prototype._conditionCodeMirrorEscapeOrEnterKey):
Check for null popover.

  • UserInterface/Views/Popover.js:

(WebInspector.Popover):
(WebInspector.Popover.prototype.dismiss):
Do nothing if already dismissing.

(WebInspector.Popover.prototype.handleEvent):
Reset dismissing flag after style transition completes.

9:04 AM Changeset in webkit [199226] by Matt Baker
  • 5 edits in trunk

Web Inspector: Quick Open fails to match pattern "bB" in file "abBc"
​https://bugs.webkit.org/show_bug.cgi?id=156398

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Correct an off-by-one error in the backtrack routine that set the dead
branch index to the character just before the match that was popped.
The dead branch index should equal the index of the popped match.

  • UserInterface/Controllers/ResourceQueryController.js:

(WebInspector.ResourceQueryController.prototype._findQueryMatches.backtrack):
(WebInspector.ResourceQueryController.prototype._findQueryMatches):

LayoutTests:

  • inspector/unit-tests/resource-query-controller-expected.txt:
  • inspector/unit-tests/resource-query-controller.html:

Test that two repeated characters in the search string are correctly
matched when the first character is lowercase and the second is uppercase.

7:45 AM Changeset in webkit [199225] by youenn.fablet@crf.canon.fr
  • 13 edits
    2 adds in trunk

LayoutTests/imported/w3c:
Testharness-based tests that time out should be able to produce detailed output
​https://bugs.webkit.org/show_bug.cgi?id=145313

Reviewed by Xabier Rodriguez-Calvar.

Rebasing tests that produce output after testharness timeout() is called.

  • web-platform-tests/fetch/api/request/request-cache-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-style-element/style-error-01-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change-expected.txt:

Tools:
Testharness-based tests that time out should be able to produce a detailed output
​https://bugs.webkit.org/show_bug.cgi?id=145313

Reviewed by Xabier Rodriguez-Calvar.

Adding timeout readonly accessor to TestRunner for both WK1 and WK2.

  • DumpRenderTree/TestRunner.cpp:

(getTimeoutCallback): The js "timeout" property getter.
(TestRunner::staticValues): Adding "timeout" property to DumpRenderTree so that testRunner.timeout called from JS returns the timeout value.

  • DumpRenderTree/TestRunner.h:

(TestRunner::timeout): Adding access to DRT m_timeout private value.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Adding timeout readonly attribute so that testRunner.timeout can be called from JS.
  • WebKitTestRunner/InjectedBundle/TestRunner.h: Adding DOM timeout getter to implement timeout IDL definition.

(WTR::TestRunner::timeout):

LayoutTests:
Testharness-based tests that time out should be able to produce a detailled output
​https://bugs.webkit.org/show_bug.cgi?id=145313

Reviewed by Xabier Rodriguez-Calvar.

  • TestExpectations: Removed TIMEOUT for some tests for which testharness.timeout will be called just before WTR times out.
  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/request/request-cache-expected.txt: GTK specific baseline.
  • resources/testharnessreport.js:

(add_completion_callback): Improving error logging message. Dumping of the tests status in error case.

2:04 AM Changeset in webkit [199224] by Darin Adler
  • 9 edits in trunk/Source/WebCore

Remove unneeded UsePointersEvenForNonNullableObjectArguments from event classes
​https://bugs.webkit.org/show_bug.cgi?id=156396

Reviewed by Youenn Fablet.

  • dom/CompositionEvent.idl:
  • dom/KeyboardEvent.idl:
  • dom/MouseEvent.idl:
  • dom/MutationEvent.idl:
  • dom/TextEvent.idl:
  • dom/TouchEvent.idl:
  • dom/UIEvent.idl:
  • dom/WheelEvent.idl:

Removed UsePointersEvenForNonNullableObjectArguments, which was having no effect.

1:52 AM Changeset in webkit [199223] by Manuel Rego Casasnovas
  • 3 edits
    4 adds in trunk

[css-grid] Fix positioned items with grid gaps
​https://bugs.webkit.org/show_bug.cgi?id=156288

Reviewed by Darin Adler.

Source/WebCore:

When we place a positioned items in a grid with gaps,
we were not taking into accounts the gutter size.
We've to use that size to properly place and size the item.

Tests: fast/css-grid-layout/grid-positioned-items-gaps-rtl.html

fast/css-grid-layout/grid-positioned-items-gaps.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):

LayoutTests:

Added new tests checking the right behavior.

  • fast/css-grid-layout/grid-positioned-items-gaps-expected.txt: Added.
  • fast/css-grid-layout/grid-positioned-items-gaps-rtl-expected.txt: Added.
  • fast/css-grid-layout/grid-positioned-items-gaps-rtl.html: Added.
  • fast/css-grid-layout/grid-positioned-items-gaps.html: Added.
1:01 AM Changeset in webkit [199222] by jfernandez@igalia.com
  • 2 edits in trunk/Source/WebCore

[css-grid] Remove unnecessary iteration in populateGridPositions loop
​https://bugs.webkit.org/show_bug.cgi?id=156376

Reviewed by Darin Adler.

The populateGridPositions loop limit was set to 'lastLine'. However, the
the position of last track's start line is updated after the loop, since
it does not follow the same pattern; it does not have a content
distribution offset.

So, since we are essentially overwriting the value stored in the last
iteration, we can just lower the loop limit.

No new tests added, because there is no change in the functionality.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::populateGridPositions):

12:17 AM Changeset in webkit [199221] by commit-queue@webkit.org
  • 11 edits in trunk

CSP: Block XHR when calling XMLHttpRequest.send() and throw network error.
​https://bugs.webkit.org/show_bug.cgi?id=153598
<rdar://problem/24391483>

Patch by John Wilander <​wilander@apple.com> on 2016-04-08
Reviewed by Darin Adler.

Source/WebCore:

No new tests. Changes to existing tests are sufficient.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::open):
(WebCore::XMLHttpRequest::initSend):

Moved the CSP check from XMLHttpRequest::open() to XMLHttpRequest::initSend().
Changed the thrown error type from Security to Network for synchronous requests.
Changed from throwing an error to firing an error event for asynchronous requests.
These changes are in conformance with connect-src of Content Security Policy Level 2.
​https://www.w3.org/TR/CSP2/#directive-connect-src (W3C Candidate Recommendation, 21 July 2015)

LayoutTests:

  • fast/workers/resources/worker-inherits-csp-blocks-xhr.js:

(catch):

  • fast/workers/worker-inherits-csp-blocks-xhr-expected.txt:

Changed expected error from DOMException.SECURITY_ERR to DOMException.NETWORK_ERR.

  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html:

Now tests that XMLHttpRequest.send() is blocked if the URL voilates the connect-src directive in CSP.

  • http/tests/security/contentSecurityPolicy/resources/worker.php:

Added two additional calls to XMLHttpRequest.send() and switched to receiving an error event to make
existing tests work with code changes.

  • http/tests/security/contentSecurityPolicy/source-list-parsing-malformed-meta.html:

Added an additional call to XMLHttpRequest.send() and switched to receiving an error event to make
existing test work with code changes.

  • http/tests/security/isolatedWorld/bypass-main-world-csp-for-xhr-expected.txt:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-for-xhr.html:

Added an additional call to XMLHttpRequest.send() and switched to receiving an error event to make
existing tests work with code changes.
Refactored test mechnism with additional parameters to cover synchronous/asynchronous as well as
same-origin/cross-origin in isolated worlds.

12:15 AM Changeset in webkit [199220] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk/Websites/perf.webkit.org

Fix various bugs in the new syncing script
​https://bugs.webkit.org/show_bug.cgi?id=156393

Reviewed by Darin Adler.

  • server-tests/resources/common-operations.js: Added. This file was supposed to be added in r199191.

(addBuilderForReport):
(addSlaveForReport):
(connectToDatabaseInEveryTest):
(submitReport):

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable.prototype._pullBuildbotOnAllSyncers): Don't log every time we pull from buildbot
builder as this dramatically increases the amount of log we generate.

  • tools/js/parse-arguments.js:

(parseArguments): Fixed a typo. This should be parseArgument*s*, not parseArgument.

  • tools/js/remote.js:

(RemoteAPI.prototype.url): Fixed a bug that portSuffix wasn't being expanded in the template literal.
(RemoteAPI.prototype.configure): Added more validations with nice error messages.
(RemoteAPI.prototype.sendHttpRequest): Falling back to port 80 isn't right when scheme is https. Compute
the right port in configure instead based on the scheme.

  • tools/sync-buildbot.js:

(syncLoop): Fixed the bug that syncing multiple times fail because Manifest.fetch() create new Platform
and Test objects. This results in various references in BuildRequest objects to get outdated. Fixing this
properly in Manifest.fetch() because we do need to "forget" about some tests and platforms in some cases.
For now, delete all v3 model objects and start over in each syncing cycle.

  • unit-tests/tools-js-remote-tests.js: Added. Unit tests for the aforementioned changes to RemoteAPI.
12:13 AM Changeset in webkit [199219] by BJ Burg
  • 4 edits
    2 adds in trunk/Source/JavaScriptCore

Web Inspector: protocol generator should emit an error when 'type' is used instead of '$ref'
​https://bugs.webkit.org/show_bug.cgi?id=156275
<rdar://problem/25569331>

Reviewed by Darin Adler.

  • inspector/protocol/Heap.json: Fix a mistake that's now caught by the protocol generator.
  • inspector/scripts/codegen/models.py:

(TypeReference.init): Check here if type_kind is on a whitelist of primitive types.
(TypeReference.referenced_name): Update comment.

Add a new test specifically for the case when the type would otherwise be resolved. Rebaseline.

  • inspector/scripts/tests/expected/fail-on-type-reference-as-primitive-type.json-error: Added.
  • inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-declaration.json-error:
  • inspector/scripts/tests/fail-on-type-reference-as-primitive-type.json: Added.
12:08 AM Changeset in webkit [199218] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

[JSC] Enable Concurrent JIT by default
​https://bugs.webkit.org/show_bug.cgi?id=156341

Reviewed by Filip Pizlo.

We enable Concurrent JIT by default when DFG JIT and JSVALUE64 are enabled.
This change offers Concurrent JIT to the JSCOnly port.

  • wtf/Platform.h:

Apr 7, 2016:

10:04 PM Changeset in webkit [199217] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

stylebot should know about TestWebKitAPI FeatureDefines.xcconfig
​https://bugs.webkit.org/show_bug.cgi?id=156387

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-07
Rubber-stamped by Dan Bernstein.

  • Scripts/webkitpy/style/checkers/featuredefines.py:

(FeatureDefinesChecker.check):

9:26 PM Changeset in webkit [199216] by Darin Adler
  • 7 edits in trunk

FontFaceSet binding does not handle null correctly
​https://bugs.webkit.org/show_bug.cgi?id=156141

Reviewed by Youenn Fablet.

Source/WebCore:

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::FontFaceSet): Pass a reference to add rather than a pointer.
(WebCore::FontFaceSet::has): Take a reference rather than a pointer.
(WebCore::FontFaceSet::add): Ditto.
(WebCore::FontFaceSet::remove): Ditto.
(WebCore::FontFaceSet::load): Initialize ec since we check it. Caller is not required
to do this, nor is the matchingFaces function. Rearranged function to avoid needless
creation/destruction of PendingPromise for the immediate failure case. Removed some
unneeded type casts and local variables.
(WebCore::FontFaceSet::status): Use ASCIILiteral instead of ConstructFromLiteral.
No reason to use the more aggressive optimization.
(WebCore::FontFaceSet::faceFinished): Factored out a common hasReachedTerminalState
check to streamline the logic a bit.
(WebCore::FontFaceSet::load): Moved overload without a string in here; not critical
to inline it.
(WebCore::FontFaceSet::check): Ditto.

  • css/FontFaceSet.h: Removed many unneeded includes and forward declarations.

Changed functions to take FontFace& instead of RefPtr<FontFace>. Removed unneeded
WebCore namespace prefixes. Use final instead of override for virtual functions.

  • css/FontFaceSet.idl: Removed UsePointersEvenForNonNullableObjectArguments, which

was preserving incorrect behavior for null as demonstrated by the test cases.

LayoutTests:

  • fast/text/font-face-set-javascript-expected.txt: Added expected results for new tests.
  • fast/text/font-face-set-javascript.html: Added tests for handling of null, also added tests for

the has function.

9:21 PM Changeset in webkit [199215] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

sync-buildbot.js doesn't mark disappeared builds as failed
​https://bugs.webkit.org/show_bug.cgi?id=156386

Reviewed by Chris Dumez.

Fix a bug that new syncing script doesn't mark builds that it scheduled but doesn't appear when queried
by buildbot's JSON API. These are builds that got canceled by humans (e.g. buildbot was restarted, data
loss, pending build was canceled, etc...)

  • server-tests/tools-buildbot-triggerable-tests.js: Added a test case.
  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable.prototype._pullBuildbotOnAllSyncers): Added a set of build requests we've matched
against BuildbotBuildEntry's. Mark build requests that didn't have any entry but supposed to be in either
'scheduled' or 'running' status as failed.

9:17 PM Changeset in webkit [199214] by commit-queue@webkit.org
  • 17 edits in trunk

Remove ENABLE(ENABLE_ES6_CLASS_SYNTAX) guards
​https://bugs.webkit.org/show_bug.cgi?id=156384

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-07
Reviewed by Ryosuke Niwa.

.:

  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:
  • features.json: Mark as Done.
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
8:59 PM Changeset in webkit [199213] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] Media playback button should use appearance
​https://bugs.webkit.org/show_bug.cgi?id=156388

Reviewed by Simon Fraser.

With the recent change in backdrop appearance, we can
now use the system style directly for the play button.

While I was here I also updated the artwork to the
latest style (slightly rounded corners on the triangle).

Covered by the test in ManualTests/ios/start-playback-button-appearance.html.

  • Modules/mediacontrols/mediaControlsiOS.css: Move the clip onto the backdrop

element. Use an appearance insted.

  • Modules/mediacontrols/mediaControlsiOS.js: Remove the tint element, and

set the highlight on the glyph instead.

8:59 PM Changeset in webkit [199212] by dino@apple.com
  • 3 edits
    2 adds in trunk

[iOS] Play button on video is too dark
​https://bugs.webkit.org/show_bug.cgi?id=156383
<rdar://problem/23540816>

Reviewed by Simon Fraser.

.:

Add a manual test for iOS that shows the expected appearance
of a video element. Unfortunately, due to the way we take
snapshots on iOS within our test runner, we don't get the
platform blurring effect, which means an automated test
won't work.

  • ManualTests/ios/start-playback-button-appearance-expected.html: Added.
  • ManualTests/ios/start-playback-button-appearance.html: Added.

Source/WebKit2:

Elements that are backed by a layer with either LightBackdropAppearance
or DarkBackdropAppearance are actually a combination of a
few layers (inside a special view). If we apply a mask to one
of those layers, it needs to be attached to the correct
child layer.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties): If we have
one of the special appearance flags, apply the mask layer to
a particular child, rather than the layer itself.

8:58 PM Changeset in webkit [199211] by dino@apple.com
  • 2 edits in trunk/Tools

Watchlist modifications:

  • remove roger_fong
  • add myself to a few areas
  • remove graouts from WebInspectorAPI
  • Scripts/webkitpy/common/config/watchlist:
8:19 PM Changeset in webkit [199210] by rniwa@webkit.org
  • 7 edits in trunk/Websites/perf.webkit.org

A/B testing bots should prioritize user created test groups
​https://bugs.webkit.org/show_bug.cgi?id=156375

Reviewed by Chris Dumez.

Order build requests preferring user created ones over ones automatically created by detect-changes.js.

Also fixed a bug in BuildbotSyncer.scheduleFirstRequestInGroupIfAvailable that it was scheduling a new
build request on a builder/slave even when we had previously scheduled another build request.

  • public/include/build-requests-fetcher.php:

(BuildRequestsFetcher::fetch_incomplete_requests_for_triggerable): Order build requested based on
author_order which is 0 when it's created by an user and 1 when it's created by detect-changes.js.
Since we're using ascending order, this would put user created test groups first.

  • server-tests/api-build-requests-tests.js: Updated an existing test case and added a new test case

for testing that build requests for an user created test group shows up first.

  • server-tests/resources/mock-data.js:

(MockData.addAnotherMockTestGroup): Takes an extra argument to specify the author name.

  • server-tests/tools-buildbot-triggerable-tests.js: Added a test case for testing that build requests

for an user created test group shows up first.

  • tools/js/buildbot-syncer.js:

(BuildbotSyncer): Added _slavesWithNewRequests to keep track of build slaves on which we have already
scheduled new build requests. Don't schedule more requests on these slaves.
(BuildbotSyncer.prototype.scheduleRequest):
(BuildbotSyncer.prototype.scheduleFirstRequestInGroupIfAvailable): Add the specified slave name (or null
when slaveList is not specified) to _slavesWithNewRequests.
(BuildbotSyncer.prototype.pullBuildbot): Clear the set after pulling buildbot since any build request
we have previously scheduled should be included in one of the entires now.

  • unit-tests/buildbot-syncer-tests.js: Added test cases for the aforementioned bug.

(sampleiOSConfig): Added a second slave for new test cases.

7:11 PM Changeset in webkit [199209] by fpizlo@apple.com
  • 8 edits
    3 adds in trunk

Implementing caching transition puts that need to reallocate with indexing storage
​https://bugs.webkit.org/show_bug.cgi?id=130914

Reviewed by Saam Barati.

Source/JavaScriptCore:

This enables the IC's put_by_id path to handle reallocating the out-of-line storage even if
the butterfly has indexing storage. Like the DFG, we do this by calling operations that
reallocate the butterfly. Those use JSObject API and do all of the nasty work for us, like
triggering a barrier.

This does a bunch of refactoring to how PolymorphicAccess makes calls. It's a lot easier to
do it now because the hard work is hidden under AccessGenerationState methods. This means
that custom accessors now share logic with put_by_id transitions.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::succeed):
(JSC::AccessGenerationState::calculateLiveRegistersForCallAndExceptionHandling):
(JSC::AccessGenerationState::preserveLiveRegistersToStackForCall):
(JSC::AccessGenerationState::originalCallSiteIndex):
(JSC::AccessGenerationState::emitExplicitExceptionHandler):
(JSC::AccessCase::AccessCase):
(JSC::AccessCase::transition):
(JSC::AccessCase::generate):
(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::needsToRestoreRegistersIfException):
(JSC::AccessGenerationState::liveRegistersToPreserveAtExceptionHandlingCallSite):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:

LayoutTests:

  • js/regress/put-by-id-transition-with-indexing-header-expected.txt: Added.
  • js/regress/put-by-id-transition-with-indexing-header.html: Added.
  • js/regress/script-tests/put-by-id-transition-with-indexing-header.js: Added.

(allocate):

6:27 PM Changeset in webkit [199208] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Remote Inspector: When disallowing remote inspection on a debuggable, a listing is still sent to debuggers
​https://bugs.webkit.org/show_bug.cgi?id=156380
<rdar://problem/25323727>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-07
Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::updateTarget):
(Inspector::RemoteInspector::updateAutomaticInspectionCandidate):
When a target has been updated and it no longer generates a listing,
we should remove the old listing as that is now stale and should
not be sent. Not generating a listing means this target is no
longer allowed to be debugged.

6:24 PM Changeset in webkit [199207] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: OpenResourceDialog should keep its resources list up-to-date
​https://bugs.webkit.org/show_bug.cgi?id=155321
<rdar://problem/25093890>

Reviewed by Timothy Hatcher.

The Quick Open dialog should listen for resource change events, refreshing
the resource list and current query results as needed.

  • UserInterface/Views/OpenResourceDialog.js:

(WebInspector.OpenResourceDialog):
(WebInspector.OpenResourceDialog.prototype.didDismissDialog):
Unregister resource event handlers.

(WebInspector.OpenResourceDialog.prototype.didPresentDialog):
Register resource event handlers and add main frame resources.

(WebInspector.OpenResourceDialog.prototype._addResource):
Add resource to the query controller, if valid. Optionally suppress
the potentially expensive filter update, which is useful when adding
multiple resources at once.

(WebInspector.OpenResourceDialog.prototype._addResourcesForFrame):
Add the entire frame resource tree and update dialog filter.

(WebInspector.OpenResourceDialog.prototype._mainResourceDidChange):
(WebInspector.OpenResourceDialog.prototype._resourceWasAdded):

6:22 PM Changeset in webkit [199206] by adachan@apple.com
  • 6 edits in trunk

Roll out the css change in mediaControlsApple.css that has been causing assertions in layout for multiple tests
​https://bugs.webkit.org/show_bug.cgi?id=156381

Rubber-stamped by Alexey Proskuryakov.

Source/WebCore:

  • Modules/mediacontrols/mediaControlsApple.css:

(::-webkit-media-controls):
Remove overflow: hidden.

LayoutTests:

  • platform/mac/TestExpectations:
  • platform/mac/media/media-document-audio-repaint-expected.txt:
  • platform/mac/media/video-zoom-controls-expected.txt:
5:40 PM Changeset in webkit [199205] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: Not necessary to validate webinspectord connection on iOS
​https://bugs.webkit.org/show_bug.cgi?id=156377
<rdar://problem/25612460>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-07
Reviewed by Simon Fraser.

  • inspector/remote/RemoteInspectorXPCConnection.h:
  • inspector/remote/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::handleEvent):

5:19 PM Changeset in webkit [199204] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Clearing the application cache doesn't work.
​https://bugs.webkit.org/show_bug.cgi?id=156354
rdar://problem/22369239

Patch by Jeremy Jones <​jeremyj@apple.com> on 2016-04-07
Reviewed by Brady Eidson.

Use the correct "ApplicationCache" directory.
Delete the caches, not just the entries.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):

5:10 PM Changeset in webkit [199203] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Rename ArrayMode::supportsLength to supportsSelfLength
​https://bugs.webkit.org/show_bug.cgi?id=156374

Reviewed by Filip Pizlo.

The name supportsLength is confusing because TypedArray have a
length function however it is on the prototype and not on the
instance. supportsSelfLength makes more sense since we use the
function during fixup to tell if we can intrinsic the length
property lookup on self accesses.

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::supportsSelfLength):
(JSC::DFG::ArrayMode::supportsLength): Deleted.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::attemptToMakeGetArrayLength):

4:38 PM Changeset in webkit [199202] by jiewen_tan@apple.com
  • 5 edits
    2 deletes in trunk

Unreviewed, rolling out r199199.

Revision breaks layout tests

Reverted changeset:

"fast/loader/opaque-base-url.html crashing during mac and ios
debug tests"
​https://bugs.webkit.org/show_bug.cgi?id=156179
​http://trac.webkit.org/changeset/199199

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

Web Inspector: ProfileView source links are off by 1 line, worse in pretty printed code
​https://bugs.webkit.org/show_bug.cgi?id=156371

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-07
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/ScriptProfiler.json:

Clarify that these locations are 1-based.

Source/WebInspectorUI:

  • UserInterface/Views/ProfileDataGridNode.js:

(WebInspector.ProfileDataGridNode.prototype._displayContent):
Switch the 1-based locations in the CCT data structure to 0-based for SourceCodeLocation.

4:14 PM Changeset in webkit [199200] by Simon Fraser
  • 17 edits
    4 adds in trunk

Make it possible to test effect of view exposed rect on tiled backing
​https://bugs.webkit.org/show_bug.cgi?id=156365

Reviewed by Tim Horton.

Source/WebCore:

Implement Internals::setViewExposedRect().

When the viewExposedRect is non-null, assume that we're scrollable on both axes
to avoid creation of huge tiles in this scenario.

We also need to call adjustTiledBackingScrollability() when setViewExposedRect()
has been called.

Tests: tiled-drawing/tile-coverage-view-exposed-rect.html

tiled-drawing/tile-size-view-exposed-rect.html

  • page/FrameView.cpp:

(WebCore::FrameView::adjustTiledBackingScrollability):
(WebCore::FrameView::setViewExposedRect):

  • testing/Internals.cpp:

(WebCore::Internals::setViewExposedRect):

  • testing/Internals.h:
  • testing/Internals.idl:

Tools:

Expose testRunner.setViewSize() and internals.setViewExposedRect() to enable
testing of tile coverage when setViewExposedRect() is passed a non-null rectangle.

testRunner.setViewSize() is used instead of using window.resizeTo(), since we
can't easily resize a window to larger than the screen being tested on.

  • DumpRenderTree/TestRunner.cpp:

(setViewSizeCallback):
(TestRunner::staticFunctions):

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setViewSize):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::postSetViewSize):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setViewSize):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Tests for tile size and tile coverage when we have an exposed view rect.

  • tiled-drawing/tile-coverage-view-exposed-rect-expected.txt: Added.
  • tiled-drawing/tile-coverage-view-exposed-rect.html: Added.
  • tiled-drawing/tile-size-view-exposed-rect-expected.txt: Added.
  • tiled-drawing/tile-size-view-exposed-rect.html: Added.
3:44 PM Changeset in webkit [199199] by jiewen_tan@apple.com
  • 5 edits
    2 adds in trunk

fast/loader/opaque-base-url.html crashing during mac and ios debug tests
​https://bugs.webkit.org/show_bug.cgi?id=156179
<rdar://problem/25507719>

Reviewed by Andy Estes.

Source/WebCore:

A relative URL other than "#" with a non-hierarchical base is invalid, but prior to this
change the URL's string would still contain the invalid relative URL. To avoid mistakes
where we might later treat this URL string as a parsed URL string, set the string to
"about:blank" instead.

Test: fast/url/data-uri-based-urls.html

  • platform/URL.cpp:

(WebCore::URL::init):

LayoutTests:

  • TestExpectations:
  • fast/url/data-uri-based-urls-expected.txt: Added.
  • fast/url/data-uri-based-urls.html: Added.
  • fast/url/relative-expected.txt:
3:35 PM Changeset in webkit [199198] by adachan@apple.com
  • 2 edits in trunk/LayoutTests

Skip a couple more tests that are asserting in FrameView::scheduleRelayoutOfSubtree().

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:34 PM Changeset in webkit [199197] by BJ Burg
  • 10 edits in trunk/Source

Web Automation: implement Automation.addSingleCookie
​https://bugs.webkit.org/show_bug.cgi?id=156319
<rdar://problem/25589605>

Reviewed by Timothy Hatcher.

Source/WebCore:

  • platform/Cookie.h: Document the units used by the 'expires' field.

Source/WebKit2:

Implement this command by converting the protocol cookie to
WebCore::Cookie, then sending the cookie to NetworkProcess to
be added to the storage session using CookieJar::addCookie.

  • UIProcess/Automation/Automation.json:

Clarify the units used in the 'expires' field and how the default value
for the domain field should be computed.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::addSingleCookie):
Parse the cookie and send it out via WebCookieManagerProxy.

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::addCookie): Added.

  • UIProcess/WebCookieManagerProxy.h:
  • WebProcess/Cookies/WebCookieManager.cpp:

(WebKit::WebCookieManager::addCookie):

  • WebProcess/Cookies/WebCookieManager.h:
  • WebProcess/Cookies/WebCookieManager.messages.in:

Forward the message to WebCore::addCookie.

3:31 PM Changeset in webkit [199196] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Add ImageBitmap as under consideration on Feature Status page
​https://bugs.webkit.org/show_bug.cgi?id=156362

Reviewed by Timothy Hatcher.

  • features.json:
3:31 PM Changeset in webkit [199195] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Include Conical Gradients on the Feature Status page.
​https://bugs.webkit.org/show_bug.cgi?id=156363

Reviewed by Timothy Hatcher.

  • features.json:
3:28 PM Changeset in webkit [199194] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/mac/WebVideoFullscreenInterfaceMac.mm:
3:26 PM Changeset in webkit [199193] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

In WK1 WebVideoFullscreen interface may be accessed from WK1 main thread instead of UI thread.
​https://bugs.webkit.org/show_bug.cgi?id=154252
rdar://problem/22460539

Patch by Jeremy Jones <​jeremyj@apple.com> on 2016-04-07
Reviewed by Eric Carlson.

In WebKit1, Javascript can cause enter fullscreen to happen on the main thead, which is not
necessarily the UI thread. This can cause autolayout errors. Move this code to the UI thread.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setUpFullscreen): Move setup to the UI thread.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer layoutSublayers]): Move call to resolveBounds to the UI thread.

3:25 PM Changeset in webkit [199192] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy.html as timeout in ios-simulator-wk2
​https://bugs.webkit.org/show_bug.cgi?id=149087

Unreviewed, test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
3:10 PM Changeset in webkit [199191] by rniwa@webkit.org
  • 7 edits
    5 moves in trunk/Websites/perf.webkit.org

Migrate legacy perf dashboard tests to mocha.js based tests
​https://bugs.webkit.org/show_bug.cgi?id=156335

Reviewed by Chris Dumez.

Migrated all legacy run-tests.js tests to mocha.js based tests. Since the new harness uses Promise
for most of asynchronous operations, refactored the tests to use Promises as well, and added more
assertions where appropriate.

Also consolidated common helper functions into server-tests/resources/common-operations.js.
Unfortunately there were multiple inconsistent implementations of addBuilder/addSlave. Some were
taking an array of reports while others were taking a single report. New shared implementation in
common-operations.js now takes a single report.

Also decreased the timeout in most tests from 10s to 1s so that tests fail early when they timeout.
Most of tests are passing under 100ms on my computer so 1s should be plenty still.

  • run-tests.js: Removed.
  • server-tests/admin-platforms-tests.js: Moved from tests/admin-platforms.js.

(reportsForDifferentPlatforms):

  • server-tests/admin-reprocess-report-tests.js: Moved from tests/admin-reprocess-report.js.

(.addBuilder): Moved to common-operations.js.

  • server-tests/api-build-requests-tests.js:
  • server-tests/api-manifest.js: Use MockData.resetV3Models() instead of manually clearing maps.
  • server-tests/api-measurement-set-tests.js: Moved from tests/api-measurement-set.js.

(.queryPlatformAndMetric):
(.format):

  • server-tests/api-report-commits-tests.js: Moved from tests/api-report-commits.js.
  • server-tests/api-report-tests.js: Moved from tests/api-report.js.

(.emptyReport):
(.emptySlaveReport):
(.reportWithSameSubtestName):

  • server-tests/resources/common-operations.js: Added.

(addBuilderForReport): Extracted from tests.
(addSlaveForReport): Ditto.
(connectToDatabaseInEveryTest): Added.
(submitReport): Extracted from admin-platforms-tests.js.

  • server-tests/resources/test-server.js:

(TestServer): Make TestServer a singleton since it doesn't make any sense for each module to start
its own Apache instance (that would certainly will fail).

  • server-tests/tools-buildbot-triggerable-tests.js:
  • tests: Removed.
  • tools/js/database.js:

(Database.prototype.selectAll): Added.
(Database.prototype.selectFirstRow): Added.
(Database.prototype.selectRows): Added. Dynamically construct a query string based on arguments.

3:02 PM Changeset in webkit [199190] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/mac/WebVideoFullscreenInterfaceMac.mm:
3:01 PM Changeset in webkit [199189] by Jon Davis
  • 2 edits in trunk/Source/JavaScriptCore

Add Web Animations API to Feature Status Page
​https://bugs.webkit.org/show_bug.cgi?id=156360

Reviewed by Timothy Hatcher.

  • features.json:
2:56 PM Changeset in webkit [199188] by Chris Dumez
  • 8 edits in trunk/Source/WebCore

[WebIDL] Add support for [EnabledAtRuntime] attributes on non-global objects
​https://bugs.webkit.org/show_bug.cgi?id=156346

Reviewed by Ryosuke Niwa.

Add support for [EnabledAtRuntime] attributes on non-global objects by
using the same approach as for [EnabledAtRuntime] operations. This means
we add these attributes to the static property table but they get removed
at runtime in JS*Prototype::finishCreation(), if the feature is disabled,
after the eager reification of the prototype.

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePropertiesHashTable):
(GenerateImplementation):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_set_property):
(webkit_dom_test_obj_get_property):
(webkit_dom_test_obj_class_init):
(webkit_dom_test_obj_enabled_at_runtime_operation):
(webkit_dom_test_obj_get_enabled_at_runtime_attribute):
(webkit_dom_test_obj_set_enabled_at_runtime_attribute):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::finishCreation):
(WebCore::jsTestObjEnabledAtRuntimeAttribute):
(WebCore::setJSTestObjEnabledAtRuntimeAttribute):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation):

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj enabledAtRuntimeAttribute]):
(-[DOMTestObj setEnabledAtRuntimeAttribute:]):
(-[DOMTestObj enabledAtRuntimeOperation:]):

  • bindings/scripts/test/TestObj.idl:
2:55 PM Changeset in webkit [199187] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Attempted build fix.

  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebPlaybackControlsManager setCurrentAudioMediaSelectionOption:]):
(-[WebPlaybackControlsManager setCurrentLegibleMediaSelectionOption:]):
(-[WebPlaybackControlsManager currentAudioMediaSelectionOption]): Deleted.
(-[WebPlaybackControlsManager currentLegibleMediaSelectionOption]): Deleted.

2:51 PM Changeset in webkit [199186] by adachan@apple.com
  • 2 edits in trunk/Source/WebCore

Add WebKitAdditions extension point in HTMLVideoElement::supportsFullscreen()
​https://bugs.webkit.org/show_bug.cgi?id=156366

Reviewed by Alex Christensen.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::supportsFullscreen):

2:39 PM Changeset in webkit [199185] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Add WOFF2 to the Feature Status page
​https://bugs.webkit.org/show_bug.cgi?id=156361

Reviewed by Timothy Hatcher.

  • features.json:
2:31 PM Changeset in webkit [199184] by Beth Dakin
  • 3 edits in trunk/Source/WebCore

WebPlaybackControlsManager should support mediaSelectionOptions
​https://bugs.webkit.org/show_bug.cgi?id=156358
-and corresponding-
rdar://problem/25048743

Reviewed by Jer Noble.

This patch just implements
WebVideoFullscreenInterfaceMac::setAudioMediaSelectionOptions and
WebVideoFullscreenInterfaceMac::setLegibleMediaSelectionOptions and passes that
information on to WebPlaybackControlsManager. If selection options are set via
the WebPlaybackControlsManager, then it gets the webVideoFullscreenModel() to
set the new value.

  • platform/mac/WebVideoFullscreenInterfaceMac.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(-[WebPlaybackControlsManager currentAudioMediaSelectionOption]):
(-[WebPlaybackControlsManager setCurrentAudioMediaSelectionOption:]):
(-[WebPlaybackControlsManager currentLegibleMediaSelectionOption]):
(-[WebPlaybackControlsManager setCurrentLegibleMediaSelectionOption:]):
(WebCore::mediaSelectionOptions):
(WebCore::WebVideoFullscreenInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebVideoFullscreenInterfaceMac::setLegibleMediaSelectionOptions):
(-[WebPlaybackControlsManager audioMediaSelectionOptions]): Deleted.
(-[WebPlaybackControlsManager legibleMediaSelectionOptions]): Deleted.

2:26 PM Changeset in webkit [199183] by ap@apple.com
  • 4 edits in trunk/LayoutTests

Test expectation gardening for
Assertion failure in MessagePort::contextDestroyed in http/tests/security/MessagePort/event-listener-context.html,
usually attributed to later tests
​https://bugs.webkit.org/show_bug.cgi?id=94458

http/tests/security/MessagePort/event-listener-context.html is the only culprit,
so it should be skipped everywhere, and subsequent tests shouldn't be marked.

  • TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
2:25 PM Changeset in webkit [199182] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Invalid assertion inside DebuggerScope::getOwnPropertySlot
​https://bugs.webkit.org/show_bug.cgi?id=156357

Reviewed by Keith Miller.

The Type Profiler might profile JS code that uses DebuggerScope and accesses properties
on it. Therefore, it may have a DebuggerScope object in its log. Objects in the log
are subject to having their getOwnPropertySlot method called. Therefore, the DebuggerScope
might not always be in a valid state when its getOwnPropertySlot method is called.
Therefore, the assertion invalid.

  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::getOwnPropertySlot):

2:15 PM Changeset in webkit [199181] by Brent Fulgham
  • 11 edits
    2 adds in trunk

Wheel event callback removing the window causes crash in WebCore.
​https://bugs.webkit.org/show_bug.cgi?id=150871
<rdar://problem/23418283>

Reviewed by Simon Fraser.

Source/WebCore:

Null check the FrameView before using it, since the iframe may have been removed
from its parent document inside the event handler.

The new test triggered a cross-load side-effect, where wheel event filtering wasn't
reset between page loads. Fix by calling clearLatchedState() in EventHandler::clear(),
which resets the filtering.

Since the Frame destructor invokes EventHandler::clear, which invokes MainFrame methods,
we run the risk of attempting to dereference destroyed MainFrame elements of the current
Frame object. Instead, clear the EventHandler in the MainFrame destructor.

Finally, confirm that the mainFrame member is not being destroyed in the handful of
places that might attempt to access the mainFrame during object destruction (essentially
cleanup methods).

Test: fast/events/wheel-event-destroys-frame.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear): Protect against accessing mainFrame content during destruction.

  • page/EventHandler.cpp:

(WebCore::EventHandler::clear): Call 'clearLatchedState' instead of endFilteringDeltas.
(WebCore::EventHandler::clearLatchedState): Null-check the filter before calling it.

  • page/Frame.cpp:

(WebCore::Frame::~Frame): Do not call 'setView' in the destructor for a MainFrame.
(WebCore::Frame::setView): Check for a null event handler before invoking it.
(WebCore::Frame::setMainFrameWasDestroyed): Added. Mark that the MainFrame
member of the Frame is being destroyed (if the current Frame is a MainFrame) and clear
the EventHandler member so that it doesn't attempt to access mainFrame content.
(WebCore::Frame::mainFrame): When accessing the mainFrame member, assert that the
mainFrame is not being destroyed.

  • page/MainFrame.cpp:

(WebCore::MainFrame::~MainFrame): Set the m_recentWheelEventDeltaFilter to nullptr to
prevent attempts to access it during object destruction. Call the new 'setMainFrameWasDestroyed'
method to reset eventHandler and mark the MainFrame as being in the process of destruction.

  • page/WheelEventDeltaFilter.cpp:

(WebCore::WheelEventDeltaFilter::filteredDelta): Add logging.

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformCompleteWheelEvent): Add null check.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo): Add logging.

LayoutTests:

  • fast/events/wheel-event-destroys-frame-expected.txt: Added.
  • fast/events/wheel-event-destroys-frame.html: Added.
  • platform/ios-simulator/TestExpectations: Skip wheel-event test on iOS.
2:08 PM Changeset in webkit [199180] by jmarcell@apple.com
  • 2 edits
    6 moves
    3 adds in trunk/Tools

Adding layout tests for the bot watcher's dashboard QUnit tests. ​https://bugs.webkit.org/show_bug.cgi?id=155272

Reviewed by Daniel Bates.

Moved supporting resources into a resources folder and updated index.html accordingly
to point to the new locations. Added code to tests.js to dumpAsText when QUnit is done.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/index-expected.txt: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/index.html: Updated to point to tests.js and Mock files in resources directory.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbotQueue.js: Renamed from

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/MockBuildbotQueue.js.
(MockBuildbotQueue):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbotQueueView.js: Renamed from

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/MockBuildbotQueueView.js.
(MockBuildbotQueueView):
(MockBuildbotQueueView.prototype._latestProductiveIteration):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockTrac.js: Renamed from

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/MockTrac.js.
(MockTrac):
(MockTrac.prototype.get oldestRecordedRevisionNumber):
(MockTrac.prototype.get latestRecordedRevisionNumber):
(MockTrac.prototype.loadMoreHistoricalData):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/test-fixture-git-trac-rss.xml: Renamed from

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/test-fixture-git-trac-rss.xml.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/test-fixture-trac-rss.xml: Renamed from

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/test-fixture-trac-rss.xml.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/tests.js: Renamed from

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js.
Updated the unit tests for Trac._loaded() to point to the XML files that are now located in the 'resources' directory.
(QUnit.done): Added. Removes machine-specific output from test results and calls testRunner.notifyDone to let the layout test harness know that all testing is done.

  • Scripts/run-dashboard-tests: Added.
2:01 PM Changeset in webkit [199179] by sbarati@apple.com
  • 8 edits in trunk

Initial implementation of annex b.3.3 behavior was incorrect
​https://bugs.webkit.org/show_bug.cgi?id=156276

Reviewed by Keith Miller.

Source/JavaScriptCore:

I almost got annex B.3.3 correct in my first implementation.
There is a subtlety here I got wrong. We always create a local binding for
a function at the very beginning of execution of a block scope. So we
hoist function declarations to their local binding within a given
block scope. When we actually evaluate the function declaration statement
itself, we must lookup the binding in the current scope, and bind the
value to the binding in the "var" scope. We perform the following
abstract operations when executing a function declaration statement.

f = lookupBindingInCurrentScope("func")
store(varScope, "func", f)

I got this wrong by performing the store to the var binding at the beginning
of the block scope instead of when we evaluate the function declaration statement.
This behavior is observable. For example, a program could change the value
of "func" before the actual function declaration statement executes.
Consider the following two functions:
`
function foo1() {

func === undefined
{

typeof func === "function"
function func() { }
Executing this statement binds the local "func" binding to the implicit "func" var binding.
func = 20 This sets the local "func" binding to 20.

}
typeof func === "function"

}

function foo2() {

func === undefined
{

typeof func === "function"
func = 20
This sets the local "func" binding to 20.
function func() { } Executing this statement binds the local "func" binding to the implicit "func" var binding.

}
func === 20

}
`

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::initializeBlockScopedFunctions):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitNodeForLeftHandSide):

  • bytecompiler/NodesCodegen.cpp:

(JSC::FuncDeclNode::emitBytecode):

  • tests/stress/sloppy-mode-function-hoisting.js:

(test.foo):
(test):
(test.):
(test.bar):
(test.switch.case.0):
(test.capFoo1):
(test.switch.capFoo2):
(test.outer):
(foo):

LayoutTests:

  • js/function-declarations-in-switch-statement-expected.txt:
  • js/script-tests/function-declarations-in-switch-statement.js:
2:00 PM Changeset in webkit [199178] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: No resource with given URL found
​https://bugs.webkit.org/show_bug.cgi?id=156259
<rdar://problem/25564749>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-07
Reviewed by Timothy Hatcher.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor):
SourceCode.prototype.requestContent will reject if it cannot load
content for the given resource. In that case, we already have an
earlier catch handler that displays an error message in the
ContentView, so we shouldn't show an Uncaught Exception page.
Really, we should not reject the original promise here, and
instead resolve it with an object describing the error, but
short term we should remove the uncaught exception handler for
this case.

1:59 PM Changeset in webkit [199177] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Take snapshot navigation button should match navigation button styles
​https://bugs.webkit.org/show_bug.cgi?id=156355
<rdar://problem/25325172>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-07
Reviewed by Timothy Hatcher.

  • UserInterface/Images/Camera.svg: Added.
  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):
Use the new image for the navigation bar button.

1:38 PM Changeset in webkit [199176] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Build fix after r199170

  • CMakeLists.txt:
1:21 PM Changeset in webkit [199175] by adachan@apple.com
  • 3 edits in trunk/Source/WebKit2

Add WebKitAdditions extension points around preferences
​https://bugs.webkit.org/show_bug.cgi?id=156303

Reviewed by Beth Dakin.

  • Shared/WebPreferencesStore.cpp:

(WebKit::defaults):

  • UIProcess/API/C/WKPreferences.cpp:
1:04 PM Changeset in webkit [199174] by adachan@apple.com
  • 8 edits
    2 moves in trunk

Rename TextTrackRepresentationiOS to TextTrackRepresentationCocoa and enable on Mac
​https://bugs.webkit.org/show_bug.cgi?id=156245

Reviewed by Eric Carlson.

Source/WebCore:

  • Modules/mediacontrols/mediaControlsApple.css:

(::-webkit-media-controls):
Match iOS and specify overflow: hidden on the -webkit-media-controls container.
(video::-webkit-media-text-track-container):
Match iOS and specify z-index: 0 on the text track container.

  • WebCore.xcodeproj/project.pbxproj:

TextTrackRepresentationiOS.h/mm have been renamed to TextTrackRepresentationCocoa.h/mm.

  • platform/graphics/TextTrackRepresentation.cpp:
  • platform/graphics/cocoa/TextTrackRepresentationCocoa.h: Renamed from Source/WebCore/platform/graphics/ios/TextTrackRepresentationIOS.h.
  • platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: Renamed from Source/WebCore/platform/graphics/ios/TextTrackRepresentationIOS.mm.

(-[WebCoreTextTrackRepresentationCocoaHelper initWithParent:]):
(-[WebCoreTextTrackRepresentationCocoaHelper dealloc]):
(-[WebCoreTextTrackRepresentationCocoaHelper setParent:]):
(-[WebCoreTextTrackRepresentationCocoaHelper parent]):
(-[WebCoreTextTrackRepresentationCocoaHelper observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreTextTrackRepresentationCocoaHelper actionForLayer:forKey:]):
(TextTrackRepresentation::create):
(TextTrackRepresentationCocoa::TextTrackRepresentationCocoa):
(TextTrackRepresentationCocoa::~TextTrackRepresentationCocoa):
(TextTrackRepresentationCocoa::update):
(TextTrackRepresentationCocoa::setContentScale):
(TextTrackRepresentationCocoa::bounds):

LayoutTests:

  • platform/mac/TestExpectations:

Skip some tests with assertions after changes in MediaControlsApple.css.

  • platform/mac/media/media-document-audio-repaint-expected.txt:
  • platform/mac/media/video-zoom-controls-expected.txt:

Rebaseline some tests after changes in MediaControlsApple.css.

12:57 PM Changeset in webkit [199173] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Improved drop down menu with translate; cleaned up unnecessary whitespace.
​https://bugs.webkit.org/show_bug.cgi?id=156342

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/style.css:

(p > a[name]::before):
(.has-post-thumbnail .background-image):
(.table-of-contents):
(header .menu-item-has-children .label-toggle::after):
(.sub-menu-layer):
(.sub-menu-layer:after, .sub-menu-layer:before):
(.sub-menu-layer .menu-item):
(.menu > .menu-item > .menu-toggle:checked + .sub-menu):
(@media only screen and (max-width: 920px)):
(header .sub-menu-layer):
(@media only screen and (max-width: 415px)):
(@media only screen and (max-width: 1180px)): Deleted.
(@media only screen and (max-width: 1000px)): Deleted.
(@media only screen and (max-width: 690px)): Deleted.
(@media only screen and (max-width: 600px)): Deleted.
(@media only screen and (max-height: 415px)): Deleted.
(@media only screen and (max-width: 320px)): Deleted.

12:52 PM Changeset in webkit [199172] by dbates@webkit.org
  • 1 edit
    51 deletes in trunk/LayoutTests

CSP: Remove tests for unimplemented directive referrer
​https://bugs.webkit.org/show_bug.cgi?id=156353

Reviewed by Andy Estes.

The Content Security Policy directive referrer was removed from the Content Security Policy Level 2 spec.,
<​https://w3c.github.io/webappsec-csp/2/> (Editor's Draft, 29 August 2015). It was never implemented.
The functionality provided by this directive has been incorporated into its own meta tag and is covered
by the Referrer Policy spec., <​https://w3c.github.io/webappsec-referrer-policy/>.

  • http/tests/security/contentSecurityPolicy/1.1/referrer-always-http-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-always-http-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-always-http-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-always-http-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-always-https-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-always-https-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-always-https-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-always-https-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-default-http-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-default-http-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-default-http-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-default-http-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-default-https-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-default-https-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-default-https-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-default-https-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-empty-http-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-empty-http-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-empty-http-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-empty-http-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-empty-https-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-empty-https-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-empty-https-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-empty-https-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-http-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-http-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-http-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-http-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-https-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-https-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-https-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-https-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-never-http-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-never-http-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-never-http-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-never-http-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-never-https-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-never-https-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-never-https-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-never-https-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-origin-http-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-origin-http-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-origin-http-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-origin-http-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-origin-https-http-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-origin-https-http.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-origin-https-https-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/referrer-origin-https-https.html: Removed.
  • http/tests/security/contentSecurityPolicy/resources/referrer-test-endpoint.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/referrer-test.js: Removed.
  • http/tests/security/contentSecurityPolicy/resources/referrer-test.php: Removed.
12:47 PM Changeset in webkit [199171] by Joseph Pecoraro
  • 2 edits in trunk/LayoutTests

Unreviewed follow-up fix to r199168. Add missing newline in expected output.

  • inspector/codemirror/resources/prettyprinting/javascript-tests/single-statement-blocks-expected.js:
12:38 PM Changeset in webkit [199170] by keith_miller@apple.com
  • 40 edits
    2 copies
    1 add in trunk/Source/JavaScriptCore

We should support the ability to do a non-effectful getById
​https://bugs.webkit.org/show_bug.cgi?id=156116

Reviewed by Benjamin Poulain.

Currently, there is no way in JS to do a non-effectful getById. A non-effectful getById is
useful because it enables us to take different code paths based on values that we would
otherwise not be able to have knowledge of. This patch adds this new feature called
try_get_by_id that will attempt to do as much of a get_by_id as possible without performing
an effectful behavior. Thus, try_get_by_id will return the value if the slot is a value, the
GetterSetter object if the slot is a normal accessor (not a CustomGetterSetter) and
undefined if the slot is unset. If the slot is proxied or any other cases then the result
is null. In theory, if we ever wanted to check for null we could add a sentinal object to
the global object that indicates we could not get the result.

In order to implement this feature we add a new enum GetByIdKind that indicates what to do
for accessor properties in PolymorphicAccess. If the GetByIdKind is pure then we treat the
get_by_id the same way we would for load and return the value at the appropriate offset.
Additionally, in order to make sure the we can properly compare the GetterSetter object
with === GetterSetters are now JSObjects. This comes at the cost of eight extra bytes on the
GetterSetter object but it vastly simplifies the patch. Additionally, the extra bytes are
likely to have little to no impact on memory usage as normal accessors are generally rare.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/BuiltinExecutableCreator.cpp: Added.

(JSC::createBuiltinExecutable):

  • builtins/BuiltinExecutableCreator.h: Copied from Source/JavaScriptCore/builtins/BuiltinExecutables.h.
  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createDefaultConstructor):
(JSC::BuiltinExecutables::createBuiltinExecutable):
(JSC::createBuiltinExecutable):
(JSC::BuiltinExecutables::createExecutable):
(JSC::createExecutableInternal): Deleted.

  • builtins/BuiltinExecutables.h:
  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::tryGet):
(JSC::AccessCase::generate):
(WTF::printInternal):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessCase::isGet): Deleted.
(JSC::AccessCase::isPut): Deleted.
(JSC::AccessCase::isIn): Deleted.

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitTryGetById):

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

(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetById):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::getById):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITGetByIdGenerator::JITGetByIdGenerator):

  • jit/JITInlineCacheGenerator.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id):

  • jit/Repatch.cpp:

(JSC::repatchByIdSelfAccess):
(JSC::appropriateOptimizingGetByIdFunction):
(JSC::appropriateGenericGetByIdFunction):
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::resetGetByID):

  • jit/Repatch.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionGetGetterSetter):
(functionCreateBuiltin):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • runtime/GetterSetter.cpp:
  • runtime/GetterSetter.h:
  • runtime/JSType.h:
  • runtime/PropertySlot.cpp:

(JSC::PropertySlot::getPureResult):

  • runtime/PropertySlot.h:
  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::getOwnPropertySlotCommon):

  • tests/stress/try-get-by-id.js: Added.

(tryGetByIdText):
(getCaller.obj.1.throw.new.Error.let.func):
(getCaller.obj.1.throw.new.Error):
(throw.new.Error.get let):
(throw.new.Error.):
(throw.new.Error.let.get createBuiltin):
(get let):
(let.get createBuiltin):
(let.func):
(get let.func):
(get throw):

12:29 PM Changeset in webkit [199169] by Joseph Pecoraro
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Inspector hangs when trying to view a large XHR resource
​https://bugs.webkit.org/show_bug.cgi?id=144107
<rdar://problem/20669463>

Reviewed by NOBODY (OOPS!).

Previously auto formatting (initially pretty print source code) in TextEditor
was done synchronously in this order:

(1) revealing the Editor as soon as we have content
(2) set the CodeMirror value
(3) pretty print with the CodeMirror editor
(4) set the CodeMirror value

=> Layout

At the end, CodeMirror would layout once with the new content. This approach
performs very poorly when step (3) is an asynchronous action, because it would
mean CodeMirror would layout for both (2) and at the end (4) and the layout
itself can be very costly if the content is minified and so has very long
lines at the top of the file that need to be syntax highlighted and visible
since we do not wrap.

This patch changes the order of operations to benefit asynchronous formatting.
When SourceCodeTextEditor determines that it can autoformat it:

(1) set the CodeMirror value
(2) pretty print to source text
(3) reveal the Editor when pretty printing is done
(4) set the CodeMirror value

=> Layout

This maintains the fact that to undo pretty printing we can just "undo" the
editor to get the original text. This also means we only do a single
CodeMirror layout, with the pretty printed and therefore more manageable
source text for highlighting. It also means we continue to show a loading
indicator in the editor while we are pretty printing. If this is truely
done asynchronously, which is the case for JavaScript with FormatterWorker,
then the loading indicator will animate smoothly.

This sequence also works with the traditional synchronous formatters,
which we still have for CSS.

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView.contentViewForRepresentedObject):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
BreakpointTreeElements can now be restored and reselected when its
source code is null. Avoid deleting the pending cookie data if a
ContentView was not shown for the resource. When the Breakpoint
and SourceCode get hooked up, this code will run again and work.

  • UserInterface/Views/ScriptContentView.js:

(WebInspector.ScriptContentView.prototype._togglePrettyPrint):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView.prototype._togglePrettyPrint):

  • UserInterface/Views/TextContentView.js:

(WebInspector.TextContentView.prototype._togglePrettyPrint):
New API for toggling formatting, now that it is an async operation.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
(WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
(WebInspector.SourceCodeTextEditor.prototype._proceedPopulateWithContent):
(WebInspector.SourceCodeTextEditor.prototype._prepareEditorForInitialContent):
(WebInspector.SourceCodeTextEditor.prototype._populateWithInlineScriptContent.scriptContentAvailable):
(WebInspector.SourceCodeTextEditor.prototype._populateWithInlineScriptContent):
(WebInspector.SourceCodeTextEditor.prototype._populateWithScriptContent):
(WebInspector.SourceCodeTextEditor.prototype.textEditorUpdatedFormatting):
(WebInspector.SourceCodeTextEditor.prototype._contentWillPopulate): Deleted.
Move auto formatting logic into SourceCodeTextEditor, because it
determines if content should be auto formatted, and it loads the
initial content so it can determine when to show the editor for
the first time.

When we get the initial content and determine we have to autoformat,
setup the TextEditor, but don't proceed with WillPopulate/DidPopulate
until after we have formatted text.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor):
(WebInspector.TextEditor.set string.update):
(WebInspector.TextEditor.prototype.set string):
(WebInspector.TextEditor.prototype.setFormatted):
(WebInspector.TextEditor.prototype.hasFormatter):
(WebInspector.TextEditor.prototype._format):
(WebInspector.TextEditor.prototype.prettyPrint):
(WebInspector.TextEditor.prototype._canUseFormatterWorker):
(WebInspector.TextEditor.prototype._startWorkerPrettyPrint):
(WebInspector.TextEditor.prototype._startCodeMirrorPrettyPrint):
(WebInspector.TextEditor.prototype._finishPrettyPrint):
(WebInspector.TextEditor.prototype._undoFormatting):
(WebInspector.TextEditor.prototype._updateAfterFormatting):
Break up the synchronous pretty printing code into multiple steps.
One path can be asynchronous formatting via FormatterWorker, another
path may be synchronous formatting using the CodeMirror formatters.

(WebInspector.TextEditor.prototype.set formatted): Deleted.
Remove the synchronous set formatted setter. Replace with setFormatted().

(WebInspector.TextEditor.prototype.set autoFormat): Deleted.
Remove the TextEditor's autoformat. Since formatting can be async, having
the TextEditor showing and asynchronously format its initial contents is
a recipe for poor performance causing multiple layouts of different content.
Instead, autoformatting is handled by SourceCodeTextEditor, and TextEditor
can then be shown when it has the right data.

12:29 PM Changeset in webkit [199168] by Joseph Pecoraro
  • 12 edits
    1 copy
    2 moves
    64 adds in trunk

Web Inspector: Improve JavaScript pretty printing
​https://bugs.webkit.org/show_bug.cgi?id=156178
<rdar://problem/25535719>

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Add a new EsprimaFormatter which pretty prints JavaScript source text
using the Esprima AST and Tokens. Currently we use CodeMirror's
tokenizer for pretty printing. By moving to Esprima for pretty
printing we get a few advantages: (1) can be used within a Worker
as there are no dependencies on DOM objects, (2) a full featured AST
gives more context to handling individual tokens. One disadvantage
is that Esprima requires valid input, so scripts with syntax errors
will not work.

EsprimaFormatter works by:

  • Getting the Esprima AST and token stream.
  • Walk all AST nodes:
    • when entering an AST node, handle any tokens before the start of this node
    • when leaving an AST node, handle any tokens that were inside the node
  • Whenever we handle a new node or token check if we should preserve any newlines or comments that do not show up in the AST or token stream.

This allows us to handle any token based on its context. Currently the
formatter prefers to operate on tokens based on their context. So the
formatter has a case for each AST node type and handles the tokens
within that AST node. A small exception is made to special case the
handling of semicolons.

  • Scripts/copy-user-interface-resources-dryrun.rb:

Add a generic check for -h, -help, --help to print usage.

  • Tools/Formatting/EsprimaFormatterDebug.js: Added.

(EsprimaFormatterDebug):
(EsprimaFormatterDebug.prototype.get debugText):
(EsprimaFormatterDebug.prototype._pad):
(EsprimaFormatterDebug.prototype._debugHeader):
(EsprimaFormatterDebug.prototype._debugFooter):
(EsprimaFormatterDebug.prototype._debug):
(EsprimaFormatterDebug.prototype._debugComments):
(EsprimaFormatterDebug.prototype._debugAfterProgramNode):
(EsprimaFormatterDebug.prototype._before):
(EsprimaFormatterDebug.prototype._after):

  • Tools/Formatting/codemirror-additions.css: Copied from Source/WebInspectorUI/Tools/PrettyPrinting/codemirror-additions.css.
  • Tools/Formatting/index.html: Added.
  • Tools/PrettyPrinting/codemirror-additions.css:

(pre): Deleted.
(a.download): Deleted.

  • Tools/PrettyPrinting/index.html:
  • Tools/PrettyPrinting/populate/jquery.min.js: Removed.

Add a Formatter tool that is similiar to the PrettyPrinting tool but
outputs debug information for Esprima tokens. This is useful for
iterating on tests, performance measurements, and general debugging
of token stream for any input.

  • UserInterface/Controllers/FormatterSourceMap.js:

(WebInspector.FormatterSourceMap.fromSourceMapData):
(WebInspector.FormatterSourceMap.fromBuilder): Deleted.
Switch to constructing with a common data objects, instead of a Builder.

  • UserInterface/Main.html:
  • UserInterface/Test.html:

New files and moved files.

  • UserInterface/Proxies/FormatterWorkerProxy.js: Added.

(WebInspector.FormatterWorkerProxy):
(WebInspector.FormatterWorkerProxy.singleton):
(WebInspector.FormatterWorkerProxy.canFormat):
(WebInspector.FormatterWorkerProxy.prototype.formatJavaScript):
(WebInspector.FormatterWorkerProxy.prototype.performAction):
(WebInspector.FormatterWorkerProxy.prototype._postMessage):
(WebInspector.FormatterWorkerProxy.prototype._handleMessage):
Main world object which provides a static formatJavaScript action.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype.prettyPrint.prettyPrintAndUpdateEditor):
(WebInspector.TextEditor.prototype.prettyPrint):

  • UserInterface/Workers/Formatter/FormatterContentBuilder.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/FormatterContentBuilder.js.

(FormatterContentBuilder):
Simplify construction of a Builder. The constructor objects were always
the same and often unnecessary. Also move out of the WebInspector
namespace signifying it can be used within a Worker.

(FormatterContentBuilder.prototype.get originalContent): Deleted.
(FormatterContentBuilder.prototype.get formattedContent): Deleted.
(FormatterContentBuilder.prototype.get sourceMapData): Added.
Simplify getting all the data needed for SourceMaps.

(FormatterContentBuilder.prototype.setOriginalLineEndings):
A client may wish to pre-fill line endings instead of filling
while building.

(FormatterContentBuilder.prototype.appendNewline):
Auto-clear trailing whitespace on the previous line.

  • UserInterface/Workers/Formatter/ESTreeWalker.js: Added.

(ESTreeWalker):
(ESTreeWalker.prototype.walk):
(ESTreeWalker.prototype._walk):
(ESTreeWalker.prototype._walkArray):
(ESTreeWalker.prototype._walkChildren):
Walk AST nodes in an ESTree format. Due to the spec's incompleteness
this is essentially Esprima's ESTree.

  • UserInterface/Workers/Formatter/EsprimaFormatter.js: Added.

(EsprimaFormatter):
(EsprimaFormatter.isWhitespace):
(EsprimaFormatter.prototype.get formattedText):
(EsprimaFormatter.prototype.get sourceMapData):
(EsprimaFormatter.prototype._insertNewlinesBeforeToken):
(EsprimaFormatter.prototype._insertComment):
(EsprimaFormatter.prototype._insertSameLineTrailingComments):
(EsprimaFormatter.prototype._insertCommentsAndNewlines):
(EsprimaFormatter.prototype._before):
(EsprimaFormatter.prototype._after):
(EsprimaFormatter.prototype._isInForHeader):
(EsprimaFormatter.prototype._isRangeWhitespace):
(EsprimaFormatter.prototype._handleTokenAtNode):
(EsprimaFormatter.prototype._exitNode):
(EsprimaFormatter.prototype._afterProgram):
Pretty print source text.

  • UserInterface/Workers/Formatter/FormatterUtilities.js: Added.

(Array.prototype.lastValue):
(String.prototype.lineEndings):
(isECMAScriptWhitespace):
(isECMAScriptLineTerminator):
Helpers used by the classes in the Worker code.

  • UserInterface/Workers/Formatter/FormatterWorker.js: Added.

(FormatterWorker):
(FormatterWorker.prototype.formatJavaScript):
(FormatterWorker.prototype._handleMessage):
Handle the formatJavaScript action.

LayoutTests:

Expand the JavaScript formatting tests.

  • inspector/codemirror/resources/prettyprinting/javascript-tests/single-statement-blocks-expected.js:

Update output now that the builder removes extra trailing whitespace automatically.

  • inspector/codemirror/resources/prettyprinting/utilities.js:

Update due to simplified construction.

  • inspector/formatting/formatting-javascript-expected.txt: Added.
  • inspector/formatting/formatting-javascript.html: Added.
  • inspector/formatting/resources/javascript-tests/arrow-functions-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/arrow-functions.js: Added.
  • inspector/formatting/resources/javascript-tests/classes-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/classes.js: Added.
  • inspector/formatting/resources/javascript-tests/comments-and-preserve-newlines-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/comments-and-preserve-newlines.js: Added.
  • inspector/formatting/resources/javascript-tests/comments-only-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/comments-only.js: Added.
  • inspector/formatting/resources/javascript-tests/do-while-statement-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/do-while-statement.js: Added.
  • inspector/formatting/resources/javascript-tests/for-statements-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/for-statements.js: Added.
  • inspector/formatting/resources/javascript-tests/functions-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/functions.js: Added.
  • inspector/formatting/resources/javascript-tests/generators-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/generators.js: Added.
  • inspector/formatting/resources/javascript-tests/if-statement-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/if-statement.js: Added.
  • inspector/formatting/resources/javascript-tests/label-break-continue-block-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/label-break-continue-block.js: Added.
  • inspector/formatting/resources/javascript-tests/logic-expressions-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/logic-expressions.js: Added.
  • inspector/formatting/resources/javascript-tests/new-expression-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/new-expression.js: Added.
  • inspector/formatting/resources/javascript-tests/object-array-literal-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/object-array-literal.js: Added.
  • inspector/formatting/resources/javascript-tests/return-statement-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/return-statement.js: Added.
  • inspector/formatting/resources/javascript-tests/sample-jquery-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/sample-jquery.js: Added.
  • inspector/formatting/resources/javascript-tests/sample-normal-utilities-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/sample-normal-utilities.js: Added.
  • inspector/formatting/resources/javascript-tests/sample-webinspector-object-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/sample-webinspector-object.js: Added.
  • inspector/formatting/resources/javascript-tests/switch-case-default-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/switch-case-default.js: Added.
  • inspector/formatting/resources/javascript-tests/ternary-expressions-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/ternary-expressions.js: Added.
  • inspector/formatting/resources/javascript-tests/throw-statement-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/throw-statement.js: Added.
  • inspector/formatting/resources/javascript-tests/try-catch-finally-statements-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/try-catch-finally-statements.js: Added.
  • inspector/formatting/resources/javascript-tests/unary-binary-expressions-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/unary-binary-expressions.js: Added.
  • inspector/formatting/resources/javascript-tests/variable-declaration-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/variable-declaration.js: Added.
  • inspector/formatting/resources/javascript-tests/while-statement-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/while-statement.js: Added.
  • inspector/formatting/resources/javascript-tests/with-statement-expected.js: Added.
  • inspector/formatting/resources/javascript-tests/with-statement.js: Added.
  • inspector/formatting/resources/utilities.js: Added.

Expanded test coverage for the new formatter.

12:00 PM Changeset in webkit [199167] by BJ Burg
  • 23 edits in trunk/Source

CookieJar should support adding synthetic cookies for developer tools
​https://bugs.webkit.org/show_bug.cgi?id=156091
<rdar://problem/25581340>

Reviewed by Timothy Hatcher.

Source/WebCore:

This patch adds an API that can set an arbitrary cookie in cookie storage
in order to support developer tools and automated testing. It delegates storing
the cookie to a platform implementation.

No new tests because the code isn't used by any clients yet.

  • loader/CookieJar.cpp:

(WebCore::addCookie): Added.

  • loader/CookieJar.h:
  • platform/Cookie.h:

Remove an outdated comment. This struct is used in many places.

  • platform/CookiesStrategy.h: Add new method.
  • platform/network/PlatformCookieJar.h: Add new method.
  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::addCookie): Add a stub.

  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::addCookie): Add a stub.

  • platform/network/mac/CookieJarMac.mm:

(WebCore::addCookie): Add an implementation that turns the WebCore::Cookie into
an NSHTTPCookie and converts it again to CFHTTPCookie if necessary.

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::addCookie): Add a stub.

  • platform/spi/cf/CFNetworkSPI.h:

Add -[NSHTTPCookie _CFHTTPCookie] SPI.

Source/WebKit/mac:

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::addCookie):
Add new method override.

Source/WebKit/win:

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.cpp:

Add new method override.

Source/WebKit2:

Plumb the new method through the strategy and out to the network process.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::addCookie):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::addCookie):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
11:38 AM Changeset in webkit [199166] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Rationalize the makeSpaceForCCall stuff
​https://bugs.webkit.org/show_bug.cgi?id=156352

Reviewed by Mark Lam.

I want to add more code to PolymorphicAccess that makes C calls, so that I can finally fix
​https://bugs.webkit.org/show_bug.cgi?id=130914 (allow transition caches to handle indexing
headers).

When trying to understand what it takes to make a C call, I came across code that was making
room on the stack for spilled arguments. This logic was guarded with some complicated
condition. At first, I tried to just refactor the code so that the same ugly condition
wouldn't have to be copy-pasted everywhere that we made C calls. But then I started thinking
about the condition, and realized that it was probably wrong: if the outer PolymorphicAccess
harness decides to reuse a register for the scratchGPR then the top of the stack will store
the old value of scratchGPR, but the condition wouldn't necessarily trigger. So if the call
then overwrote something on the stack, we'd have a bad time.

Making room on the stack for a call is a cheap operation. It's orders of magnitude cheaper
than the rest of the call. Therefore, I think that it's best to just unconditionally make
room on the stack.

This patch makes us do just that. I also made the relevant helpers not inline, because I
think that we have too many inline methods in our assemblers. Now it's much easier to make
C calls from PolymorphicAccess because you just call the AssemblyHelper methods for making
space. There are no special conditions or anything like that.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generate):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadStructure):
(JSC::AssemblyHelpers::makeSpaceOnStackForCCall):
(JSC::AssemblyHelpers::reclaimSpaceOnStackForCCall):
(JSC::emitRandomThunkImpl):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::makeSpaceOnStackForCCall): Deleted.
(JSC::AssemblyHelpers::reclaimSpaceOnStackForCCall): Deleted.

11:22 AM Changeset in webkit [199165] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/autoincrement-abort-private.html as flaky on Macs
​https://bugs.webkit.org/show_bug.cgi?id=156351

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:06 AM Changeset in webkit [199164] by commit-queue@webkit.org
  • 42 edits
    5 deletes in trunk

Unreviewed, rolling out r199128 and r199141.
​https://bugs.webkit.org/show_bug.cgi?id=156348

Causes crashes on multiple webpages (Requested by keith_mi_ on
#webkit).

Reverted changesets:

"[ES6] Add support for Symbol.isConcatSpreadable."
​https://bugs.webkit.org/show_bug.cgi?id=155351
​http://trac.webkit.org/changeset/199128

"Unreviewed, uncomment accidentally commented line in test."
​http://trac.webkit.org/changeset/199141

11:03 AM Changeset in webkit [199163] by dbates@webkit.org
  • 5 edits
    8 adds in trunk

CSP: Should only honor CSP policy delivered in meta tag that is a descendent of <head>
​https://bugs.webkit.org/show_bug.cgi?id=59858
<rdar://problem/25603538>

Reviewed by Brent Fulgham.

Source/WebCore:

Ignore the Content Security Policy meta tag if it is not a descendent of <head> as per
section HTML meta Element of the Content Security Policy Level 2 spec., <​https://w3c.github.io/webappsec-csp/2/>
(Editor's Draft, 29 August 2015).

Tests: http/tests/security/contentSecurityPolicy/meta-tag-ignored-if-not-in-head.html

http/tests/security/contentSecurityPolicy/meta-tag-ignored-if-not-in-head2.html
http/tests/security/contentSecurityPolicy/report-only-meta-tag-ignored-if-not-in-head.html
http/tests/security/contentSecurityPolicy/report-only-meta-tag-ignored-if-not-in-head2.html

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Modified to take a boolean argument whether the http-equiv
meta tag is a descendent of <head> and to parse the value of a Content Security Policy http-equiv
only if the http-equiv meta tag is a descendent of <head>.

  • dom/Document.h: Add parameter isInDocument to processHttpEquiv(). Remove javadoc-style parameters

from processHttpEquiv() comment as we do not document parameters for non-API functions using such style.
Also write the comment for processHttpEquiv() using C++ style comments instead of a C-style comment.

  • html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::process): Pass whether this element is a descendent of <head>. Additionally
update stale comment and move it closer to the code it refers to.

LayoutTests:

Add tests to ensure that we ignore the meta tags for Content-Security-Policy, Content-Security-Policy-Report-Only,
X-WebKit-CSP, and X-WebKit-CSP-Report-Only if it is not a descendent of <head>.

  • http/tests/security/contentSecurityPolicy/meta-tag-ignored-if-not-in-head-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/meta-tag-ignored-if-not-in-head.html: Added.
  • http/tests/security/contentSecurityPolicy/meta-tag-ignored-if-not-in-head2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/meta-tag-ignored-if-not-in-head2.html: Added.
  • http/tests/security/contentSecurityPolicy/report-only-meta-tag-ignored-if-not-in-head-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-only-meta-tag-ignored-if-not-in-head.html: Added.
  • http/tests/security/contentSecurityPolicy/report-only-meta-tag-ignored-if-not-in-head2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-only-meta-tag-ignored-if-not-in-head2.html: Added.
10:59 AM Changeset in webkit [199162] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Rationalize the handling of PutById transitions a bit
​https://bugs.webkit.org/show_bug.cgi?id=156330

Reviewed by Mark Lam.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generate): Get rid of the specialized slow calls. We can just use the failAndIgnore jump target. We just need to make sure that we don't make observable effects until we're done with all of the fast path checks.

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::addAccessCase): MadeNoChanges indicates that we should keep trying to repatch. Currently PutById transitions might trigger the case that addAccessCase() sees null, if the transition involves an indexing header. Doing repatching in that case is probably not good. But, we should just fix this the right way eventually.

10:40 AM Changeset in webkit [199161] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Output WebCore.pdb to the same location as WebCore.lib
​https://bugs.webkit.org/show_bug.cgi?id=156256
<rdar://problem/19416363>

Reviewed by Alex Christensen.

Add a rule to WebCore's CMake generator to tell Visual Studio to output
the PDB file for the WebCore.lib in the same location as the resulting
library, rather than in the build intermediary location).

  • CMakeLists.txt:
10:31 AM Changeset in webkit [199160] by peavo@outlook.com
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Fix for JSC stress test failures.
​https://bugs.webkit.org/show_bug.cgi?id=156343

Reviewed by Filip Pizlo.

We need to make it clear to MSVC that the method loadPtr(ImplicitAddress address, RegisterID dest)
should be used, and not loadPtr(const void* address, RegisterID dest).

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::setupShadowChickenPacket):

10:12 AM Changeset in webkit [199159] by weinig@apple.com
  • 9 edits in trunk

window.Crypto is missing
<rdar://problem/25584034>
​https://bugs.webkit.org/show_bug.cgi?id=156307

Reviewed by Joseph Pecoraro.

Source/WebCore:

Expose the Crypto constructor on the window object.

  • page/Crypto.idl:

LayoutTests:

  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:

Update for the new Crypto constructor.

9:37 AM Changeset in webkit [199158] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[CMake][Win] Generating autoversion.h of WebKitGUID is triggered again and again
​https://bugs.webkit.org/show_bug.cgi?id=156332

Patch by Fujii Hironori <​Hironori.Fujii@jp.sony.com> on 2016-04-07
Reviewed by Brent Fulgham.

  • PlatformWin.cmake:

Correct the output path of autoversion.h.

9:27 AM Changeset in webkit [199157] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[CMake][Win] WEBKIT_WRAP_SOURCELIST is not applied in WebCore project
​https://bugs.webkit.org/show_bug.cgi?id=156336

Patch by Fujii Hironori <​Hironori.Fujii@jp.sony.com> on 2016-04-07
Reviewed by Csaba Osztrogonác.

  • CMakeLists.txt: Do WEBKIT_WRAP_SOURCELIST for WebCore_SOURCES.
7:55 AM Changeset in webkit [199156] by Alan Bujtas
  • 3 edits
    2 adds in trunk

REGRESSION (197987): Ingredient lists on smittenkitchen.com are full justified instead of left justified.
​https://bugs.webkit.org/show_bug.cgi?id=156326
<rdar://problem/25519393>

Reviewed by Antti Koivisto.

According to the spec (​https://drafts.csswg.org/css-text-3/#text-align-property)
unless otherwise specified by text-align-last, the last line before
a forced break or the end of the block is start-aligned.

In this patch we check if a forced break is present and we apply text alignment accordingly.

Test: fast/css3-text/css3-text-justify/text-justify-last-line-simple-line-layout.html

Source/WebCore:

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::LineState::lastFragment): Make it optional so that we don't just check against a default fragment.
(WebCore::SimpleLineLayout::createLineRuns):
(WebCore::SimpleLineLayout::justifyRuns): Do not compute first run index on the current line twice.
(WebCore::SimpleLineLayout::textAlignForLine):
(WebCore::SimpleLineLayout::closeLineEndingAndAdjustRuns):

LayoutTests:

  • fast/css3-text/css3-text-justify/text-justify-last-line-simple-line-layout-expected.html: Added.
  • fast/css3-text/css3-text-justify/text-justify-last-line-simple-line-layout.html: Added.
7:22 AM Changeset in webkit [199155] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

FrameView::qualifiesAsVisuallyNonEmpty() returns false when loading a Google search results page before search results are loaded, even though the header is visible
​https://bugs.webkit.org/show_bug.cgi?id=156339
<rdar://problem/24491381>

Reviewed by Andreas Kling.

Jeff's testing indicates lowering the document height threshold improves things visually during page loading.

  • page/FrameView.cpp:

(WebCore::FrameView::qualifiesAsVisuallyNonEmpty):

Lower document height threshold to from 200 to 48 pixels.

3:29 AM Changeset in webkit [199154] by Antti Koivisto
  • 18 edits in trunk

Shadow DOM: Implement display: contents for slots
​https://bugs.webkit.org/show_bug.cgi?id=149439
<rdar://problem/22731922>

Reviewed by Ryosuke Niwa.

Source/WebCore:

This patch adds support for value 'contents' of the 'display' property for <slot> elements only. The value is ignored
for other elements for now. With this display value the element does not generate a box for itself but its descendants
generate them normally.

Slots already have implicit "display: contents". With this patch the value comes from the user agent stylesheet and can
be overriden by the author.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:

Suport parsing display: contents.

  • css/StyleResolver.cpp:

(WebCore::equivalentBlockDisplay):
(WebCore::StyleResolver::adjustRenderStyle):

Disallow for non-slots for now.

  • css/html.css:

(slot):

Add "slot { display: contents }" to the UA sheet.

  • dom/Element.cpp:

(WebCore::Element::resolveStyle):
(WebCore::Element::hasDisplayContents):
(WebCore::Element::setHasDisplayContents):

Add a rare data bit for elements with display:contents (as we don't save the RenderStyle for them).

(WebCore::Element::rendererIsNeeded):

Don't need renderer for display:contents.

(WebCore::Element::createElementRenderer):

  • dom/Element.h:

(WebCore::Element::isVisibleInViewportChanged):

  • dom/ElementAndTextDescendantIterator.h:

(WebCore::ElementAndTextDescendantIterator::operator!):
(WebCore::ElementAndTextDescendantIterator::operator bool):
(WebCore::ElementAndTextDescendantIterator::ElementAndTextDescendantIterator):
(WebCore::ElementAndTextDescendantIterator::operator==):
(WebCore::ElementAndTextDescendantIterator::operator!=):

Support initializing ElementAndTextDescendantIterator with root==current so that m_current is not nulled.
This is needed for ComposedTreeIterator to be initialized correctly when root is a slot and the current node
is a slotted node. The case happens in RenderTreePosition::previousSiblingRenderer when slot display is overriden
to something else than 'contents'.

  • dom/ElementRareData.h:

(WebCore::ElementRareData::hasDisplayContents):
(WebCore::ElementRareData::setHasDisplayContents):
(WebCore::ElementRareData::ElementRareData):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::createFor):

  • rendering/style/RenderStyleConstants.h:
  • style/RenderTreePosition.cpp:

(WebCore::RenderTreePosition::nextSiblingRenderer):

Test for dynamic display:contents.

  • style/RenderTreeUpdater.cpp:

(WebCore::findRenderingRoot):
(WebCore::RenderTreeUpdater::updateRenderTree):
(WebCore::RenderTreeUpdater::updateElementRenderer):

Test for dynamic display:contents.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::affectsRenderedSubtree):

No need for special case.

(WebCore::Style::TreeResolver::resolveComposedTree):

Test for dynamic display:contents.

LayoutTests:

  • platform/mac/TestExpectations:

Enable fast/shadow-dom/css-scoping-shadow-slot-display-override.html, the test for overriding slot display value.

3:23 AM Changeset in webkit [199153] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

[css-grid] Content box incorrectly used as non-auto min-height
​https://bugs.webkit.org/show_bug.cgi?id=155946

Reviewed by Antti Koivisto.

Source/WebCore:

When computing the minimum height value of grid items with
non-auto min-height we used to return the size of the content
box meaning that borders and paddings were incorrectly
ignored.

Note that we're also ignoring margins, but as that is a
problem also for widths it'll be fixed in a follow up patch.

Test: fast/css-grid-layout/min-height-border-box.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::minSizeForChild):

LayoutTests:

  • fast/css-grid-layout/min-height-border-box-expected.txt: Added.
  • fast/css-grid-layout/min-height-border-box.html: Added.
3:21 AM Changeset in webkit [199152] by Antti Koivisto
  • 18 edits in trunk

Reverting previous due to bad LayoutTest ChangeLog.
LayoutTests:

  • platform/mac/TestExpectations:
3:11 AM Changeset in webkit [199151] by Antti Koivisto
  • 18 edits in trunk

Source/WebCore:
Shadow DOM: Implement display: contents for slots
​https://bugs.webkit.org/show_bug.cgi?id=149439
<rdar://problem/22731922>

Reviewed by Ryosuke Niwa.

This patch adds support for value 'contents' of the 'display' property for <slot> elements only. The value is ignored
for other elements for now. With this display value the element does not generate a box for itself but its descendants
generate them normally.

Slots already have implicit "display: contents". With this patch the value comes from the user agent stylesheet and can
be overriden by the author.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:

Suport parsing display: contents.

  • css/StyleResolver.cpp:

(WebCore::equivalentBlockDisplay):
(WebCore::StyleResolver::adjustRenderStyle):

Disallow for non-slots for now.

  • css/html.css:

(slot):

Add "slot { display: contents }" to the UA sheet.

  • dom/Element.cpp:

(WebCore::Element::resolveStyle):
(WebCore::Element::hasDisplayContents):
(WebCore::Element::setHasDisplayContents):

Add a rare data bit for elements with display:contents (as we don't save the RenderStyle for them).

(WebCore::Element::rendererIsNeeded):

Don't need renderer for display:contents.

(WebCore::Element::createElementRenderer):

  • dom/Element.h:

(WebCore::Element::isVisibleInViewportChanged):

  • dom/ElementAndTextDescendantIterator.h:

(WebCore::ElementAndTextDescendantIterator::operator!):
(WebCore::ElementAndTextDescendantIterator::operator bool):
(WebCore::ElementAndTextDescendantIterator::ElementAndTextDescendantIterator):
(WebCore::ElementAndTextDescendantIterator::operator==):
(WebCore::ElementAndTextDescendantIterator::operator!=):

Support initializing ElementAndTextDescendantIterator with root==current so that m_current is not nulled.
This is needed for ComposedTreeIterator to be initialized correctly when root is a slot and the current node
is a slotted node. The case happens in RenderTreePosition::previousSiblingRenderer when slot display is overriden
to something else than 'contents'.

  • dom/ElementRareData.h:

(WebCore::ElementRareData::hasDisplayContents):
(WebCore::ElementRareData::setHasDisplayContents):
(WebCore::ElementRareData::ElementRareData):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::createFor):

  • rendering/style/RenderStyleConstants.h:
  • style/RenderTreePosition.cpp:

(WebCore::RenderTreePosition::nextSiblingRenderer):

Test for dynamic display:contents.

  • style/RenderTreeUpdater.cpp:

(WebCore::findRenderingRoot):
(WebCore::RenderTreeUpdater::updateRenderTree):
(WebCore::RenderTreeUpdater::updateElementRenderer):

Test for dynamic display:contents.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::affectsRenderedSubtree):

No need for special case.

(WebCore::Style::TreeResolver::resolveComposedTree):

Test for dynamic display:contents.

LayoutTests:
REGRESSION (r188591): thingiverse.com direct messaging UI is not rendered properly
​https://bugs.webkit.org/show_bug.cgi?id=156241
<rdar://problem/25262213>

Patch by Myles C. Maxfield <​mmaxfield@apple.com> on 2016-04-06
Reviewed by Simon Fraser.

  • fast/text/zero-sized-fonts-expected.txt: Added.
  • fast/text/zero-sized-fonts.html: Added.
12:45 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)

Apr 6, 2016:

10:19 PM Changeset in webkit [199150] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r188591): thingiverse.com direct messaging UI is not rendered properly
​https://bugs.webkit.org/show_bug.cgi?id=156241
<rdar://problem/25262213>

Reviewed by Simon Fraser.

Source/WebCore:

When creating a CoreText font with a size of 0, the CoreText docs say that it will
interpret this as a missing argument, and create a font of size 12 instead. However,
this doesn't cause a problem (at least on this particular website) because we will
use CGFontGetGlyphAdvancesForStyle(), which gets scaled by the supplied font
size (which is 0). However, if you turn on text-rendering: optimizeLegibility, we
will use CTFontGetAdvancesForGlyphs() instead, which does not scale by the font size.
The solution is to detect this case, and force the advance to 0.

Test: fast/text/zero-sized-fonts.html

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformWidthForGlyph):

LayoutTests:

  • fast/text/zero-sized-fonts-expected.txt: Added.
  • fast/text/zero-sized-fonts.html: Added.
9:59 PM Changeset in webkit [199149] by mmaxfield@apple.com
  • 7 edits in trunk/Source/WebCore

Rename MidpointState to WhitespaceCollapsingState
​https://bugs.webkit.org/show_bug.cgi?id=156304

Reviewed by David Hyatt.

MidpointState has nothing to do with midpoints.

An individual midpoint is now known as a "whitespace collapsing transition."

No new tests because there is no behavior change.

  • platform/text/BidiResolver.h:

(WebCore::WhitespaceCollapsingState::reset): (See addMidpoint() below.)
Previously, we were using operator= to destroy old Iterators when their
storage inside the Vector was reused. Now that we are elliminating
m_numMidpoints, we can push destruction earlier to this reset() function.
Because the same amount of destruction happens in both cases, this doesn't
add additional work. (Vector can destroy its contents without shrinking
its storage overcommitment.)
(WebCore::WhitespaceCollapsingState::startIgnoringSpaces):
(WebCore::WhitespaceCollapsingState::stopIgnoringSpaces):
(WebCore::WhitespaceCollapsingState::ensureLineBoxInsideIgnoredSpaces):
(WebCore::WhitespaceCollapsingState::decrementTransitionAt):
(WebCore::WhitespaceCollapsingState::thresholds): Make the return value
const. The only clients of this function which needed mutation were
migrated to using decrementTransitionAt().
(WebCore::WhitespaceCollapsingState::numTransitions):
(WebCore::WhitespaceCollapsingState::currentTransition):
(WebCore::WhitespaceCollapsingState::setCurrentTransition):
(WebCore::WhitespaceCollapsingState::incrementCurrentTransition):
(WebCore::WhitespaceCollapsingState::decrementNumTransitions):
(WebCore::WhitespaceCollapsingState::betweenTransitions):
(WebCore::BidiResolverBase::whitespaceCollapsingState):
(WebCore::Subclass>::setWhitespaceCollapsingTransitionForIsolatedRun):
(WebCore::Subclass>::whitespaceCollapsingTransitionForIsolatedRun):
(WebCore::MidpointState::MidpointState): Deleted.
(WebCore::MidpointState::reset): Deleted.
(WebCore::MidpointState::startIgnoringSpaces): Deleted.
(WebCore::MidpointState::stopIgnoringSpaces): Deleted.
(WebCore::MidpointState::ensureLineBoxInsideIgnoredSpaces): Deleted.
(WebCore::MidpointState::midpoints): Deleted.
(WebCore::MidpointState::numMidpoints): Deleted.
(WebCore::MidpointState::currentMidpoint): Deleted.
(WebCore::MidpointState::setCurrentMidpoint): Deleted.
(WebCore::MidpointState::incrementCurrentMidpoint): Deleted.
(WebCore::MidpointState::decrementNumMidpoints): Deleted.
(WebCore::MidpointState::betweenMidpoints): Deleted.
(WebCore::MidpointState::addMidpoint): Deleted. This code has been around for 13
years (since r3672) where it was using QMemArray. That class doesn't have an
append() class, so it was implemented inside this function. Luckily, Vector
already overcommits its allocation, so we can elliminate m_numMidpoints entirely.
(WebCore::BidiResolverBase::midpointState): Deleted.
(WebCore::Subclass>::setMidpointForIsolatedRun): Deleted.
(WebCore::Subclass>::midpointForIsolatedRun): Deleted.

  • rendering/InlineIterator.h:

(WebCore::addPlaceholderRunForIsolatedInline):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::appendRunsForObject):
(WebCore::setUpResolverToResumeInIsolate):
(WebCore::constructBidiRunsForSegment):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::BreakingContext):
(WebCore::BreakingContext::handleBR):
(WebCore::BreakingContext::handleOutOfFlowPositioned):
(WebCore::shouldSkipWhitespaceAfterStartObject):
(WebCore::BreakingContext::handleEmptyInline):
(WebCore::BreakingContext::handleReplaced):
(WebCore::ensureCharacterGetsLineBox):
(WebCore::BreakingContext::handleText):
(WebCore::checkWhitespaceCollapsingTransitions):
(WebCore::BreakingContext::handleEndOfLine):
(WebCore::checkMidpoints): Deleted.

  • rendering/line/TrailingObjects.cpp:

(WebCore::TrailingObjects::updateWhitespaceCollapsingTransitionsForTrailingBoxes):
(WebCore::TrailingObjects::updateMidpointsForTrailingBoxes): Deleted.

  • rendering/line/TrailingObjects.h:

(WebCore::TrailingObjects::appendBoxIfNeeded):

9:33 PM Changeset in webkit [199148] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] UInt32ToNumber should be NodeMustGenerate
​https://bugs.webkit.org/show_bug.cgi?id=156329

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-06
Reviewed by Filip Pizlo.

It exits on negative numbers on the integer path.

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNodeType.h:
9:11 PM Changeset in webkit [199147] by ChangSeok Oh
  • 2 edits in trunk/Tools

Unreviewed, Update my primary email address and expertise.

  • Scripts/webkitpy/common/config/contributors.json:
8:57 PM Changeset in webkit [199146] by jonlee@apple.com
  • 3 edits in trunk/Tools

Update the Animometer patch and plan files
​https://bugs.webkit.org/show_bug.cgi?id=156263

Reviewed by Ryosuke Niwa.

Measure the latest set of tests by updating the plan revision to r199134.

  • Scripts/webkitpy/benchmark_runner/data/patches/Animometer.patch: Update to run the master suite only.
  • Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan: Update to use the release page instead

of the developer page.

8:33 PM Changeset in webkit [199145] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

2016-04-04 Geoffrey Garen <​ggaren@apple.com>

Unreviewed, rolling out r199016.
​https://bugs.webkit.org/show_bug.cgi?id=156140

"Perf bots are down, so I can't re-land this right now."

Reverted changeset:

CopiedBlock should be 16kB
​https://bugs.webkit.org/show_bug.cgi?id=156168
​http://trac.webkit.org/changeset/199016

8:17 PM Changeset in webkit [199144] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

String.prototype.match() should be calling internal function RegExpCreate.
​https://bugs.webkit.org/show_bug.cgi?id=156318

Reviewed by Filip Pizlo.

RegExpCreate is not the same as the RegExp constructor. The current implementation
invokes new @RegExp which calls the constructor. This results in failures in
es6/Proxy_internal_get_calls_String.prototype.match.js, and
es6/Proxy_internal_get_calls_String.prototype.search.js due to observable side
effects.

This patch fixes this by factoring out the part of the RegExp constructor that
makes the RegExpCreate function, and changing String's match and search to call
RegExpCreate instead in accordance with the ES6 spec.

  • builtins/StringPrototype.js:

(match):
(search):

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/RegExpConstructor.cpp:

(JSC::toFlags):
(JSC::regExpCreate):
(JSC::constructRegExp):
(JSC::esSpecRegExpCreate):
(JSC::constructWithRegExpConstructor):

  • runtime/RegExpConstructor.h:

(JSC::isRegExp):

8:06 PM WebKitGTK/2.10.x edited by jdiggs@igalia.com
Create 2.10.10 section and add accessibility crasher bug (diff)
8:03 PM WebKitGTK/2.12.x edited by jdiggs@igalia.com
(diff)
7:09 PM Changeset in webkit [199143] by Matt Baker
  • 8 edits
    5 adds in trunk

Web Inspector: Improve filtering in OpenResourceDialog
​https://bugs.webkit.org/show_bug.cgi?id=155324
<rdar://problem/25094504>

Source/WebInspectorUI:

Reviewed by Joseph Pecoraro and Timothy Hatcher.

  • UserInterface/Base/Utilities.js:

(value):
Added String methods isLowerCase, isUpperCase, removeWhitespace.

  • UserInterface/Controllers/ResourceQueryController.js: Added.

(WebInspector.ResourceQueryController):
(WebInspector.ResourceQueryController.prototype.addResource):
(WebInspector.ResourceQueryController.prototype.removeResource):
Add and remove the resources to be queried.

(WebInspector.ResourceQueryController.prototype.reset):
Reset controller state. Current just clears resources.

(WebInspector.ResourceQueryController.prototype.executeQuery):
Executes a query against the list of resources and returns a list of
QueryResult objects, with at most one result per resource, ordered by
descending rank.

The query string is stripped of whitespace characters and lowercased
before use. Prior to running the query, resources undergo a one-time
pre-processing step to locate special characters.

(WebInspector.ResourceQueryController.prototype._findQueryMatches.pushMatch):
(WebInspector.ResourceQueryController.prototype._findQueryMatches.matchNextSpecialCharacter):
(WebInspector.ResourceQueryController.prototype._findQueryMatches.backtrack):
(WebInspector.ResourceQueryController.prototype._findQueryMatches):
Returns a list of query matches for a single resource, along with metadata
which is used to rank the matches. The algorithm attempts to match the
entire query, first comparing each query character against "special" characters
in the resource (commonly used filename separators, the first character,
and camel-case word boundaries).

If there are remaining query characters after exhausting special characters,
regular characters are matched starting from the last matched special
character. Failing that, the algorithm attempts to find a match by backtracking.
To backtrack, the last match is discarded and the query position decremented.
If a special match is now the last match, matching starts again from the
next character in the filename after the match. If a normal match is now
the last match, keep discarding until a special match is found or no matches
remain. The query fails if no matches remain. For example, consider:

Query: "abcd"
Filename: "AxBcdCx"

The capital A, B, and C are all special characters, and are successfully
matched with the first three query characters. Having exhausted the special
characters the "d" at the end of the query is compared with the "x" at
the end of the filename, and fails to match. Backtracking then kicks in.
The last match, "C", is discarded and the search position in the query
decremented. The search resumes after the next to last match, "B", and now
matches the non-special characters "cd", yielding the following: "A Bcd ".

(WebInspector.ResourceQueryController.prototype._findSpecialCharacterIndices):
Pre-processing step for resources. Locates the positions of special
characters in the resource filename. Special characters are defined as:

  1. The first character
  2. Common filename separators, and the character immediately following.
  3. A capital letter that follows a lowercase character.
  • UserInterface/Models/ResourceQueryMatch.js: Added.

Helper class used internally by the controller and QueryResult classes.
(WebInspector.ResourceQueryMatch):
(WebInspector.ResourceQueryMatch.prototype.get type):
(WebInspector.ResourceQueryMatch.prototype.get index):
(WebInspector.ResourceQueryMatch.prototype.get queryIndex):

  • UserInterface/Models/ResourceQueryResult.js: Added.

Holds a resource that matched the executed query.
(WebInspector.ResourceQueryResult):
(WebInspector.ResourceQueryResult.prototype.get resource):
(WebInspector.ResourceQueryResult.prototype.get rank):
Ranking relative to other results returned by the query. Used by
the ResourceQueryController to sort results.

(WebInspector.ResourceQueryResult.prototype.get matchingTextRanges):
Get TextRanges for matching substrings in the resource display name.

(WebInspector.ResourceQueryResult.prototype._calculateRank):
Calculate the rank of the result. Matches are scored based on the type
of match (Special vs. Normal), the location of the match within the filename
(matches closer to the beginning are scored higher), and whether the match
is adjacent to the previous match.

Values assigned to each ranking criteria are somewhat arbitrary, and may
be fine-tuned over time to produce better results.

(WebInspector.ResourceQueryResult.prototype._createMatchingTextRanges):
(WebInspector.ResourceQueryResult.prototype.test_createMatchesMask):
Test API for visualizing matches. For a result returned from the query
"abce", run against a filename "abcde", the mask is "a c e".

  • UserInterface/Main.html:
  • UserInterface/Test.html:

New files.

  • UserInterface/Views/Dialog.js:

(WebInspector.Dialog.prototype.dismiss):
(WebInspector.Dialog.prototype.didDismissDialog):
Add hook for subclasses to perform actions after on dialog dismissal.

  • UserInterface/Views/OpenResourceDialog.js:

(WebInspector.OpenResourceDialog):
(WebInspector.OpenResourceDialog.prototype._populateResourceTreeOutline.createHighlightedTitleFragment):
(WebInspector.OpenResourceDialog.prototype._populateResourceTreeOutline):
Add tree elements for each QueryResult returned by the last query, creating
titles with contiguous matching query characters wrapped in highlight spans.

(WebInspector.OpenResourceDialog.prototype.didDismissDialog):
Clear resources from the ResourceQueryController.
(WebInspector.OpenResourceDialog.prototype.didPresentDialog):
Add resources to the ResourceQueryController.
(WebInspector.OpenResourceDialog.prototype._updateFilter):
Execute the filter text as a resource query.

  • UserInterface/Views/TreeOutline.css:

(.tree-outline.large .item .titles): Deleted.
Line height too small, hid the bottom border of highlighted matches in
tree element title spans. Removing the style had no negative visual impact
on the Quick Open or Timelines tree outlines (the only "large" trees).

LayoutTests:

Reviewed by Joseph Pecoraro.

Add test coverage for ResourceQueryController.

  • inspector/unit-tests/resource-query-controller-expected.txt: Added.
  • inspector/unit-tests/resource-query-controller.html: Added.
7:07 PM Changeset in webkit [199142] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebCore

Remove duplicated parsePortFromStringPosition()
​https://bugs.webkit.org/show_bug.cgi?id=156289

Reviewed by Simon Fraser.

Same parsePortFromStringPosition() functions have been defined in both URLUtils.h and HTMLAnchorElement.cpp.
Remove duplicated one in HTMLAnchorElement.cpp.

No new tests, no behavior change.

  • html/HTMLAnchorElement.cpp:

(WebCore::parsePortFromStringPosition): Deleted.

7:05 PM Changeset in webkit [199141] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, uncomment accidentally commented line in test.

  • tests/stress/array-concat-spread-object.js:
7:02 PM Changeset in webkit [199140] by fpizlo@apple.com
  • 9 edits
    2 adds in trunk/Source

JSC should have a simple way of gathering IC statistics
​https://bugs.webkit.org/show_bug.cgi?id=156317

Reviewed by Benjamin Poulain.
Source/JavaScriptCore:

This adds a cheap, runtime-enabled way of gathering statistics about why we take the slow
paths for inline caches. This is complementary to our existing bytecode profiler. Eventually
we may want to combine the two things.

This is not a slow-down on anything because we only do extra work on IC slow paths and if
it's disabled it's just a load-and-branch to skip the stats gathering code.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • jit/ICStats.cpp: Added.
  • jit/ICStats.h: Added.
  • jit/JITOperations.cpp:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::inherits):
(JSC::JSValue::classInfoOrNull):
(JSC::JSValue::toThis):

  • runtime/Options.h:

Source/WTF:


Make it easier to do relative sleeping on a condition. Previously you could do this using
std::chrono. I now believe that std::chrono is just a bad decision, and I always want to
use doubles instead. This makes it easier to do the right thing and use doubles.

  • wtf/Condition.h:

(WTF::ConditionBase::waitUntilMonotonicClockSeconds):
(WTF::ConditionBase::waitForSeconds):

6:59 PM Changeset in webkit [199139] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.27/Source/WTF

Merged r199133. rdar://problem/25587476

6:58 PM Changeset in webkit [199138] by bshafiei@apple.com
  • 6 edits in tags/Safari-602.1.27/Source

Merged r199130. rdar://problem/25587476

6:56 PM Changeset in webkit [199137] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

6:54 PM Changeset in webkit [199136] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.27

New tag.

6:50 PM Changeset in webkit [199135] by sbarati@apple.com
  • 4 edits in trunk

jsc-layout-tests.yaml/js/script-tests/regress-141098.js failing on Yosemite Debug after r198989
​https://bugs.webkit.org/show_bug.cgi?id=156187

Reviewed by Keith Miller.

Tools:

  • Scripts/run-jsc-stress-tests:

LayoutTests:

  • js/script-tests/regress-141098.js:
6:47 PM Changeset in webkit [199134] by jonlee@apple.com
  • 4 edits
    2 moves
    2 adds in trunk/PerformanceTests

Update master benchmark with SVG test
​https://bugs.webkit.org/show_bug.cgi?id=156273

Reviewed by Dean Jackson.
Provisionally reviewed by Said Abou-Hallawa.

Switch masks tests for SVG path test.

  • Animometer/resources/debug-runner/tests.js: Move mask test here.
  • Animometer/resources/runner/tests.js: Add SVG test here.
  • Animometer/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/master/particles.html.
  • Animometer/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/dom-particles.js.
  • Animometer/tests/master/resources/particles.js: Add minPosition for bounds checking. Prevents particle from being

partially obscured.

  • Animometer/tests/master/resources/svg-particles.js: Added.

(Particle): The particle is either a path object or a rect using a path as a clip. The
same path is used either way. For each particle create a linear gradient with a random
rotation.
(SVGParticlesStage): Look in #shapes to see how many different kinds of paths are available.
This makes the test more generic in case other shapes need to be tested.

  • Animometer/tests/master/svg-particles.html: Added. Have two defs, one that houses each

particle's gradient, and one that holds the shape templates.

6:46 PM Changeset in webkit [199133] by Simon Fraser
  • 2 edits in trunk/Source/WTF

Fix Windows build by converting clampToInteger() into a template that only
takes integral types.

  • wtf/MathExtras.h:

(clampToInteger):

6:45 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
6:44 PM Changeset in webkit [199132] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

32-bit JSC stress/multi-put-by-offset-multiple-transitions.js failing
​https://bugs.webkit.org/show_bug.cgi?id=156292

Reviewed by Benjamin Poulain.

Make sure that we stash the callsite index before calling operationReallocateStorageAndFinishPut.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generate):

6:42 PM Changeset in webkit [199131] by Michael Catanzaro
  • 91 edits
    2 adds in trunk/LayoutTests

[GTK] Belatedly rebaseline several test expectations after r196244

Unreviewed

  • platform/gtk/css3/unicode-bidi-isolate-basic-expected.txt:
  • platform/gtk/fast/block/positioning/auto/vertical-rl/007-expected.txt:
  • platform/gtk/fast/block/positioning/vertical-rl/fixed-positioning-expected.txt:
  • platform/gtk/fast/borders/border-antialiasing-expected.txt:
  • platform/gtk/fast/clip/001-expected.txt:
  • platform/gtk/fast/clip/013-expected.txt:
  • platform/gtk/fast/clip/014-expected.txt:
  • platform/gtk/fast/clip/016-expected.txt:
  • platform/gtk/fast/clip/outline-overflowClip-expected.txt:
  • platform/gtk/fast/css/clip-zooming-expected.txt:
  • platform/gtk/fast/forms/validation-message-appearance-expected.txt:
  • platform/gtk/fast/line-grid/line-grid-inside-columns-expected.txt:
  • platform/gtk/fast/line-grid/line-grid-into-columns-expected.txt:
  • platform/gtk/fast/lists/scrolled-marker-paint-expected.txt:
  • platform/gtk/fast/multicol/client-rects-expected.txt:
  • platform/gtk/fast/multicol/column-break-with-balancing-expected.txt:
  • platform/gtk/fast/multicol/column-rules-expected.txt:
  • platform/gtk/fast/multicol/column-rules-stacking-expected.txt:
  • platform/gtk/fast/multicol/columns-shorthand-parsing-expected.txt:
  • platform/gtk/fast/multicol/float-paginate-complex-expected.txt:
  • platform/gtk/fast/multicol/float-paginate-empty-lines-expected.txt:
  • platform/gtk/fast/multicol/float-paginate-expected.txt:
  • platform/gtk/fast/multicol/layers-in-multicol-expected.txt:
  • platform/gtk/fast/multicol/layers-split-across-columns-expected.txt:
  • platform/gtk/fast/multicol/max-height-columns-block-expected.txt:
  • platform/gtk/fast/multicol/nested-columns-expected.txt:
  • platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt:
  • platform/gtk/fast/multicol/overflow-across-columns-expected.txt:
  • platform/gtk/fast/multicol/overflow-across-columns-percent-height-expected.txt:
  • platform/gtk/fast/multicol/overflow-unsplittable-expected.txt:
  • platform/gtk/fast/multicol/paginate-block-replaced-expected.txt:
  • platform/gtk/fast/multicol/pagination/BottomToTop-bt-expected.txt:
  • platform/gtk/fast/multicol/pagination/BottomToTop-lr-expected.txt:
  • platform/gtk/fast/multicol/pagination/BottomToTop-rl-expected.txt:
  • platform/gtk/fast/multicol/pagination/BottomToTop-tb-expected.txt:
  • platform/gtk/fast/multicol/pagination/LeftToRight-bt-expected.txt:
  • platform/gtk/fast/multicol/pagination/LeftToRight-rl-expected.txt:
  • platform/gtk/fast/multicol/pagination/LeftToRight-tb-expected.txt:
  • platform/gtk/fast/multicol/pagination/RightToLeft-bt-expected.txt:
  • platform/gtk/fast/multicol/pagination/RightToLeft-lr-expected.txt:
  • platform/gtk/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt:
  • platform/gtk/fast/multicol/pagination/RightToLeft-rl-expected.txt:
  • platform/gtk/fast/multicol/pagination/RightToLeft-tb-expected.txt:
  • platform/gtk/fast/multicol/pagination/TopToBottom-bt-expected.txt:
  • platform/gtk/fast/multicol/pagination/TopToBottom-lr-expected.txt:
  • platform/gtk/fast/multicol/pagination/TopToBottom-rl-expected.txt:
  • platform/gtk/fast/multicol/positive-leading-expected.txt:
  • platform/gtk/fast/multicol/scrolling-column-rules-expected.txt:
  • platform/gtk/fast/multicol/span/anonymous-style-inheritance-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-columns-child-removal-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-nested-columns-child-expected.txt:
  • platform/gtk/fast/multicol/span/span-margin-collapsing-expected.txt:
  • platform/gtk/fast/multicol/table-vertical-align-expected.txt:
  • platform/gtk/fast/multicol/tall-image-behavior-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/column-break-with-balancing-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/column-rules-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/float-multicol-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/float-paginate-complex-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/float-paginate-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/nested-columns-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/column-rules-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/float-paginate-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/nested-columns-expected.txt:
  • platform/gtk/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
  • platform/gtk/fast/overflow/float-in-relpositioned-expected.txt:
  • platform/gtk/fast/overflow/overflow-auto-position-absolute-expected.txt:
  • platform/gtk/fast/overflow/overflow-rtl-expected.txt:
  • platform/gtk/fast/overflow/paged-x-div-expected.txt:
  • platform/gtk/fast/overflow/paged-x-div-with-column-gap-expected.txt:
  • platform/gtk/fast/overflow/paged-x-on-root-expected.txt:
  • platform/gtk/fast/overflow/paged-x-with-column-gap-expected.txt:
  • platform/gtk/fast/overflow/paged-y-div-expected.txt:
  • platform/gtk/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/gtk/fast/regions/repaint/region-painting-via-layout-expected.txt:
  • platform/gtk/fast/repaint/box-shadow-h-expected.txt:
  • platform/gtk/fast/repaint/box-shadow-v-expected.txt:
  • platform/gtk/fast/repaint/layer-outline-expected.txt:
  • platform/gtk/fast/repaint/layer-outline-horizontal-expected.txt:
  • platform/gtk/fast/table/edge-offsets-expected.txt:
  • platform/gtk/fast/transforms/overflow-with-transform-expected.txt:
  • platform/gtk/fast/transforms/rotated-transform-affects-scrolling-1-expected.txt: Added.
  • platform/gtk/fast/transforms/rotated-transform-affects-scrolling-2-expected.txt: Added.
  • platform/gtk/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
  • platform/gtk/scrollbars/scrollbars-on-positioned-content-expected.txt:
  • platform/gtk/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.txt:
  • platform/gtk/svg/custom/image-rescale-clip-expected.txt:
6:20 PM Changeset in webkit [199130] by Simon Fraser
  • 6 edits in trunk/Source

Page tiles are missing when graphics acceleration is unavailable
​https://bugs.webkit.org/show_bug.cgi?id=156325
Source/WebCore:

rdar://problem/25587476

Reviewed by Tim Horton.

When graphics acceleration is unavailable on Mac (e.g. in a VM or when running from
the recovery partition), page contents were missing. This is because
IOSurfaceGetPropertyMaximum(kIOSurfaceWidth) and IOSurfaceGetPropertyMaximum(kIOSurfaceHeight)
returned INT_MAX, causing us to compute a tile size of 0x0.

Fix by changing IOSurface::maximumSize() to report a value between 1K x 1K and 32K x 32K.

Rename kGiantTileSize to better describe its purpose.

Add correct clamping in IOSurface::maximumSize().

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::tileSize):

  • platform/graphics/ca/TileController.h:
  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::maximumSize):

Source/WTF:

Reviewed by Tim Horton.

Add clampToInteger(size_t).

  • wtf/MathExtras.h:

(clampToInteger):

6:11 PM Changeset in webkit [199129] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSC test stress/arrowfunction-lexical-bind-superproperty.js failing
​https://bugs.webkit.org/show_bug.cgi?id=156309

Reviewed by Saam Barati.

Just be honest about the fact that the ArgumentCount and Callee parts of inline callframe runtime
meta-data can be read at any time.

We only have to say this for the inline callframe forms of ArgumentCount and Callee because we don't
sink any part of the machine prologue. This change just prevents us from sinking the pseudoprologue
of inlined varargs or closure calls.

Shockingly, this is not a regression on anything.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

5:50 PM Changeset in webkit [199128] by keith_miller@apple.com
  • 42 edits
    5 adds in trunk

[ES6] Add support for Symbol.isConcatSpreadable.
​https://bugs.webkit.org/show_bug.cgi?id=155351

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch adds support for Symbol.isConcatSpreadable. In order to do so it was necessary to move the
Array.prototype.concat function to JS. A number of different optimizations were needed to make such the move to
a builtin performant. First, four new DFG intrinsics were added.

1) IsArrayObject (I would have called it IsArray but we use the same name for an IndexingType): an intrinsic of

the Array.isArray function.

2) IsJSArray: checks the first child is a JSArray object.
3) IsArrayConstructor: checks the first child is an instance of ArrayConstructor.
4) CallObjectConstructor: an intrinsic of the Object constructor.

IsActualObject, IsJSArray, and CallObjectConstructor can all be converted into constants in the abstract interpreter if
we are able to prove that the first child is an Array or for ToObject an Object.

In order to further improve the perfomance we also now cover more indexing types in our fast path memcpy
code. Before we would only memcpy Arrays if they had the same indexing type and did not have Array storage and
were not undecided. Now the memcpy code covers the following additional two cases: One array is undecided and
the other is a non-array storage and the case where one array is Int32 and the other is contiguous (we map this
into a contiguous array).

This patch also adds a new fast path for concat with more than one array argument by using memcpy to append
values onto the result array. This works roughly the same as the two array fast path using the same methodology
to decide if we can memcpy the other butterfly into the result butterfly.

Two new debugging tools are also added to the jsc cli. One is a version of the print function with a private
name so it can be used for debugging builtins. The other is dumpDataLog, which takes a JSValue and runs our
dataLog function on it.

Finally, this patch add a new constructor to JSValueRegsTemporary that allows it to reuse the the registers of a
JSValueOperand if the operand's use count is one.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ArrayPrototype.js:

(concatSlowPath):
(concat):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • 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::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileIsJSArray):
(JSC::DFG::SpeculativeJIT::compileIsArrayObject):
(JSC::DFG::SpeculativeJIT::compileIsArrayConstructor):
(JSC::DFG::SpeculativeJIT::compileCallObjectConstructor):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileIsArrayObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsJSArray):
(JSC::FTL::DFG::LowerDFGToB3::compileIsArrayConstructor):
(JSC::FTL::DFG::LowerDFGToB3::isArray):

  • jit/JITOperations.h:
  • jsc.cpp:

(WTF::RuntimeArray::createStructure):
(GlobalObject::finishCreation):
(functionDebug):
(functionDataLogValue):

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::finishCreation):
(JSC::arrayConstructorPrivateFuncIsArrayConstructor):

  • runtime/ArrayConstructor.h:

(JSC::isArrayConstructor):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):
(JSC::arrayProtoPrivateFuncIsJSArray):
(JSC::moveElements):
(JSC::arrayProtoPrivateFuncConcatMemcpy):
(JSC::arrayProtoPrivateFuncAppendMemcpy):
(JSC::arrayProtoFuncConcat): Deleted.

  • runtime/ArrayPrototype.h:

(JSC::ArrayPrototype::createStructure):

  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.h:
  • runtime/JSArray.cpp:

(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastConcatWith): Deleted.

  • runtime/JSArray.h:

(JSC::JSArray::createStructure):
(JSC::JSArray::fastConcatType): Deleted.

  • runtime/JSArrayInlines.h: Added.

(JSC::JSArray::memCopyWithIndexingType):
(JSC::JSArray::canFastCopy):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSType.h:
  • runtime/ObjectConstructor.h:

(JSC::constructObject):

  • tests/es6.yaml:
  • tests/stress/array-concat-spread-object.js: Added.

(arrayEq):

  • tests/stress/array-concat-spread-proxy-exception-check.js: Added.

(arrayEq):

  • tests/stress/array-concat-spread-proxy.js: Added.

(arrayEq):

  • tests/stress/array-concat-with-slow-indexingtypes.js: Added.

(arrayEq):

  • tests/stress/array-species-config-array-constructor.js:

Source/WebCore:

Makes runtime arrays have the new ArrayType

  • bridge/runtime_array.h:

(JSC::RuntimeArray::createStructure):

LayoutTests:

Fix tests for Symbol.isConcatSpreadable on the Symbol object.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/array-prototype-properties-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
5:40 PM Changeset in webkit [199127] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r199070.
​https://bugs.webkit.org/show_bug.cgi?id=156324

"It didn't fix the timeout" (Requested by saamyjoon on
#webkit).

Reverted changeset:

"jsc-layout-tests.yaml/js/script-tests/regress-141098.js
failing on Yosemite Debug after r198989"
​https://bugs.webkit.org/show_bug.cgi?id=156187
​http://trac.webkit.org/changeset/199070

5:14 PM Changeset in webkit [199126] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

[iOS Simulator WK1] Crash in MediaPlayer::setPrivateBrowsingMode()
​https://bugs.webkit.org/show_bug.cgi?id=155721
<rdar://problem/18590481>

Speculative fix for a crash that appears to happen when the media engine is destroyed
during a callback.

Reviewed by Dean Jackson.

No new tests, this prevents existing tests from crashing.

  • html/HTMLMediaElement.cpp:

(WebCore::actionName): Log MediaEngineUpdated.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Support MediaEngineUpdated.
(WebCore::HTMLMediaElement::pendingActionTimerFired): Ditto. Clear m_pendingActionFlags.
(WebCore::HTMLMediaElement::mediaEngineWasUpdated): New.
(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): Move guts to mediaEngineWasUpdated and

call it on a timer so we can't change the media engine in the middle of a callback from
MediaPlayer or the media engine.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElementEnums.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::~MediaPlayer): Assert if new flag m_initializingMediaEngine is set to

catch HTMLMediaElement destroying the media engine during a callback.

(WebCore::MediaPlayer::loadWithNextMediaEngine): Set/clear m_initializingMediaEngine.

  • platform/graphics/MediaPlayer.h:
5:13 PM Changeset in webkit [199125] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling in r199016.
​https://bugs.webkit.org/show_bug.cgi?id=156140

It might work this time without regression because 16kB aligned requests
now take the allocation fast path.

Restored changeset:

CopiedBlock should be 16kB
​https://bugs.webkit.org/show_bug.cgi?id=156168
​http://trac.webkit.org/changeset/199016

4:22 PM Changeset in webkit [199124] by rniwa@webkit.org
  • 1 edit in trunk/Websites/perf.webkit.org/tools/sync-buildbot.js

Add the executable bit on tools/sync-buildbot.js as supposed to be done in the previous commit

4:19 PM Changeset in webkit [199123] by rniwa@webkit.org
  • 15 edits
    5 adds in trunk/Websites/perf.webkit.org

New buildbot syncing scripts that supports multiple builders and slaves
​https://bugs.webkit.org/show_bug.cgi?id=156269

Reviewed by Chris Dumez.

Add sync-buildbot.js that supports scheduling A/B testing jobs on multiple builders and slaves.
The old python script (sync-with-buildbot.py) could only support a single builder and slave
for each platform, test pair.

The main logic is implemented in BuildbotTriggerable.syncOnce. Various helper methods are added
throughout the codebase and tests have been refactored.

BuildbotSyncer has been updated to support multiple platform, test pairs. It's now responsible
for syncing everything on each builder (on a buildbot).

Added more unit tests for BuildbotSyncer and server tests for BuildbotTriggerable, and refactored
test helpers and mocks as needed.

  • public/v3/models/build-request.js:

(BuildRequest.prototype.status): Added.
(BuildRequest.prototype.isScheduled): Added.

  • public/v3/models/metric.js:

(Metric.prototype.fullName): Added.

  • public/v3/models/platform.js:

(Platform): Added the map based on platform name.
(Platform.findByName): Added.

  • public/v3/models/test.js:

(Test.topLevelTests):
(Test.findByPath): Added. Finds a test based on an array of test names; e.g. ['A', 'B'] would
find the test whose name is "B" which has a parent test named "A".
(Test.prototype.fullName): Added.

  • server-tests/api-build-requests-tests.js:

(addMockData): Moved to resources/mock-data.js.
(addAnotherMockTestGroup): Ditto.

  • server-tests/resources/mock-data.js: Added.

(MockData.resetV3Models): Added.
(MockData.addMockData): Moved from api-build-requests-tests.js.
(MockData.addAnotherMockTestGroup): Ditto.
(MockData.mockTestSyncConfigWithSingleBuilder): Added.
(MockData.mockTestSyncConfigWithTwoBuilders): Added.
(MockData.pendingBuild): Added.
(MockData.runningBuild): Added.
(MockData.finishedBuild): Added.

  • server-tests/resources/test-server.js:

(TestServer):
(TestServer.prototype.remoteAPI):
(TestServer.prototype._ensureTestDatabase): Don't fail even if the test database doesn't exit.
(TestServer.prototype._startApache): Create a RemoteAPI instance to access the test sever.
(TestServer.prototype._waitForPid): Increase the timeout.
(TestServer.prototype.inject): Replace global.RemoteAPI during the test and restore it afterwards.

  • server-tests/tools-buildbot-triggerable-tests.js: Added. Tests BuildbotTriggerable.syncOnce.

(MockLogger): Added.
(MockLogger.prototype.log): Added.
(MockLogger.prototype.error): Added.

  • tools/detect-changes.js:

(parseArgument): Moved to js/parse-arguments.js.

  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntry):
(BuildbotBuildEntry.prototype.syncer): Added.
(BuildbotBuildEntry.prototype.buildRequestStatusIfUpdateIsNeeded): Added. Returns a new status
for a build request (of the matching build request ID) if it needs to be updated in the server.
(BuildbotSyncer): This class
(BuildbotSyncer.prototype.addTestConfiguration): Added.
(BuildbotSyncer.prototype.testConfigurations): Returns the list of test configurations.
(BuildbotSyncer.prototype.matchesConfiguration): Returns true iff the request can be scheduled on
this builder.
(BuildbotSyncer.prototype.scheduleRequest): Added. Schedules a new job on buildbot for a request.
(BuildbotSyncer.prototype.scheduleFirstRequestInGroupIfAvailable): Added. Schedules a new job for
the specified build request on the first slave that's available.
(BuildbotSyncer.prototype.pullBuildbot): Return a list of BuildbotBuildEntry instead of an object.
Also store it on an instance variable so that scheduleFirstRequestInGroupIfAvailable could use it.
(BuildbotSyncer.prototype._pullRecentBuilds):
(BuildbotSyncer.prototype.pathForPendingBuildsJSON): Renamed from urlForPendingBuildsJSON and now
only returns the path instead of the full URL since RemoteAPI takes a path, not full URL.
(BuildbotSyncer.prototype.pathForBuildJSON): Ditto from pathForBuildJSON.
(BuildbotSyncer.prototype.pathForForceBuild): Added.
(BuildbotSyncer.prototype.url): Use RemoteAPI's url method instead of manually constructing URL.
(BuildbotSyncer.prototype.urlForBuildNumber): Ditto.
(BuildbotSyncer.prototype._propertiesForBuildRequest): Now that each syncer can have multiple test
configurations associated with it, find the one matching for this request.
(BuildbotSyncer._loadConfig): Create a syncer per builder and add all test configurations to it.
(BuildbotSyncer._validateAndMergeConfig): Added the support for 'SlaveList', which is a list of
slave names present on this builder.

  • tools/js/buildbot-triggerable.js: Added.

(BuildbotTriggerable): Added.
(BuildbotTriggerable.prototype.name): Added.
(BuildbotTriggerable.prototype.syncOnce): Added. The main logic for the syncing script. It pulls
existing build requests from the perf dashboard, pulls buildbot for pending and running/completed
builds on each builder (represented by each syncer), schedules build requests on buildbot if there
is any builder/slave available, and updates the status of build requests in the database.
(BuildbotTriggerable.prototype._validateRequests): Added.
(BuildbotTriggerable.prototype._pullBuildbotOnAllSyncers): Added.
(BuildbotTriggerable.prototype._scheduleNextRequestInGroupIfSlaveIsAvailable): Added.
(BuildbotTriggerable._testGroupMapForBuildRequests): Added.

  • tools/js/database.js:
  • tools/js/parse-arguments.js: Added. Extracted out of tools/detect-changes.js.

(parseArguments):

  • tools/js/remote.js:

(RemoteAPI): Now optionally takes the server configuration.
(RemoteAPI.prototype.url): Added.
(RemoteAPI.prototype.getJSON): Removed the code for specifying request content.
(RemoteAPI.prototype.getJSONWithStatus): Ditto.
(RemoteAPI.prototype.postJSON): Added.
(RemoteAPI.prototype.postFormUrlencodedData): Added.
(RemoteAPI.prototype.sendHttpRequest): Fixed the code to specify auth.

  • tools/js/v3-models.js: Don't include RemoteAPI here as they require a configuration for each host.
  • tools/sync-buildbot.js: Added.

(main): Added. Parse the arguments and start the loop.
(syncLoop): Added.

  • unit-tests/buildbot-syncer-tests.js: Added tests for pullBuildbot, scheduleRequest, as well as

scheduleFirstRequestInGroupIfAvailable. Refactored helper functions as needed.
(sampleiOSConfig):
(smallConfiguration): Added.
(smallPendingBuild): Added.
(smallInProgressBuild): Added.
(smallFinishedBuild): Added.
(createSampleBuildRequest): Create a unique build request for each platform.
(samplePendingBuild): Optionally specify build time and slave name.
(sampleInProgressBuild): Optionally specify slave name.
(sampleFinishedBuild): Ditto.

  • unit-tests/resources/mock-remote-api.js:

(assert.notReached.assert.notReached):
(MockRemoteAPI.url): Added.
(MockRemoteAPI.postFormUrlencodedData): Added.
(MockRemoteAPI._addRequest): Extracted from getJSONWithStatus.
(MockRemoteAPI.waitForRequest): Extracted from inject. For tools-buildbot-triggerable-tests.js, we
need to instantiate a RemoteAPI for buildbot without replacing global.RemoteAPI.
(MockRemoteAPI.inject):
(MockRemoteAPI.reset): Added.

3:51 PM Changeset in webkit [199122] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Update es6.yaml to expect es6/Proxy_internal_get_calls_RegExp_constructor.js to pass.
​https://bugs.webkit.org/show_bug.cgi?id=156314

Reviewed by Saam Barati.

  • tests/es6.yaml:
3:44 PM Changeset in webkit [199121] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r199116. rdar://problem/25468815

3:25 PM Changeset in webkit [199120] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Modern IDB: Make sure SQLite backing store records have a INTEGER PRIMARY KEY column.
​https://bugs.webkit.org/show_bug.cgi?id=156264

Reviewed by Alex Christensen.

No new tests (No testable change in behavior yet, current tests pass).

  • Modules/indexeddb/IDBKeyData.cpp:

(WebCore::IDBKeyData::encode): Fix the key name for backwards compatibility.
(WebCore::IDBKeyData::decode): Ditto.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::v3RecordsTableSchema): Added v3 Records schema that includes a primary key column.
(WebCore::IDBServer::v3RecordsTableSchemaAlternate):
(WebCore::IDBServer::createOrMigrateRecordsTableIfNecessary): Upgrade to v3 instead of v2.
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):

3:22 PM Changeset in webkit [199119] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Avoid using an unengaged Optional<FloatRect> when positioning the tiled scrolling indicator
​https://bugs.webkit.org/show_bug.cgi?id=156313

Reviewed by Tim Horton.

Fixes an assertion seen when running the WebKit2.AutoLayoutIntegration API test.

  • page/FrameView.cpp:

(WebCore::FrameView::setViewExposedRect):

2:51 PM Changeset in webkit [199118] by achristensen@apple.com
  • 8 edits
    1 add in trunk

Compile WebKitTestRunner with CMake on Mac
​https://bugs.webkit.org/show_bug.cgi?id=156310

Reviewed by Daniel Bates.

Source/WebKit2:

  • PlatformMac.cmake:

Tools:

  • CMakeLists.txt:
  • WebKitTestRunner/CMakeLists.txt:
  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:
  • WebKitTestRunner/PlatformEfl.cmake:
  • WebKitTestRunner/PlatformGTK.cmake:
  • WebKitTestRunner/PlatformMac.cmake: Added.
2:48 PM Changeset in webkit [199117] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Fix windows build.

  • DerivedSources.cpp:
  • css/CSSAllInOne.cpp:
2:21 PM Changeset in webkit [199116] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

CRASH in AudioDestinationNode::render()
​https://bugs.webkit.org/show_bug.cgi?id=156308
<rdar://problem/25468815>

Reviewed by Eric Carlson.

AudioDestinationNode::render() will crash when passed in a zero-length frame count. Rather than get into
this bad state, ASSERT() and bail out early in this case.

Also, address the situation in AudioDestinationIOS::render which can cause this 0-frame count to occur.

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::render):

  • platform/audio/ios/AudioDestinationIOS.cpp:

(WebCore::AudioDestinationIOS::render):

1:52 PM Changeset in webkit [199115] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

bmalloc: handle aligned allocations on the fast path
​https://bugs.webkit.org/show_bug.cgi?id=156302

Reviewed by Michael Saboff.

This helps keep the JavaScriptCore GC on the fast path, and it also
helps avoid fragmentation on our website stress test:

nimlang 209,584kB 198,076kB 1.06x smaller

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::allocate): Because we arrange for power-of-two size
classes to allocate at power-of-two alignments, we can allocate any
small aligned request on the small path.

  • bmalloc/Chunk.h:

(bmalloc::Chunk::bytes):
(bmalloc::Chunk::lines):
(bmalloc::Chunk::pages):
(bmalloc::Chunk::boundaryTags):
(bmalloc::Chunk::objectType): Moved some code around to provide better
API.

(bmalloc::Chunk::Chunk): Moved this code to VMHeap.

(bmalloc::Chunk::offset):
(bmalloc::Chunk::object): Use our new bytes() helper function.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateChunk): Moved code here from Chunk.

(bmalloc::VMHeap::allocateSmallChunk): Ensure that power-of-two page
sizes always begin allocation at the same alignment. Power-of-two object
sizes always request power-of-two page sizes (since that's the least
wasteful option), so if we also ensure that power-of-two page sizes get
power-of-two alignment, then everything is aligned for all small objects.

1:41 PM Changeset in webkit [199114] by peavo@outlook.com
  • 3 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Videos are always autoplaying.
​https://bugs.webkit.org/show_bug.cgi?id=156284

Reviewed by Alex Christensen.

Videos are autoplaying because the MediaFoundation implementation always starts playback
after the load method has been called. When the load method has been called, we should
only start buffering data, not automatically start the playback. This has been fixed by
implementing the prepareToPlay method, and calling this instead of the play method.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
(WebCore::MediaPlayerPrivateMediaFoundation::load):
(WebCore::MediaPlayerPrivateMediaFoundation::prepareToPlay):
(WebCore::MediaPlayerPrivateMediaFoundation::play):
(WebCore::MediaPlayerPrivateMediaFoundation::networkState):
(WebCore::MediaPlayerPrivateMediaFoundation::startSession):
(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
(WebCore::MediaPlayerPrivateMediaFoundation::updateReadyState):
(WebCore::MediaPlayerPrivateMediaFoundation::onTopologySet):
(WebCore::MediaPlayerPrivateMediaFoundation::onBufferingStarted):
(WebCore::MediaPlayerPrivateMediaFoundation::onBufferingStopped):
(WebCore::MediaPlayerPrivateMediaFoundation::onSessionEnded):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::updateDestRect):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
1:03 PM Changeset in webkit [199113] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Add ASSERT_WITH_SECURITY_IMPLICATION when a float box is referenced by multiple RootInlineBoxes.
​https://bugs.webkit.org/show_bug.cgi?id=156297
<rdar://problem/25580844>

Reviewed by Brent Fulgham.

See ​http://trac.webkit.org/changeset/199101

No change in functionality.

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::appendFloatingObjectToLastLine):
(WebCore::RenderBlockFlow::reattachCleanLineFloats):
(WebCore::RenderBlockFlow::determineStartPosition):

12:54 PM Changeset in webkit [199112] by weinig@apple.com
  • 15 edits
    3 moves in trunk

window.CSS should be a constructor with static functions
<rdar://problem/25580516>
​https://bugs.webkit.org/show_bug.cgi?id=156294

Reviewed by Chris Dumez.

Source/WebCore:

Rename DOMWindowCSS to DOMCSSNamespace to avoid name collisions, DOMWindow prefixed
classes cause collisions in JSDOMWindow.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:

Update for renames.

  • css/DOMCSSNamespace.cpp: Copied from Source/WebCore/css/DOMWindowCSS.cpp.

(WebCore::valueWithoutImportant):
(WebCore::DOMCSSNamespace::supports):
(WebCore::DOMWindowCSS::create): Deleted.
(WebCore::DOMWindowCSS::supports): Deleted.

  • css/DOMCSSNamespace.h: Copied from Source/WebCore/css/DOMWindowCSS.h.

(WebCore::DOMWindowCSS::DOMWindowCSS): Deleted.
Rename DOMWindowCSS to DOMCSSNamespace and turn functions into static functions.

  • css/DOMCSSNamespace.idl: Copied from Source/WebCore/css/DOMWindowCSS.idl.

Remove NoInterfaceObject, to inject a constructor, and turn functions into
static functions matching spec.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::css): Deleted.

  • page/DOMWindow.h:
  • page/DOMWindow.idl:

Remove CSS property. Constructor will be implicitly added.

LayoutTests:

  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:

Update for new CSS constructor property.

12:22 PM Changeset in webkit [199111] by Simon Fraser
  • 24 edits in trunk/Source

Rename exposedRect to viewExposedRect and propagate it as Optional<> through WK2
​https://bugs.webkit.org/show_bug.cgi?id=156274

Reviewed by NOBODY (OOPS!).

DrawingArea and FrameView have an "exposedRect" property that is used by applications
on Mac, like Mail, that embed web views inside scroll views. However, this name is very
similar to the "exposedContentRect" that is used on iOS to denote the part of the view
whose pixels are visible, including through blurring overlaid UI.

To disambiguate these two, rename the Mac "exposedRect" to "viewExposedRect" to
emphasize that it's a rect that takes into account clipping in the native view
hierarchy.

Also make this rect Optional<> through the DrawingArea, removing comparisons against
FloatRect::infiniteRect().

Do some other minor renaming in VisibleContentRectUpdateInfo.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::setViewExposedRect): This now takes an Optional<> because WebViewImpl::updateViewExposedRect()
can clear it.

  • page/FrameView.h:
  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::didChangeViewExposedRect):
(WebCore::PageOverlayController::didChangeExposedRect): Deleted.

  • page/PageOverlayController.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::computeTileCoverage):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):

Source/WebKit2:

  • Shared/VisibleContentRectUpdateInfo.cpp: Rename "exposedRect" and "unobscuredRect" to

have "Content" in the names.
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):

  • Shared/VisibleContentRectUpdateInfo.h:

(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::exposedContentRect):
(WebKit::VisibleContentRectUpdateInfo::unobscuredContentRect):
(WebKit::operator==):
(WebKit::VisibleContentRectUpdateInfo::exposedRect): Deleted.
(WebKit::VisibleContentRectUpdateInfo::unobscuredRect): Deleted.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateViewExposedRect):

  • UIProcess/DrawingAreaProxy.cpp:

(WebKit::DrawingAreaProxy::DrawingAreaProxy):
(WebKit::DrawingAreaProxy::setViewExposedRect):
(WebKit::DrawingAreaProxy::viewExposedRectChangedTimerFired):
(WebKit::DrawingAreaProxy::setExposedRect): Deleted.
(WebKit::DrawingAreaProxy::exposedRectChangedTimerFired): Deleted.

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::viewExposedRect):
(WebKit::DrawingAreaProxy::exposedRect): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::exposedContentRect):
(WebKit::WebPageProxy::unobscuredContentRect):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::setViewExposedRect):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
(WebKit::RemoteLayerTreeDrawingAreaProxy::scaledExposedRect): Deleted.
(WebKit::RemoteLayerTreeDrawingAreaProxy::setExposedRect): Deleted. This was only used
to position the indicator, and confusingly used either exposedContentRect() or viewExposedRect()
depending on platform.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setViewExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea): Deleted.
(WebKit::RemoteLayerTreeDrawingArea::setExposedRect): Deleted.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::setViewExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::setExposedRect): Deleted.

12:13 PM Changeset in webkit [199110] by jdiggs@igalia.com
  • 11 edits in trunk

REGRESSION(r195463): [GTK] accessibility/roles-computedRoleString.html and accessibility/roles-exposed.html failing
​https://bugs.webkit.org/show_bug.cgi?id=153696

Reviewed by Chris Fleizach.

Source/WebCore:

The failures were due to always mapping style format groups to GroupRole, even for
RenderInline objects. The fix is to expose inline style format groups as InlineRole,
add handling of GroupRole style groups to the ATK code, and InlineRole style groups
to the Mac code.

No new tests because we have sufficient coverage. Updated roles-computedRoleString.html
to reflect new exposure.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):

LayoutTests:

Now that RenderInline style format groups are exposed as InlineRole, there is
no longer a corresponding computed role for ins, samp, and var elements. Updated
the roles-computedRoleString.html test and expectations accordingly. Also added
the now-correct results for Gtk for both of the previously-failing tests.

  • accessibility/roles-computedRoleString-expected.txt: Updated.
  • accessibility/roles-computedRoleString.html: Updated.
  • platform/gtk/TestExpectations: Unskip the two tests which are now passing.
  • platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Updated.
12:07 PM Changeset in webkit [199109] by achristensen@apple.com
  • 6 edits in trunk

Fix CMake DumpRenderTree
​https://bugs.webkit.org/show_bug.cgi?id=156305

Reviewed by Daniel Bates.

.:

  • Source/cmake/OptionsMac.cmake:

Source/WebKit:

  • PlatformMac.cmake:

Source/WebKit/mac:

  • WebKitPrefix.h:
11:49 AM Changeset in webkit [199108] by commit-queue@webkit.org
  • 39 edits
    1 delete in trunk/Source/JavaScriptCore

Unreviewed, rolling out r199104.
​https://bugs.webkit.org/show_bug.cgi?id=156301

Still breaks internal builds (Requested by keith_miller on
#webkit).

Reverted changeset:

"We should support the ability to do a non-effectful getById"
​https://bugs.webkit.org/show_bug.cgi?id=156116
​http://trac.webkit.org/changeset/199104

11:39 AM Changeset in webkit [199107] by Simon Fraser
  • 4 edits in trunk

Implement operator== and operator!= for Optional<>
​https://bugs.webkit.org/show_bug.cgi?id=156266

Reviewed by Anders Carlsson.
Source/WTF:

Implement non-member operator== and operator!= variants for Optional<>.

  • wtf/Optional.h:

(WTF::operator==):
(WTF::operator!=):

Tools:

  • TestWebKitAPI/Tests/WTF/Optional.cpp:

(TestWebKitAPI::TEST):

11:26 AM Changeset in webkit [199106] by keith_miller@apple.com
  • 6 edits in trunk

RegExp constructor should use Symbol.match and other properties
​https://bugs.webkit.org/show_bug.cgi?id=155873

Reviewed by Michael Saboff.

Source/JavaScriptCore:

This patch updates the behavior of the RegExp constructor. Now the constructor
should get the Symbol.match property and check if it exists to decide if something
should be constructed like a regexp object.

  • runtime/RegExpConstructor.cpp:

(JSC::toFlags):
(JSC::constructRegExp):
(JSC::constructWithRegExpConstructor):
(JSC::callRegExpConstructor):

  • runtime/RegExpConstructor.h:
  • tests/stress/regexp-constructor.js: Added.

(assert):
(throw.new.Error.get let):
(throw.new.Error.):
(throw.new.Error.get re):

LayoutTests:

Fix test for new behavior.

  • fast/regex/constructor-expected.txt:
  • fast/regex/script-tests/constructor.js:
10:44 AM Changeset in webkit [199105] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

CRASH in -[WebCoreNSURLSession taskCompleted:]
​https://bugs.webkit.org/show_bug.cgi?id=156290

Reviewed by Eric Carlson.

Fixes currently flakily crashing http/tests/media tests.

Protect against -taskCompleted: being called multiple times by only calling
-taskCompleted: if the task's state is not yet NSURLSessionTaskStateCompleted.
Additionally, make sure to clear the task's session pointer when removing it
from _dataTasks, as this ensures a task that outlives its session does not
keep a pointer to a dealloc'd object.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession taskCompleted:]):
(-[WebCoreNSURLSessionDataTask _resource:loadFinishedWithError:]):

10:36 AM Changeset in webkit [199104] by keith_miller@apple.com
  • 39 edits
    1 add in trunk/Source/JavaScriptCore

We should support the ability to do a non-effectful getById
​https://bugs.webkit.org/show_bug.cgi?id=156116

Reviewed by Benjamin Poulain.

Currently, there is no way in JS to do a non-effectful getById. A non-effectful getById is
useful because it enables us to take different code paths based on values that we would
otherwise not be able to have knowledge of. This patch adds this new feature called
try_get_by_id that will attempt to do as much of a get_by_id as possible without performing
an effectful behavior. Thus, try_get_by_id will return the value if the slot is a value, the
GetterSetter object if the slot is a normal accessor (not a CustomGetterSetter) and
undefined if the slot is unset. If the slot is proxied or any other cases then the result
is null. In theory, if we ever wanted to check for null we could add a sentinal object to
the global object that indicates we could not get the result.

In order to implement this feature we add a new enum GetByIdKind that indicates what to do
for accessor properties in PolymorphicAccess. If the GetByIdKind is pure then we treat the
get_by_id the same way we would for load and return the value at the appropriate offset.
Additionally, in order to make sure the we can properly compare the GetterSetter object
with === GetterSetters are now JSObjects. This comes at the cost of eight extra bytes on the
GetterSetter object but it vastly simplifies the patch. Additionally, the extra bytes are
likely to have little to no impact on memory usage as normal accessors are generally rare.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createDefaultConstructor):
(JSC::BuiltinExecutables::createBuiltinExecutable):
(JSC::createBuiltinExecutable):
(JSC::BuiltinExecutables::createExecutable):
(JSC::createExecutableInternal): Deleted.

  • builtins/BuiltinExecutables.h:
  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::tryGet):
(JSC::AccessCase::generate):
(WTF::printInternal):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessCase::isGet): Deleted.
(JSC::AccessCase::isPut): Deleted.
(JSC::AccessCase::isIn): Deleted.

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitTryGetById):

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

(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetById):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::getById):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITGetByIdGenerator::JITGetByIdGenerator):

  • jit/JITInlineCacheGenerator.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id):

  • jit/Repatch.cpp:

(JSC::repatchByIdSelfAccess):
(JSC::appropriateOptimizingGetByIdFunction):
(JSC::appropriateGenericGetByIdFunction):
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::resetGetByID):

  • jit/Repatch.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionGetGetterSetter):
(functionCreateBuiltin):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • runtime/GetterSetter.cpp:
  • runtime/GetterSetter.h:
  • runtime/JSType.h:
  • runtime/PropertySlot.cpp:

(JSC::PropertySlot::getPureResult):

  • runtime/PropertySlot.h:
  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::getOwnPropertySlotCommon):

  • tests/stress/try-get-by-id.js: Added.

(tryGetByIdText):
(getCaller.obj.1.throw.new.Error.let.func):
(getCaller.obj.1.throw.new.Error):
(throw.new.Error.get let):
(throw.new.Error.):
(throw.new.Error.let.get createBuiltin):
(get let):
(let.get createBuiltin):
(let.func):
(get let.func):
(get throw):

10:33 AM Changeset in webkit [199103] by Chris Dumez
  • 2 edits
    9 adds in trunk/Source/WebCore

[IDL] Extend support for [EnabledAtRuntime] attributes / operations to all global objects, not just Window
​https://bugs.webkit.org/show_bug.cgi?id=156291

Reviewed by Alex Christensen.

Extend support for [EnabledAtRuntime] attributes / operations to all
global objects, not just Window. This is needed by the Fetch API which
is enabled at runtime and exposed on both Window and WorkerGlobalScope.

  • bindings/scripts/CodeGeneratorJS.pm:

(IsDOMGlobalObject):
(OperationShouldBeOnInstance):
(GenerateHeader):
(GeneratePropertiesHashTable):
(GenerateImplementation):

  • bindings/scripts/test/GObject/WebKitDOMTestGlobalObject.cpp: Added.

(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestGlobalObject):
(webkit_dom_test_global_object_finalize):
(webkit_dom_test_global_object_set_property):
(webkit_dom_test_global_object_get_property):
(webkit_dom_test_global_object_constructor):
(webkit_dom_test_global_object_class_init):
(webkit_dom_test_global_object_init):
(webkit_dom_test_global_object_regular_operation):
(webkit_dom_test_global_object_enabled_at_runtime_operation):
(webkit_dom_test_global_object_get_regular_attribute):
(webkit_dom_test_global_object_set_regular_attribute):
(webkit_dom_test_global_object_get_enabled_at_runtime_attribute):
(webkit_dom_test_global_object_set_enabled_at_runtime_attribute):

  • bindings/scripts/test/GObject/WebKitDOMTestGlobalObject.h: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestGlobalObjectPrivate.h: Added.
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp: Added.

(WebCore::JSTestGlobalObjectConstructor::prototypeForStructure):
(WebCore::JSTestGlobalObjectConstructor::initializeProperties):
(WebCore::JSTestGlobalObjectPrototype::getOwnPropertySlot):
(WebCore::JSTestGlobalObject::JSTestGlobalObject):
(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::JSTestGlobalObject::destroy):
(WebCore::JSTestGlobalObject::getOwnPropertySlot):
(WebCore::jsTestGlobalObjectRegularAttribute):
(WebCore::jsTestGlobalObjectEnabledAtRuntimeAttribute):
(WebCore::jsTestGlobalObjectConstructor):
(WebCore::setJSTestGlobalObjectConstructor):
(WebCore::setJSTestGlobalObjectRegularAttribute):
(WebCore::setJSTestGlobalObjectEnabledAtRuntimeAttribute):
(WebCore::JSTestGlobalObject::getConstructor):
(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperation):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation):
(WebCore::JSTestGlobalObjectOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestGlobalObjectOwner::finalize):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestGlobalObject::toWrapped):

  • bindings/scripts/test/JS/JSTestGlobalObject.h: Added.

(WebCore::JSTestGlobalObject::create):
(WebCore::JSTestGlobalObject::createStructure):
(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::wrapperOwner):
(WebCore::wrapperKey):
(WebCore::toJS):
(WebCore::JSTestGlobalObjectPrototype::create):
(WebCore::JSTestGlobalObjectPrototype::createStructure):
(WebCore::JSTestGlobalObjectPrototype::JSTestGlobalObjectPrototype):

  • bindings/scripts/test/ObjC/DOMTestGlobalObject.h: Added.
  • bindings/scripts/test/ObjC/DOMTestGlobalObject.mm: Added.

(-[DOMTestGlobalObject dealloc]):
(-[DOMTestGlobalObject regularAttribute]):
(-[DOMTestGlobalObject setRegularAttribute:]):
(-[DOMTestGlobalObject enabledAtRuntimeAttribute]):
(-[DOMTestGlobalObject setEnabledAtRuntimeAttribute:]):
(-[DOMTestGlobalObject regularOperation:]):
(-[DOMTestGlobalObject enabledAtRuntimeOperation:]):
(core):
(kit):

  • bindings/scripts/test/ObjC/DOMTestGlobalObjectInternal.h: Added.
  • bindings/scripts/test/TestGlobalObject.idl: Added.
9:38 AM Changeset in webkit [199102] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Update IndexedDB feature status to the much more correct "In Development"

Reviewed by Tim Hatcher.

  • features.json:
8:56 AM Changeset in webkit [199101] by Alan Bujtas
  • 4 edits
    2 adds in trunk

ASSERTION FAILED: !floatingObject->originatingLine() in WebCore::RenderBlockFlow::linkToEndLineIfNeeded
​https://bugs.webkit.org/show_bug.cgi?id=153001

Reviewed by Dan Bernstein.

  1. Float boxes are always attached to the line where we see them first.
  2. Float box can only be attached to one line.
  3. RenderBlockFlow can perform partial layout on dirty lines only.

In certain cases, the last dirty line can "pull up" float boxes from the first clean line.
It simply means that due to some layout changes on previous lines now we see those floats on this last dirty line first.
If after placing the float we still find it on the same position, the line below is still considered clean.
Source/WebCore:

Remove the float box from its original line if the line above already placed it.

Test: fast/block/float/float-moves-between-lines.html

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

(WebCore::RenderBlockFlow::reattachCleanLineFloats):
(WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange): Deleted.

LayoutTests:

Remove the float box from its original line if the line above already placed it.

  • fast/block/float/float-moves-between-lines-expected.txt: Added.
  • fast/block/float/float-moves-between-lines.html: Added.
8:44 AM Changeset in webkit [199100] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Italian translation of WebKitGTK+
​https://bugs.webkit.org/show_bug.cgi?id=156283

Patch by Milo Casagrande <​milo@milo.name> on 2016-04-06
Rubber-stamped by Michael Catanzaro.

  • it.po:
5:26 AM Changeset in webkit [199099] by Antti Koivisto
  • 6 edits in trunk

REGRESSION(r196629): Messages text size only changes for sending text, conversation text size does not change
​https://bugs.webkit.org/show_bug.cgi?id=156287
<rdar://problem/24264756>

Reviewed by Andreas Kling.

Source/WebCore:

  • css/RuleFeature.cpp:

(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::makeAttributeSelectorKey):

Include attribute value to the key. Otherwise we may deduplicate selectors that are not indentical.

(WebCore::RuleFeatureSet::collectFeatures):
(WebCore::RuleFeatureSet::add):

Use HashMap::ensure().

  • css/RuleFeature.h:

LayoutTests:

  • fast/css/style-invalidation-attribute-change-descendants-expected.txt:
  • fast/css/style-invalidation-attribute-change-descendants.html:
3:21 AM Changeset in webkit [199098] by Manuel Rego Casasnovas
  • 11 edits
    2 adds in trunk

[css-grid] Fix positioned children in RTL
​https://bugs.webkit.org/show_bug.cgi?id=156162

Reviewed by Sergio Villar Senin.

Source/WebCore:

This patch fixes a problem affecting the items without
a static inline position (i.e. "left" and/or "right" properties
are not "auto"). In this particular case we need to compute
the "offset" from the left, so we need a specific condition
and computation.

Let's use an example to understand what it's fixing:
<div style="display: grid; grid-template-columns: 100px 50px; width: 300px;

position: relative; direction: rtl;">

<div style="position: absolute; left: 0; grid-column: 1 / 2;">item</div>

</div>

In this case the item has to be placed in the first column
(the one on the right as we're in RTL).
For this we need to calculate the offset from the left, which is 200px:
150px (alignment offset) + 50px (offset from line 3 to 2).

Test: fast/css-grid-layout/grid-positioned-items-background-rtl.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):

LayoutTests:

Added more RTL cases for the positioned tests.

  • fast/css-grid-layout/absolute-positioning-grid-container-containing-block-expected.txt:
  • fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html:
  • fast/css-grid-layout/grid-positioned-items-background-rtl-expected.html: Added.
  • fast/css-grid-layout/grid-positioned-items-background-rtl.html: Added.
  • fast/css-grid-layout/grid-positioned-items-padding-expected.txt:
  • fast/css-grid-layout/grid-positioned-items-padding.html:
  • fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track-expected.txt:
  • fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html:
  • fast/css-grid-layout/grid-sizing-positioned-items-expected.txt:
  • fast/css-grid-layout/grid-sizing-positioned-items.html:
2:27 AM Changeset in webkit [199097] by Antti Koivisto
  • 7 edits in trunk

ComposedTreeIterator may crash when first child of shadow root is a comment node
​https://bugs.webkit.org/show_bug.cgi?id=156281

Reviewed by Andreas Kling.

Source/WebCore:

It should not use plain firstChild() and assume it is Element or Text.

  • dom/ComposedTreeIterator.cpp:

(WebCore::ComposedTreeIterator::Context::Context):

Add FirstChildTag to various iterator constructors to make clear that they search for the first child.

(WebCore::ComposedTreeIterator::ComposedTreeIterator):
(WebCore::ComposedTreeIterator::traverseShadowRoot):

Fix by using ElementAndTextDescendantIterator to find the first child.

  • dom/ComposedTreeIterator.h:

(WebCore::ComposedTreeIterator::operator*):
(WebCore::ComposedTreeDescendantAdapter::ComposedTreeDescendantAdapter):
(WebCore::ComposedTreeDescendantAdapter::begin):
(WebCore::ComposedTreeDescendantAdapter::end):
(WebCore::ComposedTreeDescendantAdapter::at):
(WebCore::ComposedTreeChildAdapter::Iterator::Iterator):

  • dom/ElementAndTextDescendantIterator.h:

(WebCore::ElementAndTextDescendantIterator::operator++):
(WebCore::ElementAndTextDescendantIterator::ElementAndTextDescendantIterator):
(WebCore::ElementAndTextDescendantIteratorAdapter::begin):
(WebCore::ElementAndTextDescendantIteratorAdapter::end):

LayoutTests:

  • fast/shadow-dom/composed-tree-shadow-subtree-expected.txt:
  • fast/shadow-dom/composed-tree-shadow-subtree.html:

Apr 5, 2016:

11:10 PM Changeset in webkit [199096] by Chris Dumez
  • 5 edits in trunk/Source

Add support for [EnabledAtRuntime] operations on DOMWindow
​https://bugs.webkit.org/show_bug.cgi?id=156272

Reviewed by Alex Christensen.

Source/JavaScriptCore:

Add identifier for 'fetch' so it can be used from the generated
bindings.

  • runtime/CommonIdentifiers.h:

Source/WebCore:

Add support for [EnabledAtRuntime] operations on DOMWindow by omitting
such operations from the static table and add them at run-time in
JSDOMWindow::finishCreation() if the corresponding feature is enabled.

This was needed for window.fetch() for which a hack was temporarily
landed in r199081. This patch drops this hack now that the generated
bindings do the right thing.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::scriptExecutionContext):
Drop hack landed in r199081.

  • bindings/scripts/CodeGeneratorJS.pm:

(OperationShouldBeOnInstance):
(GeneratePropertiesHashTable):
(GenerateImplementation):
Add support for [EnabledAtRuntime] operations on DOMWindow.

10:45 PM Changeset in webkit [199095] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Do not create CodeMirror color/gradient markers in JavaScript resources
​https://bugs.webkit.org/show_bug.cgi?id=156278
<rdar://problem/25570404>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-05
Reviewed by Timothy Hatcher.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._hasStyleSheetContents):
(WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
Only spend the time to create style markers for style sheet contents.

10:31 PM Changeset in webkit [199094] by achristensen@apple.com
  • 17 edits in trunk

Make CMake-generated binaries on Mac able to run
​https://bugs.webkit.org/show_bug.cgi?id=156268

Reviewed by Daniel Bates.

.:

  • Source/cmake/OptionsMac.cmake:

Source/JavaScriptCore:

  • CMakeLists.txt:

Source/WebCore:

  • CMakeLists.txt:
  • PlatformMac.cmake:

Source/WebKit:

  • CMakeLists.txt:

Source/WebKit2:

  • CMakeLists.txt:
  • PlatformMac.cmake:

Tools:

  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/PlatformMac.cmake:
  • DumpRenderTree/PlatformWin.cmake:
  • TestWebKitAPI/PlatformMac.cmake:
9:46 PM Changeset in webkit [199093] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Improve some other cases of context-sensitive inlining
​https://bugs.webkit.org/show_bug.cgi?id=156277

Reviewed by Benjamin Poulain.

This implements some improvements for inlining:

  • We no longer do guarded inlining when the profiling doesn't come from a stub. Doing so would have been risky, and according to benchmarks, it wasn't common enough to matter. I think it's better to err on the side of not inlining.


  • The jneq_ptr pattern for variadic calls no longer breaks the basic block. Not breaking the block increases the chances of the parser seeing the callee constant. While inlining doesn't require a callee constant, sometimes it makes a difference. Note that we were previously breaking the block for no reason at all: if the boundary after jneq_ptr is a jump target from some other jump, then the parser will automatically break the block for us. There is no reason to add any block breaking ourselves since we implement jneq_ptr by ignoring the affirmative jump destination and inserting a check and falling through.


  • get_by_id handling now tries to apply some common sense to its status object. In particular, if the source is a NewObject and there was no interfering operation that could clobber the structure, then we know which case of a polymorphic GetByIdStatus we would take. This arises in some constructor patterns.


Long term, we should address all of these cases comprehensively by having a late inliner. The inliner
being part of the bytecode parser means that there is a lot of complexity in the parser and it
prevents us from inlining upon learning new information from static analysis. But for now, I think
it's fine to experiment with one-off hacks, if only to learn what the possibilities are.

This is a 14% speed-up on Octane/raytrace.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::dump):

  • bytecode/CallLinkStatus.h:

(JSC::CallLinkStatus::couldTakeSlowPath):
(JSC::CallLinkStatus::setCouldTakeSlowPath):
(JSC::CallLinkStatus::variants):
(JSC::CallLinkStatus::size):
(JSC::CallLinkStatus::at):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::makesCalls):
(JSC::GetByIdStatus::filter):
(JSC::GetByIdStatus::dump):

  • bytecode/GetByIdStatus.h:

(JSC::GetByIdStatus::wasSeenInJIT):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::refineStatically):
(JSC::DFG::ByteCodeParser::handleVarargsCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • runtime/Options.h:
8:55 PM Changeset in webkit [199092] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

JSC SamplingProfiler: Use a thread + sleep loop instead of WTF::WorkQueue for taking samples
​https://bugs.webkit.org/show_bug.cgi?id=154017

Reviewed by Geoffrey Garen.

By moving to an explicitly created seperate thread + sample-then-sleep
loop, we can remove a lot of the crufty code around WorkQueue.
We're also getting sample rates that are much closer to what we're
asking the OS for. When the sampling handler was built off of WorkQueue,
we'd often get sample rates much higher than the 1ms we asked for. On Kraken,
we would average about 1.7ms sample rates, even though we'd ask for a 1ms rate.
Now, on Kraken, we're getting about 1.2ms rates. Because we're getting
higher rates, this patch is a performance regression. It's slower because
we're sampling more frequently.

Before this patch, the sampling profiler had the following overhead:

  • 10% on Kraken
  • 12% on octane
  • 15% on AsmBench

With this patch, the sampling profiler has the following overhead:

  • 16% on Kraken
  • 17% on Octane
  • 30% on AsmBench

Comparatively, this new patch has the following overhead over the old sampling profiler:

  • 5% on Kraken
  • 3.5% on Octane
  • 13% slower on AsmBench
  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::trackingComplete):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::SamplingProfiler):
(JSC::SamplingProfiler::~SamplingProfiler):
(JSC::SamplingProfiler::createThreadIfNecessary):
(JSC::SamplingProfiler::timerLoop):
(JSC::SamplingProfiler::takeSample):
(JSC::tryGetBytecodeIndex):
(JSC::SamplingProfiler::shutdown):
(JSC::SamplingProfiler::start):
(JSC::SamplingProfiler::pause):
(JSC::SamplingProfiler::noticeCurrentThreadAsJSCExecutionThread):
(JSC::SamplingProfiler::noticeJSLockAcquisition):
(JSC::SamplingProfiler::noticeVMEntry):
(JSC::SamplingProfiler::clearData):
(JSC::SamplingProfiler::stop): Deleted.
(JSC::SamplingProfiler::dispatchIfNecessary): Deleted.
(JSC::SamplingProfiler::dispatchFunction): Deleted.

  • runtime/SamplingProfiler.h:

(JSC::SamplingProfiler::setTimingInterval):
(JSC::SamplingProfiler::setStopWatch):

  • runtime/VM.cpp:

(JSC::VM::VM):

8:23 PM Changeset in webkit [199091] by BJ Burg
  • 8 edits in trunk/Source/WebKit2

Web Automation: add support for getting, deleting, and adding cookies
​https://bugs.webkit.org/show_bug.cgi?id=156090
<rdar://problem/25477678>

Reviewed by Timothy Hatcher.

Add protocol commands for manipulating cookies with respect to a given page.
Implement all but the addSingleCookie command, which needs a new WebCore API.

  • UIProcess/Automation/Automation.json:

Copy the Page domain Cookie object. Add new commands.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::getAllCookies):
(WebKit::buildObjectForCookie): Copied from InspectorPageAgent.
(WebKit::buildArrayForCookies): Copied from InspectorPageAgent.
(WebKit::WebAutomationSession::didGetCookiesForFrame):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::didDeleteCookie):
(WebKit::WebAutomationSession::addSingleCookie): Added a stub for now.
(WebKit::WebAutomationSession::deleteAllCookies):
This command can use the WebCookieManager supplement directly instead of
proxying through AutomationSession. It doesn't block until the delete is
performed like the other methods do, but this shouldn't be a problem.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.messages.in:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::getCookiesForFrame):
(WebKit::WebAutomationSessionProxy::deleteCookie):

  • WebProcess/Automation/WebAutomationSessionProxy.h:
  • WebProcess/Automation/WebAutomationSessionProxy.messages.in:
6:37 PM Changeset in webkit [199090] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Fix Range requests when not using the NetworkCache with NetworkSession
​https://bugs.webkit.org/show_bug.cgi?id=156036
rdar://problem/25334939

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-04-05
Reviewed by Sam Weinig.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]):
Don't cache any responses with Content-Range headers to work around rdar://problem/20001985.
This is similar to the workaround in shouldCacheResponse in WebCoreNSURLSession.mm
(WebKit::NetworkSession::NetworkSession):
If we are using the NetworkCache, then don't use CFNetwork's cache.

6:36 PM Changeset in webkit [199089] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fixed CSS Shapes entry on the WebKit Feature Status page.
​https://bugs.webkit.org/show_bug.cgi?id=156262

Patch by Jon Davis <​jond@ingenesis.net> on 2016-04-05
Reviewed by Timothy Hatcher.

  • features.json:
6:31 PM Changeset in webkit [199088] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

Correct applicationWillTerminate logic for ResourceLoadStatistics
​https://bugs.webkit.org/show_bug.cgi?id=156249
<rdar://problem/25179611>

Reviewed by Andy Estes.

The applicationWillTerminate handling for ResourceLoadStatistics incorrectly
assumes that a ResourceLoadStatistics object will always be present.

  1. The termination handling for 'dataStoresWithStorageManagers' should be calling 'applicationWillTerminate' on any ResourceLoadStatistics objects attached to the dataStore.
  2. platformInitialize should null-check before attempting to dispatch.
  3. platformDestroy should null check before attempting to dispatch.
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformInitialize):
(WebKit::WebsiteDataStore::platformDestroy): Invoke 'applicationWillTerminate' on
m_resourceLoadStatistics if present.

6:18 PM Changeset in webkit [199087] by Chris Dumez
  • 5 edits
    11 adds in trunk

MessageEvent.source window is incorrect once window has been reified
​https://bugs.webkit.org/show_bug.cgi?id=156227
<rdar://problem/25545831>

Reviewed by Mark Lam.

Source/WebCore:

MessageEvent.source window was incorrect once window had been reified.

If the Window had not been reified, we kept constructing new
postMessage() functions when calling window.postMessage(). We used to
pass activeDOMWindow(execState) as source Window to
DOMWindow::postMessage(). activeDOMWindow() uses
exec->lexicalGlobalObject() which did the right thing because we
used to construct a new postMessage() function in the caller's context.

However, after reification, due to the way JSDOMWindow::getOwnPropertySlot()
was implemented, we would stop constructing new postMessage() functions
when calling window.postMessage(). As a result, the source window would
become incorrect because exec->lexicalGlobalObject() would return the
target Window instead.

In this patch, the following is done:

  1. Stop constructing a new function every time in the same origin case for postMessage, blur, focus and close. This was inefficient and lead to incorrect behavior:
    • The behavior would differ depending if the Window is reified or not
    • It would be impossible to delete those operations, which is incompatible with the specification and other browsers (tested Firefox and Chrome).
  2. Use callerDOMWindow(execState) instead of activeDOMWindow(execState) as source Window in JSDOMWindow::handlePostMessage(). callerDOMWindow() is a new utility function that returns the caller's Window object.

Tests: fast/dom/Window/delete-operations.html

fast/dom/Window/messageevent-source-postmessage-reified.html
fast/dom/Window/messageevent-source-postmessage.html
fast/dom/Window/messageevent-source-postmessage2.html
fast/dom/Window/window-postmessage-clone-frames.html
fast/dom/Window/post-message-crash2.html

  • bindings/js/JSDOMBinding.cpp:

(WebCore::GetCallerCodeBlockFunctor::operator()):
(WebCore::GetCallerCodeBlockFunctor::codeBlock):
(WebCore::callerDOMWindow):

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::handlePostMessage):

LayoutTests:

Add tests that cover using MessageEvent.source Window for messaging
using postMessage(). There are 2 versions of the test, one where the
main window is reified and one where it is not. The test that has a
reified main window was failing because this fix.

  • fast/dom/Window/delete-operations-expected.txt: Added.
  • fast/dom/Window/delete-operations.html: Added.

Make sure that operations on Window are indeed deletable. Previously,
it would be impossible to delete postMessage, blur, focus and close.

  • fast/dom/Window/messageevent-source-postmessage-expected.txt: Added.
  • fast/dom/Window/messageevent-source-postmessage-reified-expected.txt: Added.
  • fast/dom/Window/messageevent-source-postmessage-reified.html: Added.
  • fast/dom/Window/messageevent-source-postmessage.html: Added.
  • fast/dom/Window/messageevent-source-postmessage2.html: Added.
  • fast/dom/Window/resources/messageevent-source-postmessage-frame.html: Added.
  • fast/dom/Window/post-message-crash2-expected.txt: Added.
  • fast/dom/Window/post-message-crash2.html: Added.
6:17 PM Changeset in webkit [199086] by mmaxfield@apple.com
  • 2 edits
    4 adds in trunk/LayoutTests

Test listbox clipping to contents rect
​https://bugs.webkit.org/show_bug.cgi?id=156265

Reviewed by Simon Fraser.

These tests create some <select><option></option></select>s with padding.
These list boxes use the zapfino "f" character (because it draws wildly
far outside of its layout box) to create a case where text inside the list
box would naturally intersect with the padding. This overflow should be
clipped so that the padding is undisturbed.

  • fast/forms/listbox-padding-clip-expected.html: Added.
  • fast/forms/listbox-padding-clip-overlay-expected.html: Added.
  • fast/forms/listbox-padding-clip-overlay.html: Added.
  • fast/forms/listbox-padding-clip.html: Added.
  • platform/ios-simulator/TestExpectations: Skip on iOS
4:56 PM Changeset in webkit [199085] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Make the Timelines sidebar wider

​https://bugs.webkit.org/show_bug.cgi?id=156257
rdar://problem/25564218

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview): Added. Set define --timeline-sidebar-width.
(.timeline-overview > .navigation-bar.timelines): Use --timeline-sidebar-width.
(.timeline-overview > .tree-outline.timelines): Ditto.
(.timeline-overview > .scroll-container): Ditto.
(.timeline-overview > .timeline-ruler): Ditto.
(.timeline-overview > .graphs-container): Ditto.

4:50 PM Changeset in webkit [199084] by Ryan Haddad
  • 40 edits
    1 delete in trunk/Source/JavaScriptCore

Unreviewed, rolling out r199073.
​https://bugs.webkit.org/show_bug.cgi?id=156261

This change broke internal Mac builds (Requested by ryanhaddad
on #webkit).

Reverted changeset:

"We should support the ability to do a non-effectful getById"
​https://bugs.webkit.org/show_bug.cgi?id=156116
​http://trac.webkit.org/changeset/199073

Patch by Commit Queue <​commit-queue@webkit.org> on 2016-04-05

4:33 PM Changeset in webkit [199083] by Beth Dakin
  • 5 edits in trunk/Source

Make requestCandidatesForSelection available on any EditorClient
​https://bugs.webkit.org/show_bug.cgi?id=156253
-and corresponding-
rdar://problem/24661147

Reviewed by Dean Jackson.

Source/WebCore:

  • loader/EmptyClients.h:
  • page/EditorClient.h:

(WebCore::EditorClient::requestCandidatesForSelection):

Source/WebKit/mac:

  • WebCoreSupport/WebEditorClient.h:
4:20 PM Changeset in webkit [199082] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Command-Option-R opens Inspector details sidebar or Responsive Design Mode, should only do one

​https://bugs.webkit.org/show_bug.cgi?id=156258
rdar://problem/25483871

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded): Change shortcuts to Command-Option-0 and Command-Shift-0.

4:20 PM Changeset in webkit [199081] by achristensen@apple.com
  • 28 edits in trunk

[Fetch API] Add a runtime flag to fetch API and related constructs
​https://bugs.webkit.org/show_bug.cgi?id=156113

Patch by Youenn Fablet <​youenn.fablet@crf.canon.fr> on 2016-04-05
Reviewed by Alex Christensen.

Source/JavaScriptCore:

Add a fetch API runtime flag based on preferences.
Disable fetch API by default.

  • runtime/CommonIdentifiers.h:

Source/WebCore:

Marking all Fetch interfaces EnabledAtRuntime=FetchAPI.
Adding FetchAPI runtime flag setter and getter.
In case, fetch API is disabled, ensure Window.prototype.fetch returns undefined.

  • Modules/fetch/DOMWindowFetch.idl:
  • Modules/fetch/FetchBody.idl:
  • Modules/fetch/FetchHeaders.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/fetch/WorkerGlobalScopeFetch.idl:
  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webGL2Enabled):
(WebCore::RuntimeEnabledFeatures::setFetchAPIEnabled):
(WebCore::RuntimeEnabledFeatures::fetchAPIEnabled):

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::finishCreation):

Source/WebKit/mac:

Add a fetch API runtime flag based on preferences.
Disable fetch API by default.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences setCustomElementsEnabled:]):
(-[WebPreferences fetchAPIEnabled]):
(-[WebPreferences setFetchAPIEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
(-[WebView preferencesIdentifier]):
(-[WebView setUIDelegate:]):

Source/WebKit2:

Add a fetch API runtime flag based on preferences.
Disable fetch API by default.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesGetCustomElementsEnabled):
(WKPreferencesSetFetchAPIEnabled):
(WKPreferencesGetFetchAPIEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebGL2Enabled):
(WTR::TestRunner::setFetchAPIEnabled):
(WTR::TestRunner::setAllowUniversalAccessFromFileURLs):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
3:57 PM Changeset in webkit [199080] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix cloop some more.

  • runtime/RegExpInlines.h:

(JSC::RegExp::hasCodeFor):
(JSC::RegExp::hasMatchOnlyCodeFor):

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

Unreviewed, fix cloop.

  • jit/CCallHelpers.cpp:
3:55 PM Changeset in webkit [199078] by beidson@apple.com
  • 11 edits in trunk/Source/WebCore

Modern IDB: Get blob URLs/files all the way to the IDB backing store.
​https://bugs.webkit.org/show_bug.cgi?id=156248

Reviewed by Alex Christensen.

No new tests (No change in behavior).

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::putOrAddOnServer):

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):
(WebCore::IDBValue::isolatedCopy):

  • Modules/indexeddb/IDBValue.h:

(WebCore::IDBValue::blobURLs):
(WebCore::IDBValue::blobFilePaths):
(WebCore::IDBValue::encode):
(WebCore::IDBValue::decode):

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::addRecord):

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):

3:32 PM Changeset in webkit [199077] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Should not allow selecting no Timelines when editing in Timeline tab
​https://bugs.webkit.org/show_bug.cgi?id=156223
<rdar://problem/25552221>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._startEditingInstruments):
Register EnabledDidChange event handler for all tree elements.

(WebInspector.TimelineOverview.prototype._stopEditingInstruments):
Unregister event handler for enabled tree elements. The rest are removed
from the tree outline once editing has completed.

(WebInspector.TimelineOverview.prototype._timelineTreeElementEnabledDidChange):
Enable "Done" button if at least one timeline is enabled.

  • UserInterface/Views/TimelineTreeElement.js:

Dispatch a new event, EnabledDidChange, when the checkbox state changes.

(WebInspector.TimelineTreeElement.prototype._showCheckbox):
(WebInspector.TimelineTreeElement.prototype._clickHandler):
(WebInspector.TimelineTreeElement.prototype._dispatchEnabledDidChangeEvent):
(WebInspector.TimelineTreeElement):

3:17 PM Changeset in webkit [199076] by fpizlo@apple.com
  • 64 edits
    8 adds in trunk

JSC should use a shadow stack version of CHICKEN so that debuggers have the option of retrieving tail-deleted frames
​https://bugs.webkit.org/show_bug.cgi?id=155598

Reviewed by Saam Barati.
PerformanceTests/SunSpider:

  • shadow-chicken.yaml: Added.

Source/JavaScriptCore:


JSC is the first JSVM to have proper tail calls. This means that error.stack and the
debugger will appear to "delete" strict mode stack frames, if the call that this frame made
was in tail position. This is exactly what functional programmers expect - they don't want
the VM to waste resources on tail-deleted frames to ensure that it's legal to loop forever
using tail calls. It's also something that non-functional programmers fear. It's not clear
that tail-deleted frames would actually degrade the debugging experience, but the fear is
real, so it's worthwhile to do something about it.

It turns out that there is at least one tail call implementation that doesn't suffer from
this problem. It implements proper tail calls in the sense that you won't run out of memory
by tail-looping. It also has the power to show you tail-deleted frames in a backtrace, so
long as you haven't yet run out of memory. It's called CHICKEN Scheme, and it's one of my
favorite hacks:

​http://www.more-magic.net/posts/internals-gc.html

CHICKEN does many awesome things. The intuition from CHICKEN that we use here is a simple
one: what if a tail call still kept the tail-deleted frame, and the GC actually deleted that
frame only once we proved that there was insufficient memory to keep it around.

CHICKEN does this by reshaping the C stack with longjmp/setjmp. We can't do that because we
can have arbitrary native code, and that native code does not have relocatable stack frames.

But we can do something almost like CHICKEN on a shadow stack. It's a common trick to have a
VM maintain two stacks - the actual execution stack plus a shadow stack that has some extra
information. The shadow stack can be reshaped, moved, etc, since the VM tightly controls its
layout. The main stack can then continue to obey ABI rules.

This patch implements a mechanism for being able to display stack traces that include
tail-deleted frames. It uses a shadow stack that behaves like a CHICKEN stack: it has all
frames all the time, though we will collect the tail-deleted ones if the stack gets too big.
This new mechanism is called ShadowChicken, obviously: it's CHICKEN on a shadow stack.

ShadowChicken is always on, but individual CodeBlocks may make their own choices about
whether to opt into it. They will do that at bytecompile time based on the debugger mode on
their global object.

When no CodeBlock opts in, there is no overhead, since ShadowChicken ends up doing nothing
in that case. Well, except when exceptions are thrown. Then it might do some work, but it's
minor.

When all CodeBlocks opt in, there is about 6% overhead. That's too much overhead to enable
this all the time, but it's low enough to justify enabling in the Inspector. It's currently
enabled on all CodeBlocks only when you use an Option. Otherwise it will auto-enable if the
debugger is on.

Note that ShadowChicken attempts to gracefully handle the presence of stack frames that have
no logging. This is essential since we *can* have debugging enabled in one GlobalObject and
disabled in another. Also, some frames don't do ShadowChicken because they just haven't been
hacked to do it yet. Native frames fall into this category, as do the VM entry frames.

This doesn't yet wire ShadowChicken into DebuggerCallFrame. That will take more work. It
just makes a ShadowChicken stack walk function available to jsc. It's used from the
shadow-chicken tests.

  • API/JSContextRef.cpp:

(BacktraceFunctor::BacktraceFunctor):
(BacktraceFunctor::operator()):
(JSContextCreateBacktrace):

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::RecursionCheckFunctor::RecursionCheckFunctor):
(JSC::RecursionCheckFunctor::operator()):
(JSC::CodeBlock::noticeIncomingCall):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEnter):
(JSC::BytecodeGenerator::emitCallInTailPosition):
(JSC::BytecodeGenerator::emitCallVarargsInTailPosition):
(JSC::BytecodeGenerator::emitCallVarargs):
(JSC::BytecodeGenerator::emitLogShadowChickenPrologueIfNecessary):
(JSC::BytecodeGenerator::emitLogShadowChickenTailIfNecessary):
(JSC::BytecodeGenerator::emitCallDefineProperty):

  • bytecompiler/BytecodeGenerator.h:
  • debugger/DebuggerCallFrame.cpp:

(JSC::LineAndColumnFunctor::operator()):
(JSC::LineAndColumnFunctor::column):
(JSC::FindCallerMidStackFunctor::FindCallerMidStackFunctor):
(JSC::FindCallerMidStackFunctor::operator()):
(JSC::DebuggerCallFrame::DebuggerCallFrame):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLAbstractHeapRepository.cpp:
  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileSetRegExpObjectLastIndex):
(JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenPrologue):
(JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenTail):
(JSC::FTL::DFG::LowerDFGToB3::didOverflowStack):
(JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToB3::setupShadowChickenPacket):
(JSC::FTL::DFG::LowerDFGToB3::boolify):

  • heap/Heap.cpp:

(JSC::Heap::markRoots):
(JSC::Heap::visitSamplingProfiler):
(JSC::Heap::visitShadowChicken):
(JSC::Heap::traceCodeBlocksAndJITStubRoutines):
(JSC::Heap::collectImpl):

  • heap/Heap.h:
  • inspector/ScriptCallStackFactory.cpp:

(Inspector::CreateScriptCallStackFunctor::CreateScriptCallStackFunctor):
(Inspector::CreateScriptCallStackFunctor::operator()):
(Inspector::createScriptCallStack):

  • interpreter/CallFrame.h:

(JSC::ExecState::iterate):

  • interpreter/Interpreter.cpp:

(JSC::DumpRegisterFunctor::DumpRegisterFunctor):
(JSC::DumpRegisterFunctor::operator()):
(JSC::GetStackTraceFunctor::GetStackTraceFunctor):
(JSC::GetStackTraceFunctor::operator()):
(JSC::Interpreter::getStackTrace):
(JSC::GetCatchHandlerFunctor::handler):
(JSC::GetCatchHandlerFunctor::operator()):
(JSC::notifyDebuggerOfUnwinding):
(JSC::UnwindFunctor::UnwindFunctor):
(JSC::UnwindFunctor::operator()):
(JSC::UnwindFunctor::copyCalleeSavesToVMCalleeSavesBuffer):

  • interpreter/ShadowChicken.cpp: Added.

(JSC::ShadowChicken::Packet::dump):
(JSC::ShadowChicken::Frame::dump):
(JSC::ShadowChicken::ShadowChicken):
(JSC::ShadowChicken::~ShadowChicken):
(JSC::ShadowChicken::log):
(JSC::ShadowChicken::update):
(JSC::ShadowChicken::visitChildren):
(JSC::ShadowChicken::reset):
(JSC::ShadowChicken::dump):
(JSC::ShadowChicken::functionsOnStack):

  • interpreter/ShadowChicken.h: Added.

(JSC::ShadowChicken::Packet::Packet):
(JSC::ShadowChicken::Packet::tailMarker):
(JSC::ShadowChicken::Packet::throwMarker):
(JSC::ShadowChicken::Packet::prologue):
(JSC::ShadowChicken::Packet::tail):
(JSC::ShadowChicken::Packet::throwPacket):
(JSC::ShadowChicken::Packet::operator bool):
(JSC::ShadowChicken::Packet::isPrologue):
(JSC::ShadowChicken::Packet::isTail):
(JSC::ShadowChicken::Packet::isThrow):
(JSC::ShadowChicken::Frame::Frame):
(JSC::ShadowChicken::Frame::operator==):
(JSC::ShadowChicken::Frame::operator!=):
(JSC::ShadowChicken::log):
(JSC::ShadowChicken::logSize):
(JSC::ShadowChicken::addressOfLogCursor):
(JSC::ShadowChicken::logEnd):

  • interpreter/ShadowChickenInlines.h: Added.

(JSC::ShadowChicken::iterate):

  • interpreter/StackVisitor.h:

(JSC::StackVisitor::Frame::callee):
(JSC::StackVisitor::Frame::codeBlock):
(JSC::StackVisitor::Frame::bytecodeOffset):
(JSC::StackVisitor::Frame::inlineCallFrame):
(JSC::StackVisitor::Frame::isJSFrame):
(JSC::StackVisitor::Frame::isInlinedFrame):
(JSC::StackVisitor::visit):

  • jit/CCallHelpers.cpp: Added.

(JSC::CCallHelpers::logShadowChickenProloguePacket):
(JSC::CCallHelpers::logShadowChickenTailPacket):
(JSC::CCallHelpers::setupShadowChickenPacket):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::prepareForTailCallSlow):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_resume):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(FunctionJSCStackFunctor::FunctionJSCStackFunctor):
(FunctionJSCStackFunctor::operator()):
(functionClearSamplingFlags):
(functionShadowChickenFunctionsOnStack):
(functionReadline):

  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::llint_throw_stack_overflow_error):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • profiler/ProfileGenerator.cpp:

(JSC::AddParentForConsoleStartFunctor::foundParent):
(JSC::AddParentForConsoleStartFunctor::operator()):

  • runtime/Error.cpp:

(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()):
(JSC::addErrorInfoAndGetBytecodeOffset):

  • runtime/JSFunction.cpp:

(JSC::RetrieveArgumentsFunctor::result):
(JSC::RetrieveArgumentsFunctor::operator()):
(JSC::retrieveArguments):
(JSC::RetrieveCallerFunctionFunctor::result):
(JSC::RetrieveCallerFunctionFunctor::operator()):
(JSC::retrieveCallerFunction):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::GlobalFuncProtoGetterFunctor::result):
(JSC::GlobalFuncProtoGetterFunctor::operator()):
(JSC::globalFuncProtoGetter):
(JSC::GlobalFuncProtoSetterFunctor::allowsAccess):
(JSC::GlobalFuncProtoSetterFunctor::operator()):

  • runtime/NullSetterFunction.cpp:

(JSC::GetCallerStrictnessFunctor::GetCallerStrictnessFunctor):
(JSC::GetCallerStrictnessFunctor::operator()):
(JSC::GetCallerStrictnessFunctor::callerIsStrict):
(JSC::callerIsStrict):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructorGetPrototypeOfFunctor::result):
(JSC::ObjectConstructorGetPrototypeOfFunctor::operator()):
(JSC::objectConstructorGetPrototypeOf):

  • runtime/Options.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::SetEnabledProfilerFunctor::operator()):

  • runtime/VM.h:

(JSC::VM::shouldBuilderPCToCodeOriginMapping):
(JSC::VM::bytecodeIntrinsicRegistry):
(JSC::VM::shadowChicken):

  • tests/stress/resources/shadow-chicken-support.js: Added.

(describeFunction):
(describeArray):
(expectStack):
(initialize):

  • tests/stress/shadow-chicken-disabled.js: Added.

(test1.foo):
(test1.bar):
(test1.baz):
(test1):
(test2.foo):
(test2.bar):
(test2.baz):
(test2):
(test3.foo):
(test3.bar):
(test3.baz):
(test3):

  • tests/stress/shadow-chicken-enabled.js: Added.

(test1.foo):
(test1.bar):
(test1.baz):
(test1):
(test2.foo):
(test2.bar):
(test2.baz):
(test2):
(test3.bob):
(test3.thingy):
(test3.foo):
(test3.bar):
(test3.baz):
(test3):
(test4.bob):
(test4.thingy):
(test4.foo):
(test4.bar):
(test4.baz):
(test4):
(test5.foo):
(test5):

  • tools/JSDollarVMPrototype.cpp:

(JSC::CallerFrameJITTypeFunctor::CallerFrameJITTypeFunctor):
(JSC::CallerFrameJITTypeFunctor::operator()):
(JSC::CallerFrameJITTypeFunctor::jitType):
(JSC::functionLLintTrue):
(JSC::CellAddressCheckFunctor::CellAddressCheckFunctor):
(JSC::CellAddressCheckFunctor::operator()):
(JSC::JSDollarVMPrototype::isValidCell):
(JSC::JSDollarVMPrototype::isValidCodeBlock):
(JSC::JSDollarVMPrototype::codeBlockForFrame):
(JSC::PrintFrameFunctor::PrintFrameFunctor):
(JSC::PrintFrameFunctor::operator()):
(JSC::printCallFrame):

Source/WebCore:

Fixed some uses of the stack walking functor to obey the new lambda-friendly API, which
requires that operator() is const.

No new tests because no change in behavior.

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::SendFunctor::column):
(WebCore::SendFunctor::url):
(WebCore::SendFunctor::operator()):
(WebCore::JSXMLHttpRequest::send):

  • testing/Internals.cpp:

(WebCore::GetCallerCodeBlockFunctor::GetCallerCodeBlockFunctor):
(WebCore::GetCallerCodeBlockFunctor::operator()):
(WebCore::GetCallerCodeBlockFunctor::codeBlock):
(WebCore::Internals::parserMetaData):

3:13 PM Changeset in webkit [199075] by fpizlo@apple.com
  • 52 edits
    17 adds in trunk

Source/JavaScriptCore:
DFG and FTL should constant-fold RegExpExec, RegExpTest, and StringReplace
​https://bugs.webkit.org/show_bug.cgi?id=155270

Reviewed by Saam Barati.

This enables constant-folding of RegExpExec, RegExpTest, and StringReplace.

It's now possible to run Yarr on the JIT threads. Since previous work on constant-folding
strings gave the DFG an API for reasoning about JSString constants in terms of
JIT-thread-local WTF::Strings, it's now super easy to just pass strings to Yarr and build IR
based on the results.

But RegExpExec is hard: the folded version still must allocate a RegExpMatchesArray. We must
use the same Structure that the code would have used or else we'll pollute the program's
inline caches. Also, RegExpMatchesArray.h|cpp will allocate the array and its named
properties in one go - we don't want to lose that optimization. So, this patch enables
MaterializeNewObject to allocate objects or arrays with any number of indexed or named
properties. Previously it could only handle objects (but not arrays) and named properties
(but not indexed ones).

This also adds a few minor things for setting the RegExpConstructor cached result.

This is about a 2x speed-up on microbenchmarks when we fold a match success and about a
8x speed-up when we fold a match failure. It's a 10% speed-up on Octane/regexp.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

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

  • dfg/DFGInsertionSet.cpp:

(JSC::DFG::InsertionSet::insertSlow):
(JSC::DFG::InsertionSet::execute):

  • dfg/DFGInsertionSet.h:

(JSC::DFG::InsertionSet::insertCheck):

  • dfg/DFGLazyJSValue.cpp:

(JSC::DFG::LazyJSValue::tryGetString):

  • dfg/DFGMayExit.cpp:

(JSC::DFG::mayExit):

  • dfg/DFGNode.h:

(JSC::DFG::StackAccessData::flushedAt):
(JSC::DFG::OpInfo::OpInfo): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGObjectMaterializationData.cpp:

(JSC::DFG::ObjectMaterializationData::dump):
(JSC::DFG::PhantomPropertyValue::dump): Deleted.
(JSC::DFG::ObjectMaterializationData::oneWaySimilarityScore): Deleted.
(JSC::DFG::ObjectMaterializationData::similarityScore): Deleted.

  • dfg/DFGObjectMaterializationData.h:

(JSC::DFG::PhantomPropertyValue::PhantomPropertyValue): Deleted.
(JSC::DFG::PhantomPropertyValue::operator==): Deleted.

  • dfg/DFGOpInfo.h: Added.

(JSC::DFG::OpInfo::OpInfo):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGPromotedHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGPromotedHeapLocation.h:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::~SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::emitGetLength):
(JSC::DFG::SpeculativeJIT::compileLazyJSConstant):
(JSC::DFG::SpeculativeJIT::compileMaterializeNewObject):
(JSC::DFG::SpeculativeJIT::compileRecordRegExpCachedResult):
(JSC::DFG::SpeculativeJIT::emitAllocateJSArray): Deleted.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::emitAllocateDestructibleObject):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::StrengthReductionPhase):
(JSC::DFG::StrengthReductionPhase::handleNode):
(JSC::DFG::StrengthReductionPhase::handleCommutativity):
(JSC::DFG::StrengthReductionPhase::executeInsertionSet):

  • dfg/DFGValidate.cpp:

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

  • ftl/FTLAbstractHeapRepository.cpp:
  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileSetRegExpObjectLastIndex):
(JSC::FTL::DFG::LowerDFGToB3::compileRecordRegExpCachedResult):
(JSC::FTL::DFG::LowerDFGToB3::didOverflowStack):
(JSC::FTL::DFG::LowerDFGToB3::storageForTransition):
(JSC::FTL::DFG::LowerDFGToB3::initializeArrayElements):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::isNotCellOrMisc):
(JSC::FTL::DFG::LowerDFGToB3::unboxDouble):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationNewObjectWithButterfly): Deleted.

  • ftl/FTLOperations.h:
  • inspector/ContentSearchUtilities.cpp:
  • runtime/JSObject.h:

(JSC::JSObject::createRawObject):
(JSC::JSFinalObject::create):

  • runtime/RegExp.cpp:

(JSC::RegExp::compile):
(JSC::RegExp::match):
(JSC::RegExp::matchConcurrently):
(JSC::RegExp::compileMatchOnly):
(JSC::RegExp::deleteCode):

  • runtime/RegExp.h:
  • runtime/RegExpCachedResult.h:

(JSC::RegExpCachedResult::offsetOfLastRegExp):
(JSC::RegExpCachedResult::offsetOfLastInput):
(JSC::RegExpCachedResult::offsetOfResult):
(JSC::RegExpCachedResult::offsetOfReified):

  • runtime/RegExpConstructor.h:

(JSC::RegExpConstructor::offsetOfCachedResult):

  • runtime/RegExpInlines.h:

(JSC::RegExp::hasCodeFor):
(JSC::RegExp::compileIfNecessary):
(JSC::RegExp::matchInline):
(JSC::RegExp::hasMatchOnlyCodeFor):
(JSC::RegExp::compileIfNecessaryMatchOnly):

  • runtime/RegExpObjectInlines.h:

(JSC::RegExpObject::execInline):

  • runtime/StringPrototype.cpp:

(JSC::substituteBackreferencesSlow):
(JSC::substituteBackreferencesInline):
(JSC::substituteBackreferences):
(JSC::StringRange::StringRange):

  • runtime/StringPrototype.h:
  • runtime/VM.h:
  • tests/stress/simple-regexp-exec-folding-fail.js: Added.

(foo):

  • tests/stress/simple-regexp-exec-folding.js: Added.

(foo):

  • tests/stress/simple-regexp-test-folding-fail.js: Added.

(foo):

  • tests/stress/simple-regexp-test-folding.js: Added.

(foo):

  • yarr/RegularExpression.cpp:
  • yarr/Yarr.h:
  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::interpret):
(JSC::Yarr::ByteCompiler::ByteCompiler):
(JSC::Yarr::ByteCompiler::compile):
(JSC::Yarr::ByteCompiler::checkInput):
(JSC::Yarr::byteCompile):
(JSC::Yarr::interpret):

  • yarr/YarrInterpreter.h:

(JSC::Yarr::BytecodePattern::BytecodePattern):

Source/WTF:
DFG and FTL should constant-fold RegExpExec
​https://bugs.webkit.org/show_bug.cgi?id=155270

Reviewed by Saam Barati.

Make executeInsertions() return the amount by which the vector increased in size. This is a
convenient feature that I use in DFG::InsertionSet.

  • wtf/Insertion.h:

(WTF::executeInsertions):

LayoutTests:
DFG and FTL should constant-fold RegExpExec
​https://bugs.webkit.org/show_bug.cgi?id=155270

Reviewed by Saam Barati.

  • js/regress/script-tests/simple-regexp-exec-folding-fail.js: Added.
  • js/regress/script-tests/simple-regexp-exec-folding.js: Added.
  • js/regress/script-tests/simple-regexp-test-folding-fail.js: Added.
  • js/regress/script-tests/simple-regexp-test-folding.js: Added.
  • js/regress/simple-regexp-exec-folding-expected.txt: Added.
  • js/regress/simple-regexp-exec-folding-fail-expected.txt: Added.
  • js/regress/simple-regexp-exec-folding-fail.html: Added.
  • js/regress/simple-regexp-exec-folding.html: Added.
  • js/regress/simple-regexp-test-folding-expected.txt: Added.
  • js/regress/simple-regexp-test-folding-fail-expected.txt: Added.
  • js/regress/simple-regexp-test-folding-fail.html: Added.
  • js/regress/simple-regexp-test-folding.html: Added.
3:12 PM Changeset in webkit [199074] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Make the @webkit link on the front page link to the feed
​https://bugs.webkit.org/show_bug.cgi?id=156244

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/widgets/twitter.php:
2:36 PM Changeset in webkit [199073] by keith_miller@apple.com
  • 40 edits
    1 add in trunk/Source/JavaScriptCore

We should support the ability to do a non-effectful getById
​https://bugs.webkit.org/show_bug.cgi?id=156116

Reviewed by Benjamin Poulain.

Currently, there is no way in JS to do a non-effectful getById. A non-effectful getById is
useful because it enables us to take different code paths based on values that we would
otherwise not be able to have knowledge of. This patch adds this new feature called
try_get_by_id that will attempt to do as much of a get_by_id as possible without performing
an effectful behavior. Thus, try_get_by_id will return the value if the slot is a value, the
GetterSetter object if the slot is a normal accessor (not a CustomGetterSetter) and
undefined if the slot is unset. If the slot is proxied or any other cases then the result
is null. In theory, if we ever wanted to check for null we could add a sentinal object to
the global object that indicates we could not get the result.

In order to implement this feature we add a new enum GetByIdKind that indicates what to do
for accessor properties in PolymorphicAccess. If the GetByIdKind is pure then we treat the
get_by_id the same way we would for load and return the value at the appropriate offset.
Additionally, in order to make sure the we can properly compare the GetterSetter object
with === GetterSetters are now JSObjects. This comes at the cost of eight extra bytes on the
GetterSetter object but it vastly simplifies the patch. Additionally, the extra bytes are
likely to have little to no impact on memory usage as normal accessors are generally rare.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createDefaultConstructor):
(JSC::BuiltinExecutables::createBuiltinExecutable):
(JSC::createBuiltinExecutable):
(JSC::BuiltinExecutables::createExecutable):
(JSC::createExecutableInternal): Deleted.

  • builtins/BuiltinExecutables.h:
  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::tryGet):
(JSC::AccessCase::generate):
(WTF::printInternal):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessCase::isGet): Deleted.
(JSC::AccessCase::isPut): Deleted.
(JSC::AccessCase::isIn): Deleted.

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitTryGetById):

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

(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetById):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::getById):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITGetByIdGenerator::JITGetByIdGenerator):

  • jit/JITInlineCacheGenerator.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id):

  • jit/Repatch.cpp:

(JSC::repatchByIdSelfAccess):
(JSC::appropriateOptimizingGetByIdFunction):
(JSC::appropriateGenericGetByIdFunction):
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::resetGetByID):

  • jit/Repatch.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionGetGetterSetter):
(functionCreateBuiltin):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • runtime/GetterSetter.cpp:
  • runtime/GetterSetter.h:
  • runtime/JSType.h:
  • runtime/PropertySlot.cpp:

(JSC::PropertySlot::getPureResult):

  • runtime/PropertySlot.h:
  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::getOwnPropertySlotCommon):

  • tests/stress/try-get-by-id.js: Added.

(tryGetByIdText):
(getCaller.obj.1.throw.new.Error.let.func):
(getCaller.obj.1.throw.new.Error):
(throw.new.Error.get let):
(throw.new.Error.):
(throw.new.Error.let.get createBuiltin):
(get let):
(let.get createBuiltin):
(let.func):
(get let.func):
(get throw):

2:27 PM Changeset in webkit [199072] by beidson@apple.com
  • 25 edits in trunk/Source

Modern IDB: Replace use of SerializedScriptValue with IDBValue.
​https://bugs.webkit.org/show_bug.cgi?id=156242

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No change in behavior).

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::putOrAddOnServer):

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):
(WebCore::IDBValue::isolatedCopy):

  • Modules/indexeddb/IDBValue.h:

(WebCore::IDBValue::data):
(WebCore::IDBValue::encode):
(WebCore::IDBValue::decode):

  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::putOrAdd):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::putOrAdd):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::putOrAdd):

  • Modules/indexeddb/shared/InProcessIDBServer.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/CrossThreadCopier.cpp:

(WebCore::IDBValue>::copy):

  • platform/CrossThreadCopier.h:
  • platform/ThreadSafeDataBuffer.h:

(WebCore::ThreadSafeDataBuffer::encode):
(WebCore::ThreadSafeDataBuffer::decode):

Source/WebKit2:

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::putOrAdd):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::putOrAdd):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
1:24 PM Changeset in webkit [199071] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Avoid context save/restore in GraphicsContext::drawNativeImage
​https://bugs.webkit.org/show_bug.cgi?id=156173

Patch by Said Abou-Hallawa <​sabouhallawa@apple.com> on 2016-04-05
Reviewed by Simon Fraser.

CG save/restore is a costly operation. Try to avoid it, if possible, in
GraphicsContext::drawNativeImage. If no clipping is involved, don't save/
save/restore the GraphicsContext.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/graphics/cg/GraphicsContextCG.h:

(WebCore::CGContextStateSaver::didSave):

  • platform/spi/cg/CoreGraphicsSPI.h:
1:05 PM Changeset in webkit [199070] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

jsc-layout-tests.yaml/js/script-tests/regress-141098.js failing on Yosemite Debug after r198989
​https://bugs.webkit.org/show_bug.cgi?id=156187

Reviewed by Filip Pizlo.

This is a speculative fix. Lets see if the prevents the timeout.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseStatementListItem):

12:58 PM Changeset in webkit [199069] by fpizlo@apple.com
  • 15 edits
    5 adds in trunk

PolymorphicAccess should have a MegamorphicLoad case
​https://bugs.webkit.org/show_bug.cgi?id=156182

Reviewed by Geoffrey Garen and Keith Miller.

Source/JavaScriptCore:

This introduces a new case to PolymorphicAccess called MegamorphicLoad. This inlines the lookup in
the PropertyTable. It's cheaper than switching on a huge number of cases and it's cheaper than
calling into C++ to do the same job - particularly since inlining the lookup into an access means
that we can precompute the hash code.

When writing the inline code for the hashtable lookup, I found that our hashing algorithm was not
optimal. It used a double-hashing method for reducing collision pathologies. This is great for
improving the performance of some worst-case scenarios. But this misses the point of a hashtable: we
want to optimize the average-case performance. When optimizing for average-case, we can choose to
either focus on maximizing the likelihood of the fast case happening, or to minimize the cost of the
worst-case, or to minimize the cost of the fast case. Even a very basic hashtable will achieve a high
probability of hitting the fast case. So, doing work to reduce the likelihood of a worst-case
pathology only makes sense if it also preserves the good performance of the fast case, or reduces the
likelihood of the worst-case by so much that it's a win for the average case even with a slow-down in
the fast case.

I don't believe, based on looking at how the double-hashing is implemented, that it's possible that
this preserves the good performance of the fast case. It requires at least one more value to be live
around the loop, and dramatically increases the register pressure at key points inside the loop. The
biggest offender is the doubleHash() method itself. There is no getting around how bad this is: if
the compiler live-range-splits that method to death to avoid degrading register pressure elsewhere
then we will pay a steep price anytime we take the second iteration around the loop; but if the
compiler doesn't split around the call then the hashtable lookup fast path will be full of spills on
some architectures (I performed biological register allocation and found that I needed 9 registers
for complete lookup, while x86-64 has only 6 callee-saves; OTOH ARM64 has 10 callee-saves so it might
be better off).

Hence, this patch changes the hashtable lookup to use simple linear probing. This was not a slow-down
on anything, and it made MegamorphicLoad much more sensible since it is less likely to have to spill.

There are some other small changes in this patch, like rationalizing the IC's choice between giving
up after a repatch (i.e. never trying again) and just pretending that nothing happened (so we can
try to repatch again in the future). It looked like the code in Repatch.cpp was set up to be able to
choose between those options, but we weren't fully taking advantage of it because the
regenerateWithCase() method just returned null for any failure, and didn't say whether it was the
sort of failure that renders the inline cache unrepatchable (like memory allocation failure). Now
this is all made explicit. I wanted to make sure this change happened in this patch since the
MegamorphicLoad code automagically generates a MegamorphicLoad case by coalescing other cases. Since
this is intended to avoid blowing out the cache and making it unrepatchable, I wanted to make sure
that the rules for giving up were something that made sense to me.

This is a big win on microbenchmarks. It's neutral on traditional JS benchmarks. It's a slight
speed-up for page loading, because many real websites like to have megamorphic property accesses.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationResult::dump):
(JSC::AccessGenerationState::addWatchpoint):
(JSC::AccessCase::get):
(JSC::AccessCase::megamorphicLoad):
(JSC::AccessCase::replace):
(JSC::AccessCase::guardedByStructureCheck):
(JSC::AccessCase::couldStillSucceed):
(JSC::AccessCase::canBeReplacedByMegamorphicLoad):
(JSC::AccessCase::canReplace):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generate):
(JSC::PolymorphicAccess::PolymorphicAccess):
(JSC::PolymorphicAccess::~PolymorphicAccess):
(JSC::PolymorphicAccess::regenerateWithCases):
(JSC::PolymorphicAccess::regenerateWithCase):
(WTF::printInternal):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessCase::isGet):
(JSC::AccessCase::isPut):
(JSC::AccessCase::isIn):
(JSC::AccessGenerationResult::AccessGenerationResult):
(JSC::AccessGenerationResult::operator==):
(JSC::AccessGenerationResult::operator!=):
(JSC::AccessGenerationResult::operator bool):
(JSC::AccessGenerationResult::kind):
(JSC::AccessGenerationResult::code):
(JSC::AccessGenerationResult::madeNoChanges):
(JSC::AccessGenerationResult::gaveUp):
(JSC::AccessGenerationResult::generatedNewCode):
(JSC::PolymorphicAccess::isEmpty):
(JSC::AccessGenerationState::AccessGenerationState):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::addAccessCase):

  • bytecode/StructureStubInfo.h:
  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
(JSC::AssemblyHelpers::loadProperty):
(JSC::emitRandomThunkImpl):
(JSC::AssemblyHelpers::emitRandomThunk):
(JSC::AssemblyHelpers::emitLoadStructure):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::loadValue):
(JSC::AssemblyHelpers::moveValueRegs):
(JSC::AssemblyHelpers::argumentsStart):
(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
(JSC::AssemblyHelpers::emitLoadStructure): Deleted.

  • jit/GPRInfo.cpp:

(JSC::JSValueRegs::dump):

  • jit/GPRInfo.h:

(JSC::JSValueRegs::uses):

  • jit/Repatch.cpp:

(JSC::replaceWithJump):
(JSC::tryCacheGetByID):
(JSC::tryCachePutByID):
(JSC::tryRepatchIn):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):

  • runtime/Options.h:
  • runtime/PropertyMapHashTable.h:

(JSC::PropertyTable::begin):
(JSC::PropertyTable::find):
(JSC::PropertyTable::get):

  • runtime/Structure.h:

LayoutTests:

  • js/regress/megamorphic-load-expected.txt: Added.
  • js/regress/megamorphic-load.html: Added.
  • js/regress/script-tests/megamorphic-load.js: Added.
  • js/regress/string-repeat-not-resolving-no-inline-expected.txt: Added.
  • js/regress/string-repeat-not-resolving-no-inline.html: Added.
12:40 PM Changeset in webkit [199068] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Add a "notifyutil" callback for dumping the RenderLayer tree, and move the registration to Page code
​https://bugs.webkit.org/show_bug.cgi?id=156224

Reviewed by Zalan Bujtas.

Make it possible to run:

notifyutil -p com.apple.WebKit.showLayerTree

on the command line and have it dump out layer trees for all live documents, in
debug builds.

Move callback registration from RenderObject's constructor to Page.

  • page/mac/PageMac.mm:

(WebCore::Page::platformInitialize):

  • rendering/RenderObject.cpp:

(WebCore::printLayerTreeForLiveDocuments):
(WebCore::RenderObject::RenderObject): Deleted.

  • rendering/RenderObject.h:
12:38 PM Changeset in webkit [199067] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r199042. rdar://problem/25533763

12:38 PM Changeset in webkit [199066] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r198035. rdar://problem/25467558

12:29 PM Changeset in webkit [199065] by keith_miller@apple.com
  • 2 edits in trunk/Tools

Make Keith a reviewer!
​https://bugs.webkit.org/show_bug.cgi?id=156246

Reviewed by Mark Lam.

  • Scripts/webkitpy/common/config/contributors.json:
10:53 AM Changeset in webkit [199064] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

Un-marking plugins/focus.html as flaky on mac

It hasn't flaked after ​https://trac.webkit.org/r199054

  • platform/mac/TestExpectations:
10:51 AM Changeset in webkit [199063] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Brazilian Portuguese translation
​https://bugs.webkit.org/show_bug.cgi?id=156236

Patch by Rafael Fontenelle <​rafaelff@gnome.org> on 2016-04-05
Rubber-stamped by Michael Catanzaro.

  • pt_BR.po:
9:54 AM Changeset in webkit [199062] by commit-queue@webkit.org
  • 18 edits
    6 adds in trunk

[WebGL2] Turn the ENABLE_WEBGL2 flag on
​https://bugs.webkit.org/show_bug.cgi?id=156061
<rdar://problem/25463193>

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:
  • runtime/CommonIdentifiers.h:

Define the conditionalized classes WebGL2RenderingContext and WebGLVertexArrayObject.

Source/WebCore:

Conditionalize the definition of the WebGL2RenderingContext and WebGLVertexArrayObject globals
based on the new WebGL2 runtime flag we introduced in ​https://webkit.org/b/156166.

Turning the ENABLE_WEBGL2 flag on caused a host of build errors which we fix here. A non-obvious
error was in code generated from the html/canvas/WebGL2RenderingContext.idl file which was solved
by updating the getBufferSubData() method to the current signature as of the March 29 Editor's
Draft of the WebGL 2 Specification (​https://www.khronos.org/registry/webgl/specs/latest/2.0/).
Missing JSC headers in WebGL2RenderingContext.cpp also caused some linking errors in Release builds.

Tests: webgl/webgl-vertex-array-object-defined.html

webgl/webgl2-rendering-context-defined.html
webgl/webgl2-rendering-context-obtain.html

  • Configurations/FeatureDefines.xcconfig:
  • bindings/js/JSWebGL2RenderingContextCustom.cpp:

(WebCore::JSWebGL2RenderingContext::getInternalformatParameter):
(WebCore::JSWebGL2RenderingContext::getQueryParameter):
(WebCore::JSWebGL2RenderingContext::getSamplerParameter):
(WebCore::JSWebGL2RenderingContext::getSyncParameter):
(WebCore::JSWebGL2RenderingContext::getIndexedParameter):
(WebCore::JSWebGL2RenderingContext::getActiveUniformBlockParameter):
(WebCore::JSWebGL2RenderingContext::getActiveUniformBlockName):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::is3dType):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getBufferSubData): Deleted.

  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

  • html/canvas/WebGLVertexArrayObject.idl:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

LayoutTests:

  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:

The WebGL2RenderingContext and WebGLVertexArrayObject classes are now defined
so expectations for this test which lists the configuration of global constructors
needed to be updated.

  • webgl/webgl-vertex-array-object-defined-expected.txt: Added.
  • webgl/webgl-vertex-array-object-defined.html: Added.

Test checking that WebGLVertexArrayObject is defined.

  • webgl/webgl2-rendering-context-defined-expected.txt: Added.
  • webgl/webgl2-rendering-context-defined.html: Added.

Test checking that WebGL2RenderingContext is defined.

  • webgl/webgl2-rendering-context-obtain-expected.txt: Added.
  • webgl/webgl2-rendering-context-obtain.html: Added.

Test checking that asking for a "webgl2" context returns a WebGL2RenderingContext.

9:50 AM Changeset in webkit [199061] by Chris Dumez
  • 4 edits
    3 adds in trunk

We sometimes fail to remove outdated entry from the disk cache after revalidation and when the resource is no longer cacheable
​https://bugs.webkit.org/show_bug.cgi?id=156048
<rdar://problem/25514480>

Reviewed by Antti Koivisto.

Source/WebKit2:

We would sometimes fail to remove outdated entry from the disk cache
after revalidation and when the resource is no longer cacheable. This
was due to Storage::removeFromPendingWriteOperations() only removing
the first pending write operation with a given key instead of actually
removing all of the operations with this key.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::removeFromPendingWriteOperations):

  • NetworkProcess/cache/NetworkCacheStorage.h:

LayoutTests:

Add test coverage for the bug.

  • http/tests/cache/disk-cache/disk-cache-remove-several-pending-writes-expected.txt: Added.
  • http/tests/cache/disk-cache/disk-cache-remove-several-pending-writes.html: Added.
  • http/tests/cache/disk-cache/resources/json.php: Added.
9:45 AM Changeset in webkit [199060] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Shadow DOM: :host() From The First Shadow Context Should Not Style All Shadow Context
​https://bugs.webkit.org/show_bug.cgi?id=156235
<rdar://problem/24668206>

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/shadow-dom/host-style-sharing.html

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::resolve):
(WebCore::Style::SharingResolver::canShareStyleWithElement):

Disallow style sharing for shadow hosts affected by :host pseudo class rules.

LayoutTests:

  • fast/shadow-dom/host-style-sharing-expected.html: Added.
  • fast/shadow-dom/host-style-sharing.html: Added.
9:22 AM Changeset in webkit [199059] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Speculative build fix after r199043

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::wireFormatVersion):
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):

  • bindings/js/SerializedScriptValue.h:

(WebCore::SerializedScriptValue::data):
(WebCore::SerializedScriptValue::hasBlobURLs):
(WebCore::SerializedScriptValue::createFromWireBytes):
Initializer lists weren't the problem. Missing precompiler macros was.

9:15 AM Changeset in webkit [199058] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Speculative build fix after r199043

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
Explicitly call constructor instead of using an initializer list.

8:48 AM Changeset in webkit [199057] by calvaris@igalia.com
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix with GSTREAMER_GL active.

Caused by r198655.

(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: Changed return type.
8:04 AM Changeset in webkit [199056] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

Render tree teardown should be iterative
​https://bugs.webkit.org/show_bug.cgi?id=156233

Reviewed by Andreas Kling.

  • dom/ContainerNode.cpp:

(WebCore::destroyRenderTreeIfNeeded):
(WebCore::ContainerNode::takeAllChildrenFrom):

  • dom/Document.cpp:

(WebCore::Document::destroyRenderTree):

  • dom/Element.cpp:

(WebCore::disconnectPseudoElement):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::prepareForDocumentSuspension):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::updateSelectedChild):

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):
(WebCore::RenderTreeUpdater::updateTextRenderer):
(WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement):
(WebCore::RenderTreeUpdater::tearDownRenderers):

Tear down render tree using ComposedTreeIterator for traversal.

(WebCore::RenderTreeUpdater::tearDownRenderer):

  • style/RenderTreeUpdater.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::ensurePlaceholderStyle):
(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::resetStyleForNonRenderedDescendants):
(WebCore::Style::affectsRenderedSubtree):
(WebCore::Style::SelectorFilterPusher::SelectorFilterPusher): Deleted.
(WebCore::Style::SelectorFilterPusher::push): Deleted.
(WebCore::Style::SelectorFilterPusher::~SelectorFilterPusher): Deleted.

Unused class.

(WebCore::Style::detachTextRenderer): Deleted.
(WebCore::Style::detachChildren): Deleted.
(WebCore::Style::detachShadowRoot): Deleted.
(WebCore::Style::detachSlotAssignees): Deleted.
(WebCore::Style::detachRenderTree): Deleted.

Remove the old recursive code.

  • style/StyleTreeResolver.h:
5:54 AM WebKitGTK/2.4.x edited by tpopela@redhat.com
(diff)
4:36 AM WebKitGTK/2.4.x edited by tpopela@redhat.com
(diff)
4:22 AM Changeset in webkit [199055] by commit-queue@webkit.org
  • 20 edits in trunk

[WebGL2] Allow enabling WebGL2 with a runtime flag
​https://bugs.webkit.org/show_bug.cgi?id=156166
<rdar://problem/25526929>

Source/WebCore:

Added new runtime flags for WebGL2.

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Dean Jackson.

  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebGL2Enabled):
(WebCore::RuntimeEnabledFeatures::webGL2Enabled):

Source/WebKit/mac:

Set the WebGL2 runtime flag based on preferences, disabled by default.

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Dean Jackson.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences webGL2Enabled]):
(-[WebPreferences setWebGL2Enabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Set the WebGL2 runtime flag based on preferences, disabled by default.

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Dean Jackson.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetWebGL2Enabled):
(WKPreferencesGetWebGL2Enabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WTF:

Removed the manual overrides of ENABLE_WEBGL2.

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Dean Jackson.

  • wtf/FeatureDefines.h:

Tools:

Always enable WebGL2 during testing.

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Dean Jackson.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebGL2Enabled):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
3:29 AM Changeset in webkit [199054] by Antti Koivisto
  • 25 edits
    1 delete in trunk

Use RenderTreeUpdater for text node mutations
​https://bugs.webkit.org/show_bug.cgi?id=156107

Reviewed by Andreas Kling.

Source/WebCore:

Use the new mechanism for updating render tree after text node content changes.

  • dom/CharacterData.cpp:

(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):

  • dom/Text.cpp:

(WebCore::Text::createWithLengthLimit):
(WebCore::Text::updateRendererAfterContentChange):

Update using RenderTreeUpdater.

(WebCore::Text::formatForDebugger):

  • dom/Text.h:

(WebCore::Text::Text):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::resetStyleForNonRenderedDescendants):
(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::elementImplicitVisibility):
(WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded): Deleted.
(WebCore::Style::textRendererIsNeeded): Deleted.
(WebCore::Style::createTextRendererIfNeeded): Deleted.
(WebCore::Style::attachTextRenderer): Deleted.
(WebCore::Style::detachTextRenderer): Deleted.
(WebCore::Style::updateTextRendererAfterContentChange): Deleted.
(WebCore::Style::resolveTextNode): Deleted.

Kill the old code paths.

  • style/StyleTreeResolver.h:

LayoutTests:

Mostly just revert non-rendered whitespace related changes from the earlier patches.

  • editing/style/remove-underline-from-stylesheet-expected.txt:
  • editing/style/typing-style-003-expected.txt:
  • platform/ios-simulator/editing/style/typing-style-003-expected.txt: Removed.
  • platform/mac-wk2/editing/mac/spelling/autocorrection-contraction-expected.txt:
  • platform/mac/editing/inserting/editable-html-element-expected.txt:
  • platform/mac/editing/inserting/editing-empty-divs-expected.txt:
  • platform/mac/editing/inserting/insert-at-end-02-expected.txt:
  • platform/mac/editing/pasteboard/4989774-expected.txt:
  • platform/mac/editing/selection/4983858-expected.txt:
12:04 AM Changeset in webkit [199053] by Hunseop Jeong
  • 3 edits in trunk/Source/WebCore

[Curl][Soup] Fix the build after r199039
​https://bugs.webkit.org/show_bug.cgi?id=156229

Reviewed by Žan Doberšek.

  • platform/network/curl/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/soup/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

Apr 4, 2016:

11:30 PM Changeset in webkit [199052] by zandobersek@gmail.com
  • 2 edits in trunk/Source/JavaScriptCore

Add missing EABI_32BIT_DUMMY_ARG arguments for some callOperation(J_JITOperation_EGReoJ, ...) overloads
​https://bugs.webkit.org/show_bug.cgi?id=156161

Reviewed by Yusuke Suzuki.

r197641 added a couple of callOperation(J_JITOperation_EGReoJ, ...) overloads
that handle arguments split into the tag and the payload. The two were split
between the last argument register and the stack on 32-bit ARM EABI systems,
causing incorrect behavior.

Adding EABI_32BIT_DUMMY_ARG pushes the tag and payload together onto the
stack, removing the issue.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

11:18 PM Changeset in webkit [199051] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.26.0.2/Source/WebCore

Merged r198854. rdar://problem/25489003

11:17 PM Changeset in webkit [199050] by bshafiei@apple.com
  • 13 edits in tags/Safari-602.1.26.0.2/Source/WebCore

Merged r198850. rdar://problem/25489003

11:16 PM Changeset in webkit [199049] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.26.0.2/Source

Versioning.

11:15 PM Changeset in webkit [199048] by zandobersek@gmail.com
  • 4 edits
    2 adds in trunk/Source/WebKit2

[ThreadedCompositor] Move CompositingRunLoop class into a separate file
​https://bugs.webkit.org/show_bug.cgi?id=156170

Reviewed by Michael Catanzaro.

Move the CompositingRunLoop class from the ThreadedCompositor.cpp file
into its own implementation file, with the class declaration placed
into the accompanying header file. This follows the general rule of
keeping different class implementations in separate files.

No change in behavior, just refactoring.

  • PlatformGTK.cmake:
  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: Added.

(WebKit::CompositingRunLoop::CompositingRunLoop):
(WebKit::CompositingRunLoop::callOnCompositingRunLoop):
(WebKit::CompositingRunLoop::setUpdateTimer):
(WebKit::CompositingRunLoop::stopUpdateTimer):
(WebKit::CompositingRunLoop::updateTimerFired):

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h: Added.

(WebKit::CompositingRunLoop::runLoop):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::CompositingRunLoop::CompositingRunLoop): Deleted.
(WebKit::CompositingRunLoop::callOnCompositingRunLoop): Deleted.
(WebKit::CompositingRunLoop::setUpdateTimer): Deleted.
(WebKit::CompositingRunLoop::stopUpdateTimer): Deleted.
(WebKit::CompositingRunLoop::runLoop): Deleted.
(WebKit::CompositingRunLoop::updateTimerFired): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
11:14 PM Changeset in webkit [199047] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.26.0.2

New tag.

11:13 PM Changeset in webkit [199046] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

Guard showGraphicsLayerTree() with ENABLE(TREE_DEBUGGING)
​https://bugs.webkit.org/show_bug.cgi?id=156157

Reviewed by Simon Fraser.

Mimic r181166 and guard the showGraphicsLayerTree() function with
ENABLE(TREE_DEBUGGING) guards, instead of !defined(NDEBUG). This
would enable invoking the function in release builds when the
ENABLE_TREE_DEBUGGING option is enabled, not limiting the function
to only debug builds.

  • platform/graphics/GraphicsLayer.cpp:
  • platform/graphics/GraphicsLayer.h:
11:11 PM Changeset in webkit [199045] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[TexMap] Improve viewport array access in TextureMapperGL::bindDefaultSurface()
​https://bugs.webkit.org/show_bug.cgi?id=156159

Reviewed by Antonio Gomes.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::bindDefaultSurface): Create a reference to the
viewport array in the TextureMapperGLData object. Inline the IntSize constructor
for the object that's passed to createProjectionMatrix(), and use the reference
to access all four elements of the array as necessary.

11:09 PM Changeset in webkit [199044] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[TexMap] resolveOverlaps() should be passed-in the first Region parameter via a reference
​https://bugs.webkit.org/show_bug.cgi?id=156158

Reviewed by Antonio Gomes.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::resolveOverlaps): Don't copy the Region object that's passed through
the first parameter by accepting a reference to the object instead. This does
modify the passed-in object, but these modifications don't have any effect on
any state via the call sites in TextureMapperLayer::computeOverlapRegions().

10:47 PM Changeset in webkit [199043] by beidson@apple.com
  • 26 edits
    2 copies in trunk/Source

Modern IDB: Dump blobs to disk before storing them in an object store.
​https://bugs.webkit.org/show_bug.cgi?id=156068
Source/WebCore:

Reviewed by Alex Christensen.

No new tests (Under development, no observable change in behavior yet).

  • WebCore.xcodeproj/project.pbxproj:
  • CMakeLists.txt:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::putOrAddOnServer):

  • Modules/indexeddb/IDBValue.cpp: Copied from Source/WebCore/platform/ScopeGuard.h.

(WebCore::IDBValue::IDBValue):

  • Modules/indexeddb/IDBValue.h: Copied from Source/WebCore/platform/ScopeGuard.h.
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::putOrAdd):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/TransactionOperation.h:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
(WebCore::SerializedScriptValue::addBlobURL): Deleted.

  • bindings/js/SerializedScriptValue.h:
  • platform/FileSystem.cpp:

(WebCore::appendFileContentsToFileHandle):

  • platform/FileSystem.h:
  • platform/ScopeGuard.h:
  • platform/network/BlobRegistry.h:
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::blobUtilityQueue):
(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):

  • platform/network/BlobRegistryImpl.h:

Source/WebKit2:

Reviewed by Alex Christensen.

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::writeBlobsToTemporaryFiles):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
(WebKit::NetworkProcessConnection::didWriteBlobsToTemporaryFiles):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
10:39 PM Changeset in webkit [199042] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] Crash when playing <video> after playing Web Audio
​https://bugs.webkit.org/show_bug.cgi?id=156185
<rdar://problem/10177005>

Reviewed by Eric Carlson.

Off-by-one error in AudioDestinationIOS::render. The ivars m_firstSpareFrame and m_lastSpareFrame imply that
the sample range is inclusive, i.e. [m_firstSpareFrame .. m_lastSpareFrame], but the length of the range was
being calculated as if m_lastSpareFrame was exclusive; when the two were equal, the length was calculated as
0, rather than 1. This was caught by an ASSERT (and would have been caught by a downstream ASSERT had that one
not been present).

Fix the off-by-one by treating them as inclusive/exclusive--similar to C++ iterators--and renaming them to reflect
this: [m_startSpareFrame .. m_endSpareFrame). This corrects the "length" math which caused the crash.

  • platform/audio/ios/AudioDestinationIOS.cpp:

(WebCore::AudioDestinationIOS::render):

  • platform/audio/ios/AudioDestinationIOS.h:
10:20 PM Changeset in webkit [199041] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Uncaught Exception: Error: Can't make a ContentView for an unknown representedObject (ApplicationCacheManifest)
​https://bugs.webkit.org/show_bug.cgi?id=156139
<rdar://problem/25511926>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-04
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView.createFromRepresentedObject):
Improve the error message to get the name of the represented object.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
Treat ApplicationCacheManifestTreeElement like other Host elements. Nothing to save/show.

  • UserInterface/Views/ApplicationCacheManifestTreeElement.js:

(WebInspector.ApplicationCacheManifestTreeElement):

  • UserInterface/Views/DatabaseHostTreeElement.js:

(WebInspector.DatabaseHostTreeElement):

  • UserInterface/Views/IndexedDatabaseHostTreeElement.js:

(WebInspector.IndexedDatabaseHostTreeElement):
Auto-expand these folders, as they are not useful when collapsed.

9:22 PM Changeset in webkit [199040] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

[iOS] Allow clients in the bundle to know whether a field was focused by user interaction
​https://bugs.webkit.org/show_bug.cgi?id=156118

Patch by Chelsea Pugh <​cpugh@apple.com> on 2016-04-04
Reviewed by Dan Bernstein.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Add delegate method that takes userIsInteracting bool so that bundle clients get this information.
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: Call API with userIsInteracting property if delegate implements it, otherwise call existing API if

userIsInteracting is true, as we previously did in WebKit::WebPage::elementDidFocus. Move FIXME from WebKit::WebPage::elementDidFocus to here, since we are checking userIsInteracting.

  • WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:

(API::InjectedBundle::FormClient::willBeginInputSession): Add userIsInteracting bool to arguments so we can use it for call to the new API as well as preserving behavior of the old API.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::elementDidFocus): Remove check if user is interacting and call willBeginInputSession unconditionally. Move FIXME to where we check
userIsInteracting. Pass m_userIsInteracting to willBeginInputSession so we can use it there.

9:12 PM Changeset in webkit [199039] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Block plaintext WebSocket requests to domains under HSTS.
​https://bugs.webkit.org/show_bug.cgi?id=156049
<rdar://problem/13820000>

Patch by John Wilander <​wilander@apple.com> on 2016-04-04
Reviewed by Brent Fulgham.

No new tests because the way TLS is setup for layout tests doesn't allow the server to set HSTS for 127.0.0.1 nor localhost. This is tracked in <rdar://problem/25467825>.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):

  • Now sends usesEphemeralSession to SocketStreamHandle::create.
  • platform/network/cf/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • Added parameter usesEphemeralSession which it passes on to the SocketStreamHandle constructor.
  • platform/network/cf/SocketStreamHandleCFNet.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):

  • Now blocks plaintext WebSocket connections for domains under HSTS if not in an ephemeral session.
9:04 PM Changeset in webkit [199038] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Make FrameView's exposedRect an Optional<>
​https://bugs.webkit.org/show_bug.cgi?id=156189

Reviewed by Tim Horton.

Instead of testing against isInfinite(), make FrameView::exposedRect() and the
member variable an Optional<FloatRect>.

  • page/FrameView.cpp:

(WebCore::FrameView::setExposedRect):

  • page/FrameView.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::computeTileCoverage):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):

8:56 PM Changeset in webkit [199037] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Don't crash when rendering form controls with Display List Drawing enabled
​https://bugs.webkit.org/show_bug.cgi?id=156122

Reviewed by Sam Weinig.

Don't attempt to paint form controls if display-list drawing is enabled, since
doing so attempts to get at a CGContextRef that doens't exist.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paint):

8:54 PM Changeset in webkit [199036] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[win] run-webkit-tests failed to launch DumpRenderTree
​https://bugs.webkit.org/show_bug.cgi?id=156150

Patch by Bill Ming <​mbbill@gmail.com> on 2016-04-04
Reviewed by Alex Christensen.

  • Tools/Scripts/webkitpy/port/base.py:
8:52 PM Changeset in webkit [199035] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Avoid copying ModuleLoaderObject.js to resources bundle
​https://bugs.webkit.org/show_bug.cgi?id=156188
<rdar://problem/25534383>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-04
Reviewed by Alexey Proskuryakov.

8:50 PM Changeset in webkit [199034] by Alan Bujtas
  • 35 edits in trunk

CSS Triangles Rendering Regression affecting CSS Ribbons.
​https://bugs.webkit.org/show_bug.cgi?id=156121

Reviewed by Simon Fraser.

Source/WebCore:

We use floored border width values for painting (see BorderEdge).
However border-box sizing is based on rounded border values. This mismatch could result in a 2 device pixel
gap when both top and bottom (or left and right) borders are present.

This patch applies flooring on the computed border width value.

It matches FireFox (44.0.2) behaviour (both by inspecting box-sizing visually and through getComputedStyle() values on border-width).

Covered by existing tests.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertLineWidth):

LayoutTests:

Rebeaseline to match current behaviour.

  • fast/inline/hidpi-inline-text-decoration-with-subpixel-value-expected.html:
  • platform/mac/css1/units/length_units-expected.txt:
  • platform/mac/fast/css/bidi-override-in-anonymous-block-expected.txt:
  • platform/mac/fast/multicol/span/anonymous-style-inheritance-expected.txt:
  • platform/mac/fast/repaint/repaint-during-scroll-with-zoom-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-initial-value-001-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-style-001-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-style-002-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-style-004-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-with-three-values-001-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-radius-with-two-values-001-expected.txt:
  • platform/mac/ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-003-expected.txt:
  • platform/mac/media/video-zoom-expected.txt:
  • platform/mac/svg/custom/svg-fonts-in-html-expected.txt:
  • platform/mac/svg/zoom/page/zoom-background-image-tiled-expected.txt:
  • platform/mac/svg/zoom/page/zoom-background-images-expected.txt:
  • platform/mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
  • platform/mac/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
  • platform/mac/svg/zoom/page/zoom-svg-float-border-padding-expected.txt:
  • platform/mac/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
5:19 PM Changeset in webkit [199033] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

Unreviewed GTK build fix after r199020

  • UIProcess/API/gtk/WebKitUserContentManager.cpp:

(webkit_user_content_manager_register_script_message_handler):
(webkit_user_content_manager_unregister_script_message_handler):

5:14 PM Changeset in webkit [199032] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

2016-04-04 Geoffrey Garen <​ggaren@apple.com>

Unreviewed, rolling out r199016.
​https://bugs.webkit.org/show_bug.cgi?id=156140

"Regressed Octane and Kraken on the perf bots."

Reverted changeset:

CopiedBlock should be 16kB
​https://bugs.webkit.org/show_bug.cgi?id=156168
​http://trac.webkit.org/changeset/199016

5:12 PM Changeset in webkit [199031] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught exception in CSS with string "constructor" (WebInspector.Color.fromString())
​https://bugs.webkit.org/show_bug.cgi?id=156183
<rdar://problem/25539279>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-04
Reviewed by Brian Burg.

  • UserInterface/Models/Color.js:

(WebInspector.Color.fromString):
Fix the uncaught exception issue. Only look at own properties of
our keyword map to avoid values like "toString" and "constructor".

  • UserInterface/Debug/UncaughtExceptionReporter.js:

(handleError):
(handleUncaughtException):
(handleUncaughtExceptionRecord):
Generalize uncaught exception handler error sheet to get
exception records from both uncaught exceptions (window.onerror)
and general Runtime Error objects (TypeError, etc).

  • UserInterface/Base/Utilities.js:

(window.promiseLogError.window.promiseLogError):
Add a fallback log exception helper.

  • UserInterface/Controllers/AnalyzerManager.js:

(WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor):
Add catch handlers to Promises to log exceptions.

4:17 PM Changeset in webkit [199030] by d_russell@apple.com
  • 31 edits
    8 adds
    6 deletes in trunk

AX: new lines in content editable elements don't notify accessibility
​https://bugs.webkit.org/show_bug.cgi?id=153361

Reviewed by Ryosuke Niwa.

Relocate accessibility edit notification logic into higher level logic.
Typing notifications relocated into TypingCommand.
Cut & Paste notifications relocated into Editor.
Undo relocated into EditCommandComposition.

Tests: accessibility/mac/value-change/value-change-user-info-contenteditable.html

accessibility/mac/value-change/value-change-user-info-textarea.html
accessibility/mac/value-change/value-change-user-info-textfield.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:

(WebCore::AccessibilityReplacedText::AccessibilityReplacedText):
(WebCore::AccessibilityReplacedText::postTextStateChangeNotification):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::postTextReplacementNotification):

  • accessibility/AXObjectCache.h:

(WebCore::VisiblePositionIndexRange::isNull):
(WebCore::AccessibilityReplacedText::AccessibilityReplacedText):
(WebCore::AccessibilityReplacedText::replacedRange):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):
(WebCore::AccessibilityObject::stringForVisiblePositionRange):

  • accessibility/AccessibilityObject.h:

(WebCore::VisiblePositionRange::VisiblePositionRange):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):

  • editing/AppendNodeCommand.cpp:

(WebCore::AppendNodeCommand::doApply): Deleted.
(WebCore::AppendNodeCommand::doUnapply): Deleted.

  • editing/CompositeEditCommand.cpp:

(WebCore::AccessibilityUndoReplacedText::indexForVisiblePosition):
(WebCore::AccessibilityUndoReplacedText::confgureTextToBeDeletedByUnapplyIndexesWithEditCommandEndingSelection):
(WebCore::AccessibilityUndoReplacedText::confgureTextToBeDeletedByUnapplyStartIndexWithEditCommandStartingSelection):
(WebCore::AccessibilityUndoReplacedText::setTextInsertedByUnapplyRange):
(WebCore::AccessibilityUndoReplacedText::captureTextToBeDeletedByUnapply):
(WebCore::AccessibilityUndoReplacedText::captureTextToBeDeletedByReapply):
(WebCore::stringForVisiblePositionIndexRange):
(WebCore::AccessibilityUndoReplacedText::textInsertedByUnapply):
(WebCore::AccessibilityUndoReplacedText::textInsertedByReapply):
(WebCore::postTextStateChangeNotification):
(WebCore::AccessibilityUndoReplacedText::postTextStateChangeNotificationForUnapply):
(WebCore::AccessibilityUndoReplacedText::postTextStateChangeNotificationForReapply):
(WebCore::EditCommandComposition::EditCommandComposition):
(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::EditCommandComposition::setStartingSelection):
(WebCore::EditCommandComposition::setEndingSelection):
(WebCore::EditCommandComposition::setTextInsertedByUnapplyRange):
(WebCore::CompositeEditCommand::removeNode):
(WebCore::CompositeEditCommand::replaceTextInNode):
(WebCore::deleteSelectionEditingActionForEditingAction):
(WebCore::CompositeEditCommand::deleteSelection):
(WebCore::CompositeEditCommand::applyStyle): Deleted.
(WebCore::CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren): Deleted.
(WebCore::CompositeEditCommand::inputText): Deleted.

  • editing/CompositeEditCommand.h:

(WebCore::AccessibilityUndoReplacedText::AccessibilityUndoReplacedText):

  • editing/DeleteFromTextNodeCommand.cpp:

(WebCore::DeleteFromTextNodeCommand::doApply): Deleted.
(WebCore::DeleteFromTextNodeCommand::getNodesInCommand): Deleted.

  • editing/DeleteFromTextNodeCommand.h:
  • editing/DictationCommand.cpp:

(WebCore::DictationCommand::doApply):

  • editing/EditCommand.cpp:

(WebCore::EditCommand::postTextStateChangeNotification):
(WebCore::SimpleEditCommand::SimpleEditCommand): Deleted.
(WebCore::SimpleEditCommand::doReapply): Deleted.
(WebCore::SimpleEditCommand::addNodeAndDescendants): Deleted.

  • editing/EditCommand.h:
  • editing/EditingAllInOne.cpp:
  • editing/Editor.cpp:

(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::unappliedEditing):
(WebCore::Editor::postTextStateChangeNotificationForCut):
(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::changeSelectionAfterCommand):
(WebCore::dispatchEditableContentChangedEvents): Deleted.
(WebCore::Editor::addTextToKillRing): Deleted.

  • editing/Editor.h:
  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::doApply): Deleted.
(WebCore::InsertIntoTextNodeCommand::getNodesInCommand): Deleted.

  • editing/InsertNodeBeforeCommand.cpp:

(WebCore::InsertNodeBeforeCommand::doApply): Deleted.
(WebCore::InsertNodeBeforeCommand::doUnapply): Deleted.
(WebCore::InsertNodeBeforeCommand::getNodesInCommand): Deleted.

  • editing/RemoveNodeCommand.cpp:

(WebCore::RemoveNodeCommand::RemoveNodeCommand):

  • editing/RemoveNodeCommand.h:

(WebCore::RemoveNodeCommand::create):

  • editing/ReplaceDeleteFromTextNodeCommand.cpp: Removed.
  • editing/ReplaceDeleteFromTextNodeCommand.h: Removed.
  • editing/ReplaceInsertIntoTextNodeCommand.cpp: Removed.
  • editing/ReplaceInsertIntoTextNodeCommand.h: Removed.
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
(WebCore::ReplaceSelectionCommand::performTrivialReplace):

  • editing/ReplaceSelectionCommand.h:

(WebCore::ReplaceSelectionCommand::visibleSelectionForInsertedText):

  • editing/TextInsertionBaseCommand.cpp:

(WebCore::TextInsertionBaseCommand::TextInsertionBaseCommand):

  • editing/TextInsertionBaseCommand.h:
  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::TypingCommand):
(WebCore::TypingCommand::insertText):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
(WebCore::TypingCommand::insertParagraphSeparator):
(WebCore::TypingCommand::postTextStateChangeNotificationForDeletion):
(WebCore::TypingCommand::doApply):
(WebCore::TypingCommand::insertTextAndNotifyAccessibility):
(WebCore::TypingCommand::insertLineBreakAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContentAndNotifyAccessibility):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):

  • editing/TypingCommand.h:
3:54 PM Changeset in webkit [199029] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

prepare-ChangeLog set endl incorrectly.
​https://bugs.webkit.org/show_bug.cgi?id=156151

Patch by Bill Ming <​mbbill@gmail.com> on 2016-04-04
Reviewed by Alex Christensen.

  • Tools/Scripts/prepare-ChangeLog:
3:47 PM Changeset in webkit [199028] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

CMake build fix.

  • PlatformMac.cmake:
3:28 PM Changeset in webkit [199027] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit2

Tapping on tabs in webpages caused WK crash at WebKit: WebKit::WebFrame::didReceivePolicyDecision
​https://bugs.webkit.org/show_bug.cgi?id=156119
<rdar://problem/20732167>

Reviewed by Andy Estes.

Protect the m_frame so that it is present for completion handlers.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

3:17 PM Changeset in webkit [199026] by d_russell@apple.com
  • 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json

Unreviewed: Add Doug Russell as a commiter.

  • Scripts/webkitpy/common/config/contributors.json:
3:12 PM Changeset in webkit [199025] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC][x86] Fix an assertion in MacroAssembler::branch8()
​https://bugs.webkit.org/show_bug.cgi?id=156181

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-04
Reviewed by Geoffrey Garen.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branch8):
The test was wrong because valid negative numbers have ones
in the top bits.

I replaced the assertion to be explicit about the valid range.

3:10 PM Changeset in webkit [199024] by dino@apple.com
  • 9 edits
    2 adds in trunk

Add color-gamut media query support
​https://bugs.webkit.org/show_bug.cgi?id=155994
<rdar://problem/23282326>

Reviewed by Darin Adler.

Source/WebCore:

Add the new CSS media query: color-gamut
​https://drafts.csswg.org/mediaqueries-4/#color-gamut

This ultimately calls into screenSupportsExtendedColor,
which has only been implemented on iOS at the moment.
All displays will match the "srgb" keyword, but only
iOS devices with an extended color screen will
match against "p3" (e.g. the iPad Pro 9.7").
Nothing will match against "rec2020".

Test: fast/media/mq-color-gamut.html

  • css/CSSValueKeywords.in: Add "p3" and "rec2020".
  • css/MediaFeatureNames.h: Add "color-gamut"
  • css/MediaQueryEvaluator.cpp:

(WebCore::color_gamutMediaFeatureEval): Call
screenSupportsExtendedColor to see if we're srgb or p3.

  • css/MediaQueryExp.cpp:

(WebCore::featureWithCSSValueID):

  • platform/efl/PlatformScreenEfl.cpp: Add empty implementation.

(WebCore::screenSupportsExtendedColor):

  • platform/gtk/PlatformScreenGtk.cpp: Ditto.

(WebCore::screenSupportsExtendedColor):

  • platform/win/PlatformScreenWin.cpp: Ditto.

(WebCore::screenSupportsExtendedColor):

LayoutTests:

New test for color-gamut.

  • fast/media/mq-color-gamut-expected.html: Added.
  • fast/media/mq-color-gamut.html: Added.
2:22 PM Changeset in webkit [199023] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Update feature status on anchor download attribute.

  • features.json:
2:18 PM Changeset in webkit [199022] by Beth Dakin
  • 20 edits in trunk/Source

Add some logic to decide when a video can control the videoControlsManager
​https://bugs.webkit.org/show_bug.cgi?id=156089
-and corresponding-
rdar://problem/23833752

Reviewed by Eric Carlson and Tim Horton.

Source/WebCore:

With this patch, a video can take over the videoControlsManager if all of
these conditions are met:
-Playback is permitted
-The video has a renderer
-The video is 400x300 or larger
AND
-The video has both audio and video

If those criteria are not met the video will still be allowed to take over
the videoControlsManager if:
-Playback is permitted
-The video has a renderer
-The video started playing because of a user gesture.

If multiple videos meet this criteria, then the video that most recently
started playing will take over the videoControlsManager.

We might consider more restrictions in the future, but this seems like a good
place to start.

Move all decisions about the videoControlsManager to updatePlayState()
instead of playInternal().

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::playInternal):

If the video will play after updatePlayState, then invoke
setUpVideoControlsManager() if canControlControlsManager() is true. If the
video will not be playing after updatePlayState, then check to see if
endedPlayback() is true. If it is, then invoke clearVideoControlsManager().
(WebCore::HTMLMediaElement::updatePlayState):

The logic for the heuristic is here:

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager):

  • html/MediaElementSession.h:

New ChromeClient function clearVideoControlsManager().

  • page/ChromeClient.h:

Source/WebKit2:

The biggest change in WebKit2 is to push all of the logic for the
videoControlsManager into WebCore. With this change, WebCore will invoke
setUpVideoControlsManager() when there is a video to control the manager, and
it will call clearVideoControlsManager() when there is not.

Add clearVideoControlsManager().

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::clearVideoControlsManager):

Re-name isPlayingMediaDidChange() to videoControlsManagerDidChange(). This
ties the logic to the lifetime of the videoControlsManager instead of
figuring it out in the UIProcess based on the media state.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::videoControlsManagerDidChange):
(WebKit::WebViewImpl::isPlayingMediaDidChange): Deleted.

  • UIProcess/PageClient.h:

Also change isPlayingVideoWithAudio() into hasActiveVideoForControlsManager()
Again, this ties the logic to the lifetime of the videoControlsManager
instead of figuring it out in the UIProcess based on the media state.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isPlayingMediaDidChange):
(WebKit::WebPageProxy::videoControlsManagerDidChange):
(WebKit::WebPageProxy::hasActiveVideoForControlsManager):
(WebKit::WebPageProxy::isPlayingVideoWithAudio): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::videoControlsManagerDidChange):
(WebKit::PageClientImpl::isPlayingMediaDidChange): Deleted.

New WebChromeClient function clearVideoControlsManager().

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::clearVideoControlsManager):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Do the work to clear the videoControlsManager.

  • WebProcess/cocoa/WebVideoFullscreenManager.h:
  • WebProcess/cocoa/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::clearVideoControlsManager):
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation):

2:09 PM Changeset in webkit [199021] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r198955): com.apple.WebKit.Networking.Development crashed in WebKit::NetworkLoad::setPendingDownloadID + 11
​https://bugs.webkit.org/show_bug.cgi?id=156177
<rdar://problem/25508037>

Reviewed by Alex Christensen.

We do not currently create a NetworkDataTask when we encounter a BLOB URL when building with
NETWORK_SESSION enabled. This causes us to crash when the download system attempts to work
with a BLOB URL.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::setPendingDownloadID): Add null check for m_task.
(WebKit::NetworkLoad::setPendingDownload): Ditto.

2:03 PM Changeset in webkit [199020] by weinig@apple.com
  • 30 edits in trunk

Add SPI to allow install script message handlers in isolated worlds
​https://bugs.webkit.org/show_bug.cgi?id=156153

Reviewed by Anders Carlsson.

Source/WebCore:

Added API Test: WKUserContentController.ScriptMessageHandlerBasicPostIsolatedWorld

  • Changes the signature of the method in UserContentProvider to get UserMessageHandlerDescriptors to match that of UserScripts and UserStyleSheets.
  • Removes the need for UserMessageHandlerDescriptor::Client by making UserMessageHandlerDescriptor directly subclassable.
  • Changes invalidation model of UserMessageHandlersNamespace to be more direct by allowing it to register for invalidation notifications, rather than always checking if handler has been removed on each invocation.
  • loader/EmptyClients.cpp:

Update for new signature.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld):
Switch to using forEachUserMessageHandler.

(WebCore::DOMWindow::webkitNamespace):
Pass the UserContentProvider to the namespace on creation, so the UserMessageHandlersNamespace
can use it to register to listen for UserMessageHandler changes.

  • page/UserContentController.h:
  • page/UserContentController.cpp:

(WebCore::UserContentController::forEachUserStyleSheet):
(WebCore::UserContentController::forEachUserMessageHandler):
(WebCore::UserContentController::addUserScript):
(WebCore::UserContentController::removeUserStyleSheets):
(WebCore::UserContentController::removeAllUserContent):
(WebCore::UserContentController::addUserMessageHandlerDescriptor): Deleted.
(WebCore::UserContentController::removeUserMessageHandlerDescriptor): Deleted.
(WebCore::UserContentController::addUserContentExtension): Deleted.
(WebCore::UserContentController::removeUserContentExtension): Deleted.
(WebCore::UserContentController::removeAllUserContentExtensions): Deleted.
Removed unused functions, all the UserMessageHandler and UserContentExtension ones. UserContentController
is only used for Legacy WebKit where those features are not exposed.

  • page/UserContentProvider.h:
  • page/UserContentProvider.cpp:

(WebCore::UserContentProvider::registerForUserMessageHandlerInvalidation):
(WebCore::UserContentProvider::unregisterForUserMessageHandlerInvalidation):
(WebCore::UserContentProvider::invalidateAllRegisteredUserMessageHandlerInvalidationClients):
(WebCore::UserContentProviderInvalidationClient::~UserContentProviderInvalidationClient):
Update signature for UserMessageHandlerDescriptor access to match UserScript and UserStyleSheet.
Adds explicit invalidation for UserMessageHandlers.

  • page/UserMessageHandler.cpp:

(WebCore::UserMessageHandler::UserMessageHandler):
(WebCore::UserMessageHandler::postMessage):
(WebCore::UserMessageHandler::name): Deleted.
(WebCore::UserMessageHandler::world): Deleted.

  • page/UserMessageHandler.h:

(WebCore::UserMessageHandler::descriptor):
(WebCore::UserMessageHandler::invalidateDescriptor):

  • page/UserMessageHandlerDescriptor.cpp:

(WebCore::UserMessageHandlerDescriptor::UserMessageHandlerDescriptor):
(WebCore::UserMessageHandlerDescriptor::~UserMessageHandlerDescriptor):
(WebCore::UserMessageHandlerDescriptor::name):
(WebCore::UserMessageHandlerDescriptor::world):

  • page/UserMessageHandlerDescriptor.h:

(WebCore::UserMessageHandlerDescriptor::Client::~Client): Deleted.
(WebCore::UserMessageHandlerDescriptor::create): Deleted.
(WebCore::UserMessageHandlerDescriptor::client): Deleted.
(WebCore::UserMessageHandlerDescriptor::invalidateClient): Deleted.
Simplify by removing the Client. Now, when the UserMessageHandlerDescriptor is no longer
active, it gets nulled out in the UserMessageHandler.

  • page/UserMessageHandlersNamespace.cpp:

(WebCore::UserMessageHandlersNamespace::UserMessageHandlersNamespace):
(WebCore::UserMessageHandlersNamespace::~UserMessageHandlersNamespace):
(WebCore::UserMessageHandlersNamespace::didInvalidate):
(WebCore::UserMessageHandlersNamespace::handler):

  • page/UserMessageHandlersNamespace.h:

Change the logic to listen for invalidations of the UserMessageHandlerDescriptor map. When it
is invalidated, re-build the map of cached UserMessageHandlers from the UserContentProvider,
and invalidate any remaining UserMessageHandlers that no longer exist in the UserContentProvider.

  • page/WebKitNamespace.cpp:

(WebCore::WebKitNamespace::WebKitNamespace):

  • page/WebKitNamespace.h:

(WebCore::WebKitNamespace::create):
Pass through the UserContentProvider.

Source/WebKit2:

  • Scripts/webkit/messages.py:

(headers_for_type):

  • Shared/WebUserContentControllerDataTypes.cpp:

(WebKit::WebScriptMessageHandlerData::encode):
(WebKit::WebScriptMessageHandlerData::decode):

  • Shared/WebUserContentControllerDataTypes.h:

Add WebKit::WebScriptMessageHandlerData, matching WebKit::WebUserScriptData and
WebKit::WebUserStyleSheetData.

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController addScriptMessageHandler:name:]):
(-[WKUserContentController removeScriptMessageHandlerForName:]):
(-[WKUserContentController _removeAllUserStyleSheetsAssociatedWithUserContentWorld:]):
(-[WKUserContentController _addScriptMessageHandler:name:userContentWorld:]):
(-[WKUserContentController _removeScriptMessageHandlerForName:userContentWorld:]):
(-[WKUserContentController _removeAllScriptMessageHandlersAssociatedWithUserContentWorld:]):

  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:

Add SPI for adding and removing ScriptMessageHandlers associated with a world.

  • UIProcess/UserContent/WebScriptMessageHandler.cpp:

(WebKit::WebScriptMessageHandler::create):
(WebKit::WebScriptMessageHandler::WebScriptMessageHandler):
(WebKit::WebScriptMessageHandlerHandle::encode): Deleted.
(WebKit::WebScriptMessageHandlerHandle::decode): Deleted.

  • UIProcess/UserContent/WebScriptMessageHandler.h:

(WebKit::WebScriptMessageHandler::identifier):
(WebKit::WebScriptMessageHandler::name):
(WebKit::WebScriptMessageHandler::userContentWorld):
(WebKit::WebScriptMessageHandler::client):
(WebKit::WebScriptMessageHandler::handle): Deleted.
Add the world and move the data object to WebUserContentControllerDataTypes.h

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler):
(WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName):
(WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:

Update for worlds, matching UserScript/UserStyleSheet model.

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

(WebKit::WebUserMessageHandlerDescriptorProxy::WebUserMessageHandlerDescriptorProxy):
Change to inherit directly from WebCore::UserMessageHandlerDescriptor.

(WebKit::WebUserContentController::addUserScriptMessageHandlers):
(WebKit::WebUserContentController::removeUserScriptMessageHandler):
(WebKit::WebUserContentController::removeAllUserScriptMessageHandlers):
(WebKit::WebUserContentController::addUserScriptMessageHandlerInternal):
(WebKit::WebUserContentController::removeUserScriptMessageHandlerInternal):
Add support for worlds, matching UserScript/UserStyleSheet model.

(WebKit::WebUserContentController::addUserStyleSheets):
Add missing call to invalidateInjectedStyleSheetCacheInAllFramesInAllPages()

(WebKit::WebUserContentController::removeAllUserStyleSheets):
Switch to only calling invalidateInjectedStyleSheetCacheInAllFramesInAllPages() once
after the loop and only if any stylesheets were removed.

(WebKit::WebUserContentController::addUserStyleSheetInternal):
Remove call to invalidateInjectedStyleSheetCacheInAllFramesInAllPages(), make
callers call it. This allows us to avoid calling it repeatedly in removeAllUserStyleSheets().

(WebKit::WebUserContentController::addUserStyleSheet):
Call invalidateInjectedStyleSheetCacheInAllFramesInAllPages() explicitly since it
is no longer called in addUserStyleSheetInternal().

(WebKit::WebUserContentController::forEachUserMessageHandler):
Implement by iterating the m_userMessageHandlers map.

  • WebProcess/UserContent/WebUserContentController.messages.in:

Update for worlds, matching UserScript/UserStyleSheet model.

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:

Add new test, WKUserContentController.ScriptMessageHandlerBasicPostIsolatedWorld

1:45 PM Changeset in webkit [199019] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping crashing test fast/loader/opaque-base-url.html on Debug
​https://bugs.webkit.org/show_bug.cgi?id=156179

Unreviewed test gardening.

1:16 PM Changeset in webkit [199018] by jiewen_tan@apple.com
  • 3 edits in trunk/Tools

Build fix for r198956.

Unreviewed.

  • TestWebKitAPI/Tests/WebKit2Cocoa/LoadInvalidURLRequest.mm:

(-[LoadInvalidURLNavigationActionDelegate webView:didFailProvisionalNavigation:withError:]):

  • TestWebKitAPI/Tests/mac/LoadInvalidURLRequest.mm:

(-[LoadInvalidURLWebFrameLoadDelegate webView:didFailProvisionalLoadWithError:forFrame:]):

1:01 PM Changeset in webkit [199017] by Chris Dumez
  • 10 edits
    2 adds in trunk

Regression(r196145): Crash in getOwnPropertyDescriptor on ​http://www.history.com/shows/vikings
​https://bugs.webkit.org/show_bug.cgi?id=156136
<rdar://problem/25410767>

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

Add a few more identifiers for using in the generated bindings.

  • runtime/CommonIdentifiers.h:

Source/WebCore:

The page was crashing when doing the following:
Object.getOwnPropertyDescriptor(window, "indexedDB")

getOwnPropertyDescriptor() expected getDirect() to return a CustomGetterSetter for
CustomAccessors but it was not the case for window.indexedDB. The reason was that
window.indexedDB was a special property, which is not part of the static table but
returned by GetOwnPropertySlot() if IndexedDB feature is enabled. This weirdness
was due to our bindings generator not having proper support for [EnabledAtRuntime]
properties on Window.

This patch adds support for [EnabledAtRuntime] properties on Window by omitting
these properties from the static property table and then setting them at runtime
in JSDOMWindow::finishCreation() if the corresponding feature is enabled.
window.indexedDB now looks like a regular property when IndexedDB is enabled
and getOwnPropertyDescriptor() works as expected for this property.

Test: storage/indexeddb/indexeddb-getownpropertyDescriptor.html

  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::indexedDB):

  • Modules/indexeddb/DOMWindowIndexedDatabase.h:

The generated bindings pass DOMWindow by reference instead of pointer so update
the implementation accordingly.

  • Modules/indexeddb/DOMWindowIndexedDatabase.idl:

Add 'indexedDB' and 'webkitIndexedDB' properties and mark them as
[EnabledAtRuntime]. Now that the bindings generator correctly handles
[EnabledAtRuntime] properties on the Window, there is no need to
custom-handle them in JSDOMWindowCustom.

  • bindings/js/JSDOMWindowCustom.cpp:

Drop custom handling for 'indexedDB' and 'webkitIndexedDB' properties
in getOwnPropertySlot(). The generated bindings code now makes sure to
only set those properties on the Window if IndexedDB is enabled so we
can let the regular code path look up those properties.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetJSCAttributesForAttribute):
(GenerateHeader):
(GeneratePropertiesHashTable):
(GenerateImplementation):
Add support for [EnabledAtRuntime] properties on DOMWindow. For such
properties, we do the following:

  1. Omit them from the static property table
  2. In JSDOMWindow::finishCreation(), dynamically add those properties at runtime if the corresponding feature is enabled.

Note that this works for constructors as well.

  • inspector/InspectorIndexedDBAgent.cpp:

(WebCore::assertIDBFactory):
Pass Window by reference instead of pointer.

LayoutTests:

Add a layout test to confirm that calling Object.getOwnPropertyDescriptor(window, "indexedDB")
does not crash and works as expected.

  • storage/indexeddb/indexeddb-getownpropertyDescriptor-expected.txt: Added.
  • storage/indexeddb/indexeddb-getownpropertyDescriptor.html: Added.
12:41 PM Changeset in webkit [199016] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

CopiedBlock should be 16kB
​https://bugs.webkit.org/show_bug.cgi?id=156168

Reviewed by Mark Lam.

MarkedBlock is 16kB, and bmalloc's largest fast-path allocation is 16kB,
and the largest page size on Apple devices is 16kB -- so this change
should improve sharing and recycling and keep us on the fast path more.

32kB is also super aggro. At 16kB, we support allocations up to 8kB,
which covers 99.3% of allocations on facebook.com. The 32kB block size
only covered an additional 0.2% of allocations.

  • heap/CopiedBlock.h:
12:41 PM Changeset in webkit [199015] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Addressing post-review feedback on r198970
​https://bugs.webkit.org/show_bug.cgi?id=156123

Unreviewed.

  • platform/text/BidiResolver.h:

(WebCore::BidiCharacterRun::~BidiCharacterRun):

12:39 PM Changeset in webkit [199014] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[SVG -> OTF Converter] Crash when trying to re-convert a previously-failed font conversion
​https://bugs.webkit.org/show_bug.cgi?id=156175
<rdar://problem/25130547>

Reviewed by David Kilzer.

m_externalSVGFontElement points inside the document owned by m_externalSVGDocument.
However, when the m_externalSVGDocument is destroyed (due to a failed conversion),
we weren't resetting m_externalSVGFontElement. Then, when trying to re-convert, we
were using the fact that m_externalSVGFontElement is non-null to mean it's valid.

Test: fast/text/svg-font-invalid-glyph-path-failure.html (Under GuardMalloc)

  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::ensureCustomFontData):

11:35 AM Changeset in webkit [199013] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking plugins/focus.html as flaky on mac
​https://bugs.webkit.org/show_bug.cgi?id=156174

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:30 AM Changeset in webkit [199012] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Properly generate static functions that return Promises
​https://bugs.webkit.org/show_bug.cgi?id=156169

Reviewed by Sam Weinig.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateReturnParameters):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunction):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionPromise):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithException):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionPromise):

  • bindings/scripts/test/TestObj.idl:
11:20 AM Changeset in webkit [199011] by jh718.park@samsung.com
  • 4 edits in trunk/Source

[EFL] Fix build break since r198800
​https://bugs.webkit.org/show_bug.cgi?id=156011

Reviewed by Alex Christensen.

Source/WebCore:

  • PlatformEfl.cmake: Remove temorary statement which was applied to avoid build failure of Efl port.

Source/WebKit2:

  • CMakeLists.txt: Currently circular dependency state exists between WebCoreDerivedSources and WebCore targets.

By adding -Wl,--start-group -Wl,--end-group linker option, we can resolve this problem.
In case there is no such circular dependency, this linker option does nothing.

11:02 AM Changeset in webkit [199010] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline fast/scrolling/rtl-scrollbars-animation-property.html for Windows

Unreviewed test gardening

  • platform/win/fast/scrolling/rtl-scrollbars-animation-property-expected.txt:
10:44 AM Changeset in webkit [199009] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[win] prepare-ChangeLog should treat windows path differently.
​https://bugs.webkit.org/show_bug.cgi?id=156120

Patch by Bill Ming <​mbbill@gmail.com> on 2016-04-04
Reviewed by Brent Fulgham.

  • Scripts/prepare-ChangeLog:
10:40 AM Changeset in webkit [199008] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Re-disable event dispatch assertions in RenderTreeUpdater::updateRenderTree
​https://bugs.webkit.org/show_bug.cgi?id=156172

Some ruby tests on iOS hit these.

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRenderTree):

9:12 AM Changeset in webkit [199007] by commit-queue@webkit.org
  • 35 edits in trunk

REGRESSION(r198492): [GTK] The WEB_RTC flag was not correctly added in some situations
​https://bugs.webkit.org/show_bug.cgi?id=156164

Patch by Alejandro G. Castro <​alex@igalia.com> on 2016-04-04
Reviewed by Philippe Normand.

.:

Remove double space in the error message when openwebrtc is not present.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Replace WEBRTC with WEB_RTC, in the idls add the new option
UsePointersEvenForNonNullableObjectArguments to fix compilation.

  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpReceiver.cpp:
  • Modules/mediastream/RTCRtpReceiver.h:
  • Modules/mediastream/RTCRtpSender.cpp:
  • Modules/mediastream/RTCRtpSender.h:
  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/mediastream/RTCRtpSenderReceiverBase.h:
  • Modules/mediastream/RTCSessionDescription.cpp:
  • Modules/mediastream/RTCSessionDescription.h:
  • Modules/mediastream/RTCStatsReport.cpp:
  • Modules/mediastream/RTCStatsResponse.cpp:
  • Modules/mediastream/RTCTrackEvent.cpp:
  • Modules/mediastream/RTCTrackEvent.h:
  • Modules/mediastream/SDPProcessor.cpp:
  • Modules/mediastream/SDPProcessor.h:
  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

  • bindings/generic/RuntimeEnabledFeatures.h:
  • bindings/js/WebCoreJSBuiltinInternals.cpp:

(WebCore::JSBuiltinInternalFunctions::JSBuiltinInternalFunctions):
(WebCore::JSBuiltinInternalFunctions::visit):
(WebCore::JSBuiltinInternalFunctions::initialize):

  • bindings/js/WebCoreJSBuiltinInternals.h:
  • bindings/js/WebCoreJSBuiltins.h:

(WebCore::JSBuiltinFunctions::JSBuiltinFunctions):

  • platform/mediastream/RTCSessionDescriptionDescriptor.cpp:
  • platform/mediastream/RTCSessionDescriptionDescriptor.h:
  • platform/mediastream/RTCSessionDescriptionRequest.h:
  • platform/mediastream/RTCStatsRequest.h:
  • platform/mediastream/RTCStatsResponseBase.h:
  • platform/mediastream/RTCVoidRequest.h:
  • platform/mediastream/SDPProcessorScriptResource.cpp:
  • platform/mediastream/SDPProcessorScriptResource.h:
  • platform/mock/TimerEventBasedMock.h:

Tools:

Enable the new WEB_RTC option by default for Gtk+.

  • Scripts/webkitperl/FeatureList.pm:
8:46 AM Changeset in webkit [199006] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] Added missing inspector files under UserInterface/Proxies.
​https://bugs.webkit.org/show_bug.cgi?id=156165

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-04
Reviewed by Michael Catanzaro.

  • PlatformGTK.cmake:
8:29 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
8:27 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
8:10 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
7:30 AM Changeset in webkit [199005] by commit-queue@webkit.org
  • 26 edits in trunk/Source

REGRESSION(r198792): [GTK] Inspector crashes in Inspector::Protocol::getEnumConstantValue since r198792
​https://bugs.webkit.org/show_bug.cgi?id=155745
<rdar://problem/25289456>

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2016-04-04
Reviewed by Brian Burg.

Source/JavaScriptCore:

The problem is that we are generating the Inspector::Protocol::getEnumConstantValue() method and the
enum_constant_values array for every framework that has enum values. So, in case of GTK port we have two
implementations, one for the inspector in JavaScriptCore and another one for Web Automation in WebKit2, but when
using the inspector in WebKit2 we always end up using the one in WebKit2. Since the enum_constant_values array
is smaller in WebKit2 than the one in JavaScriptCore, we crash every time we receive an enum value higher than
the array size. We need to disambiguate the getEnumConstantValue() generated and used for every framework, so we
can use a specific namespace for the enum conversion methods.

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::breakpointActionTypeForString): Use Inspector::Protocol::InspectorHelpers.

  • inspector/scripts/codegen/cpp_generator.py:

(CppGenerator.helpers_namespace): Return the namespace name that should be used for the helper methods.

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:

(CppBackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain): Use
CppGenerator.helpers_namespace() to use the right namespace when using getEnumConstantValue().
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command): Ditto.

  • inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:

(CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event): Ditto.

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:

(CppProtocolTypesHeaderGenerator.generate_output): Move declaration of getEnumConstantValue to a helper function.
(_generate_enum_constant_value_conversion_methods): Do not emit any code if there aren't enums and ensure all
conversion methods are declared inside the helpers namespace.
(_generate_builder_setter_for_member): Use CppGenerator.helpers_namespace() to use the right namespace when
using getEnumConstantValue().
(_generate_unchecked_setter_for_member): Ditto.
(_generate_declarations_for_enum_conversion_methods): Return a list instead of a string so that we can return an
empty list in case of not emitting any code. The caller will use extend() that has no effect when an empty list
is passed.

  • inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator.generate_output): Use the new helper function to generate both the enum
mapping and conversion methods inside the helpers namespace.
(CppProtocolTypesImplementationGenerator._generate_enum_mapping): Return a list instead of a string so that we
can return an empty list in case of not emitting any code.
(CppProtocolTypesImplementationGenerator._generate_enum_mapping_and_conversion_methods): Ensure we only emit
code when there are enum values, and it's generated inside the helpers namespace.

  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/expected/enum-values.json-result:
  • inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/expected/same-type-id-different-domain.json-result:
  • inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
  • inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:

Source/WebCore:

Use Inspector::Protocol::AutomationEnums namespace for getEnumConstantValue().

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::addRecordToTimeline):

Source/WebKit2:

Use Inspector::Protocol::AutomationEnums namespace for getEnumConstantValue().

  • UIProcess/Automation/WebAutomationSession.cpp:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame):
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithOrdinal):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithName):
(WebKit::WebAutomationSessionProxy::resolveParentFrame):
(WebKit::WebAutomationSessionProxy::computeElementLayout):

7:20 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
7:12 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
7:10 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
6:40 AM Changeset in webkit [199004] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Avoid double traversal in RenderTreeUpdater for slot roots
​https://bugs.webkit.org/show_bug.cgi?id=156110

Reviewed by Andreas Kling.

  • style/RenderTreeUpdater.cpp:

(WebCore::hasDisplayContents):
(WebCore::findRenderingRoot):
(WebCore::findRenderingRoots):
(WebCore::RenderTreeUpdater::commit):

If there are multiple roots that are slots we may end up updating the same rendering root multiple times.
Fix by deduplicating the roots.

(WebCore::RenderTreeUpdater::updateRenderTree):

Some cleanups.

5:58 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
5:56 AM Changeset in webkit [199003] by Antti Koivisto
  • 17 edits
    1 add in trunk/Source/WebCore

Enable assertions against DOM mutations in RenderTreeUpdater
​https://bugs.webkit.org/show_bug.cgi?id=156156

Reviewed by Andreas Kling.

Ensure we don't mutate DOM or dispatch events during render tree updates.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/ContainerNode.cpp:
  • dom/ContainerNode.h:

(WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion): Deleted.
(WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion): Deleted.
(WebCore::NoEventDispatchAssertion::isEventDispatchForbidden): Deleted.

Move NoEventDispatchAssertion to a header of its own.

  • dom/NoEventDispatchAssertion.h: Added.

(WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion):
(WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion):
(WebCore::NoEventDispatchAssertion::isEventDispatchForbidden):
(WebCore::NoEventDispatchAssertion::dropTemporarily):
(WebCore::NoEventDispatchAssertion::restoreDropped):

Add a way to disable event assertions temporarily.

  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::ensureCustomFontData):

Temporary SVG font document may get constructed during render tree update. These can't run scripts or generally
affect anything outside the font document as it does not have a frame. Disable event assertions temporarily.

Tested by svg/W3C-SVG-1.1/fonts-elem-07-b.svg

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRenderTree):

Enable assertions.

5:53 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
5:51 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
rotate gardnening logs by year (diff)
5:49 AM WebKitGTK/Gardening/Calendar/2015Logs created by clopez@igalia.com
5:47 AM WebKitGTK/Gardening/Calendar/2014Logs created by clopez@igalia.com
3:26 AM Changeset in webkit [199002] by commit-queue@webkit.org
  • 8 edits
    5 deletes in trunk/Source/WebKit2

Fix WEB_PROCESS_CMD_PREFIX and NETWORK_PROCESS_CMD_PREFIX after r196500
​https://bugs.webkit.org/show_bug.cgi?id=156060

Patch by Emanuele Aina <Emanuele Aina> on 2016-04-04
Reviewed by Darin Adler.

Commit r196500 was a bit too eager in removing the
platformGetLaunchOptions() callsites as non-mac platform still use
that in debug builds to attach debugging tools to spawned
subprocesses (eg. gdbserver).

Instead of reinstating them and relying on each subprocess type to
implement its own platformGetLaunchOptions() version (all alike),
avoid duplication and check the *_PROCESS_CMD_PREFIX environment
variables in a single place, ChildProcessProxy::getLaunchOptions().

Doing so also improves consistency in *_PROCESS_CMD_PREFIX support:
only WEB_PROCESS_CMD_PREFIX and NETWORK_PROCESS_CMD_PREFIX worked with
both the GTK and EFL ports while PLUGIN_PROCESS_CMD_PREFIX only
worked for EFL and there was no corresponding
DATABASE_PROCESS_CMD_PREFIX implementation.

  • UIProcess/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::getLaunchOptions): Check the
appropriate *_PROCESS_CMD_PREFIX environment variable.

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::PluginProcessProxy::platformGetLaunchOptions): Drop
check for PLUGIN_PROCESS_COMMAND_PREFIX, now handled by
ChildProcessProxy::getLaunchOptions().

  • UIProcess/Databases/DatabaseProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebProcessProxy.h: Drop platformGetLaunchOptions()

prototypes.

  • UIProcess/Network/soup/NetworkProcessProxySoup.cpp:
  • UIProcess/Databases/efl/DatabaseProcessProxyEfl.cpp:
  • UIProcess/Databases/gtk/DatabaseProcessProxyGtk.cpp:
  • UIProcess/efl/WebProcessProxyEfl.cpp:
  • UIProcess/gtk/WebProcessProxyGtk.cpp: Removed, they only contained

platformGetLaunchOptions() implementations.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake: Drop removed files.
3:26 AM Changeset in webkit [199001] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[TexMap] Trim redundant guards
​https://bugs.webkit.org/show_bug.cgi?id=155927

Patch by Emanuele Aina <Emanuele Aina> on 2016-04-04
Reviewed by Žan Doberšek.

  • platform/graphics/GraphicsContext3DPrivate.cpp: Drop some redundant

checks in preprocessor guards.

3:21 AM Changeset in webkit [199000] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Rely on PlatformLayer to choose the TextureMapperPlatformLayer impl
​https://bugs.webkit.org/show_bug.cgi?id=155926

Patch by Emanuele Aina <Emanuele Aina> on 2016-04-04
Reviewed by Žan Doberšek.

Use PlatformLayer to replace a bunch of subtly different #ifdef
scattered over the codebase to choose between TextureMapperPlatformLayer
and TextureMapperPlatformLayerProxyProvider.

  • platform/graphics/GraphicsContext3DPrivate.h:
  • platform/graphics/cairo/ImageBufferDataCairo.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Use

PlatformLayer.h an inherit from PlatformLayer instead of choosing the
right implementation every time.

  • platform/graphics/texmap/TextureMapperPlatformLayer.h: Add

TEXTURE_MAPPER guards to make it unconditionally usable.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: Add

COORDINATED_GRAPHICS_THREADED guards to make it unconditionally
usable.

1:51 AM Changeset in webkit [198999] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed ARM buildfix after r198981.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::roundTowardZeroDouble):

1:25 AM Changeset in webkit [198998] by fred.wang@free.fr
  • 14 edits in trunk

Refactor RenderMathMLRow layout functions to avoid using flexbox
​https://bugs.webkit.org/show_bug.cgi?id=153208

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-04
Reviewed by Martin Robinson.

Source/WebCore:

This is the first patch to rewrite MathML layout without relying on
flexboxes or anonymous renderers.
We have done some temporary changes to allow overriding of
layoutBlock and to implement paintChildren, but this will be remove in a
follow-up patch. We also implement firstLineBaseline,
computePreferredLogicalWidths and layoutBlock of RenderMathMLRow without
using any flexbox functions. We adjust a bit the MathML CSS to take into
account these changes. Finally, we delete the unused helper function to
create anonymous RenderMathMLRow.

  • css/mathml.css:

(ms, mtext, mi, mn, mo, annotation, mtd): Prevent linebreaking inside token elements and table cells, otherwise this cause test failures with the new implementation of RenderMathMLRow.
(math, mrow, mfenced, merror, mphantom, mstyle, menclose): Deleted. We no longer rely on flexbox for baseline alignment of RenderMathMLRow.

  • rendering/RenderFlexibleBox.h: Allow overrider of the LayoutBlock for the moment.
  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderMathMLMenclose): Add helper function.

  • rendering/mathml/RenderMathMLMenclose.h: ditto.
  • rendering/mathml/RenderMathMLBlock.h:

(WebCore::ascentForChild): Add helper function to easily compute the ascent of a child.

  • rendering/mathml/RenderMathMLRow.cpp: Reimplement the class without using the flexbox layout.

(WebCore::RenderMathMLRow::firstLineBaseline): Implement the function to determine the baseline.
(WebCore::RenderMathMLRow::computeLineVerticalStretch): Add a function that browses non-stretchy children to determine the desired vertical stretch metrics.
(WebCore::RenderMathMLRow::computePreferredLogicalWidths): Implement the function to determine the preferred widths of the RenderMathMLRow.
(WebCore::RenderMathMLRow::layoutRowItems): Helper function that layouts children (stretching vertical operators if needed), calculate the exact logical width and position children.
(WebCore::RenderMathMLRow::layoutBlock): Implement the function to do the actual layout, which essentially calls layoutRowItems.
(WebCore::RenderMathMLRow::paintChildren): Temporarily implement this function, which just calls paintChild on each child.
(WebCore::RenderMathMLRow::createAnonymousWithParentRenderer): Deleted. We actually don't create anonymous RenderMathMLRow at the moment.
(WebCore::RenderMathMLRow::layout): Deleted.

  • rendering/mathml/RenderMathMLRow.h: Update declarations of functions.

LayoutTests:

Apply some small adjustments to MathML tests after the refactoring of RenderMathMLRow.

  • TestExpectations: Skip fractions-positions reftest for now. The small difference will be fixed after refactoring completely RenderMathMLFraction. We also ignore a test for margin/padding on MathML renderers.
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png: Update reference to take into account small changes in stretch size.

The intended test behavior (reading variants and construction from the MATH table) is preserved.

  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: ditto.
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png: ditto.
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt: ditto.
12:53 AM Changeset in webkit [198997] by Chris Fleizach
  • 7 edits in trunk/Source/WebCore

AX: Consolidate radio button group member code with that in HTMLElement derivatives
​https://bugs.webkit.org/show_bug.cgi?id=155696
<rdar://problem/25260379>

Reviewed by Darin Adler.

Behavior covered by existing tests.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):

  • dom/CheckedRadioButtons.cpp:

(WebCore::RadioButtonGroup::isValid):
(WebCore::RadioButtonGroup::members):
(WebCore::RadioButtonGroup::setCheckedButton):
(WebCore::CheckedRadioButtons::addButton):
(WebCore::CheckedRadioButtons::groupMembers):
(WebCore::CheckedRadioButtons::updateCheckedState):

  • dom/CheckedRadioButtons.h:
  • dom/Range.h:

(WebCore::documentOrderComparator):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isInRequiredRadioButtonGroup):
(WebCore::HTMLInputElement::radioButtonGroup):
(WebCore::HTMLInputElement::checkedRadioButtonForGroup):

  • html/HTMLInputElement.h:
12:42 AM Changeset in webkit [198996] by Hunseop Jeong
  • 10 edits
    2 adds in trunk/LayoutTests

[EFL] Unreviewed EFL Gardening on 4th Apr.

Rebaseline some unexpected failures.

  • platform/efl/editing/execCommand/5481523-expected.txt: Rebaseline after r195740
  • platform/efl/fast/css/layerZOrderCrash-expected.txt: Rebaseline after r195740
  • platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt: Rebaseline after r187380
  • platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt: Rebaseline after r187380
  • platform/efl/fast/css/word-space-extra-expected.txt: Rebaseline after r192660
  • platform/efl/fast/table/click-near-anonymous-table-expected.txt: Rebaseline after r195740
  • platform/efl/fast/text/svg-font-face-with-kerning-expected.txt: Added. Rebaseline after r182620
  • platform/efl/fast/text/textIteratorNilRenderer-expected.txt: Rebaseline after r195740
  • platform/efl/fast/text/trak-optimizeLegibility-expected.txt: Added. Rebaseline after r191623
  • platform/efl/fast/transforms/bounding-rect-zoom-expected.txt: Rebaseline after r191623
  • platform/efl/svg/wicd/test-rightsizing-b-expected.txt: Rebaseline after r182620

Apr 3, 2016:

10:26 PM Changeset in webkit [198995] by ggaren@apple.com
  • 13 edits in trunk/Source/bmalloc

bmalloc: segregate small and large objects again, and allocate more objects on the small path
​https://bugs.webkit.org/show_bug.cgi?id=156152

Reviewed by Sam Weinig.

Microbenchmark data suggested that it was a good idea for small and large
objects to share memory. But r198675 did not improve memory use in
full browser benchmarks.

This patch reverts to segregating small and large objects -- but without
going back to doubled VM usage -- in order to capture a few benefits:

(*) Small pages fragment the large heap. Separating them out saves a lot
of memory in our worst case fragmentation recording:

nimlang 276,076kB 209,636kB 1.32x smaller

(*) Small objects are common enough that even their slow paths benefit
from simpler code:

Execution Time:

...
facebook 234ms 216ms 1.08x faster
reddit 114ms 108ms
1.06x faster
flickr 118ms 111ms 1.06x faster
theverge 146ms 140ms
1.04x faster
...
<arithmetic mean> 107ms 102ms 1.04x faster

(*) We can use less metadata:

Memory at End:

...
list_allocate 460kB 384kB 1.2x smaller
tree_allocate 492kB 424kB
1.16x smaller
tree_churn 480kB 404kB 1.19x smaller
fragment 532kB 452kB
1.18x smaller
fragment_iterate 712kB 588kB 1.21x smaller
medium 15,152kB 11,796kB
1.28x smaller
big 15,044kB 10,976kB 1.37x smaller
...
<arithmetic mean> 7,724kB 7,190kB
1.07x smaller

This patch also takes advantage of our support for varying the page size
at runtime by allocating more objects on the small object path:

medium 178ms 150ms 1.19x faster

Some microbenchmarks report memory use increases from this change -- like
they reported memory use decreases from r198675 -- but I'm ignoring them
for now because I expect our full browser memory benchmarks to confirm
that this patch is fine.

  • bmalloc/BumpAllocator.h:

(bmalloc::BumpAllocator::BumpAllocator): Use a full unsigned because we
can allocate objects larger than 16kB - 1, and a full unsigned does not
make BumpAllocator any larger on 64bit systems.

  • bmalloc/Chunk.h:

(bmalloc::Chunk::begin):
(bmalloc::Chunk::end):
(bmalloc::Chunk::size):
(bmalloc::Chunk::objectType): Store ObjectType in the Chunk, since it only
varies by Chunk now, and not from page to page within a Chunk. Also,
union together small and large object metadata, since we will only use
one or the other. This saves memory.

(bmalloc::Chunk::Chunk): Conditionalize initialization based on object
type, since only one kind of metadata or the other can be used at runtime.

(bmalloc::Object::Object):
(bmalloc::Object::begin):
(bmalloc::SmallPage::end): Deleted.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):
(bmalloc::Heap::initializeLineMetadata): Save a little space, since we
know that lines are only 256 bytes long.

(bmalloc::Heap::initializePageMetadata): Store a dynamic page size for
each size class. We used to use only one page size (the system page size)
but that limited our ability to allocate objects larger than 1kB on the
small object path. Now we can handle any object size we want by storing
objects of that size in a custom page size.

(bmalloc::Heap::concurrentScavenge):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeSmallPages): Revert to our old linked list
strategy for storing small pages.

(bmalloc::Heap::splitAndAllocate): Object type is per Chunk now.

(bmalloc::Heap::allocateLarge): Don't nuke the small page list when
allocating a large object because the two don't share memory anymore.

(bmalloc::Heap::allocateSmallPage): Revert to our old linked list
strategy for storing small pages.

(bmalloc::Heap::deallocateSmallLine): Don't return early in the case
where this is the first free object in the page. In the case of large-ish
objects, the first free object might also be the last free object,
since there's one object per page.

(bmalloc::Heap::allocateSmallBumpRangesByMetadata): Split out some helper
lambdas to make this code clearer.

(bmalloc::Heap::allocateSmallBumpRangesByObject): Added a fast scan
for objects larger than the line size. When multiple objects fit in
a single line, it's an optimization to scan a line at a time. But when
it's one object per line, or one object per 64 lines, it's better just
to scan an object at a time.

  • bmalloc/Heap.h:

(bmalloc::Heap::allocateSmallBumpRanges):
(bmalloc::Heap::derefSmallLine): Match the changes above.

  • bmalloc/LineMetadata.h: We weren't using all those bits.
  • bmalloc/List.h:

(bmalloc::List::remove): Put a removed Node fully back into the default
(empty) state it was in before it entered the list. This change is not
observable, but it makes things clearer when you're debugging.

  • bmalloc/Object.h:

(bmalloc::Object::Object):
(bmalloc::Object::chunk):
(bmalloc::Object::offset):
(bmalloc::Object::operator+):
(bmalloc::Object::operator<=): Added some helpers for iterating by object.

  • bmalloc/ObjectType.cpp:

(bmalloc::objectType): Updated for API change.

  • bmalloc/Sizes.h:

(bmalloc::Sizes::maskObjectSize):
(bmalloc::Sizes::objectSize):
(bmalloc::Sizes::pageSize): Support more page sizes.

  • bmalloc/SmallPage.h:

(bmalloc::SmallPage::SmallPage):
(bmalloc::SmallPage::objectType): Deleted.
(bmalloc::SmallPage::setObjectType): Deleted.
(bmalloc::SmallPage::smallPageCount): Deleted.
(bmalloc::SmallPage::setSmallPageCount): Deleted. Object type is per
Chunk now, and we can infer page count from size class.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateChunk):
(bmalloc::VMHeap::allocateSmallChunk):

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateSmallPage):
(bmalloc::VMHeap::deallocateSmallPage):
(bmalloc::VMHeap::allocateLargeObject): Support our old behavior of
storing free pages in linked lists.

4:01 PM Changeset in webkit [198994] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Remove unneeded UsePointersEvenForNonNullableObjectArguments in WebKitCSSMatrix.idl
​https://bugs.webkit.org/show_bug.cgi?id=156142

Reviewed by Sam Weinig.

  • css/WebKitCSSMatrix.idl: Removed UsePointersEvenForNonNullableObjectArguments.

It was having no effect, I think because there were no non-nullable object arguments.

3:00 PM Changeset in webkit [198993] by clopez@igalia.com
  • 83 edits
    65 adds in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

Rebaseline many SVG tests after r197814 and mark new reported failures.

  • platform/gtk/TestExpectations:
  • platform/gtk/svg/W3C-SVG-1.1-SE/color-prop-05-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/color-prop-05-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/interact-pointer-03-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/interact-pointer-03-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-control-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-control-04-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-marker-07-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-marker-07-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/struct-use-14-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/struct-use-14-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-css-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-css-04-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-24-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/animate-elem-24-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/filters-light-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/filters-light-04-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/filters-turb-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/filters-turb-02-f-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-03-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/masking-mask-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-06-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-06-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-07-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-07-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-08-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-elems-08-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-01-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-03-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-03-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-align-08-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-align-08-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-fonts-03-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-fonts-03-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-01-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-01-t-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-02-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-03-b-expected.txt: Added.
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-04-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-04-t-expected.txt: Added.
  • platform/gtk/svg/batik/text/textEffect-expected.png:
  • platform/gtk/svg/batik/text/textEffect-expected.txt: Added.
  • platform/gtk/svg/batik/text/textEffect3-expected.png:
  • platform/gtk/svg/batik/text/textEffect3-expected.txt: Added.
  • platform/gtk/svg/batik/text/textPosition2-expected.png:
  • platform/gtk/svg/batik/text/textPosition2-expected.txt:
  • platform/gtk/svg/custom/glyph-selection-arabic-forms-expected.png:
  • platform/gtk/svg/custom/glyph-selection-arabic-forms-expected.txt:
  • platform/gtk/svg/custom/glyph-selection-non-bmp-expected.png:
  • platform/gtk/svg/custom/glyph-selection-non-bmp-expected.txt:
  • platform/gtk/svg/custom/glyph-setting-d-attribute-expected.txt: Added.
  • platform/gtk/svg/custom/glyph-transformation-with-hkern-expected.png:
  • platform/gtk/svg/custom/glyph-transformation-with-hkern-expected.txt: Added.
  • platform/gtk/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png:
  • platform/gtk/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-in-text-controls-expected.txt: Added.
  • platform/gtk/svg/custom/svg-fonts-no-latin-glyph-expected.txt: Added.
  • platform/gtk/svg/custom/svg-fonts-segmented-expected.png:
  • platform/gtk/svg/custom/svg-fonts-segmented-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-with-no-element-reference-expected.png:
  • platform/gtk/svg/custom/svg-fonts-with-no-element-reference-expected.txt: Added.
  • platform/gtk/svg/custom/svg-fonts-without-missing-glyph-expected.png:
  • platform/gtk/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-word-spacing-expected.png:
  • platform/gtk/svg/custom/svg-fonts-word-spacing-expected.txt:
  • platform/gtk/svg/foreignObject/text-tref-02-b-expected.png:
  • platform/gtk/svg/foreignObject/text-tref-02-b-expected.txt: Added.
  • platform/gtk/svg/text/text-overflow-ellipsis-svgfont-expected.png:
  • platform/gtk/svg/text/text-overflow-ellipsis-svgfont-expected.txt:
  • platform/gtk/svg/text/text-text-05-t-expected.png:
  • platform/gtk/svg/text/text-text-05-t-expected.txt: Added.
  • platform/gtk/svg/transforms/text-with-mask-with-svg-transform-expected.png:
  • platform/gtk/svg/transforms/text-with-mask-with-svg-transform-expected.txt: Added.
  • platform/gtk/svg/wicd/test-rightsizing-b-expected.png:
  • platform/gtk/svg/wicd/test-rightsizing-b-expected.txt:
3:00 PM Changeset in webkit [198992] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

Tighten ComposedTreeAncestorIterator to return Elements
​https://bugs.webkit.org/show_bug.cgi?id=150324

Reviewed by Andreas Kling.

Only other thing it could credibly return was Document. We can exclude it from the composed tree and avoid some casting.

  • dom/ComposedTreeAncestorIterator.h:

(WebCore::ComposedTreeAncestorIterator::operator*):
(WebCore::ComposedTreeAncestorIterator::operator->):
(WebCore::ComposedTreeAncestorIterator::operator==):
(WebCore::ComposedTreeAncestorIterator::operator!=):
(WebCore::ComposedTreeAncestorIterator::operator++):
(WebCore::ComposedTreeAncestorIterator::get):
(WebCore::ComposedTreeAncestorIterator::ComposedTreeAncestorIterator):
(WebCore::ComposedTreeAncestorIterator::traverseParent):
(WebCore::ComposedTreeAncestorAdapter::begin):
(WebCore::ComposedTreeAncestorAdapter::end):
(WebCore::ComposedTreeAncestorAdapter::first):

  • dom/Element.cpp:

(WebCore::Element::resolveComputedStyle):

  • dom/Node.cpp:

(WebCore::Node::updateAncestorsForStyleRecalc):
(WebCore::Node::setNeedsStyleRecalc):

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::isChildAllowed):
(WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEventIfNeeded):

  • style/RenderTreeUpdater.cpp:

(WebCore::findRenderingRoot):
(WebCore::RenderTreeUpdater::commit):

2:19 PM Changeset in webkit [198991] by ddkilzer@apple.com
  • 1 edit in branches/safari-601.1.46-branch/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm

Fix build by moving elementRectInWindow() to where it is used.

1:19 PM Changeset in webkit [198990] by Antti Koivisto
  • 7 edits
    2 adds in trunk

Shadow DOM: Slot style is not computed
​https://bugs.webkit.org/show_bug.cgi?id=156144

Reviewed by Darin Adler.

Source/WebCore:

We don’t currently compute style for active slots. While slots have have implicit display:contents and don’t create
boxes themselves the style should still inherit to slotted children.

Basically

<slot style=“color:red”></slot>

should work as expected.

The implementation falls out from the new style resolve architecture and this patch mostly just removes the special
case code that prevented this from working.

Test: fast/shadow-dom/css-scoping-shadow-slot-style.html

  • html/HTMLSlotElement.h:

(WebCore::hasImplicitDisplayContents):

Move to a shared location.

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::RenderTreeUpdater):
(WebCore::findRenderingRoot):
(WebCore::RenderTreeUpdater::updateRenderTree):

Remove the special case code. What remains is a display:contents test for rendererless elements.

(WebCore::RenderTreeUpdater::updateElementRenderer):

Don't create renderers for (implicit) display:contents.

(WebCore::hasDisplayContents): Deleted.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::detachRenderTree):
(WebCore::Style::affectsRenderedSubtree):

Factor into a function.

(WebCore::Style::TreeResolver::resolveElement):

Remove the special case code.

(WebCore::Style::TreeResolver::resolveComposedTree):

Always resolve slots as we don't currently save their style.

LayoutTests:

  • fast/shadow-dom/css-scoping-shadow-slot-style-expected.html: Added.
  • fast/shadow-dom/css-scoping-shadow-slot-style.html: Added.
12:45 PM Changeset in webkit [198989] by sbarati@apple.com
  • 19 edits
    1 add in trunk

Implement Annex B.3.3 function hoisting rules for function code
​https://bugs.webkit.org/show_bug.cgi?id=155672

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

The spec states that functions declared inside a function
inside a block scope are subject to the rules of Annex B.3.3:
​https://tc39.github.io/ecma262/#sec-block-level-function-declarations-web-legacy-compatibility-semantics

The rule states that functions declared in such blocks should
be local bindings of the block. If declaring the function's name
as a "var" in the function would not lead to a syntax error (i.e,
if we don't have a let/const/class variable with the same name)
and if we don't have a parameter with the same name, then we
implictly also declare the funcion name as a "var". When evaluating
the block statement we bind the hoisted "var" to be the value
of the local function binding.

There is one more thing we do for web compatibility. We allow
function declarations inside if/else statements that aren't
blocks. For such statements, we transform the code as if the
function were declared inside a block statement. For example:
function foo() { if (cond) function baz() { } }
is transformed into:
function foo() { if (cond) { function baz() { } } }

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):

  • bytecompiler/BytecodeGenerator.h:
  • parser/Nodes.cpp:

(JSC::ScopeNode::ScopeNode):
(JSC::ProgramNode::ProgramNode):
(JSC::ModuleProgramNode::ModuleProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode):

  • parser/Nodes.h:

(JSC::ScopeNode::hasCapturedVariables):
(JSC::ScopeNode::captures):
(JSC::ScopeNode::hasSloppyModeHoistedFunction):
(JSC::ScopeNode::varDeclarations):
(JSC::ProgramNode::startColumn):
(JSC::ProgramNode::endColumn):
(JSC::EvalNode::startColumn):
(JSC::EvalNode::endColumn):
(JSC::ModuleProgramNode::startColumn):
(JSC::ModuleProgramNode::endColumn):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::didFinishParsing):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseIfStatement):

  • parser/Parser.h:

(JSC::Scope::declareVariable):
(JSC::Scope::declareFunction):
(JSC::Scope::addSloppyModeHoistableFunctionCandidate):
(JSC::Scope::appendFunction):
(JSC::Scope::declareParameter):
(JSC::Scope::mergeInnerArrowFunctionFeatures):
(JSC::Scope::getSloppyModeHoistedFunctions):
(JSC::Scope::getCapturedVars):
(JSC::ScopeRef::containingScope):
(JSC::ScopeRef::operator==):
(JSC::ScopeRef::operator!=):
(JSC::Parser::declareFunction):
(JSC::Parser::hasDeclaredVariable):
(JSC::Parser::isFunctionMetadataNode):
(JSC::Parser::DepthManager::DepthManager):
(JSC::Parser<LexerType>::parse):

  • parser/VariableEnvironment.h:

(JSC::VariableEnvironmentEntry::isImported):
(JSC::VariableEnvironmentEntry::isImportedNamespace):
(JSC::VariableEnvironmentEntry::isFunction):
(JSC::VariableEnvironmentEntry::isParameter):
(JSC::VariableEnvironmentEntry::isSloppyModeHoistingCandidate):
(JSC::VariableEnvironmentEntry::setIsCaptured):
(JSC::VariableEnvironmentEntry::setIsConst):
(JSC::VariableEnvironmentEntry::setIsImported):
(JSC::VariableEnvironmentEntry::setIsImportedNamespace):
(JSC::VariableEnvironmentEntry::setIsFunction):
(JSC::VariableEnvironmentEntry::setIsParameter):
(JSC::VariableEnvironmentEntry::setIsSloppyModeHoistingCandidate):
(JSC::VariableEnvironmentEntry::clearIsVar):

  • runtime/CodeCache.h:

(JSC::SourceCodeValue::SourceCodeValue):

  • runtime/JSScope.cpp:
  • runtime/JSScope.h:
  • tests/es6.yaml:
  • tests/stress/sloppy-mode-function-hoisting.js: Added.

(assert):
(test):
(falsey):
(truthy):
(test.):
(test.a):
(test.f):
(test.let.funcs.f):
(test.catch.f):
(test.foo):
(test.bar):
(test.switch.case.0):
(test.else.f):
(test.b):
(test.c):
(test.d):
(test.e):
(test.g):
(test.h):
(test.i):
(test.j):
(test.k):
(test.l):
(test.m):
(test.n):
(test.o):
(test.p):
(test.q):
(test.r):
(test.s):
(test.t):
(test.u):
(test.v):
(test.w):
(test.x):
(test.y):
(test.z):
(foo):
(bar):
(falsey.bar):
(baz):
(falsey.baz):

LayoutTests:

  • js/kde/func-decl-expected.txt:
  • js/kde/script-tests/func-decl.js:
  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:

(valid):
(onlyValidGlobally):
(onlyInvalidGlobally):
(invalid):

12:38 PM Changeset in webkit [198988] by mitz@apple.com
  • 2 edits in trunk/Tools

Use the correct value for the first nightly build with frameworks built for OS X 10.11.

  • Scripts/bisect-builds:

(makeNightlyList):

12:14 PM Changeset in webkit [198987] by mitz@apple.com
  • 2 edits in trunk/Tools

Made bisect-builds work again.

Rubber-stamped by Sam Weinig.

  • Scripts/bisect-builds:

Changed to use HTTPS to access nightly.webkit.org, and added a minimum revision for OS X 10.11.

11:56 AM Changeset in webkit [198986] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebCore

REGRESSION (r198653, r198864): http/tests/contentdispositionattachmentsandbox/referer-header-stripped*.html tests crashing due to unavailable SPI
<​http://webkit.org/b/156145>

Reviewed by Tim Horton.

Covered by existing tests under GuardMalloc:

http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url.html
http/tests/contentdispositionattachmentsandbox/referer-header-stripped.html

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::isDataDetectorLink):
(WebCore::DataDetection::shouldCancelDefaultAction):

  • Restore iOS 9.x code.

(WebCore::DataDetection::detectContentInRange):

  • Guard new SPI with version macros.
  • platform/cocoa/DataDetectorsCoreSoftLink.h:
  • platform/cocoa/DataDetectorsCoreSoftLink.mm:
  • Guard new SPI with version macros.
9:50 AM Changeset in webkit [198985] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, turn ES6 for-in loop test success
​https://bugs.webkit.org/show_bug.cgi?id=155451

  • tests/es6.yaml:
3:56 AM Changeset in webkit [198984] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Bump GTK+ versions numbers.

  • Source/cmake/OptionsGTK.cmake:
3:50 AM Changeset in webkit [198983] by Carlos Garcia Campos
  • 9 edits in trunk/Source/WebCore

Replace all RenderTheme::popupInternalPadding methods with a single one returning a LengthBox
​https://bugs.webkit.org/show_bug.cgi?id=156098

Reviewed by Darin Adler.

The caller always wants all padding sides, so we can simplify both the caller and the implementations by using a
single method. It's also more efficient for the GTK+ port that creates and destroys the same style contexts on
every call.

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::adjustInnerStyle):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::popupInternalPaddingBox):
(WebCore::RenderTheme::popupInternalPaddingLeft): Deleted.
(WebCore::RenderTheme::popupInternalPaddingRight): Deleted.
(WebCore::RenderTheme::popupInternalPaddingTop): Deleted.
(WebCore::RenderTheme::popupInternalPaddingBottom): Deleted.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::popupInternalPaddingBox):
(WebCore::getComboBoxMetrics): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingLeft): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingRight): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingTop): Deleted.
(WebCore::RenderThemeGtk::popupInternalPaddingBottom): Deleted.

  • rendering/RenderThemeGtk.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::popupInternalPaddingBox):
(WebCore::RenderThemeIOS::popupInternalPaddingRight): Deleted.

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

(WebCore::RenderThemeMac::popupInternalPaddingBox):
(WebCore::RenderThemeMac::popupInternalPaddingLeft): Deleted.
(WebCore::RenderThemeMac::popupInternalPaddingRight): Deleted.
(WebCore::RenderThemeMac::popupInternalPaddingTop): Deleted.
(WebCore::RenderThemeMac::popupInternalPaddingBottom): Deleted.

2:56 AM Changeset in webkit [198982] by ddkilzer@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

REGRESSION (r198859): fast/scrolling/rtl-scrollbars-animation-property.html fails on non-Mac platforms
<​http://webkit.org/b/155962>

Unreviewed; land platform-specific test results.

  • platform/gtk/fast/scrolling/rtl-scrollbars-animation-property-expected.txt: Added.
  • platform/ios-simulator/fast/scrolling/rtl-scrollbars-animation-property-expected.txt: Added.
  • platform/win/fast/scrolling/rtl-scrollbars-animation-property-expected.txt: Added.
1:37 AM Changeset in webkit [198981] by Yusuke Suzuki
  • 37 edits
    9 adds in trunk

[JSC] Add truncate operation (rounding to zero)
​https://bugs.webkit.org/show_bug.cgi?id=156072

Reviewed by Saam Barati.

Source/JavaScriptCore:

Add TruncIntrinsic for Math.trunc. DFG handles it as ArithTrunc.
In DFG, ArithTrunc behaves similar to ArithRound, ArithCeil, and ArithFloor.
ArithTrunc rounds the value towards zero.

And we rewrite @toInteger to use @trunc instead of @abs, @floor, negation and branch.
This is completely the same to what we do in JSValue::toInteger.

Since DFG recognize it, DFG can convert ArithTrunc to Identity if the given argument is Int32.
This is useful because almost all the argument is Int32 in @toLength -> @toInteger -> @trunc case.
In such cases, we can eliminate trunc() call.

As a bonus, to speed up Math.trunc operation, we use x86 SSE round and frintz in ARM64 for ArithRound.
In DFG, we emit these instructions. In FTL, we use Patchpoint to emit these instructions to avoid adding a new B3 IR.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::roundTowardZeroDouble):
(JSC::MacroAssemblerARM64::roundTowardZeroFloat):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::roundTowardZeroDouble):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::roundTowardZeroDouble):

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::roundTowardZeroDouble):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::roundTowardZeroDouble):
(JSC::MacroAssemblerX86Common::roundTowardZeroFloat):

  • builtins/GlobalObject.js:

(toInteger):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::roundShouldSpeculateInt32):

  • dfg/DFGNode.h:

(JSC::DFG::Node::arithNodeFlags):
(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::hasArithRoundingMode):

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithRounding):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileArithTrunc):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::doubleTrunc):

  • ftl/FTLOutput.h:
  • jit/ThunkGenerators.cpp:

(JSC::truncThunkGenerator):

  • jit/ThunkGenerators.h:
  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/MathObject.h:
  • runtime/VM.cpp:

(JSC::thunkGeneratorForIntrinsic):

  • tests/stress/math-rounding-infinity.js:

(testTrunc):

  • tests/stress/math-rounding-nan.js:

(testTrunc):

  • tests/stress/math-rounding-negative-zero.js:

(testTrunc):

  • tests/stress/math-trunc-arith-rounding-mode.js: Added.

(firstCareAboutZeroSecondDoesNot):
(firstDoNotCareAboutZeroSecondDoes):
(warmup):
(verifyNegativeZeroIsPreserved):

  • tests/stress/math-trunc-basics.js: Added.

(mathTruncOnIntegers):
(mathTruncOnDoubles):
(mathTruncOnBooleans):
(uselessMathTrunc):
(mathTruncWithOverflow):
(mathTruncConsumedAsDouble):
(mathTruncDoesNotCareAboutMinusZero):
(mathTruncNoArguments):
(mathTruncTooManyArguments):
(testMathTruncOnConstants):
(mathTruncStructTransition):
(Math.trunc):

  • tests/stress/math-trunc-should-be-truncate.js: Added.

(mathTrunc):

LayoutTests:

  • js/regress/many-foreach-calls-expected.txt: Added.
  • js/regress/many-foreach-calls.html: Added.
  • js/regress/math-trunc-expected.txt: Added.
  • js/regress/math-trunc.html: Added.
  • js/regress/script-tests/many-foreach-calls.js: Added.

forEach calls @toInteger. It includes @trunc now.
(i.array.forEach):

  • js/regress/script-tests/math-trunc.js: Added.

Call Math.trunc repeatedly.
(mathTruncInt):
(mathTruncDouble):
(mathTruncMixed):
(mathTruncDoubleDoesNotCareNegativeZero):

12:59 AM Changeset in webkit [198980] by gskachkov@gmail.com
  • 18 edits in trunk/Source/JavaScriptCore

[ES6] Class syntax. Access to new.target inside of the eval should not lead to SyntaxError
​https://bugs.webkit.org/show_bug.cgi?id=155545

Reviewed by Saam Barati.

Current patch allow to invoke new.target in eval if this eval is executed within function,
otherwise this will lead to Syntax error

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::getSlow):

  • bytecode/ExecutableInfo.h:

(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::evalContextType):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::evalContextType):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluate):

  • interpreter/Interpreter.cpp:

(JSC::eval):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::setEvalContextType):
(JSC::Scope::evalContextType):
(JSC::parse):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):

  • runtime/CodeCache.h:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::ScriptExecutable):
(JSC::EvalExecutable::create):
(JSC::EvalExecutable::EvalExecutable):
(JSC::ProgramExecutable::ProgramExecutable):
(JSC::ModuleProgramExecutable::ModuleProgramExecutable):
(JSC::FunctionExecutable::FunctionExecutable):

  • runtime/Executable.h:

(JSC::ScriptExecutable::evalContextType):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createEvalCodeBlock):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncEval):

  • tests/stress/arrowfunction-lexical-bind-newtarget.js:
  • tests/stress/new-target.js:

Apr 2, 2016:

6:55 PM Changeset in webkit [198979] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r198976.
​https://bugs.webkit.org/show_bug.cgi?id=156140

"Causes js/regress/array-nonarray-polymorhpic-access.html to
crash." (Requested by ddkilzer on #webkit).

Reverted changeset:

"[JSC] Initialize SSA's live values at tail lazily"
​https://bugs.webkit.org/show_bug.cgi?id=156126
​http://trac.webkit.org/changeset/198976

6:22 PM Changeset in webkit [198978] by gskachkov@gmail.com
  • 3 edits in trunk/LayoutTests

[ES6] Arrow function syntax. Add missed test for using 'with' and 'this' in arrow function.
​https://bugs.webkit.org/show_bug.cgi?id=156059

Reviewed by Saam Barati.

Added test case that cover using 'with' with lexically bound 'this' in arrow function, this case was not
covered by tests for arrow function.

  • js/arrowfunction-lexical-bind-this-expected.txt:
  • js/script-tests/arrowfunction-lexical-bind-this.js:
3:04 PM Changeset in webkit [198977] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r198933): Web Inspector and inspected page hang in local builds
​https://bugs.webkit.org/show_bug.cgi?id=156138
<rdar://problem/25507724>

Reviewed by Alexey Proskuryakov.

Similar to the sandbox policy for WebProcess and NetworkProcess, grant a Database process
read-only filesystem access and mach lookup capability to various Security framework files
and SecurityServer, respectively.

  • DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
2:16 PM Changeset in webkit [198976] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Initialize SSA's live values at tail lazily
​https://bugs.webkit.org/show_bug.cgi?id=156126

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-02
Reviewed by Mark Lam.

Setting up the clean state early looks harmless but it is
actually quite expensive.

The problem is AbstractValue is gigantic, you really want
to minimize how much you touch that memory.

By removing the initialization, most blocks only
get 2 or 3 accesses. Once to setup the value, and a few
queries for merging the current block with the successors.

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::endBasicBlock):
(JSC::DFG::setLiveValues): Deleted.
(JSC::DFG::InPlaceAbstractState::initialize): Deleted.

2:14 PM Changeset in webkit [198975] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Add an option to avoid disassembling baseline code for the JSC Profiler
​https://bugs.webkit.org/show_bug.cgi?id=156127

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-02
Reviewed by Mark Lam.

The profiler run out of memory on big programs if you dump
the baseline disassembly.

  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

  • runtime/Options.h:
1:01 PM Changeset in webkit [198974] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Cleanup DataDetection.mm a little bit
​https://bugs.webkit.org/show_bug.cgi?id=156128

Patch by Sam Weinig <​sam@webkit.org> on 2016-04-02
Reviewed by Dan Bernstein.

  • html/HTMLAttributeNames.in:

Add x-apple-data-detectors, x-apple-data-detectors-type, x-apple-data-detectors-result

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::requiresExtendedContext):
(WebCore::DataDetection::dataDetectorIdentifier):
(WebCore::DataDetection::shouldCancelDefaultAction):
(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):
Use new generated qualified name attributes, switch to using fastGetAttribute and
equalIgnoringASCIICase, and fix the position of some *s.

(WebCore::dataDetectorStringForPath):
Fix some *s and switch to using StringBuilder.

(WebCore::buildQuery):
Fix some *s.

(WebCore::DataDetection::detectContentInRange):
Use new generated qualified name attributes.

12:34 PM Changeset in webkit [198973] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

Another attempt to fix the Apple Internal Yosemite and El Capitan builds following
<​http://trac.webkit.org/changeset/198933> (​https://bugs.webkit.org/show_bug.cgi?id=155455)

Similar to the sandbox policy for WebProcess and NetworkProcess, grant a Database process
access to the passed user's cache directory and passed user's temporary directory so that
the Security framework can verify the code signature of the app that launched it when the
Database process is itself code signed.

  • DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
9:34 AM Changeset in webkit [198972] by mitz@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

jsc binary embedded in relocatable JavaScriptCore.framework links against system JavaScriptCore.framework
​https://bugs.webkit.org/show_bug.cgi?id=156134
<rdar://problem/25443824>

Reviewed by Mark Lam.

  • Configurations/JSC.xcconfig: Define WK_RELOCATABLE_FRAMEWORKS_LDFLAGS when building relocatable frameworks to include a -dyld_env option setting DYLD_FRAMEWORK_PATH to point to the directory containing JavaScript.framework, and add WK_RELOCATABLE_FRAMEWORKS_LDFLAGS to OTHER_LDFLAGS.
1:59 AM Changeset in webkit [198971] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r198963): css3/filters/backdrop/dynamic-backdrop-filter-change.html frequently fails
<​http://webkit.org/b/149319>

Unreviewed attempt to fix layout test.

  • css3/filters/backdrop/dynamic-backdrop-filter-change.html:

Use testRunner.notifyDone() after testRunner.waitUntilDone().

12:01 AM Changeset in webkit [198970] by mmaxfield@apple.com
  • 9 edits in trunk/Source/WebCore

Migrate BidiRunList and BidiRun to automatic memory management
​https://bugs.webkit.org/show_bug.cgi?id=156123

Reviewed by Simon Fraser.

BidiRunList, BidiRun, and BidiCharacterRun have all been doing manual
"new"s and "delete"s for years. This patch migrates those classes to
using std::unique_ptr.

No new tests because there is no behavior change.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawBidiText):

  • platform/text/BidiResolver.h:

(WebCore::BidiCharacterRun::BidiCharacterRun):
(WebCore::BidiCharacterRun::next):
(WebCore::BidiCharacterRun::takeNext):
(WebCore::BidiCharacterRun::setNext):
(WebCore::Subclass>::appendRunInternal):

  • platform/text/BidiRunList.h:

(WebCore::BidiRunList::BidiRunList):
(WebCore::BidiRunList::firstRun):
(WebCore::BidiRunList<Run>::appendRun):
(WebCore::BidiRunList<Run>::prependRun):
(WebCore::BidiRunList<Run>::moveRunToEnd):
(WebCore::BidiRunList<Run>::moveRunToBeginning):
(WebCore::BidiRunList<Run>::replaceRunWithRuns):
(WebCore::BidiRunList<Run>::clear):
(WebCore::BidiRunList<Run>::reverseRuns):
(WebCore::BidiRunList<Run>::clearWithoutDestroyingRuns): Deleted.
(WebCore::BidiRunList<Run>::deleteRuns): Deleted.

  • rendering/BidiRun.cpp:

(WebCore::BidiRun::takeNext):

  • rendering/BidiRun.h:

(WebCore::BidiRun::next):
(WebCore::BidiRun::takeNext):

  • rendering/InlineIterator.h:

(WebCore::addPlaceholderRunForIsolatedInline):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::createRun):
(WebCore::RenderBlockFlow::handleTrailingSpaces):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::skipLeadingWhitespace):

Apr 1, 2016:

11:38 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
10:41 PM Changeset in webkit [198969] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Unreviewed follow-up to r198968. Remove debug statements.

  • Scripts/remove-console-asserts.pl:

(removeConsoleAssertsInFile):

10:23 PM Changeset in webkit [198968] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove console.asserts from Worker code in optimized builds
​https://bugs.webkit.org/show_bug.cgi?id=156124
<rdar://problem/25505031>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-01
Reviewed by Timothy Hatcher.

  • Scripts/copy-user-interface-resources.pl:

Remove console asserts on the Worker results directory.

  • Scripts/remove-console-asserts.pl:

(removeConsoleAssertsInFile):
(removeConsoleAssertsInDirectory):
Refactor into functions for a file and a file for
recursing through directories.

8:21 PM Changeset in webkit [198967] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

Attempt to fix the Apple Internal Yosemite and El Capitan builds following
<​http://trac.webkit.org/changeset/198933> (​https://bugs.webkit.org/show_bug.cgi?id=155455)
<rdar://problem/25502181>

Only check the code signature of the client app if the "user-directory-suffix" sandbox
initialization parameter will not be used. This parameter is only used/passed as an
initialization parameter if the client app is not sandboxed, which seems sufficient
criterion to determine whether it is safe to honor it.

  • Shared/mac/ChildProcessMac.mm:

(WebKit::ChildProcess::initializeSandbox):

7:30 PM Changeset in webkit [198966] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.26.0.1/Source

Versioning.

7:28 PM Changeset in webkit [198965] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.26.0.1

New tag.

6:48 PM Changeset in webkit [198964] by jiewen_tan@apple.com
  • 3 edits
    1 move in trunk/Tools

Build fix for r198956.

Unreviewed.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ProvisionalURLNotChange.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Cocoa/ProvisionalURLChange.mm.

(-[ProvisionalURLNotChangeController webView:didFinishNavigation:]):
(-[ProvisionalURLNotChangeController webView:didFailProvisionalNavigation:withError:]):
(TEST):

  • TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsInvalidScheme.mm:

(-[LoadInvalidSchemeDelegate browsingContextController:didFailProvisionalLoadWithError:]):
(TestWebKitAPI::TEST):

5:19 PM Changeset in webkit [198963] by Simon Fraser
  • 3 edits
    2 adds in trunk

Backdrop Filter should repaint when changed via script
​https://bugs.webkit.org/show_bug.cgi?id=149319
rdar://problem/22749892

Reviewed by Tim Horton.

Source/WebCore:

When backdrop filters change, we need to trigger a recomposite, just as we do
for filters. It's ok to re-use ContextSensitivePropertyFilter because
adjustStyleDifference() does the right thing.

Test: css3/filters/backdrop/dynamic-backdrop-filter-change.html

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayerRepaint):

LayoutTests:

  • css3/filters/backdrop/dynamic-backdrop-filter-change-expected.html: Added.
  • css3/filters/backdrop/dynamic-backdrop-filter-change.html: Added.
5:09 PM Changeset in webkit [198962] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

5:08 PM Changeset in webkit [198961] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

4:52 PM Changeset in webkit [198960] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.125

New tag.

4:51 PM Changeset in webkit [198959] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.6.14

New tag.

4:25 PM Changeset in webkit [198958] by Alan Bujtas
  • 3 edits
    2 adds in trunk

putImageData leaves visible artifacts on retina display
​https://bugs.webkit.org/show_bug.cgi?id=156039
<rdar://problem/25482243>

Reviewed by Simon Fraser.

Inflate the repaint rect to cover anti-aliasing bits.

Source/WebCore:

Test: fast/canvas/hidpi-repaint-on-retina-leaves-bits-behind.html

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::didDraw):

LayoutTests:

  • fast/canvas/hidpi-repaint-on-retina-leaves-bits-behind-expected.html: Added.
  • fast/canvas/hidpi-repaint-on-retina-leaves-bits-behind.html: Added.
2:44 PM Changeset in webkit [198957] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source/WebCore

Roll out r198035 via r198903. rdar://problem/25467558

2:40 PM Changeset in webkit [198956] by jiewen_tan@apple.com
  • 9 edits
    3 adds in trunk

WebKit should dispatchDidFailProvisionalLoad while loading invalid URLs
​https://bugs.webkit.org/show_bug.cgi?id=155995
<rdar://problem/14967004>

Reviewed by Andy Estes.

Source/WebCore:

Added API Tests.

If a loading request contains an invalid URL, DocumentLoader will now dispatch
cannotShowURLError to the clients.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

Source/WebKit2:

Ensure that alternative HTML string will not be loaded back to back for
failing provisional loads.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::didFinishLoadForFrame):

  • UIProcess/WebPageProxy.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/LoadAlternateHTMLString.mm:

(-[LoadAlternateHTMLStringFromProvisionalLoadErrorController webView:didFailProvisionalNavigation:withError:]):
(-[LoadAlternateHTMLStringFromProvisionalLoadErrorController webView:didStartProvisionalNavigation:]):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/LoadInvalidURLRequest.mm: Added.

(literalURL):
(-[LoadInvalidURLNavigationActionDelegate webView:didCommitNavigation:]):
(-[LoadInvalidURLNavigationActionDelegate webView:didFailProvisionalNavigation:withError:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/LoadInvalidURLRequest.html: Added.
  • TestWebKitAPI/Tests/mac/LoadInvalidURLRequest.mm: Added.

(-[LoadInvalidURLWebFrameLoadDelegate webView:didCommitLoadForFrame:]):
(-[LoadInvalidURLWebFrameLoadDelegate webView:didFailProvisionalLoadWithError:forFrame:]):
(TestWebKitAPI::TEST):

2:10 PM Changeset in webkit [198955] by Brent Fulgham
  • 23 edits
    9 adds in trunk

Confirm <a download> satisfies specification criteria
​https://bugs.webkit.org/show_bug.cgi?id=156057

Reviewed by Andy Estes.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp:

(WKBundleNavigationActionGetHasDownloadAttribute): Added.

  • WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:

(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):

  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:

(WebKit::InjectedBundleNavigationAction::hasDownloadAttribute): Added.

Tools:

Revise WebKitTestRunner:
(1) Provide a download client delegate.
(2) Teach WKTR to wait to finish a test until a download finishes.
(3) Allow WKTR to notify the current TestRunner that it can finish.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage): Update to recognize a new
message "NotifyDownloadDone".

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::decidePolicyForNavigationAction): Handle 'download'
attribute case.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::waitUntilDownload): Added.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::shouldFinishAfterDownload): Added.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions): Set up the download client.
(WTR::TestController::downloadDidStart): Added.
(WTR::TestController::decideDestinationWithSuggestedFilename): Added.
(WTR::TestController::downloadDidFinish): Added.
(WTR::TestController::downloadDidFail): Added.
(WTR::TestController::downloadDidCancel): Added.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::notifyDownloadDone): Added.

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

Import <a download> tests from the Blink project.

Based on a Blink change (patch by <​asanka@chromium.org>):
<​https://src.chromium.org/viewvc/blink?revision=172767&view=revision>

  • TestExpectations: Mark two expected failures with the new tests.
  • fast/dom/HTMLAnchorElement/anchor-download-expected.txt: Updated for

expected output (blob URL currently not working).

  • fast/dom/HTMLAnchorElement/anchor-nodownload-set-expected.txt: Ditto.
  • http/tests/security/anchor-download-allow-blob-expected.txt: Added.
  • http/tests/security/anchor-download-allow-blob.html: Added.
  • http/tests/security/anchor-download-allow-data-expected.txt: Added.
  • http/tests/security/anchor-download-allow-data.html: Added.
  • http/tests/security/anchor-download-allow-sameorigin-expected.txt: Added.
  • http/tests/security/anchor-download-allow-sameorigin.html: Added.
  • http/tests/security/anchor-download-block-crossorigin-expected.txt: Added.
  • http/tests/security/anchor-download-block-crossorigin.html: Added.
  • http/tests/security/resources/attachment.php: Added.
  • platform/ios-simulator-wk1/TestExpectations: Disable download tests until WK1 support

is implemented.

  • platform/ios-simulator-wk2/TestExpectations: Disable download tests until

NETWORK_SESSION support exists.

  • platform/mac/TestExpectations: Reactivate the HTMLAnchorElement tests.
  • platform/mac-wk1/TestExpectations: Disable download tests until WK1 support

is implemented.

1:58 PM Changeset in webkit [198954] by Ryan Haddad
  • 4 edits in trunk/LayoutTests

Rebaseline tests added with r198951
​https://bugs.webkit.org/show_bug.cgi?id=156092

Unreviewed test gardening.

  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-child-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-default-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-frame-src-expected.txt:
12:20 PM Changeset in webkit [198953] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC][x86] Add the 3 operands form of floating point substraction
​https://bugs.webkit.org/show_bug.cgi?id=156095

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-04-01
Reviewed by Geoffrey Garen.

Same old, same old. Add the AVX form of subsd and subss.

Unfortunately, we cannot benefit from the 3 register form
in B3 yet because the Air script does not support CPU flags yet.
That can be fixed later.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::subDouble):
(JSC::MacroAssemblerX86Common::subFloat):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::vsubsd_rr):
(JSC::X86Assembler::subsd_mr):
(JSC::X86Assembler::vsubsd_mr):
(JSC::X86Assembler::vsubss_rr):
(JSC::X86Assembler::subss_mr):
(JSC::X86Assembler::vsubss_mr):
(JSC::X86Assembler::X86InstructionFormatter::SingleInstructionBufferWriter::memoryModRM):

  • b3/air/AirOpcode.opcodes:
12:15 PM Changeset in webkit [198952] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Reset CSS spacing rules on the <math> element.
​https://bugs.webkit.org/show_bug.cgi?id=155433

Patch by Frederic Wang <​fwang@igalia.com> on 2016-04-01
Reviewed by Brent Fulgham.

Source/WebCore:

Test: mathml/presentation/css-spacing.html

When the authors has changed some CSS spacing rules on a page, they are currently inherited on MathML too, potentially causing broken math rendering.
For example, this caused a bug in Firefox on Wikipedia in the past. Hence we align on Gecko and just reset the CSS spacing rules by default. We also import Mozilla's test.

  • css/mathml.css:

(math): Set line-height, word-spacing and letter-spacing to normal.

LayoutTests:

We import a test from Mozilla to ensure that CSS spacing rules line-height, word-spacing and letter-spacing are by default reset to normal on the <math> element.

  • mathml/presentation/css-spacing-expected.html: Added.
  • mathml/presentation/css-spacing.html: Added.
11:40 AM Changeset in webkit [198951] by dbates@webkit.org
  • 6 edits
    6 adds in trunk

CSP: child-src violations reported as frame-src violation
​https://bugs.webkit.org/show_bug.cgi?id=156092
<rdar://problem/25478509>

Reviewed by Andy Estes.

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-child-src.html

http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-default-src.html
http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-frame-src.html

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowChildFrameFromSource): Determine the name of the effective violation
directive from the name of the violated directive. If the name of the violated directive is "frame-src"
then use that name for the name of the effective violated directive. Otherwise, use "child-src" for the
name of the effective violated directive. A byproduct of this decision is that we report child-src as the
effective violated directive when a frame load was blocked by the default-src directive. This seems reasonable
because directive frame-src is deprecated in Content Security Policy Level 2. The child-src directive is
its replacement.

LayoutTests:

  • TestExpectations: Mark the newly added tests as PASS so that we run them.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-blocked-expected.txt: Substitute "child-src" for "frame-src" in the

expected console warning.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked-expected.txt: Ditto.
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-child-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-child-src.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-default-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-default-src.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-frame-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-frame-src.html: Added.
11:22 AM Changeset in webkit [198950] by dbates@webkit.org
  • 2 edits in trunk

Fix up ChangeLog entries for r198936 (​https://bugs.webkit.org/show_bug.cgi?id=156079) to reference
the update bug title that reflects that r198936 fixes the regression caused by r196012.

11:15 AM Changeset in webkit [198949] by adachan@apple.com
  • 2 edits in trunk/LayoutTests

Add a way to reset the eventTrigger in ControlsTest in LayoutTests/media/controls/controls-test-helpers.js
​https://bugs.webkit.org/show_bug.cgi?id=154616

Reviewed by Dean Jackson.

  • media/controls/controls-test-helpers.js:

(ControlsTest.prototype.resetEventTrigger):

10:55 AM Changeset in webkit [198948] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

CMake build fix.

  • PlatformMac.cmake:
9:45 AM Changeset in webkit [198947] by commit-queue@webkit.org
  • 19 edits
    1 copy
    1 add in trunk

Compile DumpRenderTree with CMake on Mac
​https://bugs.webkit.org/show_bug.cgi?id=156088

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-04-01
Reviewed by Brent Fulgham.

Source/WebCore:

  • PlatformMac.cmake:
  • platform/mock/mediasource/MockBox.cpp:

Source/WebKit:

  • PlatformMac.cmake:

Source/WebKit/mac:

  • Misc/WebKit.h:

Alphabetize headers.

Source/WebKit2:

  • CMakeLists.txt:
  • PlatformMac.cmake:
  • UIProcess/API/Cocoa/WebKitLegacy.h: Added.

Tools:

  • CMakeLists.txt:
  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/DefaultPolicyDelegate.m:

(-[DefaultPolicyDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]):

  • DumpRenderTree/DumpRenderTreeFileDraggingSource.m:
  • DumpRenderTree/PlatformMac.cmake: Added.
  • DumpRenderTree/PlatformWin.cmake:
  • DumpRenderTree/mac/AppleScriptController.m:

(convertAEDescToObject):

  • DumpRenderTree/mac/DumpRenderTreeMain.mm:
  • DumpRenderTree/mac/LayoutTestHelper.m:
9:18 AM Changeset in webkit [198946] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking three media controls tests as flaky on El Capitan
​https://bugs.webkit.org/show_bug.cgi?id=156112

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:49 AM WebKitGTK/2.12.x edited by berto@igalia.com
(diff)
3:36 AM Changeset in webkit [198945] by berto@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Missing PATH_MAX definition
​https://bugs.webkit.org/show_bug.cgi?id=156102

Reviewed by Yusuke Suzuki.

Not all systems define PATH_MAX, so add a fallback value that is
long enough.

  • jsc.cpp:
3:21 AM Changeset in webkit [198944] by jh718.park@samsung.com
  • 2 edits
    1 add in trunk/LayoutTests

Unreviewed EFL gardening about new RTL scrollbar testcase
This testcase has been added in r198859.

  • platform/efl/TestExpectations:
  • platform/efl/fast/scrolling/rtl-scrollbars-animation-property-expected.txt: Added.
2:54 AM Changeset in webkit [198943] by Antti Koivisto
  • 41 edits
    5 adds in trunk

Separate render tree updating from style resolve
​https://bugs.webkit.org/show_bug.cgi?id=155298

Reviewed by Andreas Kling.

Source/WebCore:

This patch splits computing document style and applying the results into two distinct steps:

Style::TreeResolver::resolve()

|
| Style::Update
V

RenderTreeUpdater::commit()

Style::TreeResolver::resolve() returns a Style::Update object that contains all the changes to be made
for the whole composed tree. RenderTreeUpdater then applies the changes updating, building or tearing
down portions of the render tree as needed.

Style::Update consists of a map that contains new style for each newly resolved element along with some
metadata. A separate map contains text nodes that require reconstruction. It also tracks change roots so
RenderTreeUpdater needs to traverse the changed subtrees only.

The patch eliminates the recursive render tree build code path replacing it with iterative functions.

This will enable future optimizations. For example we won't need to commit to immediate rendering
changes simply because some script or internal function requires up-to-date style.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::styleForElement):

  • css/StyleResolver.h:

(WebCore::StyleResolver::setOverrideDocumentElementStyle):
(WebCore::StyleResolver::State::State):

Root element style is needed for resolving other elements. Add a way to provide it without looking
into active document style.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

Resolve the document style and commit it immediately (for now).

(WebCore::Document::styleForElementIgnoringPendingStylesheets):

  • dom/Document.h:

(WebCore::Document::setNeedsNotifyRemoveAllPendingStylesheet):
(WebCore::Document::inStyleRecalc):
(WebCore::Document::inRenderTreeUpdate):

  • dom/Element.cpp:

(WebCore::Element::setChildIndex):

Setting the unique bit is now done by style relations update code.

  • dom/Node.cpp:

(WebCore::Node::setNeedsStyleRecalc):

Prevent spurious style invalidation during render tree updating.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):

Capturing body element color for color:-webkit-text is now done by TreeResolver.

  • rendering/RenderElement.h:

(WebCore::RenderElement::setAnimatableStyle): Deleted.

No longer used.

  • style/RenderTreePosition.cpp:

(WebCore::RenderTreePosition::nextSiblingRenderer):

Skip over non-rendered slot elements.

  • style/RenderTreeUpdater.cpp: Added.

(WebCore::RenderTreeUpdater::Parent::Parent):
(WebCore::RenderTreeUpdater::RenderTreeUpdater):
(WebCore::hasDisplayContents):
(WebCore::findRenderingRoot):
(WebCore::RenderTreeUpdater::commit):

Call updateRenderTree for each change root.

(WebCore::shouldCreateRenderer):
(WebCore::RenderTreeUpdater::updateRenderTree):

Iteratively traverse the composed tree starting for a change root.
Apply the changes calling updateElementRenderer and updateTextRenderer as needed.
Enter subtrees that haves changes to apply.

(WebCore::RenderTreeUpdater::renderTreePosition):

We may not create renderers for all elements (<slot> or more generally display:contents) that
have rendered descendants. Search the parent stack to find the valid position.

(WebCore::RenderTreeUpdater::pushParent):
(WebCore::RenderTreeUpdater::popParent):
(WebCore::RenderTreeUpdater::popParentsToDepth):

Maintain parent stack.

(WebCore::pseudoStyleCacheIsInvalid):
(WebCore::RenderTreeUpdater::updateElementRenderer):

Create, delete or update the renderer.

(WebCore::moveToFlowThreadIfNeeded):
(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::textRendererIsNeeded):
(WebCore::createTextRenderer):
(WebCore::RenderTreeUpdater::updateTextRenderer):
(WebCore::RenderTreeUpdater::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):

This is moved from TreeResolver.

(WebCore::needsPseudoElement):
(WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement):

Pseudo elements are handled entirely during render tree construction. Compute their style and
create or delete them as needed.

  • style/RenderTreeUpdater.h: Added.

(WebCore::RenderTreeUpdater::parent):

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):
(WebCore::Style::commitRelations):

Commit to Style::Update instead of the document if needed.

(WebCore::Style::commitRelationsToDocument): Deleted.

  • style/StyleRelations.h:
  • style/StyleSharingResolver.cpp:

(WebCore::Style::elementHasDirectionAuto):
(WebCore::Style::SharingResolver::resolve):

Fetch the shareable style from Style::Update instead of the active document style.

(WebCore::Style::SharingResolver::findSibling):
(WebCore::Style::SharingResolver::canShareStyleWithElement):

  • style/StyleSharingResolver.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::Parent::Parent):

No need for render tree position anymore.

(WebCore::Style::TreeResolver::popScope):
(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
(WebCore::Style::createTextRendererIfNeeded):
(WebCore::Style::updateTextRendererAfterContentChange):
(WebCore::Style::resetStyleForNonRenderedDescendants):
(WebCore::Style::detachChildren):
(WebCore::Style::detachSlotAssignees):
(WebCore::Style::detachRenderTree):
(WebCore::Style::TreeResolver::resolveElement):

Just resolve the style and return it, no more applying or entering render tree construction code paths.

(WebCore::Style::resolveTextNode):
(WebCore::Style::elementImplicitVisibility):
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::popParent):
(WebCore::Style::TreeResolver::popParentsToDepth):
(WebCore::Style::shouldResolvePseudoElement):
(WebCore::Style::TreeResolver::resolveComposedTree):

Add style changes to Style::Update.

(WebCore::Style::TreeResolver::resolve):

Return Style::Update object if non-empty.

(WebCore::Style::postResolutionCallbackQueue):
(WebCore::Style::shouldCreateRenderer): Deleted.
(WebCore::Style::moveToFlowThreadIfNeeded): Deleted.
(WebCore::Style::TreeResolver::createRenderer): Deleted.
(WebCore::Style::TreeResolver::createRenderTreeForChildren): Deleted.
(WebCore::Style::TreeResolver::createRenderTreeForShadowRoot): Deleted.
(WebCore::Style::beforeOrAfterPseudoElement): Deleted.
(WebCore::Style::setBeforeOrAfterPseudoElement): Deleted.
(WebCore::Style::clearBeforeOrAfterPseudoElement): Deleted.
(WebCore::Style::needsPseudoElement): Deleted.
(WebCore::Style::TreeResolver::createRenderTreeForBeforeOrAfterPseudoElement): Deleted.
(WebCore::Style::TreeResolver::createRenderTreeForSlotAssignees): Deleted.
(WebCore::Style::TreeResolver::createRenderTreeRecursively): Deleted.
(WebCore::Style::pseudoStyleCacheIsInvalid): Deleted.
(WebCore::Style::TreeResolver::resolveBeforeOrAfterPseudoElement): Deleted.

Remove the recursive render tree building code path.

  • style/StyleTreeResolver.h:

(WebCore::Style::TreeResolver::scope):

  • style/StyleUpdate.cpp: Added.

(WebCore::Style::Update::Update):
(WebCore::Style::Update::elementUpdate):
(WebCore::Style::Update::textUpdate):
(WebCore::Style::Update::elementStyle):
(WebCore::Style::Update::addElement):
(WebCore::Style::Update::addText):
(WebCore::Style::Update::addPossibleRoot):

  • style/StyleUpdate.h: Added.

(WebCore::Style::Update::roots):
(WebCore::Style::Update::document):

  • svg/SVGElement.h:

(WebCore::SVGElement::updateRelativeLengthsInformation):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::svgAttributeChanged):
(WebCore::SVGUseElement::willRecalcStyle):
(WebCore::SVGUseElement::willAttachRenderers): Deleted.

Switvh willAttachRenderers to willRecalcStyle as the former is now called too late.

  • svg/SVGUseElement.h:

LayoutTests:

Skip mathml/presentation/menclose-notation-attribute-change-value.html. It will be fixed by upcoming MathML refactoring.

  • css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-resize-expected.txt:

This is a progression.

  • editing/mac/spelling/autocorrection-contraction-expected.txt:
  • editing/mac/spelling/autocorrection-removing-underline-after-paste-expected.txt:
  • editing/mac/spelling/autocorrection-removing-underline-expected.txt:
  • editing/mac/spelling/autocorrection-simple-expected.txt:
  • editing/style/remove-underline-from-stylesheet-expected.txt:
  • editing/style/typing-style-003-expected.txt:

Non-rendered whitespace related changes.

  • platform/ios-simulator/TestExpectations:

Skip fast/regions/position-writing-modes-in-variable-width-regions.html on iOS. Similar tests are mostly already skipped.

  • platform/ios-simulator/editing/style/typing-style-003-expected.txt: Added.
  • platform/mac-wk2/editing/mac/spelling/autocorrection-contraction-expected.txt:
  • platform/mac/editing/inserting/editable-html-element-expected.txt:
  • platform/mac/editing/inserting/editing-empty-divs-expected.txt:
  • platform/mac/editing/inserting/insert-at-end-02-expected.txt:
  • platform/mac/editing/pasteboard/4989774-expected.txt:
  • platform/mac/editing/selection/4983858-expected.txt:

Non-rendered whitespace related changes.

1:06 AM WebKitNightlyElCapWorkaround edited by Manuel Rego Casasnovas
run-safari was not working after the workaround, explained how to run … (diff)
12:23 AM WebKitGTK/2.12.x edited by berto@igalia.com
(diff)

Mar 31, 2016:

11:31 PM Changeset in webkit [198942] by Chris Fleizach
  • 15 edits
    4 adds in trunk

AX: <attachment> element not accessible
​https://bugs.webkit.org/show_bug.cgi?id=156045

Reviewed by Joanmarie Diggs.

Source/WebCore:

Make this element accessible by exposing title, subtitle, action, progress to accessibility.

Test: accessibility/attachment-element.html

  • accessibility/AXObjectCache.cpp:

(WebCore::createFromRenderer):

  • accessibility/AccessibilityAttachment.cpp: Added.

(WebCore::AccessibilityAttachment::AccessibilityAttachment):
(WebCore::AccessibilityAttachment::create):
(WebCore::AccessibilityAttachment::hasProgress):
(WebCore::AccessibilityAttachment::valueForRange):
(WebCore::AccessibilityAttachment::attachmentElement):
(WebCore::AccessibilityAttachment::roleDescription):
(WebCore::AccessibilityAttachment::computeAccessibilityIsIgnored):
(WebCore::AccessibilityAttachment::accessibilityText):
(WebCore::AccessibilityAttachment::accessibilityDescription):

  • accessibility/AccessibilityAttachment.h: Added.
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::hasHighlighting):
(WebCore::AccessibilityObject::roleDescription):
(WebCore::AccessibilityObject::supportsRangeValue):
(WebCore::AccessibilityObject::supportsARIASetSize):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isAttachmentElement):
(WebCore::AccessibilityObject::isHeading):
(WebCore::AccessibilityObject::isLink):
(WebCore::AccessibilityObject::isImage):
(WebCore::AccessibilityObject::isRadioButton):
(WebCore::AccessibilityObject::isListBox):
(WebCore::AccessibilityObject::isListBoxOption):
(WebCore::AccessibilityObject::isAttachment):
(WebCore::AccessibilityObject::isMediaTimeline):
(WebCore::AccessibilityObject::isMenuRelated):
(WebCore::AccessibilityObject::isMenu):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityValue]):

LayoutTests:

  • accessibility/attachment-element-expected.txt: Added.
  • accessibility/attachment-element.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
10:34 PM Changeset in webkit [198941] by n_wang@apple.com
  • 4 edits
    2 adds in trunk

AX: AX hit-testing does not work on WebKit video playback buttons
​https://bugs.webkit.org/show_bug.cgi?id=156084

Reviewed by Darin Adler.

Source/WebCore:

Use the element at point instead of the shadow host for hit testing on video tags.

Test: accessibility/mac/video-tag-hit-test.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::elementAccessibilityHitTest):
(WebCore::shouldUseShadowHostForHitTesting):
(WebCore::AccessibilityRenderObject::accessibilityHitTest):

LayoutTests:

  • accessibility/mac/video-tag-hit-test-expected.txt: Added.
  • accessibility/mac/video-tag-hit-test.html: Added.
9:54 PM Changeset in webkit [198940] by ap@apple.com
  • 3 edits in trunk/Source/WebCore

Page overlay tests sometimes crash under MockPageOverlayClient::uninstallAllOverlays()
​https://bugs.webkit.org/show_bug.cgi?id=156080
rdar://problem/24922183

Reviewed by Alex Christensen.

Make MockPageOverlayClient::m_overlays reference the overlays. There is no reference
cycle because they are all removed between test page loads.

  • testing/MockPageOverlayClient.cpp:

(WebCore::MockPageOverlayClient::uninstallAllOverlays):
(WebCore::MockPageOverlayClient::pageOverlayDestroyed):

  • testing/MockPageOverlayClient.h:
9:52 PM Changeset in webkit [198939] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

Unreviewed EFL build fix caused by r198929.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::layerVolatilityTimerFired): Need to use type casting in WEBPAGE_LOG_ALWAYS_ERROR() log.

8:23 PM Changeset in webkit [198938] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

​https://bugs.webkit.org/show_bug.cgi?id=156094
[Win] TestWebCore target build sometimes fail.

Patch by Bill Ming <​mbbill@gmail.com> on 2016-03-31
Reviewed by Alex Christensen.

  • Tools/TestWebKitAPI/PlatformWin.cmake:
8:15 PM Changeset in webkit [198937] by Jon Davis
  • 2 edits
    1 add in trunk/Websites/webkit.org

Show tweets by @webkit in the Twitter tile on webkit.org
​https://bugs.webkit.org/show_bug.cgi?id=156093

Reviewed by Timothy Hatcher.

  • wp-content/plugins/tweet-listener.php: Added.
  • wp-content/themes/webkit/widgets/twitter.php:
6:54 PM Changeset in webkit [198936] by dbates@webkit.org
  • 10 edits
    8 adds in trunk

REGRESSION (r197724): <object>/<embed> with no URL does not match source *
​https://bugs.webkit.org/show_bug.cgi?id=156079
<rdar://problem/25470805>

Reviewed by Brent Fulgham.

Source/WebCore:

Fixes an issue where HTML object and embed elements that are not associated with a URL are
allowed to load when object-src/default-src contains source *. More generally, we allow
such elements to load so long as object-src/default-src is not 'none' per section object-src
of the Content Security Policy Level 3 spec., <​http://w3c.github.io/webappsec-csp> (Editor's Draft, 29 February 2016).

Tests: http/tests/security/contentSecurityPolicy/embed-with-no-url-allowed-by-default-src-star.html

http/tests/security/contentSecurityPolicy/embed-with-no-url-allowed-by-star.html
http/tests/security/contentSecurityPolicy/object-with-no-url-allowed-by-default-src-star.html
http/tests/security/contentSecurityPolicy/object-with-no-url-allowed-by-star.html

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowObjectFromSource): Modified to call violatedDirectiveInAnyPolicy() passing
ContentSecurityPolicySourceListDirective::ShouldAllowEmptyURLIfSourceListIsNotNone::Yes.

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::checkSource): Modified to take argument of type ContentSecurityPolicySourceListDirective::ShouldAllowEmptyURLIfSourceListIsNotNone (defaults to false)
and pass it through to ContentSecurityPolicySourceListDirective.
(WebCore::checkFrameAncestors): Explicitly pass ContentSecurityPolicySourceListDirective::ShouldAllowEmptyURLIfSourceListIsNotNone::No
to avoid URL from having the compiler implicitly convert it to a String and selecting override ContentSecurityPolicySourceListDirective::allows(const String&),
which will lead to incorrect results. We will look to make this code less error prone in <​https://bugs.webkit.org/show_bug.cgi?id=156086>.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForObjectSource): Modified to take argument of type
ContentSecurityPolicySourceListDirective::ShouldAllowEmptyURLIfSourceListIsNotNone and pass it through.

  • page/csp/ContentSecurityPolicyDirectiveList.h:
  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::parse): Set instance variable m_isNone to true so that we can differentiate
a source list with value 'none' from a source list that lists one or more sources or non-none keywords.

  • page/csp/ContentSecurityPolicySourceList.h:

(WebCore::ContentSecurityPolicySourceList::isNone): Added.

  • page/csp/ContentSecurityPolicySourceListDirective.cpp:

(WebCore::ContentSecurityPolicySourceListDirective::allows): Modified to take argument of type ContentSecurityPolicySourceListDirective::ShouldAllowEmptyURLIfSourceListIsNotNone
and updated code to return true for an empty URL only if this argument is ContentSecurityPolicySourceListDirective::ShouldAllowEmptyURLIfSourceListIsNotNone::Yes and
the source list does not have value 'none'.

  • page/csp/ContentSecurityPolicySourceListDirective.h:

LayoutTests:

Add tests to ensure that HTML object and embed elements are allowed by source *.

  • platform/ios-simulator/TestExpectations: Skip added tests as plugins are not supported on iOS.
  • http/tests/security/contentSecurityPolicy/embed-with-no-url-allowed-by-default-src-star-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-with-no-url-allowed-by-default-src-star.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-with-no-url-allowed-by-star-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-with-no-url-allowed-by-star.html: Added.
  • http/tests/security/contentSecurityPolicy/object-with-no-url-allowed-by-default-src-star-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-with-no-url-allowed-by-default-src-star.html: Added.
  • http/tests/security/contentSecurityPolicy/object-with-no-url-allowed-by-star-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-with-no-url-allowed-by-star.html: Added.
6:48 PM Changeset in webkit [198935] by commit-queue@webkit.org
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] CFA's valuesAtHead should be a list, not a map
​https://bugs.webkit.org/show_bug.cgi?id=156087

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-03-31
Reviewed by Mark Lam.

One more step toward moving to the Air-style of liveness analysis:

Make DFG's valuesAtHead a list of Node*-AbstractValue.
This patch alone is already a speedup because our many CFAs
spend an unreasonable amount of time updating at block boundaries.

  • dfg/DFGBasicBlock.h:
  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::performBlockCFA):

  • dfg/DFGGraph.cpp:

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

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::beginBasicBlock):
(JSC::DFG::setLiveValues):
(JSC::DFG::InPlaceAbstractState::merge):

  • dfg/DFGNode.h:

(JSC::DFG::nodeValuePairComparator):
(JSC::DFG::nodeValuePairListDump):

6:40 PM Changeset in webkit [198934] by Gyuyoung Kim
  • 2 edits in trunk/Tools

[EFL] Bump EFL version to 1.17.0
​https://bugs.webkit.org/show_bug.cgi?id=153008

Reviewed by Michael Catanzaro.

Original author is Csaba Osztrogonác <Csaba Osztrogonác>

  • efl/jhbuild.modules:
6:12 PM Changeset in webkit [198933] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r194660): Navigating to HTTPS sites may fail with error
​https://bugs.webkit.org/show_bug.cgi?id=155455
<rdar://problem/24308793>

Reviewed by Alexey Proskuryakov.

Fixes an issue where navigating to an HTTPS site may fail because the Security Framework uses
a cache directory that it does not have permission to use.

  • Shared/mac/ChildProcessMac.mm:

(WebKit::codeSigningIdentifierForProcess): Queries the Security Framework for the code signed
bundle identifier/code signing identifier.
(WebKit::ChildProcess::initializeSandbox): Use the client identifier as part of the user directory
suffix. Verify that the client identifier matches the code signed bundled identifier/code
signing identifier for the code signed app/tool. Fix minor code style issue; use a C++-style cast
instead of a C-style cast when casting an OSStatus to a long.
(WebKit::findSecCodeForProcess): Deleted; incorporated logic into WebKit::codeSigningIdentifierForProcess().

5:24 PM Changeset in webkit [198932] by sbarati@apple.com
  • 12 edits in trunk/Source

Revert rewrite const as var workaround
​https://bugs.webkit.org/show_bug.cgi?id=155393

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • parser/Parser.h:

(JSC::Parser::next):
(JSC::Parser::nextExpectIdentifier):

  • runtime/VM.h:

(JSC::VM::setShouldRewriteConstAsVar): Deleted.
(JSC::VM::shouldRewriteConstAsVar): Deleted.

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM):

  • page/Settings.cpp:
  • page/Settings.h:

(WebCore::Settings::shouldUseHighResolutionTimers):
(WebCore::Settings::backgroundShouldExtendBeyondPage):
(WebCore::Settings::shouldRewriteConstAsVar): Deleted.
(WebCore::Settings::setShouldRewriteConstAsVar): Deleted.

Source/WebKit2:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

4:59 PM Changeset in webkit [198931] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Unreviewed, rolling out r196854.

We do not need those assertions anymore as it seems
<rdar://problem/24457478> is fixed

Reverted changeset:

"Land release assertions to help track down a possible
HTMLCollection lifetime bug"
​https://bugs.webkit.org/show_bug.cgi?id=154490
​http://trac.webkit.org/changeset/196854

4:45 PM Changeset in webkit [198930] by dbates@webkit.org
  • 3 edits in trunk/Tools

run-webkit-tests fails to create user's cache directory when System Integrity Protection is enabled
​https://bugs.webkit.org/show_bug.cgi?id=156071
<rdar://problem/25467827>

Reviewed by Brent Fulgham.

Fixes an issue where run-webkit-tests will fail to create the suffixed user's cache directory
on non-Apple Internal machines with System Integrity Protection enabled because the OS only
honors the suffix, specified by the environment variable DIRHELPER_USER_DIR_SUFFIX, in
privileged processes. And python(1) does not have sufficient privileges. As a workaround for
systems that have System Integrity Protection enabled we compute the path to the suffixed
user's cache directory by hand.

Additionally, fix an issue where the user's cache directory created by run-webkit-test was
never deleted on cessation of the test run.

  • Scripts/webkitpy/port/driver.py:

(Driver._start): Actually store the path to the user's cache directory in self._driver_user_cache_directory
so that we can delete this directory on cessation of the test run.

  • Scripts/webkitpy/port/mac.py:

(MacPort):
(MacPort._path_to_user_cache_directory): Unset the environment variable DIRHELPER_USER_DIR_SUFFIX (if set),
query the OS for the path to the user's cache directory and concatenate this path with the
specified suffix.

4:33 PM Changeset in webkit [198929] by Chris Dumez
  • 8 edits in trunk/Source

[iOS] Both WebPage's volatility timer and WebProcess's processSuspensionCleanupTimer are trying to make surfaces volatile with very short interval
​https://bugs.webkit.org/show_bug.cgi?id=156065
<rdar://problem/25452004>

Reviewed by Simon Fraser.

Source/WebCore:

Export a symbol so it can be used from WebKit2.

  • page/Page.h:

Source/WebKit2:

Upon process suspension, both the WebPage's volatility timer and
WebProcess' processSuspensionCleanupTimer are trying to make surfaces
volatile with a very short interval. This is overly aggressive given
that this operation normally succeeds very quickly or does not (due
to underlying bugs).

This patch does the following:

  • Drop the WebProcess' processSuspensionCleanupTimer and have the WebProcess drive the WebPages' volatility timer instead.
  • Update the WebPages' volatility timer to do exponential back off.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::layerVolatilityTimerFired):
(WebKit::WebPage::markLayersVolatileImmediatelyIfPossible):
(WebKit::WebPage::markLayersVolatile):
(WebKit::WebPage::cancelMarkLayersVolatile):
(WebKit::WebPage::isAlwaysOnLoggingAllowed):
(WebKit::WebPage::setLayerTreeStateIsFrozen): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::markLayersVolatile):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationWillEnterForeground):
(WebKit::WebPage::applicationDidBecomeActive): Deleted.
(WebKit::adjustVelocityDataForBoundedScale): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::actualPrepareToSuspend):
(WebKit::WebProcess::processWillSuspendImminently):
(WebKit::WebProcess::prepareToSuspend):
(WebKit::WebProcess::cancelPrepareToSuspend):
(WebKit::WebProcess::markAllLayersVolatile):
(WebKit::WebProcess::cancelMarkAllLayersVolatile):
(WebKit::WebProcess::setAllLayerTreeStatesFrozen):
(WebKit::WebProcess::processDidResume):
(WebKit::WebProcess::WebProcess): Deleted.

  • WebProcess/WebProcess.h:
4:07 PM Changeset in webkit [198928] by sbarati@apple.com
  • 5 edits in trunk

[ES6] Disallow var assignments in for-in loops
​https://bugs.webkit.org/show_bug.cgi?id=155451

Reviewed by Mark Lam.

Source/JavaScriptCore:

We're doing this in its own patch instead of the patch for ​https://bugs.webkit.org/show_bug.cgi?id=155384
because last time we made this change it broke some websites. Lets try making
it again because it's what the ES6 mandates. If it still breaks things we will
roll it out.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseForStatement):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
4:01 PM Changeset in webkit [198927] by sbarati@apple.com
  • 7 edits in trunk

parsing arrow function expressions slows down the parser by 8% lets recoup some loss
​https://bugs.webkit.org/show_bug.cgi?id=155988

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

We used to eagerly check if we're parsing an arrow function.
We did this inside parseAssignmentExpression(), and it was
very costly. The reason it was costly is that arrow functions
might start with an identifier. This means anytime we saw an
identifier we would have to do a lookahead, and then most likely
backtrack because more often than not, we wouldn't see "=>"
as the next token.

In this patch I implement a new approach. We just parse
the lhs of an assignment expression eagerly without doing any
lookahead. Retroactively, if we see that we might have started
with an arrow function, and we don't have a valid lhs or the
next token is a "=>", we try to parse as an arrow function.

Here are a few examples motivating why this is valid:

x => x
In this example:

  • "x" is a valid arrow function starting point.
  • "x" also happens to be a valid lhs
  • because we see "=>" as the next token, we parse as an arrow function and succeed.

(x) => x
In this example:

  • "(" is a valid arrow function starting point.
  • "(x)" also happens to be a valid lhs
  • because we see "=>" as the next token, we parse as an arrow function and succeed.

({x = 30}) => x;
In this example:

  • "(" is a valid arrow function starting point.
  • "({x = 30})" is NOT a valid lhs. Because of this, we try to parse it as an arrow function and succeed.

There is one interesting implementation detail where we might
parse something that is both a valid LHS but happens
to actually be the arrow function parameters. The valid LHS
parsing might declare such variables as "uses" which would cause
weird capture analysis. This patch also introduces a mechanism
to backtrack on used variable analysis.

This is a 3.5%-4.5% octane code load speedup.

  • parser/Lexer.h:

(JSC::Lexer::sawError):
(JSC::Lexer::setSawError):
(JSC::Lexer::getErrorMessage):
(JSC::Lexer::setErrorMessage):
(JSC::Lexer::sourceURL):
(JSC::Lexer::sourceMappingURL):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parsePrimaryExpression):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::startSwitch):
(JSC::Scope::declareParameter):
(JSC::Scope::usedVariablesContains):
(JSC::Scope::useVariable):
(JSC::Scope::pushUsedVariableSet):
(JSC::Scope::currentUsedVariablesSize):
(JSC::Scope::revertToPreviousUsedVariables):
(JSC::Scope::setNeedsFullActivation):
(JSC::Scope::needsFullActivation):
(JSC::Scope::isArrowFunctionBoundary):
(JSC::Scope::setInnerArrowFunctionUsesEvalAndUseArgumentsIfNeeded):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::fillParametersForSourceProviderCache):
(JSC::Scope::restoreFromSourceProviderCache):
(JSC::Scope::setIsModule):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:

(catch):

3:54 PM Changeset in webkit [198926] by peavo@outlook.com
  • 11 edits in trunk/LayoutTests

[Win] Skip INTL related tests.
​https://bugs.webkit.org/show_bug.cgi?id=156074

Reviewed by Alex Christensen.

Temporarily skip failing INTL related tests, because AppleWin currently
does not have INTL enabled.

  • js/script-tests/array-toLocaleString.js:
  • js/script-tests/date-toLocaleString.js:
  • js/script-tests/intl-collator.js:
  • js/script-tests/intl-datetimeformat.js:
  • js/script-tests/intl-numberformat.js:
  • js/script-tests/intl.js:
  • js/script-tests/number-toLocaleString.js:
  • js/script-tests/string-toLocaleLowerCase.js:
  • js/script-tests/string-toLocaleUpperCase.js:
  • platform/win/TestExpectations:
3:50 PM Changeset in webkit [198925] by commit-queue@webkit.org
  • 5 edits in trunk

Web Inspector: ScriptSyntaxTree doesn't handle RestElement AST nodes
​https://bugs.webkit.org/show_bug.cgi?id=156085

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-03-31
Reviewed by Saam Barati.

Source/WebInspectorUI:

  • UserInterface/Models/ScriptSyntaxTree.js:

(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
When searching for identifiers in Function parameters, pass
through the RestElement to its argument.

(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
Create a ScriptSyntaxTree RestElement node.
Also, every case in recurse visits the current
node, so simplify the code!

LayoutTests:

  • inspector/model/parse-script-syntax-tree-expected.txt:
  • inspector/model/parse-script-syntax-tree.html:

Add a test for a RestElement.

3:43 PM Changeset in webkit [198924] by dbates@webkit.org
  • 4 edits
    2 adds in trunk

REGRESSION (r195605): ASSERTION FAILED: !NoEventDispatchAssertion::isEventDispatchForbidden()
when pressing the back button on a page with a focused subframe
​https://bugs.webkit.org/show_bug.cgi?id=156033
<rdar://problem/25446561>

Reviewed by Chris Dumez.

Source/WebCore:

Fixes an assertion failure when navigating back, by pressing the browser back button, to
the previous page from a page with a focused subframe.

Following r195605 (​https://bugs.webkit.org/show_bug.cgi?id=153449), the responsibility for
dispatching a DOM pagehide event moved from CachedFrame to PageCache and we now instantiate
a NoEventDispatchAssertion object to enforce the invariant that no additional DOM events are
dispatched as part of adding a page to the page cache. When adding a page with a focused
subframe to the page cache we focus its main frame, which implicitly defocuses the subframe
and dispatches a DOM blur event at it. Therefore an assertion failure occurs when dispatching
this DOM blur event (because a NoEventDispatchAssertion object was allocated on the stack).

Test: fast/history/back-from-page-with-focused-iframe.html

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame): Move logic to focus the main frame from here...

  • history/PageCache.cpp:

(WebCore::PageCache::addIfCacheable): to here such that any DOM blur and focus events
are dispatched before instantiate the NoEventDispatchAssertion object and enter the page
cache.

LayoutTests:

Add a test to ensure that when navigating back from a page with a focused <iframe> f, a DOM
blur event is dispatched to f, a DOM focus event is dispatched at the main frame and that
an assertion failure does not occur (only applicable in a debug build).

  • fast/history/back-from-page-with-focused-iframe-expected.txt: Added.
  • fast/history/back-from-page-with-focused-iframe.html: Added.
3:42 PM Changeset in webkit [198923] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Simplify API of Test model by removing Test.setParentTest
​https://bugs.webkit.org/show_bug.cgi?id=156055

Reviewed by Joseph Pecoraro.

Removed Test.setParentTest. Keep track of the child-parent relationship using the static map instead.

Now each test only stores parent's id and uses the ID static map in Test.parentTest().

  • public/v3/models/manifest.js:

(Manifest._didFetchManifest.buildObjectsFromIdMap): Removed the code to create the map of child-parent
relationship and call setParentTest.

  • public/v3/models/test.js:

(Test): Updated a static map by the name of "childTestMap" to store itself. We should probably sort
child tests using some fixed criteria in the future instead of relying on the creation order but
preserve the old code's ordering for now.
(Test.prototype.parentTest): Look up the static map by the parent test's id.
(Test.prototype.onlyContainsSingleMetric):
(Test.prototype.setParentTest): Deleted.
(Test.prototype.childTests): Look up the child test map.

3:38 PM Changeset in webkit [198922] by dbates@webkit.org
  • 1 edit
    1 add in trunk

tool tip/alt. text appears when mouse is no longer hovering over link
​https://bugs.webkit.org/show_bug.cgi?id=24427
<rdar://problem/8045235>

Reviewed by Antonio Gomes.

Although the bug no longer reproduces, add a manual test that can be used to determine if a
tooltip for a hyperlink is shown when the cursor no longer hovers over it.

  • ManualTests/tooltip-when-mouse-not-directly-over-hyperlink.html: Added.
3:22 PM Changeset in webkit [198921] by matthew_hanson@apple.com
  • 4 edits
    5 deletes in branches/safari-601-branch

Roll out r191180. rdar://problem/25448882

2:55 PM Changeset in webkit [198920] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fix download links for desktops with small resolutions
​https://bugs.webkit.org/show_bug.cgi?id=156081

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/downloads.php:
2:52 PM Changeset in webkit [198919] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Fails to build in Linux / PowerPC due to different ucontext_t definition
​https://bugs.webkit.org/show_bug.cgi?id=156015

Reviewed by Michael Catanzaro.

PPC does not have mcontext_t in ucontext_t::uc_mcontext.
So we take the special way to retrieve mcontext_t in PPC.

  • heap/MachineStackMarker.cpp:

(pthreadSignalHandlerSuspendResume):

2:51 PM Changeset in webkit [198918] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: the interaction queue in WebAutomationSession::performKeyInteractions doesn't work
​https://bugs.webkit.org/show_bug.cgi?id=156083

Reviewed by Timothy Hatcher.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::performKeyboardInteractions):
Use Vector::reserveCapacity instead of the size constructor since we use append.
Empty the interaction queue outside of loops so all interactions are performed once.

2:12 PM Changeset in webkit [198917] by Chris Dumez
  • 4 edits
    5 deletes in trunk

REGRESSION (r191180): Safari does not send Referer Header to iframe src in certain situations
​https://bugs.webkit.org/show_bug.cgi?id=155754
<rdar://problem/25296445>

Unreviewed, roll out r191180 as it breaks sites and needs to be reworked.

Source/WebCore:

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::tagIdFor): Deleted.
(WebCore::TokenPreloadScanner::initiatorFor): Deleted.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Deleted.
(WebCore::TokenPreloadScanner::StartTagScanner::resourceType): Deleted.

  • html/parser/HTMLPreloadScanner.h:

LayoutTests:

  • fast/preloader/frame-src-expected.txt: Removed.
  • fast/preloader/frame-src.html: Removed.
  • fast/preloader/resources/testFrame.html: Removed.
  • http/tests/loading/preload-no-store-frame-src-expected: Removed.
  • http/tests/loading/preload-no-store-frame-src.html: Removed.
2:05 PM Changeset in webkit [198916] by matthew_hanson@apple.com
  • 4 edits
    5 deletes in branches/safari-601.1.46-branch

Roll out r191180. rdar://problem/25449273

2:03 PM Changeset in webkit [198915] by timothy@apple.com
  • 2 edits in trunk/Source/WebKit2

Web Automation: Add support for script timeouts to the evaluateJavaScriptFunction command

​https://bugs.webkit.org/show_bug.cgi?id=156052
rdar://problem/25457151

Address additional review comments.

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Add semicolons and remove
and clearTimeout that wasn't needed.

1:52 PM Changeset in webkit [198914] by timothy@apple.com
  • 6 edits in trunk/Source/WebKit2

Web Automation: Navigation commands should not return until page loads or fails

​https://bugs.webkit.org/show_bug.cgi?id=156063
rdar://problem/25464373

Reviewed by Brian Burg.

  • UIProcess/Automation/Automation.json: Make navigation commands async.
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::navigateBrowsingContext): Save callback and timeout previous.
(WebKit::WebAutomationSession::goBackInBrowsingContext): Ditto.
(WebKit::WebAutomationSession::goForwardInBrowsingContext): Ditto.
(WebKit::WebAutomationSession::reloadBrowsingContext): Ditto.
(WebKit::WebAutomationSession::navigationOccuredForPage): Added. Fire callback for page.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFinishLoadForFrame): Call WebAutomationSession::navigationOccuredForPage.
(WebKit::WebPageProxy::didFailLoadForFrame): Ditto.
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame): Ditto.

  • UIProcess/WebProcessPool.h: Added automationSession() getter.
1:52 PM Changeset in webkit [198913] by timothy@apple.com
  • 8 edits in trunk/Source/WebKit2

Web Automation: Add support for script timeouts to the evaluateJavaScriptFunction command

​https://bugs.webkit.org/show_bug.cgi?id=156052
rdar://problem/25457151

Reviewed by Brian Burg.

  • UIProcess/Automation/Automation.json: Added callbackTimeout to evaluateJavaScriptFunction.

Also made expectsImplicitCallbackArgument optional, since it is not required. Added JavaScriptTimeout error.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::evaluateJavaScriptFunction): Added callbackTimeout.

  • UIProcess/Automation/WebAutomationSession.h:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::evaluateJavaScriptCallback): Send JavaScriptTimeout error if the timeout fired.
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Added callbackTimeout.

  • WebProcess/Automation/WebAutomationSessionProxy.h:
  • WebProcess/Automation/WebAutomationSessionProxy.js:

(AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Set a timeout to fire if the
callback is not called, then return an error.

  • WebProcess/Automation/WebAutomationSessionProxy.messages.in:

(EvaluateJavaScriptFunction): Added callbackTimeout parameter.

1:43 PM Changeset in webkit [198912] by eric.carlson@apple.com
  • 37 edits
    1 copy
    5 adds
    3 deletes in trunk/LayoutTests

Rebaseline media control tests when new media control appearances are finalized
​https://bugs.webkit.org/show_bug.cgi?id=142142

Reviewed by Brent Fulgham.

  • fullscreen/video-controls-override.html: Test height as an integer.
  • http/tests/media/hls/video-controls-live-stream.html: Start playback explicitly instead of using autoplay, and pause playback before dumping controls state to make the test results more deterministic.
  • media/audio-delete-while-slider-thumb-clicked.html: Make the <audio> element wide enough that it will always have a timeline scrubber. Trigger test on 'canplaythrough' instead of autoplay + 'playing' to simplify the test slightly.
  • media/nodesFromRect-shadowContent.html: Test for controls panel-background instead timeline-container because of changes to the controls structure.
  • platform/mac-mavericks/media/audio-controls-rendering-expected.png: Removed.
  • platform/mac-mavericks/media/audio-controls-rendering-expected.txt: Removed.
  • platform/mac-mavericks/media/video-volume-slider-expected.txt: Removed.
  • platform/mac-wk1/media/controls-styling-expected.txt: Removed.
  • platform/mac-yosemite/http/tests/media/hls/video-controls-live-stream-expected.txt: Added
  • platform/mac-yosemite/media: Added.
  • platform/mac-yosemite/media/controls-styling-expected.txt: Added.
  • platform/mac/TestExpectations: Unskip some tests.
  • platform/mac/accessibility/media-element-expected.txt: Update results.
  • platform/mac/fast/layers/video-layer-expected.png: Ditto.
  • platform/mac/fast/layers/video-layer-expected.txt: Ditto.
  • platform/mac/fullscreen/video-controls-override-expected.txt: Ditto.
  • platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt: Ditto.
  • platform/mac/media/audio-controls-rendering-expected.png: Ditto.
  • platform/mac/media/audio-controls-rendering-expected.txt: Ditto.
  • platform/mac/media/controls-after-reload-expected.png: Ditto.
  • platform/mac/media/controls-after-reload-expected.txt: Ditto.
  • platform/mac/media/controls-strict-expected.png: Ditto.
  • platform/mac/media/controls-strict-expected.txt: Ditto.
  • platform/mac/media/controls-styling-expected.png: Ditto.
  • platform/mac/media/controls-styling-expected.txt: Ditto.
  • platform/mac/media/controls-without-preload-expected.png: Ditto.
  • platform/mac/media/controls-without-preload-expected.txt: Ditto.
  • platform/mac/media/media-controls-clone-expected.png: Ditto.
  • platform/mac/media/media-controls-clone-expected.txt: Ditto.
  • platform/mac/media/media-document-audio-repaint-expected.png: Ditto.
  • platform/mac/media/video-controls-rendering-expected.png: Ditto.
  • platform/mac/media/video-controls-rendering-expected.txt: Ditto.
  • platform/mac/media/video-display-toggle-expected.png: Ditto.
  • platform/mac/media/video-display-toggle-expected.txt: Ditto.
  • platform/mac/media/video-empty-source-expected.png: Ditto.
  • platform/mac/media/video-empty-source-expected.txt: Ditto.
  • platform/mac/media/video-no-audio-expected.png: Ditto.
  • platform/mac/media/video-no-audio-expected.txt: Ditto.
  • platform/mac/media/video-volume-slider-expected.png: Ditto.
  • platform/mac/media/video-volume-slider-expected.txt: Ditto.
  • platform/mac/media/video-zoom-controls-expected.png: Ditto.
  • platform/mac/media/video-zoom-controls-expected.txt: Ditto.
1:39 PM Changeset in webkit [198911] by jiewen_tan@apple.com
  • 12 edits
    3 adds in trunk

WebKit should set Original URL of a download request correctly
​https://bugs.webkit.org/show_bug.cgi?id=155914
<rdar://problem/10473811>

Reviewed by Anders Carlsson.

Source/WebCore:

Added API tests.

Replace the old logic for identifying the Original URL of a download request
with a new method based on the logic from Document::firstPartyForCookies, which
does a much better job determining the URL a user actually visited.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::setOriginalURLForDownloadRequest):
(WebCore::originatingURLFromBackForwardList): Deleted.

Source/WebKit2:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::findPendingDownloadLocation):

  • NetworkProcess/NetworkProcess.h:

Add logic to set the original URL of a download request when a main resource load
is converted to a download.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::download):

  • UIProcess/WebProcessPool.h:

Add logic to set the original URL of a download request during a context menu:
Download Linked File action.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:

(-[DownloadRequestOriginalURLDelegate initWithExpectOriginalURL:]):
(-[DownloadRequestOriginalURLDelegate _downloadDidStart:]):
(-[DownloadRequestOriginalURLNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/DownloadRequestOriginalURL.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/DownloadRequestOriginalURL2.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/DownloadRequestOriginalURLFrame.html: Added.
12:36 PM Changeset in webkit [198910] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Moving a few skipped tests from ios-simulator-wk2 to ios-simulator TestExpectations file.

Unreviewed test gardening.

These particular tests time out due to lack of touch event support, which applies
to both wk1 and wk2 ios-simulator testers.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
12:25 PM Changeset in webkit [198909] by tonikitoo@webkit.org
  • 2 edits in trunk/Source/WebCore

eventMayStartDrag() does not check for shiftKey or isOverLink
​https://bugs.webkit.org/show_bug.cgi?id=155746

Reviewed by Darin Adler.

There is currently a mismatch between the logic that checks whether
an event can start a dragging action in EventHandler::handleMousePressEvent
and in EventHandler::eventMayStartDrag
Basically the former checks for event's count, type, button, target and modifier.
The later, on the other hand, only checks for event's button and count.

In order to sync them up again, as per the comment in the code,
patch factors out the logic in ::handleMousePressEvent into a helper function,
and ultimately reuses it in ::eventMayStartDrag.

No new tests for two reasons:

1) ::handleMousePressEvent will not have any behavior change. Code is factored out
into a helper.

2) The callees of ::eventMayStartDrag are currently WebPage::shouldDelayWindowOrderingEvent
and ::acceptsFirstMouse. Based on my understanding of [1], these methods
are called when there is a (say) browser window in background with some text selected,
and user starts to drag the selected content. Dragging happens without bringing the window
foreground. This is called "non-activating click".
Such behavior will not change with the patch.

[1] ​https://bugs.webkit.org/show_bug.cgi?id=55053 - "Implement non-activating clicks to allow dragging out of a background window"

  • page/EventHandler.cpp:

(WebCore::isSingleMouseDownOnLinkOrImage):
(WebCore::canMouseEventStartDragInternal):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::documentPointForWindowPoint): Moved up in the file to be used elsewhere.
(WebCore::EventHandler::eventMayStartDrag):

12:12 PM Changeset in webkit [198908] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/console/heapSnapshot.html as a flaky timeout on Mac
​https://bugs.webkit.org/show_bug.cgi?id=156078

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:03 PM Changeset in webkit [198907] by Joseph Pecoraro
  • 9 edits in trunk/Source/WebKit2

Web Automation: Add Automation.screenshot
​https://bugs.webkit.org/show_bug.cgi?id=156073
<rdar://problem/25468646>

Reviewed by Timothy Hatcher and Brian Burg.

  • UIProcess/Automation/Automation.json:

Add Automation.screenshot which returns base64 encoded PNG data.

  • WebProcess/Automation/WebAutomationSessionProxy.h:
  • WebProcess/Automation/WebAutomationSessionProxy.messages.in:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::screenshot):
(WebKit::WebAutomationSession::didTakeScreenshot):
(WebKit::WebAutomationSession::platformGetBase64EncodedPNGData):
Send a message to the WebPage to get an Image of the page
and handle the response.

  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::platformGetBase64EncodedPNGData):
Convert the bitmap data to a base64 encoded PNG.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.messages.in:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::evaluateJavaScriptCallback):
(WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithOrdinal):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithName):
(WebKit::WebAutomationSessionProxy::resolveParentFrame):
(WebKit::WebAutomationSessionProxy::computeElementLayout):
Use null string where possible for efficiency.

(WebKit::WebAutomationSessionProxy::takeScreenshot):
Take an image of the entire page and pass back to the UIProcess.

11:56 AM Changeset in webkit [198906] by timothy@apple.com
  • 2 edits in trunk/Source/WebKit2

Web Automation: Handle undefined when calling a function that has no result

​https://bugs.webkit.org/show_bug.cgi?id=156075
rdar://problem/25468907

Reviewed by Brian Burg.

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(let.AutomationSessionProxy.prototype._jsonParse): Return undefined for empty string.
(let.AutomationSessionProxy.prototype._jsonStringify): Always return a string.

11:54 AM Changeset in webkit [198905] by benjamin@webkit.org
  • 6 edits in trunk/Source/JavaScriptCore

[JSC][x86] Add the indexed forms of floating point addition and multiplication
​https://bugs.webkit.org/show_bug.cgi?id=156058

Reviewed by Geoffrey Garen.

B3 supports lowering [base, index] addresses into
arbitrary instructions but we were not using that feature.

This patch adds the missing support for the lowering
of Add and Mul.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::addDouble):
(JSC::MacroAssemblerX86Common::addFloat):
(JSC::MacroAssemblerX86Common::mulDouble):
(JSC::MacroAssemblerX86Common::mulFloat):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::addsd_mr):
(JSC::X86Assembler::vaddsd_mr):
(JSC::X86Assembler::addss_mr):
(JSC::X86Assembler::vaddss_mr):
(JSC::X86Assembler::mulsd_mr):
(JSC::X86Assembler::vmulsd_mr):
(JSC::X86Assembler::mulss_mr):
(JSC::X86Assembler::vmulss_mr):
(JSC::X86Assembler::X86InstructionFormatter::SingleInstructionBufferWriter::memoryModRM):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::appendBinOp):
Unlike the Addr form, we never need to transform a Tmp
into an Index for spilling.

Instead of duplicating all the code in MacroAssembler, I can
just have the lowering phase try using addresses for the first
argument when possible.

  • b3/air/AirOpcode.opcodes:
  • b3/air/testair.cpp:

(JSC::B3::Air::testX86VMULSDBaseNeedsRex):
(JSC::B3::Air::testX86VMULSDIndexNeedsRex):
(JSC::B3::Air::testX86VMULSDBaseIndexNeedRex):
(JSC::B3::Air::run):

11:50 AM Changeset in webkit [198904] by tonikitoo@webkit.org
  • 3 edits in trunk/Source/WebCore

SelectionController::positionForPlatform should ask EditingBehavior for platform specific behavior
​https://bugs.webkit.org/show_bug.cgi?id=41976

Reviewed by Darin Adler.

SSIA.

No new tests needed.

  • editing/EditingBehavior.h:

(WebCore::EditingBehavior::shouldAlwaysExtendSelectionFromExtentEndpoint):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::positionForPlatform):

11:45 AM Changeset in webkit [198903] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r198035. rdar://problem/25467558

11:28 AM Changeset in webkit [198902] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

DFG JIT bug in typeof constant folding where the input to typeof is an object or function
​https://bugs.webkit.org/show_bug.cgi?id=156034
<rdar://problem/25446785>

Reviewed by Ryosuke Niwa.

AI would constant fold TypeOf to the string "object" if it saw that
its input type didn't expand past the types contained in the set
"SpecObject - SpecObjectOther". But, SpecObject contains SpecFunction.
And typeof of a function should return "function". This patch fixes
this bug by making sure we constant fold to object iff the type
doesn't expand past the set "SpecObject - SpecObjectOther - SpecFunction".

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • tests/stress/typeof-dfg-function-or-object.js: Added.

(assert):
(foo.else.o):
(foo):

11:24 AM Changeset in webkit [198901] by commit-queue@webkit.org
  • 14 edits in trunk/Source

mediaShouldUsePersistentCache() is redundant. Use Page::usesEphemeralSession() instead.
​https://bugs.webkit.org/show_bug.cgi?id=155924

Patch by Jeremy Jones <​jeremyj@apple.com> on 2016-03-31
Reviewed by Simon Fraser.

Source/WebCore:

No new tests because there is no behavior change.

Remove machinery for mediaShouldUsePersistentCache() adopt usesEphemeralSession().

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerShouldUsePersistentCache):

  • page/ChromeClient.h: remove mediaShouldUsePersistentCache()

Source/WebKit/mac:

Remove mediaShouldUsePersistentCache machinery as it is redundant.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::mediaShouldUsePersistentCache): Deleted.

Source/WebKit2:

Remove machinery for mediaShouldUsePersistentCache as it is redundant.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode): Deleted.
(WebKit::WebPageCreationParameters::decode): Deleted.

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::mediaShouldUsePersistentCache): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_mediaShouldUsePersistentCache): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::mediaShouldUsePersistentCache): Deleted.

11:23 AM Changeset in webkit [198900] by adachan@apple.com
  • 13 edits in trunk/Source

Add the new "toggle enhanced fullscreen" context menu item to the video context menu on supporting platforms.
​https://bugs.webkit.org/show_bug.cgi?id=156031

Reviewed by Eric Carlson.

Source/WebCore:

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
Handle the selection of the context menu item.
(WebCore::ContextMenuController::populate):
Add this menu item on Mac.
(WebCore::ContextMenuController::checkOrEnableIfNeeded):
Set the menu item's title depending on the current enhanced fullscreen state
and enable this menu item if supported.

  • platform/ContextMenuItem.h:

Define the new tag for this menu item.

  • platform/LocalizedStrings.cpp:

(WebCore::contextMenuItemTagEnterVideoEnhancedFullscreen):
(WebCore::contextMenuItemTagExitVideoEnhancedFullscreen):

  • platform/LocalizedStrings.h:
  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::mediaSupportsEnhancedFullscreen):
(WebCore::HitTestResult::mediaIsInEnhancedFullscreen):
(WebCore::HitTestResult::toggleEnhancedFullscreenForVideo):

  • rendering/HitTestResult.h:

Source/WebKit/mac:

  • WebView/WebHTMLView.mm:

(toAction):
(toTag):

  • WebView/WebUIDelegatePrivate.h:

Source/WebKit2:

  • Shared/API/c/WKContextMenuItemTypes.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

11:16 AM Changeset in webkit [198899] by Yusuke Suzuki
  • 5 edits in trunk/LayoutTests

Three js/regress/string-repeat-* are flaky timeouts on Mac
​https://bugs.webkit.org/show_bug.cgi?id=156062

Reviewed by Saam Barati.

Reduce the test cases to avoid timeouts.

  • js/regress/script-tests/string-repeat-resolving-no-inline.js:
  • js/regress/script-tests/string-repeat-resolving.js:
  • js/regress/script-tests/string-repeat-small-resolving.js:
  • platform/mac/TestExpectations:
9:48 AM Changeset in webkit [198898] by Alan Bujtas
  • 1 edit
    2 adds in trunk/LayoutTests

Add a -mismatch test case for r198785.
see webkit.org/b/155973

Unreviewed.

  • plugins/missing-plugin-placeholder-expected-mismatch.html: Added.
  • plugins/missing-plugin-placeholder.html: Added.
9:45 AM Changeset in webkit [198897] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Removed leftovers of ENABLE(INSPECTOR) and ENABLE(VIEWPORT).
​https://bugs.webkit.org/show_bug.cgi?id=156064

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-03-31
Reviewed by Csaba Osztrogonác.

This ifdef guards were removed in r178820 and r147714, respectively.

  • wtf/FeatureDefines.h:
9:39 AM Changeset in webkit [198896] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix after r198893.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::findPendingDownloadLocation): Pass
new argument to download method.

9:17 AM Changeset in webkit [198895] by n_wang@apple.com
  • 5 edits in trunk

AX: aria-hidden=false causes video fallback content to be exposed to AX API
​https://bugs.webkit.org/show_bug.cgi?id=149278

Reviewed by Chris Fleizach.

Source/WebCore:

The comment says when aria-hidden="false" and object is not rendered, we should
check each parent's aria-hidden status until we encounter a rendered object. So
added a check for the rendered parent in order to break out of the loop earlier.

Test case covered in modified accessibility/aria-hidden-negates-no-visibility.html

  • accessibility/AXObjectCache.cpp:

(WebCore::isNodeAriaVisible):

LayoutTests:

  • accessibility/aria-hidden-negates-no-visibility-expected.txt:
  • accessibility/aria-hidden-negates-no-visibility.html:
9:12 AM Changeset in webkit [198894] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: Build and logic fix after r198873.
​https://bugs.webkit.org/show_bug.cgi?id=156043

Not reviewed.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::addFloat):

  • 2 args were meant to be ordered differently in order to call the other addFloat. Instead, there was an infinite recursion bug. This is now fixed.
8:35 AM Changeset in webkit [198893] by Brent Fulgham
  • 37 edits in trunk

[WK2] Support download attribute feature
​https://bugs.webkit.org/show_bug.cgi?id=102914
<rdar://problem/13177492>

Reviewed by Darin Adler.

Source/WebCore:

Tested by imported/w3c/web-platform-tests/html/dom/interfaces.html

imported/w3c/web-platform-tests/html/dom/reflection-text.html

A first draft implementation of this feature.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick): If the anchor has the 'download'
attribute, pass along the information to the rest of the load system.

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest): Create new overload that
accepts a download attribute flag and a suggested filename.
(WebCore::FrameLoadRequest::hasDownloadAttribute): Added.
(WebCore::FrameLoadRequest::suggestedFilename): Added.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected): Expand to accept the download attribute
flag and suggested filename.
(WebCore::FrameLoader::loadURL): Populate the NavigationAction with the new
download attribute flag and suggested filename.
(WebCore::FrameLoader::loadPostRequest): Ditto.

  • loader/FrameLoader.h:
  • loader/FrameLoaderTypes.h: Add new 'HasDownloadAttribute' enum.
  • loader/NavigationAction.cpp:

(WebCore::navigationType):
(WebCore::NavigationAction::NavigationAction): Update to accept new download
attribute flag and suggested filename.

  • loader/NavigationAction.h:

(WebCore::NavigationAction::hasDownloadAttribute): Added.
(WebCore::NavigationAction::suggestedFilename): Added.

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy): Pass more information to
'continueAfterNavigationPolicy'
(WebCore::PolicyChecker::continueAfterNavigationPolicy): Accept suggested
filename

  • loader/PolicyChecker.h:

Source/WebKit2:

A first draft implementation of this feature.

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::Download): Update to accept default filename.
(WebKit::Download::didStart): Send default filename in message.

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload): Expect a default filename argument.

  • NetworkProcess/Downloads/DownloadManager.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::startDownload): Expect a default
filename argument.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in: Update messages to

expect a default filename argument.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode): Handle the download attribute flag and
the default filename.
(WebKit::NavigationActionData::decode): Ditto.

  • Shared/NavigationActionData.h:
  • UIProcess/API/APINavigationAction.h:
  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::didStart): Expect a default filename argument.
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename): Use the suggested
filename if the client delegate does not override it.

  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/Downloads/DownloadProxy.messages.in: Include a default filename value.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision): If the feature is enabled, and
the load was started with a download attribute, convert a "PolicyUse" decision
to "PolicyDownload".
(WebKit::WebPageProxy::decidePolicyForNavigationAction): Remember if the load
is happening due to a 'download' attribute link.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow): Populate the navigationActionData object
with any download attribute and suggested filename.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): Populate the
navigationActionData object with any download attribute and suggested filename.
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto.
(WebKit::WebFrameLoaderClient::startDownload): Expect a suggested filename argument.

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload): Expect a suggested filename argument.

  • WebProcess/WebPage/WebFrame.h:

Source/WTF:

  • wtf/FeatureDefines.h: Turn the ENABLE_DOWNLOAD_ATTRIBUTE flag

on to see what happens.

LayoutTests:

  • imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Update for

<a download>.

  • imported/w3c/web-platform-tests/html/dom/reflection-text-expected.txt: Ditto.
  • js/dom/dom-static-property-for-in-iteration-expected.txt: Ditto.
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Ditto.
7:57 AM Changeset in webkit [198892] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking three js/regress/string-repeat-* tests as flaky timeouts on Mac
​https://bugs.webkit.org/show_bug.cgi?id=156062

Unreviewed test gardening.

  • platform/mac/TestExpectations:
5:32 AM EnvironmentVariables edited by clopez@igalia.com
(diff)
5:20 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
4:05 AM Changeset in webkit [198891] by youenn.fablet@crf.canon.fr
  • 21 edits
    1 add in trunk

[Fetch API] Add basic loading of resources for Workers
​https://bugs.webkit.org/show_bug.cgi?id=155886

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Updating test expectations as new tests are passing.

  • web-platform-tests/fetch/api/basic/accept-header-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/integrity-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/request-forbidden-headers-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-about-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-blob-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-others-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/stream-response-worker-expected.txt:

Source/WebCore:

Adding impplementation to WorkerGlobalScopeFetch::fetch similarly to DOMWindowFetch::fetch.
Refactored code in FetchResponse to share code between the two.

Updated WorkerThreadableLoader to cope with an ASSERT.
The ASSERT ensures that a DocumentThreadableLoader::create returns non null.
In our case, it might happen as all cross origin fetch requests are denied at the moment.
This leads to calling didFail in DocumentThreadableLoader::create call and DocumentThreadableLoader::create to return null.
Updated the ASSERT to ensures that either the load is finished or DocumentThreadableLoader::create does not return null.

Covered by rebased tests.

  • Modules/fetch/DOMWindowFetch.cpp:

(WebCore::DOMWindowFetch::fetch):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::startFetching):
(WebCore::FetchResponse::fetch):

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/WorkerGlobalScopeFetch.cpp:

(WebCore::WorkerGlobalScopeFetch::fetch):

  • Modules/fetch/WorkerGlobalScopeFetch.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck):

  • loader/WorkerThreadableLoader.h:

LayoutTests:

Soup and Mac HTTP backends differ on Content-Length header handling.

  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-worker-expected.txt: Added.
3:31 AM Changeset in webkit [198890] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk/Source/WebCore

[Fetch API] Move isDisturbed handling to FetchBodyOwner
​https://bugs.webkit.org/show_bug.cgi?id=155968

Reviewed by Darin Adler.

Moved isDisturbed handling in FetchBodyOwner.
This includes promise rejection in case of disturbed bodies.

No behavior change observable from user scripts.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::arrayBuffer):
(WebCore::FetchBody::blob):
(WebCore::FetchBody::json):
(WebCore::FetchBody::text):
(WebCore::FetchBody::extractFromBody):
(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeArrayBuffer):
(WebCore::FetchBody::processIfEmptyOrDisturbed): Deleted.

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::isEmpty): Deleted.

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::arrayBuffer):
(WebCore::FetchBodyOwner::blob):
(WebCore::FetchBodyOwner::formData):
(WebCore::FetchBodyOwner::json):
(WebCore::FetchBodyOwner::text):

  • Modules/fetch/FetchBodyOwner.h:

(WebCore::FetchBodyOwner::isDisturbed):
(WebCore::FetchBodyOwner::setDisturbed):

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::create):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::clone):

1:31 AM Changeset in webkit [198889] by youenn.fablet@crf.canon.fr
  • 5 edits
    1 copy
    6 moves
    1 add in trunk

Remove forEach use from Fetch Headers builtin constructor
​https://bugs.webkit.org/show_bug.cgi?id=155967

Reviewed by Joseph Pecoraro.

Source/WebCore:

Tests: fetch/shadowing-forEach.html

streams/shadowing-Promise.html
streams/shadowing-defineProperty.html

  • Modules/fetch/FetchHeaders.idl: Adding fillFromJS private method.
  • Modules/fetch/FetchHeaders.js:

(initializeFetchHeaders): Using fillFromJS private method. Using
instanceof test to check whether parameter is Headers or subclass of it.

  • bindings/js/WebCoreBuiltinNames.h: Adding fillFromJS private symbol.

LayoutTests:

Renaming tests covering user scripts breaking some WebCore JS built ins.

  • fetch/header-constructor-subclass-expected.txt: Added.
  • fetch/header-constructor-subclass.html: Added.
  • fetch/shadowing-forEach-expected.txt: Renamed from LayoutTests/streams/builtin-overrides-expected.txt.
  • fetch/shadowing-forEach.html: Renamed from LayoutTests/fetch/builtin-overrides.html.
  • streams/shadowing-Promise-expected.txt: Renamed from LayoutTests/streams/streams-promises-expected.txt.
  • streams/shadowing-Promise.html: Renamed from LayoutTests/streams/streams-promises.html.
  • streams/shadowing-defineProperty-expected.txt: Renamed from LayoutTests/fetch/builtin-overrides-expected.txt.
  • streams/shadowing-defineProperty.html: Renamed from LayoutTests/streams/builtin-overrides.html.
1:26 AM Changeset in webkit [198888] by youenn.fablet@crf.canon.fr
  • 18 edits
    4 adds in trunk/LayoutTests

[Fetch API] Update web-platform-test fetch API tests
​https://bugs.webkit.org/show_bug.cgi?id=155969

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Resyncing tests and updated expectations.
New test web-platform-tests/fetch/api/request/request-cache.html is timing out.

  • web-platform-tests/fetch/api/basic/scheme-blob-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-blob-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-blob.js:

(checkFetchResponse):

  • web-platform-tests/fetch/api/headers/headers-basic.html:
  • web-platform-tests/fetch/api/request/request-cache-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache.html: Added.
  • web-platform-tests/fetch/api/request/request-consume-empty.html:
  • web-platform-tests/fetch/api/request/request-consume.html:
  • web-platform-tests/fetch/api/request/request-idl-expected.txt:
  • web-platform-tests/fetch/api/request/request-idl.html:
  • web-platform-tests/fetch/api/request/request-init-002-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-002.html:
  • web-platform-tests/fetch/api/request/resources/cache.py: Added.

(main):

  • web-platform-tests/fetch/api/resources/utils.js:

(stringToArray):
(validateBufferFromString):
(validateStreamFromString):

  • web-platform-tests/fetch/api/response/response-clone.html:
  • web-platform-tests/fetch/api/response/response-consume-empty.html:
  • web-platform-tests/fetch/api/response/response-consume.html:
  • web-platform-tests/fetch/api/response/response-init-002.html:

LayoutTests:

  • TestExpectations: Marking imported/w3c/web-platform-tests/fetch/api/request/request-cache.html as timing out.

Mar 30, 2016:

11:18 PM Changeset in webkit [198887] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

CMake build fix.

  • PlatformMac.cmake:
11:08 PM Changeset in webkit [198886] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Windows build.

  • platform/text/LineEnding.cpp:

make the char's and uint8_t's compile.

11:00 PM Changeset in webkit [198885] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Speculative Yosemite fix after r198872.

  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::platformSimulateKeySequence):
Yosemite didn't like _Nullable.

10:49 PM Changeset in webkit [198884] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/text/LineEnding.cpp:
10:44 PM Changeset in webkit [198883] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix GTK and Windows builds after r198869.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::blobIsOutOfDate):
(WebCore::addEncodedBlobItemToSoupMessageBody):

  • platform/text/LineEnding.cpp:
9:18 PM Changeset in webkit [198882] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

BuildRequest should have associated platform and test
​https://bugs.webkit.org/show_bug.cgi?id=156054

Reviewed by Joseph Pecoraro.

Added methods to retrieve the platform and the test associated with a build request with tests.

  • public/v3/models/build-request.js:

(BuildRequest):
(BuildRequest.prototype.platform): Added.
(BuildRequest.prototype.test): Added.

  • server-tests/api-build-requests-tests.js:
  • server-tests/api-manifest.js: Fixed a typo. This tests /api/manifest, not /api/build-requests.
  • unit-tests/buildbot-syncer-tests.js:

(.createSampleBuildRequest): Now takes Platform and Test objects to avoid hitting assertions in
BuildRequest's constructor.

8:56 PM Changeset in webkit [198881] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Need to expose makeAllShadowRootsOpen in WKWebProcessPlugInScriptWorld.
​https://bugs.webkit.org/show_bug.cgi?id=156046

Add an SPI makeAllShadowRootsOpen method in WKWebProcessPlugInScriptWorld.

Patch by Yongjun Zhang <​yongjun_zhang@apple.com> on 2016-03-30
Reviewed by Dan Bernstein.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm:

(-[WKWebProcessPlugInScriptWorld makeAllShadowRootsOpen]):

8:43 PM Changeset in webkit [198880] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.25.1/Source/WebCore

Merged r198875. rdar://problem/25424541

8:42 PM Changeset in webkit [198879] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.25.1/Source

Versioning.

8:39 PM Changeset in webkit [198878] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.25.1

New tag.

7:20 PM Changeset in webkit [198877] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.26/Source/WebCore

Merged r198875. rdar://problem/25424541

7:13 PM Changeset in webkit [198876] by Dewei Zhu
  • 2 edits in trunk/Tools

Extend animometer timeout for slow CPUs.
​https://bugs.webkit.org/show_bug.cgi?id=156047

Reviewed by Ryosuke Niwa.

Extend animometer timeout to 30 minutes for slow device.

  • Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan:
7:07 PM Changeset in webkit [198875] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

[iOS WK2] Avoid creating tiles that are too large for rendering
​https://bugs.webkit.org/show_bug.cgi?id=156050
rdar://problem/25424541

Reviewed by Darin Adler.

In the case of a WKWebView which is sized large enough to show an entire document
(for example, when enclosed inside a UIScrollView), we would create tiles that were
larger than CoreAnimation was willing to deal with.

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::tileSize): Take the device scale, and the max IOSurface size
into account when computing the max tile size.

  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::maximumSize): CoreAnimation imposes limits in addition to the size reported
by IOSurfaceGetPropertyMaximum(), namely an 8k cap, so mimic that here.
(IOSurface::ensurePlatformContext): Typo.

7:07 PM Changeset in webkit [198874] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Fixed typo in fast/css/viewport-vmin-border test.
​https://bugs.webkit.org/show_bug.cgi?id=156028

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-03-30
Reviewed by Darin Adler.

  • fast/css/viewport-vmin-border.html: Test should should say "vmin" instead of

"vmax".

  • fast/css/viewport-vmin-border-expected.txt: Adjust expectation.
7:05 PM Changeset in webkit [198873] by benjamin@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

[JSC][x86] Add the 3 operands forms of floating point addition and multiplication
​https://bugs.webkit.org/show_bug.cgi?id=156043

Reviewed by Geoffrey Garen.

When they are available, VADD and VMUL are better options to lower
floating point addition and multiplication.

In the simple cases when one of the operands is aliased to the destination,
those forms have the same size or 1 byte shorter depending on the registers.

In the more advanced cases, we gain nice advantages with the new forms:
-We can get rid of the MoveDouble in front the instruction when we cannot

alias.

-We can disable aliasing entirely in Air. That is useful for latency

since computing coalescing is not exactly cheap.

  • assembler/MacroAssemblerX86Common.cpp:
  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::and32):
(JSC::MacroAssemblerX86Common::mul32):
(JSC::MacroAssemblerX86Common::or32):
(JSC::MacroAssemblerX86Common::xor32):
(JSC::MacroAssemblerX86Common::branchAdd32):
The change in B3LowerToAir exposed a bug in the fake 3 operands
forms of those instructions. If the address is equal to
the destination, we were nuking the address.

For example,

Add32([%r11], %eax, %r11)

would generate:

move %eax, %r11
add32 [%r11], %r11

which crashes.

I updated codegen of those cases to support that case through

load32 [%r11], %r11
add32 %eax, %r11

The weird case were all arguments have the same registers
is handled too.

(JSC::MacroAssemblerX86Common::addDouble):
(JSC::MacroAssemblerX86Common::addFloat):
(JSC::MacroAssemblerX86Common::mulDouble):
(JSC::MacroAssemblerX86Common::mulFloat):
(JSC::MacroAssemblerX86Common::supportsFloatingPointRounding):
(JSC::MacroAssemblerX86Common::supportsAVX):
(JSC::MacroAssemblerX86Common::updateEax1EcxFlags):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::branchAdd64):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::vaddsd_rr):
(JSC::X86Assembler::vaddsd_mr):
(JSC::X86Assembler::vaddss_rr):
(JSC::X86Assembler::vaddss_mr):
(JSC::X86Assembler::vmulsd_rr):
(JSC::X86Assembler::vmulsd_mr):
(JSC::X86Assembler::vmulss_rr):
(JSC::X86Assembler::vmulss_mr):
(JSC::X86Assembler::X86InstructionFormatter::SingleInstructionBufferWriter::memoryModRM):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::appendBinOp):
Add the 3 operand forms so that we lower Add and Mul
to the best form directly.

I will change how we lower the fake 3 operands instructions
but the codegen should end up the same in most cases.
The new codegen is the load32 + op above.

  • b3/air/AirInstInlines.h:

(JSC::B3::Air::Inst::shouldTryAliasingDef):

  • b3/air/testair.cpp:

(JSC::B3::Air::testX86VMULSD):
(JSC::B3::Air::testX86VMULSDDestRex):
(JSC::B3::Air::testX86VMULSDOp1DestRex):
(JSC::B3::Air::testX86VMULSDOp2DestRex):
(JSC::B3::Air::testX86VMULSDOpsDestRex):
(JSC::B3::Air::testX86VMULSDAddr):
(JSC::B3::Air::testX86VMULSDAddrOpRexAddr):
(JSC::B3::Air::testX86VMULSDDestRexAddr):
(JSC::B3::Air::testX86VMULSDRegOpDestRexAddr):
(JSC::B3::Air::testX86VMULSDAddrOpDestRexAddr):
Make sure we have some coverage for AVX encoding of instructions.

7:03 PM Changeset in webkit [198872] by Joseph Pecoraro
  • 7 edits in trunk/Source

Web Automation: Add Automation.performKeyboardInteractions
​https://bugs.webkit.org/show_bug.cgi?id=155990
<rdar://problem/25426408>

Patch by Brian Burg <BJ Burg> on 2016-03-30
Reviewed by Timothy Hatcher.

Source/WebKit2:

Add a command that allows automation to simulate single
key strokes or insertion of an entire string, character
by character.

  • UIProcess/Automation/Automation.json: Add new command.

Add a large enumeration of all virtual keys that exist
on a US 109-key keyboard layout. Add an interaction object.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::performKeyboardInteractions):
Added. This method validates the incoming key interactions
from the protocol and makes a list of simulated interactions
to perform. If everything validates, then delegate the key
interaction simulations to platform-specific methods.

(WebKit::WebAutomationSession::platformSimulateKeyStroke):
(WebKit::WebAutomationSession::platformSimulateKeySequence):
Add stubs for other platforms.

  • UIProcess/Automation/WebAutomationSession.h: Add new

protocol command handler and platform simulation methods.

  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::platformSimulateKeyStroke):
(WebKit::WebAutomationSession::platformSimulateKeySequence):
These methods implement keyboard simulation for AppKit, used
by the Mac port. In the keystroke case, figure out the AppKit
keyCode for the key as well as any key modifiers that should
be included with the key event. Keep track of sticky modifiers
and update the session state appropriately. In the key sequence
case, split the string into combining character sequences and
send a 'key up/down'. This is a weird way to send non-ASCII
text, so a better alternative should be explored in the future.

Source/WTF:

Add a missing NSEventType declaration.

  • wtf/mac/AppKitCompatibilityDeclarations.h:
6:36 PM Changeset in webkit [198871] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebCore

[EFL][CMake] WebKit include path has been added to system include path
​https://bugs.webkit.org/show_bug.cgi?id=156019

Reviewed by Darin Adler.

Fix wrong include path addition.

  • PlatformEfl.cmake:

Add ${WEBCORE_DIR}/platform/graphics/surfaces/egl to WebCore include directory path.

6:31 PM Changeset in webkit [198870] by jdiggs@igalia.com
  • 7 edits in trunk

AX: Update handling of SVG elements with presentational role
​https://bugs.webkit.org/show_bug.cgi?id=156042

Reviewed by Chris Fleizach.

Source/WebCore:

Because the new expected behavior is to treat SVG elements with a
presentational role just like we treat other host language elements
with a presentational role, delete AccessibilitySVGElement's
determineAriaRoleAttribute().

No new test files. The expectations for w3c-svg-presentational-role.html
were updated because the presentational elements which have global ARIA
attributes are now being included in the accessibility tree. In addition,
several new test cases were added to this layout test so that we have
coverage for more presentational elements which lack global ARIA attributes.

  • accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::determineAriaRoleAttribute): Deleted.

  • accessibility/AccessibilitySVGElement.h:

LayoutTests:

The expectations needed to be updated to reflect the elements which are
now being included in the accessibility tree. Also added several new test
cases with presentational elements that lack global ARIA attributes.

  • accessibility/w3c-svg-presentational-role.html: Added several new test cases.
  • platform/gtk/accessibility/w3c-svg-presentational-role-expected.txt: Updated.
  • platform/mac/accessibility/w3c-svg-presentational-role-expected.txt: Updated
6:21 PM Changeset in webkit [198869] by beidson@apple.com
  • 29 edits in trunk/Source

Make BlobData use ThreadSafeSharedBuffer instead of RawData.
​https://bugs.webkit.org/show_bug.cgi?id=156041

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No change in behavior).

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::extractFromText):
(WebCore::blobFromArrayBuffer):

  • Modules/fetch/FetchBody.h:
  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didReceiveBinaryData):

  • Modules/websockets/WebSocket.h:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::processFrame):

  • Modules/websockets/WebSocketChannel.h:
  • Modules/websockets/WebSocketChannelClient.h:

(WebCore::WebSocketChannelClient::didReceiveBinaryData):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • fileapi/Blob.cpp:

(WebCore::Blob::Blob):

  • fileapi/Blob.h:

(WebCore::Blob::create):

  • fileapi/WebKitBlobBuilder.h:
  • platform/network/BlobData.cpp:

(WebCore::BlobData::BlobData):
(WebCore::BlobDataItem::length):
(WebCore::BlobData::appendData):
(WebCore::BlobData::setContentType): Deleted.

  • platform/network/BlobData.h:

(WebCore::BlobDataItem::type):
(WebCore::BlobDataItem::data):
(WebCore::BlobDataItem::file):
(WebCore::BlobDataItem::BlobDataItem):
(WebCore::BlobData::create):
(WebCore::RawData::create): Deleted.
(WebCore::RawData::data): Deleted.
(WebCore::RawData::length): Deleted.
(WebCore::RawData::RawData): Deleted.

  • platform/network/BlobPart.h:

(WebCore::BlobPart::BlobPart):
(WebCore::BlobPart::data):
(WebCore::BlobPart::moveData):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::BlobRegistryImpl::registerFileBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::getSizeForNext):
(WebCore::BlobResourceHandle::readSync):
(WebCore::BlobResourceHandle::readDataSync):
(WebCore::BlobResourceHandle::readFileSync):
(WebCore::BlobResourceHandle::readAsync):
(WebCore::BlobResourceHandle::readDataAsync):
(WebCore::BlobResourceHandle::readFileAsync):

  • platform/network/BlobResourceHandle.h:
  • platform/network/FormData.cpp:

(WebCore::appendBlobResolved):

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::blobIsOutOfDate):
(WebCore::addEncodedBlobItemToSoupMessageBody):

  • platform/text/LineEnding.cpp:

(WebCore::normalizeToCROrLF):
(WebCore::normalizeLineEndingsToNative):
(WebCore::normalizeLineEndingsToCR): Deleted.
(WebCore::normalizeLineEndingsToLF): Deleted.

  • platform/text/LineEnding.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::responseBlob):

Source/WebKit2:

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::filesInBlob):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<BlobPart>::decode):

5:47 PM Changeset in webkit [198868] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Change some release asserts in CodeBlock linking into debug asserts
​https://bugs.webkit.org/show_bug.cgi?id=155500

Reviewed by Filip Pizlo.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

5:40 PM Changeset in webkit [198867] by Joseph Pecoraro
  • 8 edits in trunk/Source

Remove unused ScriptProfiler.Samples.totalTime
​https://bugs.webkit.org/show_bug.cgi?id=156002

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::buildSamples):
(Inspector::InspectorScriptProfilerAgent::trackingComplete):

  • inspector/protocol/ScriptProfiler.json:

Remove totalTime.

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::SamplingProfiler): Deleted.

  • runtime/SamplingProfiler.h:

(JSC::SamplingProfiler::totalTime): Deleted.
Remove now unused m_totalTime.

Source/WebInspectorUI:

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.scriptProfilerTrackingCompleted):

  • UserInterface/Models/CallingContextTree.js:

(WebInspector.CallingContextTree.prototype.get totalExecutionTime): Deleted.
(WebInspector.CallingContextTree.prototype.reset): Deleted.
(WebInspector.CallingContextTree.prototype.increaseExecutionTime): Deleted.
Remove unused totalExecutionTime.

5:38 PM Changeset in webkit [198866] by msaboff@apple.com
  • 5 edits in trunk

[ES6] Quantified unicode regular expressions do not work for counts greater than 1
​https://bugs.webkit.org/show_bug.cgi?id=156044

Reviewed by Mark Lam.

Source/JavaScriptCore:

Fixed incorrect indexing of non-BMP characters in fixed patterns. The old code
was indexing by character units, a single JS character, instead of code points
which is 2 JS characters.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::matchDisjunction):

LayoutTests:

Added new test cases.

  • js/regexp-unicode-expected.txt:
  • js/script-tests/regexp-unicode.js:
4:44 PM Changeset in webkit [198865] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed, rolling out r198856.

Broke the tests on the Apple El Capitan Release WK2 (Tests)
bot. Further investigation needed.

Reverted changeset:

"REGRESSION (r194660): Navigating to HTTPS sites may fail with
error"
​https://bugs.webkit.org/show_bug.cgi?id=155455
​http://trac.webkit.org/changeset/198856

4:09 PM Changeset in webkit [198864] by enrica@apple.com
  • 4 edits in trunk/Source/WebCore

Add a style for Data Detectors links.
​https://bugs.webkit.org/show_bug.cgi?id=155996
rdar://problem/25343514

Reviewed by Sam Weinig.

Based on indication from the data detection engine,
we style some of the links differently.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):

  • platform/cocoa/DataDetectorsCoreSoftLink.h:
  • platform/cocoa/DataDetectorsCoreSoftLink.mm:
4:06 PM Changeset in webkit [198863] by matthew_hanson@apple.com
  • 5 edits
    1 copy in branches/safari-601.1.46-branch/Tools

Merge r194115. rdar://problem/25253479

4:06 PM Changeset in webkit [198862] by matthew_hanson@apple.com
  • 8 edits in branches/safari-601.1.46-branch/Tools

Merge r192375. rdar://problem/25253479

3:42 PM Changeset in webkit [198861] by matthew_hanson@apple.com
  • 5 edits
    1 add
    4 deletes in branches/safari-601-branch

Merge r198687. rdar://problem/25448871

3:34 PM Changeset in webkit [198860] by bshafiei@apple.com
  • 42 edits
    5 deletes in tags/Safari-602.1.26

Merged r198844. rdar://problem/25450997

3:19 PM Changeset in webkit [198859] by mmaxfield@apple.com
  • 11 edits
    2 adds in trunk

[OS X] [RTL Scrollbars] Overlay RTL scrollbars animate in from the wrong side
​https://bugs.webkit.org/show_bug.cgi?id=155962

Reviewed by Darin Adler.

Source/WebCore:

We can control the animation direction with the NSScrollerImp property
userInterfaceLayoutDirection.

This patch also adds an Internals function to set whether or not we
should mock the scrollbars. Not mocking the scrollbars is required
to use NSScrollerImps.

Test: fast/scrolling/rtl-scrollbars-animation-property.html

  • platform/ScrollableArea.h: Use nullptr instead of 0.

(WebCore::ScrollableArea::horizontalScrollbar):
(WebCore::ScrollableArea::verticalScrollbar):
(WebCore::ScrollableArea::tiledBacking):
(WebCore::ScrollableArea::layerForHorizontalScrollbar):
(WebCore::ScrollableArea::layerForVerticalScrollbar):
(WebCore::ScrollableArea::layerForScrolling):
(WebCore::ScrollableArea::layerForScrollCorner):
(WebCore::ScrollableArea::layerForOverhangAreas):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::updateScrollerStyle): Set the direction
of the new NSScrollerImps.

  • platform/mac/ScrollbarThemeMac.h:
  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::didCreateScrollerImp): Set the direction
of an NSScrollerImp.
(WebCore::ScrollbarThemeMac::registerScrollbar): Call
didCreateScrollerImp().
(WebCore::ScrollbarThemeMac::isLayoutDirectionRTL): Used for testing,
to tell if the scroller's direction is RTL.

  • platform/spi/mac/NSScrollerImpSPI.h:
  • rendering/RenderTreeAsText.cpp:

(WebCore::write):

  • testing/Internals.cpp:

(WebCore::Internals::setMockScrollbarsEnabled): Used for testing.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

This test only prints the "RTL" token when running on certain OSes.

  • fast/scrolling/rtl-scrollbars-animation-property.html: Added.
  • platform/mac/fast/scrolling/rtl-scrollbars-animation-property-expected.txt: Added.
3:06 PM Changeset in webkit [198858] by weinig@apple.com
  • 3 edits
    2 adds in trunk

-webkit-text-underline-position: under; does not work in ToT
​https://bugs.webkit.org/show_bug.cgi?id=156038

Reviewed by David Hyatt.

Source/WebCore:

Test: fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under-vs-alphabetic.html

  • style/InlineTextBoxStyle.cpp:

(WebCore::computeUnderlineOffset):
Only resolve the underline position when based on the InlineTextBox when it is specified as auto.

LayoutTests:

  • fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under-vs-alphabetic-expected-mismatch.html: Added.
  • fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under-vs-alphabetic.html: Added.

Add mismatch test to show that -webkit-text-underline-position: under works.

3:05 PM Changeset in webkit [198857] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

Fix the media test added in r185402
​https://bugs.webkit.org/show_bug.cgi?id=156040

Reviewed by Simon Fraser.

  • media/video-transformed-by-javascript.html: Load a valid media file.
2:48 PM Changeset in webkit [198856] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r194660): Navigating to HTTPS sites may fail with error
​https://bugs.webkit.org/show_bug.cgi?id=155455
<rdar://problem/24308793>

Reviewed by Alexey Proskuryakov.

Fixes an issue where navigating to an HTTPS site may fail because the Security Framework uses
a cache directory that it does not have permission to use.

  • Shared/mac/ChildProcessMac.mm:

(WebKit::codeSigningIdentifierForProcess): Queries the Security Framework for the code signed
bundle identifier/code signing identifier.
(WebKit::ChildProcess::initializeSandbox): Use the client identifier as part of the user directory
suffix. Verify that the client identifier matches the code signed bundled identifier/code
signing identifier for the code signed app/tool. Fix minor code style issue; use a C++-style cast
instead of a C-style cast when casting an OSStatus to a long.
(WebKit::findSecCodeForProcess): Deleted; incorporated logic into WebKit::codeSigningIdentifierForProcess().

1:47 PM Changeset in webkit [198855] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Make the $vm debugging tools available to builtins as @$vm.
​https://bugs.webkit.org/show_bug.cgi?id=156012

Reviewed by Saam Barati.

We also need some debugging tools for builtin development. The $vm object will
be made available to builtins as @$vm, which gives us, amongst many goodies,
@$vm.print() (which prints the toString() values of its args) and
@$vm.printValue() (which dataLogs its arg as a JSValue). @$vm will only be
available if we run with JSC_useDollarVM=true.

Also changed @$vm.print() to not automatically insert a space between the
printing of each of its args. This makes it clearer as to what will be printed
i.e. it will only print what is passed to it.

  • builtins/BuiltinNames.h:

(JSC::BuiltinNames::BuiltinNames):
(JSC::BuiltinNames::dollarVMPublicName):
(JSC::BuiltinNames::dollarVMPrivateName):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • tools/JSDollarVMPrototype.cpp:

(JSC::functionPrint):

1:39 PM Changeset in webkit [198854] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Fix Windows EWS after r198766
​https://bugs.webkit.org/show_bug.cgi?id=156029

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-03-30
Reviewed by Brent Fulgham.

  • CMakeLists.txt:
  • PlatformWin.cmake:

Copy headers before compiling WebCoreDerivedSources, not just before compiling WebCore.

12:46 PM Changeset in webkit [198853] by rniwa@webkit.org
  • 7 edits in trunk/Websites/perf.webkit.org

BuildRequest should have a method to fetch all in-progress and pending requests for a triggerable
​https://bugs.webkit.org/show_bug.cgi?id=156008

Reviewed by Darin Adler.

Add a method to BuildRequest that fetches all pending and in-progress requests for a triggerable.

Now, new syncing scripts must be able to figure out the build slave the first build requests in
a given test group had used in order to schedule subsequent build requests in the test group.

For this purpose, /api/build-requests has been modified to return all build requests whose test
group had not finished yet. A test group is finished if all build requests in the test group had
finished (completed, failed, or canceled).

  • public/include/build-requests-fetcher.php:

(BuildRequestFetcher::fetch_incomplete_requests_for_triggerable): Return all build requests in test
groups that have not been finished.

  • public/v3/models/build-request.js:

(BuildRequest):
(BuildRequest.prototype.testGroupId): Added.
(BuildRequest.prototype.isPending): Renamed from hasPending to fix a bad grammar.
(BuildRequest.fetchForTriggerable): Added.
(BuildRequest.constructBuildRequestsFromData): Extracted from _createModelsFromFetchedTestGroups in
TestGroup.

  • public/v3/models/manifest.js:

(Manifest.fetch): Use the full path from root so that it works in server tests.

  • public/v3/models/test-group.js:

(TestGroup.hasPending):
(TestGroup._createModelsFromFetchedTestGroups):

  • server-tests/api-build-requests-tests.js: Added tests to ensure all build requests for a test group

is present in the response returned by /api/build-requests iff any build request in the group had not
finished yet.
(.addMockData):
(.addAnotherMockTestGroup): Added.

  • unit-tests/test-groups-tests.js:
12:42 PM Changeset in webkit [198852] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Random SerializedScriptValue cleanup.
​https://bugs.webkit.org/show_bug.cgi?id=156032

Rubberstamped by Tim Hatcher.

  • Remove two unused functions.
  • Make the class always be ThreadSafeRefCounted.
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::numberValue): Deleted.
(WebCore::SerializedScriptValue::undefinedValue): Deleted.

  • bindings/js/SerializedScriptValue.h:
12:36 PM Changeset in webkit [198851] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Calculate more accurate time per-sample instead of assuming 1ms
​https://bugs.webkit.org/show_bug.cgi?id=155961
<rdar://problem/25404505>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-03-30
Reviewed by Geoffrey Garen.

Give each sample a duration based on the best time bounds we have available.
Script Profiler Events give us time bounds for (nearly) all script evaluations.
The only evaluations that are missed are Inspector scripts.

The duration per-sample is computed per-event:

durationPerSample = (event.endTime - event.startTime) / numSamplesInTimeRange.

If a 10ms Script Event contains 5 samples, they would each get a 2ms duration.
If a 0.5ms Script Event contains 1 sample, it would get a 0.5ms duration.

We were seeing an average of 1.6-1.8ms per sample for events that had more
than 3 samples.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.scriptProfilerTrackingCompleted):
Associate a time duration per sample. For each Script Event we compute
an average time for all the samples in the event and assign it to the sample.

  • UserInterface/Models/CallingContextTree.js:

(WebInspector.CallingContextTree.prototype.totalDurationInTimeRange):
(WebInspector.CallingContextTree.prototype.numberOfSamplesInTimeRange): Deleted.
Accumulate the duration by checking each sample. Number of samples
is now meaningless.

(WebInspector.CallingContextTree.prototype.updateTreeWithStackTrace):
(WebInspector.CCTNode):
(WebInspector.CCTNode.prototype.addTimestampAndExpressionLocation):
Give CCTNodes a list of durations and leafDurations that parallels
the timestamps and leafTimestamps lists of individual samples.

(WebInspector.CCTNode.prototype.filteredTimestampsAndDuration):
(WebInspector.CCTNode.prototype.filteredLeafTimestampsAndDuration):
(WebInspector.CCTNode.prototype.filteredTimestamps): Deleted.
(WebInspector.CCTNode.prototype.numberOfLeafTimestamps): Deleted.
Whenever we get a list of timestamps, also compute the duration
of those timestamps at the same time.

  • UserInterface/Views/ProfileDataGridNode.js:

(WebInspector.ProfileDataGridNode):
(WebInspector.ProfileDataGridNode.prototype._updateChildrenForModifiers):
(WebInspector.ProfileDataGridNode.prototype._recalculateData):

  • UserInterface/Views/ProfileDataGridTree.js:

(WebInspector.ProfileDataGridTree):
(WebInspector.ProfileDataGridTree.prototype.get totalSampleTime):
(WebInspector.ProfileDataGridTree.prototype._updateCurrentFocusDetails):
(WebInspector.ProfileDataGridTree.prototype.get sampleInterval): Deleted.
(WebInspector.ProfileDataGridTree.prototype.get numberOfSamples): Deleted.
Instead of computing total time from (samples * sampleInterval),
accumulate it by adding up the duration of each individual sample.
Update the Profile Data Grid nodes to use the new calculations.

12:36 PM Changeset in webkit [198850] by Brent Fulgham
  • 13 edits in trunk/Source/WebCore

Avoid WebCore-prefixed paths when building WebCore
​https://bugs.webkit.org/show_bug.cgi?id=156027

Reviewed by David Kilzer.

Replace instances of '#include <WebCore/XXXYYY.h>"' with the normal
'#include "XXXYYY.h"' for files inside WebCore.

  • config.h:
  • inspector/InspectorTimelineAgent.cpp:
  • page/ViewportConfiguration.cpp:
  • platform/audio/ios/AudioDestinationIOS.cpp:
  • platform/cocoa/WebVideoFullscreenModel.h:
  • platform/cocoa/WebVideoFullscreenModelVideoElement.h:
  • platform/graphics/Font.h:
  • platform/graphics/ca/cocoa/LayerFlushSchedulerMac.cpp:
  • platform/graphics/cg/ColorCG.cpp:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.h:
  • platform/mock/MediaPlaybackTargetPickerMock.cpp:
12:10 PM Changeset in webkit [198849] by commit-queue@webkit.org
  • 5 edits
    1 copy
    1 add in trunk/Source/WebCore

Move the CG ImageDecoder class from ImageSourceCG.cpp to ImageDecoderCG.h and .cpp
​https://bugs.webkit.org/show_bug.cgi?id=155980

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-03-30
Reviewed by Simon Fraser.

After this step, ImageSource.cpp and ImageSourceCG.cpp look very similar
so they can be merged in one file. All the redundant code in these two files
can be removed.

  • PlatformAppleWin.cmake:
  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cg/ImageDecoderCG.cpp: Copied from Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp.

(WebCore::createImageSourceOptions):
(WebCore::imageSourceOptions):
(WebCore::orientationFromProperties):
(WebCore::sharedBufferGetBytesAtPosition):
(WebCore::sharedBufferRelease):
(WebCore::ImageDecoder::ImageDecoder):
(WebCore::ImageDecoder::subsamplingLevelForScale):
(WebCore::ImageDecoder::bytesDecodedToDetermineProperties):
(WebCore::ImageDecoder::filenameExtension):
(WebCore::ImageDecoder::isSizeAvailable):
(WebCore::ImageDecoder::size):
(WebCore::ImageDecoder::frameCount):
(WebCore::ImageDecoder::repetitionCount):
(WebCore::ImageDecoder::hotSpot):
(WebCore::ImageDecoder::frameSizeAtIndex):
(WebCore::ImageDecoder::frameIsCompleteAtIndex):
(WebCore::ImageDecoder::orientationAtIndex):
(WebCore::ImageDecoder::frameDurationAtIndex):
(WebCore::ImageDecoder::allowSubsamplingOfFrameAtIndex):
(WebCore::ImageDecoder::frameHasAlphaAtIndex):
(WebCore::ImageDecoder::frameBytesAtIndex):
(WebCore::ImageDecoder::createFrameImageAtIndex):
(WebCore::ImageDecoder::setData):

  • platform/graphics/cg/ImageDecoderCG.h: Added.

(WebCore::ImageDecoder::create):

  • platform/graphics/cg/ImageSourceCG.cpp:

(WebCore::ImageDecoder::create): Deleted.
(WebCore::createImageSourceOptions): Deleted.
(WebCore::imageSourceOptions): Deleted.
(WebCore::orientationFromProperties): Deleted.
(WebCore::sharedBufferGetBytesAtPosition): Deleted.
(WebCore::sharedBufferRelease): Deleted.
(WebCore::ImageDecoder::ImageDecoder): Deleted.
(WebCore::ImageDecoder::subsamplingLevelForScale): Deleted.
(WebCore::ImageDecoder::bytesDecodedToDetermineProperties): Deleted.
(WebCore::ImageDecoder::filenameExtension): Deleted.
(WebCore::ImageDecoder::isSizeAvailable): Deleted.
(WebCore::ImageDecoder::size): Deleted.
(WebCore::ImageDecoder::frameCount): Deleted.
(WebCore::ImageDecoder::repetitionCount): Deleted.
(WebCore::ImageDecoder::hotSpot): Deleted.
(WebCore::ImageDecoder::frameSizeAtIndex): Deleted.
(WebCore::ImageDecoder::frameIsCompleteAtIndex): Deleted.
(WebCore::ImageDecoder::orientationAtIndex): Deleted.
(WebCore::ImageDecoder::frameDurationAtIndex): Deleted.
(WebCore::ImageDecoder::allowSubsamplingOfFrameAtIndex): Deleted.
(WebCore::ImageDecoder::frameHasAlphaAtIndex): Deleted.
(WebCore::ImageDecoder::frameBytesAtIndex): Deleted.
(WebCore::ImageDecoder::createFrameImageAtIndex): Deleted.
(WebCore::ImageDecoder::setData): Deleted.

11:31 AM Changeset in webkit [198848] by peavo@outlook.com
  • 3 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Video size is not always set.
​https://bugs.webkit.org/show_bug.cgi?id=156020

Reviewed by Darin Adler.

Getting the video display control object from the media session might fail the first time.
In case it fails, we should try again when setting the video size.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::setSize):
(WebCore::MediaPlayerPrivateMediaFoundation::getVideoDisplay):
(WebCore::MediaPlayerPrivateMediaFoundation::onTopologySet):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
11:24 AM Changeset in webkit [198847] by commit-queue@webkit.org
  • 38 edits
    5 deletes in trunk

Unreviewed, rolling out r198828.
​https://bugs.webkit.org/show_bug.cgi?id=156030

Confirming PLT regression (Requested by anttik on #webkit).

Reverted changeset:

"Separate render tree updating from style resolve"
​https://bugs.webkit.org/show_bug.cgi?id=155298
​http://trac.webkit.org/changeset/198828

11:08 AM Changeset in webkit [198846] by Jon Davis
  • 1 edit in trunk/Websites/webkit.org/wp-content/themes/webkit/style.css

Tweak styles for transparent, isolated image presentation for blog posts.

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/style.css:

(.tile .background-image.loaded):
(.tile .featured-image):
(.tag-transparent:not(.featured-tile) .featured-image):
(.tag-transparent:not(.featured-tile) .background-image.loaded):

11:03 AM Changeset in webkit [198845] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, buildfix.

  • bytecode/BytecodeIntrinsicRegistry.h:
10:55 AM Changeset in webkit [198844] by keith_miller@apple.com
  • 42 edits
    5 deletes in trunk

Unreviewed, rollout r198808. The patch causes crashes on 32-bit and appears to be a JSBench regression.

10:34 AM Changeset in webkit [198843] by mmaxfield@apple.com
  • 6 edits
    10 adds in trunk

[OS X] [RTL Scrollbars] List boxes should obey RTL scrollbars
​https://bugs.webkit.org/show_bug.cgi?id=155991

Reviewed by Darin Adler.

Source/WebCore:

List boxes were created before RenderLayers, and therefore don't share
the scollbar logic with them. Instead, they manage their own Scrollbars.
The placement logic needs to be updated to take RTL scrollbars into
account.

Tests: fast/scrolling/rtl-scrollbars-listbox-scroll.html

fast/scrolling/rtl-scrollbars-listbox-select-left.html
fast/scrolling/rtl-scrollbars-listbox-select-right.html
fast/scrolling/rtl-scrollbars-listbox-simple.html
fast/scrolling/rtl-scrollbars-listbox.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::contentBoxRect):

  • rendering/RenderBox.h:

(WebCore::RenderBox::contentBoxRect): Deleted.

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::itemBoundingBoxRect):
(WebCore::RenderListBox::paintScrollbar):
(WebCore::RenderListBox::paintItemBackground):
(WebCore::RenderListBox::isPointInOverflowControl):
(WebCore::RenderListBox::listIndexAtOffset):
(WebCore::RenderListBox::nodeAtPoint):
(WebCore::RenderListBox::controlClipRect):
(WebCore::RenderListBox::invalidateScrollbarRect):
(WebCore::RenderListBox::convertFromScrollbarToContainingView):
(WebCore::RenderListBox::convertFromContainingViewToScrollbar):
(WebCore::RenderListBox::scrolledToTop):
(WebCore::RenderListBox::scrolledToBottom):

LayoutTests:

As with the previous patches, mark new tests as failing on all OSes that
don't support RTL scrollbars.

  • TestExpectations:
  • fast/scrolling/rtl-scrollbars-listbox-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-listbox-scroll-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-listbox-scroll.html: Added.
  • fast/scrolling/rtl-scrollbars-listbox-select-left-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-listbox-select-left.html: Added.
  • fast/scrolling/rtl-scrollbars-listbox-select-right-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-listbox-select-right.html: Added.
  • fast/scrolling/rtl-scrollbars-listbox-simple-expected-mismatch.html: Added.
  • fast/scrolling/rtl-scrollbars-listbox-simple.html: Added.
  • fast/scrolling/rtl-scrollbars-listbox.html: Added.
10:23 AM Changeset in webkit [198842] by dbates@webkit.org
  • 4 edits in trunk/Tools

run-webkit-tests must create parent directory of user's cache directory before running tests
​https://bugs.webkit.org/show_bug.cgi?id=156009
<rdar://problem/25442682>

Reviewed by Alexey Proskuryakov.

The script run-webkit-tests must create the parent directory of the user's cache directory
before running tests because a WebKit2 child process expects that this directory exists
when it starts.

The script run-webkit-tests influences the path chosen by a WebKit2 child process for the
user's temporary directory and user's cache directory via the environment variable
DIRHELPER_USER_DIR_SUFFIX. For the user's temporary directory, run-webkit-tests creates it
as part of setting up the test environment. But run-webkit-tests does not create the user's
cache directory. Therefore there is race between the time AppKit creates it and when the
launched WebContent and Network processes query for the path to the user's cache directory
such that the OS may return the empty string to the WebContent and Network processes if
queried for this directory before AppKit creates it.

  • Scripts/webkitpy/port/base.py:

(Port._path_to_user_cache_directory): Added. Base class implementation that returns the
empty string. We will override this method for the OS X port to return the path to the
user's cache directory with the specified suffix.
(Port.remove_cache_directory): Deleted.

  • Scripts/webkitpy/port/driver.py:

(Driver.init): Initialize self._driver_user_directory_suffix and self._driver_user_cache_directory
to the suffix to use for the user's temporary and cache directories and the path to the
user's cache directory, respectively.
(Driver._setup_environ_for_driver): Modified to set the environment variable DIRHELPER_USER_DIR_SUFFIX
to self._driver_user_directory_suffix.
(Driver._start): Compute the user directory suffix and the path to the user's cache
directory. Create the user's cache directory (if applicable).
(Driver.stop): Modified to remove directory self._driver_user_cache_directory (if applicable).

  • Scripts/webkitpy/port/mac.py:

(MacPort.user_cache_directory): Added. Overrides Port._path_to_user_cache_directory().
(MacPort.remove_cache_directory): Deleted.

9:50 AM Changeset in webkit [198841] by mmaxfield@apple.com
  • 18 edits in trunk/Source

Use references instead of pointers in scrollbar-related code
​https://bugs.webkit.org/show_bug.cgi?id=155998

Reviewed by Dean Jackson.

Source/WebCore:

Migrate pointers to references.

No new tests because there is no behavior change.

  • page/FrameView.cpp:

(WebCore::FrameView::invalidateScrollbarRect):
(WebCore::FrameView::setVisibleScrollerThumbRect):

  • page/FrameView.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::convertFromScrollbarToContainingView):
(WebCore::ScrollView::convertFromContainingViewToScrollbar):

  • platform/ScrollView.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::invalidateScrollbar):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::convertFromScrollbarToContainingView):
(WebCore::ScrollableArea::convertFromContainingViewToScrollbar):

  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::invalidateRect):
(WebCore::Scrollbar::convertToContainingView):
(WebCore::Scrollbar::convertFromContainingView):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::convertFromScrollbarToContainingView):
(WebCore::RenderLayer::convertFromContainingViewToScrollbar):
(WebCore::RenderLayer::scrollbarOffset):
(WebCore::RenderLayer::invalidateScrollbarRect):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::destroyRootLayer):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::invalidateScrollbarRect):
(WebCore::RenderListBox::convertFromScrollbarToContainingView):
(WebCore::RenderListBox::convertFromContainingViewToScrollbar):

  • rendering/RenderListBox.h:
  • platform/win/PopupMenuWin.cpp:

(WebCore::RenderListBox::invalidateScrollbarRect):

  • platform/win/PopupMenuWin.h:

Source/WebKit2:

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::convertFromScrollbarToContainingView):
(WebKit::PDFPlugin::convertFromContainingViewToScrollbar):
(WebKit::PDFPlugin::invalidateScrollbarRect):

9:37 AM Changeset in webkit [198840] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

9:34 AM Changeset in webkit [198839] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.26

New tag.

9:34 AM Changeset in webkit [198838] by Yusuke Suzuki
  • 11 edits
    31 adds in trunk

[JSC] Implement String.prototype.repeat in builtins JS
​https://bugs.webkit.org/show_bug.cgi?id=155974

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch converts C++ String.prototype.repeat implementation into JS builtins.
|this| in strict mode is correctly inferred as String[1]. This fact encourages us
to write PrimitiveTypes.prototype.XXX methods in builtin JS.

LayoutTests/js/string-repeat.html already covers the tests for this change.

Note: String.prototype.repeat functionality is similar to Harmony's
String.prototype.{padStart, padEnd}. It's nice to port them to builtin JS in
the other patch.

The existing C++ code has the fast path for singleCharacterString repeating.
Since this use is important (e.g. generating N length spaces: ' '.repeat(N)),
we keep this fast path as @repeatCharacter().

The performance results show that, while the performance of the single character fast path
is neutral, other string repeating has significant speed up.
There are two reasons.

  1. Not resolving string rope.

We added several tests postfixed "not-resolving". In that tests, we do not touch the content
of the generated string. As a result, the generated rope is not resolved.

  1. O(log N) intermediate JSRopeStrings.

In the existing C++ implementation, we use JSString::RopeBuilder. We iterate N times and append
the given string to the builder.
In this case, the intermediate rope strings generated in JSString::RopeBuilder is O(N).
In JS builtin implementation, we only iterate log N times. As a result, the number of the
intermediate rope strings becomes O(log N).

[1]: ​http://trac.webkit.org/changeset/195938

  • builtins/StringPrototype.js:

(repeatSlowPath):
(repeat):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncRepeatCharacter):
(JSC::StringPrototype::finishCreation): Deleted.
(JSC::stringProtoFuncRepeat): Deleted.

  • runtime/StringPrototype.h:
  • tests/stress/string-repeat-edge-cases.js: Added.

(shouldBe):
(let.object.toString):
(valueOf):
(shouldThrow):

LayoutTests:

Update the error messages.

  • js/regress/script-tests/string-repeat-not-resolving-fixed.js: Added.

(test):

  • js/regress/script-tests/string-repeat-not-resolving-no-inline.js: Added.

(test):

  • js/regress/script-tests/string-repeat-not-resolving.js: Added.

(test):

  • js/regress/script-tests/string-repeat-resolving-fixed.js: Added.

(test):

  • js/regress/script-tests/string-repeat-resolving-no-inline.js: Added.

(test):

  • js/regress/script-tests/string-repeat-resolving.js: Added.

(test):

  • js/regress/script-tests/string-repeat-single-not-resolving.js: Added.

(test):

  • js/regress/script-tests/string-repeat-single-resolving.js: Added.

(test):

  • js/regress/script-tests/string-repeat-small-not-resolving.js: Added.

(test):

  • js/regress/script-tests/string-repeat-small-resolving.js: Added.

(test):

  • js/regress/string-repeat-not-resolving-expected.txt: Added.
  • js/regress/string-repeat-not-resolving-fixed-expected.txt: Added.
  • js/regress/string-repeat-not-resolving-fixed.html: Added.
  • js/regress/string-repeat-not-resolving-noinline-expected.txt: Added.
  • js/regress/string-repeat-not-resolving-noinline.html: Added.
  • js/regress/string-repeat-not-resolving.html: Added.
  • js/regress/string-repeat-resolving-expected.txt: Added.
  • js/regress/string-repeat-resolving-fixed-expected.txt: Added.
  • js/regress/string-repeat-resolving-fixed.html: Added.
  • js/regress/string-repeat-resolving-no-inline-expected.txt: Added.
  • js/regress/string-repeat-resolving-no-inline.html: Added.
  • js/regress/string-repeat-resolving.html: Added.
  • js/regress/string-repeat-single-not-resolving-expected.txt: Added.
  • js/regress/string-repeat-single-not-resolving.html: Added.
  • js/regress/string-repeat-single-resolving-expected.txt: Added.
  • js/regress/string-repeat-single-resolving.html: Added.
  • js/regress/string-repeat-small-not-resolving-expected.txt: Added.
  • js/regress/string-repeat-small-not-resolving.html: Added.
  • js/regress/string-repeat-small-resolving-expected.txt: Added.
  • js/regress/string-repeat-small-resolving.html: Added.
  • js/script-tests/string-repeat.js:
  • js/string-repeat-expected.txt:
9:25 AM Changeset in webkit [198837] by Simon Fraser
  • 3 edits
    2 adds in trunk

Make animation events non-cancelable
​https://bugs.webkit.org/show_bug.cgi?id=78110

Reviewed by Dan Bates.

Source/WebCore:

Make the animation events non-cancelable.

Test: animations/animation-events-not-cancelable.html

  • dom/AnimationEvent.cpp:

(WebCore::AnimationEvent::AnimationEvent):

LayoutTests:

  • animations/animation-events-not-cancelable-expected.txt: Added.
  • animations/animation-events-not-cancelable.html: Added.
7:37 AM Changeset in webkit [198836] by Jon Davis
  • 1 edit in trunk/Websites/webkit.org/wp-content/themes/webkit/single.php

Update the Twitter URLs for Twitter handles in blog post bylines.

  • wp-content/themes/webkit/single.php:
6:58 AM Changeset in webkit [198835] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Mark svg zoom and pageoverlay tests to failure

Unreviewed EFL gardening.

  • platform/efl/TestExpectations: Assign new bugs to the failures.
6:32 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
4:45 AM Changeset in webkit [198834] by Manuel Rego Casasnovas
  • 17 edits in trunk

[css-grid] Refactor positioned children code
​https://bugs.webkit.org/show_bug.cgi?id=155972

Reviewed by Sergio Villar Senin.

Source/WebCore:

This is a refactoring of RenderGrid::offsetAndBreadthForPositionedChild()
in order to calculate offset and breadth in a more clean way.
Hopefully making the code easier to follow.

Thanks to the refactoring, now positioned children in RTL
are working fine if they use the static inline position
(when "left" and "right" properties are both "auto").

The other case (not having a static inline position)
will be fixed in a separated patch.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):

LayoutTests:

Added RTL cases for most of the positioned tests,
which are now passing with this patch.

Pending to add RTL tests when "left" and "right" are not "auto"
(the item doesn't use the static inline position),
but that will be done in the other patch.

  • fast/css-grid-layout/absolute-positioning-grid-container-containing-block-expected.txt:
  • fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html:
  • fast/css-grid-layout/absolute-positioning-grid-container-parent-expected.txt:
  • fast/css-grid-layout/absolute-positioning-grid-container-parent.html:
  • fast/css-grid-layout/grid-positioned-items-background-expected.html:
  • fast/css-grid-layout/grid-positioned-items-background.html:

Fix test setting transparent background as it couldn't fail before.
Also using a different width, to have different values when we create the RTL version.

  • fast/css-grid-layout/grid-positioned-items-implicit-grid-expected.txt:
  • fast/css-grid-layout/grid-positioned-items-implicit-grid-line-expected.txt:
  • fast/css-grid-layout/grid-positioned-items-implicit-grid-line.html:
  • fast/css-grid-layout/grid-positioned-items-implicit-grid.html:
  • fast/css-grid-layout/grid-positioned-items-unknown-named-grid-line-expected.txt:
  • fast/css-grid-layout/grid-positioned-items-unknown-named-grid-line.html:
  • fast/css-grid-layout/grid-sizing-positioned-items-expected.txt:
  • fast/css-grid-layout/grid-sizing-positioned-items.html:
1:18 AM Changeset in webkit [198833] by youenn.fablet@crf.canon.fr
  • 72 edits in trunk/Source/WebCore

Binding generator should allow passing DOM objects parameters as references
​https://bugs.webkit.org/show_bug.cgi?id=155953

Reviewed by Alex Christensen.

Updating binding generator to pass DOM object parameters as references.
Introducing UsePointersEvenForNonNullableObjectArguments to disable that change.

Updating FetchRequest.idl and DOMWindowFetch.idl to pass parameters as references.

Updated other IDL interfaces to keep passing DOM object parameters as pointers.
This should not change the behavior for these interfaces.
UsePointersEvenForNonNullableObjectArguments should be progressively removed on those interfaces.

Binding generator tests covered by rebased binding tests.

  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/fetch/DOMWindowFetch.cpp:

(WebCore::DOMWindowFetch::fetch):

  • Modules/fetch/DOMWindowFetch.h:
  • Modules/fetch/DOMWindowFetch.idl:
  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::create):

  • Modules/fetch/FetchRequest.h:
  • Modules/fetch/WorkerGlobalScopeFetch.cpp:

(WebCore::WorkerGlobalScopeFetch::fetch):

  • Modules/fetch/WorkerGlobalScopeFetch.h:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediastream/MediaStream.idl:
  • Modules/speech/SpeechSynthesis.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/OscillatorNode.idl:
  • Modules/websockets/WebSocket.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(IsParameterPassedByReference):
(GenerateConstructorDefinition):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValue):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors3):

  • css/FontFaceSet.idl:
  • css/WebKitCSSMatrix.idl:
  • dom/CompositionEvent.idl:
  • dom/DataTransfer.idl:
  • dom/Document.idl:
  • dom/Element.idl:
  • dom/EventTarget.idl:
  • dom/KeyboardEvent.idl:
  • dom/MouseEvent.idl:
  • dom/MutationEvent.idl:
  • dom/MutationObserver.idl:
  • dom/NamedNodeMap.idl:
  • dom/Node.idl:
  • dom/Range.idl:
  • dom/TextEvent.idl:
  • dom/TouchEvent.idl:
  • dom/UIEvent.idl:
  • dom/WebKitNamedFlow.idl:
  • dom/WheelEvent.idl:
  • fileapi/FileReader.idl:
  • fileapi/FileReaderSync.idl:
  • html/DOMURL.idl:
  • html/HTMLElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.idl:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/DOMPath.idl:
  • html/canvas/OESVertexArrayObject.idl:
  • html/canvas/WebGLDebugShaders.idl:
  • html/canvas/WebGLRenderingContext.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
  • html/track/TextTrack.idl:
  • inspector/InspectorFrontendHost.idl:
  • page/DOMSelection.idl:
  • storage/StorageEvent.idl:
  • svg/SVGGraphicsElement.idl:
  • svg/SVGLengthList.idl:
  • svg/SVGNumberList.idl:
  • svg/SVGPathSegList.idl:
  • svg/SVGPointList.idl:
  • svg/SVGSVGElement.idl:
  • svg/SVGTransformList.idl:
  • testing/Internals.idl:
  • xml/XMLSerializer.idl:
  • xml/XPathEvaluator.idl:
  • xml/XPathExpression.idl:
  • xml/XSLTProcessor.idl:
12:17 AM Changeset in webkit [198832] by benjamin@webkit.org
  • 16 edits
    1 copy
    1 add
    4 deletes in trunk/Source/JavaScriptCore

[JSC] Update udis86
​https://bugs.webkit.org/show_bug.cgi?id=156005

Reviewed by Geoffrey Garen.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • disassembler/udis86/differences.txt:
  • disassembler/udis86/itab.py: Removed.
  • disassembler/udis86/optable.xml:
  • disassembler/udis86/ud_itab.py: Added.
  • disassembler/udis86/ud_opcode.py:
  • disassembler/udis86/ud_optable.py: Removed.
  • disassembler/udis86/udis86.c:
  • disassembler/udis86/udis86_decode.c:
  • disassembler/udis86/udis86_decode.h:
  • disassembler/udis86/udis86_extern.h:
  • disassembler/udis86/udis86_input.c: Removed.
  • disassembler/udis86/udis86_input.h: Removed.
  • disassembler/udis86/udis86_syn-att.c:
  • disassembler/udis86/udis86_syn.h:
  • disassembler/udis86/udis86_types.h:
  • disassembler/udis86/udis86_udint.h:
12:14 AM Changeset in webkit [198831] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Get rid of operationInitGlobalConst(), it is useless
​https://bugs.webkit.org/show_bug.cgi?id=156010

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-03-30
Reviewed by Geoffrey Garen.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:

Mar 29, 2016:

11:58 PM Changeset in webkit [198830] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

[EFL] Fix build break since r198800. Unreviewed.
​https://bugs.webkit.org/show_bug.cgi?id=156011

Currently libWebCoreDerivedSources.a cannot see the symbol located in WebCore Source files.
This patch let the library can see the symbols of WebCore Sources.

  • PlatformEfl.cmake:
11:42 PM Changeset in webkit [198829] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

bmalloc: support physical page sizes that don't match the virtual page size (take 2)
​https://bugs.webkit.org/show_bug.cgi?id=156003

Reviewed by Andreas Kling.

This is a memory savings on iOS devices where the virtual page size
is 16kB but the physical page size is 4kB.

Take 1 was a memory regression on 16kB virtual / 16kB physical systems
because it used a 4kB page size within a 16kB page size, allowing up to
4 different object types to mix within a physical page. Because objects
of the same type tend to deallocate at the same time, mixing objects of
different types made pages less likely to become completely empty.

(Take 1 also had a bug where it used a platform #ifdef that didn't exist.
Oops.)

Take 2 allocates units of SmallPages equal to the physical page size.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):
(bmalloc::Heap::initializeLineMetadata):
(bmalloc::Heap::allocateSmallBumpRanges):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::tryAllocateXLarge):
(bmalloc::Heap::shrinkXLarge):

  • bmalloc/Heap.h: Use the physical page size for our VM operations because

we're only concerned with returning physical pages to the OS.

  • bmalloc/VMAllocate.h:

(bmalloc::vmPageSize):
(bmalloc::vmPageShift):
(bmalloc::vmSize):
(bmalloc::vmValidate):
(bmalloc::vmPageSizePhysical):
(bmalloc::vmValidatePhysical):
(bmalloc::tryVMAllocate):
(bmalloc::vmDeallocatePhysicalPages):
(bmalloc::vmAllocatePhysicalPages):
(bmalloc::vmDeallocatePhysicalPagesSloppy):
(bmalloc::vmAllocatePhysicalPagesSloppy): Use the physical page size.

11:00 PM Changeset in webkit [198828] by Antti Koivisto
  • 38 edits
    5 adds in trunk

Separate render tree updating from style resolve
​https://bugs.webkit.org/show_bug.cgi?id=155298

Reviewed by Andreas Kling.

Source/WebCore:

This patch splits computing document style and applying the results into two distinct steps:

Style::TreeResolver::resolve()

|
| Style::Update
V

RenderTreeUpdater::commit()

Style::TreeResolver::resolve() returns a Style::Update object that contains all the changes to be made
for the whole composed tree. RenderTreeUpdater then applies the changes updating, building or tearing
down portions of the render tree as needed.

Style::Update consists of a map that contains new style for each newly resolved element along with some
metadata. A separate map contains text nodes that require reconstruction. It also tracks change roots so
RenderTreeUpdater needs to traverse the changed subtrees only.

The patch eliminates the recursive render tree build code path replacing it with iterative functions.

This will enable future optimizations. For example we won't need to commit to immediate rendering
changes simply because some script or internal function requires up-to-date style.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::styleForElement):

  • css/StyleResolver.h:

(WebCore::StyleResolver::setOverrideDocumentElementStyle):
(WebCore::StyleResolver::State::State):

Root element style is needed for resolving other elements. Add a way to provide it without looking
into active document style.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

Resolve the document style and commit it immediately (for now).

(WebCore::Document::styleForElementIgnoringPendingStylesheets):

  • dom/Document.h:

(WebCore::Document::setNeedsNotifyRemoveAllPendingStylesheet):
(WebCore::Document::inStyleRecalc):
(WebCore::Document::inRenderTreeUpdate):

  • dom/Element.cpp:

(WebCore::Element::setChildIndex):

Setting the unique bit is now done by style relations update code.

  • dom/Node.cpp:

(WebCore::Node::setNeedsStyleRecalc):

Prevent spurious style invalidation during render tree updating.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):

Capturing body element color for color:-webkit-text is now done by TreeResolver.

  • rendering/RenderElement.h:

(WebCore::RenderElement::setAnimatableStyle): Deleted.

No longer used.

  • style/RenderTreePosition.cpp:

(WebCore::RenderTreePosition::nextSiblingRenderer):

Skip over non-rendered slot elements.

  • style/RenderTreeUpdater.cpp: Added.

(WebCore::RenderTreeUpdater::Parent::Parent):
(WebCore::RenderTreeUpdater::RenderTreeUpdater):
(WebCore::hasDisplayContents):
(WebCore::findRenderingRoot):
(WebCore::RenderTreeUpdater::commit):

Call updateRenderTree for each change root.

(WebCore::shouldCreateRenderer):
(WebCore::RenderTreeUpdater::updateRenderTree):

Iteratively traverse the composed tree starting for a change root.
Apply the changes calling updateElementRenderer and updateTextRenderer as needed.
Enter subtrees that haves changes to apply.

(WebCore::RenderTreeUpdater::renderTreePosition):

We may not create renderers for all elements (<slot> or more generally display:contents) that
have rendered descendants. Search the parent stack to find the valid position.

(WebCore::RenderTreeUpdater::pushParent):
(WebCore::RenderTreeUpdater::popParent):
(WebCore::RenderTreeUpdater::popParentsToDepth):

Maintain parent stack.

(WebCore::pseudoStyleCacheIsInvalid):
(WebCore::RenderTreeUpdater::updateElementRenderer):

Create, delete or update the renderer.

(WebCore::moveToFlowThreadIfNeeded):
(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::textRendererIsNeeded):
(WebCore::createTextRenderer):
(WebCore::RenderTreeUpdater::updateTextRenderer):
(WebCore::RenderTreeUpdater::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):

This is moved from TreeResolver.

(WebCore::needsPseudoElement):
(WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement):

Pseudo elements are handled entirely during render tree construction. Compute their style and
create or delete them as needed.

  • style/RenderTreeUpdater.h: Added.

(WebCore::RenderTreeUpdater::parent):

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):
(WebCore::Style::commitRelations):

Commit to Style::Update instead of the document if needed.

(WebCore::Style::commitRelationsToDocument): Deleted.

  • style/StyleRelations.h:
  • style/StyleSharingResolver.cpp:

(WebCore::Style::elementHasDirectionAuto):
(WebCore::Style::SharingResolver::resolve):

Fetch the shareable style from Style::Update instead of the active document style.

(WebCore::Style::SharingResolver::findSibling):
(WebCore::Style::SharingResolver::canShareStyleWithElement):

  • style/StyleSharingResolver.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::Parent::Parent):

No need for render tree position anymore.

(WebCore::Style::TreeResolver::popScope):
(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
(WebCore::Style::createTextRendererIfNeeded):
(WebCore::Style::updateTextRendererAfterContentChange):
(WebCore::Style::resetStyleForNonRenderedDescendants):
(WebCore::Style::detachChildren):
(WebCore::Style::detachSlotAssignees):
(WebCore::Style::detachRenderTree):
(WebCore::Style::TreeResolver::resolveElement):

Just resolve the style and return it, no more applying or entering render tree construction code paths.

(WebCore::Style::resolveTextNode):
(WebCore::Style::elementImplicitVisibility):
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::popParent):
(WebCore::Style::TreeResolver::popParentsToDepth):
(WebCore::Style::shouldResolvePseudoElement):
(WebCore::Style::TreeResolver::resolveComposedTree):

Add style changes to Style::Update.

(WebCore::Style::TreeResolver::resolve):

Return Style::Update object if non-empty.

(WebCore::Style::postResolutionCallbackQueue):
(WebCore::Style::shouldCreateRenderer): Deleted.
(WebCore::Style::moveToFlowThreadIfNeeded): Deleted.
(WebCore::Style::TreeResolver::createRenderer): Deleted.
(WebCore::Style::TreeResolver::createRenderTreeForChildren): Deleted.
(WebCore::Style::TreeResolver::createRenderTreeForShadowRoot): Deleted.
(WebCore::Style::beforeOrAfterPseudoElement): Deleted.
(WebCore::Style::setBeforeOrAfterPseudoElement): Deleted.
(WebCore::Style::clearBeforeOrAfterPseudoElement): Deleted.
(WebCore::Style::needsPseudoElement): Deleted.
(WebCore::Style::TreeResolver::createRenderTreeForBeforeOrAfterPseudoElement): Deleted.
(WebCore::Style::TreeResolver::createRenderTreeForSlotAssignees): Deleted.
(WebCore::Style::TreeResolver::createRenderTreeRecursively): Deleted.
(WebCore::Style::pseudoStyleCacheIsInvalid): Deleted.
(WebCore::Style::TreeResolver::resolveBeforeOrAfterPseudoElement): Deleted.

Remove the recursive render tree building code path.

  • style/StyleTreeResolver.h:

(WebCore::Style::TreeResolver::scope):

  • style/StyleUpdate.cpp: Added.

(WebCore::Style::Update::Update):
(WebCore::Style::Update::elementUpdate):
(WebCore::Style::Update::textUpdate):
(WebCore::Style::Update::elementStyle):
(WebCore::Style::Update::addElement):
(WebCore::Style::Update::addText):
(WebCore::Style::Update::addPossibleRoot):

  • style/StyleUpdate.h: Added.

(WebCore::Style::Update::roots):
(WebCore::Style::Update::document):

  • svg/SVGElement.h:

(WebCore::SVGElement::updateRelativeLengthsInformation):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::svgAttributeChanged):
(WebCore::SVGUseElement::willRecalcStyle):
(WebCore::SVGUseElement::willAttachRenderers): Deleted.

Switch willAttachRenderers to willRecalcStyle as the former is now called too late.

  • svg/SVGUseElement.h:

LayoutTests:

Skip mathml/presentation/menclose-notation-attribute-change-value.html. It will be fixed by upcoming MathML refactoring.

  • css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-resize-expected.txt:

This is a progression.

  • editing/mac/spelling/autocorrection-contraction-expected.txt:
  • editing/mac/spelling/autocorrection-removing-underline-after-paste-expected.txt:
  • editing/mac/spelling/autocorrection-removing-underline-expected.txt:
  • editing/mac/spelling/autocorrection-simple-expected.txt:
  • editing/style/remove-underline-from-stylesheet-expected.txt:
  • editing/style/typing-style-003-expected.txt:

Non-rendered whitespace related changes.

  • platform/ios-simulator/TestExpectations:

Skip fast/regions/position-writing-modes-in-variable-width-regions.html on iOS. Similar tests are mostly already skipped.

  • platform/ios-simulator/editing/style/typing-style-003-expected.txt: Added.
  • platform/mac-wk2/editing/mac/spelling/autocorrection-contraction-expected.txt:
  • platform/mac/editing/inserting/editable-html-element-expected.txt:
  • platform/mac/editing/inserting/editing-empty-divs-expected.txt:
  • platform/mac/editing/inserting/insert-at-end-02-expected.txt:
  • platform/mac/editing/pasteboard/4989774-expected.txt:
  • platform/mac/editing/selection/4983858-expected.txt:

Non-rendered whitespace related changes.

10:13 PM Changeset in webkit [198827] by commit-queue@webkit.org
  • 8 edits in trunk

[WTF] Removing a smart pointer from HashTable issues two stores to the same location
​https://bugs.webkit.org/show_bug.cgi?id=155676

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-03-29
Reviewed by Darin Adler.

Source/WTF:

While working on the hot loop of r198376, I noticed something
weird...
Every time we removed a smart pointer from the hash table,
the code generated was something like:

Load([bucket]) -> Tmp
Store(0 -> [bucket])
JumpIfZero(Tmp, ->End)
Call fastFree()
Store(-1 -> [bucket])
-> End:

The useless store before the branch is annoying, especially on ARM.

Here is what happens:

1) The destructor of the smart pointer swaps its internal value with nullptr.
2) Since the smart pointer is not a local in-register value, that nullptr

is stored in memory because it could be observable from fastFree().

3) The destructor destroy the value if not zero (or deref for RefPtr).

The "if-not-zero" may or may not be eliminated depending on what
is between getting the iterator and the call to remove().

4) fastFree() is called.
5) The deleted value is set in the bucket.

This patch adds custom deletion for those cases to avoid the useless
store. The useless null check is still eliminated when we are lucky.

I went this path instead of changing the destructor of RefPtr for two reasons:
-I need this to work in unique_ptr for JSC.
-Nulling the memory may have security advantages in the cases where we do not immediately

write over that memory again.

This patch removes 13kb out of x86_64 WebCore.

  • wtf/HashTable.h:

(WTF::HashTable::deleteBucket):
(WTF::KeyTraits>::removeIf):

  • wtf/HashTraits.h:

(WTF::HashTraits<RefPtr<P>>::customDeleteBucket):
(WTF::hashTraitsDeleteBucket):
(WTF::KeyValuePairHashTraits::customDeleteBucket):

  • wtf/text/AtomicStringHash.h:

(WTF::HashTraits<WTF::AtomicString>::isEmptyValue):
(WTF::HashTraits<WTF::AtomicString>::customDeleteBucket):

  • wtf/text/StringHash.h:

(WTF::HashTraits<String>::customDeleteBucket):

Tools:

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:
  • TestWebKitAPI/Tests/WTF/HashSet.cpp:
9:16 PM Changeset in webkit [198826] by rniwa@webkit.org
  • 8 edits in trunk/Websites/perf.webkit.org

Make dependency injection in unit tests more explicit
​https://bugs.webkit.org/show_bug.cgi?id=156006

Reviewed by Joseph Pecoraro.

Make the dependency injection of model objects in unit tests explicit so that server tests that create
"real" model objects won't create these mock objects. Now each test that uses mock model objects would call
MockModels.inject() to inject before / beforeEach and access each object using a property on MockModels
instead of them being implicitly defined on the global object.

Similarly, MockRemoteAPI now only replaces global.RemoteAPI during each test so that server tests can use
real RemoteAPI to access the test Apache server.

  • unit-tests/analysis-task-tests.js:
  • unit-tests/buildbot-syncer-tests.js:

(createSampleBuildRequest):

  • unit-tests/measurement-adaptor-tests.js:
  • unit-tests/measurement-set-tests.js:
  • unit-tests/resources/mock-remote-api.js:

(MockRemoteAPI.getJSONWithStatus):
(MockRemoteAPI.inject): Added. Override RemoteAPI on the global object during each test.

  • unit-tests/resources/mock-v3-models.js:

(MockModels.inject): Added. Create mock model objects before each test, and clear all static maps of
various v3 model classes (to remove all singleton objects for those model classes).

  • unit-tests/test-groups-tests.js:
8:34 PM Changeset in webkit [198825] by Jon Davis
  • 3 edits in trunk/Websites/webkit.org/wp-content

Unreviewed fixes for search errors on WebKit Nightly Archives page; fixed date display on WebKit Nightly page
​https://bugs.webkit.org/show_bug.cgi?id=155989

  • wp-content/plugins/sync-nightly-builds.php:
  • wp-content/themes/webkit/nightly.php:
  • wp-content/themes/webkit/scripts/searchbuilds.js:

(initsearch.displayError):

8:16 PM Changeset in webkit [198824] by rniwa@webkit.org
  • 8 edits in trunk/Websites/perf.webkit.org

BuildbotSyncer should be able to fetch JSON from buildbot
​https://bugs.webkit.org/show_bug.cgi?id=155921

Reviewed by Joseph Pecoraro.

Added BuildbotSyncer.pullBuildbot which fetches pending, in-progress, and finished builds from buildbot
with lots of unit tests as this has historically been a source of subtle bugs in the old script.

New implementation fixes a subtle bug in the old pythons script which overlooked the possibility that
the state of some builds may change between each HTTP request. In the old script, we fetched the list
of the pending builds, and requested -1, -2, etc... builds for N times. But between each request,
a pending build may start running or an in-progress build finish and shift the offset by one. The new
script avoids this problem by first requesting all pending builds, then all in-progress and finished
builds in a single HTTP request. The results are then merged so that entries for in-progress and
finished builds would override the entries for pending builds if they overlap.

Also renamed RemoteAPI.fetchJSON to RemoteAPI.getJSON to match v3 UI's RemoteAPI. This change makes
the class interchangeable between frontend (public/v3/remote.js) and backend (tools/js/remote.js).

  • server-tests/api-build-requests-tests.js:
  • server-tests/api-manifest.js:
  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntry): Removed the unused argument "type". Store the syncer as an instance variable as
we'd need to query for the buildbot URL. Also fixed a bug that _isInProgress was true for finished
builds as 'currentStep' is always defined but null in those builds.
(BuildbotBuildEntry.prototype.buildNumber): Added.
(BuildbotBuildEntry.prototype.isPending): Added.
(BuildbotBuildEntry.prototype.hasFinished): Added.
(BuildbotSyncer.prototype.pullBuildbot): Added. Fetches pending builds first and then finished builds.
(BuildbotSyncer.prototype._pullRecentBuilds): Added. Fetches in-progress and finished builds.
(BuildbotSyncer.prototype.urlForPendingBuildsJSON): Added.
(BuildbotSyncer.prototype.urlForBuildJSON): Added.
(BuildbotSyncer.prototype.url): Added.
(BuildbotSyncer.prototype.urlForBuildNumber): Added.

  • tools/js/remote.js:

(RemoteAPI.prototype.getJSON): Renamed from fetchJSON.
(RemoteAPI.prototype.getJSONWithStatus): Renamed from fetchJSONWithStatus.

  • tools/js/v3-models.js: Load tools/js/remote.js instead of public/v3/remote.js inside node.
  • unit-tests/buildbot-syncer-tests.js: Added a lot of unit tests for BuildbotSyncer.pullBuildbot

(samplePendingBuild):
(sampleInProgressBuild): Added.
(sampleFinishedBuild): Added.

  • unit-tests/resources/mock-remote-api.js:

(global.RemoteAPI.getJSON): Use the same mock as getJSONWithStatus.

7:50 PM Changeset in webkit [198823] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION: Yosemite-only: com.apple.WebKit.Plugin.32.Development crashed in PluginProcessShim.dylib: WebKit::shimMachVMMap + 26
<​http://webkit.org/b/156000>
<rdar://problem/25272133>

Reviewed by Joseph Pecoraro.

  • PluginProcess/mac/PluginProcessShim.mm:

(WebKit::shimMachVMMap): Add SUPPRESS_ASAN attribute on
Yosemite.

7:36 PM Changeset in webkit [198822] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fixed a property access error by removing the lamda function for updates

7:22 PM Changeset in webkit [198821] by ggaren@apple.com
  • 8 edits in trunk/Source/bmalloc

bmalloc: page size should be configurable at runtime
​https://bugs.webkit.org/show_bug.cgi?id=155993

Reviewed by Andreas Kling.

This is a memory win on 32bit iOS devices, since their page sizes are
4kB and not 16kB.

It's also a step toward supporting 64bit iOS devices that have a
16kB/4kB virtual/physical page size split.

  • bmalloc/Chunk.h: Align to largeAlignment since 2 * smallMax isn't

required by the boundary tag allocator.

(bmalloc::Chunk::page): Account for the slide when accessing a page.
Each SmallPage hashes 4kB of memory. When we want to allocate a region
of memory larger than 4kB, we store our metadata in the first SmallPage
in the region and we assign a slide to the remaining SmallPages, so
they forward to that first SmallPage when accessed.

NOTE: We could use a less flexible technique that just hashed by
vmPageSize() instead of 4kB at runtime, with no slide, but I think we'll
be able to use this slide technique to make even more page sizes
dynamically at runtime, which should save some memory and simplify
the allocator.

(bmalloc::SmallPage::begin): It's invalid to access a SmallPage with
a slide, since such SmallPages do not contain meaningful data.

(bmalloc::SmallPage::end): Account for smallPageCount when computing
the size of a page.

(bmalloc::Chunk::pageBegin): Deleted.
(bmalloc::Chunk::pageEnd): Deleted.
(bmalloc::Object::pageBegin): Deleted.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap): Cache vmPageSize because computing it might require
a syscall.

(bmalloc::Heap::initializeLineMetadata): Line metadata is a vector instead
of a 2D array because we don't know how much metadata we'll need until
we know the page size.

(bmalloc::Heap::scavengeSmallPage): Be sure to revert the slide when
deallocating a page. Otherwise, the next attempt to allocate the page
will slide when initializing it, sliding to nowhere.

(bmalloc::Heap::allocateSmallBumpRanges): Account for vector change to
line metadata.

(bmalloc::Heap::allocateSmallPage): Initialize slide and smallPageCount
since they aren't constant anymore.

(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::tryAllocateXLarge):
(bmalloc::Heap::shrinkXLarge): Adopt dynamic page size.

  • bmalloc/Heap.h:
  • bmalloc/Sizes.h: smallPageSize is no longer equal to the VM page

size -- it's just the smallest VM page size we're interested in supporting.

  • bmalloc/SmallPage.h:

(bmalloc::SmallPage::slide):
(bmalloc::SmallPage::setSlide):
(bmalloc::SmallPage::smallPageCount):
(bmalloc::SmallPage::setSmallPageCount):
(bmalloc::SmallPage::ref):
(bmalloc::SmallPage::deref): Support slide and small page count as
dynamic values. This doesn't increase metadata size since sizeof(SmallPage)
rounds up to alignment anyway.

  • bmalloc/VMAllocate.h:

(bmalloc::vmPageSize):
(bmalloc::vmPageShift):
(bmalloc::vmSize):
(bmalloc::vmValidate):
(bmalloc::tryVMAllocate):
(bmalloc::vmDeallocatePhysicalPagesSloppy):
(bmalloc::vmAllocatePhysicalPagesSloppy): Treat page size as a variable.

  • bmalloc/Vector.h:

(bmalloc::Vector::initialCapacity):
(bmalloc::Vector<T>::insert):
(bmalloc::Vector<T>::grow):
(bmalloc::Vector<T>::shrink):
(bmalloc::Vector<T>::shrinkCapacity):
(bmalloc::Vector<T>::growCapacity): Treat page size as a variable.

7:18 PM Changeset in webkit [198820] by Jon Davis
  • 4 edits in trunk/Websites/webkit.org

Fixed a context error for Nightly Build sync plugin, tightens layout styles for abovetitle

7:02 PM Changeset in webkit [198819] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: VoiceOver not announcing the right header information for table on iOS
​https://bugs.webkit.org/show_bug.cgi?id=155907

Reviewed by Chris Fleizach.

Source/WebCore:

Make sure we consider the case where header elements size does not equal to
row size.

Test: accessibility/ios-simulator/table-row-column-headers.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):

LayoutTests:

  • accessibility/ios-simulator/table-row-column-headers-expected.txt: Added.
  • accessibility/ios-simulator/table-row-column-headers.html: Added.
6:31 PM Changeset in webkit [198818] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION (r198782): CGImageSourceUpdateData() is called twice with the same data every time ImageSource::setData() is called
​https://bugs.webkit.org/show_bug.cgi?id=155997

Patch by Said Abou-Hallawa <​sabouhallawa@apple.com> on 2016-03-29
Reviewed by Simon Fraser.

Remove a call to CGImageSourceUpdateData() which was mistakenly left in
ImageDecoder::setData() after ImageSource refactoring.

  • platform/graphics/cg/ImageSourceCG.cpp:

(WebCore::ImageDecoder::setData):

6:24 PM Changeset in webkit [198817] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebCore

REGRESSION(r198784) Shouldn't add platform-dependent code to ScrollableArea.h
​https://bugs.webkit.org/show_bug.cgi?id=155999

Rolling out the patch.

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::horizontalScrollbar):
(WebCore::ScrollableArea::verticalScrollbar):
(WebCore::ScrollableArea::tiledBacking):
(WebCore::ScrollableArea::layerForHorizontalScrollbar):
(WebCore::ScrollableArea::layerForVerticalScrollbar):
(WebCore::ScrollableArea::layerForScrolling):
(WebCore::ScrollableArea::layerForScrollCorner):
(WebCore::ScrollableArea::layerForOverhangAreas):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::updateScrollerStyle): Deleted.

  • platform/mac/ScrollableAreaMac.mm:

(WebCore::ScrollableArea::setScrollbarLayoutDirection): Deleted.

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::registerScrollbar): Deleted.

  • platform/spi/mac/NSScrollerImpSPI.h:
5:40 PM Changeset in webkit [198816] by Jon Davis
  • 5 edits
    6 adds in trunk/Websites/webkit.org

Add WebKit Nightly Archives, WebKit Nightly Start, and Downloads pages
​https://bugs.webkit.org/show_bug.cgi?id=155989

Reviewed by Timothy Hatcher.

  • wp-content/plugins/sync-nightly-builds.php: Added.
  • wp-content/themes/webkit/downloads.php: Added.
  • wp-content/themes/webkit/functions.php:
  • wp-content/themes/webkit/images/download.svg:
  • wp-content/themes/webkit/images/spinner.svg: Added.
  • wp-content/themes/webkit/nightly-archives.php: Added.
  • wp-content/themes/webkit/nightly-start.php: Added.
  • wp-content/themes/webkit/nightly.php:
  • wp-content/themes/webkit/scripts/searchbuilds.js: Added.

(initsearch.xhrPromise.):
(initsearch):
(initsearch.displayResults.addEntry):
(initsearch.displayResults):
(initsearch.displayError):
(initsearch.clearErrors):

  • wp-content/themes/webkit/style.css:

(input[type=text]):
(input[type=submit]):
(article .byline):
(article .abovetitle):

5:31 PM Changeset in webkit [198815] by dburkart@apple.com
  • 5 edits
    10 adds in trunk

Web Inspector: JS PrettyPrinting in do/while loops, "while" should be on the same line as "}" if there was a closing brace
​https://bugs.webkit.org/show_bug.cgi?id=117616
<rdar://problem/15796884>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

This patch fixes the formatting of do / while loops in the WebInspector CodeFormatter.

Before:

do {

"x"

}
while (0);

After:

do {

"x"

} while (0);

  • UserInterface/Views/CodeMirrorFormatters.js:

(shouldHaveSpaceBeforeToken):
If we encounter a while token and the last token was a closing brace, we *should* add a space if that closing
brace was closing a do block.

(removeLastNewline):
If we encounter a while token and the last token was a closing brace, we *should not* add a newline if that closing
brace closes a do block.

(modifyStateForTokenPre):
We should keep track of the last token that we encountered before entering into a block. We do this by setting
a lastContentBeforeBlock property on openBraceStartMarker / state objects.

In addition, this fixes a bug where we do not pop a state object off of openBraceStartMarkers if our indentCount
is 0. Without doing this, we cannot reliably determine whether or not our while token needs to be inline or not.

LayoutTests:

  • inspector/codemirror/prettyprinting-javascript-expected.txt:
  • inspector/codemirror/prettyprinting-javascript.html:
  • inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-loop-expected.js: Added.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-loop.js: Added.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-within-if-expected.js: Added.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-within-if.js: Added.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/if-followed-by-while-expected.js: Added.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/if-followed-by-while.js: Added.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/if-while-within-do-while-expected.js: Added.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/if-while-within-do-while.js: Added.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/while-within-do-while-expected.js: Added.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/while-within-do-while.js: Added.
5:26 PM Changeset in webkit [198814] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

5:24 PM Changeset in webkit [198813] by sbarati@apple.com
  • 30 edits in trunk

Fix typos in our error messages and remove some trailing periods
​https://bugs.webkit.org/show_bug.cgi?id=155985

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • runtime/ArrayConstructor.h:

(JSC::isArray):

  • runtime/ProxyConstructor.cpp:

(JSC::makeRevocableProxy):
(JSC::proxyRevocableConstructorThrowError):
(JSC::ProxyConstructor::finishCreation):
(JSC::constructProxyObject):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::finishCreation):
(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::performPut):
(JSC::performProxyCall):
(JSC::performProxyConstruct):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performIsExtensible):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performGetOwnPropertyNames):
(JSC::ProxyObject::performSetPrototype):
(JSC::ProxyObject::performGetPrototype):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncStartsWith):
(JSC::stringProtoFuncEndsWith):
(JSC::stringProtoFuncIncludes):

  • runtime/Structure.cpp:

(JSC::Structure::preventExtensionsTransition):

  • tests/stress/proxy-basic.js:
  • tests/stress/proxy-construct.js:

(throw.new.Error):
(assert):

  • tests/stress/proxy-define-own-property.js:

(assert):
(throw.new.Error):
(i.catch):
(assert.set get catch):

  • tests/stress/proxy-delete.js:

(assert):

  • tests/stress/proxy-get-own-property.js:

(assert):
(i.catch):
(set get let):

  • tests/stress/proxy-get-prototype-of.js:

(assert):
(assert.get let):
(assert.get catch):

  • tests/stress/proxy-has-property.js:

(assert):

  • tests/stress/proxy-is-array.js:

(test):

  • tests/stress/proxy-is-extensible.js:

(assert):

  • tests/stress/proxy-json.js:

(assert):
(test):

  • tests/stress/proxy-own-keys.js:

(assert):
(i.catch):

  • tests/stress/proxy-prevent-extensions.js:

(assert):

  • tests/stress/proxy-property-descriptor.js:
  • tests/stress/proxy-revoke.js:

(assert):
(throw.new.Error.):
(throw.new.Error):
(shouldThrowNullHandler):

  • tests/stress/proxy-set-prototype-of.js:

(assert.set let):
(assert.set catch):
(assert):
(set catch):

  • tests/stress/proxy-set.js:

(throw.new.Error.let.handler.set 45):
(throw.new.Error):

  • tests/stress/proxy-with-private-symbols.js:

(assert):

  • tests/stress/proxy-with-unbalanced-getter-setter.js:

(assert):

  • tests/stress/reflect-set-proxy-set.js:

(throw.new.Error.let.handler.set 45):
(throw.new.Error):

  • tests/stress/reflect-set-receiver-proxy-set.js:

(let.handler.set 45):
(catch):

  • tests/stress/string-prototype-methods-endsWith-startsWith-includes-correctness.js:

(test):
(test.get let):

LayoutTests:

  • js/string-includes-expected.txt:
5:21 PM Changeset in webkit [198812] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.124

New Tag.

4:55 PM Changeset in webkit [198811] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Windows clean build.

  • CMakeLists.txt:

Make sure WebCoreDerivedSources is done building before building WebCore.

4:34 PM Changeset in webkit [198810] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

When moving focus from one select element to another (iPhone) the value is committed to the newly focused element.
​https://bugs.webkit.org/show_bug.cgi?id=155958
rdar://problem/22738524

Reviewed by Tim Horton.

We should not delay the call to endEditing until we receive
stopAssistingNode, because by then the assisted node might have already
changed. We need to call endEditing to commit potential changes every
time we tap. This way we can make sure the editing session on the select
element has been completed. This affects only single select elements on
iPhone, where the change to the actual DOM element is delayed until we
stop interacting with the element. On iPad or for multi-select elements,
the change to the DOM happens immediately.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _singleTapCommited:]):
(-[WKContentView _attemptClickAtLocation:]):
(-[WKContentView _stopAssistingNode]):

4:19 PM Changeset in webkit [198809] by ddkilzer@apple.com
  • 5 edits
    4 adds in trunk/Source/bmalloc

bmalloc: add logging for mmap() failures
<​http://webkit.org/b/155409>
<rdar://problem/24568515>

Reviewed by Saam Barati.

This patch causes additional logging to be generated on internal
iOS builds when mmap() fails. We are trying to track down an
issue where the WebContent process runs out of VM address space
before it is killed by jetsam.

  • CMakeLists.txt: Add Logging.cpp.
  • bmalloc.xcodeproj/project.pbxproj: Add new files.
  • bmalloc/BAssert.h:

(RELEASE_BASSERT_WITH_MESSAGE): Add macro.

  • bmalloc/Logging.cpp: Added.

(bmalloc::logVMFailure): Implementation.

  • bmalloc/Logging.h: Added.

(bmalloc::logVMFailure): Declaration.

  • bmalloc/VMAllocate.h:

(bmalloc::tryVMAllocate): Call logVMFailure() on mmap() failure.

  • bmalloc/darwin/BSoftLinking.h: Copied from Source/WebCore/platform/mac/SoftLinking.h.
3:57 PM Changeset in webkit [198808] by keith_miller@apple.com
  • 42 edits
    5 adds in trunk

[ES6] Add support for Symbol.isConcatSpreadable.
​https://bugs.webkit.org/show_bug.cgi?id=155351

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch adds support for Symbol.isConcatSpreadable. In order to do so it was necessary to move the
Array.prototype.concat function to JS. A number of different optimizations were needed to make such the move to
a builtin performant. First, four new DFG intrinsics were added.

1) IsArrayObject (I would have called it IsArray but we use the same name for an IndexingType): an intrinsic of

the Array.isArray function.

2) IsJSArray: checks the first child is a JSArray object.
3) IsArrayConstructor: checks the first child is an instance of ArrayConstructor.
4) CallObjectConstructor: an intrinsic of the Object constructor.

IsActualObject, IsJSArray, and CallObjectConstructor can all be converted into constants in the abstract interpreter if
we are able to prove that the first child is an Array or for ToObject an Object.

In order to further improve the perfomance we also now cover more indexing types in our fast path memcpy
code. Before we would only memcpy Arrays if they had the same indexing type and did not have Array storage and
were not undecided. Now the memcpy code covers the following additional two cases: One array is undecided and
the other is a non-array storage and the case where one array is Int32 and the other is contiguous (we map this
into a contiguous array).

This patch also adds a new fast path for concat with more than one array argument by using memcpy to append
values onto the result array. This works roughly the same as the two array fast path using the same methodology
to decide if we can memcpy the other butterfly into the result butterfly.

Two new debugging tools are also added to the jsc cli. One is a version of the print function with a private
name so it can be used for debugging builtins. The other is dumpDataLog, which takes a JSValue and runs our
dataLog function on it.

Finally, this patch add a new constructor to JSValueRegsTemporary that allows it to reuse the the registers of a
JSValueOperand if the operand's use count is one.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ArrayPrototype.js:

(concatSlowPath):
(concat):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • 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::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileIsJSArray):
(JSC::DFG::SpeculativeJIT::compileIsArrayObject):
(JSC::DFG::SpeculativeJIT::compileIsArrayConstructor):
(JSC::DFG::SpeculativeJIT::compileCallObjectConstructor):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileIsArrayObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsJSArray):
(JSC::FTL::DFG::LowerDFGToB3::compileIsArrayConstructor):
(JSC::FTL::DFG::LowerDFGToB3::isArray):

  • jit/JITOperations.h:
  • jsc.cpp:

(WTF::RuntimeArray::createStructure):
(GlobalObject::finishCreation):
(functionDebug):
(functionDataLogValue):

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::finishCreation):
(JSC::arrayConstructorPrivateFuncIsArrayConstructor):

  • runtime/ArrayConstructor.h:

(JSC::isArrayConstructor):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):
(JSC::arrayProtoPrivateFuncIsJSArray):
(JSC::moveElements):
(JSC::arrayProtoPrivateFuncConcatMemcpy):
(JSC::arrayProtoPrivateFuncAppendMemcpy):
(JSC::arrayProtoFuncConcat): Deleted.

  • runtime/ArrayPrototype.h:

(JSC::ArrayPrototype::createStructure):

  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.h:
  • runtime/JSArray.cpp:

(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastConcatWith): Deleted.

  • runtime/JSArray.h:

(JSC::JSArray::createStructure):
(JSC::JSArray::fastConcatType): Deleted.

  • runtime/JSArrayInlines.h: Added.

(JSC::JSArray::memCopyWithIndexingType):
(JSC::JSArray::canFastCopy):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSType.h:
  • runtime/ObjectConstructor.h:

(JSC::constructObject):

  • tests/es6.yaml:
  • tests/stress/array-concat-spread-object.js: Added.

(arrayEq):

  • tests/stress/array-concat-spread-proxy-exception-check.js: Added.

(arrayEq):

  • tests/stress/array-concat-spread-proxy.js: Added.

(arrayEq):

  • tests/stress/array-concat-with-slow-indexingtypes.js: Added.

(arrayEq):

  • tests/stress/array-species-config-array-constructor.js:

Source/WebCore:

Makes runtime arrays have the new ArrayType

  • bridge/runtime_array.h:

(JSC::RuntimeArray::createStructure):

LayoutTests:

Fix tests for Symbol.isConcatSpreadable on the Symbol object.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/array-prototype-properties-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
3:23 PM Changeset in webkit [198807] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add machine-readable results for JSC stress tests
​https://bugs.webkit.org/show_bug.cgi?id=155771

Patch by Srinivasan Vijayaraghavan <​svijayaraghavan@apple.com> on 2016-03-29
Reviewed by Darin Adler and Dean Johnson

Add an option to output JSC stress test results to a user-specified file in JSON format.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): Add JSON output support
(readAllLines): Remove trailing newline from the end of each item

3:19 PM Changeset in webkit [198806] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: VoiceOver: Navigating Numbered Lists Causes Number to be announced On Each Line of List
​https://bugs.webkit.org/show_bug.cgi?id=155984

Reviewed by Chris Fleizach.

Source/WebCore:

We should limit the list marker text only to the first line of that list item.

Test: accessibility/mac/attributed-string-with-listitem-multiple-lines.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):
(WebCore::AccessibilityObject::stringForRange):

LayoutTests:

  • accessibility/mac/attributed-string-with-listitem-multiple-lines-expected.txt: Added.
  • accessibility/mac/attributed-string-with-listitem-multiple-lines.html: Added.
3:17 PM Changeset in webkit [198805] by tonikitoo@webkit.org
  • 7 edits
    3 adds in trunk

Wheel events' latching state is not reset when appropriate
​https://bugs.webkit.org/show_bug.cgi?id=155746

Reviewed by Simon Fraser.

Source/WebCore:

When one performs a two fingers scroll (with trackpad),
it might either trigger a kinetic scroll movement (by
flickering with both fingers in a given direction) or perform
a static scroll movement (without the flicker animation).

In case of the first scenario (kinetic), the container being
scrolled is "latched" during the scroll animation and properly unlatched
once the scroll ends. See the call to 'shouldResetLatching' in EventHandlerMac.mm.
When transitioning from non-momentum to momentum scroll, the following events are seen:

  • 'phase PlatformWheelEventPhaseEnded' 'momentumPhase PlatformWheelEventPhaseNone' -> end of static scroll
  • 'phase PlatformWheelEventPhaseNone' 'momentumPhase PlatformWheelEventPhaseBegan' -> start of momentum scroll

On the second scenario (static scroll), when the scroll movement ends,
the latched state is not reset. This might actually cause scrolling elsewhere on the page to scroll
the previously latched container.
Note that, only specific wheel event below is fired when static scroll ends:

  • 'phase PlatformWheelEventPhaseEnded' 'momentumPhase PlatformWheelEventPhaseNone'

In order to fix this, patch installs a timer as soon as a non-momentum
wheel scroll event end fires. It works as follows:

  • If the timer fires, the latched state is reset, preventing scrolling getting stuck to

a previously latched scrollable.

  • If platform code starts sending momentum wheel scroll events before it times out, the timer is

stopped and the latched state remains untouched (this is a flick scroll case).

  • If a new wheel scroll gesture starts, the latched state is manually reset

and the timer stopped.

Note that given that latched state logic applies primarily to main frames,
the timer only gets manipulated for main frame objects.

Test: tiled-drawing/scrolling/scroll-iframe-latched-selects.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::doOrScheduleClearLatchedStateIfNeeded):

  • page/EventHandler.h:
  • page/MainFrame.cpp:

(WebCore::MainFrame::MainFrame):
(WebCore::MainFrame::~MainFrame):

  • page/MainFrame.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::scrollableAreaForContainerNode):
(WebCore::latchedToFrameOrBody):
(WebCore::areWheelEventsTransitioningToMomentumScrolling):
(WebCore::areWheelEventsEndingNonMomentumScrolling):
(WebCore::EventHandler::doOrScheduleClearLatchedStateIfNeeded):

LayoutTests:

  • tiled-drawing/scrolling/resources/selects-iframe.html: Added.
  • tiled-drawing/scrolling/scroll-iframe-latched-selects.html: Added.
3:15 PM Changeset in webkit [198804] by achristensen@apple.com
  • 4 edits in trunk

Fix Windows build.

Source/WebCore:

  • CMakeLists.txt:

Tools:

  • TestWebKitAPI/PlatformWin.cmake:
3:11 PM Changeset in webkit [198803] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

We don't properly optimize TDZ checks when we declare a let variable without an initializer
​https://bugs.webkit.org/show_bug.cgi?id=150453

Reviewed by Mark Lam.

  • bytecompiler/NodesCodegen.cpp:

(JSC::EmptyLetExpression::emitBytecode):

2:49 PM Changeset in webkit [198802] by BJ Burg
  • 3 edits in trunk/Source/WebKit2

Unreviewed build fix after r198793.

  • UIProcess/API/Cocoa/_WKAutomationSession.h:
  • UIProcess/API/Cocoa/_WKAutomationSession.mm:

The wasEventSynthesizedForAutomation method should only be available on Mac.

2:43 PM Changeset in webkit [198801] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Windows build fix.

  • CMakeLists.txt:

DerivedSources.cpp should be in WebCore_DERIVED_SOURCES because it depends on the derived sources.

2:17 PM Changeset in webkit [198800] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

Fix Windows build after r198777

  • CMakeLists.txt:
  • PlatformEfl.cmake:

WebCore_DERIVED_SOURCES should not be in WebCore_SOURCES. If it's needed for EFL,
then keep it in the EFL-specific platform.

  • PlatformWin.cmake:

Make more derived sources in WebCore_DERIVED_SOURCES.

2:06 PM Changeset in webkit [198799] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix after r198792.

  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
We (still) can't use lightweight generics in Objective-C code.
Also, use RetainPtr instead of new, since this is not ARC code.

2:04 PM Changeset in webkit [198798] by sbarati@apple.com
  • 13 edits
    1 add in trunk/Source

Allow builtin JS functions to be intrinsics
​https://bugs.webkit.org/show_bug.cgi?id=155960

Reviewed by Mark Lam.

Source/JavaScriptCore:

Builtin functions can now be recognized as intrinsics inside
the DFG. This gives us the flexibility to either lower a builtin
as an intrinsic in the DFG or as a normal function call.
Because we may decide to not lower it as an intrinsic, the DFG
inliner could still inline the function call.

You can annotate a builtin function like so to make
it be recognized as an intrinsic.
`
[intrinsic=FooIntrinsic] function foo() { ... }
`
where FooIntrinsic is an enum value of the Intrinsic enum.

So in the future if we write RegExp.prototype.test as a builtin, we would do:
` RegExpPrototype.js
[intrinsic=RegExpTestIntrinsic] function test() { ... }
`

  • Scripts/builtins/builtins_generate_combined_implementation.py:

(BuiltinsCombinedImplementationGenerator.generate_secondary_header_includes):

  • Scripts/builtins/builtins_generate_separate_implementation.py:

(BuiltinsSeparateImplementationGenerator.generate_secondary_header_includes):

  • Scripts/builtins/builtins_generator.py:

(BuiltinsGenerator.generate_embedded_code_string_section_for_function):

  • Scripts/builtins/builtins_model.py:

(BuiltinObject.init):
(BuiltinFunction):
(BuiltinFunction.init):
(BuiltinFunction.fromString):
(BuiltinFunction.str):

  • Scripts/builtins/builtins_templates.py:
  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::visitChildren):
(JSC::UnlinkedFunctionExecutable::link):

  • bytecode/UnlinkedFunctionExecutable.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::attemptToInlineCall):

  • runtime/Executable.cpp:

(JSC::ExecutableBase::clearCode):
(JSC::NativeExecutable::destroy):
(JSC::ScriptExecutable::ScriptExecutable):
(JSC::EvalExecutable::create):
(JSC::EvalExecutable::EvalExecutable):
(JSC::ProgramExecutable::ProgramExecutable):
(JSC::ModuleProgramExecutable::ModuleProgramExecutable):
(JSC::FunctionExecutable::FunctionExecutable):
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::NativeExecutable::intrinsic): Deleted.

  • runtime/Executable.h:

(JSC::ExecutableBase::ExecutableBase):
(JSC::ExecutableBase::hasJITCodeFor):
(JSC::ExecutableBase::intrinsic):
(JSC::ExecutableBase::intrinsicFor):
(JSC::ScriptExecutable::finishCreation):

  • runtime/Intrinsic.h:

Source/WebCore:

  • ForwardingHeaders/runtime/Intrinsic.h: Added.
1:43 PM Changeset in webkit [198797] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix CMake build after r198792.

  • PlatformMac.cmake:
1:40 PM Changeset in webkit [198796] by timothy@apple.com
  • 2 edits in trunk/Tools

Update WebKit nightly to have a red needle to better match Safari

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

Reviewed by Joseph Pecoraro.

  • WebKitLauncher/webkit.icns:
1:37 PM Changeset in webkit [198795] by commit-queue@webkit.org
  • 2 edits in trunk

Unreviewed, rolling out r198781.
​https://bugs.webkit.org/show_bug.cgi?id=155986

broke windows clean build (Requested by alexchristensen on
#webkit).

Reverted changeset:

"[Win] CMake seems to build all generated files every time"
​https://bugs.webkit.org/show_bug.cgi?id=155872
​http://trac.webkit.org/changeset/198781

1:36 PM Changeset in webkit [198794] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: ⌘E and ⌘G text searching does not work
​https://bugs.webkit.org/show_bug.cgi?id=155981
<rdar://problem/25418983>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-03-29
Reviewed by Timothy Hatcher.

Disable the unused find banner in the RecordingContentView's
ContentBrowser. This is a workaround for the background tab
thinking it is visible, but still useful since the find
banner wouldn't be used in the TimelineContentView anyways so
can avoid being created.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser):
Add a construction option to not create a FindBanner.

(WebInspector.ContentBrowser.prototype.handleFindEvent):
(WebInspector.ContentBrowser.prototype.shown):
(WebInspector.ContentBrowser.prototype.hidden):
(WebInspector.ContentBrowser.prototype._contentViewNumberOfSearchResultsDidChange):
(WebInspector.ContentBrowser.prototype._updateFindBanner):
Handle when we don't have a find banner.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
Do not create a FindBanner in the RecordingContentView.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
This global content browser can also avoid creating a FindBanner.

1:19 PM Changeset in webkit [198793] by BJ Burg
  • 5 edits in trunk/Source/WebKit2

Web Automation: Add SPI to tell whether an NSEvent was synthesized for automation
​https://bugs.webkit.org/show_bug.cgi?id=155963
<rdar://problem/25405747>

Reviewed by Timothy Hatcher.

Tag all NSEvents that were synthesized with an associated object before sending.
Do all associated object work below the API layer so we don't get into trouble
using things that may be guarded by WK_API_ENABLED.

  • UIProcess/API/Cocoa/_WKAutomationSession.h:
  • UIProcess/API/Cocoa/_WKAutomationSession.mm:

(-[_WKAutomationSession wasEventSynthesizedForAutomation:]):
Forward to the wrapped session object.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
Tag outgoing NSEvents with the session identifier as an associated object.

(WebKit::WebAutomationSession::wasEventSynthesizedForAutomation):
Check an incoming NSEvent to see if its associated object is the session identifier.

1:19 PM Changeset in webkit [198792] by BJ Burg
  • 8 edits
    1 add in trunk/Source

Web Automation: implement Automation.performMouseInteraction
​https://bugs.webkit.org/show_bug.cgi?id=155606
<rdar://problem/25227576>

Source/WebKit2:

Reviewed by Timothy Hatcher.

This method implements common mouse interactions by synthesizing native events.
The creation and dispatching of simulated events is implemented separately per
application/window/event framework. This patch adds an implementation for ports
that use AppKit.

The event is created synthetically in a platform-specific way and delivered to
the platform's window in the UIProcess. The event goes through all the
layers of processing that a real mouse event could go through once it reaches
WebKit itself.

  • UIProcess/Automation/Automation.json: Add new enums and command.
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::protocolModifierToWebEventModifier):
(WebKit::WebAutomationSession::performMouseInteraction): Added.
Clip the requested cursor position so that it stays within the selected window's
frame and doesn't wander off into other windows or applications. Fire it using
the platform-specific simulation method.

(WebKit::WebAutomationSession::platformSimulateMouseInteraction): Added.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::platformSimulateMouseInteraction): Added.
Convert Automation protocol values to AppKit values. Simulate and dispatch
one or more events depending on the desired interaction.

  • WebKit2Prefix.h: Include AppKitCompatibilityDeclarations.h so newer

NSEventTypes can be used.

Source/WTF:

Reviewed by Timothy Hatcher.

  • wtf/mac/AppKitCompatibilityDeclarations.h: Add missing some NSEventTypes.
1:12 PM Changeset in webkit [198791] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

JSC::Debugger cleanup after recent changes
​https://bugs.webkit.org/show_bug.cgi?id=155982

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-03-29
Reviewed by Mark Lam.

  • debugger/Debugger.cpp:

(JSC::Debugger::Debugger):
Initialize with breakpoints disabled. Web Inspector always informs
the backend if it should enable or disable breakpoints on startup.

(JSC::Debugger::setProfilingClient):
When using the Sampling profiler we do not need to recompile.

1:10 PM Changeset in webkit [198790] by sbarati@apple.com
  • 5 edits in trunk

"Can not" => "cannot" in String.prototype error messages
​https://bugs.webkit.org/show_bug.cgi?id=155895

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncStartsWith):
(JSC::stringProtoFuncEndsWith):
(JSC::stringProtoFuncIncludes):

  • tests/stress/string-prototype-methods-endsWith-startsWith-includes-correctness.js:

(test):
(test.get let):

LayoutTests:

  • js/string-includes-expected.txt:
12:51 PM Changeset in webkit [198789] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Adding timeout ios-simulator TestExpectations for perf/adding-radio-buttons.html
​https://bugs.webkit.org/show_bug.cgi?id=154055

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
12:40 PM Changeset in webkit [198788] by Jon Davis
  • 3 edits in trunk/Websites/webkit.org

Support images above the title on webkit.org posts
​https://bugs.webkit.org/show_bug.cgi?id=155979

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/functions.php:
  • wp-content/themes/webkit/single.php:
12:04 PM Changeset in webkit [198787] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

[Cocoa] Rename ScrollbarPainter variables to ScrollerImp
​https://bugs.webkit.org/show_bug.cgi?id=155976

Reviewed by Simon Fraser.

This patch continues where r198078 left off. That patch renamed all the types,
however, there are some variables which were left as "scrollbarPainter". This
patch completes the transition to ScrollerImp.

No new tests because there is no behavior change.

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(scrollerImpForScrollbar):
(-[WebScrollerImpPairDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
(-[WebScrollbarPartAnimation startAnimation]):
(-[WebScrollbarPartAnimation setCurrentProgress:]):
(-[WebScrollerImpDelegate mouseLocationInScrollerForScrollerImp:]):
(-[WebScrollerImpDelegate scrollerImp:animateKnobAlphaTo:duration:]):
(-[WebScrollerImpDelegate scrollerImp:animateTrackAlphaTo:duration:]):
(-[WebScrollerImpDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
(-[WebScrollerImpDelegate scrollerImp:animateExpansionTransitionWithDuration:]):
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::contentAreaWillPaint):
(WebCore::ScrollAnimatorMac::mouseEnteredContentArea):
(WebCore::ScrollAnimatorMac::mouseExitedContentArea):
(WebCore::ScrollAnimatorMac::mouseMovedInContentArea):
(WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
(WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
(WebCore::ScrollAnimatorMac::mouseIsDownInScrollbar):
(WebCore::ScrollAnimatorMac::willStartLiveResize):
(WebCore::ScrollAnimatorMac::contentsResized):
(WebCore::ScrollAnimatorMac::willEndLiveResize):
(WebCore::ScrollAnimatorMac::contentAreaDidShow):
(WebCore::ScrollAnimatorMac::contentAreaDidHide):
(WebCore::ScrollAnimatorMac::didBeginScrollGesture):
(WebCore::ScrollAnimatorMac::didEndScrollGesture):
(WebCore::ScrollAnimatorMac::mayBeginScrollGesture):
(WebCore::ScrollAnimatorMac::lockOverlayScrollbarStateToHidden):
(WebCore::ScrollAnimatorMac::scrollbarsCanBeActive):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::invalidateScrollbarPartLayers):
(WebCore::ScrollAnimatorMac::verticalScrollbarLayerDidChange):
(WebCore::ScrollAnimatorMac::horizontalScrollbarLayerDidChange):
(WebCore::ScrollAnimatorMac::shouldScrollbarParticipateInHitTesting):
(WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
(WebCore::ScrollAnimatorMac::updateScrollerStyle):
(WebCore::ScrollAnimatorMac::initialScrollbarPaintTimerFired):
(WebCore::ScrollAnimatorMac::sendContentAreaScrolled):
(scrollbarPainterForScrollbar): Deleted.

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::registerScrollbar):
(WebCore::ScrollbarThemeMac::scrollbarThickness):
(WebCore::scrollerImpPaint):
(WebCore::ScrollbarThemeMac::paint):
(WebCore::scrollbarPainterPaint): Deleted.

11:51 AM Changeset in webkit [198786] by commit-queue@webkit.org
  • 33 edits
    2 adds in trunk

Web Inspector: We should have a way to capture heap snapshots programatically.
​https://bugs.webkit.org/show_bug.cgi?id=154407
<rdar://problem/24726292>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-03-29
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Console.json:

Add a new Console.heapSnapshot event for when a heap snapshot is taken.

  • runtime/ConsolePrototype.cpp:

(JSC::ConsolePrototype::finishCreation):
(JSC::consoleProtoFuncProfile):
(JSC::consoleProtoFuncProfileEnd):
(JSC::consoleProtoFuncTakeHeapSnapshot):

  • runtime/ConsoleClient.h:

Add the console.takeHeapSnapshot method and dispatch to the ConsoleClient.

  • inspector/JSGlobalObjectConsoleClient.cpp:

(Inspector::JSGlobalObjectConsoleClient::takeHeapSnapshot):

  • inspector/JSGlobalObjectConsoleClient.h:

Have the InspectorConsoleAgent handle this.

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):

  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::InspectorConsoleAgent):
(Inspector::InspectorConsoleAgent::takeHeapSnapshot):

  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/JSGlobalObjectConsoleAgent.cpp:

(Inspector::JSGlobalObjectConsoleAgent::JSGlobalObjectConsoleAgent):

  • inspector/agents/JSGlobalObjectConsoleAgent.h:

Give the ConsoleAgent a HeapAgent pointer so that it can have the HeapAgent
perform the snapshot building work like it normally does.

Source/WebCore:

Test: inspector/console/heapSnapshot.html

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::takeHeapSnapshot):

  • page/PageConsoleClient.h:

Pass through to Inspector Instrumentation.

  • inspector/InspectorConsoleInstrumentation.h:

(WebCore::InspectorInstrumentation::takeHeapSnapshot):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::takeHeapSnapshotImpl):

  • inspector/InspectorInstrumentation.h:

Pass through to InspectorConsoleAgent.

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):

  • inspector/PageConsoleAgent.cpp:

(WebCore::PageConsoleAgent::PageConsoleAgent):

  • inspector/PageConsoleAgent.h:
  • inspector/WebConsoleAgent.cpp:

(WebCore::WebConsoleAgent::WebConsoleAgent):

  • inspector/WebConsoleAgent.h:
  • workers/WorkerConsoleClient.cpp:

(WebCore::WorkerConsoleClient::takeHeapSnapshot):

  • workers/WorkerConsoleClient.h:

Provide a HeapAgent to the ConsoleAgent.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Protocol/ConsoleObserver.js:

(WebInspector.ConsoleObserver.prototype.heapSnapshot):
(WebInspector.ConsoleObserver):
Create a HeapSnapshot with an optional title and add to the timeline.

(WebInspector.HeapAllocationsTimelineDataGridNode):

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView.displayNameForRecord):
Share code for snapshot display names which may now include a title.

  • UserInterface/Proxies/HeapSnapshotProxy.js:

(WebInspector.HeapSnapshotProxy):
(WebInspector.HeapSnapshotProxy.deserialize):
(WebInspector.HeapSnapshotProxy.prototype.get title):

  • UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:
  • UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:

(HeapSnapshot):
(HeapSnapshot.prototype.serialize):

  • UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js:

(HeapSnapshotWorker.prototype.createSnapshot):
Include an optional title in a HeapSnapshot.

LayoutTests:

  • inspector/console/heapSnapshot-expected.txt: Added.
  • inspector/console/heapSnapshot.html: Added.

Test that we get expected data and events after calling
console.takeHeapSnapshot when the inspector is open.

11:33 AM Changeset in webkit [198785] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

REGRESSION (r196813): Missing plug-in placeholder is missing
​https://bugs.webkit.org/show_bug.cgi?id=155973
<rdar://problem/25068392>

Reviewed by Andy Estes.

Show unavailable plugin indicator when UnavailablePluginIndicatorState (uninitialized, hidden, visible) is not set to hidden explicitly.
It matches pre-196813 behaviour.

Unable to test.

  • rendering/RenderEmbeddedObject.h:

(WebCore::RenderEmbeddedObject::showsUnavailablePluginIndicator):

10:16 AM Changeset in webkit [198784] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebCore

[OS X] [RTL Scrollbars] Overlay RTL scrollbars animate in from the wrong side
​https://bugs.webkit.org/show_bug.cgi?id=155962

Reviewed by Simon Fraser.

We can control the animation direction with the NSScrollerImp property
userInterfaceLayoutDirection.

Not testable.

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::setScrollbarLayoutDirection):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::horizontalScrollbar):
(WebCore::ScrollableArea::verticalScrollbar):
(WebCore::ScrollableArea::tiledBacking):
(WebCore::ScrollableArea::layerForHorizontalScrollbar):
(WebCore::ScrollableArea::layerForVerticalScrollbar):
(WebCore::ScrollableArea::layerForScrolling):
(WebCore::ScrollableArea::layerForScrollCorner):
(WebCore::ScrollableArea::layerForOverhangAreas):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::updateScrollerStyle):

  • platform/mac/ScrollableAreaMac.mm:

(WebCore::ScrollableArea::setScrollbarDirection):

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::registerScrollbar):

  • platform/spi/mac/NSScrollerImpSPI.h:
9:49 AM Changeset in webkit [198783] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Inline WebFullScreenVideoRootViewController.m
​https://bugs.webkit.org/show_bug.cgi?id=155971

Reviewed by Anders Carlsson.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(createFullScreenVideoRootViewControllerClass): Replaced with the code from

WebFullScreenVideoRootViewController.m.

9:18 AM Changeset in webkit [198782] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebCore

Create a CG ImageDecoder class instead of defining it as CGImageSourceRef
​https://bugs.webkit.org/show_bug.cgi?id=155422

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-03-29
Reviewed by Simon Fraser.

Move the image CG decoding code from the class ImageSource out to a new
class named ImageDecoder. The purpose of this split is to unify the code
of the ImageSource for all platforms. This class should be a container
for the ImageDecoder. All the direct frame manipulation like querying the
frame metadata or creating a frame image should be the responsibility of
the ImageDecoder. The ImageSource will be responsible of the image frame
caching. When responding to a frame metadata query, for example. the
ImageSource checks its cache first. If an entry does not exist for the
requested frame, the ImageSource will cache the image and the metadata
of this frame. The ImageSource will respond at the end from the image
frame cache.

The plan after this patch is is the following:

-- Move the new class to separate files
-- Merge the ImageSource.cpp and ImageSourceCG.cpp. in one file
-- Move caching the FrameData from BitmapImage to ImageSource.

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::imageSizeForRenderer):
BitmapImage::sizeRespectingOrientation() does not take any argument now.
Fix the call to this function and delete the conditionally compiled code
since the code is the same for the two cases.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::updateSize):
(WebCore::BitmapImage::sizeRespectingOrientation):
(WebCore::BitmapImage::frameImageAtIndex):
(WebCore::BitmapImage::BitmapImage):
An image can have two sizes: size() and sizeRespectingOrientation(). The
sizeRespectingOrientation() is the transpose of size() iff the image
orientation has usesWidthAsHeight() is true. So there is no need for the
ImageOrientationDescription argument. So there is no need for the members
m_imageOrientation or m_shouldRespectImageOrientation. Also move
m_allowSubsampling and m_minimumSubsamplingLevel (which should be named
m_maximumSubsamplingLevel) to ImageSource instead.

(WebCore::BitmapImage::frameOrientationAtIndex): Replace DefaultImageOrientation
by ImageOrientation().

(WebCore::BitmapImage::dump): Move dumping the image metadata to the
ImageSource.

  • platform/graphics/BitmapImage.h:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/ImageOrientation.h:

(WebCore::ImageOrientation::ImageOrientation):
(WebCore::ImageOrientation::fromEXIFValue):
(WebCore::ImageOrientation::operator ImageOrientationEnum):
Add a casting operator to ImageOrientation so it can be dumped as enum
value. Also add a default constructor and make the other constructor be
explicit. All the rvalues DefaultImageOrientation should be replaced by
ImageOrientation().

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ImageSource):
(WebCore::ImageSource::clear):
m_decoder is now a unique_ptr. To release it, assign it to nullptr.

(WebCore::ImageSource::ensureDecoderIsCreated): Ensure m_decoder is created.

(WebCore::ImageSource::setData): Call ensureDecoderIsCreated() before
actually setting the data.

(WebCore::ImageSource::isSizeAvailable): Use initialized();

(WebCore::ImageSource::size):
(WebCore::ImageSource::sizeRespectingOrientation):
(WebCore::ImageSource::frameSizeAtIndex):
These functions return the size of the image.

(WebCore::ImageSource::getHotSpot):
(WebCore::ImageSource::repetitionCount):
(WebCore::ImageSource::frameCount):
(WebCore::ImageSource::createFrameImageAtIndex):
(WebCore::ImageSource::frameDurationAtIndex):
(WebCore::ImageSource::orientationAtIndex):
(WebCore::ImageSource::frameHasAlphaAtIndex):
(WebCore::ImageSource::frameIsCompleteAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):
Check for initialized() instead of checking m_decoder.

(WebCore::ImageSource::dump): Dump the image metadata.

(WebCore::ImageSource::initialized): Deleted.

  • platform/graphics/ImageSource.h: The image decoder is now named

ImageDecoder for all platforms.

(WebCore::ImageSource::initialized): Moved to the header file.

(WebCore::ImageSource::setAllowSubsampling): Moved from BitmapImage.

  • platform/graphics/cairo/BitmapImageCairo.cpp:

(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::determineMinimumSubsamplingLevel): Deleted.
Delete initializing m_minimumSubsamplingLevel and determineMinimumSubsamplingLevel()
since they are moved to ImageSource.

  • platform/graphics/cg/BitmapImageCG.cpp:

(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::determineMinimumSubsamplingLevel): Deleted.
Delete members and methods which are now owned and calculated by ImageSource.

  • platform/graphics/cg/ImageSourceCG.cpp:

(WebCore::ImageDecoder::create): Returns a CG ImageDecoder object.

(WebCore::orientationFromProperties): Replace DefaultImageOrientation
by ImageOrientation().

(WebCore::ImageDecoder::ImageDecoder): Creates a native CG image decoder.

(WebCore::ImageDecoder::~ImageDecoder): Releases the native CG image decoder.

(WebCore::ImageDecoder::subsamplingLevelForScale): Moved from ImageSource.
A new argument named 'maximumSubsamplingLevel' is added to low filter the
return value.

(WebCore::ImageDecoder::bytesDecodedToDetermineProperties):
(WebCore::ImageDecoder::filenameExtension):
(WebCore::ImageDecoder::isSizeAvailable):
(WebCore::ImageDecoder::size):
(WebCore::ImageDecoder::frameCount):
(WebCore::ImageDecoder::repetitionCount):
(WebCore::ImageDecoder::hotSpot):
(WebCore::ImageDecoder::frameSizeAtIndex):
(WebCore::ImageDecoder::frameIsCompleteAtIndex):
(WebCore::ImageDecoder::orientationAtIndex):
(WebCore::ImageDecoder::frameDurationAtIndex):
(WebCore::ImageDecoder::allowSubsamplingOfFrameAtIndex):
(WebCore::ImageDecoder::frameHasAlphaAtIndex):
(WebCore::ImageDecoder::frameBytesAtIndex):
(WebCore::ImageDecoder::createFrameImageAtIndex):
(WebCore::ImageDecoder::setData):
The code of these function was moved from the functions of ImageSource.

(WebCore::ImageSource::ImageSource):
(WebCore::ImageSource::~ImageSource):
(WebCore::ImageSource::clear):
(WebCore::ImageSource::ensureDecoderIsCreated):
(WebCore::ImageSource::setData):
(WebCore::ImageSource::filenameExtension):
(WebCore::ImageSource::calculateMaximumSubsamplingLevel):
(WebCore::ImageSource::maximumSubsamplingLevel):
(WebCore::ImageSource::subsamplingLevelForScale):
(WebCore::ImageSource::isSizeAvailable):
(WebCore::ImageSource::allowSubsamplingOfFrameAtIndex):
(WebCore::ImageSource::frameSizeAtIndex):
(WebCore::ImageSource::orientationAtIndex):
(WebCore::ImageSource::size):
(WebCore::ImageSource::sizeRespectingOrientation):
(WebCore::ImageSource::getHotSpot):
(WebCore::ImageSource::bytesDecodedToDetermineProperties):
(WebCore::ImageSource::repetitionCount):
(WebCore::ImageSource::frameCount):
(WebCore::ImageSource::createFrameImageAtIndex):
(WebCore::ImageSource::frameIsCompleteAtIndex):
(WebCore::ImageSource::frameDurationAtIndex):
(WebCore::ImageSource::frameHasAlphaAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):
Call m_decoder's function to do the real work.

(WebCore::ImageSource::dump): Dump the image metadata.

(WebCore::ImageSource::initialized): Deleted.

  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::create):

  • platform/image-decoders/ImageDecoder.h:

Change the return of ImageDecoder::create() to be unique_ptr.

  • platform/mac/DragImageMac.mm:

(WebCore::createDragImageFromImage): Delete unneeded argument.

8:42 AM Changeset in webkit [198781] by Brent Fulgham
  • 2 edits in trunk

[Win] CMake seems to build all generated files every time
​https://bugs.webkit.org/show_bug.cgi?id=155872

Reviewed by Alex Christensen.

This seems to be caused by Visual Studio being unhappy receiving multiple output targets
for its custom build rules. If I limit the output to just the header file on Windows, the
dependency check seems to do the right thing.

  • Source/cmake/WebKitMacros.cmake:
8:40 AM Changeset in webkit [198780] by eric.carlson@apple.com
  • 5 edits in trunk

media/track/track-remove-track.html is flaky, crashing and failing
​https://bugs.webkit.org/show_bug.cgi?id=130971

Reviewed by Alexey Proskuryakov.
Source/WebCore:

Prevent HTMLMediaElement from being collected while it is creating media controls.
These changes prevent the test from crashing but they do not fix the flakiness,
which is caused by another bug. Fixing that is tracked by
​https://bugs.webkit.org/show_bug.cgi?id=155956.

  • html/HTMLMediaElement.cpp:

(WebCore::actionName): New, debugging-only helper function.
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize new variables.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Log the flag names to make debugging easier.
(WebCore::HTMLMediaElement::scheduleNextSourceChild): Add logging.
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Update logging.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Drive-by optimization: don't call

updateCaptionContainer here, call it before exiting configureTextTracks so we only call
it once instead of once per track group.

(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::ensureMediaControlsShadowRoot): New, wrapper around calling

ensureUserAgentShadowRoot so m_creatingControls can be set and cleared appropriately.

(WebCore::HTMLMediaElement::updateCaptionContainer): ensureUserAgentShadowRoot ->

ensureMediaControlsShadowRoot. Drive by optimization: set/test m_haveSetupCaptionContainer
so we only do this setup once.

(WebCore::HTMLMediaElement::configureTextTracks): Call updateCaptionContainer.
(WebCore::HTMLMediaElement::clearMediaPlayer): Log flag names.
(WebCore::HTMLMediaElement::hasPendingActivity): Return true when creating controls so GC

won't happen during controls setup.

(WebCore::HTMLMediaElement::updateTextTrackDisplay): ensureUserAgentShadowRoot ->

ensureMediaControlsShadowRoot.

(WebCore::HTMLMediaElement::createMediaControls): Ditto.
(WebCore::HTMLMediaElement::configureMediaControls): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Ditto.

  • html/HTMLMediaElement.h:

LayoutTests:

  • platform/mac/TestExpectations: Mark crash as flaky only.
6:22 AM Changeset in webkit [198779] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Skip to test custom element test cases

Unreviewed EFL gardening.

Custom element is not supported by EFL yet. Additionally mark 4 security tests to timeout.

  • platform/efl/TestExpectations:
3:25 AM Changeset in webkit [198778] by Yusuke Suzuki
  • 6 edits
    1 add in trunk/Source

REGRESSION(r192914): 10% regression on Sunspider's date-format-tofte
​https://bugs.webkit.org/show_bug.cgi?id=155559

Reviewed by Saam Barati.

Source/JavaScriptCore:

The fast path of the eval function is the super hot path in date-format-tofte.
Any performance regression is not allowed here.
Before this patch, we allocated SourceCode in the fast path.
This allocation incurs 10% performance regression.

This patch removes this allocation in the fast path.
And change the key of the EvalCodeCache to EvalCodeCache::CacheKey.
It combines RefPtr<StringImpl> and isArrowFunctionContext.
Since EvalCodeCache does not cache any eval code evaluated under the strict mode,
it is unnecessary to include several options (ThisTDZMode, and DerivedContextType) in the cache map's key.
But isArrowFunctionContext is necessary since the sloppy mode arrow function exists.

To validate this change, we add a new test that evaluates the same code
under the non-arrow function context and the arrow function context.

After introducing CacheKey, we observed 1% regression compared to the RefPtr<StringImpl> keyed case.
This is because HashMap<RefPtr<T>, ...>::get(T*) is specially optimized; this path is inlined while the normal ::get() is not inlined.
To avoid this performance regression, we introduce HashMap::fastGet, that aggressively encourages inlining.
The relationship between fastGet() and get() is similar to fastAdd() and add().
After applying this change, the evaluation shows no performance regression in comparison with the RefPtr<StringImpl> keyed case.

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::CacheKey::CacheKey):
(JSC::EvalCodeCache::CacheKey::hash):
(JSC::EvalCodeCache::CacheKey::isEmptyValue):
(JSC::EvalCodeCache::CacheKey::operator==):
(JSC::EvalCodeCache::CacheKey::isHashTableDeletedValue):
(JSC::EvalCodeCache::CacheKey::Hash::hash):
(JSC::EvalCodeCache::CacheKey::Hash::equal):
(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):
(JSC::EvalCodeCache::isCacheable):

  • interpreter/Interpreter.cpp:

(JSC::eval):

  • tests/stress/eval-in-arrow-function.js: Added.

(shouldBe):
(i):

Source/WTF:

Add HashTable::inlineLookup and HashMap::fastGet.

  • wtf/HashMap.h:
  • wtf/HashTable.h:
2:13 AM Changeset in webkit [198777] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebCore

Unreviewed EFL build fix caused by r198773

  • CMakeLists.txt: Append WebCore_DERIVED_SOURCES to WebCore source list.
1:14 AM Changeset in webkit [198776] by commit-queue@webkit.org
  • 10 edits
    5 adds in trunk

Audit WebCore builtins for user overridable code
​https://bugs.webkit.org/show_bug.cgi?id=155923

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-03-29
Reviewed by Youenn Fablet.

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h:
  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):
Expose @Object.@defineProperty to built-ins.

Source/WebCore:

Tests: fetch/builtin-overrides.html

streams/builtin-overrides.html

  • Modules/fetch/FetchHeaders.js:

(initializeFetchHeaders):
Avoid using an Array.prototype.forEach that could be overriden.

  • Modules/streams/ByteLengthQueuingStrategy.js:

(initializeByteLengthQueuingStrategy):

  • Modules/streams/CountQueuingStrategy.js:

(initializeCountQueuingStrategy):
Use the private Object.defineProperty not one that could be overriden.

  • Modules/streams/ReadableStreamInternals.js:

(finishClosingReadableStream):
Fix style.

  • Modules/streams/WritableStream.js:

(write):
Fix error message to use the correct function name.

LayoutTests:

  • fetch/builtin-overrides-expected.txt: Added.
  • fetch/builtin-overrides.html: Added.
  • streams/builtin-overrides-expected.txt: Added.
  • streams/builtin-overrides.html: Added.
12:27 AM Changeset in webkit [198775] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Follow up to r198580.

Simplify the code even more as suggested by Darin.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::setViewNeedsDisplay):

Mar 28, 2016:

8:28 PM Changeset in webkit [198774] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Ensure maximum accuracy while profiling
​https://bugs.webkit.org/show_bug.cgi?id=155809
<rdar://problem/25325035>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-03-28
Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

New strings.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager):
When starting the inspector, if it was previously closed while
breakpoints were temporarily disabled, restore the correct
breakpoints enabled state.

(WebInspector.DebuggerManager.prototype.set breakpointsEnabled):
Warn if we ever try to enable breakpoints during timeline recordings.

(WebInspector.DebuggerManager.prototype.get breakpointsDisabledTemporarily):
(WebInspector.DebuggerManager.prototype.startDisablingBreakpointsTemporarily):
(WebInspector.DebuggerManager.prototype.stopDisablingBreakpointsTemporarily):
Method to start/stop temporarily disabling breakpoints.

(WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
When temporarily disabling breakpoints avoid the convenience behavior of
enabling all breakpoints when enabling or setting a single breakpoint.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.startCapturing):
Emit a will start capturing event to do work before enabling instruments.

  • UserInterface/Views/DebuggerSidebarPanel.css:

(.sidebar > .panel.navigation.debugger .timeline-recording-warning):
(.sidebar > .panel.navigation.debugger .timeline-recording-warning > a):
Styles for a warning section in the Debugger Sidebar when the Debugger
is temporarily disabled due to a Timeline recording.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._timelineRecordingWillStart):
(WebInspector.DebuggerSidebarPanel.prototype._timelineRecordingStopped):
Modify the Debugger state and UI before and after a Timeline recording.

7:03 PM Changeset in webkit [198773] by achristensen@apple.com
  • 4 edits in trunk

Fix Mac Ninja build after r198766.

.:

  • Source/cmake/WebKitMacros.cmake:

WebCore_DERIVED_SOURCES are intentionally in a separate library to reduce linker line length.
This is now only specific to WebKit2_DERIVED_SOURCES, so I'm moving it there.

Source/WebKit2:

  • CMakeLists.txt:
6:27 PM Changeset in webkit [198772] by achristensen@apple.com
  • 2 edits in trunk

Fix Windows build after r198766.

  • Source/cmake/WebKitMacros.cmake:

Use the filename from the cpp so that WebCorePrefix.cpp and WebCoreDerivedSourcesPrefix.cpp
generate unique .pch files, even though they both include WebCorePrefix.h

6:06 PM Changeset in webkit [198771] by Alan Bujtas
  • 10 edits
    2 adds in trunk

Pixel turds when bordered div is resized on SMF forum software.
​https://bugs.webkit.org/show_bug.cgi?id=155957
<rdar://problem/25010646>

Reviewed by Simon Fraser.

Use unmodified, non-snapped bounding box rect when computing dirty rects.

Source/WebCore:

Test: fast/repaint/hidpi-box-with-subpixel-height-inflates.html

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::getTrailingCorner):

  • rendering/RenderInline.h:
  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::borderBoundingBox): Deleted.

  • rendering/RenderLineBreak.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::setBestTruncatedAt):

LayoutTests:

  • fast/repaint/hidpi-box-with-subpixel-height-inflates-expected.txt: Added.
  • fast/repaint/hidpi-box-with-subpixel-height-inflates.html: Added.
5:59 PM Changeset in webkit [198770] by commit-queue@webkit.org
  • 2 edits
    3 adds in trunk/Source/JavaScriptCore

[JSC] ArithSub should not propagate "UsesAsOther"
​https://bugs.webkit.org/show_bug.cgi?id=155932

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-03-28
Reviewed by Mark Lam.

The node ArithSub was backpropagating UsesAsOther.
This causes any GetByVal on a Double Array to have an extra
hole check if it flows into an ArithSub.

The definition of ArithSub (12.8.4.1) has both operands go
through ToNumber(). ToNumber() on "undefined" always produces
NaN. It is safe to ignore the NaN marker from hole when
the DAG flows into ArithSub.

This patch also adds this change and test coverage to ArithAdd.
ArithAdd was not a problem in practice because it is only
generated before Fixup if both operands are known to be numerical.
The change to ArithAdd is there to protect us of the ArithSub-like
problems if we ever improve our support of arithmetic operators.

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):

  • tests/stress/arith-add-on-double-array-with-holes.js: Added.

(let.testCase.of.testCases.eval.nonObservableHoleOnLhs):
(let.testCase.of.testCases.observableHoleOnLhs):
(let.testCase.of.testCases.nonObservableHoleOnRhs):
(let.testCase.of.testCases.observableHoleOnRhs):

  • tests/stress/arith-sub-on-double-array-with-holes.js: Added.

(let.testCase.of.testCases.eval.nonObservableHoleOnLhs):
(let.testCase.of.testCases.observableHoleOnLhs):
(let.testCase.of.testCases.nonObservableHoleOnRhs):
(let.testCase.of.testCases.observableHoleOnRhs):

  • tests/stress/value-add-on-double-array-with-holes.js: Added.

(let.testCase.of.testCases.eval.nonObservableHoleOnLhs):
(let.testCase.of.testCases.observableHoleOnLhs):
(let.testCase.of.testCases.nonObservableHoleOnRhs):
(let.testCase.of.testCases.observableHoleOnRhs):

5:58 PM Changeset in webkit [198769] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: Crash when AX trying to create element for an old auto fill element
​https://bugs.webkit.org/show_bug.cgi?id=155943

Reviewed by Joanmarie Diggs.

Source/WebCore:

When an auto-fill element is removed, the Node hangs around but the renderer is gone.
In those cases, we can't blindly add the result of getOrCreate to the children array.

Test: accessibility/auto-fill-crash.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::addTextFieldChildren):

LayoutTests:

  • accessibility/auto-fill-crash-expected.txt: Added.
  • accessibility/auto-fill-crash.html: Added.
5:42 PM Changeset in webkit [198768] by Chris Fleizach
  • 5 edits
    2 adds in trunk

AX: iOS: Can't navigate inside ContentEditable fields with voiceover enabled
​https://bugs.webkit.org/show_bug.cgi?id=155942

Reviewed by Joanmarie Diggs.

Source/WebCore:

The code to set the selected text range on a non-native text control (like a contenteditable) was either
wrong or broke at some point. It assumed that creating a Position with the contenteditable node with the right
offset would make a valid Position, but it almost never did.

Instead we can use this helper method to create a valid Position.

Test: accessibility/set-selected-text-range-contenteditable.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setSelectedTextRange):

LayoutTests:

  • accessibility/set-selected-text-range-contenteditable-expected.txt: Added.
  • accessibility/set-selected-text-range-contenteditable.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
5:36 PM Changeset in webkit [198767] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening on 29th Mar.

Mark svg text tests to failure. Besides remove duplicated a test.

  • platform/efl/TestExpectations:
5:19 PM Changeset in webkit [198766] by achristensen@apple.com
  • 10 edits
    1 copy in trunk

Fix Ninja build on Mac
​https://bugs.webkit.org/show_bug.cgi?id=151399

Reviewed by Darin Adler.

.:

  • Source/CMakeLists.txt:
  • Source/cmake/WebKitMacros.cmake:

Source/WebCore:

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:

This moves WebCoreDerivedSources to a separate static library to reduce linker command
line lengths when using ninja on mac. This also helps Windows builds, which sometimes
regenerate everything every time you build; now you'll be able to just build WebCore
and WebKit without all the WebCoreDerivedSources stuff.

Source/WebKit:

  • PlatformWin.cmake:
5:08 PM Changeset in webkit [198765] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

5:07 PM Changeset in webkit [198764] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.123

New Tag.

4:26 PM Changeset in webkit [198763] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build on some stricter compilers by removing unnecessary WTFMove.
Opportunistically remove some unnecessary "WebCore::"s
Followup to r198762

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::keyPathAny):
(WebCore::IDBObjectStore::transaction):
(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
(WebCore::IDBObjectStore::deleteFunction):
(WebCore::IDBObjectStore::clear):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::count):
(WebCore::IDBObjectStore::doCount):

3:49 PM Changeset in webkit [198762] by beidson@apple.com
  • 48 edits
    22 deletes in trunk/Source

Modern IDB: Remove abstract base classes for all IDB DOM classes.
​https://bugs.webkit.org/show_bug.cgi?id=155951

Reviewed by Alex Christensen.

Source/WebCore:

Refactor - No behavior change.

  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::indexedDB):

  • Modules/indexeddb/IDBAny.cpp:

(WebCore::IDBAny::IDBAny):
(WebCore::IDBAny::~IDBAny):
(WebCore::IDBAny::idbDatabase):
(WebCore::IDBAny::domStringList):
(WebCore::IDBAny::idbCursor):
(WebCore::IDBAny::idbCursorWithValue):
(WebCore::IDBAny::idbFactory):
(WebCore::IDBAny::idbIndex):
(WebCore::IDBAny::idbObjectStore):
(WebCore::IDBAny::idbTransaction):
(WebCore::IDBAny::scriptValue):
(WebCore::IDBAny::integer):
(WebCore::IDBAny::string):
(WebCore::IDBAny::keyPath):

  • Modules/indexeddb/IDBAny.h:

(WebCore::IDBAny::create):
(WebCore::IDBAny::createUndefined):
(WebCore::IDBAny::type):
(WebCore::IDBAny::~IDBAny): Deleted.
(WebCore::IDBAny::isLegacy): Deleted.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::create):
(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::~IDBCursor):
(WebCore::IDBCursor::sourcesDeleted):
(WebCore::IDBCursor::effectiveObjectStore):
(WebCore::IDBCursor::transaction):
(WebCore::IDBCursor::direction):
(WebCore::IDBCursor::key):
(WebCore::IDBCursor::primaryKey):
(WebCore::IDBCursor::value):
(WebCore::IDBCursor::source):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::uncheckedIterateCursor):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):
(WebCore::IDBCursor::activeDOMObjectName):
(WebCore::IDBCursor::canSuspendForDocumentSuspension):
(WebCore::IDBCursor::hasPendingActivity):
(WebCore::IDBCursor::decrementOutstandingRequestCount):

  • Modules/indexeddb/IDBCursor.h:

(WebCore::IDBCursor::info):
(WebCore::IDBCursor::setRequest):
(WebCore::IDBCursor::clearRequest):
(WebCore::IDBCursor::request):
(WebCore::IDBCursor::isKeyCursor):
(WebCore::IDBCursor::~IDBCursor): Deleted.
(WebCore::IDBCursor::continueFunction): Deleted.
(WebCore::IDBCursor::isModernCursor): Deleted.
(WebCore::IDBCursor::hasPendingActivity): Deleted.

  • Modules/indexeddb/IDBCursorWithValue.cpp:

(WebCore::IDBCursorWithValue::create):
(WebCore::IDBCursorWithValue::IDBCursorWithValue):
(WebCore::IDBCursorWithValue::~IDBCursorWithValue):

  • Modules/indexeddb/IDBCursorWithValue.h:

(WebCore::IDBCursorWithValue::~IDBCursorWithValue): Deleted.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::create):
(WebCore::IDBDatabase::IDBDatabase):
(WebCore::IDBDatabase::~IDBDatabase):
(WebCore::IDBDatabase::hasPendingActivity):
(WebCore::IDBDatabase::name):
(WebCore::IDBDatabase::version):
(WebCore::IDBDatabase::objectStoreNames):
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::close):
(WebCore::IDBDatabase::maybeCloseInServer):
(WebCore::IDBDatabase::activeDOMObjectName):
(WebCore::IDBDatabase::canSuspendForDocumentSuspension):
(WebCore::IDBDatabase::stop):
(WebCore::IDBDatabase::startVersionChangeTransaction):
(WebCore::IDBDatabase::didStartTransaction):
(WebCore::IDBDatabase::willCommitTransaction):
(WebCore::IDBDatabase::didCommitTransaction):
(WebCore::IDBDatabase::willAbortTransaction):
(WebCore::IDBDatabase::didAbortTransaction):
(WebCore::IDBDatabase::didCommitOrAbortTransaction):
(WebCore::IDBDatabase::fireVersionChangeEvent):
(WebCore::IDBDatabase::dispatchEvent):
(WebCore::IDBDatabase::didCreateIndexInfo):
(WebCore::IDBDatabase::didDeleteIndexInfo):

  • Modules/indexeddb/IDBDatabase.h:

(WebCore::IDBDatabase::info):
(WebCore::IDBDatabase::databaseConnectionIdentifier):
(WebCore::IDBDatabase::serverConnection):
(WebCore::IDBDatabase::isClosingOrClosed):
(WebCore::IDBDatabase::~IDBDatabase): Deleted.

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::shouldThrowSecurityException):
(WebCore::IDBFactory::create):
(WebCore::IDBFactory::IDBFactory):
(WebCore::IDBFactory::getDatabaseNames):
(WebCore::IDBFactory::open):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
(WebCore::IDBFactory::cmp):

  • Modules/indexeddb/IDBFactory.h:

(WebCore::IDBFactory::~IDBFactory): Deleted.

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::IDBIndex):
(WebCore::IDBIndex::~IDBIndex):
(WebCore::IDBIndex::activeDOMObjectName):
(WebCore::IDBIndex::canSuspendForDocumentSuspension):
(WebCore::IDBIndex::hasPendingActivity):
(WebCore::IDBIndex::name):
(WebCore::IDBIndex::objectStore):
(WebCore::IDBIndex::keyPathAny):
(WebCore::IDBIndex::keyPath):
(WebCore::IDBIndex::unique):
(WebCore::IDBIndex::multiEntry):
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::getKey):
(WebCore::IDBIndex::doGetKey):
(WebCore::IDBIndex::markAsDeleted):
(WebCore::IDBIndex::ref):
(WebCore::IDBIndex::deref):

  • Modules/indexeddb/IDBIndex.h:

(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::info):
(WebCore::IDBIndex::modernObjectStore):
(WebCore::IDBIndex::isDeleted):
(WebCore::IDBIndex::~IDBIndex): Deleted.
(WebCore::IDBIndex::isModern): Deleted.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::create):
(WebCore::IDBObjectStore::IDBObjectStore):
(WebCore::IDBObjectStore::~IDBObjectStore):
(WebCore::IDBObjectStore::activeDOMObjectName):
(WebCore::IDBObjectStore::canSuspendForDocumentSuspension):
(WebCore::IDBObjectStore::hasPendingActivity):
(WebCore::IDBObjectStore::name):
(WebCore::IDBObjectStore::keyPathAny):
(WebCore::IDBObjectStore::keyPath):
(WebCore::IDBObjectStore::indexNames):
(WebCore::IDBObjectStore::transaction):
(WebCore::IDBObjectStore::autoIncrement):
(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
(WebCore::IDBObjectStore::putForCursorUpdate):
(WebCore::IDBObjectStore::putOrAdd):
(WebCore::IDBObjectStore::deleteFunction):
(WebCore::IDBObjectStore::doDelete):
(WebCore::IDBObjectStore::modernDelete):
(WebCore::IDBObjectStore::clear):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
(WebCore::IDBObjectStore::count):
(WebCore::IDBObjectStore::doCount):
(WebCore::IDBObjectStore::markAsDeleted):
(WebCore::IDBObjectStore::rollbackInfoForVersionChangeAbort):
(WebCore::IDBObjectStore::visitReferencedIndexes):

  • Modules/indexeddb/IDBObjectStore.h:

(WebCore::IDBObjectStore::isDeleted):
(WebCore::IDBObjectStore::info):
(WebCore::IDBObjectStore::modernTransaction):
(WebCore::IDBObjectStore::~IDBObjectStore): Deleted.
(WebCore::IDBObjectStore::isModern): Deleted.

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::createDeleteRequest):
(WebCore::IDBOpenDBRequest::createOpenRequest):
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::~IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onError):
(WebCore::IDBOpenDBRequest::versionChangeTransactionDidFinish):
(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBOpenDBRequest::dispatchEvent):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::onDeleteDatabaseSuccess):
(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::requestBlocked):

  • Modules/indexeddb/IDBOpenDBRequest.h:

(WebCore::IDBOpenDBRequest::databaseIdentifier):
(WebCore::IDBOpenDBRequest::version):
(WebCore::IDBOpenDBRequest::~IDBOpenDBRequest): Deleted.

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::create):
(WebCore::IDBRequest::createCount):
(WebCore::IDBRequest::createGet):
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::~IDBRequest):
(WebCore::IDBRequest::result):
(WebCore::IDBRequest::errorCode):
(WebCore::IDBRequest::error):
(WebCore::IDBRequest::source):
(WebCore::IDBRequest::setSource):
(WebCore::IDBRequest::setVersionChangeTransaction):
(WebCore::IDBRequest::transaction):
(WebCore::IDBRequest::readyState):
(WebCore::IDBRequest::sourceObjectStoreIdentifier):
(WebCore::IDBRequest::sourceIndexIdentifier):
(WebCore::IDBRequest::requestedIndexRecordType):
(WebCore::IDBRequest::eventTargetInterface):
(WebCore::IDBRequest::activeDOMObjectName):
(WebCore::IDBRequest::canSuspendForDocumentSuspension):
(WebCore::IDBRequest::hasPendingActivity):
(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::enqueueEvent):
(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):
(WebCore::IDBRequest::setResultToUndefined):
(WebCore::IDBRequest::resultCursor):
(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):
(WebCore::IDBRequest::requestCompleted):
(WebCore::IDBRequest::onError):
(WebCore::IDBRequest::onSuccess):

  • Modules/indexeddb/IDBRequest.h:

(WebCore::IDBRequest::resourceIdentifier):
(WebCore::IDBRequest::connection):
(WebCore::IDBRequest::modernResult):
(WebCore::IDBRequest::pendingCursor):
(WebCore::IDBRequest::requestType):
(WebCore::IDBRequest::isOpenDBRequest):
(WebCore::IDBRequest::~IDBRequest): Deleted.

  • Modules/indexeddb/IDBRequestCompletionEvent.cpp:

(WebCore::IDBRequestCompletionEvent::IDBRequestCompletionEvent):

  • Modules/indexeddb/IDBRequestCompletionEvent.h:

(WebCore::IDBRequestCompletionEvent::create):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::create):
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::~IDBTransaction):
(WebCore::IDBTransaction::mode):
(WebCore::IDBTransaction::db):
(WebCore::IDBTransaction::serverConnection):
(WebCore::IDBTransaction::error):
(WebCore::IDBTransaction::objectStore):
(WebCore::IDBTransaction::abortDueToFailedRequest):
(WebCore::IDBTransaction::transitionedToFinishing):
(WebCore::IDBTransaction::abort):
(WebCore::IDBTransaction::abortOnServerAndCancelRequests):
(WebCore::IDBTransaction::activeDOMObjectName):
(WebCore::IDBTransaction::canSuspendForDocumentSuspension):
(WebCore::IDBTransaction::hasPendingActivity):
(WebCore::IDBTransaction::stop):
(WebCore::IDBTransaction::isActive):
(WebCore::IDBTransaction::isFinishedOrFinishing):
(WebCore::IDBTransaction::addRequest):
(WebCore::IDBTransaction::removeRequest):
(WebCore::IDBTransaction::scheduleOperation):
(WebCore::IDBTransaction::scheduleOperationTimer):
(WebCore::IDBTransaction::operationTimerFired):
(WebCore::IDBTransaction::commit):
(WebCore::IDBTransaction::commitOnServer):
(WebCore::IDBTransaction::finishAbortOrCommit):
(WebCore::IDBTransaction::didStart):
(WebCore::IDBTransaction::notifyDidAbort):
(WebCore::IDBTransaction::didAbort):
(WebCore::IDBTransaction::didCommit):
(WebCore::IDBTransaction::fireOnComplete):
(WebCore::IDBTransaction::fireOnAbort):
(WebCore::IDBTransaction::enqueueEvent):
(WebCore::IDBTransaction::dispatchEvent):
(WebCore::IDBTransaction::createObjectStore):
(WebCore::IDBTransaction::createObjectStoreOnServer):
(WebCore::IDBTransaction::didCreateObjectStoreOnServer):
(WebCore::IDBTransaction::createIndex):
(WebCore::IDBTransaction::createIndexOnServer):
(WebCore::IDBTransaction::didCreateIndexOnServer):
(WebCore::IDBTransaction::requestOpenCursor):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::openCursorOnServer):
(WebCore::IDBTransaction::didOpenCursorOnServer):
(WebCore::IDBTransaction::iterateCursor):
(WebCore::IDBTransaction::iterateCursorOnServer):
(WebCore::IDBTransaction::didIterateCursorOnServer):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestGetValue):
(WebCore::IDBTransaction::requestGetKey):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::getRecordOnServer):
(WebCore::IDBTransaction::didGetRecordOnServer):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::getCountOnServer):
(WebCore::IDBTransaction::didGetCountOnServer):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::deleteRecordOnServer):
(WebCore::IDBTransaction::didDeleteRecordOnServer):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::clearObjectStoreOnServer):
(WebCore::IDBTransaction::didClearObjectStoreOnServer):
(WebCore::IDBTransaction::requestPutOrAdd):
(WebCore::IDBTransaction::putOrAddOnServer):
(WebCore::IDBTransaction::didPutOrAddOnServer):
(WebCore::IDBTransaction::deleteObjectStore):
(WebCore::IDBTransaction::deleteObjectStoreOnServer):
(WebCore::IDBTransaction::didDeleteObjectStoreOnServer):
(WebCore::IDBTransaction::deleteIndex):
(WebCore::IDBTransaction::deleteIndexOnServer):
(WebCore::IDBTransaction::didDeleteIndexOnServer):
(WebCore::IDBTransaction::operationDidComplete):
(WebCore::IDBTransaction::establishOnServer):
(WebCore::IDBTransaction::activate):
(WebCore::IDBTransaction::deactivate):

  • Modules/indexeddb/IDBTransaction.h:

(WebCore::IDBTransaction::info):
(WebCore::IDBTransaction::database):
(WebCore::IDBTransaction::originalDatabaseInfo):
(WebCore::IDBTransaction::isVersionChange):
(WebCore::IDBTransaction::isReadOnly):
(WebCore::IDBTransaction::isFinished):
(WebCore::TransactionActivator::TransactionActivator):
(WebCore::TransactionActivator::~TransactionActivator):
(WebCore::IDBTransaction::~IDBTransaction): Deleted.

  • Modules/indexeddb/IDBVersionChangeEvent.cpp:

(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
(WebCore::IDBVersionChangeEvent::newVersion):
(WebCore::IDBVersionChangeEvent::eventInterface):
(WebCore::IDBVersionChangeEvent::create): Deleted.

  • Modules/indexeddb/IDBVersionChangeEvent.h:

(isType):

  • Modules/indexeddb/client/IDBAnyImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBAnyImpl.h: Removed.
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:
  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBCursorImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBCursorImpl.h: Removed.
  • Modules/indexeddb/client/IDBCursorWithValueImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBCursorWithValueImpl.h: Removed.
  • Modules/indexeddb/client/IDBDatabaseImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBDatabaseImpl.h: Removed.
  • Modules/indexeddb/client/IDBFactoryImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBFactoryImpl.h: Removed.
  • Modules/indexeddb/client/IDBIndexImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBIndexImpl.h: Removed.
  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBObjectStoreImpl.h: Removed.
  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBOpenDBRequestImpl.h: Removed.
  • Modules/indexeddb/client/IDBRequestImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBRequestImpl.h: Removed.
  • Modules/indexeddb/client/IDBTransactionImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBTransactionImpl.h: Removed.
  • Modules/indexeddb/client/IDBVersionChangeEventImpl.cpp: Removed.
  • Modules/indexeddb/client/IDBVersionChangeEventImpl.h: Removed.
  • Modules/indexeddb/client/TransactionOperation.cpp:
  • Modules/indexeddb/client/TransactionOperation.h:
  • Modules/indexeddb/shared/IDBCursorInfo.cpp:

(WebCore::IDBCursorInfo::objectStoreCursor):
(WebCore::IDBCursorInfo::indexCursor):
(WebCore::IDBCursorInfo::IDBCursorInfo):

  • Modules/indexeddb/shared/IDBCursorInfo.h:
  • Modules/indexeddb/shared/IDBRequestData.cpp:

(WebCore::IDBRequestData::IDBRequestData):

  • Modules/indexeddb/shared/IDBRequestData.h:
  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::IDBResourceIdentifier):

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:
  • Modules/indexeddb/shared/IDBTransactionInfo.cpp:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:
  • Modules/indexeddb/shared/InProcessIDBServer.h:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSIDBCursorCustom.cpp:

(WebCore::JSIDBCursor::visitAdditionalChildren):

  • bindings/js/JSIDBCursorWithValueCustom.cpp:
  • bindings/js/JSIDBIndexCustom.cpp:

(WebCore::JSIDBIndex::visitAdditionalChildren):

  • bindings/js/JSIDBObjectStoreCustom.cpp:

(WebCore::JSIDBObjectStore::visitAdditionalChildren):

  • inspector/InspectorIndexedDBAgent.cpp:

Source/WebKit2:

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
3:41 PM Changeset in webkit [198761] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Tools

Upstream webkitdirs.pm from trunk.
rdar://problem/25253479

Rubber-stamped by Dean Johnson.

  • Scripts/webkitdirs.pm:
3:34 PM Changeset in webkit [198760] by BJ Burg
  • 5 edits in trunk/Source/WebKit2

Web Automation: add commands to move and resize a browsing context's window
​https://bugs.webkit.org/show_bug.cgi?id=155349
<rdar://problem/25104911>

Reviewed by Timothy Hatcher.

Parse the new origin or size and request the window to change to the
new frame. This calls through to PageUIClient::setWindowFrame().

  • UIProcess/Automation/Automation.json:

Add new enum values for protocol parsing error cases.
Add new commands.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::resizeWindowOfBrowsingContext):
(WebKit::WebAutomationSession::moveWindowOfBrowsingContext):
Added. Parse the incoming payload and bail if nothing would happen
or the values are not usable or out of range. Complain if a change
did not happen when the requested and actual size are different.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/WebPageProxy.h: Move setWindowFrame to be public.
3:34 PM Changeset in webkit [198759] by BJ Burg
  • 3 edits in trunk/Source/WebKit2

Web Automation: split protocol object BrowsingContext.windowFrame into two separate members
​https://bugs.webkit.org/show_bug.cgi?id=155952
<rdar://problem/25393597>

Reviewed by Timothy Hatcher.

Using the name 'windowFrame' causes conflicts with some Objective-C code.

  • UIProcess/Automation/Automation.json:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::buildBrowsingContextForPage):

2:37 PM Changeset in webkit [198758] by mmaxfield@apple.com
  • 4 edits
    12 adds in trunk

[RTL Scrollbars] Position:sticky can be positioned under vertical RTL scrollbar
​https://bugs.webkit.org/show_bug.cgi?id=155949

Reviewed by Simon Fraser.

Source/WebCore:

When performing sticky positioning logic, we were setting the clip rect's position
equal to the scrollPosition of the layer. This computation assumes that the top
left of the scroll position is the same as the top left of the clip rect. When
using RTL scrollbars, this is not true, so this code simply needs to be made aware
of the presence of an RTL scrollbar.

Tests: fast/scrolling/rtl-scrollbars-sticky-document-2.html

fast/scrolling/rtl-scrollbars-sticky-document.html
fast/scrolling/rtl-scrollbars-sticky-iframe-2.html
fast/scrolling/rtl-scrollbars-sticky-iframe.html
fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-2.html
fast/scrolling/rtl-scrollbars-sticky-overflow-scroll.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::constrainingRectForStickyPosition):

LayoutTests:

  • platform/ios-simulator/TestExpectations:
  • fast/scrolling/rtl-scrollbars-sticky-document-2-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-document-2.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-document-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-document.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-iframe-2-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-iframe-2.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-iframe-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-iframe.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-2-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-2.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll.html: Added.
1:59 PM Changeset in webkit [198757] by clopez@igalia.com
  • 3 edits in trunk/Source/WebKit2

[CMake] Unreviewed build fix after r198736.
​https://bugs.webkit.org/show_bug.cgi?id=155221

Unreviewed.

  • CMakeLists.txt: Fix typo, add WebAutomationSession.cpp and declare JavaScriptCore_SCRIPTS_DIR.
  • WebProcess/Automation/WebAutomationSessionProxy.h: Add missing include.
1:58 PM Changeset in webkit [198756] by tonikitoo@webkit.org
  • 3 edits in trunk/Source/WebCore

Rename PlatformWheelEvent::isEndGesture to isEndOfMomentumScroll.
​https://bugs.webkit.org/show_bug.cgi?id=155940

Reviewed by Simon Fraser.

No new tests needed.

The new name better reflects its purpose. Also it is a preparation to fix bug 155746.

  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::shouldResetLatching):
(WebCore::PlatformWheelEvent::isEndOfMomentumScroll: Renamed; Formally isEndGesture.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::gestureShouldBeginSnap):

1:32 PM Changeset in webkit [198755] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Use std::exchange for std::functions instead of WTFMove
​https://bugs.webkit.org/show_bug.cgi?id=155950
rdar://problem/25348817

Reviewed by Anders Carlsson.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::setPendingDownloadID):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
This makes the member variable nullptr when the value is moved so we don't use it again.

11:52 AM Changeset in webkit [198754] by BJ Burg
  • 5 edits in trunk/Source/WebKit2

Web Automation: report the browsing context's window frame (size and origin)
​https://bugs.webkit.org/show_bug.cgi?id=155323
<rdar://problem/25094089>

Reviewed by Timothy Hatcher.

To prepare for implementing resize and move commands, add a
windowFrame member to the browsing context protocol type.

  • UIProcess/Automation/Automation.json:

Add a frame Rect to BrowsingContext.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::handleForWebPageProxy):
(WebKit::WebAutomationSession::buildBrowsingContextForPage):
Extract the code to build a BrowsingContext object. Add
code to calculate and insert the page's window frame size.

(WebKit::WebAutomationSession::getBrowsingContexts):
(WebKit::WebAutomationSession::getBrowsingContext):
(WebKit::WebAutomationSession::createBrowsingContext):
(WebKit::WebAutomationSession::switchToBrowsingContext):
Refactoring as above.

  • UIProcess/Automation/WebAutomationSession.h:

Adjust signatures.

  • UIProcess/WebPageProxy.h: Make getWindowFrame public.
11:39 AM Changeset in webkit [198753] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Setup cloned continuation renderer properly.
​https://bugs.webkit.org/show_bug.cgi?id=155640

Reviewed by Simon Fraser.

Set the "renderer has outline ancestor" flag on the cloned inline renderer when
we split the original renderer for continuation.
It ensures that when the cloned part of the continuation requests repaint, we properly
invalidate the ancestor outline (if needed).

Source/WebCore:

Test: fast/inline/outline-with-continuation-assert.html

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clone):

LayoutTests:

  • fast/inline/outline-with-continuation-assert-expected.txt: Added.
  • fast/inline/outline-with-continuation-assert.html: Added.
11:21 AM Changeset in webkit [198752] by BJ Burg
  • 18 edits in trunk/Source/JavaScriptCore

Web Inspector: protocol generator should generate C++ string-to-enum helper functions
​https://bugs.webkit.org/show_bug.cgi?id=155691
<rdar://problem/25258078>

Reviewed by Timothy Hatcher.

There's a lot of code throughout the Inspector agents and automation code
that needs to convert a raw string into a typed protocol enum. Generate
some helpers that do this conversion so clients can move over to using it.

These helpers are necessary for when we eventually switch to calling backend
dispatcher handlers with typed arguments instead of untyped JSON objects.

To correctly generate a conversion function for an anonymous enum, the
generator needs to be able to get the containing object type's declaration.
Since the model's Type object each have only one instance, there is a
one-to-one association between type and its declaration.

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:

(CppProtocolTypesHeaderGenerator.generate_output):
(CppProtocolTypesHeaderGenerator._generate_forward_declarations):
Clean up this method to use methodcaller to sort types by raw name.

(_generate_declarations_for_enum_conversion_methods):
(_generate_declarations_for_enum_conversion_methods.return_type_with_export_macro):
(_generate_declarations_for_enum_conversion_methods.type_member_is_anonymous_enum_type):
Added. Generates a new section with an unfilled template and specializations of
the template for every named and anonymous enum in every domain. Guards for
domains wrap the forward declarations. This is added to the end of the header
file so that specializations for both types of enums are in the same place.

  • inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator.generate_output):
(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain):
(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain.type_member_is_anonymous_enum_type):
(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain.generate_conversion_method_body):
Added. Generate a static array of offsets into the enum constant value array.
Then, loop over this array of offsets and do string comparisons against the
provided string and enum constant values at the relevant offsets for this enum.

  • inspector/scripts/codegen/generator_templates.py:

(GeneratorTemplates): Update copyright year in generated files.

  • inspector/scripts/codegen/models.py:

(AliasedType.init):
(EnumType.init):
(EnumType.enum_values):
(EnumType.declaration):
(ArrayType.init):
(ArrayType.declaration):
(ObjectType.init):
(ObjectType.declaration):
(Protocol.resolve_types):
(Protocol.lookup_type_reference):
Pass the type declaration to Type constructors if available. If not,
fill in a placeholder name for the type in the constructor instead of caller.

Rebaseline all the things, mostly for copyright block changes.

  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/expected/enum-values.json-result:
  • inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/expected/same-type-id-different-domain.json-result:
  • inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
  • inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
11:01 AM Changeset in webkit [198751] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Use font-variant-numeric: tabular-nums instead of -apple-system-monospaced-numbers
​https://bugs.webkit.org/show_bug.cgi?id=155826
<rdar://problem/25330631>

Reviewed by Myles C. Maxfield.

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror .CodeMirror-linenumber):

  • UserInterface/Views/DataGrid.css:

(.data-grid td):

  • UserInterface/Views/DefaultDashboardView.css:

(.toolbar .dashboard.default > .item):

  • UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:

(.object-tree-array-index .index-name):

10:49 AM Changeset in webkit [198750] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Add font-variant-numeric to CSS autocompletions
​https://bugs.webkit.org/show_bug.cgi?id=155941
<rdar://problem/25381735>

Reviewed by Timothy Hatcher.

Also, remove -apple-system-monospaced-numbers.
font-variant-numeric: tabular-nuns should be used instead.

  • UserInterface/Models/CSSKeywordCompletions.js:
10:49 AM MathML/Early_2016_Refactoring created by fred.wang@free.fr
10:48 AM Changeset in webkit [198749] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking transitions/cancel-transition.html as flaky on ios-sim-wk2
​https://bugs.webkit.org/show_bug.cgi?id=155948

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
10:47 AM Changeset in webkit [198748] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION (r195303): Web Inspector: Wrong indentation in the type coverage profiler popovers
​https://bugs.webkit.org/show_bug.cgi?id=155930
<rdar://problem/25377042>

Reviewed by Timothy Hatcher.

Increased specificity of TypeTreeView CSS selectors, and added new
overrides for rules made global by r195303, which don't apply to the
TypeTreeView's or its tree elements.

  • UserInterface/Views/TypeTreeElement.css:

(.item.type-tree-element):
(.item.type-tree-element > .titles):
(.item.type-tree-element > .disclosure-button):
(.item.type-tree-element.parent > .disclosure-button):
(.item.type-tree-element.parent.expanded > .disclosure-button):
(.item.type-tree-element > .icon):
(.item.type-tree-element.prototype):
(.item.type-tree-element.prototype:focus):
(.item.type-tree-element.prototype + ol):
(.type-tree-element): Deleted.
(.type-tree-element > .titles): Deleted.
(.type-tree-element > .disclosure-button): Deleted.
(.type-tree-element.parent > .disclosure-button): Deleted.
(.type-tree-element.parent.expanded > .disclosure-button): Deleted.
(.type-tree-element > .icon): Deleted.
(.type-tree-element.prototype): Deleted.
(.type-tree-element.prototype:focus): Deleted.
(.type-tree-element.prototype + ol): Deleted.

  • UserInterface/Views/TypeTreeView.css:

(.tree-outline.type li):

  • UserInterface/Views/TypeTreeView.js:

(WebInspector.TypeTreeView):
Use custom indentation.

10:46 AM Changeset in webkit [198747] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Large repaints while typing in the console tab
​https://bugs.webkit.org/show_bug.cgi?id=155627
<rdar://problem/25234875>

Reviewed by Timothy Hatcher.

Specify the height of flexbox elements to reduce repaint areas.

  • UserInterface/Views/Main.css:

(#navigation-sidebar):
(#content): z-index doesn't affect repaint areas once the height is set.
(#details-sidebar):

10:44 AM Changeset in webkit [198746] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/loader/scroll-position-restored-on-back.html as flaky on ios-sim debug WK2
​https://bugs.webkit.org/show_bug.cgi?id=155947

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
10:17 AM Changeset in webkit [198745] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Inspector Memory Timeline sometimes encounters unstoppable rAF drawing
​https://bugs.webkit.org/show_bug.cgi?id=155906

Reviewed by Anders Carlsson.

It was possible to get Web Inspector into a state where repeated, expensive
requestAnimationFrame calls prevented user events from being handled, making it
unresponsive.

requestAnimationFrame uses callOnMainThread() to get a notification from the
CVDispayLink thread to the main thread, which is a -performSelectorOnMainThread...
Under the hood, this ends up as a CFRunLoopPerformBlock().

User events come in via Connection::enqueueIncomingMessage(), which uses RunLoop::main()::dispatch(),
which uses a CFRunLoopSource. Evidently, repeated calls to CFRunLoopPerformBlock() can prevent the
CFRunLoopSource from being handled.

Fix by moving requestAnimationFrame from callOnMainThread() to RunLoop::main()::dispatch().

  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:

(WebCore::DisplayRefreshMonitorMac::displayLinkFired):

10:15 AM Changeset in webkit [198744] by jdiggs@igalia.com
  • 2 edits in trunk/Tools

Add myself as reviewer

9:34 AM Changeset in webkit [198743] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Unreviewed, fix the build.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

InspectorProtocolObjects.h was renamed to AutomationProtocolObjects.h.

9:15 AM Changeset in webkit [198742] by jer.noble@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed rebaselining; Different track IDs are selected in El Capitan.

  • platform/mac/media/track/video-track-alternate-groups-expected.txt: Added.
9:04 AM Changeset in webkit [198741] by Chris Dumez
  • 13 edits in trunk

Disk cache speculative validation requests do not have the 'Referer' HTTP header set
​https://bugs.webkit.org/show_bug.cgi?id=155890
<rdar://problem/25279962>

Reviewed by Antti Koivisto.

Source/WebCore:

Export a couple more symbols so we can use them from WebKit2.

  • platform/network/HTTPHeaderMap.h:
  • platform/network/ResourceRequestBase.h:

Source/WebKit2:

Disk cache speculative validation requests did not have the 'Referer'
HTTP header set. This was breaking some streaming sites (such as
twitch.tv).

We now store all the original request's HTTP headers in the disk cache
so we can re-use them for the speculative validation requests. When the
actual request comes later on, we also make sure that the HTTP headers
used in the speculative validation request match the ones from the
effective request. If they don't we don't use the speculatively
validated resource as the server may return a different resource in
such case.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::retrieve):
Pass the effective ResourceRequest to the NetworkCacheSpeculativeLoadManager
so it can check that the speculative validation request's HTTP headers
match the effective request's headers.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::revalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::wasRevalidated):
We now have a member in PreloadedEntry to keep the request used for validation, if
speculative validation was done. This is so that we can compare its HTTP headers
with the ones of the effective request later on.

(WebKit::NetworkCache::dumpHTTPHeadersDiff):
Debug function that prints which HTTP headers did not match in the speculative
validation request and in the effective request.

(WebKit::NetworkCache::requestsHeadersMatch):
New utility function to check that the speculative validation request's HTTP
headers match the ones of the effective requests. Note that we allow for
headers related to validation to differ.

(WebKit::NetworkCache::SpeculativeLoadManager::canUsePreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::canUsePendingPreload):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):
Check that the speculative validation request's HTTP headers match the
ones of the effective request. If they don't then do not use the
speculatively validated resource.

(WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:

(WebKit::NetworkCache::SubresourceInfo::encode):
(WebKit::NetworkCache::SubresourceInfo::decode):
(WebKit::NetworkCache::SubresourcesEntry::encodeAsStorageRecord):
(WebKit::NetworkCache::SubresourcesEntry::decodeStorageRecord):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:

(WebKit::NetworkCache::SubresourceInfo::SubresourceInfo):

  • Keep all the request's headers in SubresourceInfo instead of just the 'User-Agent' one.
  • Drop the custom copy constructor / assignment operator for SubresourceInfo that were making isolated copies on the members. We technically don't need to use SubresourceInfo objects in other threads than the main one. In SpeculativeLoadManager::preloadEntry(), we now make capture a SubresourceInfo* in the lambda to avoid calling the copy constructor. We also make sure that the object gets destroyed in the lambda function, which is executed in the main thread.

LayoutTests:

Update existing layout test to make sure that speculative validation
requests have their HTTP 'Referer' header set.

  • http/tests/cache/disk-cache/speculative-validation/validation-request-expected.txt:
  • http/tests/cache/disk-cache/speculative-validation/validation-request.html:
8:57 AM Changeset in webkit [198740] by timothy@apple.com
  • 8 edits in trunk/Source/WebKit2

Web Automation: Add Automation protocol commands to handle JavaScript dialogs

​https://bugs.webkit.org/show_bug.cgi?id=155888
rdar://problem/25360218

Reviewed by Brian Burg.

  • UIProcess/API/APIAutomationSessionClient.h:

(API::AutomationSessionClient::isShowingJavaScriptDialogOnPage): Added.
(API::AutomationSessionClient::dismissCurrentJavaScriptDialogOnPage): Added.
(API::AutomationSessionClient::acceptCurrentJavaScriptDialogOnPage): Added.
(API::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage): Added.
(API::AutomationSessionClient::setUserInputForCurrentJavaScriptPromptOnPage): Added.

  • UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h:
  • UIProcess/Automation/Automation.json: Added new commands.
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::isShowingJavaScriptDialog): Added.
(WebKit::WebAutomationSession::dismissCurrentJavaScriptDialog): Added.
(WebKit::WebAutomationSession::acceptCurrentJavaScriptDialog): Added.
(WebKit::WebAutomationSession::messageOfCurrentJavaScriptDialog): Added.
(WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt): Added.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Cocoa/AutomationSessionClient.h:
  • UIProcess/Cocoa/AutomationSessionClient.mm:

(WebKit::AutomationSessionClient::AutomationSessionClient): Added.
(WebKit::AutomationSessionClient::isShowingJavaScriptDialogOnPage): Added.
(WebKit::AutomationSessionClient::dismissCurrentJavaScriptDialogOnPage): Added.
(WebKit::AutomationSessionClient::acceptCurrentJavaScriptDialogOnPage): Added.
(WebKit::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage): Added.
(WebKit::AutomationSessionClient::setUserInputForCurrentJavaScriptPromptOnPage): Added.

8:57 AM Changeset in webkit [198739] by timothy@apple.com
  • 11 edits in trunk/Source

Web Automation: Add commands to compute layout of an element

​https://bugs.webkit.org/show_bug.cgi?id=155841
rdar://problem/25340075

Reviewed by Brian Burg.

Source/WebCore:

  • dom/Element.h: Mark scrollIntoViewIfNeeded() method as exported so WK2 can use it.
  • platform/ScrollView.h: Mark rootViewToContents(IntRect) method as exported so WK2 can use it.

Source/WebKit2:

  • UIProcess/Automation/Automation.json: Added computeElementLayout.
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::computeElementLayout): Added.
(WebKit::WebAutomationSession::didComputeElementLayout): Added.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.messages.in:

(DidComputeElementLayout): Added.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::computeElementLayout): Added.

  • WebProcess/Automation/WebAutomationSessionProxy.h:
  • WebProcess/Automation/WebAutomationSessionProxy.messages.in:

(ComputeElementLayout): Added.

8:57 AM Changeset in webkit [198738] by timothy@apple.com
  • 12 edits in trunk/Source

Web Automation: Add Automation protocol commands to resolve frames as handles

​https://bugs.webkit.org/show_bug.cgi?id=155650
rdar://problem/25242422

Reviewed by Brian Burg.

Source/WebCore:

  • page/DOMWindow.h: Marked focus() method as exported so WK2 can use them.
  • page/FrameTree.h: Marked scopedChild() methods as exported so WK2 can use them.

Source/WebKit2:

  • UIProcess/Automation/Automation.json:

Added resolveFrameHandle and resolveParentFrameHandle.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::webFrameProxyForHandle): Added.
(WebKit::WebAutomationSession::handleForWebFrameID): Added.
(WebKit::WebAutomationSession::handleForWebFrameProxy): Added.
(WebKit::WebAutomationSession::evaluateJavaScriptFunction): Use frame handles now.
(WebKit::WebAutomationSession::resolveChildFrameHandle): Added.
(WebKit::WebAutomationSession::didChildResolveFrame): Added.
(WebKit::WebAutomationSession::resolveParentFrameHandle): Added.
(WebKit::WebAutomationSession::didResolveParentFrame): Added.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.messages.in:

(DidResolveChildFrame): Added.
(DidResolveParentFrame): Added.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::elementForNodeHandle): Added.
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithOrdinal): Added.
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle): Added.
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithName): Added.
(WebKit::WebAutomationSessionProxy::resolveParentFrame): Added.
(WebKit::WebAutomationSessionProxy::focusFrame): Added.

  • WebProcess/Automation/WebAutomationSessionProxy.h:
  • WebProcess/Automation/WebAutomationSessionProxy.messages.in:

(ResolveChildFrameWithOrdinal): Added.
(ResolveChildFrameWithNodeHandle): Added.
(ResolveChildFrameWithName): Added.
(ResolveParentFrame): Added.
(FocusFrame): Added.

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(AutomationSessionProxy.prototype.nodeForIdentifier): Added.
Public method that eats the exception thrown by the private method.

8:57 AM Changeset in webkit [198737] by timothy@apple.com
  • 9 edits in trunk/Source/WebKit2

Web Automation: Add Automation.evaluateJavaScriptFunction

​https://bugs.webkit.org/show_bug.cgi?id=155524
rdar://problem/25181888

Reviewed by Joseph Pecoraro.

  • UIProcess/Automation/Automation.json: Added evaluateJavaScriptFunction command.
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::evaluateJavaScriptFunction): Added.
(WebKit::WebAutomationSession::didEvaluateJavaScriptFunction): Added.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.messages.in: Added didEvaluateJavaScriptFunction.
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::toJSArray): Added.
(WebKit::callPropertyFunction): Added.
(WebKit::evaluateJavaScriptCallback): Added.
(WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame): Dispatch pending callbacks as errors.
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Added.
(WebKit::WebAutomationSessionProxy::didEvaluateJavaScriptFunction): Added.

  • WebProcess/Automation/WebAutomationSessionProxy.h:
  • WebProcess/Automation/WebAutomationSessionProxy.js:

(AutomationSessionProxy): Added maps for node handles.
(AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Added.
(AutomationSessionProxy.prototype._jsonParse): Added.
(AutomationSessionProxy.prototype._jsonStringify): Added.
(AutomationSessionProxy.prototype._reviveJSONValue): Added.
(AutomationSessionProxy.prototype._replaceJSONValue): Added.
(AutomationSessionProxy.prototype._createNodeHandle): Added.
(AutomationSessionProxy.prototype._nodeForIdentifier): Added.
(AutomationSessionProxy.prototype._identifierForNode): Added.

  • WebProcess/Automation/WebAutomationSessionProxy.messages.in: Added evaluateJavaScriptFunction.
8:56 AM Changeset in webkit [198736] by timothy@apple.com
  • 12 edits
    6 adds in trunk/Source/WebKit2

Add WebAutomationSessionProxy for WebProcess side automation tasks

​https://bugs.webkit.org/show_bug.cgi?id=155221
rdar://problem/25054868

Reviewed by Joseph Pecoraro.

  • CMakeLists.txt: Add build step to build-in WebAutomationSessionProxy.js.
  • DerivedSources.make: Ditto.
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::~WebAutomationSession):
(WebKit::WebAutomationSession::setProcessPool): Add / remove message receiver.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.messages.in: Added.

Test message to get things to build.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::removeMessageReceiver):
(WebKit::WebProcessPool::setAutomationSession):

  • UIProcess/WebProcessPool.h:
  • WebKit2.xcodeproj/project.pbxproj: Added new files.
  • WebProcess/Automation/WebAutomationSessionProxy.cpp: Added.

(WebKit::toJSString):
(WebKit::toJSValue):
(WebKit::WebAutomationSessionProxy::WebAutomationSessionProxy):
(WebKit::WebAutomationSessionProxy::~WebAutomationSessionProxy):
(WebKit::evaluate):
(WebKit::createUUID):
(WebKit::WebAutomationSessionProxy::scriptObjectForFrame):
(WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame):
Create a script object per frame that is evaluated from WebAutomationSessionProxy.js.
Clear the script object when the window object is cleared.

  • WebProcess/Automation/WebAutomationSessionProxy.h: Added.

(WebKit::WebAutomationSessionProxy::test):
Added test message to let the messages files build.

  • WebProcess/Automation/WebAutomationSessionProxy.js: Added.
  • WebProcess/Automation/WebAutomationSessionProxy.messages.in: Added.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
Call WebAutomationSessionProxy::didClearWindowObjectForFrame to clear the script object.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureAutomationSessionProxy):
(WebKit::WebProcess::destroyAutomationSessionProxy):
Creates and destroys the WebAutomationSessionProxy when the UIProcess WebAutomationSession
is set or removed on the WebProcessPool.

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::automationSessionProxy): Added.

  • WebProcess/WebProcess.messages.in: Added. Test message to get things to build.
8:23 AM Changeset in webkit [198735] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebCore

Remove USE(TEXTURE_MAPPER) guards inside TextureMapper sources.
​https://bugs.webkit.org/show_bug.cgi?id=155944

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-03-28
Reviewed by Michael Catanzaro.

After r196429 TextureMapper sources are built only in ports which actually
use TextureMapper, so USE(TEXTURE_MAPPER) guards in them are redundant now.

No new tests needed.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapper.cpp:
  • platform/graphics/texmap/TextureMapper.h:
  • platform/graphics/texmap/TextureMapperBackingStore.cpp:
  • platform/graphics/texmap/TextureMapperBackingStore.h:
  • platform/graphics/texmap/TextureMapperFPSCounter.cpp:
  • platform/graphics/texmap/TextureMapperFPSCounter.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:
  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/TextureMapperTile.cpp:
  • platform/graphics/texmap/TextureMapperTile.h:
  • platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
  • platform/graphics/texmap/TextureMapperTiledBackingStore.h:
7:06 AM Changeset in webkit [198734] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Mark failing indexeddb tests to failure

Unreviewed EFL gardening.

Additionally a shadow dom test is marked to failure because shadow dom is not enabled on EFL port yet.

  • platform/efl/TestExpectations:
7:03 AM Changeset in webkit [198733] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Tried to fix the build after r198728.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::gestureEvent):

4:22 AM Changeset in webkit [198732] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebCore

[css-grid] Remove unneeded lines in offsetAndBreadthForPositionedChild()
​https://bugs.webkit.org/show_bug.cgi?id=155788

Reviewed by Sergio Villar Senin.

Just remove 2 lines/variables that were not needed at all in
RenderGrid::offsetAndBreadthForPositionedChild().

No new tests, no change of behavior.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):

1:45 AM Changeset in webkit [198731] by Hunseop Jeong
  • 2 edits in trunk/LayoutTests

[EFL] Remove the more passed tests after r198728

Unreviewed EFL gardening.

  • platform/efl/TestExpectations:
1:02 AM Changeset in webkit [198730] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

Unreviewed GTK build fix for the threaded compositor feature after r198655.
Adjust the first parameter of ThreadSafeCoordinatedSurface::copyToTexture().

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp:

(WebKit::ThreadSafeCoordinatedSurface::copyToTexture):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.h:

Mar 27, 2016:

11:47 PM Changeset in webkit [198729] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Removed redundant #if conditions in ANGLEWebKitBridge.h
​https://bugs.webkit.org/show_bug.cgi?id=155880

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-03-27
Reviewed by Csaba Osztrogonác.

GTK, Efl, AppleWin, and WinCairo ports can be built only with cmake,
so condition !defined(BUILDING_WITH_CMAKE) implies
!PLATFORM(GTK) && !PLATFORM(EFL) && !PLATOFRM(WIN).

No new tests needed.

  • platform/graphics/ANGLEWebKitBridge.h:
10:59 PM Changeset in webkit [198728] by Hunseop Jeong
  • 7 edits in trunk

[EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
PerformanceTests:

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

Reviewed by Darin Adler.

  • Skipped: Unskip the Bindings/event-target-wrapper test.

Source/WebKit2:

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

Reviewed by Darin Adler.

UI events are suppressed in webPage after r188793.
I revert the r136133 for passing the events to WebPage

  • WebProcess/WebPage/WebPage.cpp: Removed the codes which was uploaded at r136133.

(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::wheelEvent):
(WebKit::WebPage::keyEvent):
(WebKit::WebPage::touchEvent):
(WebKit::WebPage::canHandleUserEvents): Deleted.

  • WebProcess/WebPage/WebPage.h:

LayoutTests:

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

Reviewed by Darin Adler.

  • platform/efl/TestExpectations: Unskip the passed tests.
10:07 PM Changeset in webkit [198727] by dbates@webkit.org
  • 2 edits in trunk

WebKit.xcworkspace "All Source" scheme always copies OS X WebKitSystemInterface libraries
​https://bugs.webkit.org/show_bug.cgi?id=155889

Reviewed by Alexey Proskuryakov.

Fixes an issue where building the "All Source" scheme in WebKit.xcworkspace would
always copy the OS X WebKitSystemInterface libraries regardless of the selected
base SDK. In particular, it would copy the OS X WebKitSystemInterface libraries
when building with SDK iphonesimulator. WebKit.xcworkspace should copy the SDK-
specific WebKitSystemInterface libraries.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
7:31 PM Changeset in webkit [198726] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL][AX] Mark AX failing tests to failure

Unreveiwed EFL gardening.

  • platform/efl/TestExpectations:
7:32 AM Changeset in webkit [198725] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Mark rtl-scrollbar's tests to pass with incorrectly

Unreviewed EFL gardening.

  • platform/efl/TestExpectations: Though rtl scrollbar isn't supported by EFL yet, it has been passed.

Mar 26, 2016:

8:07 PM Changeset in webkit [198724] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Tried to fix the build.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takeViewSnapshot]):

8:06 PM FeatureFlags edited by Dr Alex Gouaillard
(diff)
7:13 PM Changeset in webkit [198723] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Tried to fix the build.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takeViewSnapshot]):

6:05 PM Changeset in webkit [198722] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Mac CMake build fix.

  • PlatformMac.cmake:

Link with AVFoundation libraries.

5:59 PM Changeset in webkit [198721] by dino@apple.com
  • 1 edit in trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm

Fix the build by removing the #endif I left in on my last attempt.

  • UIProcess/API/Cocoa/WKWebView.mm:
5:44 PM Changeset in webkit [198720] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix build after my most recent commit.

  • UIProcess/API/Cocoa/WKWebView.mm:

(WebKit::bufferFormat): Delete the WebKitAdditions include.

4:50 PM Changeset in webkit [198719] by dino@apple.com
  • 10 edits in trunk/Source

Move extended color detection into Open Source
​https://bugs.webkit.org/show_bug.cgi?id=155909
<rdar://problem/25369754>

Reviewed by Anders Carlsson.

The code for detecting extended color displays
was hidden while the iPad Pro 9.7" was in development.
Now it is public, move the detection to Open Source.

While doing this, add a new method to PlatformScreen
so that we have a more obvious way to detect such
displays.

Source/WebCore:

  • platform/PlatformScreen.h: Add screenSupportsExtendedColor.
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::commonInit): Set the backing
store format to the RGBA10XR if we're on an extended
display.

  • platform/ios/LegacyTileGridTile.mm:

(WebCore::LegacyTileGridTile::LegacyTileGridTile): Ditto.
(WebCore::setBackingStoreFormat): Deleted. Now set directly
in the constructor.

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenDepthPerComponent): Cleanup.
(WebCore::screenSupportsExtendedColor): Implement the
iOS version of this using MobileGestalt.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::displayFromWidget): Whitespace cleanup.
(WebCore::screenForWidget):
(WebCore::screenForWindow):
(WebCore::screenSupportsExtendedColor): Default implementation
returns false for all screens at the moment.

  • platform/spi/cocoa/QuartzCoreSPI.h: New constant.
  • platform/spi/ios/MobileGestaltSPI.h: Ditto.

Source/WebKit2:

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::bufferFormat): No need to use WebKitAdditions any
more.

1:07 PM Changeset in webkit [198718] by ggaren@apple.com
  • 7 edits in trunk/Source/bmalloc

2016-03-26 Geoffrey Garen <​ggaren@apple.com>

Unreviewed, rolling out r198702, r198704.

Caused a memory regression on PLUM.

Reverted changeset:

bmalloc: fix an ASSERT on iOS
​https://bugs.webkit.org/show_bug.cgi?id=155911
​http://trac.webkit.org/changeset/198704

bmalloc: support physical page sizes that don't match the virtual page size
​https://bugs.webkit.org/show_bug.cgi?id=155898
​http://trac.webkit.org/changeset/198702

11:37 AM Changeset in webkit [198717] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

[OS X] Layout sometimes flakily assumes overlay scrollbars when clicky-scroll-wheel-mouse is attached and system preference detects scrollbar mode
​https://bugs.webkit.org/show_bug.cgi?id=155912

Reviewed by Simon Fraser.

When the system preference is set to detect the scrollbar type (overlay or
always-on, and a clicky scroll wheel mouse is connected, AppKit
asynchronously tells all the NSScrollerImpPairs about the kind of scrollbar
it should be using. However, when this notification is delivered, it may
be in between FrameViews, which means we may not have any
NSScrollerImpPairs created to listen to the notification.

r198444 solved this by asking if we missed any update whenever we create
an NSScrollerImpPair. This works partially; however, there is a significant
amount of layout which occurs before we create the first ScrollAnimatorMac.
This layout will ask the ScrollbarThemeMac if overlay scrollbars are
enabled, and the results will be stale (because we haven't created any the
NSScrollerImpPairs yet).

Luckly, AppKit fires a notification when it discovers what kind of
scrollbars should be used. We can rely on this notification in the event
that we don't have any NSScrollerImpPairs created.

Covered (as best as possible) by existing RTL scrollbar tests. However,
the system preference that governs this is not currently testable.

  • platform/mac/ScrollbarThemeMac.mm:

(+[WebScrollbarPrefsObserver registerAsObserver]):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::ScrollAnimatorMac): Remove the old code.

5:53 AM Changeset in webkit [198716] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Remove duplicated tests in EFL TextExpectations.

Unreviewed EFL gardening.

  • platform/efl/TestExpectations: Clean up duplicated pathes.
12:31 AM Changeset in webkit [198715] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Treat SHA-1-signed certificates as insecure by default.

Reviewed by Sam Weinig.

  • UIProcess/API/APIPageConfiguration.h: Initialize m_treatsSHA1SignedCertificatesAsInsecure to true.
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]): Initialize _treatsSHA1SignedCertificatesAsInsecure to YES.

12:08 AM Changeset in webkit [198714] by commit-queue@webkit.org
  • 5 edits in trunk/LayoutTests

ES6 Class syntax. Invoking method of parent class in constructor before super() lead to crash
​https://bugs.webkit.org/show_bug.cgi?id=152108

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-03-26
Reviewed by Ryosuke Niwa.

  • js/arrowfunction-superproperty-expected.txt:
  • js/script-tests/arrowfunction-superproperty.js:
  • js/script-tests/class-syntax-name.js:
  • js/script-tests/class-syntax-string-and-numeric-names.js:

Remove stale FIXMEs from LayoutTests where the bugs have been fixed.

Note: See TracTimeline for information about the timeline view.