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

Timeline



Aug 29, 2016:

11:14 PM Changeset in webkit [205175] by bshafiei@apple.com
  • 279 edits
    1 copy
    19 deletes in tags/Safari-603.1.3.0.1

Merged r204912. rdar://problem/28062188

11:10 PM Changeset in webkit [205174] by bshafiei@apple.com
  • 5 edits in tags/Safari-603.1.3.0.1

Merged r204901. rdar://problem/28062188

11:07 PM Changeset in webkit [205173] by bshafiei@apple.com
  • 2 edits in tags/Safari-603.1.3.0.1/Source/JavaScriptCore

Merged r204897. rdar://problem/28062188

10:56 PM Changeset in webkit [205172] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Windows build after r205161

  • bindings/js/JSPerformanceTimingCustom.cpp:
10:24 PM Changeset in webkit [205171] by Chris Dumez
  • 14 edits in trunk

We should throw a SecurityError when denying setting a cross-origin Location property
https://bugs.webkit.org/show_bug.cgi?id=161368

Reviewed by Ryosuke Niwa.

Source/WebCore:

We should throw a SecurityError when denying setting a cross-origin
Location property:

Firefox and Chrome already throw. We currently ignore and log an error
message.

No new tests, updated existing tests.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::putDelegate):

LayoutTests:

Update / Rebaseline existing tests to reflect behavior change.

  • http/tests/security/cross-frame-access-location-put-expected.txt:
  • http/tests/security/location-cross-origin-expected.txt:
  • http/tests/security/location-cross-origin.html:
  • http/tests/security/xss-DENIED-assign-location-hash-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-host-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-hostname-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-nonstandardProperty-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-pathname-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-protocol-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-reload-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-search-expected.txt:
10:18 PM Changeset in webkit [205170] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Gardening on Aug 30

Unreviewed gardening. Mark unexpecting passing tests to PASS.

  • platform/efl/TestExpectations:
9:53 PM Changeset in webkit [205169] by Chris Dumez
  • 7 edits in trunk/LayoutTests

Unskip several web-platform-tests that are now passing
https://bugs.webkit.org/show_bug.cgi?id=161367

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline those tests and update window-security.sub.html as per:
https://github.com/w3c/web-platform-tests/pull/3607

  • web-platform-tests/html/browsers/history/the-location-interface/security_location_0.sub-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub.html:
  • web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub-expected.txt:

LayoutTests:

Unskip several web-platform-tests that are now passing.

7:07 PM Changeset in webkit [205168] by commit-queue@webkit.org
  • 5 edits in trunk

REGRESSION(r202568): Web Inspector: Expanding Array Prototype in Console shows no properties
https://bugs.webkit.org/show_bug.cgi?id=161263
<rdar://problem/28035849>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-08-29
Reviewed by Matt Baker.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._propertyDescriptors):
Previously we only took the "numeric index fast path" if an object was
array like with length > 100. When we dropped the length check we
ended up breaking our display of Array prototype, because [].proto
is an array instance. Get it back by just doing a check of length > 0.
We may want to address this differently in the future by knowing if
we are getting properties for a prototype or not.

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:
  • inspector/model/remote-object-get-properties.html:

Include tests for an Array and an Array's proto (which is an Array).

6:56 PM Changeset in webkit [205167] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

Unreviewed EFL/GTK build fix since r205150

Patch by Gyuyoung Kim <gyuyoung.kim@navercorp.com> on 2016-08-29

  • CMakeLists.txt: Add Shared/FrameInfoData.cpp.
6:48 PM Changeset in webkit [205166] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Clean up FTL Capabilities for CompareEq
https://bugs.webkit.org/show_bug.cgi?id=161353

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-29
Reviewed by Geoffrey Garen.

It looks like we already have code for every case.
This patch removes the tests from FTLCapabilities
and move the generic case last as usual.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareEq):

6:16 PM Changeset in webkit [205165] by bshafiei@apple.com
  • 5 edits in tags/Safari-603.1.3.0.1/Source

Versioning.

6:14 PM Changeset in webkit [205164] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.3.0.1

New tag.

5:44 PM Changeset in webkit [205163] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

Avoid holding GlyphData in MathOperator
https://bugs.webkit.org/show_bug.cgi?id=161256
<rdar://problem/28033400>

Reviewed by Myles C. Maxfield.

Do not cache GlyphData in MathOperator elements, because the fonts referenced in the
GlyphData may be purged during low-memory conditions. Instead, we should store either
the relevant CodePoint, or the fallback Glyph (for the current system font).

Added an initialization function for GlyphAssemblyData, since unions containing structs
do not properly call constructors, resulting in garbage font/glyph content.

No new tests. Changes are covered by existing MathML test suite.

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::GlyphAssemblyData::initialize): Added.
(WebCore::MathOperator::MathOperator): Initialize m_assembly/m_variant.
(WebCore::MathOperator::setSizeVariant): Only store the glyph, not the font.
(WebCore::glyphDataForCodePointOrFallbackGlyph): Added helper function.
(WebCore::MathOperator::setGlyphAssembly): Do not rely on stored GlyphData.
(WebCore::MathOperator::calculateGlyphAssemblyFallback): Remove unneeded argument. Check
if a fallback glyph is being used and remember for later.
(WebCore::MathOperator::calculateStretchyData): Do not rely on stored GlyphData.
(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Ditto.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Ditto.
(WebCore::MathOperator::paintVerticalGlyphAssembly): Ditto.
(WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.
(WebCore::MathOperator::paint): Ditto.

  • rendering/mathml/MathOperator.h:

(WebCore::MathOperator::GlyphAssemblyData::hasExtension): Added.
(WebCore::MathOperator::GlyphAssemblyData::hasMiddle): Added.
(WebCore::MathOperator::MathOperator): Deleted.

5:31 PM Changeset in webkit [205162] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.7.8

New tag.

5:15 PM Changeset in webkit [205161] by dino@apple.com
  • 12 edits
    3 adds in trunk

JSON.stringify returns empty when used with performance.timing.
https://bugs.webkit.org/show_bug.cgi?id=151813
<rdar://problem/28066067>

Reviewed by Sam Weinig.

Source/WebCore:

While we are waiting for our bindings generator to handle
"serializer", add a custom toJSON function that allows
performance.timing to be stringified.

Test: fast/dom/webtiming-performance-timing-stringify.html

  • CMakeLists.txt: New file added.
  • WebCore.xcodeproj/project.pbxproj: New file added.
  • bindings/js/JSPerformanceTimingCustom.cpp: Added. Implements toJSON.

(WebCore::JSPerformanceTiming::toJSON):

  • page/PerformanceTiming.idl: Add toJSON().

LayoutTests:

  • fast/dom/Window/window-properties-performance-expected.txt:
  • fast/dom/Window/window-properties-performance-resource-timing-expected.txt:
  • fast/dom/webtiming-document-open-expected.txt:
  • fast/dom/webtiming-navigate-within-document-expected.txt:
  • fast/dom/webtiming-performance-timing-stringify-expected.txt: Added.
  • fast/dom/webtiming-performance-timing-stringify.html: Added.
  • http/tests/misc/webtiming-cross-origin-and-back1-expected.txt:
  • http/tests/misc/webtiming-cross-origin-redirect-expected.txt:
  • http/tests/misc/webtiming-no-origin-expected.txt:
4:54 PM Changeset in webkit [205160] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS patch status page should indicate bot corresponding to each status message
https://bugs.webkit.org/show_bug.cgi?id=161280

Reviewed by Alexey Proskuryakov.

  • QueueStatusServer/templates/patch.html: Formatting changes.
4:23 PM Changeset in webkit [205159] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Get rid of ChildProcessProxy::fromConnection
https://bugs.webkit.org/show_bug.cgi?id=161357

Reviewed by Tim Horton.

  • UIProcess/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::fromConnection): Deleted.

  • UIProcess/ChildProcessProxy.h:
  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::fromConnection): Deleted.

4:19 PM Changeset in webkit [205158] by bshafiei@apple.com
  • 3 edits in tags/Safari-600.8.7.1/Source/JavaScriptCore

Merge r204572. rdar://problem/28059311

4:18 PM Changeset in webkit [205157] by bshafiei@apple.com
  • 5 edits in tags/Safari-600.8.7.1/Source

Versioning.

4:10 PM Changeset in webkit [205156] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove the last uses of WebProcessProxy::fromConnection
https://bugs.webkit.org/show_bug.cgi?id=161355

Reviewed by Tim Horton.

  • UIProcess/WebProcessPool.cpp:

(WebKit::webProcessProxyFromConnection):
(WebKit::WebProcessPool::handleMessage):
(WebKit::WebProcessPool::handleSynchronousMessage):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):

4:07 PM Changeset in webkit [205155] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.8.7.1

New tag.

4:04 PM Changeset in webkit [205154] by Chris Dumez
  • 8 edits in trunk

Regression(r204923): It should be possible to set 'Location.href' cross origin
https://bugs.webkit.org/show_bug.cgi?id=161343
<rdar://problem/28063361>

Reviewed by Ryosuke Niwa.

Source/WebCore:

It should be possible to set 'Location.href' cross origin:

Firefox and Chrome allow this but we throw a SecurityError.

We already allow setting crossOrigin.window.location which is equivalent.

No new tests, updated existing test.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::putDelegate):
Refactor the [Put] delegate so that it does not log a security error
when setting 'href' attribute, given that setting it works as expected.
This fixes a bug in shipping Safari where setting 'href' would work but
log an error message anyway.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
Add support for [DoNotCheckSecurityOnSetter] IDL extended attribute,
in addition to the already supported [DoNotCheckSecurity] and
[DoNotCheckSecurityOnGetter].

  • page/Location.idl:

Use [DoNotCheckSecurityOnSetter] on 'href' attribute as it can be
set cross-origin. This fixes the regression introduced in r204923.

LayoutTests:

Add layout test coverage.

  • http/tests/security/location-cross-origin-expected.txt:
  • http/tests/security/location-cross-origin.html:
  • http/tests/security/xss-DENIED-assign-location-href-javascript-expected.txt:
3:54 PM Changeset in webkit [205153] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, update iOS simulator WK1 flaky tests.

  • platform/ios-simulator-wk1/TestExpectations:
3:42 PM Changeset in webkit [205152] by bshafiei@apple.com
  • 3 edits in branches/safari-601-branch/Source/JavaScriptCore

Merge r204572. rdar://problem/28059311

3:10 PM Changeset in webkit [205151] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Unify Resource entry context menus
https://bugs.webkit.org/show_bug.cgi?id=161301

Patch by Devin Rousso <Devin Rousso> on 2016-08-29
Reviewed by Brian Burg.

  • UserInterface/Main.html:

Add ContextMenuUtilities.

  • UserInterface/Views/ContextMenuUtilities.js: Added.

(WebInspector.appendContextMenuItemsForResource):
Appends the following items to the given WebInspector.ContextMenu object with a WebInspector.Resource:

  • Open in New Tab
  • Copy Link Address
  • Copy as cURL (only if the resource is not from a data URL)
  • Save File
  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WebInspector.ResourceTimelineDataGridNode.prototype.appendContextMenuItems):
Make use of new WebInspector.appendContextMenuItemsForResource.

  • UserInterface/Views/ResourceTreeElement.js:

(WebInspector.ResourceTreeElement.prototype._handleContextMenuEvent):
Make use of new WebInspector.appendContextMenuItemsForResource.

3:00 PM Changeset in webkit [205150] by andersca@apple.com
  • 12 edits
    2 copies in trunk/Source/WebKit2

Get rid of another use of WebProcessProxy::fromConnection
https://bugs.webkit.org/show_bug.cgi?id=161331

Reviewed by Dan Bernstein.

WebUserContentControllerProxy::didPostMessage uses WebProcessProxy::fromConnection to be able to find a WebFrameProxy from
a given frame ID. Since the WebFrameProxy is only used to construct an API::FrameInfo object from, introduce a FrameInfoData object
and fill it in on the web process side and send it over to the UI process where an API::FrameInfo object can be created.

  • Shared/FrameInfoData.cpp: Added.

(WebKit::FrameInfoData::encode):
(WebKit::FrameInfoData::decode):

  • Shared/FrameInfoData.h: Added.
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::create):
(API::FrameInfo::FrameInfo):

  • UIProcess/API/APIFrameInfo.h:
  • UIProcess/API/Cocoa/WKUserContentController.mm:
  • UIProcess/UserContent/WebScriptMessageHandler.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::didPostMessage):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.messages.in:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/UserContent/WebUserContentController.cpp:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::info):

  • WebProcess/WebPage/WebFrame.h:
2:51 PM Changeset in webkit [205149] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS should indicate which bot processed the patch
https://bugs.webkit.org/show_bug.cgi?id=161222

Reviewed by Alexey Proskuryakov.

  • QueueStatusServer/handlers/statusbubble.py:

(StatusBubble._build_bubble): Remove the bot id from bubbles as it is confusing.
bot ids are now displayed in patch status page.

2:35 PM Changeset in webkit [205148] by Chris Dumez
  • 7 edits in trunk

We should throw a SecurityError when denying setting a cross-origin Window property
https://bugs.webkit.org/show_bug.cgi?id=161339

Reviewed by Geoffrey Garen.

Source/WebCore:

We should throw a SecurityError when denying setting a cross-origin Window property:

e.g. crossOriginWindow.name = "" should throw.

Firefox and Chrome already throw but WebKit merely ignores the call and logs an
error message.

No new tests, updated existing tests.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):

LayoutTests:

Update existing tests to reflect behavior change.

  • http/tests/history/cross-origin-replace-history-object-expected.txt:
  • http/tests/history/resources/cross-origin-replaces-history-object-iframe.html:
  • http/tests/security/cross-frame-access-custom-expected.txt:
  • http/tests/security/cross-frame-access-put-expected.txt:
2:15 PM Changeset in webkit [205147] by achristensen@apple.com
  • 4 edits in trunk

URLParser should parse about:blank
https://bugs.webkit.org/show_bug.cgi?id=161324

Reviewed by Brady Eidson.

Source/WebCore:

Covered by new API tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

2:12 PM Changeset in webkit [205146] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent.html for ios-simulator after r205138.

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
2:08 PM Changeset in webkit [205145] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, mark editing tests of iOS simulator WK1 release build that have different delegate callback order than those of debug build as failure

  • platform/ios-simulator-wk1/TestExpectations:
2:06 PM Changeset in webkit [205144] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r205143.

Needs better description

Reverted changeset:

"Unreviewed, mark editing tests of iOS simulator WK1 release
build that have different delegate callbacks than those of
debug build as failure"
http://trac.webkit.org/changeset/205143

1:46 PM Changeset in webkit [205143] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, mark editing tests of iOS simulator WK1 release build that have different delegate callbacks than those of debug build as failure

  • platform/ios-simulator-wk1/TestExpectations:
1:26 PM Changeset in webkit [205142] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, update iOS simulator WK1 flaky tests.

  • platform/ios-simulator-wk1/TestExpectations:
1:22 PM Changeset in webkit [205141] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r205140.

The changelog entry for this commit is incorrect and
misattributed.

Reverted changeset:

"Marking media/track/text-track-cue-is-reachable.html as flaky
on ios-simulator-wk2."
https://bugs.webkit.org/show_bug.cgi?id=161323
http://trac.webkit.org/changeset/205140

1:18 PM Changeset in webkit [205140] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Marking media/track/text-track-cue-is-reachable.html as flaky on ios-simulator-wk2.
https://bugs.webkit.org/show_bug.cgi?id=161323

Unreviewed test gardening.

Patch by Ryan Haddad <Ryan Haddad> on 2016-08-29

  • platform/ios-simulator-wk2/TestExpectations:
1:08 PM Changeset in webkit [205139] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/track/text-track-cue-is-reachable.html as flaky on ios-simulator-wk2.
https://bugs.webkit.org/show_bug.cgi?id=161323

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
12:55 PM Changeset in webkit [205138] by Chris Dumez
  • 8 edits in trunk

document.createEvent("popstateevent") should create a PopStateEvent
https://bugs.webkit.org/show_bug.cgi?id=161321

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/history-traversal/PopStateEvent-expected.txt:

Source/WebCore:

document.createEvent("popstateevent") should create a PopStateEvent as per:

Firefox and Chrome match the specification but WebKit throws an exception,
which is risky compatibility-wise.

No new tests, rebaselined existing tests.

  • dom/Document.cpp:

(WebCore::Document::createEvent):

  • dom/PopStateEvent.cpp:

(WebCore::PopStateEvent::createForBindings):

  • dom/PopStateEvent.h:
12:44 PM Changeset in webkit [205137] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Stop using WebProcessProxy::fromConnection in WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=161322

Reviewed by Dan Bernstein.

The WebPageProxy already knows its WebProcessProxy - no need to look it up from the connection.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMessage):
(WebKit::WebPageProxy::handleSynchronousMessage):

12:37 PM Changeset in webkit [205136] by Chris Dumez
  • 119 edits in trunk

We should throw a SecurityError when denying access to cross-origin Window properties
https://bugs.webkit.org/show_bug.cgi?id=161316

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline existing tests to reflect behavior change.

  • web-platform-tests/domparsing/innerhtml-05-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl-expected.txt:

Source/WebCore:

We should throw a SecurityError when denying access to cross-origin Window properties:

Firefox and Chrome already throw.

No new tests, updated existing tests.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):

LayoutTests:

Update / rebaselined existing tests to reflect behavior change.

  • fast/frames/sandboxed-iframe-history-denied-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-no-file-access.html:
  • http/tests/dom/window-open-about-webkit-org-and-access-document-expected.txt:
  • http/tests/dom/window-open-about-webkit-org-and-access-document.html:
  • http/tests/history/cross-origin-replace-history-object-child-expected.txt:
  • http/tests/history/cross-origin-replace-history-object-child.html:
  • http/tests/plugins/cross-frame-object-access-expected.txt:
  • http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
  • http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
  • http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header.html:
  • http/tests/security/cross-frame-access-call-expected.txt:
  • http/tests/security/cross-frame-access-call.html:
  • http/tests/security/cross-frame-access-child-explicit-domain-expected.txt:
  • http/tests/security/cross-frame-access-custom-expected.txt:
  • http/tests/security/cross-frame-access-first-time-expected.txt:
  • http/tests/security/cross-frame-access-first-time.html:
  • http/tests/security/cross-frame-access-get-custom-property-cached-expected.txt:
  • http/tests/security/cross-frame-access-get-custom-property-cached.html:
  • http/tests/security/cross-frame-access-get-expected.txt:
  • http/tests/security/cross-frame-access-getOwnPropertyDescriptor-expected.txt:
  • http/tests/security/cross-frame-access-getOwnPropertyDescriptor.html:
  • http/tests/security/cross-frame-access-history-get-expected.txt:
  • http/tests/security/cross-frame-access-history-get-override-expected.txt:
  • http/tests/security/cross-frame-access-history-prototype-expected.txt:
  • http/tests/security/cross-frame-access-name-getter-expected.txt:
  • http/tests/security/cross-frame-access-object-getPrototypeOf-expected.txt:
  • http/tests/security/cross-frame-access-object-getPrototypeOf.html:
  • http/tests/security/cross-frame-access-object-prototype-expected.txt:
  • http/tests/security/cross-frame-access-object-prototype.html:
  • http/tests/security/cross-frame-access-parent-explicit-domain-expected.txt:
  • http/tests/security/cross-frame-access-port-expected.txt:
  • http/tests/security/cross-frame-access-protocol-expected.txt:
  • http/tests/security/cross-frame-access-protocol-explicit-domain-expected.txt:
  • http/tests/security/cross-frame-access-selection-expected.txt:
  • http/tests/security/cross-frame-access-selection.html:
  • http/tests/security/cross-origin-reified-window-property-access-expected.txt:
  • http/tests/security/cross-origin-window-property-access-expected.txt:
  • http/tests/security/dataURL/resources/foreign-domain-data-url-accessor-iframe.html:
  • http/tests/security/dataURL/resources/foreign-domain-data-url-accessor-opened-frame.html:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level.html:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-to-data-url-sub-frame-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-to-data-url-sub-frame.html:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame.html:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-to-data-url-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-to-data-url.html:
  • http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open.html:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-from-data-url-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-from-data-url.html:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change.html:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe.html:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open.html:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level.html:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-uppercase-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-window-open-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-window-open.html:
  • http/tests/security/document-all-expected.txt:
  • http/tests/security/document-all.html:
  • http/tests/security/javascriptURL/resources/foreign-domain-javascript-url-accessor-iframe.html:
  • http/tests/security/javascriptURL/resources/foreign-domain-javascript-url-accessor-opened-frame.html:
  • http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open-expected.txt:
  • http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe.html:
  • http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open-expected.txt:
  • http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open.html:
  • http/tests/security/listener/resources/targetChild-JSTargetNode-onclick-addEventListener.html:
  • http/tests/security/listener/resources/targetChild-JSTargetNode-onclick-shortcut.html:
  • http/tests/security/listener/resources/targetChild-XMLHttpRequest-addEventListener.html:
  • http/tests/security/listener/resources/targetChild-XMLHttpRequest-shortcut.html:
  • http/tests/security/listener/resources/targetChild-window-onclick-addEventListener.html:
  • http/tests/security/listener/resources/targetChild-window-onclick-shortcut.html:
  • http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-JSTargetNode-onclick-shortcut-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-addEventListener-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-shortcut-expected.txt:
  • http/tests/security/listener/xss-window-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-window-onclick-shortcut-expected.txt:
  • http/tests/security/resources/cross-frame-access.js:

(test):
(cannotAccessFrame):

  • http/tests/security/resources/cross-frame-history-prototype-iframe.html:
  • http/tests/security/resources/iframe-for-synchronous-form.html:
  • http/tests/security/resources/sandboxed-iframe-origin-add-step1.html:
  • http/tests/security/resources/sandboxed-iframe-origin-remove-step2.html:
  • http/tests/security/sandboxed-iframe-modify-self-expected.txt:
  • http/tests/security/sandboxed-iframe-origin-add-expected.txt:
  • http/tests/security/sandboxed-iframe-origin-remove-expected.txt:
  • http/tests/security/srcdoc-in-sandbox-cannot-access-parent-expected.txt:
  • http/tests/security/xss-DENIED-defineProperty-expected.txt:
  • http/tests/security/xss-DENIED-frame-name-expected.txt:
  • http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto.html:
  • http/tests/security/xss-DENIED-invalid-domain-change-expected.txt:
  • http/tests/security/xss-DENIED-invalid-domain-change.html:
  • http/tests/security/xss-DENIED-method-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-sandboxed-iframe-expected.txt:
  • http/tests/security/xss-DENIED-synchronous-form-expected.txt:
  • http/tests/security/xss-DENIED-window-name-navigator-expected.txt:
  • http/tests/security/xss-DENIED-xsl-document-securityOrigin-expected.txt:
  • http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml:
  • http/tests/security/xss-eval-expected.txt:
  • http/tests/security/xss-eval.html:
12:36 PM Changeset in webkit [205135] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Bug 161165 - check-webkit-style doesn't understand macros containing else or labels
https://bugs.webkit.org/show_bug.cgi?id=161165

Patch by JF Bastien <jfbastien@apple.com> on 2016-08-29
Reviewed by Geoffrey Garen.

Fix handling of else in a macro. Don't handle labels in a macro:
the checker is already pretty messy in that area and it should be
a rare thing.

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

(check_braces):

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

(CppStyleTest.test_else_clause_not_on_same_line_as_else):

12:07 PM Changeset in webkit [205134] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Image Loader should use FetchOptions::mode according its crossOrigin attribute
https://bugs.webkit.org/show_bug.cgi?id=161309

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-29
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/security/load-image-after-redirection.html

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement): Using CachedResourceRequest::setAsPotentiallyCrossOrigin to set fetch mode.

LayoutTests:

  • http/tests/security/load-image-after-redirection-expected.txt: Added.
  • http/tests/security/load-image-after-redirection.html: Added.
12:07 PM Changeset in webkit [205133] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Use MathMLPresentationElement for all MathML presentation tags
https://bugs.webkit.org/show_bug.cgi?id=161297

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-29
Reviewed by Darin Adler.

Some tabular MathML elements as well as unsupported presentation MathML markup currently
create a generic MathMLElement instance. We make them instead use the
MathMLPresentationElement class since they are presentation MathML elements. This also
allows to make MathMLElement::isPresentationMathML always return false.

No new tests, already covered by existing tests.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::isPresentationMathML): Deleted. Moved into the header file.

  • mathml/MathMLElement.h:

(WebCore::MathMLElement::isPresentationMathML): Make this always return false now that all
presentation markup are handled by MathMLPresentationElement.

  • mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::createElementRenderer): Make the fallback always call
MathMLElement::createElementRenderer. This preserves the behavior for the new elements
handled here and does not affect the old ones (table is handled above while all the others
are already handled in the derived class).

  • mathml/mathtags.in: Use MathMLPresentationElement for all MathML presentation tags.
11:54 AM Changeset in webkit [205132] by Michael Catanzaro
  • 1 edit in trunk/Source/WebCore/platform/gtk/po/ChangeLog

[l10n] Updated Polish translation of WebKitGTK+ for 2.14
https://bugs.webkit.org/show_bug.cgi?id=161319

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2016-08-29
Rubber-stamped by Michael Catanzaro.

  • pl.po:
11:50 AM Changeset in webkit [205131] by keith_miller@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

Fix toStringName for Proxies and add support for normal instances
https://bugs.webkit.org/show_bug.cgi?id=161275

Reviewed by Saam Barati.

toStringName on proxies needs to follow the chain of proxies until it finds a non-proxy target.
Additionally, there are a couple of other classes that need to return "Object" for their
toStringName. Since this isn't tested by test262 I will propose a new test there.

  • runtime/ClassInfo.h:
  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::toStringName):

  • runtime/JSArrayBufferView.h:
  • runtime/JSCell.cpp:

(JSC::JSCell::toStringName):

  • runtime/JSCell.h:
  • runtime/JSMap.cpp:

(JSC::JSMap::toStringName):

  • runtime/JSMap.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::toStringName):

  • runtime/JSObject.h:
  • runtime/JSSet.cpp:

(JSC::JSSet::destroy):
(JSC::JSSet::toStringName):

  • runtime/JSSet.h:
  • runtime/JSWeakMap.cpp:

(JSC::JSWeakMap::toStringName):

  • runtime/JSWeakMap.h:
  • runtime/JSWeakSet.cpp:

(JSC::JSWeakSet::toStringName):

  • runtime/JSWeakSet.h:
  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::toStringName):

  • runtime/ProxyObject.h:
  • runtime/SymbolObject.cpp:

(JSC::SymbolObject::toStringName):

  • runtime/SymbolObject.h:

(JSC::SymbolObject::internalValue):

11:50 AM Changeset in webkit [205130] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] Updated Polish translation of WebKitGTK+ for 2.14
https://bugs.webkit.org/show_bug.cgi?id=161319

Rubber-stamped by Michael Catanzaro.

  • pl.po:
11:45 AM Changeset in webkit [205129] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Move some structs into Connection.cpp
https://bugs.webkit.org/show_bug.cgi?id=161320

Reviewed by Darin Adler.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::PendingSyncReply::PendingSyncReply):

  • Platform/IPC/Connection.h:

(IPC::Connection::PendingSyncReply::PendingSyncReply): Deleted.

11:26 AM Changeset in webkit [205128] by achristensen@apple.com
  • 4 edits in trunk

API test URLParserTest.ParserFailures failing ASSERT_NOT_REACHED
https://bugs.webkit.org/show_bug.cgi?id=161317

Reviewed by Brady Eidson.

Source/WebCore:

Added an API test.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):
Turns out, this state can be reached.

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

11:09 AM Changeset in webkit [205127] by jer.noble@apple.com
  • 2 edits in trunk/Tools

Unreviewed gardening; only build MiniBrowser against iOS SDK targets.

  • Makefile:
11:06 AM Changeset in webkit [205126] by jiewen_tan@apple.com
  • 4 edits in trunk/LayoutTests

Unreviewed, update iOS simulator WK1 flaky tests.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
10:49 AM Changeset in webkit [205125] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove sync message sending from secondary threads
https://bugs.webkit.org/show_bug.cgi?id=161277

Reviewed by Sam Weinig.

This codepath hasn't been used for some time, and removing it will make it easier to make IPC::Connection backed by libxpc.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendSyncMessage):
(IPC::Connection::processIncomingSyncReply):
(IPC::Connection::connectionDidClose):
(IPC::Connection::sendSyncMessageFromSecondaryThread): Deleted.

  • Platform/IPC/Connection.h:
10:26 AM Changeset in webkit [205124] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Skipping http/tests/media/hls/hls-accessiblity-describes-video-menu.html on mac
https://bugs.webkit.org/show_bug.cgi?id=161144

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
9:23 AM Changeset in webkit [205123] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Sample Process on notifyDone timed out
https://bugs.webkit.org/show_bug.cgi?id=161063

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-08-29
Reviewed by Darin Adler.

  • Scripts/webkitpy/port/driver.py:

(Driver._check_for_driver_timeout):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: Call sample_process during notifyDone timeouts.

(WTR::TestRunner::waitToDumpWatchdogTimerFired):

  • WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm: Log pid and name for testing harness.
9:18 AM Changeset in webkit [205122] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Check-webkit-style does not work with Objective-C blocks
https://bugs.webkit.org/show_bug.cgi?id=161247

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-08-29
Reviewed by Darin Adler.

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

(regex_for_lambda_functions): Changed to regex_for_lambdas_and_blocks.
(regex_for_lambdas_and_blocks): Added check for Objective-C blocks.
(check_spacing_for_function_call): Pass file state for lambda check.
(check_spacing): Pass file state for lambda check.
(check_braces): Pass file state for lambda check.
(check_style): Pass file state for lambda check.

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

(CppStyleTest.test_cpp_lambda_functions): Changed from ‘test_lambda_functions’.
(CppStyleTest.test_objective_c_block): Tests Objective-C blocks.
(CppStyleTest.test_lambda_functions): Changed to ‘test_cpp_lambda_functions’.

9:18 AM Changeset in webkit [205121] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

EWS patch status page should indicate bot corresponding to each status message
https://bugs.webkit.org/show_bug.cgi?id=161280

Reviewed by Alexey Proskuryakov.

  • QueueStatusServer/templates/patch.html: Added bot_id in the template so that bot id is displayed

for each status message.

  • QueueStatusServer/stylesheets/common.css:

(.status-bot): Added corresponding stylesheet class.

9:12 AM Changeset in webkit [205120] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=161312

Unreviewed test gardening.

5:53 AM Changeset in webkit [205119] by pvollan@apple.com
  • 3 edits in trunk

Attempt to fix WinCairo build after r205090.

Unreviewed build fix.

  • Source/cmake/OptionsAppleWin.cmake:
  • Source/cmake/OptionsWin.cmake:
4:02 AM Changeset in webkit [205118] by pvollan@apple.com
  • 2 edits in trunk/Tools

Attempt to fix Windows build after r205090.

Unreviewed build fix.

  • DumpRenderTree/win/DRTDataObject.cpp:

(cfFileNameWFormat):
(cfUrlWFormat):

3:52 AM Changeset in webkit [205117] by commit-queue@webkit.org
  • 14 edits
    2 adds in trunk

[Fetch API] Response cloning should structureClone when teeing Response stream
https://bugs.webkit.org/show_bug.cgi?id=161147

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-29
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-clone-expected.txt:
  • web-platform-tests/fetch/api/response/response-clone.html:

Source/JavaScriptCore:

  • builtins/BuiltinNames.h: Adding ArrayBuffer and isView identifiers.
  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSArrayBufferConstructor::finishCreation): Adding @isView as private method.

  • runtime/JSDataView.h: Exporting create method.

Source/WebCore:

Covered by updated test.

Implementing structure cloning for ArrayBuffer and ArrayBufferView objects.
Using this structure cloning in ReadableStream to support structureClone in the case of Fetch API.

  • CMakeLists.txt: Adding StructureClone.cpp
  • Modules/fetch/FetchResponse.js:

(clone): Setting structureClone to true

  • Modules/streams/ReadableStreamInternals.js:

(doStructuredClone): Added to clone ArrayBuffer/ArrayBufferView chunks. Throwing exception otherwise.
(teeReadableStreamPullFunction): Using @doStructuredClone

  • WebCore.xcodeproj/project.pbxproj: Adding StructureClone.cpp/.h
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals): Adding @ArrayBuffer and structuredCloneArrayBuffer and structuredCloneArrayBufferView private properties.

  • bindings/js/StructuredClone.cpp: Added.

(WebCore::structuredCloneArrayBuffer): Cloning of ArrayBuffer as per
http://w3c.github.io/html/infrastructure.html#section-structuredclone step 11.

(WebCore::structuredCloneArrayBufferView): Cloning of ArrayBufferView as
perhttp://w3c.github.io/html/infrastructure.html#section-structuredclone, step 12.

  • bindings/js/StructuredClone.h: Added.
  • bindings/js/WebCoreBuiltinNames.h:
2:33 AM Changeset in webkit [205116] by Carlos Garcia Campos
  • 34 edits
    4 copies
    6 moves
    6 adds
    3 deletes in trunk/Source

[GTK] Accelerated compositing does not work in Wayland
https://bugs.webkit.org/show_bug.cgi?id=115803

Reviewed by Michael Catanzaro.

Source/WebCore:

The Wayland implementation in WebKit2 uses a nested display running in the UI process so that GL contexts created
in the web process need to be created in the nested display. We currently have a shared platform display that
should represent the connection to the actual display all applications connect to. This patch refactors the
GLContext API to ensure that GL contexts are always attached to a particular platform display. The create
methods receive an optional PlatformDisplay that will be used as the display of all GL operations of the created
GL context. The sharing GL context should also share the same display, it can't be global to the process, but to
the display, so it's now created on demand by the PlatformDisplay. In addition to the global shared display,
it's now possible to set a shared display for compositing that can be used when creating GL contexts. This makes
it possible to use a different display for compositing, connected to the nested display in wayland, even in non
wayland environments.
The patch also adds support for surfaceless EGL contexts that can be used for offscreen contexts. It also adds
support for offscreen wayland contexts, as a fallback in wayland in case surfaceless is not supported.
Some wayland code that is specific to the WebKit2 implementation has been moved to the WebKit2 layer.

  • PlatformGTK.cmake:
  • platform/graphics/GLContext.cpp:

(WebCore::initializeOpenGLShimsIfNeeded):
(WebCore::GLContext::createContextForWindow):
(WebCore::GLContext::createOffscreenContext):
(WebCore::GLContext::createSharingContext):
(WebCore::GLContext::GLContext):
(WebCore::GLContext::~GLContext):
(WebCore::GLContext::current):
(WebCore::activeContextList): Deleted.

  • platform/graphics/GLContext.h:

(WebCore::GLContext::display):

  • platform/graphics/GraphicsContext3DPrivate.cpp:

(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::platformContext):
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::createPlatformDisplay): Always use the default wayland display created by GTK+ for
the global shared display.
(WebCore::PlatformDisplay::sharedDisplayForCompositing):
(WebCore::PlatformDisplay::setSharedDisplayForCompositing):
(WebCore::PlatformDisplay::sharingGLContext):
(WebCore::eglDisplays): Helper HashSet to keep track of all PlatformDisplays with an EGL display intialized to
properly termimate them at exit.
(WebCore::PlatformDisplay::initializeEGLDisplay): Remove eglBindAPI() from display initialization, since it's
not a display initialization and it's thread specific, so it needs to be called on every thread where EGL is used.
(WebCore::PlatformDisplay::terminateEGLDisplay):
(WebCore::PlatformDisplay::eglDisplay): Deleted.

  • platform/graphics/PlatformDisplay.h:
  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBufferData::~ImageBufferData):
(WebCore::ImageBufferData::createCompositorBuffer):
(WebCore::ImageBufferData::swapBuffersIfNeeded):
(WebCore::ImageBufferData::createCairoGLSurface):
(WebCore::ImageBufferData::paintToTextureMapper):
(WebCore::ImageBuffer::copyToPlatformTexture):

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::getEGLConfig):
(WebCore::GLContextEGL::createWindowContext):
(WebCore::GLContextEGL::createPbufferContext):
(WebCore::GLContextEGL::createSurfacelessContext):
(WebCore::GLContextEGL::createPixmapContext):
(WebCore::GLContextEGL::createWaylandContext):
(WebCore::GLContextEGL::createContext):
(WebCore::GLContextEGL::createSharingContext):
(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::~GLContextEGL):
(WebCore::GLContextEGL::defaultFrameBufferSize):
(WebCore::GLContextEGL::makeContextCurrent):
(WebCore::GLContextEGL::swapBuffers):
(WebCore::GLContextEGL::cairoDevice):

  • platform/graphics/egl/GLContextEGL.h:
  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::GLContextGLX::createWindowContext):
(WebCore::GLContextGLX::createPbufferContext):
(WebCore::GLContextGLX::createPixmapContext):
(WebCore::GLContextGLX::createContext):
(WebCore::GLContextGLX::createSharingContext):
(WebCore::GLContextGLX::GLContextGLX):
(WebCore::GLContextGLX::~GLContextGLX):
(WebCore::GLContextGLX::defaultFrameBufferSize):
(WebCore::GLContextGLX::makeContextCurrent):
(WebCore::GLContextGLX::swapBuffers):
(WebCore::GLContextGLX::cairoDevice):
(WebCore::GLContextGLX::waitNative): Deleted.

  • platform/graphics/glx/GLContextGLX.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext):
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):

  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::PlatformDisplayWayland):
(WebCore::PlatformDisplayWayland::~PlatformDisplayWayland):
(WebCore::PlatformDisplayWayland::initialize):
(WebCore::PlatformDisplayWayland::registryGlobal):
(WebCore::PlatformDisplayWayland::createSurface):

  • platform/graphics/wayland/PlatformDisplayWayland.h:

(WebCore::PlatformDisplayWayland::native): Deleted.

  • platform/graphics/wayland/WaylandEventSource.cpp: Removed.
  • platform/graphics/wayland/WaylandSurface.cpp: Removed.
  • platform/graphics/wayland/WebKitGtkWaylandClientProtocol.xml: Removed.
  • platform/graphics/wayland/WlUniquePtr.h: Make it possible to use std::unique_ptr with Wayland objects.

(WebCore::WlPtrDeleter::operator()):

Source/WebKit/win:

Update to the new GLContext API.

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::initialize):
(AcceleratedCompositingContext::acceleratedCompositingAvailable):

Source/WebKit2:

This is the initial implementation of accelerated compositing support in Wayland for the GTK+ port. It's based
on previous patches written by Iago Toral, Žan Doberšek, Emanuele Aina and Emilio Pozuelo Monfort.

The existing WebKitGTK+ Wayland interface previously added for this to WebCore has been moved to the WebKit2
layer, since it's actually specific to WebKit2, and it's now actually used. The UI process runs a nested Wayland
compositor that web processes connect to. Web processes create a Wayland surface in the nested compositor for
the web page, and using the WebKitGTK+ Wayland protocol interface they tell the nested compositor the web page
associated to the surface. A Wayland window is created for that surface that is then used as the native window
handle for compositing. To communicate with the nested compositor and to ensure all GL operations happen in the
nested compositor display, the web process creates a Wayland display that connects to the nested compositor,
uses the WebKitGTK+ Wayland interface and it's set as the global shared display for compositing.

The nested Wayland compositor creates a new display with a unique name that is sent to the web processes at
start up. It implements the Wayland surface interface to handle the Wayland buffers created for every surface
and scheduling redraws on the web pages when updates are available. It uses the WebKitGTK+ Wayland interface to
associate the surfaces to a particular web page. A texture is created for every surface and updated with the
Wayland buffer contents using an EGLImageKHR and eglImageTargetTexture2d API.

To abstract the platform differences and avoid ifdefs as much as possible, new abstract classes have been added
to represent the surfaces used in accelerated compositing. AcceleratedSurface is used by the web process and
represents the surface where contents are rendered into. The X11 implementation is the redirected XComposite
window, and the Wayland implementation is equivalent to the previous Wayland surface added to WebCore but never
used. In the UI process the web view creates an abstract AcceleratedBackingStore that is used to render the
AcceleratedSurface into the web view using cairo. The X11 implementation creates the cairo surface for the
redirected XComposite window pixmap and uses XDamage extension to schedule redraws. The Wayland implementation
asks the nested Wayland compositor for the texture associated to the web view page.

Accelerated compositing is now always enabled by default in both X11 and Wayland, unless it's explicitly
disabled by the user using the WEBKIT_DISABLE_COMPOSITING_MODE environment variable, or if any extension or
feature required by X11 or Wayland implementations are not available.

  • PlatformGTK.cmake:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::glContext): Pass the shared display for compositing to GLContext::createContextForWindow()

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Encode wayland compositor display name.
(WebKit::WebProcessCreationParameters::decode): Decode wayland compositor display name.

  • Shared/WebProcessCreationParameters.h: Add wayland compositor display name initial parameter.
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDispose):
(webkitWebViewBaseDraw):
(webkitWebViewBaseCreateWebPage):
(webkitWebViewBaseEnterAcceleratedCompositingMode):
(webkitWebViewBaseUpdateAcceleratedCompositingMode):
(webkitWebViewBaseExitAcceleratedCompositingMode):
(webkitWebViewBasePageClosed):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess): Initialize the wayland compositor display name initial parameter.

  • UIProcess/gtk/AcceleratedBackingStore.cpp: Added.

(WebKit::AcceleratedBackingStore::create):
(WebKit::AcceleratedBackingStore::AcceleratedBackingStore):
(WebKit::AcceleratedBackingStore::~AcceleratedBackingStore):
(WebKit::AcceleratedBackingStore::paint):

  • UIProcess/gtk/AcceleratedBackingStore.h: Added.

(WebKit::AcceleratedBackingStore::update):

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: Added.

(WebKit::AcceleratedBackingStoreWayland::create):
(WebKit::AcceleratedBackingStoreWayland::AcceleratedBackingStoreWayland):
(WebKit::AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland):
(WebKit::AcceleratedBackingStoreWayland::paint):

  • UIProcess/gtk/AcceleratedBackingStoreWayland.h: Added.
  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp: Added.

(WebKit::XDamageNotifier::singleton):
(WebKit::XDamageNotifier::add):
(WebKit::XDamageNotifier::remove):
(WebKit::XDamageNotifier::filterXDamageEvent):
(WebKit::XDamageNotifier::notify):
(WebKit::AcceleratedBackingStoreX11::create):
(WebKit::AcceleratedBackingStoreX11::AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):
(WebKit::AcceleratedBackingStoreX11::paint):

  • UIProcess/gtk/AcceleratedBackingStoreX11.h: Added.
  • UIProcess/gtk/WaylandCompositor.cpp: Added.

(WebKit::WaylandCompositor::singleton):
(WebKit::WaylandCompositor::Buffer::getOrCreate):
(WebKit::WaylandCompositor::Buffer::Buffer):
(WebKit::WaylandCompositor::Buffer::~Buffer):
(WebKit::WaylandCompositor::Buffer::destroyListenerCallback):
(WebKit::WaylandCompositor::Buffer::use):
(WebKit::WaylandCompositor::Buffer::unuse):
(WebKit::WaylandCompositor::Buffer::createImage):
(WebKit::WaylandCompositor::Buffer::size):
(WebKit::WaylandCompositor::Surface::Surface):
(WebKit::WaylandCompositor::Surface::~Surface):
(WebKit::WaylandCompositor::Surface::makePendingBufferCurrent):
(WebKit::WaylandCompositor::Surface::attachBuffer):
(WebKit::WaylandCompositor::Surface::requestFrame):
(WebKit::WaylandCompositor::Surface::prepareTextureForPainting):
(WebKit::WaylandCompositor::Surface::commit):
(WebKit::WaylandCompositor::initializeEGL):
(WebKit::createWaylandLoopSource):
(WebKit::WaylandCompositor::WaylandCompositor):
(WebKit::WaylandCompositor::getTexture):
(WebKit::WaylandCompositor::bindSurfaceToWebPage):
(WebKit::WaylandCompositor::registerWebPage):
(WebKit::WaylandCompositor::unregisterWebPage):

  • UIProcess/gtk/WaylandCompositor.h: Added.

(WebKit::WaylandCompositor::Buffer::createWeakPtr):
(WebKit::WaylandCompositor::Surface::setWebPage):
(WebKit::WaylandCompositor::isRunning):
(WebKit::WaylandCompositor::displayName):

  • UIProcess/gtk/WebPreferencesGtk.cpp:

(WebKit::WebPreferences::platformInitializeStore):

  • UIProcess/gtk/XDamageNotifier.cpp: Removed.
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):
(WebKit::ThreadedCoordinatedLayerTreeHost::invalidate):
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange):

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/gtk/AcceleratedSurface.cpp: Added.

(WebKit::AcceleratedSurface::create):
(WebKit::AcceleratedSurface::AcceleratedSurface):
(WebKit::AcceleratedSurface::~AcceleratedSurface):
(WebKit::AcceleratedSurface::resize):

  • WebProcess/WebPage/gtk/AcceleratedSurface.h: Added.

(WebKit::AcceleratedSurface::window):
(WebKit::AcceleratedSurface::surfaceID):

  • WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp: Added.

(WebKit::waylandCompositorDisplay):
(WebKit::AcceleratedSurfaceWayland::create):
(WebKit::AcceleratedSurfaceWayland::AcceleratedSurfaceWayland):
(WebKit::AcceleratedSurfaceWayland::~AcceleratedSurfaceWayland):
(WebKit::AcceleratedSurfaceWayland::resize):

  • WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h: Added.
  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/gtk/RedirectedXCompositeWindow.cpp.

(WebKit::AcceleratedSurfaceX11::create):
(WebKit::AcceleratedSurfaceX11::AcceleratedSurfaceX11):
(WebKit::AcceleratedSurfaceX11::~AcceleratedSurfaceX11):
(WebKit::AcceleratedSurfaceX11::resize):

  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h: Renamed from Source/WebKit2/WebProcess/WebPage/gtk/RedirectedXCompositeWindow.h.
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
(WebKit::LayerTreeHostGtk::makeContextCurrent):
(WebKit::LayerTreeHostGtk::invalidate):
(WebKit::LayerTreeHostGtk::sizeDidChange):
(WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged):
(WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler): Deleted.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess): Initialize the wayland compositor display name.

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::waylandCompositorDisplayName): Return the wayland compositor display name.

2:18 AM Changeset in webkit [205115] by commit-queue@webkit.org
  • 13 edits in trunk

[Fetch API] Add support for BufferSource bodies
https://bugs.webkit.org/show_bug.cgi?id=161087

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-29
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/request-headers-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers.js:

(checkContentType):
(requestHeaders): Change the order of the header checks so that passing headers are checked first.

  • web-platform-tests/fetch/api/request/request-consume-expected.txt:
  • web-platform-tests/fetch/api/request/request-consume.html:
  • web-platform-tests/fetch/api/response/response-consume-stream-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-stream.html:

Source/WebCore:

Covered by updated tests.

Added support for ArrayBuffer, ArrayBufferView and FormData upload.
Added support for consuming ArrayBufferView.

To support FormData upload, FetchBOdy is now storing a FormData computed from the DOMFormData passed to the constructor.
This allows setting the content-type for FormData correctly with the boundary parameter.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::bodyForInternalRequest): Adding support for FormData upload.
(WebCore::FetchBody::FetchBody): Adding ArrayBuffer and ArrayBufferView constructors.
(WebCore::FetchBody::extract): Extracting in case of BufferSource (i.e. ArrayBuffer or ArrayBufferView) and FormData.
(WebCore::FetchBody::consume): Adding support to consume ArrayBufferView.
(WebCore::FetchBody::consumeAsStream): Adding support to consume ArrayBufferView as a stream.
Cloned the ArrayBuffer before enqueuing it in the stream.
(WebCore::FetchBody::consumeArrayBuffer): Cleaning m_data after being consumed.
(WebCore::FetchBody::consumeArrayBufferView): Adding support to consume ArrayBufferView.
(WebCore::FetchBody::consumeText): Cleaning m_text after being consumed.
(WebCore::FetchBody::consumeBlob): Ditto for m_blob.
(WebCore::FetchBody::bodyForInternalRequest): Adding support for ArrayBuffer and ArrayBufferView upload.

  • Modules/fetch/FetchBody.h:
  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::internalRequest): Passing ScriptExecutionContext as this is needed for FormData upload.
(WebCore::FetchRequest::setBody): Ditto.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::initializeWith): Ditto.
(WebCore::FetchResponse::fetch): Removing FormData upload rejection check.

1:50 AM Changeset in webkit [205114] by svillar@igalia.com
  • 5 edits
    2 adds in trunk

[css-grid] Do not recursively call layout during auto repeat computation
https://bugs.webkit.org/show_bug.cgi?id=161234

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

The computation of auto repeat tracks was incorrectly recursively triggering
a layout in order to compute the available size. That was happening whenever
the width was indefinite. In such cases we should treat the width always as
indefinite without having to run any extra code. During the layout phase
we'll have the actual width available.

This fix also unveiled a few errors in one of the imported mozilla tests which were
incorrectly passing when they should not.

Test: fast/css-grid-layout/grid-indefinite-size-auto-repeat-crash.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeAutoRepeatTracksCount):
(WebCore::RenderGrid::placeItemsOnGrid):

  • rendering/RenderGrid.h:

LayoutTests:

Added a new test case and fixed a few tests inside the imported
grid-repeat-auto-fill-fit-001.html which were wrong due to a bug in Firefox. The intrinsic
size computation was not considering the existence of definite minimum sizes for some of the
grids so the outcome was narrower than expected.

  • fast/css-grid-layout/grid-indefinite-size-auto-repeat-crash-expected.txt: Added.
  • fast/css-grid-layout/grid-indefinite-size-auto-repeat-crash.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001-expected.html:
1:06 AM Changeset in webkit [205113] by commit-queue@webkit.org
  • 19 edits in trunk

data:// URL behavior of XHR does not match spec
https://bugs.webkit.org/show_bug.cgi?id=109199

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-29
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/data-uri-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-scripts-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-data.js: Adding setStatusText check.
  • web-platform-tests/fetch/api/basic/scheme-data-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt:

Source/WebCore:

Covered by rebased tests.

Making data URLs same origin for XHR and fetch API.
This is the behavior when https://fetch.spec.whatwg.org/#same-origin-data-url-flag is set.
As per the specs, this flag is set for fetch API and XMLHttpRequest.
Introducing this flag in ThreadableLoader options, default value being false.
Setting flag for XHR and fetch API.

Fixing accuracy of data URL loading by setting status code and content-type HTTP header as per fetch specification.

As can be seen from the rebased tests, no constraint is put on the method used as the fetch specification is about to allow all methods for data URLs.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): Setting same-origin-data-url-flag to true.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Making data URLs same origin if flag is set.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::loadDataURL): Setting status code and content-type header according specification.

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): Adding same-origin-data-url-flag option.

  • loader/ThreadableLoader.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::LoaderTaskOptions::LoaderTaskOptions): Ensuring flag is preserved when going to the main thread.

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::parseMediaType): Setting mediaType value, used by ResourceLoader to set the content-type header.

  • platform/network/DataURLDecoder.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest): Setting same-origin-data-url-flag to true.

12:21 AM Changeset in webkit [205112] by commit-queue@webkit.org
  • 20 edits
    1 add in trunk

[JSC] Improve ArithAbs with polymorphic input
https://bugs.webkit.org/show_bug.cgi?id=161286

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-29
Reviewed by Saam Barati.

JSTests:

  • stress/arith-abs-on-various-types.js: Added.

New tests.

  • stress/arith-cos-on-various-types.js:
  • stress/arith-fround-on-various-types.js:
  • stress/arith-log-on-various-types.js:
  • stress/arith-sin-on-various-types.js:
  • stress/arith-sqrt-on-various-types.js:

Extend the existing tests to cover the DCE case.

Source/JavaScriptCore:

This is similar to the previous patches: if we have polymorphic
input, do a function call.

I also discovered a few problems with the tests and fixed them:
-I forgot to add NodeMustGenerate to the previous nodes I changed.

They could have been eliminated by DCE.

-ArithAbs was always exiting if the input types do not include numbers.

The cause was the node was using isInt32OrBooleanSpeculationForArithmetic()
instead of isInt32OrBooleanSpeculation(). The test of
isInt32OrBooleanSpeculationForArithmetic() only verify the input does not
contains double or int52. If we were in that case, we were always speculating
Int32. That always fails and we were recompiling the same code over and over.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
Now that we have toNumberFromPrimitive(), we can improve constant folding here :)

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasResult):
(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::hasInt32Result): Deleted.
The accessor hasInt32Result() was unused.

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithAbs):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArithAbs):

Aug 28, 2016:

11:55 PM Changeset in webkit [205111] by fred.wang@free.fr
  • 12 edits
    5 adds in trunk

Add support for non-BMP operators U+1EEF0 and U+1EEF1
https://bugs.webkit.org/show_bug.cgi?id=153984

Source/WebCore:

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-25
Reviewed by Darin Adler.

Tests: mathml/presentation/non-bmp-operators-spacing.html

mathml/presentation/non-bmp-operators-stretching.html

  • mathml/MathMLOperatorDictionary.cpp: We move the definition of operator dictionary Entry

here as it is not used by external code.
We now also accept non-BMP operators and add entries for U+1EEF0 and U+1EEF1.
(WebCore::extractProperty): Helper function to convert from Entry structure to a Property
structure.
(WebCore::MathMLOperatorDictionary::search): This function now accepts a non-BMP parameter
and returns a Property structure.
(WebCore::MathMLOperatorDictionary::isVertical): This function now accepts a non-BMP parameter.

  • mathml/MathMLOperatorDictionary.h: Replace the Entry structure with a Property structure

which was used by MathMLOperatorElement. Update the signatures of search and isVertical.

  • mathml/MathMLOperatorElement.cpp:

(WebCore::MathMLOperatorElement::parseOperatorChar): Remove the special case that excludes
non-BMP operators.
(WebCore::MathMLOperatorElement::computeDictionaryProperty): Rename the property structure
to use the one moved into MathMLOperatorDictionary.h. We no longer need to convert the result
of the search call.
(WebCore::MathMLOperatorElement::dictionaryProperty): Rename the property structure.

  • mathml/MathMLOperatorElement.h: Make OperatorChar accept non-BMP operators.

MathMLOperatorElement::DictionaryProperty is now moved into MathMLOperatorDictionary
and renamed Property.

  • rendering/mathml/MathOperator.cpp: Accept non-BMP operators.
  • rendering/mathml/MathOperator.h: Ditto.
  • rendering/mathml/RenderMathMLFencedOperator.cpp:

(WebCore::RenderMathMLFencedOperator::updateOperatorContent): Adjust code to use the new
return type of MathMLOperatorDictionary::search.

  • rendering/mathml/RenderMathMLFencedOperator.h: Accept non-BMP operators.
  • rendering/mathml/RenderMathMLOperator.cpp: Ditto.
  • rendering/mathml/RenderMathMLOperator.h: Ditto.

LayoutTests:

We add two reftests to check that the non-BMP operators are properly
handled by the MathML dictionary (form, properties, direction) as well
as the rendering code (spacing, stretching). We test the new horizontal
strechy operators U+1EEF0 and U+1EEF1 as well as the letter U+1D400
which is not a real mathematical operator. We add a minimal test
font which contains a black square for U+005F, U+1EEF0, U+1EEF1, U+1D400
and the data that can be used to stretch them horizontally.

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-25
Reviewed by Darin Adler.

  • mathml/presentation/non-bmp-operators-spacing-expected.html: Added.
  • mathml/presentation/non-bmp-operators-spacing.html: Added.
  • mathml/presentation/non-bmp-operators-stretching-expected.html: Added.
  • mathml/presentation/non-bmp-operators-stretching.html: Added.
  • mathml/presentation/non-bmp-operators.woff: Added.
11:49 PM Changeset in webkit [205110] by commit-queue@webkit.org
  • 11 edits
    2 adds in trunk

[Fetch API] Ensure response cloning works when data is loading
https://bugs.webkit.org/show_bug.cgi?id=161137

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-28
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-clone-expected.txt:
  • web-platform-tests/fetch/api/response/response-clone.html: New tests highly inspired from Chromium similar tests.

Source/WebCore:

Test: http/tests/fetch/clone-after-load-is-finished.html and updated wpt test

FetchBody is only able to clone data when requested by Response in case the data is already there.
If data is loaded from FetchLoader, each received chunk should be given to each cloned response.
The simplest approach is to create a ReadableStream body for the cloned Response and use it for the teeing.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didSucceed): Postpone stream closing if there is still data to enqueue in the FetchBody.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl:
  • Modules/fetch/FetchResponse.js:

(clone): If response is being loaded, create a ReadableStream body so that loaded data cloning is handled by ReadableStream tee.

  • Modules/streams/ReadableStreamInternals.js: Restrict firstReadCallback to the case of a readable ReadableStream.

If stream is errored or closed, FetchResponse will already have disposed of its source.
(readFromReadableStreamDefaultReader):

  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

  • http/tests/fetch/clone-response-body-expected.txt: Added.
  • http/tests/fetch/clone-response-body.html: Added.
10:57 PM Changeset in webkit [205109] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, update iOS simulator WK1 flaky tests.

  • platform/ios-simulator-wk1/TestExpectations:
6:19 PM Changeset in webkit [205108] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Remove flakiness expectations from switch to threaded compositor

This is completely hopeless, since there is a seemingly-unlimited number of tests that have
been broken. Suppressing an arbitrary subset of the failures is not helping anything. Keep
only records for tests that are really flaky.

Retain expectations for flaky timeouts and crashes.

4:31 PM Changeset in webkit [205107] by sbarati@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Make SpeculatedType a 64-bit integer
https://bugs.webkit.org/show_bug.cgi?id=161268

Reviewed by Filip Pizlo and Benjamin Poulain.

I'm going to introduce two new types into this and we only
have room for one in 32-bits. So, this patch widens SpeculatedType
to 64 bits. This also pulls this information through the DFG where
we needed to change DFGNode to support this.

  • bytecode/SpeculatedType.h:
  • dfg/DFGNode.cpp:

(JSC::DFG::Node::convertToPutHint):
(JSC::DFG::Node::promotedLocationDescriptor):

  • dfg/DFGNode.h:

(JSC::DFG::Node::Node):
(JSC::DFG::Node::convertToCheckStructure):
(JSC::DFG::Node::constant):
(JSC::DFG::Node::convertToConstant):
(JSC::DFG::Node::convertToConstantStoragePointer):
(JSC::DFG::Node::convertToPutStack):
(JSC::DFG::Node::convertToGetStack):
(JSC::DFG::Node::convertToGetByOffset):
(JSC::DFG::Node::convertToMultiGetByOffset):
(JSC::DFG::Node::convertToPutByOffset):
(JSC::DFG::Node::convertToMultiPutByOffset):
(JSC::DFG::Node::convertToPhantomNewObject):
(JSC::DFG::Node::convertToPhantomNewFunction):
(JSC::DFG::Node::convertToPhantomNewGeneratorFunction):
(JSC::DFG::Node::convertToPhantomCreateActivation):
(JSC::DFG::Node::convertToGetLocal):
(JSC::DFG::Node::lazyJSValue):
(JSC::DFG::Node::initializationValueForActivation):
(JSC::DFG::Node::tryGetVariableAccessData):
(JSC::DFG::Node::variableAccessData):
(JSC::DFG::Node::unlinkedLocal):
(JSC::DFG::Node::unlinkedMachineLocal):
(JSC::DFG::Node::stackAccessData):
(JSC::DFG::Node::phi):
(JSC::DFG::Node::identifierNumber):
(JSC::DFG::Node::getPutInfo):
(JSC::DFG::Node::accessorAttributes):
(JSC::DFG::Node::newArrayBufferData):
(JSC::DFG::Node::indexingType):
(JSC::DFG::Node::typedArrayType):
(JSC::DFG::Node::inlineCapacity):
(JSC::DFG::Node::scopeOffset):
(JSC::DFG::Node::capturedArgumentsOffset):
(JSC::DFG::Node::variablePointer):
(JSC::DFG::Node::callVarargsData):
(JSC::DFG::Node::loadVarargsData):
(JSC::DFG::Node::targetBytecodeOffsetDuringParsing):
(JSC::DFG::Node::targetBlock):
(JSC::DFG::Node::branchData):
(JSC::DFG::Node::switchData):
(JSC::DFG::Node::getHeapPrediction):
(JSC::DFG::Node::cellOperand):
(JSC::DFG::Node::watchpointSet):
(JSC::DFG::Node::storagePointer):
(JSC::DFG::Node::uidOperand):
(JSC::DFG::Node::typeInfoOperand):
(JSC::DFG::Node::transition):
(JSC::DFG::Node::structureSet):
(JSC::DFG::Node::structure):
(JSC::DFG::Node::storageAccessData):
(JSC::DFG::Node::multiGetByOffsetData):
(JSC::DFG::Node::multiPutByOffsetData):
(JSC::DFG::Node::objectMaterializationData):
(JSC::DFG::Node::arrayMode):
(JSC::DFG::Node::arithMode):
(JSC::DFG::Node::arithRoundingMode):
(JSC::DFG::Node::setArithRoundingMode):
(JSC::DFG::Node::executionCounter):
(JSC::DFG::Node::typeLocation):
(JSC::DFG::Node::basicBlockLocation):
(JSC::DFG::Node::numberOfArgumentsToSkip):
(JSC::DFG::Node::OpInfoWrapper::OpInfoWrapper):
(JSC::DFG::Node::OpInfoWrapper::operator=):

  • dfg/DFGOpInfo.h:

(JSC::DFG::OpInfo::OpInfo):

  • dfg/DFGPromotedHeapLocation.h:

(JSC::DFG::PromotedLocationDescriptor::imm1):
(JSC::DFG::PromotedLocationDescriptor::imm2):

3:38 PM Changeset in webkit [205106] by akling@apple.com
  • 7 edits in trunk/Source

document.title setter can't throw.
<https://webkit.org/b/161302>

Reviewed by Antti Koivisto.

Source/WebCore:

Remove [SetterRaisesException] from document.title and replace
ExceptionCode propagation with ASSERT_NO_EXCEPTION.

Setting the .textContent of a SVGTitleElement or HTMLTitleElement
will never fail, so there's no exception to propagate.

  • dom/Document.cpp:

(WebCore::Document::setTitle):

  • dom/Document.h:
  • dom/Document.idl:
  • html/ImageDocument.cpp:

(WebCore::ImageDocument::finishedParsing):

Source/WebKit/mac:

  • DOM/DOMDocument.mm:

(-[DOMDocument setTitle:]):

10:36 AM Changeset in webkit [205105] by fred.wang@free.fr
  • 9 edits in trunk/Source/WebCore

MathML renderers should use struct to pass long list of LayoutUnits
https://bugs.webkit.org/show_bug.cgi?id=161084

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-23
Reviewed by Darin Adler.

RenderMathMLFraction, RenderMathMLMenclose, RenderMathMLScripts and RenderMathMLUnderOver
have helper functions to retrieve a list of LayoutUnit parameters. We gather them in a single
struct instead of using a long list of LayoutUnit& parameters.

No new tests, behavior is unchanged.

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::getFractionParameters):
(WebCore::RenderMathMLFraction::getStackParameters):
(WebCore::RenderMathMLFraction::layoutBlock):

  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLMenclose.cpp:

(WebCore::RenderMathMLMenclose::getSpaceAroundContent):
(WebCore::RenderMathMLMenclose::computePreferredLogicalWidths):
(WebCore::RenderMathMLMenclose::layoutBlock):

  • rendering/mathml/RenderMathMLMenclose.h:
  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
(WebCore::RenderMathMLScripts::layoutBlock):

  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::getVerticalParameters):
(WebCore::RenderMathMLUnderOver::layoutBlock):

  • rendering/mathml/RenderMathMLUnderOver.h:
9:54 AM Changeset in webkit [205104] by akling@apple.com
  • 17 edits in trunk/Source

Clean up some .text attribute setters that don't throw.
<https://webkit.org/b/161292>

Reviewed by Darin Adler.

Source/WebCore:

Remove [SetterRaisesException] for three .text attributes
and replace them with ASSERT_NO_EXCEPTION.

These setters behave like .textContent, which can't throw as
it's always okay to replace an Element's children with a Text.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::setText):

  • html/HTMLAnchorElement.h:
  • html/HTMLAnchorElement.idl:
  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::setText):

  • html/HTMLOptionElement.h:
  • html/HTMLOptionElement.idl:
  • html/HTMLTitleElement.cpp:

(WebCore::HTMLTitleElement::setText):

  • html/HTMLTitleElement.h:
  • html/HTMLTitleElement.idl:

Source/WebKit/mac:

  • DOM/DOMHTMLTitleElement.mm:

(-[DOMHTMLTitleElement setText:]):

8:46 AM Changeset in webkit [205103] by hyatt@apple.com
  • 8 edits
    20 adds
    2 deletes in trunk/Source/WebCore

Initial landing of CSS Parser Tokenization (and files to support that). Not used yet.
https://bugs.webkit.org/show_bug.cgi?id=161174

This code is imported from Blink and is their CSS parser (modified to work in WebKit).
It is from commit e4bb90df7f2ed8a63975b5ed27a1b488cb9b146f, Mon Aug 22 2016.

Reviewed by Simon Fraser.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSMarkup.cpp: Added.

(WebCore::isCSSTokenizerIdentifier):
(WebCore::serializeCharacter):
(WebCore::serializeCharacterAsCodePoint):
(WebCore::serializeIdentifier):
(WebCore::serializeString):
(WebCore::serializeURI):
(WebCore::serializeFontFamily):

  • css/CSSMarkup.h: Added.
  • css/CSSOMUtils.cpp: Removed.
  • css/CSSOMUtils.h: Removed.
  • css/CSSSelector.cpp:
  • css/parser/CSSParserFastPaths.cpp: Added.
  • css/parser/CSSParserFastPaths.h: Added.
  • css/parser/CSSParserIdioms.h: Added.

(WebCore::isCSSSpace):
(WebCore::isNameStartCodePoint):
(WebCore::isNameCodePoint):

  • css/parser/CSSParserObserver.h: Added.

(WebCore::CSSParserObserver::~CSSParserObserver):

  • css/parser/CSSParserObserverWrapper.cpp: Added.

(WebCore::CSSParserObserverWrapper::startOffset):
(WebCore::CSSParserObserverWrapper::previousTokenStartOffset):
(WebCore::CSSParserObserverWrapper::endOffset):
(WebCore::CSSParserObserverWrapper::skipCommentsBefore):
(WebCore::CSSParserObserverWrapper::yieldCommentsBefore):

  • css/parser/CSSParserObserverWrapper.h: Added.

(WebCore::CSSParserObserverWrapper::CSSParserObserverWrapper):
(WebCore::CSSParserObserverWrapper::observer):
(WebCore::CSSParserObserverWrapper::addComment):
(WebCore::CSSParserObserverWrapper::addToken):
(WebCore::CSSParserObserverWrapper::finalizeConstruction):

  • css/parser/CSSParserToken.cpp: Added.

(WebCore::cssPrimitiveValueUnitFromTrie):
(WebCore::stringToUnitType):
(WebCore::CSSParserToken::CSSParserToken):
(WebCore::CSSParserToken::convertToDimensionWithUnit):
(WebCore::CSSParserToken::convertToPercentage):
(WebCore::CSSParserToken::delimiter):
(WebCore::CSSParserToken::numericSign):
(WebCore::CSSParserToken::numericValueType):
(WebCore::CSSParserToken::numericValue):
(WebCore::CSSParserToken::parseAsUnresolvedCSSPropertyID):
(WebCore::CSSParserToken::id):
(WebCore::CSSParserToken::functionId):
(WebCore::CSSParserToken::hasStringBacking):
(WebCore::CSSParserToken::copyWithUpdatedString):
(WebCore::CSSParserToken::valueDataCharRawEqual):
(WebCore::CSSParserToken::operator==):
(WebCore::CSSParserToken::serialize):

  • css/parser/CSSParserToken.h: Added.

(WebCore::CSSParserToken::operator!=):
(WebCore::CSSParserToken::type):
(WebCore::CSSParserToken::value):
(WebCore::CSSParserToken::getHashTokenType):
(WebCore::CSSParserToken::getBlockType):
(WebCore::CSSParserToken::unitType):
(WebCore::CSSParserToken::unicodeRangeStart):
(WebCore::CSSParserToken::unicodeRangeEnd):
(WebCore::CSSParserToken::initValueFromStringView):

  • css/parser/CSSParserTokenRange.cpp: Added.

(WebCore::CSSParserTokenRange::eofToken):
(WebCore::CSSParserTokenRange::makeSubRange):
(WebCore::CSSParserTokenRange::consumeBlock):
(WebCore::CSSParserTokenRange::consumeComponentValue):
(WebCore::CSSParserTokenRange::serialize):

  • css/parser/CSSParserTokenRange.h: Added.

(WebCore::CSSParserTokenRange::CSSParserTokenRange):
(WebCore::CSSParserTokenRange::atEnd):
(WebCore::CSSParserTokenRange::end):
(WebCore::CSSParserTokenRange::peek):
(WebCore::CSSParserTokenRange::consume):
(WebCore::CSSParserTokenRange::consumeIncludingWhitespace):
(WebCore::CSSParserTokenRange::consumeWhitespace):
(WebCore::CSSParserTokenRange::begin):

  • css/parser/CSSPropertyParser.cpp: Added.

(WebCore::hasPrefix):
(WebCore::cssPropertyID):
(WebCore::cssPropertyNameIOSAliasing):
(WebCore::isAppleLegacyCssValueKeyword):
(WebCore::cssValueKeywordID):
(WebCore::unresolvedCSSPropertyID):

  • css/parser/CSSPropertyParser.h: Added.

(WebCore::CSSPropertyParser::inQuirksMode):

  • css/parser/CSSPropertyParserHelpers.cpp: Added.
  • css/parser/CSSPropertyParserHelpers.h: Added.

(WebCore::CSSPropertyParserHelpers::identMatches):
(WebCore::CSSPropertyParserHelpers::consumeIdent):
(WebCore::CSSPropertyParserHelpers::isCSSWideKeyword):

  • css/parser/CSSTokenizer.cpp: Added.

(WebCore::CSSTokenizer::Scope::Scope):
(WebCore::CSSTokenizer::Scope::tokenRange):
(WebCore::CSSTokenizer::Scope::tokenCount):
(WebCore::isNewLine):
(WebCore::twoCharsAreValidEscape):
(WebCore::CSSTokenizer::CSSTokenizer):
(WebCore::CSSTokenizer::reconsume):
(WebCore::CSSTokenizer::consume):
(WebCore::CSSTokenizer::whiteSpace):
(WebCore::CSSTokenizer::blockStart):
(WebCore::CSSTokenizer::blockEnd):
(WebCore::CSSTokenizer::leftParenthesis):
(WebCore::CSSTokenizer::rightParenthesis):
(WebCore::CSSTokenizer::leftBracket):
(WebCore::CSSTokenizer::rightBracket):
(WebCore::CSSTokenizer::leftBrace):
(WebCore::CSSTokenizer::rightBrace):
(WebCore::CSSTokenizer::plusOrFullStop):
(WebCore::CSSTokenizer::asterisk):
(WebCore::CSSTokenizer::lessThan):
(WebCore::CSSTokenizer::comma):
(WebCore::CSSTokenizer::hyphenMinus):
(WebCore::CSSTokenizer::solidus):
(WebCore::CSSTokenizer::colon):
(WebCore::CSSTokenizer::semiColon):
(WebCore::CSSTokenizer::hash):
(WebCore::CSSTokenizer::circumflexAccent):
(WebCore::CSSTokenizer::dollarSign):
(WebCore::CSSTokenizer::verticalLine):
(WebCore::CSSTokenizer::tilde):
(WebCore::CSSTokenizer::commercialAt):
(WebCore::CSSTokenizer::reverseSolidus):
(WebCore::CSSTokenizer::asciiDigit):
(WebCore::CSSTokenizer::letterU):
(WebCore::CSSTokenizer::nameStart):
(WebCore::CSSTokenizer::stringStart):
(WebCore::CSSTokenizer::endOfFile):
(WebCore::CSSTokenizer::nextToken):
(WebCore::CSSTokenizer::consumeNumber):
(WebCore::CSSTokenizer::consumeNumericToken):
(WebCore::CSSTokenizer::consumeIdentLikeToken):
(WebCore::CSSTokenizer::consumeStringTokenUntil):
(WebCore::CSSTokenizer::consumeUnicodeRange):
(WebCore::isNonPrintableCodePoint):
(WebCore::CSSTokenizer::consumeUrlToken):
(WebCore::CSSTokenizer::consumeBadUrlRemnants):
(WebCore::CSSTokenizer::consumeSingleWhitespaceIfNext):
(WebCore::CSSTokenizer::consumeUntilCommentEndFound):
(WebCore::CSSTokenizer::consumeIfNext):
(WebCore::CSSTokenizer::consumeName):
(WebCore::CSSTokenizer::consumeEscape):
(WebCore::CSSTokenizer::nextTwoCharsAreValidEscape):
(WebCore::CSSTokenizer::nextCharsAreNumber):
(WebCore::CSSTokenizer::nextCharsAreIdentifier):
(WebCore::CSSTokenizer::registerString):

  • css/parser/CSSTokenizer.h: Added.

(WebCore::CSSTokenizer::Scope::storeString):

  • css/parser/CSSTokenizerInputStream.cpp: Added.

(WebCore::CSSTokenizerInputStream::CSSTokenizerInputStream):
(WebCore::CSSTokenizerInputStream::advanceUntilNonWhitespace):
(WebCore::CSSTokenizerInputStream::getDouble):

  • css/parser/CSSTokenizerInputStream.h: Added.

(WebCore::CSSTokenizerInputStream::nextInputChar):
(WebCore::CSSTokenizerInputStream::peekWithoutReplacement):
(WebCore::CSSTokenizerInputStream::advance):
(WebCore::CSSTokenizerInputStream::pushBack):
(WebCore::CSSTokenizerInputStream::skipWhilePredicate):
(WebCore::CSSTokenizerInputStream::length):
(WebCore::CSSTokenizerInputStream::offset):
(WebCore::CSSTokenizerInputStream::rangeAt):

  • platform/Length.h:
7:45 AM Changeset in webkit [205102] by jfernandez@igalia.com
  • 4 edits
    2 adds in trunk

Should never be reached failure in WebCore::RenderFlexibleBox::alignChildren
https://bugs.webkit.org/show_bug.cgi?id=151591
<rdar://problem/27711829>

Reviewed by Darin Adler.

Source/WebCore:

The align-self and align-items CSS properties were originally defined in the
Flexbible Box specification. The new CSS Box Alignment specification tries
to generalize them so they can be used by other layout models, as it's the
case of the GridLayout spec.

Since we have implemented the Grid Layout spec behind a runtime flag, we should
do the same with the new syntax of these properties.

Test: css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled.html

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::alignChildren):

LayoutTests:

Test to verify that align-self and align-items CSS properties use the old
syntax when the Grid Layout feature is not enabled.

  • css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled-expected.txt: Added.
  • css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled.html: Added.
2:35 AM Changeset in webkit [205101] by fred.wang@free.fr
  • 6 edits in trunk

Improve parsing of the menclose notation attribute value
https://bugs.webkit.org/show_bug.cgi?id=161045

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-28
Reviewed by Darin Adler.

Source/WebCore:

We improve the way the list of menclose notations is parsed to avoid allocating a vector and
accept any whitespace as separators.

New test cases in mathml/presentation/menclose-notation-equivalence.html

  • mathml/MathMLMencloseElement.cpp: Include HTMLParserIdioms.h to use isHTMLSpace.

(WebCore::MathMLMencloseElement::addNotationFlags): Helper function to perform the relevant
addNotation calls from a notation name.
(WebCore::MathMLMencloseElement::parseNotationAttribute): Use only simple string operations
to determine the list of notations.

  • mathml/MathMLMencloseElement.h: Declare the new helper function.

LayoutTests:

We add some cases in menclose-notation-equivalence to verify that one can use any sequence of
whitespace to separate notation values. We try with 0, 1, 2 or 3 notation values.

  • mathml/presentation/menclose-notation-equivalence-expected.html:
  • mathml/presentation/menclose-notation-equivalence.html:
1:50 AM Changeset in webkit [205100] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Make MathMLSpaceElement and MathMLTokenElement inherit from MathMLPresentationElement
https://bugs.webkit.org/show_bug.cgi?id=161232

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-28
Reviewed by Darin Adler.

The mrow-like features of MathMLPresentationElement are now moved into RenderMathMLRow.
Hence we make MathMLSpaceElement and MathMLTokenElement inherit from the generic class
MathMLPresentationElement for presentation MathML elements.

No new tests, already covered by existing tests.

  • mathml/MathMLSpaceElement.cpp:

(WebCore::MathMLSpaceElement::MathMLSpaceElement): Derive from MathMLPresentationElement.
(WebCore::MathMLSpaceElement::parseAttribute): Ditto.

  • mathml/MathMLSpaceElement.h: Ditto. Override acceptsDisplayStyleAttribute as a small

optimization. isPresentationMathML is no longer needed.

  • mathml/MathMLTokenElement.cpp:

(WebCore::MathMLTokenElement::MathMLTokenElement): Derive from MathMLPresentationElement.
(WebCore::MathMLTokenElement::didAttachRenderers): Ditto.
(WebCore::MathMLTokenElement::childrenChanged): Ditto.
(WebCore::MathMLTokenElement::parseAttribute): Deleted. No need to override this function
any more since it's already implemented in MathMLPresentationElement.

  • mathml/MathMLTokenElement.h: Derive from MathMLPresentationElement. Override

acceptsDisplayStyleAttribute as a small optimization. isPresentationMathML is no longer
needed.

1:41 AM Changeset in webkit [205099] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

RenderMathMLRow::firstLineBaseline does not need to be overridden in RenderMathMLMenclose
https://bugs.webkit.org/show_bug.cgi?id=161127

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-28
Reviewed by Darin Adler.

RenderMathMLRow::firstLineBaseline already provides the correct calculation of ascent for
non-empty menclose elements. Empty menclose elements are not used in practice so the
calculated value is irrelevant. Aligning on mrow (i.e. leaving firstLineBaseline to 0)
is fine. This change allows to get rid of the m_ascent member and helps to keep good baseline
alignment when the zoom level changes (bug 161126).

No new tests, already covered by existing tests.

  • rendering/mathml/RenderMathMLMenclose.cpp:

(WebCore::RenderMathMLMenclose::RenderMathMLMenclose): Remove initialization of m_ascent.
(WebCore::RenderMathMLMenclose::layoutBlock): No need to calculate m_ascent. The height and
content location can be determined without introducing local variables ascent or descent.
(WebCore::RenderMathMLMenclose::firstLineBaseline): Deleted. We just use the implementation
from RenderMathMLRow.

  • rendering/mathml/RenderMathMLMenclose.h: Delete m_ascent and do not override

firstLineBaseline.

1:26 AM Changeset in webkit [205098] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

More cleanup for the mpadded implementation
https://bugs.webkit.org/show_bug.cgi?id=161136

Source/WebCore:

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-28
Reviewed by Darin Adler.

We perform the following cleanup for the mpadded renderer class:
1) We do not store the ascent on the class. This may make update more reliable and will
help for general improvement of MathML ascents (bug 155879).
2) We split resolveWidth/resolveAttributes into smaller functions and improve the coding
style. This helps to calculate firstLineBaseline in 1).
3) We do not override updateFromElement and styleDidChange to perform setNeedsLayout calls.
These calls already seem unnecessary and can be removed even more safely after 1).

We add a test for style change. Change of attributes as well as metrics calcuation of empty
and non-empty mpadded elements are already covered by other tests.

Test: mathml/presentation/mpadded-style-change.html

  • rendering/mathml/RenderMathMLPadded.cpp:

(WebCore::RenderMathMLPadded::voffset): New helper function to resolve voffset.
(WebCore::RenderMathMLPadded::lspace): Ditto for lspace.
(WebCore::RenderMathMLPadded::mpaddedWidth): Ditto for width.
(WebCore::RenderMathMLPadded::mpaddedHeight): Ditto for height.
(WebCore::RenderMathMLPadded::mpaddedDepth): Ditto for detph.
(WebCore::RenderMathMLPadded::computePreferredLogicalWidths): Use mpaddedWidth().
(WebCore::RenderMathMLPadded::layoutBlock): Use the new helper functions.
(WebCore::RenderMathMLPadded::firstLineBaseline): Use voffset or mpaddedHeight for baseline
calculation instead of m_padded.
(WebCore::RenderMathMLPadded::resolveWidth): Deleted. Renamed mpaddedWidth.
(WebCore::RenderMathMLPadded::resolveAttributes): Deleted. Split into smaller functions.
(WebCore::RenderMathMLPadded::updateFromElement): Deleted. We do not need to call
setNeedsLayout.
(WebCore::RenderMathMLPadded::styleDidChange): Deleted. Ditto.

  • rendering/mathml/RenderMathMLPadded.h: Update function declaration and remove m_ascent.

LayoutTests:

We add a test for style change in mpadded.

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-28
Reviewed by Darin Adler.

  • mathml/presentation/mpadded-style-change-expected.html: Added.
  • mathml/presentation/mpadded-style-change.html: Added.
Note: See TracTimeline for information about the timeline view.