WebKit-https.git
2 years agoIntroduce Storage Access API (document parts) as an experimental feature
wilander@apple.com [Thu, 14 Sep 2017 03:12:17 +0000 (03:12 +0000)]
Introduce Storage Access API (document parts) as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=175759
<rdar://problem/34414107>

Reviewed by Alex Christensen.

Source/WebCore:

Storage Access API is an experimental feature which allows cross-origin,
sandboxed iframes to request access to their first-party storage (as
opposed to partitioned storage). This might be restricted to cookies or
might cover all stateful mechanisms.

It introduces the following three developer-facing things:
- A new readonly attribute, document.hasStorageAccess.
- A new function, document.requestStorageAccess().
- A new iframe sandbox token, allow-storage-access-by-user-activation.

Tests: http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe.html
       http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe.html
       http/tests/storageAccess/request-and-grant-storage-access-cross-origin-iframe.html
       http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe.html
       http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html
       http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token.html
       http/tests/storageAccess/request-storage-access-same-origin-iframe.html
       http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token.html
       http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe.html
       http/tests/storageAccess/request-storage-access-top-frame.html

* dom/Document.cpp:
(WebCore::Document::requestStorageAccess):
* dom/Document.h:
(WebCore::Document::hasStorageAccess const):
(WebCore::Document::setUserGrantsStorageAccessOverride):
    See comments on WebCore::Internals below.
* dom/Document.idl:
* dom/SecurityContext.cpp:
(WebCore::SecurityContext::isSupportedSandboxPolicy):
(WebCore::SecurityContext::parseSandboxPolicy):
    Support for allow-storage-access-by-user-activation.
* dom/SecurityContext.h:
* loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::registerStorageAccess):
    Newly granted storage access is reported to
    WebCore::ResourceLoadObserver.
* loader/ResourceLoadObserver.h:
* loader/ResourceLoadStatistics.cpp:
(WebCore::encodeHashSet):
(WebCore::ResourceLoadStatistics::encode const):
(WebCore::decodeHashSet):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::appendHashSet):
(WebCore::ResourceLoadStatistics::toString const):
(WebCore::mergeHashSet):
(WebCore::ResourceLoadStatistics::merge):
    Storage of the new type of data.
* loader/ResourceLoadStatistics.h:
* page/Settings.in:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUserGrantsStorageAccess):
* testing/Internals.h:
* testing/Internals.idl:
    Added setUserGrantsStorageAccess(). It is used to
    override the eventSender's keyboard input which
    always results in a cancel action on the confirm()
    dialog.

Source/WebKit:

Storage Access API is an experimental feature which allows cross-origin,
sandboxed iframes to request access to their first-party storage (as
opposed to partitioned storage). This might be restricted to cookies or
might cover all stateful mechanisms.

It introduces the following three developer-facing things:
- A new readonly attribute, document.hasStorageAccess.
- A new function, document.requestStorageAccess().
- A new iframe sandbox token, allow-storage-access-by-user-activation.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::decode):
    Storage handling of the new type of data.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetStorageAccessAPIEnabled):
(WKPreferencesGetStorageAccessAPIEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
    Bumped the model version from 9 to 10.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
    Turns the feature on for tests.

LayoutTests:

Storage Access API is an experimental feature which allows cross-origin,
sandboxed iframes to request access to their first-party storage (as
opposed to partitioned storage). This might be restricted to cookies or
might cover all stateful mechanisms.

It introduces the following three developer-facing things:
- A new readonly attribute, document.hasStorageAccess.
- A new function, document.requestStorageAccess().
- A new iframe sandbox token, allow-storage-access-by-user-activation.

* TestExpectations:
* http/tests/storageAccess: Added.
* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe-expected.txt: Added.
* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe.html: Added.
* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe-expected.txt: Added.
* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe.html: Added.
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-iframe-expected.txt: Added.
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-iframe.html: Added.
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-expected.txt: Added.
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe.html: Added.
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-expected.txt: Added.
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html: Added.
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-expected.txt: Added.
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token.html: Added.
* http/tests/storageAccess/request-storage-access-same-origin-iframe-expected.txt: Added.
* http/tests/storageAccess/request-storage-access-same-origin-iframe.html: Added.
* http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-expected.txt: Added.
* http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token-expected.txt: Added.
* http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token.html: Added.
* http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe.html: Added.
* http/tests/storageAccess/request-storage-access-top-frame-expected.txt: Added.
* http/tests/storageAccess/request-storage-access-top-frame.html: Added.
* http/tests/storageAccess/resources: Added.
* http/tests/storageAccess/resources/request-storage-access-iframe.html: Added.
* platform/mac-wk2/TestExpectations:
    New test cases that require a user gesture marked as [ Pass ].
    Also removed reference to (now closed) https://bugs.webkit.org/show_bug.cgi?id=175170.
* platform/wk2/TestExpectations:
    New test case request-storage-access-top-frame.html marked as [ Pass ].

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222006 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoSubmitting a form can cause HTMLFormElement's associated elements vector to be mutate...
wenson_hsieh@apple.com [Thu, 14 Sep 2017 01:49:05 +0000 (01:49 +0000)]
Submitting a form can cause HTMLFormElement's associated elements vector to be mutated during iteration
https://bugs.webkit.org/show_bug.cgi?id=176368
<rdar://problem/34254998>

Reviewed by Ryosuke Niwa.

Source/WebCore:

In the process of iterating over form.associatedElements() during form submission in FormSubmission::create, the
page may cause us to clobber the vector of FormAssociatedElements* we're currently iterating over by inserting
new form controls beneath the form element we're in the process of submitting. This happens because
FormSubmission::create calls HTMLTextAreaElement::appendFormData, which requires layout to be up to date, which
in turn makes us updateLayout() and set focus, which fires a `change` event, upon which the page's JavaScript
inserts additonal DOM nodes into the form, modifying the vector of associated elements.

To mitigate this, instead of iterating over HTMLFormElement::associatedElements(), which returns a reference to
the HTMLFormElement's actual m_associatedElements vector, we iterate over a new vector of
Ref<FormAssociatedElement>s created from m_associatedElements.

This patch also removes an event dispatch assertion added in r212026. This assertion was added to catch any
other events dispatched in this scope, since dispatching events there would have had security implications, but
after making iteration over associated elements robust, this NoEventDispatchAssertion is no longer useful.

Test: fast/forms/append-children-during-form-submission.html

* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):

LayoutTests:

Adds a new test to make sure we don't crash when mutating a form's associated elements during form submission.

* fast/forms/append-children-during-form-submission-expected.txt: Added.
* fast/forms/append-children-during-form-submission.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222005 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[Apple Pay] Consider phoneticName when encoding ContactFields
aestes@apple.com [Thu, 14 Sep 2017 01:44:37 +0000 (01:44 +0000)]
[Apple Pay] Consider phoneticName when encoding ContactFields
https://bugs.webkit.org/show_bug.cgi?id=176885
<rdar://problem/34176419>

Reviewed by Tim Horton.

* Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::ContactFields>::encode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::ContactFields>::decode):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222004 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: allow recordings to be saved via ⌘-S in the Recording tab
webkit@devinrousso.com [Thu, 14 Sep 2017 00:32:04 +0000 (00:32 +0000)]
Web Inspector: allow recordings to be saved via ⌘-S in the Recording tab
https://bugs.webkit.org/show_bug.cgi?id=175284

Reviewed by Matt Baker.

* UserInterface/Views/RecordingContentView.js:
(WI.RecordingContentView.prototype.get supportsSave):
(WI.RecordingContentView.prototype.get saveData):

* UserInterface/Views/RecordingNavigationSidebarPanel.js:
(WI.RecordingNavigationSidebarPanel.prototype._exportNavigationItemClicked):
Use the current content view's saveData when exporting.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222003 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Event Listeners section does not update when listeners are added/removed
webkit@devinrousso.com [Wed, 13 Sep 2017 23:50:54 +0000 (23:50 +0000)]
Web Inspector: Event Listeners section does not update when listeners are added/removed
https://bugs.webkit.org/show_bug.cgi?id=170570
<rdar://problem/31501645>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/protocol/DOM.json:
Add two new events: "didAddEventListener" and "willRemoveEventListener". These events do not
contain any information about the event listeners that were added/removed. They serve more
as indications that something has changed, and to refetch the data again via `getEventListenersForNode`.

Source/WebCore:

Test: inspector/dom/event-listener-add-remove.html

* dom/EventTarget.cpp:
(WebCore::EventTarget::setAttributeEventListener):
Fire willRemoveEventListener/didAddEventListener events when an attribute event listener is
replaced by another event listener.

* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::didAddEventListener):
(WebCore::InspectorDOMAgent::willRemoveEventListener):
Dispatch an event to the inspector frontend whenever an event listener is added/removed.

* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didAddEventListenerImpl):
(WebCore::InspectorInstrumentation::willRemoveEventListenerImpl):
Tie into existing instrumentation points for adding/removing event listeners.

Source/WebInspectorUI:

* UserInterface/Protocol/DOMObserver.js:
(WI.DOMObserver.prototype.didAddEventListener):
(WI.DOMObserver.prototype.willRemoveEventListener):

* UserInterface/Controllers/DOMTreeManager.js:
(WI.DOMTreeManager.prototype.didAddEventListener):
(WI.DOMTreeManager.prototype.willRemoveEventListener):

* UserInterface/Models/DOMNode.js:
Add "EventListenersChanged" event. Fired when an event listener is added or removed.

* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WI.DOMNodeDetailsSidebarPanel.prototype.addEventListeners):
(WI.DOMNodeDetailsSidebarPanel.prototype.removeEventListeners):
(WI.DOMNodeDetailsSidebarPanel.prototype._eventListenersChanged):
Refresh the event listeners section whenever a node's event listeners change.

LayoutTests:

* inspector/dom/event-listener-add-remove-expected.txt: Added.
* inspector/dom/event-listener-add-remove.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222002 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Sort by size issues with Cookies and ApplicationCache DataGrids
commit-queue@webkit.org [Wed, 13 Sep 2017 23:46:44 +0000 (23:46 +0000)]
Web Inspector: Sort by size issues with Cookies and ApplicationCache DataGrids
https://bugs.webkit.org/show_bug.cgi?id=176879
<rdar://problem/34237096>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-09-13
Reviewed by Matt Baker.

* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WI.ApplicationCacheFrameContentView.prototype._sortDataGrid):
(WI.ApplicationCacheFrameContentView.prototype._populateDataGrid):
This uses very dumb DataGridNodes with a pure data object. In that
object `size` is a bytes string not a number. Include the number size
in this data object that can be used during sorting.

* UserInterface/Views/CookieStorageContentView.js:
(WI.CookieStorageContentView.prototype._rebuildTable):
Simplify creation. Also don't reset sort options. Note that here the
DataGridNodes have access to the Cookie object and can already sort size
using the cookie's size (a number) and not the data's size (string).

* UserInterface/Views/DataGrid.js:
(WI.DataGrid.prototype.sortNodes):
(WI.DataGrid.prototype._sortNodesCallback):
If sortNodes was called twice, it would defer the sort and actually
do the sort with the first comparator and not the latest, preferred
comparator. Make it use the latest comparator.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222001 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMark storage/indexeddb/modern/idbtransaction-objectstore-failures.html as flaky on...
pvollan@apple.com [Wed, 13 Sep 2017 23:38:05 +0000 (23:38 +0000)]
Mark storage/indexeddb/modern/idbtransaction-objectstore-failures.html as flaky on Windows.
https://bugs.webkit.org/show_bug.cgi?id=176880

Unreviewed test gardening.

* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222000 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[Curl] Bug fix for synchronous transfer
commit-queue@webkit.org [Wed, 13 Sep 2017 23:33:56 +0000 (23:33 +0000)]
[Curl] Bug fix for synchronous transfer
https://bugs.webkit.org/show_bug.cgi?id=176552

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2017-09-13
Reviewed by Alex Christensen.

ResourceHandleInternal::m_delegate is null when transfer is synchronous. It should be set ResourceHandleCurlDelegate.
Also the callback functions called when transfer is completed is wrong.

* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/curl/ResourceHandleCurlDelegate.cpp:
(WebCore::ResourceHandleCurlDelegate::dispatchSynchronousJob):
(WebCore::ResourceHandleCurlDelegate::notifyFinish):
(WebCore::ResourceHandleCurlDelegate::notifyFail):
(WebCore::ResourceHandleCurlDelegate::didReceiveHeader):
(WebCore::ResourceHandleCurlDelegate::didReceiveData):
(WebCore::ResourceHandleCurlDelegate::willSendData):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221999 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Styles Redesign: display @media section headers
nvasilyev@apple.com [Wed, 13 Sep 2017 23:20:30 +0000 (23:20 +0000)]
Web Inspector: Styles Redesign: display @media section headers
https://bugs.webkit.org/show_bug.cgi?id=176289
<rdar://problem/34228389>

Reviewed by Devin Rousso.

Prepend CSS media query selectors to every matching rule.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
(.spreadsheet-css-declaration .media-label):
* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._createMediaHeader):
Don't localize "@media" since it's CSS code.
Don't display "all" or "screen" media query selectors. One of the goals of the
Styles sidebar redesign is to fit more data.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221998 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnreviewed, rolling out r221976.
jlewis3@apple.com [Wed, 13 Sep 2017 22:47:18 +0000 (22:47 +0000)]
Unreviewed, rolling out r221976.

The test introduced was flaky from point of addition.

Reverted changeset:

"Introduce Storage Access API (document parts) as an
experimental feature"
https://bugs.webkit.org/show_bug.cgi?id=175759
http://trac.webkit.org/changeset/221976

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221997 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoFollowup (r221805): Address comments and add more tests
commit-queue@webkit.org [Wed, 13 Sep 2017 22:00:13 +0000 (22:00 +0000)]
Followup (r221805): Address comments and add more tests
https://bugs.webkit.org/show_bug.cgi?id=176732

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-09-13
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/images/decode-slow-load-static-image.html

Code clean up and adding a new test to ensure multiple decode() promises
can be resolved or rejected simultaneously without any issues.

* loader/ImageLoader.cpp:
(WebCore::ImageLoader::decode):
(WebCore::ImageLoader::decodeError):
* loader/ImageLoader.h:
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::decode):
(WebCore::BitmapImage::callDecodingCallbacks):
* platform/graphics/BitmapImage.h:

LayoutTests:

* http/tests/images/decode-slow-load-static-image-expected.txt: Added.
* http/tests/images/decode-slow-load-static-image.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221996 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoInternals clearCacheStorageMemoryRepresentation should return a Promise
commit-queue@webkit.org [Wed, 13 Sep 2017 20:56:22 +0000 (20:56 +0000)]
Internals clearCacheStorageMemoryRepresentation should return a Promise
https://bugs.webkit.org/show_bug.cgi?id=176818

Patch by Youenn Fablet <youenn@apple.com> on 2017-09-13
Reviewed by Alex Christensen.

Source/WebCore:

No observable change of behavior.

* Modules/cache/DOMCacheEngine.h:
* testing/Internals.cpp:
(WebCore::Internals::clearCacheStorageMemoryRepresentation): Returning a promise when clearing is completed.
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

Adding a completion handler to clearMemoryRepresentation.

* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::clearMemoryRepresentation):
* NetworkProcess/cache/CacheStorageEngine.h:
* NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::clearMemoryRepresentation):
* NetworkProcess/cache/CacheStorageEngineConnection.h:
* NetworkProcess/cache/CacheStorageEngineConnection.messages.in:
* WebProcess/Cache/WebCacheStorageConnection.cpp:
(WebKit::WebCacheStorageConnection::clearMemoryRepresentation):
(WebKit::WebCacheStorageConnection::clearMemoryRepresentationCompleted):
* WebProcess/Cache/WebCacheStorageConnection.h:
* WebProcess/Cache/WebCacheStorageConnection.messages.in:

LayoutTests:

Updating tests to interact with the caches after the clearCacheStorageMemoryRepresentation promise is completed.

* http/tests/cache-storage/cache-origins.https.html:
* http/tests/cache-storage/cache-persistency.https.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221995 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoFixed expectations of imported/w3c/web-platform-tests/html/webappapis/timers/type...
jlewis3@apple.com [Wed, 13 Sep 2017 20:55:28 +0000 (20:55 +0000)]
Fixed expectations of imported/w3c/web-platform-tests/html/webappapis/timers/type-long-setinterval.html.

Unreviewed test gardening.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221994 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Frontend should be made to expect and handle disabled properties
nvasilyev@apple.com [Wed, 13 Sep 2017 20:48:09 +0000 (20:48 +0000)]
Web Inspector: Frontend should be made to expect and handle disabled properties
https://bugs.webkit.org/show_bug.cgi?id=166787
<rdar://problem/34379593>

Reviewed by Joseph Pecoraro.

Source/WebCore:

Include disabled (commented out) CSS properties in the payload.

Tests: inspector/css/css-property.html
       inspector/css/matched-style-properties.html

* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::populateAllProperties const):
(WebCore::InspectorStyle::styleWithProperties const):

Source/WebInspectorUI:

This change introduces WI.CSSStyleDeclaration.prototype.allProperties getter,
that includes both enabled and disabled (commented out) CSS properties.

The existing WI.CSSStyleDeclaration.prototype.properties getter only includes enabled CSS properties,
same as before the backend change.

There is no behaviour change in the current styles sidebar. The new redesigned styles sidebar will
use disabled properties and display them as commented out.

* UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype.get attached):
Rename `enabled` to `attached`, as it didn't correspond to `_enabled` property. Attached means that the property
is enabled and has a ownerStyle with a set index (unless it's a computed style, where index is not applicable).

(WI.CSSProperty.prototype.get enabled):
* UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.get allProperties):
Add allProperties getter that will be used in the new styles sidebar.

* UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype._markOverriddenProperties):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WI.CSSStyleDeclarationTextEditor.prototype.highlightProperty.propertiesMatch):
Rename "enabled" to "attached" without any behavior change.

LayoutTests:

Add test cases for disabled (commented out) CSS properties.

* inspector/css/css-property-expected.txt:
* inspector/css/css-property.html:
Add test cases for previously untested `enabled` and newly added `attached` getters.

* inspector/css/matched-style-properties.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221993 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[GTK] Test gardening
commit-queue@webkit.org [Wed, 13 Sep 2017 20:43:59 +0000 (20:43 +0000)]
[GTK] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=176871

Patch by Alicia Boya García <aboya@igalia.com> on 2017-09-13
Reviewed by Michael Catanzaro.

* platform/gtk/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221992 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRebaseline http/tests/loading/state-object-security-exception.html after r221978.
ryanhaddad@apple.com [Wed, 13 Sep 2017 20:39:37 +0000 (20:39 +0000)]
Rebaseline http/tests/loading/state-object-security-exception.html after r221978.
https://bugs.webkit.org/show_bug.cgi?id=176730

Unreviewed test gardening.

* http/tests/loading/state-object-security-exception-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221991 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Escape in global search field should clear it
commit-queue@webkit.org [Wed, 13 Sep 2017 20:24:55 +0000 (20:24 +0000)]
Web Inspector: Escape in global search field should clear it
https://bugs.webkit.org/show_bug.cgi?id=176764

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-09-13
Reviewed by Timothy Hatcher.

* UserInterface/Views/QuickConsole.js:
(WI.QuickConsole.prototype._toggleOrFocus):
Don't implicitly prevent default. So if we didn't cause an action we
can let the default system action happen.

* UserInterface/Views/SearchBar.js:
(WI.SearchBar):
Remove unused keyboard shortcuts.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221990 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[GTK] Fails to build because 'Float32Array' has not been declared in AudioContext.h
clopez@igalia.com [Wed, 13 Sep 2017 20:17:35 +0000 (20:17 +0000)]
[GTK] Fails to build because 'Float32Array' has not been declared in AudioContext.h
https://bugs.webkit.org/show_bug.cgi?id=176870

Reviewed by Konstantin Tokarev.

Add missing include of Float32Array.h

No new tests, its a build fix.

* Modules/webaudio/AudioContext.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221989 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoVersioning.
jmarcell@apple.com [Wed, 13 Sep 2017 20:04:45 +0000 (20:04 +0000)]
Versioning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221988 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[CF] Upstream CFNetwork-related WebKitSystemInterface functions
aestes@apple.com [Wed, 13 Sep 2017 20:02:11 +0000 (20:02 +0000)]
[CF] Upstream CFNetwork-related WebKitSystemInterface functions
https://bugs.webkit.org/show_bug.cgi?id=176729

Reviewed by Alex Christensen.

Source/WebCore:

* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/PublicSuffixMac.mm:
(WebCore::isPublicSuffix):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):
* platform/network/cf/SocketStreamHandleImplCFNet.cpp:
(WebCore::setCONNECTProxyForStream):
(WebCore::SocketStreamHandleImpl::createStreams):
(WebCore::setCONNECTProxyAuthorizationForStream):
(WebCore::SocketStreamHandleImpl::addCONNECTCredentials):
(WebCore::copyCONNECTProxyResponse):
(WebCore::SocketStreamHandleImpl::readStreamCallback):
(WebCore::SocketStreamHandleImpl::writeStreamCallback):
* platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::doUpdatePlatformRequest):

Source/WebCore/PAL:

* pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::createSerializableRepresentation):
(IPC::dictionaryValueOfType):
(IPC::createArchiveList):
(IPC::createCFURLRequestFromSerializableRepresentation):
(IPC::createNSURLRequestFromSerializableRepresentation):
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::legacyPlatformDefaultCacheStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):

Source/WebKitLegacy/mac:

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* WebView/WebView.mm:
(+[WebView _setCacheModel:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221986 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoCompress spindumps on client side before packaging into layout test results zip ...
lforschler@apple.com [Wed, 13 Sep 2017 19:54:06 +0000 (19:54 +0000)]
Compress spindumps on client side before packaging into layout test results zip (mac & ios)
https://bugs.webkit.org/show_bug.cgi?id=176853

Reviewed by Aakash Jain.

* BuildSlaveSupport/test-result-archive:
(main):
(gzip_file): use gzip to compress a file, removing original
(compress_spindumps): find and compress spindumps matching a filter
(archive_test_results): refactor to snake_case
(archiveTestResults): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221985 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoFollowup rebaseline after r221973.
jlewis3@apple.com [Wed, 13 Sep 2017 18:45:41 +0000 (18:45 +0000)]
Followup rebaseline after r221973.

Unreviewed test gardening.

* platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221984 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMark http/tests/xmlhttprequest/workers/xmlhttprequest-file-not-found.html as a flaky...
pvollan@apple.com [Wed, 13 Sep 2017 18:41:13 +0000 (18:41 +0000)]
Mark http/tests/xmlhttprequest/workers/xmlhttprequest-file-not-found.html as a flaky crash on Windows.
https://bugs.webkit.org/show_bug.cgi?id=176866

Unreviewed test gardening.

* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221983 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAdd WKUIDelegatePrivate equivalent of WKPageUIClient's setIsResizable, getWindowFrame...
achristensen@apple.com [Wed, 13 Sep 2017 18:38:04 +0000 (18:38 +0000)]
Add WKUIDelegatePrivate equivalent of WKPageUIClient's setIsResizable, getWindowFrame, and setWindowFrame
https://bugs.webkit.org/show_bug.cgi?id=176857
<rdar://problem/29270035>

Reviewed by Tim Horton.

Source/WebKit:

isResizable is unreachable code because nothing sends Messages::WebPageProxy::GetIsResizable, so I removed it.

* UIProcess/API/APIUIClient.h:
(API::UIClient::setStatusBarIsVisible):
(API::UIClient::isResizable): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/API/glib/WebKitUIClient.cpp:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::setIsResizable):
(WebKit::UIDelegate::UIClient::setWindowFrame):
(WebKit::UIDelegate::UIClient::windowFrame):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getIsResizable): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[ModalDelegate _webViewRunModal:]):
(-[ModalDelegate _webView:setResizable:]):
(-[WindowFrameDelegate _webView:setWindowFrame:]):
(-[WindowFrameDelegate _webView:getWindowFrameWithCompletionHandler:]):
(-[WindowFrameDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):
(-[ResizableDelegate _webView:setResizable:]):
(-[ResizableDelegate _webView:getIsResizableWithCompletionHandler:]):
(-[ResizableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221982 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoSkip 3 op_mod tests on Debug JSC bots.
ryanhaddad@apple.com [Wed, 13 Sep 2017 18:25:11 +0000 (18:25 +0000)]
Skip 3 op_mod tests on Debug JSC bots.
https://bugs.webkit.org/show_bug.cgi?id=176630

Unreviewed test gardening.

* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221981 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMake more of the CSS animation system internals element based
antti@apple.com [Wed, 13 Sep 2017 18:20:12 +0000 (18:20 +0000)]
Make more of the CSS animation system internals element based
https://bugs.webkit.org/show_bug.cgi?id=176832

Reviewed by Zalan Bujtas.

CSS animations animate element style. Continue moving away from renderers in the animation code.

Also do some general modernization.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::computeRenderStyleForProperty):
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::AnimationBase):
* page/animation/AnimationBase.h:
* page/animation/CSSAnimationController.cpp:
(WebCore::CSSAnimationControllerPrivate::ensureCompositeAnimation):
(WebCore::CSSAnimationControllerPrivate::clear):
(WebCore::CSSAnimationControllerPrivate::updateAnimations):
(WebCore::CSSAnimationControllerPrivate::updateAnimationTimerForElement):
(WebCore::CSSAnimationControllerPrivate::isRunningAnimationOnRenderer const):
(WebCore::CSSAnimationControllerPrivate::isRunningAcceleratedAnimationOnRenderer const):
(WebCore::CSSAnimationControllerPrivate::pauseAnimationAtTime):
(WebCore::CSSAnimationControllerPrivate::pauseTransitionAtTime):
(WebCore::CSSAnimationControllerPrivate::animatedStyleForElement):
(WebCore::CSSAnimationControllerPrivate::computeExtentOfAnimation const):
(WebCore::CSSAnimationController::cancelAnimations):
(WebCore::CSSAnimationController::updateAnimations):
(WebCore::CSSAnimationController::animatedStyleForRenderer):
(WebCore::CSSAnimationController::computeExtentOfAnimation const):
(WebCore::CSSAnimationController::pauseAnimationAtTime):
(WebCore::CSSAnimationController::pauseTransitionAtTime):
(WebCore::CSSAnimationControllerPrivate::updateAnimationTimerForRenderer): Deleted.
(WebCore::CSSAnimationControllerPrivate::getAnimatedStyleForRenderer): Deleted.
(WebCore::CSSAnimationController::getAnimatedStyleForRenderer): Deleted.
* page/animation/CSSAnimationController.h:
* page/animation/CSSAnimationControllerPrivate.h:
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::~CompositeAnimation):
(WebCore::CompositeAnimation::clearElement):
(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::updateKeyframeAnimations):
(WebCore::CompositeAnimation::animate):
(WebCore::CompositeAnimation::clearRenderer): Deleted.
* page/animation/CompositeAnimation.h:
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::ImplicitAnimation):
(WebCore::ImplicitAnimation::animate):
* page/animation/ImplicitAnimation.h:
(WebCore::ImplicitAnimation::create):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::animate):
* page/animation/KeyframeAnimation.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::willBeDestroyed):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::currentTransform const):
* style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::createRenderer):
* style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
* testing/Internals.cpp:
(WebCore::Internals::pauseAnimationAtTimeOnElement):
(WebCore::Internals::pauseAnimationAtTimeOnPseudoElement):
(WebCore::Internals::pauseTransitionAtTimeOnElement):
(WebCore::Internals::pauseTransitionAtTimeOnPseudoElement):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221980 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMarked svg/animations/smil-leak-dynamically-added-element-instances.svg as flaky...
jlewis3@apple.com [Wed, 13 Sep 2017 18:15:23 +0000 (18:15 +0000)]
Marked svg/animations/smil-leak-dynamically-added-element-instances.svg as flaky on macOS WK1.
https://bugs.webkit.org/show_bug.cgi?id=175867

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221979 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMake history.pushState()/replaceState() more closely aligned to the HTML standard
dbates@webkit.org [Wed, 13 Sep 2017 18:06:24 +0000 (18:06 +0000)]
Make history.pushState()/replaceState() more closely aligned to the HTML standard
https://bugs.webkit.org/show_bug.cgi?id=176730
<rdar://problem/33839265>

Reviewed by Alex Christensen.

Source/WebCore:

Update history.pushState()/replaceState() to more closely align with the algorithm
specified in <https://html.spec.whatwg.org/multipage/history.html#dom-history-pushstate-2> (9 September 2017).

Test: http/tests/security/history-pushState-replaceState-from-sandboxed-iframe.html

* page/History.cpp:
(WebCore::History::stateObjectAdded):
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::extractInnerURL): Use URL constructor that takes a base URL as opposed
to using the special ParsedURLString-variant because the latter can only be used to parse a string
returned from URL::string(). And the extracted inner URL does not meet this criterion. Using the
ParsedURLString-variant of the URL constructor with a string that is not the result of URL::string()
will cause an assertion failure in a debug build.

LayoutTests:

* http/tests/security/history-pushState-replaceState-from-sandboxed-iframe-expected.txt: Added.
* http/tests/security/history-pushState-replaceState-from-sandboxed-iframe.html: Added.
* http/tests/security/history-username-password-expected.txt:
* http/tests/security/history-username-password.html:
* http/tests/security/resources/history-pushState-replaceState-from-sandboxed-iframe.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221978 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAdd a lambda-based map for Vectors
commit-queue@webkit.org [Wed, 13 Sep 2017 17:50:48 +0000 (17:50 +0000)]
Add a lambda-based map for Vectors
https://bugs.webkit.org/show_bug.cgi?id=176487

Patch by Youenn Fablet <youenn@apple.com> on 2017-09-13
Reviewed by Darin Adler.

Source/WebKit:

* NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::readCachesFromDisk):

Source/WTF:

This helper routine allows refactoring the reserveInitialCapacity/uncheckedAppend pattern, the mapper between source and destination item being a lambda.

* wtf/Vector.h:
(WTF::Mapper::transform):
(WTF::Mapper::map):
(WTF::map):

Tools:

* TestWebKitAPI/Tests/WTF/Vector.cpp:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221977 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoIntroduce Storage Access API (document parts) as an experimental feature
wilander@apple.com [Wed, 13 Sep 2017 17:47:52 +0000 (17:47 +0000)]
Introduce Storage Access API (document parts) as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=175759
<rdar://problem/33666847>

Reviewed by Alex Christensen.

Source/WebCore:

Storage Access API is an experimental feature which allows cross-origin,
sandboxed iframes to request access to their first-party storage (as
opposed to partitioned storage). This might be restricted to cookies or
might cover all stateful mechanisms.

It introduces the following three developer-facing things:
- A new readonly attribute, document.hasStorageAccess.
- A new function, document.requestStorageAccess().
- A new iframe sandbox token, allow-storage-access-by-user-activation.

Tests: http/tests/loading/resourceLoadStatistics/request-and-deny-storage-access-cross-origin-iframe.html
       http/tests/loading/resourceLoadStatistics/request-and-deny-storage-access-cross-origin-sandboxed-iframe.html
       http/tests/loading/resourceLoadStatistics/request-and-grant-storage-access-cross-origin-iframe.html
       http/tests/loading/resourceLoadStatistics/request-and-grant-storage-access-cross-origin-sandboxed-iframe.html
       http/tests/loading/resourceLoadStatistics/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html
       http/tests/loading/resourceLoadStatistics/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token.html
       http/tests/loading/resourceLoadStatistics/request-storage-access-same-origin-iframe.html
       http/tests/loading/resourceLoadStatistics/request-storage-access-same-origin-sandboxed-iframe-without-allow-token.html
       http/tests/loading/resourceLoadStatistics/request-storage-access-same-origin-sandboxed-iframe.html
       http/tests/loading/resourceLoadStatistics/request-storage-access-top-frame.html

* dom/Document.cpp:
(WebCore::Document::requestStorageAccess):
* dom/Document.h:
(WebCore::Document::hasStorageAccess const):
(WebCore::Document::setUserGrantsStorageAccessOverride):
    See comments on WebCore::Internals below.
* dom/Document.idl:
* dom/SecurityContext.cpp:
(WebCore::SecurityContext::isSupportedSandboxPolicy):
(WebCore::SecurityContext::parseSandboxPolicy):
    Support for allow-storage-access-by-user-activation.
* dom/SecurityContext.h:
* loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::registerStorageAccess):
    Newly granted storage access is reported to
    WebCore::ResourceLoadObserver.
* loader/ResourceLoadObserver.h:
* loader/ResourceLoadStatistics.cpp:
(WebCore::encodeHashSet):
(WebCore::ResourceLoadStatistics::encode const):
(WebCore::decodeHashSet):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::appendHashSet):
(WebCore::ResourceLoadStatistics::toString const):
(WebCore::mergeHashSet):
(WebCore::ResourceLoadStatistics::merge):
    Storage of the new type of data.
* loader/ResourceLoadStatistics.h:
* page/Settings.in:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUserGrantsStorageAccess):
* testing/Internals.h:
* testing/Internals.idl:
    Added setUserGrantsStorageAccess(). It is used to
    override the eventSender's keyboard input which
    always results in a cancel action on the confirm()
    dialog.

Source/WebKit:

Storage Access API is an experimental feature which allows cross-origin,
sandboxed iframes to request access to their first-party storage (as
opposed to partitioned storage). This might be restricted to cookies or
might cover all stateful mechanisms.

It introduces the following three developer-facing things:
- A new readonly attribute, document.hasStorageAccess.
- A new function, document.requestStorageAccess().
- A new iframe sandbox token, allow-storage-access-by-user-activation.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::decode):
    Storage handling of the new type of data.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetStorageAccessAPIEnabled):
(WKPreferencesGetStorageAccessAPIEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
    Bumped the model version from 9 to 10.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
    Turns the feature on for tests.

LayoutTests:

Storage Access API is an experimental feature which allows cross-origin,
sandboxed iframes to request access to their first-party storage (as
opposed to partitioned storage). This might be restricted to cookies or
might cover all stateful mechanisms.

It introduces the following three developer-facing things:
- A new readonly attribute, document.hasStorageAccess.
- A new function, document.requestStorageAccess().
- A new iframe sandbox token, allow-storage-access-by-user-activation.

* http/tests/loading/resourceLoadStatistics/request-and-deny-storage-access-cross-origin-iframe-expected.txt: Added.
* http/tests/loading/resourceLoadStatistics/request-and-deny-storage-access-cross-origin-iframe.html: Added.
* http/tests/loading/resourceLoadStatistics/request-and-deny-storage-access-cross-origin-sandboxed-iframe-expected.txt: Added.
* http/tests/loading/resourceLoadStatistics/request-and-deny-storage-access-cross-origin-sandboxed-iframe.html: Added.
* http/tests/loading/resourceLoadStatistics/request-and-grant-storage-access-cross-origin-iframe-expected.txt: Added.
* http/tests/loading/resourceLoadStatistics/request-and-grant-storage-access-cross-origin-iframe.html: Added.
* http/tests/loading/resourceLoadStatistics/request-and-grant-storage-access-cross-origin-sandboxed-iframe-expected.txt: Added.
* http/tests/loading/resourceLoadStatistics/request-and-grant-storage-access-cross-origin-sandboxed-iframe.html: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-expected.txt: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-expected.txt: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token.html: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-same-origin-iframe-expected.txt: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-same-origin-iframe.html: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-same-origin-sandboxed-iframe-expected.txt: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-same-origin-sandboxed-iframe-without-allow-token-expected.txt: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-same-origin-sandboxed-iframe-without-allow-token.html: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-same-origin-sandboxed-iframe.html: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-top-frame-expected.txt: Added.
* http/tests/loading/resourceLoadStatistics/request-storage-access-top-frame.html: Added.
* http/tests/loading/resourceLoadStatistics/resources/request-storage-access-iframe.html: Added.
* platform/mac-wk2/TestExpectations:
    New test cases that require a user gesture marked as [ Pass ].
    Also removed reference to (now closed) https://bugs.webkit.org/show_bug.cgi?id=175170.
* platform/wk2/TestExpectations:
    New test case request-storage-access-top-frame.html marked as [ Pass ].

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221976 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[Win] DRT option --gc-between-tests is not implemented.
pvollan@apple.com [Wed, 13 Sep 2017 17:46:02 +0000 (17:46 +0000)]
[Win] DRT option --gc-between-tests is not implemented.
https://bugs.webkit.org/show_bug.cgi?id=176849

Reviewed by Brent Fulgham.

Perform GC after the test if this option is enabled. This patch also set the initial value of the flag
to true, in order to catch GC related issues in the test in which they occur.

* DumpRenderTree/win/DumpRenderTree.cpp:
(runTest):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221975 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[HarfBuzz] Wrong offset returned by HarfBuzzShaper::offsetForPosition in some cases
carlosgc@webkit.org [Wed, 13 Sep 2017 17:14:54 +0000 (17:14 +0000)]
[HarfBuzz] Wrong offset returned by HarfBuzzShaper::offsetForPosition in some cases
https://bugs.webkit.org/show_bug.cgi?id=176848

Reviewed by Michael Catanzaro.

Source/WebCore:

This patch rewrites HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition() to make it simpler and ensure we
return the right offset in all the cases, also honoring now the includePartialGlyphs parameter that we were
ignoring in FontCascade::offsetForPositionForComplexText().

Fixes several tests that started to fail after r221909.

* platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::FontCascade::offsetForPositionForComplexText const):
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
(WebCore::HarfBuzzShaper::offsetForPosition):
* platform/graphics/harfbuzz/HarfBuzzShaper.h:

LayoutTests:

Rebaseline several tests where we are now getting results similar to the mac ones.

* platform/gtk/editing/execCommand/findString-2-expected.txt:
* platform/gtk/editing/selection/14971-expected.png:
* platform/gtk/editing/selection/14971-expected.txt:
* platform/gtk/editing/selection/4895428-2-expected.png:
* platform/gtk/editing/selection/4895428-2-expected.txt:
* platform/gtk/editing/selection/5232159-expected.png:
* platform/gtk/editing/selection/5232159-expected.txt:
* platform/gtk/editing/selection/collapse-selection-in-bidi-expected.txt:
* platform/gtk/editing/selection/drag-select-1-expected.png:
* platform/gtk/editing/selection/drag-select-1-expected.txt:
* platform/gtk/editing/selection/editable-links-expected.png:
* platform/gtk/editing/selection/editable-links-expected.txt:
* platform/gtk/editing/selection/fake-doubleclick-expected.txt:
* platform/gtk/editing/selection/fake-drag-expected.txt:
* platform/gtk/editing/selection/select-across-readonly-input-1-expected.png:
* platform/gtk/editing/selection/select-across-readonly-input-1-expected.txt:
* platform/gtk/editing/selection/select-across-readonly-input-2-expected.png:
* platform/gtk/editing/selection/select-across-readonly-input-2-expected.txt:
* platform/gtk/editing/selection/select-across-readonly-input-3-expected.png:
* platform/gtk/editing/selection/select-across-readonly-input-3-expected.txt:
* platform/gtk/editing/selection/select-across-readonly-input-4-expected.png:
* platform/gtk/editing/selection/select-across-readonly-input-4-expected.txt:
* platform/gtk/editing/selection/select-across-readonly-input-5-expected.png:
* platform/gtk/editing/selection/select-across-readonly-input-5-expected.txt:
* platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.png:
* platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.txt:
* platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.png:
* platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.txt:
* platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.png:
* platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
* platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.png:
* platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
* platform/gtk/fast/css/text-overflow-ellipsis-text-align-right-expected.png:
* platform/gtk/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
* platform/gtk/fast/repaint/japanese-rl-selection-repaint-expected.png:
* platform/gtk/fast/repaint/japanese-rl-selection-repaint-expected.txt:
* platform/gtk/fast/repaint/repaint-across-writing-mode-boundary-expected.png:
* platform/gtk/fast/repaint/repaint-across-writing-mode-boundary-expected.txt:
* platform/gtk/fast/repaint/selection-rl-expected.png:
* platform/gtk/fast/repaint/selection-rl-expected.txt:
* platform/gtk/fast/text/atsui-rtl-override-selection-expected.png:
* platform/gtk/fast/text/atsui-rtl-override-selection-expected.txt:
* platform/gtk/fast/text/in-rendered-text-rtl-expected.txt:
* platform/gtk/svg/custom/foreignObject-crash-on-hover-expected.txt:
* platform/gtk/svg/text/select-text-svgfont-expected.txt: Removed.
* platform/gtk/transitions/svg-text-shadow-transition-expected.png:
* platform/gtk/transitions/svg-text-shadow-transition-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221974 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRebaseline of js/dom/global-constructors-attributes.html.
jlewis3@apple.com [Wed, 13 Sep 2017 17:08:00 +0000 (17:08 +0000)]
Rebaseline of js/dom/global-constructors-attributes.html.

Unreviewed test gardening.

* platform/mac-elcapitan-wk2/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-sierra-wk2/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221973 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoInitialize InternalSettings member variable.
pvollan@apple.com [Wed, 13 Sep 2017 16:23:31 +0000 (16:23 +0000)]
Initialize InternalSettings member variable.
https://bugs.webkit.org/show_bug.cgi?id=176838

Reviewed by Brent Fulgham.

Initialize the m_webVREnabled member in the constructor.

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221972 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMake WebGLRenderingContextBase::TypedList::data() const-correct.
commit-queue@webkit.org [Wed, 13 Sep 2017 16:03:10 +0000 (16:03 +0000)]
Make WebGLRenderingContextBase::TypedList::data() const-correct.
https://bugs.webkit.org/show_bug.cgi?id=176833

Patch by Ms2ger <Ms2ger@igalia.com> on 2017-09-13
Reviewed by Sam Weinig.

No change of behavior.

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::validateUniformMatrixParameters):
* html/canvas/WebGLRenderingContextBase.h:
(WebCore::WebGLRenderingContextBase::TypedList::data const):
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::uniform1fv):
(WebCore::GraphicsContext3D::uniform2fv):
(WebCore::GraphicsContext3D::uniform3fv):
(WebCore::GraphicsContext3D::uniform4fv):
(WebCore::GraphicsContext3D::uniform1iv):
(WebCore::GraphicsContext3D::uniform2iv):
(WebCore::GraphicsContext3D::uniform3iv):
(WebCore::GraphicsContext3D::uniform4iv):
(WebCore::GraphicsContext3D::uniformMatrix2fv):
(WebCore::GraphicsContext3D::uniformMatrix3fv):
(WebCore::GraphicsContext3D::uniformMatrix4fv):
(WebCore::GraphicsContext3D::vertexAttrib1fv):
(WebCore::GraphicsContext3D::vertexAttrib2fv):
(WebCore::GraphicsContext3D::vertexAttrib3fv):
(WebCore::GraphicsContext3D::vertexAttrib4fv):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221971 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[JSC] Fix Array allocation in Object.keys
utatane.tea@gmail.com [Wed, 13 Sep 2017 15:48:20 +0000 (15:48 +0000)]
[JSC] Fix Array allocation in Object.keys
https://bugs.webkit.org/show_bug.cgi?id=176826

Reviewed by Saam Barati.

JSTests:

* stress/object-own-property-keys.js: Added.
(shouldBe):

Source/JavaScriptCore:

When isHavingABadTime() is true, array allocation does not become ArrayWithContiguous.
We check isHavingABadTime() in ownPropertyKeys fast path.
And we also ensures that ownPropertyKeys uses putDirect operation instead of put by a test.

* runtime/ObjectConstructor.cpp:
(JSC::ownPropertyKeys):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221970 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRemove CanvasRenderingContext2D.commit(), it is a no-op and not part the standard
weinig@apple.com [Wed, 13 Sep 2017 15:31:16 +0000 (15:31 +0000)]
Remove CanvasRenderingContext2D.commit(), it is a no-op and not part the standard
https://bugs.webkit.org/show_bug.cgi?id=176821

Reviewed by Darin Adler.

Source/WebCore:

* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/CanvasRenderingContext2D.idl:

    Remove the commit operation. It is no longer part the standard (it was
    moved to OffscreenCanvasRenderingContext2D) and it was a no-op.

LayoutTests:

* fast/canvas/commit-expected.txt: Removed.
* fast/canvas/commit.html: Removed.
* inspector/canvas/recording-2d-expected.txt:
* inspector/canvas/recording-2d.html:

    Remove CanvasRenderingContext2D.commit() from test and update result.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221969 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoEnsure the user interacted with the page before setting m_userHasInteractedWithMediaE...
mrajca@apple.com [Wed, 13 Sep 2017 15:02:40 +0000 (15:02 +0000)]
Ensure the user interacted with the page before setting m_userHasInteractedWithMediaElement
https://bugs.webkit.org/show_bug.cgi?id=176816

Reviewed by Eric Carlson.

Currently, when the user presses a keyboard shortcut in the client to reload a page, that may
get registered as a user gesture on the reloaded page. Before setting the
m_userHasInteractedWithMediaElement flag, we should check if a user gesture was actually handled
by checking the userDidInteractWithPage flag. In case of key events that aren't handled by the
page, this will be set to false by EventHandler:

    // If the key event was not handled, do not treat it as user interaction with the page.
    if (topDocument && !wasHandled)
        topDocument->setUserDidInteractWithPage(savedUserDidInteractWithPage);

We need to revisit this in the future in webkit.org/b/176817 and ensure user gesture tokens
don't carry over across reloads of the page.

Tests: I wasn't able to trigger the pathological scenario this aims to fix with a test that calls
window.location.reload() from a synthetic keyDown event.

* dom/Document.cpp:
(WebCore::Document::noteUserInteractionWithMediaElement):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221968 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoDisallow passing null values to various WebGL2 methods.
commit-queue@webkit.org [Wed, 13 Sep 2017 11:47:44 +0000 (11:47 +0000)]
Disallow passing null values to various WebGL2 methods.
https://bugs.webkit.org/show_bug.cgi?id=176829

Patch by Ms2ger <Ms2ger@igalia.com> on 2017-09-13
Reviewed by Yusuke Suzuki.

This matches the specification as well as Gecko and Chromium.

Source/WebCore:

Test: fast/canvas/webgl/webgl2/bindings.html

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::getQueryParameter):
(WebCore::WebGL2RenderingContext::samplerParameteri):
(WebCore::WebGL2RenderingContext::samplerParameterf):
(WebCore::WebGL2RenderingContext::getSamplerParameter):
(WebCore::WebGL2RenderingContext::clientWaitSync):
(WebCore::WebGL2RenderingContext::waitSync):
(WebCore::WebGL2RenderingContext::getSyncParameter):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::getTransformFeedbackVarying):
(WebCore::WebGL2RenderingContext::getUniformIndices):
(WebCore::WebGL2RenderingContext::getUniformBlockIndex):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
(WebCore::WebGL2RenderingContext::uniformBlockBinding):
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGL2RenderingContext.idl:

LayoutTests:

* fast/canvas/webgl/webgl2/bindings-expected.txt:
* fast/canvas/webgl/webgl2/bindings.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221967 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[WebVR] Add IDLs and stubs
svillar@igalia.com [Wed, 13 Sep 2017 11:17:27 +0000 (11:17 +0000)]
[WebVR] Add IDLs and stubs
https://bugs.webkit.org/show_bug.cgi?id=174202

Reviewed by Dean Jackson.

Source/WebCore:

Adding the complete set of IDLs for the WebVR 1.1 spec including the interface stubs which
currently do nothing.

Tests: webvr/webvr-disabled.html
       webvr/webvr-enabled.html

* CMakeLists.txt:
* DerivedSources.make:
* Modules/webvr/DOMWindowWebVR.idl: Added.
* Modules/webvr/GamepadWebVR.cpp: Added.
(WebCore::GamepadWebVR::GamepadWebVR):
(WebCore::GamepadWebVR::~GamepadWebVR):
(WebCore::GamepadWebVR::displayId):
* Modules/webvr/GamepadWebVR.h: Added.
* Modules/webvr/GamepadWebVR.idl: Added.
* Modules/webvr/NavigatorWebVR.cpp: Added.
(WebCore::NavigatorWebVR::getVRDisplays):
(WebCore::NavigatorWebVR::activeVRDisplays):
(WebCore::NavigatorWebVR::vrEnabled):
* Modules/webvr/NavigatorWebVR.h: Added.
* Modules/webvr/NavigatorWebVR.idl: Added.
* Modules/webvr/VRDisplay.cpp: Added.
(WebCore::VRDisplay::create):
(WebCore::VRDisplay::VRDisplay):
(WebCore::VRDisplay::isConnected const):
(WebCore::VRDisplay::isPresenting const):
(WebCore::VRDisplay::capabilities const):
(WebCore::VRDisplay::stageParameters const):
(WebCore::VRDisplay::getEyeParameters const):
(WebCore::VRDisplay::displayId const):
(WebCore::VRDisplay::displayName const):
(WebCore::VRDisplay::getFrameData const):
(WebCore::VRDisplay::getPose const):
(WebCore::VRDisplay::resetPose):
(WebCore::VRDisplay::depthNear const):
(WebCore::VRDisplay::setDepthNear):
(WebCore::VRDisplay::depthFar const):
(WebCore::VRDisplay::setDepthFar):
(WebCore::VRDisplay::requestAnimationFrame):
(WebCore::VRDisplay::cancelAnimationFrame):
(WebCore::VRDisplay::requestPresent):
(WebCore::VRDisplay::exitPresent):
(WebCore::VRDisplay::getLayers const):
(WebCore::VRDisplay::submitFrame):
(WebCore::VRDisplay::hasPendingActivity const):
(WebCore::VRDisplay::activeDOMObjectName const):
(WebCore::VRDisplay::canSuspendForDocumentSuspension const):
(WebCore::VRDisplay::stop):
* Modules/webvr/VRDisplay.h: Added.
* Modules/webvr/VRDisplay.idl: Added.
* Modules/webvr/VRDisplayCapabilities.cpp: Added.
(WebCore::VRDisplayCapabilities::hasPosition const):
(WebCore::VRDisplayCapabilities::hasOrientation const):
(WebCore::VRDisplayCapabilities::hasExternalDisplay const):
(WebCore::VRDisplayCapabilities::canPresent const):
(WebCore::VRDisplayCapabilities::maxLayer const):
* Modules/webvr/VRDisplayCapabilities.h: Added.
(WebCore::VRDisplayCapabilities::create):
* Modules/webvr/VRDisplayCapabilities.idl: Added.
* Modules/webvr/VRDisplayEvent.cpp: Added.
(WebCore::VRDisplayEvent::VRDisplayEvent):
(WebCore::VRDisplayEvent::display const):
(WebCore::VRDisplayEvent::reason const):
(WebCore::VRDisplayEvent::eventInterface const):
* Modules/webvr/VRDisplayEvent.h: Added.
* Modules/webvr/VRDisplayEvent.idl: Added.
* Modules/webvr/VRDisplayEventReason.h: Added.
* Modules/webvr/VRDisplayEventReason.idl: Added.
* Modules/webvr/VREye.h: Added.
* Modules/webvr/VREye.idl: Added.
* Modules/webvr/VREyeParameters.cpp: Added.
(WebCore::VREyeParameters::VREyeParameters):
(WebCore::VREyeParameters::offset const):
(WebCore::VREyeParameters::fieldOfView const):
(WebCore::VREyeParameters::renderWidth const):
(WebCore::VREyeParameters::renderHeight const):
* Modules/webvr/VREyeParameters.h: Added.
(WebCore::VREyeParameters::create):
* Modules/webvr/VREyeParameters.idl: Added.
* Modules/webvr/VRFieldOfView.cpp: Added.
(WebCore::VRFieldOfView::upDegrees const):
(WebCore::VRFieldOfView::rightDegrees const):
(WebCore::VRFieldOfView::downDegrees const):
(WebCore::VRFieldOfView::leftDegrees const):
* Modules/webvr/VRFieldOfView.h: Added.
(WebCore::VRFieldOfView::create):
* Modules/webvr/VRFieldOfView.idl: Added.
* Modules/webvr/VRFrameData.cpp: Added.
(WebCore::VRFrameData::VRFrameData):
(WebCore::VRFrameData::timestamp const):
(WebCore::VRFrameData::leftProjectionMatrix const):
(WebCore::VRFrameData::leftViewMatrix const):
(WebCore::VRFrameData::rightProjectionMatrix const):
(WebCore::VRFrameData::rightViewMatrix const):
(WebCore::VRFrameData::pose const):
* Modules/webvr/VRFrameData.h: Added.
(WebCore::VRFrameData::create):
* Modules/webvr/VRFrameData.idl: Added.
* Modules/webvr/VRLayerInit.h: Added.
* Modules/webvr/VRLayerInit.idl: Added.
* Modules/webvr/VRPose.cpp: Added.
(WebCore::VRPose::position const):
(WebCore::VRPose::linearVelocity const):
(WebCore::VRPose::linearAcceleration const):
(WebCore::VRPose::orientation const):
(WebCore::VRPose::angularVelocity const):
(WebCore::VRPose::angularAcceleration const):
* Modules/webvr/VRPose.h: Added.
(WebCore::VRPose::create):
* Modules/webvr/VRPose.idl: Added.
* Modules/webvr/VRStageParameters.cpp: Added.
(WebCore::VRStageParameters::sittingToStandingTransform const):
(WebCore::VRStageParameters::sizeX const):
(WebCore::VRStageParameters::sizeZ const):
* Modules/webvr/VRStageParameters.h: Added.
(WebCore::VRStageParameters::create):
* Modules/webvr/VRStageParameters.idl: Added.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* dom/EventNames.h:
* dom/EventNames.in:
* dom/EventTargetFactory.in:
* features.json:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebVREnabled):
(WebCore::RuntimeEnabledFeatures::webVREnabled const):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setWebVREnabled):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit:

* Shared/WebPreferencesDefinitions.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

LayoutTests:

New tests to verify that WebVR is properly enabled/disabled at runtime.

* webvr/webvr-disabled-expected.txt: Added.
* webvr/webvr-disabled.html: Added.
* webvr/webvr-enabled-expected.txt: Added.
* webvr/webvr-enabled.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221966 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUpdate the type of the texture argument to framebufferTextureLayer().
commit-queue@webkit.org [Wed, 13 Sep 2017 08:04:42 +0000 (08:04 +0000)]
Update the type of the texture argument to framebufferTextureLayer().
https://bugs.webkit.org/show_bug.cgi?id=176785

Patch by Ms2ger <Ms2ger@igalia.com> on 2017-09-13
Reviewed by Yusuke Suzuki.

This matches the specification as well as Gecko and Chromium.

Source/WebCore:

Also move getInternalformatParameter() to the position it has in the
specification, for easier comparison.

Test: fast/canvas/webgl/webgl2/bindings.html

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::framebufferTextureLayer):
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGL2RenderingContext.idl:

LayoutTests:

* fast/canvas/webgl/webgl2/bindings-expected.txt:
* fast/canvas/webgl/webgl2/bindings.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221965 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[EME] Implement CDMInstanceClearKey::updateLicense()
zandobersek@gmail.com [Wed, 13 Sep 2017 07:37:13 +0000 (07:37 +0000)]
[EME] Implement CDMInstanceClearKey::updateLicense()
https://bugs.webkit.org/show_bug.cgi?id=176791

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Implement the updateLicense() method for CDMInstanceClearKey.
The response data is parsed as JSON, matching that agains either
'license' or 'license release acknowledgement' formats (depending
on either 'keys' or 'kids' object keys being present). If any
format is recognized, appropriate steps are taken.

In case of the 'license' format, the passed-in keys are matched
against existing ones. If some keys have changed or have been
newly introduced, the key information is sorted by key ID size
and data to enforce order. After that the KeyStatusVector object
is constructed, containing key ID and status information for all
the keys associated with this session. Finally callback is
dispatched, signalling a successful operation and passing the
KeyStatusVector, if any, back to the caller.

In case of the 'license release acknowledgement' format, the
session data for this session ID is removed from the ClearKey state
singleton. The callback is dispatched signalling the session closure
and successfull completion of the operation.

Finally, if no format is deduced, the callback is again dispatched,
but now signalling an operation failure.

No new tests -- expectations for the relevant tests are updated
to reflect the introduced changes.

* platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::ClearKeyState::keys):
(WebCore::ClearKeyState::singleton):
(WebCore::parseLicenseFormat):
(WebCore::parseLicenseReleaseAcknowledgementFormat):
(WebCore::CDMInstanceClearKey::updateLicense):

LayoutTests:

Update WPE baselines of the EME ClearKey tests.

* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-events-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-update-disallowed-input-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221961 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRefactor WebContentReader out of EditorMac and EditorIOS
rniwa@webkit.org [Wed, 13 Sep 2017 07:17:43 +0000 (07:17 +0000)]
Refactor WebContentReader out of EditorMac and EditorIOS
https://bugs.webkit.org/show_bug.cgi?id=176770

Reviewed by Sam Weinig.

Source/WebCore:

Extracted WebContentReader.h, WebContentReaderMac.mm, and WebContentIOS.mm from Pasteboard.h,
EditorMac.mm, and EditorIOS.mm respectively.

Also moved createFragmentAndAddResources from EditorCocoa.mm to WebContentReaderCocoa.mm
and createFragmentForImageAndURL and createFragmentForImageResourceAndAddResource to markup.cpp.

* Configurations/WebCore.xcconfig:
* PlatformMac.cmake:
* WebCore.xcodeproj/project.pbxproj:
* editing/Editor.cpp:
(WebCore::Editor::createFragmentForImageAndURL): Deleted.
* editing/Editor.h:
* editing/WebContentReader.h: Added.
* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::replaceSelectionWithAttributedString):
(WebCore::Editor::createFragment): Deleted.
(WebCore::Editor::createFragmentForImageResourceAndAddResource): Deleted.
(WebCore::Editor::createFragmentAndAddResources): Deleted.
* editing/cocoa/WebContentReaderCocoa.mm: Added.
(WebCore::createFragmentForImageResourceAndAddResource):
(WebCore::createFragment):
(WebCore::createFragmentAndAddResources):
* editing/ios/EditorIOS.mm:
(WebCore::Editor::WebContentReader): Moved to WebContentReaderIOS.mm.
* editing/ios/WebContentReaderIOS.mm: Added.
(WebCore::WebContentReader::addFragment):
(WebCore::WebContentReader::readWebArchive):
(WebCore::WebContentReader::readFilenames):
(WebCore::WebContentReader::readHTML):
(WebCore::WebContentReader::readRTFD):
(WebCore::WebContentReader::readRTF):
(WebCore::WebContentReader::readImage):
(WebCore::WebContentReader::readURL):
(WebCore::WebContentReader::readPlainText):
* editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader): Moved to WebContentReaderMac.mm.
* editing/mac/WebContentReaderMac.mm: Added.
(WebCore::WebContentReader::readWebArchive):
(WebCore::WebContentReader::readFilenames):
(WebCore::WebContentReader::readHTML):
(WebCore::WebContentReader::readRTFD):
(WebCore::WebContentReader::readRTF):
(WebCore::WebContentReader::readImage):
(WebCore::WebContentReader::readURL):
(WebCore::WebContentReader::readPlainText):
* editing/markup.cpp:
(WebCore::createFragmentForImageAndURL):
(WebCore::createFragmentForImageResourceAndAddResource):
* editing/markup.h:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebEditorClient.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221960 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[DFG] Optimize WeakMap::get by adding intrinsic and fixup
utatane.tea@gmail.com [Wed, 13 Sep 2017 07:02:13 +0000 (07:02 +0000)]
[DFG] Optimize WeakMap::get by adding intrinsic and fixup
https://bugs.webkit.org/show_bug.cgi?id=176010

Reviewed by Filip Pizlo.

JSTests:

* microbenchmarks/weak-map-key.js: Added.
(assert):
(objectKey):
(let.start.Date.now):

Source/JavaScriptCore:

It reveals that Ember.js consumes 3.8% of execution time for WeakMap#get.
It is used for meta property for objects (see peekMeta function in Ember.js).

This patch optimizes WeakMap#get.

1. We use inlineGet to inline WeakMap#get operation in the native function.
Since this native function itself is very small, we should inline HashMap#get
entirely in this function.

2. We add JSWeakMapType and JSWeakSetType. This allows us to perform `isJSWeakMap()`
very fast. And this patch wires this to DFG and FTL to add WeakMapObjectUse and WeakSetObjectUse
to drop unnecessary type checking. We add fixup rules for WeakMapGet DFG node by using WeakMapObjectUse,
ObjectUse, and Int32Use.

3. We add intrinsic for WeakMap#get, and handle it in DFG and FTL. We use MapHash to
calculate hash value for the key's Object and use this hash value to look up value from
JSWeakMap's HashMap. Currently, we just call the operationWeakMapGet function in DFG and FTL.
It is worth considering that implementing this operation entirely in JIT, like GetMapBucket.
But anyway, the current one already optimizes the performance, so we leave this for the subsequent
patches.

We currently do not implement any other intrinsics (like, WeakMap#has, WeakSet) because they are
not used in Ember.js right now.

This patch optimizes WeakMap#get by 50%.

                         baseline                  patched

weak-map-key         88.6456+-3.9564     ^     59.1502+-2.2406        ^ definitely 1.4987x faster

* bytecode/DirectEvalCodeCache.h:
(JSC::DirectEvalCodeCache::tryGet):
* bytecode/SpeculatedType.cpp:
(JSC::dumpSpeculation):
(JSC::speculationFromClassInfo):
(JSC::speculationFromJSType):
(JSC::speculationFromString):
* bytecode/SpeculatedType.h:
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGHeapLocation.cpp:
(WTF::printInternal):
* dfg/DFGHeapLocation.h:
* dfg/DFGNode.h:
(JSC::DFG::Node::hasHeapPrediction):
* dfg/DFGNodeType.h:
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::speculateWeakMapObject):
(JSC::DFG::SpeculativeJIT::speculateWeakSetObject):
(JSC::DFG::SpeculativeJIT::speculate):
(JSC::DFG::SpeculativeJIT::compileWeakMapGet):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGUseKind.cpp:
(WTF::printInternal):
* dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::isCell):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileWeakMapGet):
(JSC::FTL::DFG::LowerDFGToB3::lowWeakMapObject):
(JSC::FTL::DFG::LowerDFGToB3::lowWeakSetObject):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::speculateWeakMapObject):
(JSC::FTL::DFG::LowerDFGToB3::speculateWeakSetObject):
* jit/JITOperations.h:
* runtime/HashMapImpl.h:
(JSC::WeakMapHash::hash):
(JSC::WeakMapHash::equal):
* runtime/Intrinsic.cpp:
(JSC::intrinsicName):
* runtime/Intrinsic.h:
* runtime/JSType.h:
* runtime/JSWeakMap.h:
(JSC::isJSWeakMap):
* runtime/JSWeakSet.h:
(JSC::isJSWeakSet):
* runtime/WeakMapBase.cpp:
(JSC::WeakMapBase::get):
* runtime/WeakMapBase.h:
(JSC::WeakMapBase::HashTranslator::hash):
(JSC::WeakMapBase::HashTranslator::equal):
(JSC::WeakMapBase::inlineGet):
* runtime/WeakMapPrototype.cpp:
(JSC::WeakMapPrototype::finishCreation):
(JSC::getWeakMap):
(JSC::protoFuncWeakMapGet):
* runtime/WeakSetPrototype.cpp:
(JSC::getWeakSet):

Source/WebCore:

* platform/network/curl/CurlJobManager.cpp:
(WebCore::CurlJobList::finishJobs):

Source/WTF:

Add inlineGet method with HashTranslator.

* wtf/HashMap.h:
(WTF::X>::inlineGet const):
(WTF::MappedTraits>::inlineGet const):
(WTF::MappedTraits>::fastGet const): Deleted.
* wtf/LoggingHashMap.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221959 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRename isRootLayer to isRenderViewLayer
fred.wang@free.fr [Wed, 13 Sep 2017 06:44:45 +0000 (06:44 +0000)]
Rename isRootLayer to isRenderViewLayer
https://bugs.webkit.org/show_bug.cgi?id=176684

Patch by Frederic Wang <fwang@igalia.com> on 2017-09-12
Reviewed by Darin Adler.

This patch was generated with the help of do-webcore-rename with some coding style adjustment.

No new tests, behavior unchanged.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::enclosingTransformedAncestor const):
(WebCore::RenderLayer::enclosingFilterRepaintLayer const):
(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
(WebCore::RenderLayer::clippingRootForPainting const):
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::shouldSuppressPaintingLayer):
(WebCore::RenderLayer::paintFixedLayersInNamedFlows):
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
(WebCore::RenderLayer::calculateClipRects const):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateAfterDescendants):
(WebCore::RenderLayerBacking::paintsIntoWindow const):
(WebCore::RenderLayerBacking::paintIntoLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):
(WebCore::RenderLayerCompositor::needsCompositingUpdateForStyleChangeOnNonCompositedLayer const):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::repaintInCompositedAncestor):
(WebCore::RenderLayerCompositor::addToOverlapMap):
(WebCore::RenderLayerCompositor::computeCompositingRequirementsForNamedFlowFixed):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTreeForNamedFlowFixed):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::needsToBeComposited const):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore const): Also move the IOS condition
up to avoid that check-webkit-style complains.
(WebCore::RenderLayerCompositor::reasonsForCompositing const):
(WebCore::RenderLayerCompositor::useCoordinatedScrollingForLayer const):
(WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer const):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221958 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRename JavaScriptCore CMake unifiable sources list
keith_miller@apple.com [Wed, 13 Sep 2017 04:39:48 +0000 (04:39 +0000)]
Rename JavaScriptCore CMake unifiable sources list
https://bugs.webkit.org/show_bug.cgi?id=176823

Reviewed by Joseph Pecoraro.

This patch also changes the error message when the unified source
bundler fails to be more accurate.

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221957 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[Win] Link errors when building WebKit from .proj files.
pvollan@apple.com [Wed, 13 Sep 2017 02:30:39 +0000 (02:30 +0000)]
[Win] Link errors when building WebKit from .proj files.
https://bugs.webkit.org/show_bug.cgi?id=176813

Reviewed by Brent Fulgham.

Add missing libraries to WebKit build.

* PlatformWin.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221956 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[WPE] Rebaseline tests affected by r221909 (second part)
clopez@igalia.com [Wed, 13 Sep 2017 02:26:44 +0000 (02:26 +0000)]
[WPE] Rebaseline tests affected by r221909 (second part)
https://bugs.webkit.org/show_bug.cgi?id=176819

Unreviewed WPE gardening.

* platform/wpe/TestExpectations:
* platform/wpe/animations/lineheight-animation-expected.txt: Added.
* platform/wpe/animations/simultaneous-start-transform-expected.txt: Added.
* platform/wpe/animations/width-using-ems-expected.txt: Added.
* platform/wpe/css2.1/t1508-c527-font-04-b-expected.txt: Added.
* platform/wpe/css2.1/t1508-c527-font-05-b-expected.txt: Added.
* platform/wpe/css2.1/t1508-c527-font-07-b-expected.txt: Added.
* platform/wpe/css2.1/t1508-c527-font-10-c-expected.txt: Added.
* platform/wpe/fast/events/mouseover-mouseout-expected.txt: Added.
* platform/wpe/fast/events/nested-window-event-expected.txt: Added.
* platform/wpe/fast/events/window-events-bubble-expected.txt: Added.
* platform/wpe/fast/events/window-events-bubble2-expected.txt: Added.
* platform/wpe/fast/tokenizer/script_extra_close-expected.txt: Added.
* platform/wpe/tables/mozilla/bugs/bug149275-2-expected.txt: Added.
* platform/wpe/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221955 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoDo unified source builds for JSC
keith_miller@apple.com [Wed, 13 Sep 2017 01:31:07 +0000 (01:31 +0000)]
Do unified source builds for JSC
https://bugs.webkit.org/show_bug.cgi?id=176076

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This patch switches the CMake JavaScriptCore build to use unified sources.
The Xcode build will be upgraded in a follow up patch.

Most of the source changes in this patch are fixing static
variable/functions name collisions. The most common collisions
were from our use of "static const bool verbose" and "using
namespace ...". I fixed all the verbose cases and fixed the "using
namespace" issues that occurred under the current bundling
strategy. It's likely that more of the "using namespace" issues
will need to be resolved in the future, particularly in the FTL.

I don't expect either of these problems will apply to other parts
of the project nearly as much as in JSC. Using a verbose variable
is a JSC idiom and JSC tends use the same, canonical, class name
in multiple parts of the engine.

* CMakeLists.txt:
* b3/B3CheckSpecial.cpp:
(JSC::B3::CheckSpecial::forEachArg):
(JSC::B3::CheckSpecial::generate):
(JSC::B3::Air::numB3Args): Deleted.
* b3/B3DuplicateTails.cpp:
* b3/B3EliminateCommonSubexpressions.cpp:
* b3/B3FixSSA.cpp:
(JSC::B3::demoteValues):
* b3/B3FoldPathConstants.cpp:
* b3/B3InferSwitches.cpp:
* b3/B3LowerMacrosAfterOptimizations.cpp:
(): Deleted.
* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::LowerToAir): Deleted.
(JSC::B3::Air::LowerToAir::run): Deleted.
(JSC::B3::Air::LowerToAir::shouldCopyPropagate): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::ArgPromise): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::swap): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::operator=): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::~ArgPromise): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::setTraps): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::tmp): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::operator bool const): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::kind const): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::peek const): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::consume): Deleted.
(JSC::B3::Air::LowerToAir::ArgPromise::inst): Deleted.
(JSC::B3::Air::LowerToAir::tmp): Deleted.
(JSC::B3::Air::LowerToAir::tmpPromise): Deleted.
(JSC::B3::Air::LowerToAir::canBeInternal): Deleted.
(JSC::B3::Air::LowerToAir::commitInternal): Deleted.
(JSC::B3::Air::LowerToAir::crossesInterference): Deleted.
(JSC::B3::Air::LowerToAir::scaleForShl): Deleted.
(JSC::B3::Air::LowerToAir::effectiveAddr): Deleted.
(JSC::B3::Air::LowerToAir::addr): Deleted.
(JSC::B3::Air::LowerToAir::trappingInst): Deleted.
(JSC::B3::Air::LowerToAir::loadPromiseAnyOpcode): Deleted.
(JSC::B3::Air::LowerToAir::loadPromise): Deleted.
(JSC::B3::Air::LowerToAir::imm): Deleted.
(JSC::B3::Air::LowerToAir::bitImm): Deleted.
(JSC::B3::Air::LowerToAir::bitImm64): Deleted.
(JSC::B3::Air::LowerToAir::immOrTmp): Deleted.
(JSC::B3::Air::LowerToAir::tryOpcodeForType): Deleted.
(JSC::B3::Air::LowerToAir::opcodeForType): Deleted.
(JSC::B3::Air::LowerToAir::appendUnOp): Deleted.
(JSC::B3::Air::LowerToAir::preferRightForResult): Deleted.
(JSC::B3::Air::LowerToAir::appendBinOp): Deleted.
(JSC::B3::Air::LowerToAir::appendShift): Deleted.
(JSC::B3::Air::LowerToAir::tryAppendStoreUnOp): Deleted.
(JSC::B3::Air::LowerToAir::tryAppendStoreBinOp): Deleted.
(JSC::B3::Air::LowerToAir::createStore): Deleted.
(JSC::B3::Air::LowerToAir::storeOpcode): Deleted.
(JSC::B3::Air::LowerToAir::appendStore): Deleted.
(JSC::B3::Air::LowerToAir::moveForType): Deleted.
(JSC::B3::Air::LowerToAir::relaxedMoveForType): Deleted.
(JSC::B3::Air::LowerToAir::print): Deleted.
(JSC::B3::Air::LowerToAir::append): Deleted.
(JSC::B3::Air::LowerToAir::appendTrapping): Deleted.
(JSC::B3::Air::LowerToAir::finishAppendingInstructions): Deleted.
(JSC::B3::Air::LowerToAir::newBlock): Deleted.
(JSC::B3::Air::LowerToAir::splitBlock): Deleted.
(JSC::B3::Air::LowerToAir::ensureSpecial): Deleted.
(JSC::B3::Air::LowerToAir::ensureCheckSpecial): Deleted.
(JSC::B3::Air::LowerToAir::fillStackmap): Deleted.
(JSC::B3::Air::LowerToAir::createGenericCompare): Deleted.
(JSC::B3::Air::LowerToAir::createBranch): Deleted.
(JSC::B3::Air::LowerToAir::createCompare): Deleted.
(JSC::B3::Air::LowerToAir::createSelect): Deleted.
(JSC::B3::Air::LowerToAir::tryAppendLea): Deleted.
(JSC::B3::Air::LowerToAir::appendX86Div): Deleted.
(JSC::B3::Air::LowerToAir::appendX86UDiv): Deleted.
(JSC::B3::Air::LowerToAir::loadLinkOpcode): Deleted.
(JSC::B3::Air::LowerToAir::storeCondOpcode): Deleted.
(JSC::B3::Air::LowerToAir::appendCAS): Deleted.
(JSC::B3::Air::LowerToAir::appendVoidAtomic): Deleted.
(JSC::B3::Air::LowerToAir::appendGeneralAtomic): Deleted.
(JSC::B3::Air::LowerToAir::lower): Deleted.
* b3/B3PatchpointSpecial.cpp:
(JSC::B3::PatchpointSpecial::generate):
* b3/B3ReduceDoubleToFloat.cpp:
(JSC::B3::reduceDoubleToFloat):
* b3/B3ReduceStrength.cpp:
* b3/B3StackmapGenerationParams.cpp:
* b3/B3StackmapSpecial.cpp:
(JSC::B3::StackmapSpecial::repsImpl):
(JSC::B3::StackmapSpecial::repForArg):
* b3/air/AirAllocateStackByGraphColoring.cpp:
(JSC::B3::Air::allocateStackByGraphColoring):
* b3/air/AirEmitShuffle.cpp:
(JSC::B3::Air::emitShuffle):
* b3/air/AirFixObviousSpills.cpp:
* b3/air/AirLowerAfterRegAlloc.cpp:
(JSC::B3::Air::lowerAfterRegAlloc):
* b3/air/AirStackAllocation.cpp:
(JSC::B3::Air::attemptAssignment):
(JSC::B3::Air::assign):
* bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeDFGStatuses):
* bytecode/GetterSetterAccessCase.cpp:
(JSC::GetterSetterAccessCase::emitDOMJITGetter):
* bytecode/ObjectPropertyConditionSet.cpp:
* bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::regenerate):
* bytecode/PropertyCondition.cpp:
(JSC::PropertyCondition::isStillValidAssumingImpurePropertyWatchpoint const):
* bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::addAccessCase):
* dfg/DFGArgumentsEliminationPhase.cpp:
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::DelayedSetLocal::DelayedSetLocal):
(JSC::DFG::ByteCodeParser::inliningCost):
(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::attemptToInlineCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::planLoad):
(JSC::DFG::ByteCodeParser::store):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::linkBlock):
(JSC::DFG::ByteCodeParser::linkBlocks):
* dfg/DFGCSEPhase.cpp:
* dfg/DFGInPlaceAbstractState.cpp:
(JSC::DFG::InPlaceAbstractState::merge):
* dfg/DFGIntegerCheckCombiningPhase.cpp:
(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):
* dfg/DFGIntegerRangeOptimizationPhase.cpp:
* dfg/DFGMovHintRemovalPhase.cpp:
* dfg/DFGObjectAllocationSinkingPhase.cpp:
* dfg/DFGPhantomInsertionPhase.cpp:
* dfg/DFGPutStackSinkingPhase.cpp:
* dfg/DFGStoreBarrierInsertionPhase.cpp:
* dfg/DFGVarargsForwardingPhase.cpp:
* ftl/FTLAbstractHeap.cpp:
(JSC::FTL::AbstractHeap::compute):
* ftl/FTLAbstractHeapRepository.cpp:
(JSC::FTL::AbstractHeapRepository::decorateMemory):
(JSC::FTL::AbstractHeapRepository::decorateCCallRead):
(JSC::FTL::AbstractHeapRepository::decorateCCallWrite):
(JSC::FTL::AbstractHeapRepository::decoratePatchpointRead):
(JSC::FTL::AbstractHeapRepository::decoratePatchpointWrite):
(JSC::FTL::AbstractHeapRepository::decorateFenceRead):
(JSC::FTL::AbstractHeapRepository::decorateFenceWrite):
(JSC::FTL::AbstractHeapRepository::decorateFencedAccess):
(JSC::FTL::AbstractHeapRepository::computeRangesAndDecorateInstructions):
* ftl/FTLLink.cpp:
(JSC::FTL::link):
* heap/MarkingConstraintSet.cpp:
(JSC::MarkingConstraintSet::add):
* interpreter/ShadowChicken.cpp:
(JSC::ShadowChicken::update):
* jit/BinarySwitch.cpp:
(JSC::BinarySwitch::BinarySwitch):
(JSC::BinarySwitch::build):
* llint/LLIntData.cpp:
(JSC::LLInt::Data::loadStats):
(JSC::LLInt::Data::saveStats):
* runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::tryInitializeSpeciesWatchpoint):
(JSC::ArrayPrototypeAdaptiveInferredPropertyWatchpoint::handleFire):
* runtime/ErrorInstance.cpp:
(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::foundCallFrame const): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::index const): Deleted.
* runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
* runtime/PromiseDeferredTimer.cpp:
(JSC::PromiseDeferredTimer::doWork):
(JSC::PromiseDeferredTimer::addPendingPromise):
(JSC::PromiseDeferredTimer::cancelPendingPromise):
* runtime/TypeProfiler.cpp:
(JSC::TypeProfiler::insertNewLocation):
* runtime/TypeProfilerLog.cpp:
(JSC::TypeProfilerLog::processLogEntries):
* runtime/WeakMapPrototype.cpp:
(JSC::protoFuncWeakMapDelete):
(JSC::protoFuncWeakMapGet):
(JSC::protoFuncWeakMapHas):
(JSC::protoFuncWeakMapSet):
(JSC::getWeakMapData): Deleted.
* runtime/WeakSetPrototype.cpp:
(JSC::protoFuncWeakSetDelete):
(JSC::protoFuncWeakSetHas):
(JSC::protoFuncWeakSetAdd):
(JSC::getWeakMapData): Deleted.
* testRegExp.cpp:
(testOneRegExp):
(runFromFiles):
* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompile):
* wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::moveToState):
(JSC::Wasm::BBQPlan::parseAndValidateModule):
(JSC::Wasm::BBQPlan::prepare):
(JSC::Wasm::BBQPlan::compileFunctions):
(JSC::Wasm::BBQPlan::complete):
* wasm/WasmFaultSignalHandler.cpp:
(JSC::Wasm::trapHandler):
* wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::OMGPlan):
(JSC::Wasm::OMGPlan::work):
* wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::fail):
* wasm/WasmSignature.cpp:
(JSC::Wasm::SignatureInformation::adopt):
* wasm/WasmWorklist.cpp:
(JSC::Wasm::Worklist::enqueue):

Source/WTF:

This patch adds a script that will automatically bundle source
files, which is currently only used by the CMake build. It's
important that we use the same script to generate the bundles
for the CMake build as the Xcode build. If we didn't do this then
it's likely that there would be build errors that occur in only
one build system. On the same note, we also need to be careful to
not bundle platform specific source files with platform
independent ones. There are a couple of things the script does not
currently handle but are not essential for the CMake build. First,
it does not handle the max bundle size restrictions that the Xcode
build will require. It also does not handle C files.

The unified source generator script works by collecting groups of
up to 8 files from the same directory. We don't bundle files from
across directories since I didn't see a speedup from doing
so. Additionally, splitting at the directory boundary means that
it is less likely that adding a new file will force a "clean"
build. This would happen because the new file will shift every
subsequent file into the next unified source bundle.

Using unified sources appears to be a roughly 3.5x build time
speed up for clean builds on my MBP and appears to have a
negligible effect in incremental builds.

* generate-unified-source-bundles.rb: Added.
* wtf/Assertions.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221954 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[WPE] Rebaseline tests affected by r221909
clopez@igalia.com [Wed, 13 Sep 2017 01:23:57 +0000 (01:23 +0000)]
[WPE] Rebaseline tests affected by r221909
https://bugs.webkit.org/show_bug.cgi?id=176819

Unreviewed WPE gardening.

* platform/wpe/animations/3d/matrix-transform-type-animation-expected.txt:
* platform/wpe/animations/cross-fade-border-image-source-expected.txt:
* platform/wpe/animations/cross-fade-list-style-image-expected.txt:
* platform/wpe/animations/cross-fade-webkit-mask-box-image-expected.txt:
* platform/wpe/animations/missing-values-first-keyframe-expected.txt:
* platform/wpe/animations/missing-values-last-keyframe-expected.txt:
* platform/wpe/css1/basic/containment-expected.txt:
* platform/wpe/css1/basic/contextual_selectors-expected.txt:
* platform/wpe/css1/basic/grouping-expected.txt:
* platform/wpe/css1/basic/id_as_selector-expected.txt:
* platform/wpe/css1/basic/inheritance-expected.txt:
* platform/wpe/css1/box_properties/border-expected.txt:
* platform/wpe/css1/box_properties/border_bottom-expected.txt:
* platform/wpe/css1/box_properties/border_bottom_inline-expected.txt:
* platform/wpe/css1/box_properties/border_bottom_width-expected.txt:
* platform/wpe/css1/box_properties/border_bottom_width_inline-expected.txt:
* platform/wpe/css1/box_properties/border_color-expected.txt:
* platform/wpe/css1/box_properties/border_color_inline-expected.txt:
* platform/wpe/css1/box_properties/border_inline-expected.txt:
* platform/wpe/css1/box_properties/border_left-expected.txt:
* platform/wpe/css1/box_properties/border_left_inline-expected.txt:
* platform/wpe/css1/box_properties/border_left_width-expected.txt:
* platform/wpe/css1/box_properties/border_left_width_inline-expected.txt:
* platform/wpe/css1/box_properties/border_right-expected.txt:
* platform/wpe/css1/box_properties/border_right_inline-expected.txt:
* platform/wpe/css1/box_properties/border_right_width-expected.txt:
* platform/wpe/css1/box_properties/border_right_width_inline-expected.txt:
* platform/wpe/css1/box_properties/border_style-expected.txt:
* platform/wpe/css1/box_properties/border_style_inline-expected.txt:
* platform/wpe/css1/box_properties/border_top-expected.txt:
* platform/wpe/css1/box_properties/border_top_inline-expected.txt:
* platform/wpe/css1/box_properties/border_top_width-expected.txt:
* platform/wpe/css1/box_properties/border_top_width_inline-expected.txt:
* platform/wpe/css1/box_properties/border_width-expected.txt:
* platform/wpe/css1/box_properties/border_width_inline-expected.txt:
* platform/wpe/css1/box_properties/clear-expected.txt:
* platform/wpe/css1/box_properties/clear_float-expected.txt:
* platform/wpe/css1/box_properties/float-expected.txt:
* platform/wpe/css1/box_properties/float_elements_in_series-expected.txt:
* platform/wpe/css1/box_properties/float_margin-expected.txt:
* platform/wpe/css1/box_properties/float_on_text_elements-expected.txt:
* platform/wpe/css1/box_properties/height-expected.txt:
* platform/wpe/css1/box_properties/margin-expected.txt:
* platform/wpe/css1/box_properties/margin_bottom-expected.txt:
* platform/wpe/css1/box_properties/margin_bottom_inline-expected.txt:
* platform/wpe/css1/box_properties/margin_inline-expected.txt:
* platform/wpe/css1/box_properties/margin_left-expected.txt:
* platform/wpe/css1/box_properties/margin_left_inline-expected.txt:
* platform/wpe/css1/box_properties/margin_right-expected.txt:
* platform/wpe/css1/box_properties/margin_right_inline-expected.txt:
* platform/wpe/css1/box_properties/margin_top-expected.txt:
* platform/wpe/css1/box_properties/margin_top_inline-expected.txt:
* platform/wpe/css1/box_properties/padding-expected.txt:
* platform/wpe/css1/box_properties/padding_bottom-expected.txt:
* platform/wpe/css1/box_properties/padding_bottom_inline-expected.txt:
* platform/wpe/css1/box_properties/padding_inline-expected.txt:
* platform/wpe/css1/box_properties/padding_left-expected.txt:
* platform/wpe/css1/box_properties/padding_left_inline-expected.txt:
* platform/wpe/css1/box_properties/padding_right-expected.txt:
* platform/wpe/css1/box_properties/padding_right_inline-expected.txt:
* platform/wpe/css1/box_properties/padding_top-expected.txt:
* platform/wpe/css1/box_properties/padding_top_inline-expected.txt:
* platform/wpe/css1/box_properties/width-expected.txt:
* platform/wpe/css1/cascade/cascade_order-expected.txt:
* platform/wpe/css1/cascade/important-expected.txt:
* platform/wpe/css1/classification/display-expected.txt:
* platform/wpe/css1/classification/list_style-expected.txt:
* platform/wpe/css1/classification/list_style_image-expected.txt:
* platform/wpe/css1/classification/list_style_position-expected.txt:
* platform/wpe/css1/classification/list_style_type-expected.txt:
* platform/wpe/css1/classification/white_space-expected.txt:
* platform/wpe/css1/color_and_background/background-expected.txt:
* platform/wpe/css1/color_and_background/background_attachment-expected.txt:
* platform/wpe/css1/color_and_background/background_color-expected.txt:
* platform/wpe/css1/color_and_background/background_image-expected.txt:
* platform/wpe/css1/color_and_background/background_position-expected.txt:
* platform/wpe/css1/color_and_background/background_repeat-expected.txt:
* platform/wpe/css1/color_and_background/color-expected.txt:
* platform/wpe/css1/conformance/forward_compatible_parsing-expected.txt:
* platform/wpe/css1/font_properties/font-expected.txt:
* platform/wpe/css1/font_properties/font_family-expected.txt:
* platform/wpe/css1/font_properties/font_size-expected.txt:
* platform/wpe/css1/font_properties/font_style-expected.txt:
* platform/wpe/css1/font_properties/font_variant-expected.txt:
* platform/wpe/css1/font_properties/font_weight-expected.txt:
* platform/wpe/css1/formatting_model/canvas-expected.txt:
* platform/wpe/css1/formatting_model/floating_elements-expected.txt:
* platform/wpe/css1/formatting_model/height_of_lines-expected.txt:
* platform/wpe/css1/formatting_model/inline_elements-expected.txt:
* platform/wpe/css1/formatting_model/replaced_elements-expected.txt:
* platform/wpe/css1/formatting_model/vertical_formatting-expected.txt:
* platform/wpe/css1/pseudo/anchor-expected.txt:
* platform/wpe/css1/pseudo/firstletter-expected.txt:
* platform/wpe/css1/pseudo/firstline-expected.txt:
* platform/wpe/css1/pseudo/multiple_pseudo_elements-expected.txt:
* platform/wpe/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
* platform/wpe/css1/text_properties/letter_spacing-expected.txt:
* platform/wpe/css1/text_properties/line_height-expected.txt:
* platform/wpe/css1/text_properties/text_align-expected.txt:
* platform/wpe/css1/text_properties/text_decoration-expected.txt:
* platform/wpe/css1/text_properties/text_indent-expected.txt:
* platform/wpe/css1/text_properties/text_transform-expected.txt:
* platform/wpe/css1/text_properties/vertical_align-expected.txt:
* platform/wpe/css1/text_properties/word_spacing-expected.txt:
* platform/wpe/css1/units/color_units-expected.txt:
* platform/wpe/css1/units/length_units-expected.txt:
* platform/wpe/css1/units/percentage_units-expected.txt:
* platform/wpe/css1/units/urls-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-001-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-002-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-003-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-004-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-005-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-006-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-007-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-008-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-009-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-010-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-011-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-height-012-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-001-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-002-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-003-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-004-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-005-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-006-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-007-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-008-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-009-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-010-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-011-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-max-height-012-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-001-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-002-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-003-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-004-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-005-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-006-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-007-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-008-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-009-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-010-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-011-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-012-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-013-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-014-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-015-expected.txt:
* platform/wpe/css2.1/20110323/absolute-non-replaced-width-016-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-001-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-002-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-003-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-004-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-005-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-007-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-008-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-009-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-010-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-011-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-012-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-014-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-016-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-017-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-018-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-019-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-021-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-022-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-023-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-024-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-025-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-026-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-028-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-029-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-030-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-031-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-032-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-033-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-height-035-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-001-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-006-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-008-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-013-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-015-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-020-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-022-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-027-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-029-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-034-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-036-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-041-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-043-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-048-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-050-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-055-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-057-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-062-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-064-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-069-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-071-expected.txt:
* platform/wpe/css2.1/20110323/absolute-replaced-width-076-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-001-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-002-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-003-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-004-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-005-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-006-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-007-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-008-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-009-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-010-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-011-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-012-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-013-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-014-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-015-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-height-016-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-width-001-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-width-002-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-width-003-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-width-004-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-width-005-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-width-006-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-width-007-expected.txt:
* platform/wpe/css2.1/20110323/block-non-replaced-width-008-expected.txt:
* platform/wpe/css2.1/20110323/block-replaced-height-001-expected.txt:
* platform/wpe/css2.1/20110323/block-replaced-height-002-expected.txt:
* platform/wpe/css2.1/20110323/block-replaced-height-003-expected.txt:
* platform/wpe/css2.1/20110323/block-replaced-height-004-expected.txt:
* platform/wpe/css2.1/20110323/block-replaced-height-005-expected.txt:
* platform/wpe/css2.1/20110323/block-replaced-height-007-expected.txt:
* platform/wpe/css2.1/20110323/block-replaced-width-001-expected.txt:
* platform/wpe/css2.1/20110323/block-replaced-width-006-expected.txt:
* platform/wpe/css2.1/20110323/border-conflict-style-079-expected.txt:
* platform/wpe/css2.1/20110323/border-conflict-style-088-expected.txt:
* platform/wpe/css2.1/20110323/border-spacing-applies-to-015-expected.txt:
* platform/wpe/css2.1/20110323/c543-txt-decor-000-expected.txt:
* platform/wpe/css2.1/20110323/empty-inline-001-expected.txt:
* platform/wpe/css2.1/20110323/empty-inline-002-expected.txt:
* platform/wpe/css2.1/20110323/empty-inline-003-expected.txt:
* platform/wpe/css2.1/20110323/float-non-replaced-height-001-expected.txt:
* platform/wpe/css2.1/20110323/float-non-replaced-width-001-expected.txt:
* platform/wpe/css2.1/20110323/float-non-replaced-width-002-expected.txt:
* platform/wpe/css2.1/20110323/float-non-replaced-width-003-expected.txt:
* platform/wpe/css2.1/20110323/float-non-replaced-width-004-expected.txt:
* platform/wpe/css2.1/20110323/float-non-replaced-width-005-expected.txt:
* platform/wpe/css2.1/20110323/float-non-replaced-width-006-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-height-001-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-height-002-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-height-003-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-height-004-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-height-005-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-height-007-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-width-001-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-width-002-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-width-003-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-width-004-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-width-005-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-width-006-expected.txt:
* platform/wpe/css2.1/20110323/float-replaced-width-011-expected.txt:
* platform/wpe/css2.1/20110323/height-width-inline-table-001-expected.txt:
* platform/wpe/css2.1/20110323/height-width-table-001-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-non-replaced-height-001-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-non-replaced-height-002-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-non-replaced-width-001-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-non-replaced-width-002-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-replaced-height-001-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-replaced-height-002-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-replaced-height-003-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-replaced-height-004-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-replaced-height-005-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-replaced-height-007-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-replaced-width-001-expected.txt:
* platform/wpe/css2.1/20110323/inline-block-replaced-width-006-expected.txt:
* platform/wpe/css2.1/20110323/inline-non-replaced-height-002-expected.txt:
* platform/wpe/css2.1/20110323/inline-non-replaced-height-003-expected.txt:
* platform/wpe/css2.1/20110323/inline-non-replaced-width-001-expected.txt:
* platform/wpe/css2.1/20110323/inline-non-replaced-width-002-expected.txt:
* platform/wpe/css2.1/20110323/inline-replaced-height-001-expected.txt:
* platform/wpe/css2.1/20110323/inline-replaced-height-002-expected.txt:
* platform/wpe/css2.1/20110323/inline-replaced-height-003-expected.txt:
* platform/wpe/css2.1/20110323/inline-replaced-height-004-expected.txt:
* platform/wpe/css2.1/20110323/inline-replaced-height-005-expected.txt:
* platform/wpe/css2.1/20110323/inline-replaced-height-007-expected.txt:
* platform/wpe/css2.1/20110323/inline-replaced-width-001-expected.txt:
* platform/wpe/css2.1/20110323/inline-replaced-width-006-expected.txt:
* platform/wpe/css2.1/20110323/inline-table-001-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-001-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-002-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-003-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-004-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-005-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-006-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-007-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-008-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-009-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-010-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-012-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-013-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-014-expected.txt:
* platform/wpe/css2.1/20110323/margin-applies-to-015-expected.txt:
* platform/wpe/css2.1/20110323/outline-color-applies-to-008-expected.txt:
* platform/wpe/css2.1/20110323/table-caption-001-expected.txt:
* platform/wpe/css2.1/20110323/table-caption-002-expected.txt:
* platform/wpe/css2.1/20110323/table-caption-horizontal-alignment-001-expected.txt:
* platform/wpe/css2.1/20110323/table-caption-optional-001-expected.txt:
* platform/wpe/css2.1/20110323/table-caption-optional-002-expected.txt:
* platform/wpe/css2.1/20110323/table-height-algorithm-023-expected.txt:
* platform/wpe/css2.1/20110323/table-height-algorithm-024-expected.txt:
* platform/wpe/css2.1/20110323/width-non-replaced-inline-001-expected.txt:
* platform/wpe/css2.1/20110323/width-replaced-element-001-expected.txt:
* platform/wpe/css2.1/t040102-keywords-01-b-expected.txt:
* platform/wpe/css2.1/t0402-c71-fwd-parsing-01-f-expected.txt:
* platform/wpe/css2.1/t0402-c71-fwd-parsing-02-f-expected.txt:
* platform/wpe/css2.1/t051201-c23-first-line-00-b-expected.txt:
* platform/wpe/css2.1/t051202-c26-psudo-nest-00-c-expected.txt:
* platform/wpe/css2.1/t0602-c13-inheritance-00-e-expected.txt:
* platform/wpe/css2.1/t0805-c5519-brdr-r-02-e-expected.txt:
* platform/wpe/css2.1/t0805-c5521-brdr-l-02-e-expected.txt:
* platform/wpe/css2.1/t0905-c414-flt-04-c-expected.txt:
* platform/wpe/css2.1/t0905-c414-flt-wrap-00-e-expected.txt:
* platform/wpe/css2.1/t0905-c5525-fltblck-01-d-expected.txt:
* platform/wpe/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
* platform/wpe/css2.1/t0905-c5525-fltmult-00-d-g-expected.txt:
* platform/wpe/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt:
* platform/wpe/css2.1/t090501-c414-flt-00-d-expected.txt:
* platform/wpe/css2.1/t090501-c414-flt-01-b-expected.txt:
* platform/wpe/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
* platform/wpe/css2.1/t1202-counter-00-b-expected.txt:
* platform/wpe/css2.1/t1202-counter-01-b-expected.txt:
* platform/wpe/css2.1/t1202-counter-02-b-expected.txt:
* platform/wpe/css2.1/t1202-counter-03-b-expected.txt:
* platform/wpe/css2.1/t1202-counter-04-b-expected.txt:
* platform/wpe/css2.1/t1202-counter-05-b-expected.txt:
* platform/wpe/css2.1/t1202-counter-06-b-expected.txt:
* platform/wpe/css2.1/t1202-counter-16-f-expected.txt:
* platform/wpe/css2.1/t1202-counters-00-b-expected.txt:
* platform/wpe/css2.1/t1202-counters-01-b-expected.txt:
* platform/wpe/css2.1/t1202-counters-02-b-expected.txt:
* platform/wpe/css2.1/t1202-counters-03-b-expected.txt:
* platform/wpe/css2.1/t1202-counters-04-b-expected.txt:
* platform/wpe/css2.1/t1202-counters-05-b-expected.txt:
* platform/wpe/css2.1/t1202-counters-06-b-expected.txt:
* platform/wpe/css2.1/t1202-counters-18-f-expected.txt:
* platform/wpe/css2.1/t1204-order-00-c-expected.txt:
* platform/wpe/css2.1/t1204-order-01-d-expected.txt:
* platform/wpe/css2.1/t120401-scope-00-b-expected.txt:
* platform/wpe/css2.1/t120401-scope-01-c-expected.txt:
* platform/wpe/css2.1/t1205-c565-list-pos-00-b-expected.txt:
* platform/wpe/css2.1/t1507-c526-font-sz-00-b-expected.txt:
* platform/wpe/css2.1/t1508-c527-font-00-b-expected.txt:
* platform/wpe/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
* platform/wpe/css3/css3-modsel-35-expected.txt:
* platform/wpe/css3/css3-modsel-37-expected.txt:
* platform/wpe/css3/flexbox/button-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-13-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-14c-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-14e-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-15-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-159-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-168-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-168a-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-169-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-169a-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-17-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-18-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-2-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-22-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-30-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-31-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-34-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-35-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-37-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-41-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-41a-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-42-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-42a-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-45-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-45b-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-46-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-46b-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-6-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-7-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-75-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-75b-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-76-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-76b-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-79-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-8-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-80-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-82-expected.txt:
* platform/wpe/css3/selectors3/html/css3-modsel-82b-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-113-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-113b-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-114-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-114b-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-119-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-121-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-122-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-123-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-13-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-139-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-139b-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-140-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-140b-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-14c-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-14e-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-15-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-159-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-168-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-168a-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-169-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-169a-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-17-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-18-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-2-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-22-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-30-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-31-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-34-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-35-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-37-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-41-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-41a-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-42-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-42a-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-45-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-45b-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-46-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-46b-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-47-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-48-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-49-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-6-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-7-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-75-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-75b-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-76-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-76b-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-79-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-8-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-80-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-82-expected.txt:
* platform/wpe/css3/selectors3/xhtml/css3-modsel-82b-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-113-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-113b-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-114-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-114b-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-119-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-121-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-122-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-123-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-13-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-139-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-139b-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-140-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-140b-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-14c-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-14e-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-15-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-159-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-168-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-168a-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-169-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-169a-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-17-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-18-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-2-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-22-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-30-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-31-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-34-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-35-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-37-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-41-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-41a-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-42-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-42a-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-45-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-45b-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-46-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-46b-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-47-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-48-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-49-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-6-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-7-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-75-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-75b-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-76-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-76b-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-79-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-8-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-80-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-82-expected.txt:
* platform/wpe/css3/selectors3/xml/css3-modsel-82b-expected.txt:
* platform/wpe/css3/unicode-bidi-isolate-basic-expected.txt:
* platform/wpe/fast/dom/Element/class-attribute-whitespace-expected.txt:
* platform/wpe/fast/dom/HTMLDocument/frameless-location-bugzilla10837-expected.txt:
* platform/wpe/fast/dom/HTMLElement/bdo-expected.txt:
* platform/wpe/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
* platform/wpe/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
* platform/wpe/fast/dom/HTMLTableElement/colSpan-expected.txt:
* platform/wpe/fast/dom/HTMLTableElement/createCaption-expected.txt:
* platform/wpe/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
* platform/wpe/fast/dom/Range/create-contextual-fragment-expected.txt:
* platform/wpe/fast/dynamic/007-expected.txt:
* platform/wpe/fast/dynamic/011-expected.txt:
* platform/wpe/fast/dynamic/012-expected.txt:
* platform/wpe/fast/dynamic/014-expected.txt:
* platform/wpe/fast/dynamic/015-expected.txt:
* platform/wpe/fast/dynamic/anchor-lock-expected.txt:
* platform/wpe/fast/dynamic/anonymous-block-orphaned-lines-expected.txt:
* platform/wpe/fast/dynamic/containing-block-change-expected.txt:
* platform/wpe/fast/dynamic/create-renderer-for-whitespace-only-text-expected.txt:
* platform/wpe/fast/dynamic/float-in-trailing-whitespace-after-last-line-break-expected.txt:
* platform/wpe/fast/dynamic/float-withdrawal-expected.txt:
* platform/wpe/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
* platform/wpe/fast/dynamic/noninlinebadness-expected.txt:
* platform/wpe/fast/dynamic/outerHTML-doc-expected.txt:
* platform/wpe/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
* platform/wpe/fast/dynamic/selection-highlight-adjust-expected.txt:
* platform/wpe/fast/dynamic/staticY-marking-parents-regression-expected.txt:
* platform/wpe/fast/dynamic/view-overflow-expected.txt:
* platform/wpe/fast/encoding/utf-16-big-endian-expected.txt:
* platform/wpe/fast/encoding/utf-16-little-endian-expected.txt:
* platform/wpe/fast/encoding/xmacroman-encoding-test-expected.txt:
* platform/wpe/fast/events/pointer-events-2-expected.txt:
* platform/wpe/fast/events/resize-events-expected.txt:
* platform/wpe/fast/events/updateLayoutForHitTest-expected.txt:
* platform/wpe/fast/gradients/crash-on-zero-radius-expected.txt:
* platform/wpe/fast/gradients/list-item-gradient-expected.txt:
* platform/wpe/fast/gradients/radial-centered-expected.txt:
* platform/wpe/fast/parser/001-expected.txt:
* platform/wpe/fast/parser/entity-comment-in-style-expected.txt:
* platform/wpe/fast/parser/nofoo-tags-inside-paragraph-expected.txt:
* platform/wpe/fast/parser/open-comment-in-style-expected.txt:
* platform/wpe/fast/parser/open-comment-in-textarea-expected.txt:
* platform/wpe/fast/parser/xhtml-alternate-entities-expected.txt:
* platform/wpe/fast/transforms/bounding-rect-zoom-expected.txt:
* platform/wpe/fast/transforms/diamond-expected.txt:
* platform/wpe/fast/transforms/transform-overflow-expected.txt:
* platform/wpe/fast/transforms/transform-positioned-ancestor-expected.txt:
* platform/wpe/fast/transforms/transform-table-row-expected.txt:
* platform/wpe/fast/transforms/transforms-with-zoom-expected.txt:
* platform/wpe/fast/xsl/xslt-enc-cyr-expected.txt:
* platform/wpe/fast/xsl/xslt-enc-expected.txt:
* platform/wpe/fast/xsl/xslt-enc16-expected.txt:
* platform/wpe/fast/xsl/xslt-enc16to16-expected.txt:
* platform/wpe/fast/xsl/xslt-entity-expected.txt:
* platform/wpe/fast/xsl/xslt-extra-content-at-end-expected.txt:
* platform/wpe/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt:
* platform/wpe/fast/xsl/xslt-relative-path-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background-attachment-local-scrolling-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background-color-applied-to-rounded-inline-element-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background-color-border-box-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background-repeat-space-padding-box-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background-size-002-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background-size-applies-to-block-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background_color_padding_box-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background_position_three_four_values-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background_properties_greater_than_images-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background_repeat_space_border_box-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/background_repeat_space_content_box-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-002-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-003-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-005-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-006-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-007-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-008-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-009-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-010-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-011-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-012-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-013-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-014-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-015-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-016-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-017-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-clip-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-content-edge-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-different-width-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-initial-value-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-not-inherited-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-shorthand-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-style-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-style-002-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-style-003-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-style-004-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-style-005-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-sum-of-radii-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-sum-of-radii-002-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-with-three-values-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-with-two-values-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-002-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-003-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-004-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/border-top-right-radius-values-004-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/box-shadow-001-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/box-shadow-002-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/box-shadow-003-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/box-shadow-004-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/color-behind-images-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/none-as-image-layer-expected.txt:
* platform/wpe/ietestcenter/css3/bordersbackgrounds/order-of-images-expected.txt:
* platform/wpe/ietestcenter/css3/text/textshadow-001-expected.txt:
* platform/wpe/ietestcenter/css3/text/textshadow-002-expected.txt:
* platform/wpe/ietestcenter/css3/text/textshadow-003-expected.txt:
* platform/wpe/ietestcenter/css3/text/textshadow-004-expected.txt:
* platform/wpe/ietestcenter/css3/text/textshadow-005-expected.txt:
* platform/wpe/ietestcenter/css3/text/textshadow-006-expected.txt:
* platform/wpe/ietestcenter/css3/text/textshadow-007-expected.txt:
* platform/wpe/ietestcenter/css3/text/textshadow-008-expected.txt:
* platform/wpe/ietestcenter/css3/text/textshadow-009-expected.txt:
* platform/wpe/ietestcenter/css3/text/textshadow-010-expected.txt:
* platform/wpe/tables/layering/paint-test-layering-1-expected.txt:
* platform/wpe/tables/layering/paint-test-layering-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/45621-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug101674-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug10269-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug10269-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug10296-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug106158-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug106158-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug109043-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug113235-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug113235-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug113235-3-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug1163-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug11944-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug1224-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug1302-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug131020-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug131020_iframe-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug133756-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug139524-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug1430-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug14929-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug157890-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug16012-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug16252-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug17130-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug17130-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug17138-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug17587-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug18359-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug18664-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug18955-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug19356-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug19599-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug20579-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2065-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug20804-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2123-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug220536-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug22246-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug22246-2a-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug22246-3-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug22246-3a-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug23235-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug23299-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug24627-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2469-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2479-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2479-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2479-3-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2479-4-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2509-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug25663-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2585-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug27038-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug27038-3-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2886-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2886-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug29058-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug29157-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug29326-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2981-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug2997-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug30273-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug30332-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug30332-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug32205-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug32205-3-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug32447-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug3260-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug34538-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug3454-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug3977-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug42187-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug43039-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug43854-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug4427-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug44523-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug4501-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug45055-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug45055-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug4576-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug46368-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug46480-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug46480-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug46623-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug46623-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug48028-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug4803-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug51037-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug5188-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug5538-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug55694-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug57828-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug5835-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug58402-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug59354-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug60749-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug6184-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug6304-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug6404-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug6674-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug69187-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug69382-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug69382-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug7112-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug7112-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug73321-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug78162-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug80762-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug82946-1-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug82946-2-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug86708-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug8858-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug92143-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug93363-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug96334-expected.txt:
* platform/wpe/tables/mozilla/bugs/bug965-expected.txt:
* platform/wpe/tables/mozilla/collapsing_borders/bug41262-3-expected.txt:
* platform/wpe/tables/mozilla/core/bloomberg-expected.txt:
* platform/wpe/tables/mozilla/core/borders-expected.txt:
* platform/wpe/tables/mozilla/core/col_widths_auto_autoFix-expected.txt:
* platform/wpe/tables/mozilla/core/col_widths_fix_fixPer-expected.txt:
* platform/wpe/tables/mozilla/core/margins-expected.txt:
* platform/wpe/tables/mozilla/core/one_row-expected.txt:
* platform/wpe/tables/mozilla/core/row_span-expected.txt:
* platform/wpe/tables/mozilla/dom/appendCol2-expected.txt:
* platform/wpe/tables/mozilla/dom/appendRowsExpand1-expected.txt:
* platform/wpe/tables/mozilla/dom/appendTbodyExpand1-expected.txt:
* platform/wpe/tables/mozilla/dom/deleteCellsShrink1-expected.txt:
* platform/wpe/tables/mozilla/dom/deleteCellsShrink2-expected.txt:
* platform/wpe/tables/mozilla/dom/deleteRowsRebuild1-expected.txt:
* platform/wpe/tables/mozilla/dom/deleteRowsShrink1-expected.txt:
* platform/wpe/tables/mozilla/dom/deleteTbodyExpand1-expected.txt:
* platform/wpe/tables/mozilla/dom/insertCellsExpand1-expected.txt:
* platform/wpe/tables/mozilla/dom/insertCellsExpand2-expected.txt:
* platform/wpe/tables/mozilla/dom/insertCellsRebuild1-expected.txt:
* platform/wpe/tables/mozilla/dom/insertCellsRebuild2-expected.txt:
* platform/wpe/tables/mozilla/dom/insertRowsExpand1-expected.txt:
* platform/wpe/tables/mozilla/dom/insertRowsRebuild1-expected.txt:
* platform/wpe/tables/mozilla/dom/tableDom-expected.txt:
* platform/wpe/tables/mozilla/marvin/body_tfoot-expected.txt:
* platform/wpe/tables/mozilla/marvin/col_span-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_align_center-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_align_justify-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_align_left-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_align_right-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_span-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_width_pct-expected.txt:
* platform/wpe/tables/mozilla/marvin/colgroup_width_px-expected.txt:
* platform/wpe/tables/mozilla/marvin/table_rules_all-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_bgcolor_teal-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_bgcolor_teal_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_bgcolor_yellow-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_bgcolor_yellow_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_caption_align_bot-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_caption_align_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_cellpadding-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_cellpadding_pct-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_cellspacing-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_style-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_td_align_center-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_td_align_left-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_td_align_right-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_td_colspan-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_td_height-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_td_rowspan-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_td_width-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_th_align_center-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_th_align_left-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_th_align_right-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_th_colspan-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_th_height-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_th_rowspan-expected.txt:
* platform/wpe/tables/mozilla/marvin/tables_th_width-expected.txt:
* platform/wpe/tables/mozilla/marvin/tbody_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/tbody_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/tbody_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/tbody_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/td_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/td_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/td_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/td_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/tfoot_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/tfoot_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/tfoot_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/tfoot_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/th_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/th_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/th_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/th_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/thead_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/thead_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/thead_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/thead_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_aqua_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_black-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_black_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_blue-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_blue_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_fuchsia-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_fuchsia_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_gray-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_gray_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_green-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_green_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_lime-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_lime_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_maroon-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_maroon_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_navy-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_navy_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_olive-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_olive_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_purple-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_purple_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_red-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_red_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_silver-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_silver_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_teal-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_teal_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_white-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_white_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_yellow-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_bgcolor_yellow_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/tr_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_col_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_col_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_col_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_col_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_col_width_rel-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_colgroup_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_colgroup_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_colgroup_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_colgroup_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_colgroup_width_rel-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_table-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_table_bgcolor_name-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_table_bgcolor_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_table_style-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tbody_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tbody_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tbody_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tbody_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_td_align_center-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_td_align_left-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_td_align_right-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_td_bgcolor_name-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_td_bgcolor_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_td_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_td_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_td_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_td_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tfoot_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tfoot_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tfoot_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tfoot_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_th_align_center-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_th_align_left-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_th_align_right-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_th_bgcolor_name-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_th_bgcolor_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_th_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_th_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_th_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_th_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_thead_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_thead_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_thead_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_thead_valign_top-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tr_bgcolor_name-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tr_bgcolor_rgb-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tr_valign_baseline-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tr_valign_bottom-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tr_valign_middle-expected.txt:
* platform/wpe/tables/mozilla/marvin/x_tr_valign_top-expected.txt:
* platform/wpe/tables/mozilla/other/ms-expected.txt:
* platform/wpe/tables/mozilla/other/nested2-expected.txt:
* platform/wpe/tables/mozilla/other/test3-expected.txt:
* platform/wpe/tables/mozilla/other/test6-expected.txt:
* platform/wpe/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
* platform/wpe/tables/mozilla/other/wa_table_tr_align-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug10140-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug1128-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug11331-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug14007-2-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug17826-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug18770-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug19526-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug21518-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug22122-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug29058-2-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug32205-4-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug42043-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug59252-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug80762-2-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug8499-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/bugs/bug91057-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/core/captions1-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/core/captions2-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/core/captions3-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/core/col_span2-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/core/cols1-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/core/standards1-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/dom/appendCells1-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/dom/appendCellsRebuild1-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/dom/appendCol1-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/dom/insertTbodyExpand1-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/dom/insertTbodyRebuild1-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/marvin/table_frame_lhs-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/marvin/table_frame_rhs-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/marvin/table_rules_cols-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/marvin/tables_caption_align_left-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/marvin/tables_caption_align_right-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/marvin/tables_cellspacing_pct-expected.txt:
* platform/wpe/tables/mozilla_expected_failures/other/test4-expected.txt:
* platform/wpe/transforms/2d/compound-transforms-vs-containers-expected.txt:
* platform/wpe/transforms/2d/transform-borderbox-expected.txt:
* platform/wpe/transforms/2d/transform-fixed-container-expected.txt:
* platform/wpe/transforms/2d/transform-origin-borderbox-expected.txt:
* platform/wpe/transforms/3d/hit-testing/backface-hit-test-expected.txt:
* platform/wpe/transforms/3d/hit-testing/backface-no-transform-hit-test-expected.txt:
* platform/wpe/transforms/3d/point-mapping/3d-point-mapping-2-expected.txt:
* platform/wpe/transforms/3d/point-mapping/3d-point-mapping-3-expected.txt:
* platform/wpe/transforms/3d/point-mapping/3d-point-mapping-coplanar-expected.txt:
* platform/wpe/transforms/3d/point-mapping/3d-point-mapping-deep-expected.txt:
* platform/wpe/transforms/3d/point-mapping/3d-point-mapping-expected.txt:
* platform/wpe/transforms/3d/point-mapping/3d-point-mapping-origins-expected.txt:
* platform/wpe/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
* platform/wpe/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221953 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[iOS DnD] Support DataTransfer.getData and DataTransfer.setData when dragging or...
wenson_hsieh@apple.com [Wed, 13 Sep 2017 01:05:28 +0000 (01:05 +0000)]
[iOS DnD] Support DataTransfer.getData and DataTransfer.setData when dragging or dropping
https://bugs.webkit.org/show_bug.cgi?id=176672
<rdar://problem/34353723>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Makes several tweaks to support DataTransfer.getData and DataTransfer.setData when dragging and dropping on iOS.
See per-method changes below for more details. This patch also renames some old variable and property names
along the way, so they no longer reference "data interaction", and instead refer to the feature by its post-WWDC
name.

New test: DataInteractionTests.ExternalSourceInlineTextToFileInput
Modified: DataInteractionTests.CanStartDragOnDivWithDraggableAttribute
          DataInteractionTests.SinglePlainTextURLTypeIdentifiers
          DataInteractionTests.SinglePlainTextWordTypeIdentifiers

* platform/ios/AbstractPasteboard.h:
* platform/ios/PasteboardIOS.mm:
(WebCore::cocoaTypeFromHTMLClipboardType):

In cocoaTypeFromHTMLClipboardType, map the "text/plain" MIME type to the "public.plain-text" UTI. Previously,
this corresponded to "public.text", which is incorrect, since "public.text" also includes non-plain-text types
such as "public.html", thereby confusing NSItemProviders. Importantly, this makes it so that plain text strings
written via DataTransfer.setData() can actually be read back as a cocoa value, since "public.plain-text" is one
of the UTIs in +[NSString readableTypeIdentifiersForItemProvider].

(WebCore::Pasteboard::writeString):

Instead of writing { type : data } to the pasteboard, write { cocoaType : data }. It appears that this was
changed unintentionally in r156588 when upstreaming the iOS pasteboard implementation. This is made apparent by
how Pasteboard::readString() requests the cocoa UTI from the platform pasteboard, but Pasteboard::writeString()
sends the MIME type.

* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::filenamesForDataInteraction):
(WebCore::PlatformPasteboard::write):

When writing plain text or a URL, specify that the item wants inline style representation. This prevents odd and
unexpected behaviors (for instance, being able to drag plain text into the Files app as a file), but it also
makes getData() not bail and return the null string on drop, due to forFileDrag() being true in
DataTransfer::getData().

* platform/ios/WebItemProviderPasteboard.h:
* platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderRegistrationInfoList init]):
(uiPreferredPresentationStyle):
(-[WebItemProviderRegistrationInfoList itemProvider]):

Set the preferred presentation style when generating an item provider from a registration list.

(+[WebItemProviderLoadResult emptyLoadResult]):
(+[WebItemProviderLoadResult loadResultWithFileURLMap:presentationStyle:]):
(-[WebItemProviderLoadResult initWithFileURLMap:presentationStyle:]):
(-[WebItemProviderLoadResult fileURLForType:]):
(-[WebItemProviderLoadResult loadedFileURLs]):
(-[WebItemProviderLoadResult loadedTypeIdentifiers]):

Introduce WebItemProviderLoadResult, an object that encapsulates information needed to represent the contents of
an NSItemProvider dropped in web content. Previously, WebItemProviderPasteboard maintained an array of
dictionaries of UTI => file URL, where each dictionary represents where the dropped data for a given item
provider lives. Now that we additionally need to remember (for each item provider) whether we should consider
its data as a file upload, it's more helpful to have a separate object representing the "load results" of a
dropped item provider.

(-[WebItemProviderPasteboard init]):
(-[WebItemProviderPasteboard pasteboardTypes]):
(-[WebItemProviderPasteboard setItemProviders:]):
(-[WebItemProviderPasteboard _preLoadedDataConformingToType:forItemProviderAtIndex:]):
(-[WebItemProviderPasteboard droppedFileURLs]):

Respect item provider load results that should not be exposed as a file to the page.

(-[WebItemProviderPasteboard numberOfFiles]):

Respect item providers with UIPreferredPresentationStyleInline by not counting them towards the number of files.

(-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]):

Adjust for the transition from an array of dictionaries representing loaded item providers to an array of
WebItemProviderLoadResults.

(-[WebItemProviderPasteboard fileURLsForDataInteraction]): Deleted.
* platform/mac/DragDataMac.mm:
(WebCore::DragData::containsFiles const):

DragData::containsFiles previously only considered whether or not particular UTIs appear in the pasteboard. In
the case of Mac, this is NSFilesPromisePboardType and NSFilenamesPboardType, but in the case of iOS, this is a
much broader category (anything conforming to "public.content"), since files are not exposed explicitly as
"promise" or "file" types in the list of registered UTIs. This caused us to always bail in
DataTransfer.getData() on drop on iOS, since we will always believe there's a file on the pasteboard if there's
anything conforming to "public.content" at all.

To fix this and simplify the code at the same time, we simply replace the currently implementation of
DragData::containsFiles to return true iff the number of files is nonzero. On Mac, DragData::numberOfFiles
checks the same UTIs as DragData::containsFiles (NSFilesPromisePboardType and NSFilenamesPboardType), but
additionally counts the number of file URLs corresponding to those UTIs.

On iOS, the implementation of numberOfFiles is new to iOS 11, and relevant only in the drag and drop flow.
Previously, we would consider an item provider to "contain" a file if it had a UTI conforming to one of the UTIs
acceptable for drag and drop (at the time of writing, these are ["public.content", "public.zip",
"public.folder"]). With this patch, anything conforming to these UTIs will continue to be represented as files,
but importantly, if an item provider indicates that it should be represented inline (i.e. a plain text
selection), then we don't consider that item provider as vending a file. This allows us to distinguish between
cases where we are dragging a plain text selection over a file input, and when we are dragging a plain text file.
In both cases, "public.plain-text" is offered as a registered UTI, but in the former, the item provider should
indicate that inline presentation style is preferred. Refer to <rdar://problem/32202542> for more details.

Tools:

Adds new tests and tweaks existing DataInteractionTests to cover the tweaks made in this patch.
SinglePlainTextURLTypeIdentifiers: Verify that inline presentation style is requested when dragging plaintext.
SinglePlainTextWordTypeIdentifiers: Verify that inline presentation style is requested when dragging a link.
ExternalSourceInlineTextToFileInput:
        Verify that an item provider marked as preferring inline presentation does not trigger file uploads by
        dragging a piece of inline text into a file input.
CanStartDragOnDivWithDraggableAttribute:
        Verify that DataTransfer.setData and DataTransfer.getData work as expected by moving a draggable div.
        The test harness writes the id of the draggable div via the DataTransfer, and upon drop, reads the id
        back to figure out which element to append to the drop destination.

* TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221952 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoQualifiedName::init should assume AtomicStrings::init was already called
commit-queue@webkit.org [Wed, 13 Sep 2017 00:31:19 +0000 (00:31 +0000)]
QualifiedName::init should assume AtomicStrings::init was already called
https://bugs.webkit.org/show_bug.cgi?id=176639

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-09-12
Reviewed by Sam Weinig.

Source/WebCore:

* dom/QualifiedName.cpp:
(WebCore::QualifiedName::init):
All callers of QualifiedName::init precede it with their own call to
AtomicString::init, so QualifiedName doesn't need to do it.

Source/WTF:

* wtf/NeverDestroyed.h:
(WTF::LazyNeverDestroyed::isConstructed const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221951 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnskip fast/text/system-font-synthetic-italic.html
mmaxfield@apple.com [Wed, 13 Sep 2017 00:27:46 +0000 (00:27 +0000)]
Unskip fast/text/system-font-synthetic-italic.html
https://bugs.webkit.org/show_bug.cgi?id=175944
Source/WebCore:

<rdar://problem/32864306>

Reviewed by Jon Lee.

Our buildbots now all have this symbol.

* platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
(WebCore::FontFamilySpecificationCoreText::fontRanges const):

Source/WebCore/PAL:

Reviewed by Jon Lee.

* pal/spi/cocoa/CoreTextSPI.h:

LayoutTests:

<rdar://problem/32864306>

Reviewed by Jon Lee.

* platform/mac-highsierra/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221950 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoString.prototype.replace() puts extra '<' in result when a named capture reference...
msaboff@apple.com [Wed, 13 Sep 2017 00:20:36 +0000 (00:20 +0000)]
String.prototype.replace() puts extra '<' in result when a named capture reference is used without named captures in the RegExp
https://bugs.webkit.org/show_bug.cgi?id=176814

Reviewed by Mark Lam.

Source/JavaScriptCore:

The copy and advance indices where off by one and needed a little fine tuning.

* runtime/StringPrototype.cpp:
(JSC::substituteBackreferencesSlow):

LayoutTests:

New regression test case.

* js/regexp-named-capture-groups-expected.txt:
* js/script-tests/regexp-named-capture-groups.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221949 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoASSERTION FAILED: !m_valueOrException under FontFaceSet::completedLoading loading...
mmaxfield@apple.com [Wed, 13 Sep 2017 00:13:01 +0000 (00:13 +0000)]
ASSERTION FAILED: !m_valueOrException under FontFaceSet::completedLoading loading a Serious Eats page
https://bugs.webkit.org/show_bug.cgi?id=175899

Reviewed by Tim Horton.

Source/WebCore:

Slight style update to r221835. Also adds a test.

Test: fast/text/document-fonts-while-loading-crash.html

* css/CSSFontFaceSet.h:
* css/FontFaceSet.cpp:
(WebCore::FontFaceSet::FontFaceSet):

LayoutTests:

* fast/text/document-fonts-while-loading-crash-expected.txt: Added.
* fast/text/document-fonts-while-loading-crash.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221948 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoInline ParserUtilities.h
mmaxfield@apple.com [Wed, 13 Sep 2017 00:07:10 +0000 (00:07 +0000)]
Inline ParserUtilities.h
https://bugs.webkit.org/show_bug.cgi?id=176572

Reviewed by Darin Adler.

Its contents are only ever used from SVG files which also include SVGParserUtilities.h.

No new tests because there is no behavior change.

* WebCore.xcodeproj/project.pbxproj:
* platform/text/ParserUtilities.h: Removed.
* svg/SVGParserUtilities.h:
(WebCore::skipString):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221946 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoDragging & dropping a file creates an attachment element even when it's disabled
rniwa@webkit.org [Tue, 12 Sep 2017 23:31:14 +0000 (23:31 +0000)]
Dragging & dropping a file creates an attachment element even when it's disabled
https://bugs.webkit.org/show_bug.cgi?id=176769

Reviewed by Tim Horton.

Source/WebCore:

The bug that dropping a file always created an attachment element even when it's disabled by settings
was caused by WebContentReader::readFilenames always creating an attachment element. Fixed this by
checking the runtime flag. The fix is tested by drag-files-to-editable-element-as-URLs.html

To fix the bug that HTMLAttachmentElement is always exposed on the global object even when it's disabled
by settings, replaced the setting to enable attachment element by an equivalent runtime enabled flag,
and hid both the interface as well as the element behind it. Fixed various bugs in our code generator
to make this work.

Tests: editing/pasteboard/drag-files-to-editable-element-as-URLs.html
       editing/pasteboard/drag-files-to-editable-element-as-attachment.html

* bindings/js/WebCoreBuiltinNames.h: Added symbols used in the generated code.
* dom/make_event_factory.pl:
(defaultItemFactory): Replaced "runtimeConditonal" option by "runtimeEnabled".
(generateImplementation):
* dom/make_names.pl:
(defaultTagPropertyHash):
(printConstructorInterior): Return a HTMLUnknownElement if the element is disabled by a runtime flag.
(printTypeHelpers): Make is<HTMLAttachmentElement>(~) returns false when the feature is disabled by
checking whether the given element is an instance of HTMLUnknownElement.
(printWrapperFunctions): Simplified this code by matching the code for settingsConditional.
* editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readFilenames): Fixed the bug that this code was always creating
an attachment element even when the feature is disabled.
* html/HTMLAttachmentElement.idl: Hide this behind a runtime flag.
* html/HTMLTagNames.in:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setAttachmentElementEnabled): Added.
(WebCore::RuntimeEnabledFeatures::attachmentElementEnabled const): Added.
* page/Settings.in: Removed attachmentElementEnabled.

Source/WebKit:

* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAttachmentElementEnabled):
(WKPreferencesGetAttachmentElementEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Source/WebKitLegacy/mac:

* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

Added a webkit-test-runner flag to enable attachment element via runtime flag since this feature is now hidden
behind a runtime-enabled flag which needs to be set at the time of global object initialization.

* DumpRenderTree/TestOptions.h:
(TestOptions): Added.
* DumpRenderTree/TestOptions.mm:
(TestOptions::TestOptions):
* DumpRenderTree/mac/DumpRenderTree.mm:
(setWebPreferencesForTestOptions):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):
* WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::hasSameInitializationOptions const):
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateWebView):

LayoutTests:

Updated the existing attachment element tests to use the newly added webkitt-test-runner flag,
and added a new test (drag-files-to-editable-element-as-URLs.html) to make sure we don't create
an attachment element when dropping a file.

* editing/pasteboard/copy-paste-attachment-expected.txt:
* editing/pasteboard/copy-paste-attachment.html:
* editing/pasteboard/drag-files-to-editable-element-as-URLs-expected.txt: Added.
* editing/pasteboard/drag-files-to-editable-element-as-URLs.html: Copied from
drag-files-to-editable-element.html.
* editing/pasteboard/drag-files-to-editable-element-as-attachment-expected.txt: Renamed from
drag-files-to-editable-element-expected.txt.
* editing/pasteboard/drag-files-to-editable-element-as-attachment.html: Renamed from
drag-files-to-editable-element.html.
* editing/pasteboard/drag-files-to-editable-element-expected.txt: Removed.
* editing/pasteboard/drag-files-to-editable-element.html: Removed.
* fast/attachment/attachment-action-expected.html:
* fast/attachment/attachment-action.html:
* fast/attachment/attachment-borderless-expected-mismatch.html:
* fast/attachment/attachment-borderless.html:
* fast/attachment/attachment-default-icon-expected.html:
* fast/attachment/attachment-default-icon.html:
* fast/attachment/attachment-dom.html:
* fast/attachment/attachment-folder-icon-expected.html:
* fast/attachment/attachment-folder-icon.html:
* fast/attachment/attachment-icon-from-file-extension-expected.html:
* fast/attachment/attachment-icon-from-file-extension.html:
* fast/attachment/attachment-label-highlight.html:
* fast/attachment/attachment-progress.html:
* fast/attachment/attachment-rendering.html:
* fast/attachment/attachment-respects-css-size.html:
* fast/attachment/attachment-select-on-click-inside-user-select-all.html:
* fast/attachment/attachment-select-on-click.html:
* fast/attachment/attachment-subtitle-resize.html:
* fast/attachment/attachment-subtitle.html:
* fast/attachment/attachment-title.html:
* fast/attachment/attachment-type-attribute-expected.html:
* fast/attachment/attachment-type-attribute.html:
* fast/attachment/attachment-uti-expected.html:
* fast/attachment/attachment-uti.html:
* fast/attachment/attachment-wrapping-action-expected-mismatch.html:
* fast/attachment/attachment-wrapping-action.html:
* platform/gtk/TestExpectations:
* platform/win/TestExpectations:
* platform/wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221944 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Add Experimental setting for new Network tab
commit-queue@webkit.org [Tue, 12 Sep 2017 23:20:54 +0000 (23:20 +0000)]
Web Inspector: Add Experimental setting for new Network tab
https://bugs.webkit.org/show_bug.cgi?id=176750

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-09-12
Reviewed by Matt Baker.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Base/Main.js:
(WI.contentLoaded):
New files and strings.

* UserInterface/Base/Setting.js:
New experimental setting.

* UserInterface/Views/LegacyNetworkTabContentView.js:
(WI.LegacyNetworkTabContentView.isTabAllowed):
Legacy tab availability depends on the setting.

* UserInterface/Views/NetworkTabContentView.js:
(WI.NetworkTabContentView):
(WI.NetworkTabContentView.isTabAllowed):
(WI.NetworkTabContentView.prototype.get contentBrowser):
(WI.NetworkTabContentView.prototype.get type):
(WI.NetworkTabContentView.prototype.canShowRepresentedObject):
(WI.NetworkTabContentView.prototype.get supportsSplitContentBrowser):
Modern network tab. Only difference right now is it allows the split console.

* UserInterface/Views/NetworkTableContentView.js: Added.
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get selectionPathComponents):
(WI.NetworkTableContentView.prototype.get navigationItems):
(WI.NetworkTableContentView.prototype.shown):
(WI.NetworkTableContentView.prototype.hidden):
(WI.NetworkTableContentView.prototype.closed):
(WI.NetworkTableContentView.prototype.reset):
(WI.NetworkTableContentView.prototype.layout):
(WI.NetworkTableContentView.prototype.handleClearShortcut):
(WI.NetworkTableContentView.prototype._resourceCachingDisabledSettingChanged):
(WI.NetworkTableContentView.prototype._toggleDisableResourceCache):
Add a stubbed out ContentView. This will be implemented next.

* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
Add an experimental setting to toggle the new network tab. Only
show the experimental settings that relate to the debuggable target.
For JSContext targets, none of the settings are applicable, so don't
even show the experimental section.

* UserInterface/Views/TabBrowser.js:
(WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
Treat all network tabs the same.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221943 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoIntroduce a RecordData for Cache to efficiently check whether it matches a correspond...
commit-queue@webkit.org [Tue, 12 Sep 2017 23:13:17 +0000 (23:13 +0000)]
Introduce a RecordData for Cache to efficiently check whether it matches a corresponding request or not
https://bugs.webkit.org/show_bug.cgi?id=176579

Patch by Youenn Fablet <youenn@apple.com> on 2017-09-12
Reviewed by Alex Christensen.

Source/WebCore:

No change of behavior.

Introducing another version of queryCacheMatch used for the NetworkProcess implementation of the Cache.
Exporting the copy of a response body to be used also there.

* Modules/cache/DOMCacheEngine.cpp:
(WebCore::DOMCacheEngine::matchURLs):
(WebCore::DOMCacheEngine::queryCacheMatch):
(WebCore::DOMCacheEngine::copyResponseBody):
* Modules/cache/DOMCacheEngine.h:

Source/WebKit:

Introducing RecordData that splits its stored data in mandatory data,
used to check a record with a request and optional data that is
necessary to build a CacheStorageEngine::Record used by WebProcess.

The mandatory data contains the URL, Vary header information and identifiers.
Adding routines to go from a Record to RecordData and vice versa.
Storing in CacheStorage::Cache RecordData instead of Record.

* NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::queryCache):
(WebKit::CacheStorage::updateVaryInformation):
(WebKit::CacheStorage::toRecord):
(WebKit::CacheStorage::toRecordData):
(WebKit::CacheStorage::Cache::retrieveRecords const):
(WebKit::CacheStorage::Cache::addRecord):
(WebKit::CacheStorage::Cache::recordsFromURL):
(WebKit::CacheStorage::Cache::recordsFromURL const):
(WebKit::CacheStorage::Cache::put):
(WebKit::CacheStorage::Cache::writeRecordToDisk):
(WebKit::CacheStorage::Cache::removeRecordFromDisk):
* NetworkProcess/cache/CacheStorageEngineCache.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221942 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAnimationBase should point to Element instead of RenderElement
antti@apple.com [Tue, 12 Sep 2017 22:09:47 +0000 (22:09 +0000)]
AnimationBase should point to Element instead of RenderElement
https://bugs.webkit.org/show_bug.cgi?id=176807

Reviewed by Andreas Kling.

This is a step towards making animation system operate on elements and styles instead renderers.

No functional changes.

* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::AnimationBase):
(WebCore::AnimationBase::renderer const):
(WebCore::AnimationBase::compositedRenderer const):
(WebCore::AnimationBase::updateStateMachine):
(WebCore::AnimationBase::fireAnimationEventsIfNeeded):
(WebCore::AnimationBase::timeToNextService):
(WebCore::AnimationBase::freezeAtTime):
(WebCore::AnimationBase::getElapsedTime const):
* page/animation/AnimationBase.h:
(WebCore::AnimationBase::clear):
(WebCore::AnimationBase::renderer const): Deleted.
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::shouldSendEventForListener const):
(WebCore::ImplicitAnimation::computeExtentOfTransformAnimation const):
(WebCore::ImplicitAnimation::startAnimation):
(WebCore::ImplicitAnimation::pauseAnimation):
(WebCore::ImplicitAnimation::endAnimation):
(WebCore::ImplicitAnimation::sendTransitionEvent):
(WebCore::ImplicitAnimation::reset):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::getAnimatedStyle):
(WebCore::KeyframeAnimation::computeExtentOfTransformAnimation const):
(WebCore::KeyframeAnimation::startAnimation):
(WebCore::KeyframeAnimation::pauseAnimation):
(WebCore::KeyframeAnimation::endAnimation):
(WebCore::KeyframeAnimation::shouldSendEventForListener const):
(WebCore::KeyframeAnimation::sendAnimationEvent):
(WebCore::KeyframeAnimation::resolveKeyframeStyles):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221941 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWSL should allow you to say "protocol Foo : Bar { ... }"
fpizlo@apple.com [Tue, 12 Sep 2017 22:04:01 +0000 (22:04 +0000)]
WSL should allow you to say "protocol Foo : Bar { ... }"
https://bugs.webkit.org/show_bug.cgi?id=176238

Reviewed by Mylex Maxfield.

This makes protocol "subtyping" work. It's not really subtyping. Protocol A inherits protocol B
if every signature in B can be resolved against some signature in A. Also, you can explicitly
subtype protocols using extends syntax ("protocol Foo : Bar, Baz { ... }").

Also makes the diagnostics when type variable constraints fail a _lot_ better. This will even
tell you diagnostics about why a function didn't match when protocols are not inheriting, and
then it will tell you why the inheritance failed.

* WebGPUShadingLanguageRI/All.js:
* WebGPUShadingLanguageRI/AutoWrapper.js:
(AutoWrapper.prototype.visitTypeVariable):
(AutoWrapper):
* WebGPUShadingLanguageRI/Checker.js:
(Checker.prototype.visitProtocolDecl.set throw):
* WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
(ConstexprTypeParameter.prototype.verifyAsArgument):
(ConstexprTypeParameter.prototype.verifyAsParameter):
* WebGPUShadingLanguageRI/FlattenProtocolExtends.js: Added.
* WebGPUShadingLanguageRI/Func.js:
(Func.prototype.get typeParametersForCallResolution):
* WebGPUShadingLanguageRI/InferTypesForCall.js:
(inferTypesForCall):
* WebGPUShadingLanguageRI/IntLiteralType.js:
(IntLiteralType.prototype.verifyAsArgument):
* WebGPUShadingLanguageRI/NameResolver.js:
(NameResolver.prototype.visitProtocolDecl):
(NameResolver.prototype.visitProtocolRef): Deleted.
(NameResolver.prototype.visitProtocolFuncDecl): Deleted.
(NameResolver.prototype.visitTypeDef): Deleted.
(NameResolver.prototype.visitStructType): Deleted.
(NameResolver.prototype._resolveTypeArguments): Deleted.
(NameResolver.prototype.visitTypeRef): Deleted.
(NameResolver.prototype.visitReferenceType): Deleted.
(NameResolver.prototype.visitVariableDecl): Deleted.
(NameResolver.prototype.visitVariableRef): Deleted.
(NameResolver.prototype.visitReturn): Deleted.
(NameResolver.prototype.visitCallExpression): Deleted.
* WebGPUShadingLanguageRI/Node.js:
(Node.prototype.equals):
* WebGPUShadingLanguageRI/NullType.js:
(NullType.prototype.verifyAsArgument):
* WebGPUShadingLanguageRI/Parse.js:
(parseProtocolDecl):
* WebGPUShadingLanguageRI/Prepare.js:
(prepare):
* WebGPUShadingLanguageRI/ProtocolDecl.js:
(ProtocolDecl): Deleted.
(ProtocolDecl.prototype.add): Deleted.
(ProtocolDecl.prototype.get signatures): Deleted.
(ProtocolDecl.prototype.signaturesByName): Deleted.
(ProtocolDecl.prototype.get typeVariable): Deleted.
(ProtocolDecl.prototype.signaturesByNameWithTypeVariable): Deleted.
(ProtocolDecl.prototype.inherits): Deleted.
(ProtocolDecl.prototype.hasHeir): Deleted.
(ProtocolDecl.prototype.toString): Deleted.
* WebGPUShadingLanguageRI/ProtocolFuncDecl.js:
(ProtocolFuncDecl.prototype.get typeParametersForCallResolution):
(ProtocolFuncDecl):
* WebGPUShadingLanguageRI/Rewriter.js:
(Rewriter.prototype.visitProtocolDecl):
* WebGPUShadingLanguageRI/Test.html:
* WebGPUShadingLanguageRI/Test.js:
(TEST_nullTypeVariableUnify):
(TEST_simpleProtocolExtends):
(TEST_protocolExtendsTwo):
* WebGPUShadingLanguageRI/Type.js:
(Type.prototype.inherits):
* WebGPUShadingLanguageRI/TypeDefResolver.js:
(TypeDefResolver.prototype.visitTypeRef):
(TypeDefResolver):
* WebGPUShadingLanguageRI/TypeVariable.js:
(TypeVariable.prototype.inherits):
(TypeVariable.prototype.verifyAsArgument):
(TypeVariable.prototype.verifyAsParameter):
* WebGPUShadingLanguageRI/UnificationContext.js:
(UnificationContext.prototype.verify):
* WebGPUShadingLanguageRI/Visitor.js:
(Visitor.prototype.visitProtocolDecl):
(Visitor.prototype.visitTypeRef): Deleted.
(Visitor.prototype.visitNativeType): Deleted.
(Visitor.prototype.visitNativeTypeInstance): Deleted.
(Visitor.prototype.visitTypeDef): Deleted.
(Visitor.prototype.visitStructType): Deleted.
(Visitor.prototype.visitTypeVariable): Deleted.
(Visitor.prototype.visitConstexprTypeParameter): Deleted.
(Visitor.prototype.visitField): Deleted.
(Visitor.prototype.visitElementalType): Deleted.
(Visitor.prototype.visitReferenceType): Deleted.
(Visitor.prototype.visitPtrType): Deleted.
(Visitor.prototype.visitArrayRefType): Deleted.
(Visitor.prototype.visitArrayType): Deleted.
(Visitor.prototype.visitVariableDecl): Deleted.
(Visitor.prototype.visitAssignment): Deleted.
(Visitor.prototype.visitDereferenceExpression): Deleted.
(Visitor.prototype.visitDotExpression): Deleted.
(Visitor.prototype.visitMakePtrExpression): Deleted.
(Visitor.prototype.visitVariableRef): Deleted.
(Visitor.prototype.visitIfStatement): Deleted.
(Visitor.prototype.visitWhileLoop): Deleted.
(Visitor.prototype.visitDoWhileLoop): Deleted.
(Visitor.prototype.visitForLoop): Deleted.
(Visitor.prototype.visitReturn): Deleted.
(Visitor.prototype.visitContinue): Deleted.
(Visitor.prototype.visitBreak): Deleted.
(Visitor.prototype.visitIntLiteral): Deleted.
(Visitor.prototype.visitIntLiteralType): Deleted.
(Visitor.prototype.visitUintLiteral): Deleted.
(Visitor.prototype.visitNullLiteral): Deleted.
(Visitor.prototype.visitBoolLiteral): Deleted.
(Visitor.prototype.visitNullType): Deleted.
(Visitor.prototype.visitCallExpression): Deleted.
(Visitor.prototype.visitLogicalNot): Deleted.
(Visitor.prototype.visitFunctionLikeBlock): Deleted.
* WebGPUShadingLanguageRI/WrapChecker.js:
(WrapChecker.prototype.visitTypeVariable):
(WrapChecker):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221940 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[Win] Add Modules/fetch to list of forwarding headers folders.
pvollan@apple.com [Tue, 12 Sep 2017 21:12:57 +0000 (21:12 +0000)]
[Win] Add Modules/fetch to list of forwarding headers folders.
https://bugs.webkit.org/show_bug.cgi?id=176747

Reviewed by Brent Fulgham.

* PlatformWin.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221939 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[GTK] Unreviewed, update crash expectations after r221925
mcatanzaro@igalia.com [Tue, 12 Sep 2017 20:44:11 +0000 (20:44 +0000)]
[GTK] Unreviewed, update crash expectations after r221925

* platform/gtk/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221938 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[MSE] Don't increase the reported totalFrameDelay for non-displayed frames (or frames...
jer.noble@apple.com [Tue, 12 Sep 2017 20:14:57 +0000 (20:14 +0000)]
[MSE] Don't increase the reported totalFrameDelay for non-displayed frames (or frames coming in while paused).
https://bugs.webkit.org/show_bug.cgi?id=175900

Reviewed by Eric Carlson.

When seeking to a specific time, the decompression session necessarily needs to be fed samples from before that
time (i.e., all samples from the previous I-frame forward). These shouldn't contribute to the "total frame
delay" metric. Neither should samples delivered when the video is paused (like, during seeking), as a frame can't
be "late" if time is not moving forward.

* platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput):
* platform/cf/CoreMediaSoftLink.cpp:
* platform/cf/CoreMediaSoftLink.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221937 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoGtk build fix for "Finish off the FormData implementation" - https://bugs.webkit...
weinig@apple.com [Tue, 12 Sep 2017 20:03:43 +0000 (20:03 +0000)]
Gtk build fix for "Finish off the FormData implementation" - https://bugs.webkit.org/show_bug.cgi?id=176659

* fileapi/Blob.cpp:
(WebCore::Blob::Blob):
* fileapi/Blob.h:
* fileapi/File.cpp:
(WebCore::File::File):

    Replace copy constructor with a tagged constructor.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221936 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoREGRESSION: 3 stress/op_mod (and op_div) tests timing out on Debug JSC bots.
mark.lam@apple.com [Tue, 12 Sep 2017 19:46:41 +0000 (19:46 +0000)]
REGRESSION: 3 stress/op_mod (and op_div) tests timing out on Debug JSC bots.
https://bugs.webkit.org/show_bug.cgi?id=176630

Reviewed by JF Bastien.

Debug builds are just slow, and these tests do a lot.  They pass when I run them
locally on my MacBook Pro.  So, I'm bumping their timing multiplier to 2.0x as
a speculative fix for the bots that are seeing these fail.

I also undid the skipping of the op_mod tests for debug builds.

* stress/op_div-ConstVar.js:
* stress/op_div-VarConst.js:
* stress/op_div-VarVar.js:
* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221935 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoTried to fix the iOS 10 build after r221930.
mitz@apple.com [Tue, 12 Sep 2017 19:39:56 +0000 (19:39 +0000)]
Tried to fix the iOS 10 build after r221930.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setDragInteractionPolicy:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221934 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[WebGL] VideoTextureCopierCV doesn't correctly restore vertex attribute state
dino@apple.com [Tue, 12 Sep 2017 19:28:54 +0000 (19:28 +0000)]
[WebGL] VideoTextureCopierCV doesn't correctly restore vertex attribute state
https://bugs.webkit.org/show_bug.cgi?id=176771
<rdar://problem/34386621>

Reviewed by Antoine Quint.

Source/WebCore:

The OpenGL context in VideoTextureCopierCV wasn't being restored to
the state it had before rendering a video to a texture. Specifically
the vertex attribute values were never recorded by the state saver.

Update the existing test of VideoTextureCopierCV so that it is
explicitly doing something different from the WebCore code, which
means that state will have to be correctly restored for the test
to pass.

* platform/graphics/cv/VideoTextureCopierCV.cpp:
(WebCore::VideoTextureCopierCV::copyVideoTextureToPlatformTexture): Make sure
to record the vertex attribute state once we know the location of the position attribute.
(WebCore::VideoTextureCopierCV::GC3DStateSaver::GC3DStateSaver):
(WebCore::VideoTextureCopierCV::GC3DStateSaver::~GC3DStateSaver):
(WebCore::VideoTextureCopierCV::GC3DStateSaver::saveVertexAttribState): Save all the
applicable vertex attribute state information.
* platform/graphics/cv/VideoTextureCopierCV.h: GC3DStateSaver can use a reference
to the GC3D rather than a pointer.

LayoutTests:

Tweak this test to make sure it does something different from
the code in WebCore to render a video into a texture, thus
ensuring that we're testing state is correctly restored.

* fast/canvas/webgl/texImage2D-video-flipY-true.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221933 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[WebGL] accelerated texImage2D for video doesn't respect flipY
dino@apple.com [Tue, 12 Sep 2017 19:28:29 +0000 (19:28 +0000)]
[WebGL] accelerated texImage2D for video doesn't respect flipY
https://bugs.webkit.org/show_bug.cgi?id=176491
<rdar://problem/33833511>

Reviewed by Jer Noble.

(Take 2 - this was rolled out due to a test failure, but the following
commit will fix that)

Source/WebCore:

Previously, if UNPACK_FLIP_Y_WEBGL was set to true, we'd either fall
back to software or fail to upload texture data. Fix this by intercepting
the texImage2D call, checking the orientation of the video, and running
a small shader program to flip it if necessary.

While there, implement UNPACK_PREMULTIPLY_ALPHA_WEBGL as well, although
none of our media decoders support video with alpha, so unfortunately
this will have no visible change.

Tests: fast/canvas/webgl/texImage2D-video-flipY-false.html
       fast/canvas/webgl/texImage2D-video-flipY-true.html

* platform/cocoa/CoreVideoSoftLink.cpp: Add link to CVOpenGL(ES)TextureGetCleanTexCoords,
which is used to check the orientation of the source video.
* platform/cocoa/CoreVideoSoftLink.h:

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture): We can
now handle flipped or premultiplied requests.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture): Ditto.

* platform/graphics/cv/VideoTextureCopierCV.cpp:
(WebCore::VideoTextureCopierCV::VideoTextureCopierCV): Rename readFramebuffer to
simply framebuffer.
(WebCore::VideoTextureCopierCV::~VideoTextureCopierCV): Delete the program and buffer
if they were created.
(WebCore::VideoTextureCopierCV::initializeContextObjects): Sets up the shader program
and the vertex buffer for drawing. Also records the location of the uniforms.
(WebCore::VideoTextureCopierCV::copyVideoTextureToPlatformTexture): Create a new
framebuffer object, and render the video texture into that framebuffer using a
shader that can flip the coordinates.
(WebCore::VideoTextureCopierCV::GC3DStateSaver::GC3DStateSaver): Helper to restore
the state of the user's GraphicsContext3D while we're intercepting calls.
(WebCore::VideoTextureCopierCV::GC3DStateSaver::~GC3DStateSaver):
* platform/graphics/cv/VideoTextureCopierCV.h:

* platform/graphics/GraphicsContext3D.h: Add two new entry points, for direct shader
compilation and attribute access. This avoids going through ANGLE.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::compileShader):
(WebCore::GraphicsContext3D::compileShaderDirect):
(WebCore::GraphicsContext3D::getAttribLocationDirect):

LayoutTests:

Test that exercises UNPACK_FLIP_Y_WEBGL for video on the accelerated
path.

* fast/canvas/webgl/resources/orientation-flipped.mp4: Added.
* fast/canvas/webgl/resources/orientation-normal.mp4: Added.
* fast/canvas/webgl/texImage2D-video-flipY-false-expected.txt: Added.
* fast/canvas/webgl/texImage2D-video-flipY-false.html: Added.
* fast/canvas/webgl/texImage2D-video-flipY-true-expected.txt: Added.
* fast/canvas/webgl/texImage2D-video-flipY-true.html: Added.
* platform/ios/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221932 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[css-grid] Stretching auto tracks should be done as part of the track sizing algorithm
rego@igalia.com [Tue, 12 Sep 2017 19:19:45 +0000 (19:19 +0000)]
[css-grid] Stretching auto tracks should be done as part of the track sizing algorithm
https://bugs.webkit.org/show_bug.cgi?id=176783

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Import changes on the test related to the new behavior.

* web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-021.html:

Source/WebCore:

CSS WG has agreed to modify the track sizing algorithm to include
a new step: https://drafts.csswg.org/css-grid/#algo-stretch
We used to do the stretch of the "auto" tracks at the end of
the track sizing algorithm, however this change integrates it
into the algorithm itself as the last step.
See: https://github.com/w3c/csswg-drafts/issues/1150

The patch moves the method
RenderGrid::applyStretchAlignmentToTracksIfNeeded() to
GridTrackSizingAlgorithm::stretchAutoTracks().
And then modifies the grid track sizing algorithm to execute
the new step.

This patch uses the WPT test updated to check the new behavior.

* rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithm::initializeTrackSizes): Initialize
the list of auto tracks.
(WebCore::GridTrackSizingAlgorithm::stretchFlexibleTracks): Add
early return if there are not flexible tracks.
(WebCore::GridTrackSizingAlgorithm::stretchAutoTracks): Code moved from
RenderGrid::applyStretchAlignmentToTracksIfNeeded().
(WebCore::GridTrackSizingAlgorithm::setup): Reset list of auto tracks.
(WebCore::GridTrackSizingAlgorithm::run): Add new step
stretchAutoTracks().
(WebCore::GridTrackSizingAlgorithm::reset): Reset auto tracks.
* rendering/GridTrackSizingAlgorithm.h: Add m_autoSizedTracksIndex.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock): Avoid applying stretch here.
(WebCore::RenderGrid::contentAlignmentNormalBehaviorGrid): Make public.
(WebCore::RenderGrid::applyStretchAlignmentToTracksIfNeeded): Moved to
GridTrackSizingAlgorithm::stretchAutoTracks().
* rendering/RenderGrid.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221931 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUpdate availability annotations to match the macOS 10.13 and iOS 11.0 GM seed SDKs
mitz@apple.com [Tue, 12 Sep 2017 19:17:35 +0000 (19:17 +0000)]
Update availability annotations to match the macOS 10.13 and iOS 11.0 GM seed SDKs
https://bugs.webkit.org/show_bug.cgi?id=176793

Reviewed by Tim Horton.

Changed WK_MAC_TBA and WK_IOS_TBA to 10.13 and 11.0, respectively, in all declarations that
appear in the GM seed SDKs. Additional changes and exceptions are noted below.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added missing availability annotation to
  -_webView:dataOwnerForDropSession: and -_webView:dataOwnerForDragSession:.

* UIProcess/API/Cocoa/WKWebViewPrivate.h: Removed rednundant
  __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000 guards.

* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: Added missing availability annotation to
  -_setResourceLoadStatisticsTestingCallback:.

* UIProcess/API/Cocoa/_WKFullscreenDelegate.h: Added missing availability annotation.

* UIProcess/API/Cocoa/_WKLinkIconParameters.h: Added availability annotation that had been
  missing since macOS 10.12.3 and iOS 10.3. Corrected annotation for _WKLinkIconParameters.

* UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: Added missing TBA annotation to
  _resourceLoadStatisticsDirectory.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h: Removed iOS
  availability from macOS-only declaration and vice versa.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm:
(-[WKWebProcessPlugInRangeHandle detectDataWithTypes:context:]): Removed an availability
  annotation from this method implementation.

* Shared/API/Cocoa/WKDragDestinationAction.h:
* UIProcess/API/Cocoa/WKContentRuleList.h:
* UIProcess/API/Cocoa/WKContentRuleListStore.h:
* UIProcess/API/Cocoa/WKError.h:
* UIProcess/API/Cocoa/WKFrameInfo.h:
* UIProcess/API/Cocoa/WKHTTPCookieStore.h:
* UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/API/Cocoa/WKSnapshotConfiguration.h:
* UIProcess/API/Cocoa/WKURLSchemeHandler.h:
* UIProcess/API/Cocoa/WKURLSchemeTask.h:
* UIProcess/API/Cocoa/WKURLSchemeTaskPrivate.h:
* UIProcess/API/Cocoa/WKUserContentController.h:
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/WKWindowFeaturesPrivate.h:
* UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
* UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h:
* UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
* UIProcess/API/Cocoa/_WKGeolocationCoreLocationProvider.h:
* UIProcess/API/Cocoa/_WKGeolocationPosition.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h:
* UIProcess/API/Cocoa/_WKUserContentFilterPrivate.h:
* UIProcess/API/Cocoa/_WKWebsitePolicies.h:
* UIProcess/_WKWebViewPrintFormatter.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221930 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoSwitch MediaPlayerPrivateAVFoundation to release logging
eric.carlson@apple.com [Tue, 12 Sep 2017 18:34:22 +0000 (18:34 +0000)]
Switch MediaPlayerPrivateAVFoundation to release logging
https://bugs.webkit.org/show_bug.cgi?id=176621
<rdar://problem/34335311>

Reviewed by Jer Noble.

Source/WebCore:

* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::nullLogger):
(WebCore::MediaPlayer::mediaPlayerLogger):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerLogIdentifier):
(WebCore::MediaPlayerClient::mediaPlayerLogger):
(WebCore::MediaPlayer::mediaPlayerLogIdentifier):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering):
(WebCore::MediaPlayerPrivateAVFoundation::tearDownVideoRendering):
(WebCore::MediaPlayerPrivateAVFoundation::load):
(WebCore::MediaPlayerPrivateAVFoundation::playabilityKnown):
(WebCore::MediaPlayerPrivateAVFoundation::prepareToPlay):
(WebCore::MediaPlayerPrivateAVFoundation::play):
(WebCore::MediaPlayerPrivateAVFoundation::pause):
(WebCore::MediaPlayerPrivateAVFoundation::durationMediaTime const):
(WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance):
(WebCore::MediaPlayerPrivateAVFoundation::setNaturalSize):
(WebCore::MediaPlayerPrivateAVFoundation::maxMediaTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundation::minMediaTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundation::updateStates):
(WebCore::MediaPlayerPrivateAVFoundation::rateChanged):
(WebCore::MediaPlayerPrivateAVFoundation::timeChanged):
(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):
(WebCore::MediaPlayerPrivateAVFoundation::invalidateCachedDuration):
(WebCore::MediaPlayerPrivateAVFoundation::setPreload):
(WebCore::MediaPlayerPrivateAVFoundation::mainThreadCallback):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
(WebCore::MediaPlayerPrivateAVFoundation::processNewAndRemovedTextTracks):
(WebCore::MediaPlayerPrivateAVFoundation::logChannel const):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::logClassName const):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache):
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCacheForOrigins):
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyImageGenerator):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::checkPlayability):
(WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMedia const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformPlay):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformPause):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setMuted):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setClosedCaptionsVisible):
(WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
(WebCore::MediaPlayerPrivateAVFoundationObjC::getSupportedTypes):
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createOpenGLVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyOpenGLVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions):
(WebCore::MediaPlayerPrivateAVFoundationObjC::flushCues):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack):
(WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::isCurrentPlaybackTargetWireless const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetName const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessVideoPlaybackDisabled const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessVideoPlaybackDisabled):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldBufferData):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(WebCore::boolString): Deleted.

Source/WebCore/PAL:

* pal/Logger.h:
(PAL::LogArgument::toString):
* pal/LoggerHelper.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221929 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRemove duplicated test results from LayoutTest platform directories
carlosgc@webkit.org [Tue, 12 Sep 2017 18:01:22 +0000 (18:01 +0000)]
Remove duplicated test results from LayoutTest platform directories
https://bugs.webkit.org/show_bug.cgi?id=176686

Reviewed by Michael Catanzaro.

Tools:

After several rebaselines we might end up with the same result in the platform directory than the common result
without noticing it. This patch adds a script to detect those cases and remove all duplicated results from the
repository.

* Scripts/check-for-duplicated-platform-test-results: Added.
(check_duplicate):
(check_duplicate.sha1):
(platform_list):

LayoutTests:

Remove duplicated results found by Tools/Scripts/check-for-duplicated-platform-test-results.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221928 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoThe EWS build system is forcing a non UTF-8 locale and breaks meson.
clopez@igalia.com [Tue, 12 Sep 2017 17:04:31 +0000 (17:04 +0000)]
The EWS build system is forcing a non UTF-8 locale and breaks meson.
https://bugs.webkit.org/show_bug.cgi?id=176761

Reviewed by Michael Catanzaro.

On 2011 in order to disable GCC smartquotes (UTF-8 pretty quotes)
that were causing trouble with the commit-queue server, the tooling
for the EWS bots started to force an LC_ALL=C locale.

This was needed back then apparently because the commit-queue server
was unable to handle properly UTF-8 text.

6 years forward and none of the ports that commit-queue tests before
landing a patch use GCC, but Clang. So this should not be an issue anymore.

Forcing a non UTF-8 locale breaks the Meson build system (that the
GTK/WPE ports use for some dependencies of its JHBuild dependencies
local build system).
It has also the potential to break things in subtle ways that are
hard to debug and detect. So better stop doing this.

This patch also changes TERM=none to TERM=dumb that is the proper
way to disable VT100 codes (see bug 127922).

* Scripts/webkitpy/common/system/environment.py:
(Environment.to_dictionary):
(Environment.disable_jhbuild_VT100_output):
* Scripts/webkitpy/common/system/environment_unittest.py:
(EnvironmentTest.test_disable_jhbuild_VT100_output):
* Scripts/webkitpy/port/base.py:
(Port._build_driver):
(Port._build_image_diff):
* Scripts/webkitpy/port/port_testcase.py:
(PortTestCase.test_build_driver):
* Scripts/webkitpy/tool/commands/download_unittest.py:
* Scripts/webkitpy/tool/steps/build.py:
(Build.build):
* Scripts/webkitpy/tool/steps/steps_unittest.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221926 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[WPE][GTK] Run tests with G_DEBUG=fatal-criticals
mcatanzaro@igalia.com [Tue, 12 Sep 2017 16:59:24 +0000 (16:59 +0000)]
[WPE][GTK] Run tests with G_DEBUG=fatal-criticals
https://bugs.webkit.org/show_bug.cgi?id=176755

Reviewed by Carlos Garcia Campos.

* Scripts/webkitpy/port/gtk.py:
(GtkPort.setup_environ_for_server):
* Scripts/webkitpy/port/wpe.py:
(WPEPort.setup_environ_for_server):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221925 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMarked imported/w3c/web-platform-tests/html/webappapis/timers/type-long-setinterval...
jlewis3@apple.com [Tue, 12 Sep 2017 16:53:48 +0000 (16:53 +0000)]
Marked imported/w3c/web-platform-tests/html/webappapis/timers/type-long-setinterval.html as flaky on debug macOS and release iOS.
https://bugs.webkit.org/show_bug.cgi?id=172052

Unreviewed test gardening.

* platform/ios/TestExpectations:
* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221924 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoFix build after r221922.
achristensen@apple.com [Tue, 12 Sep 2017 16:42:23 +0000 (16:42 +0000)]
Fix build after r221922.
https://bugs.webkit.org/show_bug.cgi?id=176728

* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[ModalDelegate _webViewRunModal:]):
(-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):
svn-apply inserted the test too early in the file :(
Shift it down to where all the used static variables are declared.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221923 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAdd WKUIDelegatePrivate equivalent of WKPageUIClient's runModal
achristensen@apple.com [Tue, 12 Sep 2017 16:37:04 +0000 (16:37 +0000)]
Add WKUIDelegatePrivate equivalent of WKPageUIClient's runModal
https://bugs.webkit.org/show_bug.cgi?id=176728
<rdar://problem/29270035>
Source/WebKit:

Covered by a new API test.

Reviewed by Tim Horton.

* UIProcess/API/APIUIClient.h:
(API::UIClient::runModal):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::canRunModal const):
(WebKit::UIDelegate::UIClient::runModal):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runModal):

Tools:

Reviewed by Tim Horton.

* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[ModalDelegate _webViewRunModal:]):
(-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221922 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoREGRESSION (r215784): The title of right-to-left pages are empty
dbates@webkit.org [Tue, 12 Sep 2017 16:34:23 +0000 (16:34 +0000)]
REGRESSION (r215784): The title of right-to-left pages are empty
https://bugs.webkit.org/show_bug.cgi?id=176746
<rdar://problem/34211419>

Reviewed by Brent Fulgham.

Source/WebCore:

Left truncate a long right-to-left title.

Right-to-left text represents the visual ordering of text. Internally WebKit stores
right-to-left text identically to left-to-right text in memory. So, we can use the
same string operation to truncate right-to-left text as we do to truncate left-to-right
text.

* platform/text/StringWithDirection.h:
(WebCore::truncateFromEnd):

Tools:

Add unit test to ensure we do not regress StringWithDirection.truncateFromEnd().

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp: Added.
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221921 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAdd WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForNotificationPer...
achristensen@apple.com [Tue, 12 Sep 2017 16:32:39 +0000 (16:32 +0000)]
Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForNotificationPermissionRequest
https://bugs.webkit.org/show_bug.cgi?id=176768
<rdar://problem/29270035>

Reviewed by Tim Horton.

Source/WebKit:

Covered by a new API test.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::runBeforeUnloadConfirmPanel):
(WebKit::UIDelegate::UIClient::exceededDatabaseQuota):
(WebKit::UIDelegate::UIClient::decidePolicyForNotificationPermissionRequest):
(WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[NotificationDelegate initWithAllowNotifications:]):
(-[NotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[NotificationDelegate _webView:requestNotificationPermissionForSecurityOrigin:decisionHandler:]):
(TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221920 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoSkip stress/value-to-boolean.js on Debug bots.
ryanhaddad@apple.com [Tue, 12 Sep 2017 16:32:31 +0000 (16:32 +0000)]
Skip stress/value-to-boolean.js on Debug bots.
https://bugs.webkit.org/show_bug.cgi?id=176787

Unreviewed test gardening.

* stress/value-to-boolean.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221919 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAX: On generic container elements, WebKit should distinguish between tooltip (e.g...
cfleizach@apple.com [Tue, 12 Sep 2017 16:31:41 +0000 (16:31 +0000)]
AX: On generic container elements, WebKit should distinguish between tooltip (e.g. @title) and label (e.g. @aria-label) attributes
https://bugs.webkit.org/show_bug.cgi?id=170475
<rdar://problem/31439222>

Reviewed by Joanmarie Diggs.

Source/WebCore:

Test: accessibility/title-tag-on-unimportant-elements-is-help-text.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::helpText):
(WebCore::AccessibilityNodeObject::accessibilityDescription):
(WebCore::AccessibilityNodeObject::roleIgnoresTitle):
* accessibility/AccessibilityNodeObject.h:

LayoutTests:

* accessibility/title-tag-on-unimportant-elements-is-help-text-expected.txt: Added.
* accessibility/title-tag-on-unimportant-elements-is-help-text.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221918 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoShow punycode to user if a URL mixes Armenian Seh or Vo with other scripts
bfulgham@apple.com [Tue, 12 Sep 2017 15:35:10 +0000 (15:35 +0000)]
Show punycode to user if a URL mixes Armenian Seh or Vo with other scripts
https://bugs.webkit.org/show_bug.cgi?id=176578
<rdar://problem/33906231>

Reviewed by Alex Christensen.

Source/WebCore:

Revise our "lookalike character" logic to include the Armenian Vo and Seh
characters, which can be mistaken for 'n' and 'v' when displayed in
certain fonts.

Tested by new API tests.

* platform/mac/WebCoreNSURLExtras.mm:
(WebCore::isArmenianLookalikeCharacter): Added utility function.
(WebCore::isArmenianScriptCharacter): Ditto.
(WebCore::isLookalikeCharacter): Handle Armenian-lookalike cases.

Source/WTF:

* wtf/ASCIICType.h:
(WTF::isASCIIDigitOrPunctuation): Added helper function to recognize ASCII digits
and punctuation characters.

Tools:

* TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221917 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRemove RenderElement::isCSSAnimating boolean
antti@apple.com [Tue, 12 Sep 2017 15:31:41 +0000 (15:31 +0000)]
Remove RenderElement::isCSSAnimating boolean
https://bugs.webkit.org/show_bug.cgi?id=176779

Reviewed by Andreas Kling.

This optimization can be replaced with a simple style test that doesn't require keeping
two sources of truth in sync.

* page/animation/CSSAnimationController.cpp:
(WebCore::CSSAnimationControllerPrivate::ensureCompositeAnimation):
(WebCore::CSSAnimationControllerPrivate::clear):

    Can't test here as style might have become non-animating and we don't clear animation when that happens.
    This is only called on renderer destruction so it is not an important optimization.

(WebCore::CSSAnimationControllerPrivate::isRunningAnimationOnRenderer const):
(WebCore::CSSAnimationControllerPrivate::isRunningAcceleratedAnimationOnRenderer const):
(WebCore::CSSAnimationControllerPrivate::getAnimatedStyleForRenderer):
(WebCore::CSSAnimationControllerPrivate::computeExtentOfAnimation const):
(WebCore::CSSAnimationController::cancelAnimations):
(WebCore::CSSAnimationController::getAnimatedStyleForRenderer):
(WebCore::CSSAnimationController::computeExtentOfAnimation const):
(WebCore::CSSAnimationController::isRunningAnimationOnRenderer const):
(WebCore::CSSAnimationController::isRunningAcceleratedAnimationOnRenderer const):

    Test if the style has any animations. This is roughly equivalent of the old test.
    (it is actually somewhat better as the boolean was never cleared on style changes)

* rendering/RenderElement.cpp:
(WebCore::RenderElement::RenderElement):
* rendering/RenderElement.h:
(WebCore::RenderElement::isCSSAnimating const): Deleted.
(WebCore::RenderElement::setIsCSSAnimating): Deleted.
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasAnimationsOrTransitions const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221916 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoDisallow passing null data to uniform1uiv() and friends.
commit-queue@webkit.org [Tue, 12 Sep 2017 14:55:00 +0000 (14:55 +0000)]
Disallow passing null data to uniform1uiv() and friends.
https://bugs.webkit.org/show_bug.cgi?id=176777

Patch by Ms2ger <Ms2ger@igalia.com> on 2017-09-12
Reviewed by Sam Weinig.

This matches the specification as well as Gecko and Chromium.

Source/WebCore:

Test: fast/canvas/webgl/webgl2/bindings.html

* html/canvas/WebGL2RenderingContext.idl:

LayoutTests:

* fast/canvas/webgl/webgl2/bindings-expected.txt: Added.
* fast/canvas/webgl/webgl2/bindings.html: Added.
* platform/gtk/TestExpectations: disable test.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221915 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[Cleanup] Follow up cleanup for DOMFormData implementation
commit-queue@webkit.org [Tue, 12 Sep 2017 14:53:18 +0000 (14:53 +0000)]
[Cleanup] Follow up cleanup for DOMFormData implementation
https://bugs.webkit.org/show_bug.cgi?id=176740

Patch by Sam Weinig <sam@webkit.org> on 2017-09-12
Reviewed by Alex Christensen.

Source/WebCore:

- Merges FormDataList into DOMFormData.
- Streamline / refactor FormData creation from DOMFormData.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* html/FormDataList.cpp: Removed.
* html/FormDataList.h: Removed.

    Remove FormDataList.

* html/DOMFormData.cpp:
(WebCore::DOMFormData::DOMFormData):
(WebCore::DOMFormData::createFileEntry):
(WebCore::DOMFormData::append):
(WebCore::DOMFormData::set):
(WebCore::DOMFormData::Iterator::next):
* html/DOMFormData.h:
(WebCore::DOMFormData::items const):
(WebCore::DOMFormData::encoding const):

    Merge FormDataList into DOMFormData. FormDataList's additional
    appendData/appendBlob functions have been removed, and their
    functionality inlined into DOMFormData's append functions.

    Adopted makeKeyValuePair in DOMFormData::Iterator::next().

* platform/network/FormData.cpp:
(WebCore::FormData::create):
(WebCore::FormData::createMultiPart):
(WebCore::normalizeStringData):
(WebCore::FormData::appendMultiPartFileValue):
(WebCore::FormData::appendMultiPartStringValue):
(WebCore::FormData::appendMultiPartKeyValuePairItems):
(WebCore::FormData::appendNonMultiPartKeyValuePairItems):
(WebCore::FormData::appendKeyValuePairItems): Deleted.
* platform/network/FormData.h:

    Split-up appendKeyValuePairItems into separate multipart and non-multipart
    functions, as the two edges of the branch didn't share much in common. Further
    split out multipart file and multipart string appending, since they too did not
    share that much in common and makes the code easier to follow.

    String value normalization has been moved entirely here (previously it was a member
    function of FormDataList) as FormData is the only user.

* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::extract):

    Update for new FormData create functions which don't need the
    encoding passed explicitly, since it is part of the DOMFormData.

* html/BaseButtonInputType.cpp:
* html/BaseButtonInputType.h:
* html/BaseCheckableInputType.cpp:
* html/BaseCheckableInputType.h:
* html/FileInputType.cpp:
* html/FileInputType.h:
* html/FormAssociatedElement.h:
* html/HTMLButtonElement.cpp:
* html/HTMLButtonElement.h:
* html/HTMLFormControlElement.h:
* html/HTMLInputElement.cpp:
* html/HTMLInputElement.h:
* html/HTMLKeygenElement.cpp:
* html/HTMLKeygenElement.h:
* html/HTMLMeterElement.cpp:
* html/HTMLObjectElement.cpp:
* html/HTMLObjectElement.h:
* html/HTMLSelectElement.cpp:
* html/HTMLSelectElement.h:
* html/HTMLTextAreaElement.cpp:
* html/HTMLTextAreaElement.h:
* html/HiddenInputType.cpp:
* html/HiddenInputType.h:
* html/ImageInputType.cpp:
* html/ImageInputType.h:
* html/InputType.cpp:
* html/InputType.h:
* html/SubmitInputType.cpp:
* html/SubmitInputType.h:
* html/TextFieldInputType.cpp:
* html/TextFieldInputType.h:

    Update to use DOMFormData directly, rather than the FormDataList, which
    has been removed.

* page/csp/ContentSecurityPolicy.cpp:

    Remove unnecessary #include of unused (and now removed) FormDataList.h

Source/WTF:

* WTF.xcodeproj/project.pbxproj:
* wtf/HashTraits.h:
(WTF::KeyValuePair::KeyValuePair): Deleted.
* wtf/KeyValuePair.h: Added.
(WTF::KeyValuePair::KeyValuePair):
(WTF::makeKeyValuePair):

    Move KeyValuePair to its own header and add a makeKeyValuePair helper.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221914 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[EME] Implement CDMInstanceClearKey::requestLicense()
zandobersek@gmail.com [Tue, 12 Sep 2017 13:23:05 +0000 (13:23 +0000)]
[EME] Implement CDMInstanceClearKey::requestLicense()
https://bugs.webkit.org/show_bug.cgi?id=176773

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Implement the requestLicense() method for CDMInstanceClearKey. Per
the specification, the session ID must be a 32-bit numerical value.
A session ID value counter is thus kept in a static uint32_ object
and incremented upon each call of requestLicense(). Init data and
the session ID value are then embedded in the asynchronous dispatch
that invokes the callback. That invocation now also passes along the
init data, the session ID in string format, and Succeeded to now
indicate the operation was completed successfully.

No new tests -- expectations for the relevant tests are updated
to reflect the introduced changes.

* platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::CDMInstanceClearKey::requestLicense):

LayoutTests:

Update WPE baselines of the EME ClearKey tests.

* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-events-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-events-session-closed-event-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-invalid-license-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-update-disallowed-input-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-update-non-ascii-input-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221913 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnreviewed GTK+ gardening. Rebaseline tests after r221909. Part 2.
carlosgc@webkit.org [Tue, 12 Sep 2017 11:55:11 +0000 (11:55 +0000)]
Unreviewed GTK+ gardening. Rebaseline tests after r221909. Part 2.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221912 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnreviewed GTK+ gardening. Rebaseline tests after r221909. Part 1.
carlosgc@webkit.org [Tue, 12 Sep 2017 11:35:47 +0000 (11:35 +0000)]
Unreviewed GTK+ gardening. Rebaseline tests after r221909. Part 1.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221911 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[css-grid] Use transferred size over content size for automatic minimum size
rego@igalia.com [Tue, 12 Sep 2017 11:30:48 +0000 (11:30 +0000)]
[css-grid] Use transferred size over content size for automatic minimum size
https://bugs.webkit.org/show_bug.cgi?id=176688

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Import changes on the tests related to the new behavior.

* web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.html:
* web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.html:
* web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.html:
* web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.html:
* web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-021.html:
* web-platform-tests/css/css-grid-1/grid-items/support/100x50-green.png: Removed.
* web-platform-tests/css/css-grid-1/grid-items/support/25x50-green.png: Added.
* web-platform-tests/css/css-grid-1/grid-items/support/50x100-green.png: Removed.
* web-platform-tests/css/css-grid-1/grid-items/support/50x25-green.png: Added.
* web-platform-tests/css/css-grid-1/grid-items/support/w3c-import.log:

Source/WebCore:

CSS WG has agreed to modify the spec so now the transferred size is used
(if it exists) independently if it's bigger or smaller
than the content size.
See: https://github.com/w3c/csswg-drafts/issues/1149

The spec text (https://drafts.csswg.org/css-grid/#min-size-auto):
  "The automatic minimum size for a grid item in a given dimension is
   its specified size if it exists, otherwise its transferred size
   if that exists, else its content size"

This patch use the WPT tests updated to check the new behavior.

* rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
Modified so it always returns the transferred size (if any).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221910 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[Freetype] Doesn't support coloured fonts
carlosgc@webkit.org [Tue, 12 Sep 2017 11:21:36 +0000 (11:21 +0000)]
[Freetype] Doesn't support coloured fonts
https://bugs.webkit.org/show_bug.cgi?id=156579

Source/WebCore:

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2017-09-12
Reviewed by Michael Catanzaro.

Covered by existing tests. This needs a large rebaseline that will be done in follow up commits.

* platform/graphics/FontCascade.h: Enable advance text rendering mode by default.
(WebCore::FontCascade::advancedTextRenderingMode const):
(WebCore::FontCascade::computeRequiresShaping const):
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::Font::platformInit): Do not get metrics from OS/2 table for non-scalable fonts.
* platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
(WebCore::harfBuzzGetGlyph): Use U8_APPEND_UNSAFE() instead of converting to a String and then encoding it with
UTF8Encoding().

Tools:

Reviewed by Michael Catanzaro.

Bump webkitgtk-test-fonts to 0.0.6 version that includes the EmijoOne font.

* gtk/jhbuild.modules:
* wpe/jhbuild.modules:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221909 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRemove unnecessary virtual keyword from JS test files
fred.wang@free.fr [Tue, 12 Sep 2017 07:36:57 +0000 (07:36 +0000)]
Remove unnecessary virtual keyword from JS test files
https://bugs.webkit.org/show_bug.cgi?id=176683

Patch by Frederic Wang <fwang@igalia.com> on 2017-09-12
Reviewed by Simon Fraser.

JS bindings headers do not comply with the WebKit coding style since they use both the
"virtual" and "override" keywords. This patch modifies the generator script to only use
"override" and regenerates the bindings accordingly.

No new tests, behavior unchanged.

* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/test/JS/JSTestCallbackFunction.h:
* bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.h:
* bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.h:
* bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h:
* bindings/scripts/test/JS/JSTestCallbackInterface.h:
* bindings/scripts/test/JS/JSTestVoidCallbackFunction.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221908 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[iOS DnD] Support DataTransfer.setDragImage when starting a drag on iOS
wenson_hsieh@apple.com [Tue, 12 Sep 2017 06:59:48 +0000 (06:59 +0000)]
[iOS DnD] Support DataTransfer.setDragImage when starting a drag on iOS
https://bugs.webkit.org/show_bug.cgi?id=176721
<rdar://problem/34373660>

Reviewed by Tim Horton.

Source/WebCore:

Adds support for setting the drag lift preview frame in the case where DataTransfer.setDragImage is being used
to override the default drag preview. Currently, the frame of the drag preview we supply in this case is the
same as the bounds of the source element in root view coordinates, but this means that any custom drag image
the page supplies will be stretched to fill the frame of the source element. Instead, when handling a DHTML drag,
position the lift and cancel drag previews relative to the event location, respecting any drag offset specified
in setDragImage. The size of this preview matches the size of the drag image source (since this is all in root
view coordinates, this means the drag preview will also enlarge if the user pinches to zoom in). If a
disconnected image source element was provided, then we just fall back to the image size.

Additionally, renames DragItem's elementBounds to dragPreviewFrameInRootViewCoordinates to better reflect the
purpose of this variable. This patch also introduces API test plumbing to grab targeted drag previews from the
drag interaction delegate (i.e. WKContentView), and uses this in a new API test that checks the frame of the
resulting UITargetedDragPreview after initiating a drag in various circumstances (see changes in Tools/ for more
detail).

Test: DataInteractionTests.DragLiftPreviewDataTransferSetDragImage

* dom/DataTransfer.cpp:
(WebCore::DataTransfer::dragImageElement const):
* dom/DataTransfer.h:
* page/DragController.cpp:
(WebCore::dragLocForDHTMLDrag):

The logic to flip the y offset when computing the drag location is only relevant on Mac, but currently, this is
guarded by #if PLATFORM(COCOA), which causes the y offset to shift the drag image in the opposite direction on
iOS. To fix this, simply change the platform define to Mac.

(WebCore::DragController::doSystemDrag):
* platform/DragItem.h:
(WebCore::DragItem::encode const):
(WebCore::DragItem::decode):

Source/WebKit:

Rename elementBounds => dragPreviewFrameInRootViewCoordinates.

* UIProcess/ios/DragDropInteractionState.h:
* UIProcess/ios/DragDropInteractionState.mm:
(WebKit::DragDropInteractionState::previewForDragItem const):
(WebKit::DragDropInteractionState::stageDragItem):

Source/WebKitLegacy/mac:

Rename elementBounds => dragPreviewFrameInRootViewCoordinates. (Note: Unfortunately, _draggedElementBounds in
WebViewPrivate.h can't be renamed yet, due to binary and SDK compatibility with UIKit).

* WebView/WebView.mm:
(-[WebView _startDrag:]):
(-[WebView _draggedElementBounds]):
(-[WebView _endedDataInteraction:global:]):
* WebView/WebViewData.h:

Tools:

In DataInteractionSimulator, ask the UIDragInteractionDelegate (WKContentView) for targeted drag previews after
retrieving UIDragItems during a lift. Remember these previews after the drag and drop simulation is complete, so
API tests (currently, just DragLiftPreviewDataTransferSetDragImage) can verify that the generated drag previews
are as expected.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/DataTransfer-setDragImage.html: Added.

Adds a new test harness containing 5 draggable elements, each generating a drag image using different codepaths.
DragLiftPreviewDataTransferSetDragImage uses this page to check that the frame of the targeted drag preview in
each scenario is as expected.

* TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(checkCGRectIsEqualToCGRectWithLogging):
(TestWebKitAPI::TEST):
* TestWebKitAPI/ios/DataInteractionSimulator.h:
* TestWebKitAPI/ios/DataInteractionSimulator.mm:
(-[DataInteractionSimulator _resetSimulatedState]):
(-[DataInteractionSimulator _advanceProgress]):
(-[DataInteractionSimulator liftPreviews]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221907 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoREGRESSION (r221272): WKWebView gets stuck zoomed in if the web process crashes
timothy_horton@apple.com [Tue, 12 Sep 2017 06:51:50 +0000 (06:51 +0000)]
REGRESSION (r221272): WKWebView gets stuck zoomed in if the web process crashes
https://bugs.webkit.org/show_bug.cgi?id=176767
<rdar://problem/34196874>

Reviewed by Dan Bernstein.

Source/WebKit:

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _processDidExit]):
Reset the "last sent" layout parameters when the Web Content process exits.
They're no longer "last sent", and if we short-circuit from sending them
again (from under _didRelaunchProcess), we will never send the correct
layout width (until it changes).

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:
(TEST):
Add a test ensuring that override layout size persists through Web
Content process crash.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221906 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Canvas: improve recording controls and state management
mattbaker@apple.com [Tue, 12 Sep 2017 05:06:07 +0000 (05:06 +0000)]
Web Inspector: Canvas: improve recording controls and state management
https://bugs.webkit.org/show_bug.cgi?id=176762
<rdar://problem/34382294>

Reviewed by Devin Rousso.

CanvasManager should be responsible for starting/stopping recordings
and tracking state. Fixing this layering issue lets CanvasContentView
better manage its recording UI.

* UserInterface/Controllers/CanvasManager.js:
(WI.CanvasManager):
(WI.CanvasManager.prototype.get recordingCanvas):
(WI.CanvasManager.prototype.startRecording):
(WI.CanvasManager.prototype.stopRecording):

* UserInterface/Models/Canvas.js:
(WI.Canvas.prototype.get isRecording):
(WI.Canvas.prototype.toggleRecording): Deleted.

* UserInterface/Views/CanvasContentView.css:
(.navigation-bar > .item.canvas-record.disabled):

* UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView.prototype.shown):
(WI.CanvasContentView.prototype._toggleRecording):
(WI.CanvasContentView.prototype._recordingFinished):
(WI.CanvasContentView.prototype._updateRecordNavigationItem):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221901 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[iOS WK2] Support tapping to add items to the current drag session in web content
wenson_hsieh@apple.com [Tue, 12 Sep 2017 02:09:28 +0000 (02:09 +0000)]
[iOS WK2] Support tapping to add items to the current drag session in web content
https://bugs.webkit.org/show_bug.cgi?id=176421
<rdar://problem/31144674>

Reviewed by Tim Horton.

Source/WebCore:

Refactors some drag initiation logic to handle starting a drag when data has already been written to the
pasteboard (in the case of iOS, WebItemProviderPasteboard). See annotated comments below for more detail.

Tests: DataInteractionTests.AdditionalLinkAndImageIntoContentEditable

* page/DragActions.h:
* page/DragController.cpp:
(WebCore::DragController::startDrag):

Add a HasNonDefaultPasteboardData argument here, and replace checks for !dataTransfer.pasteboard().hasData()
with checks for whether the argument is HasNonDefaultPasteboardData::No. These checks for Pasteboard::hasData()
currently prevent us from overwriting custom pasteboard data, in the case that the page has written pasteboard
data using the event's DataTransfer. However, in the case of adding additional drag items to the session, we
will already have pasteboard data, so these checks will prevent us from writing default data to the pasteboard.
See EventHandler::handleDrag for more detail.

* page/DragController.h:
* page/DragState.h:

Remove the draggedContentRange member from DragState. See below.

* page/EventHandler.cpp:
(WebCore::removeDraggedContentDocumentMarkersFromAllFramesInPage):

Simplify the handling of dragged content range markers. Instead of storing the DOM Range being dragged and
removing/repainting the range after dragging ends, just repaint the contentRenderer of the frame being dragged.
When the dragging session has completely ended, remove all dragged content ranges from the page's mainframe and
all of its subframes, and repaint everything.

(WebCore::EventHandler::dragCancelled):
(WebCore::EventHandler::didStartDrag):
(WebCore::EventHandler::dragSourceEndedAt):

Add a MayExtendDragSession argument, indicating whether or not the web process will attempt to continue the drag
session, in which case EventHandler::dragSourceEndedAt should not remove any existing dragged content range
document markers.

(WebCore::EventHandler::dispatchDragStartEvent):

Helper method to dispatch a `dragstart` event, return whether or not to proceed with the drag, and also compute
(as an outparam) whether or not custom pasteboard data was written during the event.

(WebCore::EventHandler::handleDrag):

If custom data was written during `dragstart`, pass along HasNonDefaultPasteboardData::Yes when calling
DragController::startDrag.

(WebCore::repaintContentsOfRange): Deleted.
* page/EventHandler.h:
* page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::tryToBeginDataInteractionAtPoint):
* platform/Pasteboard.h:
* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::changeCount const):
* platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderPasteboard setItemProviders:]):

Stop clearing out the staged item provider registration list when setting item providers. After refactoring in
r221595, staged registration lists are now automatically cleared out when (1) the drag-and-drop interaction
state is cleared out in the UI process, or (2) when the registration list is taken by WKContentView (see
-takeRegistrationList) when generating an item provider.

* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::changeCount const):

Add a changeCount method to Pasteboard on Cocoa platforms (Mac, iOS) which support changeCount natively. In
theory, there's no reason Windows, GTK and WPE ports can't also implement a similar mechanism in
PlatformPasteboard, but this isn't needed for anything yet. Upon dragstart, it is safe to assume that the
pasteboard has been cleared on these platforms, so checking for Pasteboard::hasData (as we do for all platforms
currently) is sufficient.

Source/WebKit:

To request additional drag items, end the current drag in the web page and try to begin a drag at the new
location. This process is transparent to the UI process, which still maintains the same UIDragSession with the
old drag source.

As opposed to firing a new event (for instance: `adddragitem`), this approach is taken to ensure that if the
page wants to preventDefault() on `dragstart`, it would also prevent the user from adding it as an additional
drag item. Using the new event approach, dealing with this case would either require the page to listen for a
new event and call preventDefault(), which would break compatibility with pages that only preventDefault() on
`dragstart`, or it would require the default behavior of this new event to be _not_ adding a drag item, in which
case this approach would require pages to adopt the new event in some form.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestAdditionalItemsForDragSession):

Tools:

Adds a new drag and drop test that begins a drag on a text selection, adds an image and a link, and then drops
into a contenteditable area. This verifies that the text, link and image are inserted into the editable area
upon drop.

* TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221900 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoClean up API::UIClient
achristensen@apple.com [Tue, 12 Sep 2017 02:05:21 +0000 (02:05 +0000)]
Clean up API::UIClient
https://bugs.webkit.org/show_bug.cgi?id=176568

Reviewed by Brady Eidson.

We don't need createNewPage and createNewPageAsync.
An async version can support synchronous delegate calls by just calling the completion handler synchronously.

* UIProcess/API/APIUIClient.h:
(API::UIClient::createNewPage):
(API::UIClient::createNewPageAsync): Deleted.
(API::UIClient::canCreateNewPageAsync): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/glib/WebKitUIClient.cpp:
* UIProcess/API/glib/WebKitUIClient.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::createNewPage):
(WebKit::UIDelegate::UIClient::createNewPageCommon): Deleted.
(WebKit::UIDelegate::UIClient::canCreateNewPageAsync): Deleted.
(WebKit::UIDelegate::UIClient::createNewPageAsync): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
* UIProcess/WebPageProxy.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221899 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnreviewed, rolling out r221762.
ryanhaddad@apple.com [Tue, 12 Sep 2017 00:48:27 +0000 (00:48 +0000)]
Unreviewed, rolling out r221762.

This change caused flakiness in a webgl LayoutTest.

Reverted changeset:

"[WebGL] accelerated texImage2D for video doesn't respect
flipY"
https://bugs.webkit.org/show_bug.cgi?id=176491
http://trac.webkit.org/changeset/221762

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221898 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[GTK] Unreviewed layout test gardening
mcatanzaro@igalia.com [Tue, 12 Sep 2017 00:42:17 +0000 (00:42 +0000)]
[GTK] Unreviewed layout test gardening

* TestExpectations:
* http/tests/fetch/fetching-same-resource-with-different-options-expected.txt: Renamed from LayoutTests/http/tests/fetch/fetching-same-resource-with-diffferent-options-expected.txt.
* http/tests/fetch/fetching-same-resource-with-different-options.html: Renamed from LayoutTests/http/tests/fetch/fetching-same-resource-with-diffferent-options.html.
* platform/gtk/TestExpectations:
* platform/ios-wk2/TestExpectations:
* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221897 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoFix memory leak introduced in r221894.
achristensen@apple.com [Tue, 12 Sep 2017 00:40:11 +0000 (00:40 +0000)]
Fix memory leak introduced in r221894.
https://bugs.webkit.org/show_bug.cgi?id=176753

* UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:
(WebKit::NotificationPermissionRequestManagerProxy::createRequest):
The NotificationPermissionRequestManagerProxy keeps track of pending requests
so they can be denied when invalidating the page.  We add them to a HashMap and in
r221894 I removed the code that removes them from that map once the request is complete.
This code adds the completed task removal back.
The NotificationPermissionRequestManagerProxy and WebPageProxy have the same lifetime,
so protecting the WebPageProxy (m_page) makes sure there is no use-after-free when the
completion handler is called.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221896 268f45cc-cd09-0410-ab3c-d52691b4dbfc