WebKit-https.git
2 years ago[EFL][GTK] Skip some IndexedDB tests that time out on the Perf bots.
clopez@igalia.com [Tue, 31 Jan 2017 15:33:00 +0000 (15:33 +0000)]
[EFL][GTK] Skip some IndexedDB tests that time out on the Perf bots.

Unreviewed performance test gardening.

* Skipped:

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

2 years ago[EME] InitDataRegistry should use base64url encoding and decoding for keyids
zandobersek@gmail.com [Tue, 31 Jan 2017 11:41:07 +0000 (11:41 +0000)]
[EME] InitDataRegistry should use base64url encoding and decoding for keyids
https://bugs.webkit.org/show_bug.cgi?id=167592

Reviewed by Jer Noble.

Source/WebCore:

In InitDataRegistry, WTF::base64URLEncode() and WTF::base64URLDecode() should
be used to encode and decode the 'keyids' initialization data format, as
required by the relevant specification.
https://w3c.github.io/encrypted-media/format-registry/initdata/keyids.html#format

Relevant test case was added to media/encrypted-media/mock-MediaKeySession-generateRequest.html.

* Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::extractKeyIDsKeyids):
(WebCore::sanitizeKeyids):

LayoutTests:

* media/encrypted-media/mock-MediaKeySession-generateRequest-expected.txt:
* media/encrypted-media/mock-MediaKeySession-generateRequest.html: Include a test case
that passes an init data JSON to generateRequest() that fails to decode when using the
plain base64 decoding algorithm. The test passes when base64url encoding and decoding
are used in InitDataRegistry.

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

2 years agoUnreviewed. Update OptionsGTK.cmake and NEWS for 2.15.4 release.
carlosgc@webkit.org [Tue, 31 Jan 2017 11:24:57 +0000 (11:24 +0000)]
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.15.4 release.

.:

* Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

* gtk/NEWS: Add release notes for 2.15.4.

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

2 years ago[Sierra WK1] LayoutTest media/modern-media-controls/placard-support/placard-support...
graouts@webkit.org [Tue, 31 Jan 2017 11:01:38 +0000 (11:01 +0000)]
[Sierra WK1] LayoutTest media/modern-media-controls/placard-support/placard-support-pip.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=167320

Unreviewed.

This test doesn't look like it has been flaky of late, no longer marking as flaky.

* platform/mac-wk1/TestExpectations:

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

2 years agoLayoutTest media/modern-media-controls/placard-support/placard-support-airplay.html...
graouts@webkit.org [Tue, 31 Jan 2017 11:00:36 +0000 (11:00 +0000)]
LayoutTest media/modern-media-controls/placard-support/placard-support-airplay.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=167441

Unreviewed.

This test doesn't look like it has been flaky of late, no longer marking as flaky.

* platform/mac/TestExpectations:

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

2 years agoLayoutTest media/modern-media-controls/media-controller/media-controller-auto-hide...
graouts@webkit.org [Tue, 31 Jan 2017 10:59:31 +0000 (10:59 +0000)]
LayoutTest media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-over-controls-bar.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=167266

Unreviewed.

This test doesn't look like it has been flaky of late, no longer marking as flaky.

* platform/mac/TestExpectations:

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

2 years agoUnreviewed, this test is only flaky on El Capitan / Debug of late.
graouts@webkit.org [Tue, 31 Jan 2017 10:57:53 +0000 (10:57 +0000)]
Unreviewed, this test is only flaky on El Capitan / Debug of late.

* platform/mac-wk1/TestExpectations:

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

2 years agoUnreviewed, this test is only flaky on El Capitan of late.
graouts@webkit.org [Tue, 31 Jan 2017 10:54:44 +0000 (10:54 +0000)]
Unreviewed, this test is only flaky on El Capitan of late.

* platform/mac/TestExpectations:

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

2 years agoLayoutTest media/modern-media-controls/skip-back-button/skip-back-button.html is...
graouts@webkit.org [Tue, 31 Jan 2017 10:50:39 +0000 (10:50 +0000)]
LayoutTest media/modern-media-controls/skip-back-button/skip-back-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=164620

Unreviewed.

This test doesn't look like it has been flaky of late, no longer marking as flaky.

* platform/mac-wk1/TestExpectations:

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

2 years agoLayoutTest media/modern-media-controls/pip-button/pip-button.html is a flaky timeout
graouts@webkit.org [Tue, 31 Jan 2017 10:49:17 +0000 (10:49 +0000)]
LayoutTest media/modern-media-controls/pip-button/pip-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=167350

Unreviewed.

This test doesn't look like it has been flaky of late, no longer marking as flaky.

* platform/mac-wk1/TestExpectations:

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

2 years agoUnreviewed. Fix syntax error in GTK+ API docs.
carlosgc@webkit.org [Tue, 31 Jan 2017 10:46:10 +0000 (10:46 +0000)]
Unreviewed. Fix syntax error in GTK+ API docs.

* UIProcess/API/gtk/WebKitWebContext.cpp:

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

2 years agoUnreviewed, mark a couple of very flaky tests as skipped until we get to fix them.
graouts@webkit.org [Tue, 31 Jan 2017 10:44:35 +0000 (10:44 +0000)]
Unreviewed, mark a couple of very flaky tests as skipped until we get to fix them.

* platform/ios-simulator-wk2/TestExpectations:
* platform/mac/TestExpectations:

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

2 years agoUnreviewed. Do not include libwebrtc and qunit in GTK+ tarballs.
carlosgc@webkit.org [Tue, 31 Jan 2017 10:44:23 +0000 (10:44 +0000)]
Unreviewed. Do not include libwebrtc and qunit in GTK+ tarballs.

* gtk/manifest.txt.in:

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

2 years ago[EFL] Dozens of tests of modern-media-controls have been timeout
graouts@webkit.org [Tue, 31 Jan 2017 09:55:55 +0000 (09:55 +0000)]
[EFL] Dozens of tests of modern-media-controls have been timeout
https://bugs.webkit.org/show_bug.cgi?id=167357

Unreviewed.

Modern Media Controls are Mac-specific, we should skip all those tests on EFL just like
we do on GTK. We had forgotten to skip Modern Media Controls tests under http/tests/media
on GTK, so we do that as well.

* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:

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

2 years ago[css-grid] Enable CSS Grid Layout by default
rego@igalia.com [Tue, 31 Jan 2017 09:23:53 +0000 (09:23 +0000)]
[css-grid] Enable CSS Grid Layout by default
https://bugs.webkit.org/show_bug.cgi?id=167578

Reviewed by Michael Catanzaro.

Now that Safari 10.1 is shipping CSS Grid Layout it seems safe to enable the feature by default:
https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html

* Shared/WebPreferencesDefinitions.h: Remove Grid Layout from the list of experimental flags and enable it by default.

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

2 years ago[CoordinatedGraphics] WebCoordinatedSurface::create should do null-check of the retur...
commit-queue@webkit.org [Tue, 31 Jan 2017 09:13:43 +0000 (09:13 +0000)]
[CoordinatedGraphics] WebCoordinatedSurface::create should do null-check of the return value of ShareableBitmap::createShareable
https://bugs.webkit.org/show_bug.cgi?id=167631

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2017-01-31
Reviewed by Carlos Garcia Campos.

* Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:
(WebKit::WebCoordinatedSurface::create): Do null-check of the
return value of ShareableBitmap::createShareable.

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

2 years agoPerformance Timeline: Add serializer to PerformanceEntry
commit-queue@webkit.org [Tue, 31 Jan 2017 08:57:48 +0000 (08:57 +0000)]
Performance Timeline: Add serializer to PerformanceEntry
https://bugs.webkit.org/show_bug.cgi?id=167632

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-01-31
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: performance-api/performance-timeline-serializers.html

* page/PerformanceEntry.idl:

LayoutTests:

* performance-api/performance-timeline-serializers-expected.txt: Added.
* performance-api/performance-timeline-serializers.html: Added.

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

2 years ago[GTK] Environment variables for enabling/disabling AC mode should take precedence...
carlosgc@webkit.org [Tue, 31 Jan 2017 08:57:21 +0000 (08:57 +0000)]
[GTK] Environment variables for enabling/disabling AC mode should take precedence over the API.
https://bugs.webkit.org/show_bug.cgi?id=167605

Reviewed by Žan Doberšek.

Add HardwareAccelerationManager singleton helper to handle the global values for enabling, disabling or forcing
accelerated compositing. This is used by WebPreferences to initialize the values like always, but also by
WebKitSettings to ensure those values are honored and are not changed when it's not possible. This new class can
be used in the future to implement the GPU blacklist.

* PlatformGTK.cmake: Add new files to compilation.
* UIProcess/API/gtk/WebKitSettings.cpp:
(webkit_settings_class_init): Document that the setting depends on actual hardware capabilities.
(webkit_settings_set_hardware_acceleration_policy): Check HardwareAccelerationManager before trying to change
the settings.
* UIProcess/gtk/HardwareAccelerationManager.cpp: Added.
(WebKit::HardwareAccelerationManager::singleton):
(WebKit::HardwareAccelerationManager::HardwareAccelerationManager): Initialize m_canUseHardwareAcceleration and
m_forceHardwareAcceleration dependoing on hardware and system capabilites and
WEBKIT_DISABLE_COMPOSITING_MODE/WEBKIT_FORCE_COMPOSITING_MODE variables.
* UIProcess/gtk/HardwareAccelerationManager.h: Added.
(WebKit::HardwareAccelerationManager::canUseHardwareAcceleration):
(WebKit::HardwareAccelerationManager::forceHardwareAcceleration):
* UIProcess/gtk/WebPreferencesGtk.cpp:
(WebKit::WebPreferences::platformInitializeStore): Use HardwareAccelerationManager to set the initial values.

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

2 years agoAX: enable search predication for iOS
cfleizach@apple.com [Tue, 31 Jan 2017 08:07:49 +0000 (08:07 +0000)]
AX: enable search predication for iOS
https://bugs.webkit.org/show_bug.cgi?id=167558
<rdar://problem/30251367>

Reviewed by Joanmarie Diggs.

Source/WebCore:

Move the code to support accessibility searching into a shared place so it can be used by iOS.

Test: accessibility/ios-simulator/ios-search-predicate.html

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityFindMatchingObjects:]):
* accessibility/mac/WebAccessibilityObjectWrapperBase.h:
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(convertToNSArray):
(createAccessibilitySearchKeyMap):
(accessibilitySearchKeyForString):
(accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilitySearchKeyMap): Deleted.
(accessibilitySearchKeyForString): Deleted.
(accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute): Deleted.
(convertToNSArray): Deleted.

Tools:

* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::uiElementForSearchPredicate):
* DumpRenderTree/mac/AccessibilityCommonMac.h:
* DumpRenderTree/mac/AccessibilityCommonMac.mm:
(searchPredicateParameterizedAttributeForSearchCriteria):
* DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(searchPredicateParameterizedAttributeForSearchCriteria): Deleted.
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::uiElementCountForSearchPredicate):
(WTR::AccessibilityUIElement::uiElementForSearchPredicate):
* WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.h:
* WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm:
(WTR::searchPredicateParameterizedAttributeForSearchCriteria):
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::searchPredicateParameterizedAttributeForSearchCriteria): Deleted.
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:

LayoutTests:

Add basic searching smoke test to ensure fundamentals work on iOS.

* accessibility/ios-simulator/ios-search-predicate-expected.txt: Added.
* accessibility/ios-simulator/ios-search-predicate.html: Added.

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

2 years ago[JSC] Do not reject WebAssembly.compile() with Exception
utatane.tea@gmail.com [Tue, 31 Jan 2017 07:21:43 +0000 (07:21 +0000)]
[JSC] Do not reject WebAssembly.compile() with Exception
https://bugs.webkit.org/show_bug.cgi?id=167585

Reviewed by Mark Lam.

JSTests:

* wasm/js-api/Module-compile.js:
(async.testPromiseAPI):

Source/JavaScriptCore:

We accidentally reject the promise with Exception instead of Exception::value()
for the result of WebAssembly::compile().

* wasm/JSWebAssembly.cpp:
(JSC::webAssemblyCompileFunc):

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

2 years ago[WebIDL] Add support for inherit serializer attribute
joepeck@webkit.org [Tue, 31 Jan 2017 07:17:34 +0000 (07:17 +0000)]
[WebIDL] Add support for inherit serializer attribute
https://bugs.webkit.org/show_bug.cgi?id=167274

Reviewed by Darin Adler.

Support for serializer { inherit }, which will be used by Resource Timing.
https://heycam.github.io/webidl/#idl-serializers

* bindings/scripts/CodeGenerator.pm:
(GetInterfaceForAttribute):
(IsSerializableAttribute):
Determine if an attribute is serializable at generation time so we can
verify types. This allows us to support typedefs. We don't yet support
serializing an attribute that is itself a serializable interface.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateSerializerFunction):
(GenerateSerializerAttributesForInterface):
Generate inherited attributes first, then generate our own list.
Explicitly provided attribute names are expected to be serializable,
so produce an error if they are not.

* bindings/scripts/IDLParser.pm:
(parseSerializationAttributes):
Update parsing of serializer attributes to allow for multiple
special strings. The spec does not precisely define where the
special "attribute" keyword is allowed.

(applyMemberList):
(isSerializableAttribute): Deleted.
Move serializable attribute checking to generation.

* bindings/scripts/test/JS/JSTestSerialization.cpp:
* bindings/scripts/test/JS/JSTestSerializationInherit.cpp: Added.
* bindings/scripts/test/JS/JSTestSerializationInherit.h: Added.
* bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: Added.
* bindings/scripts/test/JS/JSTestSerializationInheritFinal.h: Added.
The toJSON implementations are the most interesting.

* bindings/scripts/test/TestSerialization.idl:
Extend this test for typedefed attributes that are serializable.
Change TestNode (a serializable Interface) to TestException (an
unserializable Interface) for expected behavior of an
unserializable attribute.

* bindings/scripts/test/TestSerializationInherit.idl:
Test for { inherit, attribute }.

* bindings/scripts/test/TestSerializationInheritFinal.idl:
Test for { inherit, attribute_names... }, and multi-level inherit.

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

2 years agoWeb Inspector: "bouncy highlight" element in TextEditor/DOMTreeOutline should update...
commit-queue@webkit.org [Tue, 31 Jan 2017 07:11:45 +0000 (07:11 +0000)]
Web Inspector: "bouncy highlight" element in TextEditor/DOMTreeOutline should update or dismiss when user scrolls
https://bugs.webkit.org/show_bug.cgi?id=167146

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2017-01-30
Reviewed by Timothy Hatcher.

* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype._revealSearchResult.scrollHandler):
(WebInspector.TextEditor.prototype._revealSearchResult.animationEnded):
(WebInspector.TextEditor.prototype._revealSearchResult):

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

2 years ago[GTK] HTTP authentication is not implemented for downloads
carlosgc@webkit.org [Tue, 31 Jan 2017 06:27:37 +0000 (06:27 +0000)]
[GTK] HTTP authentication is not implemented for downloads
https://bugs.webkit.org/show_bug.cgi?id=167583

Reviewed by Michael Catanzaro.

When a normal load is converted to a download, the HTTP authentication happens before the load is converted, and
the download starts already authenticated. However, downloads started by DownloadManager::startDownload use the
DownloadClient API to do the authentication. We don't implement didReceiveAuthenticationChallenge() in our
download client, what makes the load to be cancelled and then fail silently. We should probably add API to
handle downloads authentication, but we can also forward the authentication to the web view for downloads having
a web view associated. That would cover most of the cases, like downloading from the context menu.

* UIProcess/API/gtk/WebKitDownloadClient.cpp: Add didReceiveAuthenticationChallenge implementation.

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

2 years agoImplement PerformanceObserver
joepeck@webkit.org [Tue, 31 Jan 2017 06:21:35 +0000 (06:21 +0000)]
Implement PerformanceObserver
https://bugs.webkit.org/show_bug.cgi?id=167546
<rdar://problem/30247959>

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

* runtime/CommonIdentifiers.h:

Source/WebCore:

This implements PerformanceObserver from Performance Timeline Level 2:
https://w3c.github.io/performance-timeline/

Tests: performance-api/performance-observer-api.html
       performance-api/performance-observer-basic.html
       performance-api/performance-observer-callback-mutate.html
       performance-api/performance-observer-callback-task.html
       performance-api/performance-observer-entry-sort.html
       performance-api/performance-observer-exception.html
       performance-api/performance-observer-nested.html
       performance-api/performance-observer-order.html
       performance-api/performance-observer-periodic.html
       performance-api/performance-timeline-api.html

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
New files.

* page/Performance.h:
* page/Performance.cpp:
(WebCore::Performance::mark):
(WebCore::Performance::measure):
(WebCore::Performance::registerPerformanceObserver):
(WebCore::Performance::unregisterPerformanceObserver):
(WebCore::Performance::queueEntry):
Register PerformanceObservers with the Performance object.
When new PerformanceEntries are created (Mark and Measure
right now) check them against observers.

* page/PerformanceEntry.cpp:
(WebCore::PerformanceEntry::PerformanceEntry):
(WebCore::PerformanceEntry::typeForEntryTypeString):
* page/PerformanceEntry.h:
(WebCore::PerformanceEntry::type):
Give PerformanceEntry a convenience enum for easy comparison
and to know if it is one of the built-in known types (which the
PerformanceObserver API takes into account).

* page/PerformanceObserver.cpp: Added.
(WebCore::PerformanceObserver::PerformanceObserver):
(WebCore::PerformanceObserver::observe):
(WebCore::PerformanceObserver::disconnect):
(WebCore::PerformanceObserver::queueEntry):
(WebCore::PerformanceObserver::deliver):
* page/PerformanceObserver.h:
(WebCore::PerformanceObserver::create):
(WebCore::PerformanceObserver::typeFilter):
- TypeErrors on observe bad behavior
- Completely replace types filter on observe
- Handle register and unregister
- Handle calling the callback

* page/PerformanceObserverCallback.idl: Added.
* page/PerformanceObserverEntryList.cpp: Added.
(WebCore::PerformanceObserverEntryList::PerformanceObserverEntryList):
(WebCore::PerformanceObserverEntryList::getEntries):
(WebCore::PerformanceObserverEntryList::getEntriesByType):
(WebCore::PerformanceObserverEntryList::getEntriesByName):
* page/PerformanceObserverEntryList.h:
(WebCore::PerformanceObserverEntryList::create):
* page/PerformanceObserverEntryList.idl: Added.
Implement sorting and filtering of entries.

* page/PerformanceObserver.idl: Added.
* page/PerformanceObserverCallback.h:
(WebCore::PerformanceObserverCallback::~PerformanceObserverCallback):
Mostly autogenerated.

* page/PerformanceUserTiming.cpp:
(WebCore::UserTiming::mark):
(WebCore::UserTiming::measure):
* page/PerformanceUserTiming.h:
Update these to return the entry so it can be passed on to
any interested PerformanceObservers.

Source/WebInspectorUI:

* UserInterface/Models/NativeFunctionParameters.js:
Improve API view display of built-in performance methods.

LayoutTests:

* performance-api/performance-observer-api-expected.txt: Added.
* performance-api/performance-observer-api.html: Added.
* performance-api/performance-observer-basic-expected.txt: Added.
* performance-api/performance-observer-basic.html: Added.
* performance-api/performance-observer-callback-mutate-expected.txt: Added.
* performance-api/performance-observer-callback-mutate.html: Added.
* performance-api/performance-observer-callback-task-expected.txt: Added.
* performance-api/performance-observer-callback-task.html: Added.
* performance-api/performance-observer-entry-sort-expected.txt: Added.
* performance-api/performance-observer-entry-sort.html: Added.
* performance-api/performance-observer-exception-expected.txt: Added.
* performance-api/performance-observer-exception.html: Added.
* performance-api/performance-observer-nested-expected.txt: Added.
* performance-api/performance-observer-nested.html: Added.
* performance-api/performance-observer-order-expected.txt: Added.
* performance-api/performance-observer-order.html: Added.
* performance-api/performance-observer-periodic-expected.txt: Added.
* performance-api/performance-observer-periodic.html: Added.
PerformanceObserver tests.

* performance-api/performance-timeline-api-expected.txt: Added.
* performance-api/performance-timeline-api.html: Added.
Performance timeline tests.

* platform/efl/js/dom/global-constructors-attributes-expected.txt:
* platform/gtk/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:
* platform/win/js/dom/global-constructors-attributes-expected.txt:
New global constructors.

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

2 years agoWorkaround for simctl launch bug
jbedard@apple.com [Tue, 31 Jan 2017 04:50:40 +0000 (04:50 +0000)]
Workaround for simctl launch bug
https://bugs.webkit.org/show_bug.cgi?id=167613

Reviewed by Daniel Bates.

simctl launch will sometimes fail because of a race condition when many
simulators are being run simultaneously. These failures will always have
an exit code of 1. This change attempts to launch an app multiple times
before reporting a failure to workaround this bug.

* Scripts/webkitpy/xcode/simulator.py:
(Device.launch_app): Execute multiple launch attempts, better logging of failures.

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

2 years ago[WebRTC] getStats does not support legacy callback
commit-queue@webkit.org [Tue, 31 Jan 2017 04:34:26 +0000 (04:34 +0000)]
[WebRTC] getStats does not support legacy callback
https://bugs.webkit.org/show_bug.cgi?id=167617

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

Source/WebCore:

Covered by updated tests.

* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::getStats):
(WebCore::RTCPeerConnection::privateGetStats): Deleted.
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCPeerConnection.js:
(addIceCandidate):
(getStats): Deleted.

LayoutTests:

* fast/mediastream/RTCPeerConnection-js-built-ins-check-this-expected.txt:
* fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt:
* fast/mediastream/RTCPeerConnection-overloaded-operations-params.html:
* fast/mediastream/RTCPeerConnection-stats.html:
* fast/mediastream/RTCPeerConnection-statsSelector.html:

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

2 years agoJSDOMBinding is too big. Split it up!
weinig@apple.com [Tue, 31 Jan 2017 03:37:34 +0000 (03:37 +0000)]
JSDOMBinding is too big. Split it up!
https://bugs.webkit.org/show_bug.cgi?id=167601

Reviewed by Darin Adler.

Source/WebCore:

Splits JSDOMBinding.h/cpp up a bit by splitting out:
- JSDOMBindingCaller.h
- JSDOMBindingSecurity.h/cpp
- JSDOMExceptionHandling.h/cpp
- JSDOMWrapperCache.h/cpp

Also:
- Moves all constructor objects to JSDOMConstructor.h/cpp,
- Moves special DOMWindow accessors to JSDOMWindowBase.
- Deletes unused CallbackFunction.h/cpp

* CMakeLists.txt:
* Modules/webdatabase/Database.cpp:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/CallbackFunction.cpp: Removed.
* bindings/js/CallbackFunction.h: Removed.
* bindings/js/DOMConstructorWithDocument.h: Removed.
* bindings/js/JSCryptoCustom.cpp:
* bindings/js/JSCustomXPathNSResolver.cpp:
* bindings/js/JSDOMBinding.cpp:
* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMBindingCaller.h: Copied from Source/WebCore/bindings/js/JSDOMBinding.h.
* bindings/js/JSDOMBindingSecurity.cpp: Copied from Source/WebCore/bindings/js/JSDOMBinding.cpp.
* bindings/js/JSDOMBindingSecurity.h: Copied from Source/WebCore/bindings/js/JSDOMBinding.h.
* bindings/js/JSDOMConstructor.cpp: Copied from Source/WebCore/bindings/js/JSDOMBinding.cpp.
* bindings/js/JSDOMConstructor.h:
* bindings/js/JSDOMConvert.h:
* bindings/js/JSDOMExceptionHandling.cpp: Copied from Source/WebCore/bindings/js/JSDOMBinding.cpp.
* bindings/js/JSDOMExceptionHandling.h: Copied from Source/WebCore/bindings/js/JSDOMBinding.h.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::callerDOMWindow): Moved from JSDOMBinding.h
(WebCore::activeDOMWindow): Moved from JSDOMBinding.h
(WebCore::firstDOMWindow): Moved from JSDOMBinding.h
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSDOMWindowCustom.cpp:
* bindings/js/JSDOMWindowProperties.cpp:
* bindings/js/JSDOMWrapperCache.cpp: Copied from Source/WebCore/bindings/js/JSDOMBinding.cpp.
* bindings/js/JSDOMWrapperCache.h: Copied from Source/WebCore/bindings/js/JSDOMBinding.h.
* bindings/js/JSEventTargetCustom.h:
* bindings/js/JSHTMLElementCustom.cpp:
* bindings/js/JSLocationCustom.cpp:
* bindings/js/JSMutationObserverCustom.cpp:
* bindings/js/JSSQLStatementErrorCallbackCustom.cpp:
* bindings/js/JSStorageCustom.cpp:
* bindings/js/JSWorkerCustom.cpp:
* bindings/js/JSXPathNSResolverCustom.cpp:
* bindings/js/ScheduledAction.cpp:
* bindings/js/ScriptController.cpp:
* bindings/js/ScriptController.h:
* bindings/js/ScriptGlobalObject.cpp:
(WebCore::ScriptGlobalObject::set):
* bindings/js/StructuredClone.cpp:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateCallWith):
(GenerateParametersCheck):
(GenerateCallbackImplementationContent):
(NativeToJSValue):
* bridge/objc/WebScriptObject.mm:
* html/HTMLFrameElementBase.cpp:
* html/HTMLVideoElement.cpp:
* inspector/InspectorController.cpp:
* inspector/InspectorDOMAgent.cpp:
* inspector/PageScriptDebugServer.cpp:
* inspector/WorkerScriptDebugServer.cpp:

Source/WebKit2:

* Shared/WebCoreArgumentCoders.cpp:
Replace include of JSDOMBinding with JSDOMExceptionHandling.

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

2 years ago[QuickLook] FrameLoaderClient should return the new QuickLookHandleClient it creates
aestes@apple.com [Tue, 31 Jan 2017 03:06:05 +0000 (03:06 +0000)]
[QuickLook] FrameLoaderClient should return the new QuickLookHandleClient it creates
https://bugs.webkit.org/show_bug.cgi?id=167625

Reviewed by Andreas Kling.

Source/WebCore:

QuickLookHandleClients were being created by QuickLookHandle calling
FrameLoaderClient::didCreateQuickLookHandle() then having the FrameLoaderClient create a new
QuickLookHandleClient and set it using QuickLookHandle::setClient().

Since all FrameLoaderClient::didCreateQuickLookHandle() does is create a new
QuickLookHandleClient, this patch changes the FrameLoaderClient function to return the new
QuickLookHandleClient directly and removes the API from QuickLookHandle to set a client.
This also removes previewFileName() and previewUTI() from QuickLookHandle and instead passes
these as arguments to the FrameLoaderClient.

No change in behavior. Covered by existing tests.

* loader/EmptyClients.cpp: Added an implementation of createQuickLookHandleClient() that
returns nullptr.
* loader/FrameLoaderClient.h: Declared createQuickLookHandleClient() and removed
didCreateQuickLookHandle().
* loader/ios/QuickLook.h: Removed setClient(), previewFileName(), and previewUTI().
* loader/ios/QuickLook.mm: Removed testingOrEmptyClient().
(-[WebPreviewLoader initWithResourceLoader:resourceResponse:quickLookHandle:]): Set _client
to testingClient() if it exists, otherwise set it to the client returned by
FrameLoaderClient::createQuickLookHandleClient() it non-null, otherwise set it to
emptyClient().
(testingOrEmptyClient): Deleted.
(-[WebPreviewLoader setClient:]): Deleted.
(-[WebPreviewLoader converter]): Deleted.
(WebCore::QuickLookHandle::setClient): Deleted.
(WebCore::QuickLookHandle::previewFileName): Deleted.
(WebCore::QuickLookHandle::previewUTI): Deleted.

Source/WebKit/mac:

* WebCoreSupport/WebFrameLoaderClient.h: Declared createQuickLookHandleClient().
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::createQuickLookHandleClient): Renamed from didCreateQuickLookHandle().
(WebFrameLoaderClient::didCreateQuickLookHandle): Renamed to createQuickLookHandleClient().

Source/WebKit2:

* WebProcess/WebCoreSupport/WebFrameLoaderClient.h: Declared createQuickLookHandleClient().
* WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
(WebKit::WebFrameLoaderClient::createQuickLookHandleClient): Renamed from didCreateQuickLookHandle().
(WebKit::WebFrameLoaderClient::didCreateQuickLookHandle): Renamed to createQuickLookHandleClient().
* WebProcess/WebCoreSupport/ios/WebQuickLookHandleClient.cpp:
(WebKit::WebQuickLookHandleClient::WebQuickLookHandleClient): Set m_fileName and m_uti from
the constructor arguments instead of from handle.
* WebProcess/WebCoreSupport/ios/WebQuickLookHandleClient.h:

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

2 years agoNULL-deref crash in TextTrack::removeCue()
jer.noble@apple.com [Tue, 31 Jan 2017 02:38:07 +0000 (02:38 +0000)]
NULL-deref crash in TextTrack::removeCue()
https://bugs.webkit.org/show_bug.cgi?id=167615

Reviewed by Eric Carlson.

It's possible for a track to be removed which was never actually added to the cue list.
Specifically, if an in-band track with a negative start or end time was parsed, it would
have been rejected by TextTrack::addCue(). When it comes time to flush those in-band cues,
TextTrack::m_cues will still be NULL. Rather than ASSERT in this case, we should revert the
behavior added in r210319 and throw an exception.

* html/track/TextTrack.cpp:
(WebCore::TextTrack::removeCue):

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

2 years agoUnreviewed, remove a couple JS files that were missed in r211395.
cdumez@apple.com [Tue, 31 Jan 2017 02:36:36 +0000 (02:36 +0000)]
Unreviewed, remove a couple JS files that were missed in r211395.

* dom/xhtml/level3/core/attrisid04.js: Removed.
* dom/xhtml/level3/core/attrisid05.js: Removed.

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

2 years agoFix CMSampleBuffer leak in MediaSampleAVFObjC::createNonDisplayingCopy().
akling@apple.com [Tue, 31 Jan 2017 02:12:06 +0000 (02:12 +0000)]
Fix CMSampleBuffer leak in MediaSampleAVFObjC::createNonDisplayingCopy().
<https://webkit.org/b/167621>

Reviewed by Andy Estes.

We were failing to adopt the CMSampleBuffer after copying it. Seen on leaks bot.

* platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::createNonDisplayingCopy):

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

2 years ago[QuickLook] QLPreviewConverter and QuickLookHandle have different lifetime requirements
aestes@apple.com [Tue, 31 Jan 2017 01:54:02 +0000 (01:54 +0000)]
[QuickLook] QLPreviewConverter and QuickLookHandle have different lifetime requirements
https://bugs.webkit.org/show_bug.cgi?id=167609

Reviewed by Andreas Kling.

Currently, QuickLookHandles are owned by DocumentLoader so that the underlying
QLPreviewConverter stays alive to service subresource requests. However, the QuickLookHandle
itself only needs to live long enough to handle the main resource load. And in a follow-on
patch we will need to create QLPreviewConverters independent of QuickLookHandle.

This patch moves ownership of QuickLookHandle from DocumentLoader to ResourceLoader. It also
creates a C++ wrapper around QLPreviewConverter and teaches QuickLookHandle to transfer
ownership of the wrapper to DocumentLoader once the main resource conversion is complete.

No change in behavior. Covered by existing tests.

* WebCore.xcodeproj/project.pbxproj: Added PreviewConverter.{h,mm}.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setPreviewConverter): Renamed from setQuickLookHandle().
(WebCore::DocumentLoader::previewConverter): Renamed from quickLookHandle().
(WebCore::DocumentLoader::setQuickLookHandle): Renamed to setPreviewConverter().
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::quickLookHandle): Renamed to quickLookHandle().
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequestInternal): Changed to call PreviewConverter::safeRequest().
(WebCore::ResourceLoader::isQuickLookResource): Changed to check if m_quickLookHandle is null.
(WebCore::ResourceLoader::didCreateQuickLookHandle): Deleted.
* loader/ResourceLoader.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::shouldCreateQuickLookHandleForResponse): Changed to access m_quickLookHandle.
(WebCore::SubresourceLoader::didReceiveResponse): Ditto.
(WebCore::SubresourceLoader::didReceiveData): Ditto.
(WebCore::SubresourceLoader::didReceiveBuffer): Ditto.
(WebCore::SubresourceLoader::didFinishLoading): Ditto.
(WebCore::SubresourceLoader::didFail): Ditto.
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::finishLoading): Wrapped the call to ResourceLoader::isQuickLookResource() in USE(QUICK_LOOK).
* loader/ios/QuickLook.h: Renamed m_converter to m_previewLoader.
* loader/ios/QuickLook.mm: Renamed WebPreviewConverter to WebPreviewLoader.
(WebCore::registerQLPreviewConverterIfNeeded): Created a PreviewConverter instead of a QLPreviewConverter.
(-[WebPreviewLoader initWithResourceLoader:resourceResponse:quickLookHandle:]): Ditto.
(-[WebPreviewLoader appendDataArray:]): Accessed the QLPreviewConverter from the PreviewConverter.
(-[WebPreviewLoader finishedAppending]): Ditto.
(-[WebPreviewLoader failed]): Ditto.
(-[WebPreviewLoader converter]): Renamed from platformConverter. Returns a pointer to the PreviewConverter.
(-[WebPreviewLoader _sendDidReceiveResponseIfNecessary]): Moved _converter to DocumentLoader.
(-[WebPreviewLoader connection:didFailWithError:]): Created a PreviewConverter instead of a QLPreviewConverter.
(WebCore::QuickLookHandle::QuickLookHandle): Called FrameLoaderClient::didCreateQuickLookHandle() instead of going through FrameLoader.
(WebCore::QuickLookHandle::didReceiveData): Renamed m_converter to m_previewLoader.
(WebCore::QuickLookHandle::didReceiveBuffer): Ditto.
(WebCore::QuickLookHandle::didFinishLoading): Ditto.
(WebCore::QuickLookHandle::didFail): Ditto.
(WebCore::QuickLookHandle::setClient): Ditto.
(WebCore::QuickLookHandle::previewFileName): Ditto.
(WebCore::QuickLookHandle::previewUTI): Ditto.
(WebCore::QuickLookHandle::willSendRequest): Deleted.
* platform/ios/QuickLookSoftLink.h: Removed soft-linking of QLPreviewConverter and kQLPreviewOptionPasswordKey.
* platform/ios/QuickLookSoftLink.mm: Ditto.
* platform/network/ios/PreviewConverter.h: Added.
(WebCore::PreviewConverter::platformConverter): Added. Returns the underlying QLPreviewConverter.
* platform/network/ios/PreviewConverter.mm: Added.
(WebCore::optionsWithPassword): Creates a dictionary with the kQLPreviewOptionPasswordKey option set if password is non-null.
(WebCore::PreviewConverter::PreviewConverter): Added constructors for the delegate/response and data/uti cases.
(WebCore::PreviewConverter::safeRequest): Wraps -[QLPreviewConverter safeRequestForRequest:].
(WebCore::PreviewConverter::previewRequest): Wraps -[QLPreviewConverter previewRequest].
(WebCore::PreviewConverter::previewResponse): Wraps -[QLPreviewConverter previewResponse].
(WebCore::PreviewConverter::previewFileName): Wraps -[QLPreviewConverter previewFileName].
(WebCore::PreviewConverter::previewUTI): Wraps -[QLPreviewConverter previewUTI].

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

2 years agoCommit queue fails to look at real name aliases for the reviewer
ap@apple.com [Tue, 31 Jan 2017 01:20:24 +0000 (01:20 +0000)]
Commit queue fails to look at real name aliases for the reviewer
https://bugs.webkit.org/show_bug.cgi?id=167422

Reviewed by Joseph Pecoraro.

* Scripts/webkitpy/common/checkout/changelog_unittest.py:
(test_has_valid_reviewer): Added tests.

* Scripts/webkitpy/common/config/committers.py:
(CommitterList._name_to_contributor_map):
Made _name_to_contributor_map include alias names.

* Scripts/webkitpy/common/config/committers_unittest.py:
(CommittersTest.test_contributors_by_fuzzy_match):
Removed subtests that are now obsolete, as these matches are strict. It is not
obvious if distance based fuzzy matching for names is useful at all, but we can
look into that some other time.

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

2 years agoMarking media/modern-media-controls/buttons-container/buttons-container-buttons-prope...
ryanhaddad@apple.com [Tue, 31 Jan 2017 00:54:39 +0000 (00:54 +0000)]
Marking media/modern-media-controls/buttons-container/buttons-container-buttons-property.html as flaky on macOS WK1.
https://bugs.webkit.org/show_bug.cgi?id=167371

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

2 years agoDrop legacy Attributes.isId attribute
cdumez@apple.com [Tue, 31 Jan 2017 00:22:27 +0000 (00:22 +0000)]
Drop legacy Attributes.isId attribute
https://bugs.webkit.org/show_bug.cgi?id=167603

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/dom/historical-expected.txt:

Source/WebCore:

Drop legacy Attributes.isId attribute.

This attribute is not in the specification:
- https://dom.spec.whatwg.org/#interface-attr

Both Firefox and Chrome currently do not expose this attribute.

No new tests, rebaselined existing test.

* dom/Attr.cpp:
* dom/Attr.h:
* dom/Attr.idl:

Source/WebKit/mac:

Keep Attr.isId in ObjC bindings.

* DOM/DOMAttr.mm:
(-[DOMAttr isId]):

LayoutTests:

Drop outdated tests.

* dom/xhtml/level3/core/attrisid04-expected.txt: Removed.
* dom/xhtml/level3/core/attrisid04.xhtml: Removed.
* dom/xhtml/level3/core/attrisid05-expected.txt: Removed.
* dom/xhtml/level3/core/attrisid05.xhtml: Removed.
* fast/dom/Attr/change-id-via-attr-node-value-expected.txt:
* fast/dom/Attr/change-id-via-attr-node-value.html:
* fast/dom/Element/attrisid-extra01-expected.txt: Removed.
* fast/dom/Element/attrisid-extra01.html: Removed.

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

2 years agoSimple line layout: Small tweaks to improve performance.
zalan@apple.com [Tue, 31 Jan 2017 00:17:04 +0000 (00:17 +0000)]
Simple line layout: Small tweaks to improve performance.
https://bugs.webkit.org/show_bug.cgi?id=167611
<rdar://problem/30274294>

Reviewed by Simon Fraser.

PerformanceTests:

* Layout/simple-line-layout-non-repeating-text.html: Added.

Source/WebCore:

This is ~10% progression on the attached test case (paragraphs with non-redundant content).
median: 102.08 runs/s -> median: 114.25 runs/s

* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::LineState::appendFragmentAndCreateRunIfNeeded):
* rendering/SimpleLineLayoutFlowContents.cpp:
(WebCore::SimpleLineLayout::initializeSegments):
(WebCore::SimpleLineLayout::FlowContents::FlowContents):
* rendering/SimpleLineLayoutFlowContents.h:
* rendering/SimpleLineLayoutTextFragmentIterator.cpp:
(WebCore::SimpleLineLayout::TextFragmentIterator::nextNonWhitespacePosition):
(WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):
* rendering/SimpleLineLayoutTextFragmentIterator.h:

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

2 years agoDrop legacy constants on Event interface
cdumez@apple.com [Tue, 31 Jan 2017 00:11:49 +0000 (00:11 +0000)]
Drop legacy constants on Event interface
https://bugs.webkit.org/show_bug.cgi?id=167602

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/dom/historical-expected.txt:

Source/WebCore:

Drop legacy constants on Event interface:
MOUSEDOWN, MOUSEUP, MOUSEOVER, MOUSEOUT, MOUSEMOVE, MOUSEDRAG,
CLICK, DBLCLICK, KEYDOWN, KEYUP, KEYPRESS, DRAGDROP, FOCUS,
BLUR, SELECT, and CHANGE.

Those constants are not used for anything, they are not in the
specification and Chrome / Firefox do not have them.

No new tests, rebaselined existing test.

* dom/Event.idl:

LayoutTests:

Update / Rebaseline existing tests to stop covering those constants.

* fast/dom/constants-expected.txt:
* fast/dom/constants.html:
* fast/xmlhttprequest/xmlhttprequest-get-expected.txt:
* http/tests/workers/worker-importScriptsOnError-expected.txt:
* inspector/model/remote-object-get-properties-expected.txt:

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

2 years ago[WebRTC] Upload a diff of WebKit libwebrtc code and original libwebrtc code
commit-queue@webkit.org [Tue, 31 Jan 2017 00:06:48 +0000 (00:06 +0000)]
[WebRTC] Upload a diff of WebKit libwebrtc code and original libwebrtc code
https://bugs.webkit.org/show_bug.cgi?id=167573

Patch by Youenn Fablet <youennf@gmail.com> on 2017-01-30
Reviewed by Alex Christensen.

* WebKit/patch-libwebrtc: Added.

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

2 years agoAdd some more crash reporter information to diagnose a failed mach_msg
andersca@apple.com [Mon, 30 Jan 2017 23:37:57 +0000 (23:37 +0000)]
Add some more crash reporter information to diagnose a failed mach_msg
https://bugs.webkit.org/show_bug.cgi?id=167610

Reviewed by Dean Jackson.

Include the receive port name as well.

* Platform/IPC/mac/ConnectionMac.mm:
(IPC::readFromMachPort):

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

2 years agoQueueStatusServer should have an explicit timeout for _fetch_url
aakash_jain@apple.com [Mon, 30 Jan 2017 23:21:57 +0000 (23:21 +0000)]
QueueStatusServer should have an explicit timeout for _fetch_url
https://bugs.webkit.org/show_bug.cgi?id=167467

Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/common/net/statusserver.py:
(StatusServer._fetch_url): Add an explicit timeout of 300s.

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

2 years agoAdd support for Trac instances that host multiple projects.
commit-queue@webkit.org [Mon, 30 Jan 2017 23:03:27 +0000 (23:03 +0000)]
Add support for Trac instances that host multiple projects.
https://bugs.webkit.org/show_bug.cgi?id=167524

Patch by Kocsen Chung <kocsen_chung@apple.com> on 2017-01-30
Reviewed by Alexey Proskuryakov.

When multiple projects are hosted on a single Trac instance, the current
behavior will retrieve changesets from all tracked projects.
This patch teaches Trac.js to get project-specific changesets from Trac.
We do this by replacing the parameter `changeset=on` to `repo-projectname=on`
when querying the Trac timeline.

To tell Trac to be aware of multi-project instances we leverage the
`options` parameter when creating a new instance:

    new Trac("https://mytrac.com/", { projectIdentifier: "tracProjectName" });

If this option is not provided, the original behaviour will prevail.
Additionally, add corresponding tests.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Trac.js:
(Trac): Reason about new optional parameter 'projectIdentifier'.
(Trac.prototype.revisionURL): Given a projectIdentifier, append it to the end of the URL.
(Trac.prototype._xmlTimelineURL): Given a projectIdentifier,
replace default parameter `changeset=on` with `repo-projectname=on`.
(Trac.prototype._convertCommitInfoElementToObject): Fix missing ';'.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockTrac.js:
(MockTrac): Add support for instantiating Trac with a projectIdentifier.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/tests.js:
(setup): Provide a multiple-project MockTrac instance to all test cases for testing.
Add the following tests:
    test("revisionURL")
    test("revisionURL with Trac Identifier")
    test("_xmlTimelineURL")
    test("_xmlTimelineURL with Trac Identifier")
(this.view._latestProductiveIteration): Fix missing ';'.

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

2 years ago[iOS] position:fixed inside touch-scrollable overflow is mispositioned
simon.fraser@apple.com [Mon, 30 Jan 2017 22:51:52 +0000 (22:51 +0000)]
[iOS] position:fixed inside touch-scrollable overflow is mispositioned
https://bugs.webkit.org/show_bug.cgi?id=167604
Source/WebCore:

rdar://problem/29500273

Reviewed by Zalan Bujtas.

For layers inside touch-scrollable overflow, RenderLayerBacking::computeParentGraphicsLayerRect() needs
to account for the offset from the ancestor compositing layer's origin, to handle scrollable elements with
box-shadow, for example.

Also make the compositing log output a little easier to read.

Test: compositing/scrolling/fixed-inside-scroll.html

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::computeParentGraphicsLayerRect):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):

Source/WebKit2:

rdar://problem/29500273

Reviewed by Zalan Bujtas.

Make sure we tell m_webPageProxy.computeCustomFixedPositionRect() when visual viewports are enabled.

* UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::customFixedPositionRect):

LayoutTests:

Reviewed by Zalan Bujtas.

* compositing/scrolling/fixed-inside-scroll-expected.html: Added.
* compositing/scrolling/fixed-inside-scroll.html: Added.

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

2 years agoNULL-deref crash at PlatformMediaSession::endInterruption
jer.noble@apple.com [Mon, 30 Jan 2017 22:09:01 +0000 (22:09 +0000)]
NULL-deref crash at PlatformMediaSession::endInterruption
https://bugs.webkit.org/show_bug.cgi?id=167595

Reviewed by Eric Carlson.

Use the same, NULL-aware forEachSession() iterator rather than iterating over m_sessions directly.

* platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::beginInterruption):
(WebCore::PlatformMediaSessionManager::endInterruption):

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

2 years agoWeb Inspector: Need some limit on Async Call Stacks for async loops (rAF loops)
mattbaker@apple.com [Mon, 30 Jan 2017 22:01:07 +0000 (22:01 +0000)]
Web Inspector: Need some limit on Async Call Stacks for async loops (rAF loops)
https://bugs.webkit.org/show_bug.cgi?id=165633
<rdar://problem/29738502>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

This patch limits the memory used by the Inspector backend to store async
stack trace data.

Asynchronous stack traces are stored as a disjoint set of parent pointer
trees. Tree nodes represent asynchronous operations, and hold a copy of
the stack trace at the time the operation was scheduled. Each tree can
be regarded as a set of stack traces, stored as singly linked lists that
share part of their structure (specifically their tails). Traces belonging
to the same tree will at least share a common root. A stack trace begins
at a leaf node and follows the chain of parent pointers to the root of
of the tree. Leaf nodes always contain pending asynchronous calls.

When an asynchronous operation is scheduled with requestAnimationFrame,
setInterval, etc, a node is created containing the current call stack and
some bookkeeping data for the operation. An unique identifier comprised
of an operation type and callback identifier is mapped to the node. If
scheduling the callback was itself the result of an asynchronous call,
the node becomes a child of the node associated with that call, otherwise
it becomes the root of a new tree.

A node is either `pending`, `active`, `dispatched`, or `canceled`. Nodes
start out as pending. After a callback for a pending node is dispatched
the node is marked as such, unless it is a repeating callback such as
setInterval, in which case it remains pending. Once a node is no longer
pending it is removed, as long as it has no children. Since nodes are
reference counted, it is a property of the stack trace tree that nodes
that are no longer pending and have no children pointing to them will be
automatically pruned from the tree.

If an async operation is canceled (e.g. cancelTimeout), the associated
node is marked as such. If the callback is not being dispatched at the
time, and has no children, it is removed.

Because async operations can be chained indefinitely, stack traces are
limited to a maximum depth. The depth of a stack trace is equal to the
sum of the depths of its nodes, with a node's depth equal to the number
of frames in its associated call stack. For any stack trace,

    S = { s𝟶, s𝟷, …, s𝑘 }, with endpoints s𝟶, s𝑘
    depth(S) = depth(s𝟶) + depth(s𝟷) + … + depth(s𝑘)

A stack trace is truncated when it exceeds the maximum depth. Truncation
occurs on node boundaries, not call frames, consequently the maximum depth
is more of a target than a guarantee:

    d = maximum stack trace depth
    for all S, depth(S) ≤ d + depth(s𝑘)

Because nodes can belong to multiple stack traces, it may be necessary
to clone the tail of a stack trace being truncated to prevent other traces
from being effected.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* inspector/AsyncStackTrace.cpp: Added.
(Inspector::AsyncStackTrace::create):
(Inspector::AsyncStackTrace::AsyncStackTrace):
(Inspector::AsyncStackTrace::~AsyncStackTrace):
(Inspector::AsyncStackTrace::isPending):
(Inspector::AsyncStackTrace::isLocked):
(Inspector::AsyncStackTrace::willDispatchAsyncCall):
(Inspector::AsyncStackTrace::didDispatchAsyncCall):
(Inspector::AsyncStackTrace::didCancelAsyncCall):
(Inspector::AsyncStackTrace::buildInspectorObject):
(Inspector::AsyncStackTrace::truncate):
(Inspector::AsyncStackTrace::remove):
* inspector/AsyncStackTrace.h:
* inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::didScheduleAsyncCall):
(Inspector::InspectorDebuggerAgent::didCancelAsyncCall):
(Inspector::InspectorDebuggerAgent::willDispatchAsyncCall):
(Inspector::InspectorDebuggerAgent::didDispatchAsyncCall):
(Inspector::InspectorDebuggerAgent::didPause):
(Inspector::InspectorDebuggerAgent::clearAsyncStackTraceData):
(Inspector::InspectorDebuggerAgent::buildAsyncStackTrace): Deleted.
(Inspector::InspectorDebuggerAgent::refAsyncCallData): Deleted.
(Inspector::InspectorDebuggerAgent::derefAsyncCallData): Deleted.
* inspector/agents/InspectorDebuggerAgent.h:
* inspector/protocol/Console.json:

Source/WebInspectorUI:

* Localizations/en.lproj/localizedStrings.js:
Text for "Truncated" marker tree element.

* UserInterface/Models/StackTrace.js:
(WebInspector.StackTrace):
(WebInspector.StackTrace.fromPayload):
(WebInspector.StackTrace.prototype.get truncated):
Plumbing for new Console.StackTrace property `truncated`.

* UserInterface/Views/ThreadTreeElement.css:
(.tree-outline > .item.thread + ol > .item.truncated-call-frames):
(.tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
Styles for "Truncated" marker tree element.

* UserInterface/Views/ThreadTreeElement.js:
(WebInspector.ThreadTreeElement.prototype.refresh):
Append "Truncated" marker tree element if necessary.

* Versions/Inspector-iOS-10.3.json:

LayoutTests:

Add truncation test cases and cleanup call frame logging.

* inspector/debugger/async-stack-trace-expected.txt:
* inspector/debugger/async-stack-trace.html:
* inspector/debugger/resources/log-active-stack-trace.js: Added.
(TestPage.registerInitializer.window.getActiveStackTrace):
(TestPage.registerInitializer.logStackTrace.logCallFrame):
(TestPage.registerInitializer.):
(TestPage.registerInitializer.window.logActiveStackTrace):
(TestPage.registerInitializer):

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

2 years agoCorrect spacing regression on inter-element complex path shaping on some fonts
mmaxfield@apple.com [Mon, 30 Jan 2017 20:43:14 +0000 (20:43 +0000)]
Correct spacing regression on inter-element complex path shaping on some fonts
https://bugs.webkit.org/show_bug.cgi?id=166013

Reviewed by Simon Fraser.

Source/WebCore:

This patch brings the implementation of ComplexTextController in-line with the
design at https://trac.webkit.org/wiki/ComplexTextController. Previously,
ComplexTextController had a few problems:
- The total width computed by ComplexTextController didn't match the width if
you iterated over the entire string and added up the advances
- FontCascade::getGlyphsAndAdvancesForComplexText() tried to compensate for
the above by construing the concepts of paint advances as distinct from layout
advances
- Initial advances were considered part of layout sometimes and part of painting
other times, depending on which function reports the information
- For RTL runs, the wrong origin was added to the initial advance, and the origin
should have been subtracted instead of added

This patch exhaustively updates every function in ComplexTextController to be
consistent with the design linked to above. This design solves all of these
problems.

Tests: ComplexTextControllerTest.InitialAdvanceWithLeftRunInRTL
       ComplexTextControllerTest.InitialAdvanceInRTL
       ComplexTextControllerTest.InitialAdvanceWithLeftRunInLTR
       ComplexTextControllerTest.InitialAdvanceInLTR
       ComplexTextControllerTest.InitialAdvanceInRTLNoOrigins
       ComplexTextControllerTest.LeadingExpansion
       ComplexTextControllerTest.VerticalAdvances

* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::setLeadingExpansion): Deleted. No longer necessary.
(WebCore::GlyphBuffer::leadingExpansion): Deleted. Ditto.
* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::FontCascade::adjustSelectionRectForComplexText): Removed use of
unnecessary leadingExpansion().
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText): This function needs
to compute paint advances, which means that it can't base this information off
of layout advances. This function uses the trick mentioned at the end of the
above link to compute the paint offset of an arbitrary glyph in the middle of
an RTL run.
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::computeExpansionOpportunity): Refactored for
testing.
(WebCore::ComplexTextController::ComplexTextController): Ditto.
(WebCore::ComplexTextController::finishConstruction): Ditto.
(WebCore::ComplexTextController::offsetForPosition): This function operates on
layout advances, and the initial layout advance is already added into the
m_adjustedBaseAdvances vector by adjustGlyphsAndAdvances(). Therefore, there is
no need to add it again here.
(WebCore::ComplexTextController::advance): This function had completely busted
logic about the relationship between initial advances and the first origin in
each run. Because of the fortunate choice of only representing layout advances
in m_adjustedBaseAdvances, this entire block can be removed and the raw paint
initial advance can be reported to the GlyphBuffer. Later in the function, we
have to update the logic about how to compute a paint advance given a layout
advance and some origins. In particular, there are two tricky pieces here: 1.
The layout advance for the first glyph is equal to (initial advance - first
origin + first Core Text advance, so computing the paint offset must cancel out
the initial layout offset, and 2. the last paint advance in a run must actually
end up at the position of the first glyph in the next run, so the next run's
initial advance must be queried.
(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Previously, we
represented an initial advance of a successive run by just adding it to the
previous run's last advance. However, this is incompatible with the new model
presented in the link above, so we remove this section. We also have to add in
the logic that the layout advance for the first glyph is equal to the formula
presented above.
* platform/graphics/mac/ComplexTextController.h:
(WebCore::ComplexTextController::ComplexTextRun::initialAdvance): Adjust comment
to reflect reality.
(WebCore::ComplexTextController::leadingExpansion): Deleted.

Tools:

Unskip existing tests and make some new tests:
- Testing complex text with no origins
- Testing initial expansions
- Testing the sign of vertical advances

* TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:
(TestWebKitAPI::TEST_F):

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

2 years agoUnreviewed, rolling out r211345.
ryanhaddad@apple.com [Mon, 30 Jan 2017 20:08:29 +0000 (20:08 +0000)]
Unreviewed, rolling out r211345.

The LayoutTest for this change is failing an assertion.

Reverted changeset:

"Web Inspector: Need some limit on Async Call Stacks for async
loops (rAF loops)"
https://bugs.webkit.org/show_bug.cgi?id=165633
http://trac.webkit.org/changeset/211345

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

2 years ago[GTK][EFL] Avoid using a thin directory to create the built product on the archive...
clopez@igalia.com [Mon, 30 Jan 2017 20:05:34 +0000 (20:05 +0000)]
[GTK][EFL] Avoid using a thin directory to create the built product on the archive-built-product step.
https://bugs.webkit.org/show_bug.cgi?id=167596

Reviewed by Daniel Bates.

We avoid needing a thin directory by invoking the zip program with
the list of directories from the build directory to be zipped,
and by using the zip feature to exclude files matching a pattern.

* BuildSlaveSupport/built-product-archive:
(copyBuildFiles):
(createZipFromList):
(archiveBuiltProduct):

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

2 years agoFixed elements should not rubber-band in WK2, nor remain at negative offsets
simon.fraser@apple.com [Mon, 30 Jan 2017 19:46:40 +0000 (19:46 +0000)]
Fixed elements should not rubber-band in WK2, nor remain at negative offsets
https://bugs.webkit.org/show_bug.cgi?id=167484
rdar://problem/29453068

Reviewed by Dean Jackson.
Source/WebCore:

There were various problems with the layout rect computation:
1. It ignored the scrollBehaviorForFixedElements() which we use to avoid rubber-banding fixed
   elements in WK2, but allow in WK1, so make use of that.
2. Sometimes layouts/paints of fixed elements would be triggered when coalesced calls to
   AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll() failed to
   copy the layoutViewportOrigin to the scheduled update.
3. The layout viewport could be left with a negative top/left after rubber-banding.

Also add a way to do unconstrained scrollTo(), so that a test can call window.scrollTo(-10, -10) to
simulate rubberbanding.

Tests: fast/visual-viewport/rubberbanding-viewport-rects-header-footer.html
       fast/visual-viewport/rubberbanding-viewport-rects.html

* page/FrameView.cpp:
(WebCore::FrameView::computeLayoutViewportOrigin): Handle ScrollBehaviorForFixedElements, incorporating it
into logic that clamps layoutViewportOrigin between min/max when rubberbanding is not allowed, or not in progress.
(WebCore::FrameView::updateLayoutViewport): Pass in scrollBehaviorForFixedElements().
(WebCore::FrameView::visibleDocumentRect): The clamping here was preventing the visible rect from
escaping the document bounds, which caused fixed elements to bounce with rubber-banding, so remove the clamping,
and fix the logic to allow rubber-banding while taking headers and footers into account.
* page/FrameView.h:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll): layoutViewportOrigin has to
be pushed onto the scheduled update, just like scroll position.
* page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition): Pass in m_behaviorForFixed.
* platform/ScrollView.cpp:
(WebCore::ScrollView::ScrollView):
(WebCore::ScrollView::adjustScrollPositionWithinRange):
(WebCore::ScrollView::setScrollOffset):
* platform/ScrollView.h:
(WebCore::ScrollView::setAllowsUnclampedScrollPositionForTesting):
(WebCore::ScrollView::allowsUnclampedScrollPosition):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setAllowUnclampedScrollPosition):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit2:

Pass in StickToViewportBounds as we did before visual viewports.

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::computeCustomFixedPositionRect):

LayoutTests:

Add two tests that use internals.settings.setAllowUnclampedScrollPosition(true) and then
over-scroll to simulator rubber-banding, dumping viewport rects.

setAllowUnclampedScrollPosition() only works in WebKit2, so skip the tests elsewhere.

* TestExpectations:
* fast/visual-viewport/rubberbanding-viewport-rects-expected.txt: Added.
* fast/visual-viewport/rubberbanding-viewport-rects-header-footer-expected.txt: Added.
* fast/visual-viewport/rubberbanding-viewport-rects-header-footer.html: Added.
* fast/visual-viewport/rubberbanding-viewport-rects.html: Added.
* platform/ios-simulator-wk2/TestExpectations:
* platform/ios-simulator-wk2/fast/visual-viewport/rubberbanding-viewport-rects-expected.txt: Added.
* platform/ios-simulator-wk2/fast/visual-viewport/rubberbanding-viewport-rects-header-footer-expected.txt: Added.
* platform/mac-wk2/TestExpectations:

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

2 years agoWeb content process crashes when initiating a drag on a very large image
wenson_hsieh@apple.com [Mon, 30 Jan 2017 18:59:36 +0000 (18:59 +0000)]
Web content process crashes when initiating a drag on a very large image
https://bugs.webkit.org/show_bug.cgi?id=167564

Reviewed by Beth Dakin.

If we begin dragging an image element that is too large to show the cached image for, we will show an image file
icon instead of the cached image. This may return null if createDragImageIconForCachedImageFilename is
unimplemented, so in the meantime, we should not assume that dragImage will always exist before calling into
doSystemDrag in doImageDrag and bail from the drag operation if that is the case.

* page/DragController.cpp:
(WebCore::DragController::doImageDrag):

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

2 years agoUpdate DiagnosticLoggingClient::logDiagnosticMessageWithValue() to take in the value...
cdumez@apple.com [Mon, 30 Jan 2017 18:45:21 +0000 (18:45 +0000)]
Update DiagnosticLoggingClient::logDiagnosticMessageWithValue() to take in the value as a double
https://bugs.webkit.org/show_bug.cgi?id=167536

Reviewed by Darin Adler.

Update DiagnosticLoggingClient::logDiagnosticMessageWithValue() to take in the value as a double
instead of a string. The value needs to be numeric and the current API is error-prone.

Source/WebCore:

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerEngineFailedToLoad):
* loader/EmptyClients.cpp:
* page/DiagnosticLoggingClient.h:

Source/WebKit2:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::logDiagnosticMessage):
(WebKit::NetworkProcess::logDiagnosticMessageWithResult):
(WebKit::NetworkProcess::logDiagnosticMessageWithValue):
* NetworkProcess/NetworkProcess.h:
* Scripts/webkit/messages.py:
(headers_for_type):
* Shared/WebCoreArgumentCoders.h:
* UIProcess/HighPerformanceGraphicsUsageSampler.cpp:
(WebKit::HighPerformanceGraphicsUsageSampler::timerFired):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::logDiagnosticMessage):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithResult):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithValue):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/PerActivityStateCPUUsageSampler.cpp:
(WebKit::PerActivityStateCPUUsageSampler::loggingTimerFired):
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::goToItem):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::logDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessageWithResult):
(WebKit::WebPageProxy::logDiagnosticMessageWithValue):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:

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

2 years agoUnreviewed, rollout r211235 Pointer lock events should be delivered directly to the...
ryanhaddad@apple.com [Mon, 30 Jan 2017 18:18:46 +0000 (18:18 +0000)]
Unreviewed, rollout r211235 Pointer lock events should be delivered directly to the target element.

The LayoutTest for this change is frequently failing.

Source/WebCore:

* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleMouseForceEvent):
(WebCore::EventHandler::handleWheelEvent):
* page/PointerLockController.cpp:
(WebCore::PointerLockController::isLocked): Deleted.
(WebCore::PointerLockController::dispatchLockedWheelEvent): Deleted.
* page/PointerLockController.h:

LayoutTests:

* platform/mac/TestExpectations:
* pointer-lock/mouse-event-delivery-expected.txt:
* pointer-lock/mouse-event-delivery.html:

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

2 years agoLayoutTest media/modern-media-controls/media-controller/media-controller-auto-hide...
graouts@webkit.org [Mon, 30 Jan 2017 18:16:57 +0000 (18:16 +0000)]
LayoutTest media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-leave-after-play.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=167254
<rdar://problem/30259293>

Reviewed by Dean Jackson.

Source/WebCore:

When we would identify that we need to prolong an existing auto-hide timer, when the previous
auto-hide timer was marked as non-cancelable, calling _cancelAutoHideTimer() would not actually
cancel the previous timer, which would let it fire and hide the controls bar. We now have two
methods, _cancelAutoHideTimer() which always cancels the current auto-hide timer, and
_cancelNonEnforcedAutoHideTimer() which is used from all other existing call sites, which only
cancels the current auto-hide timer if it was marked as cancelable. This, and revised timing in
the test itself, make media/modern-media-controls/media-controller/media-controller-auto-hide-
mouse-leave-after-play.html a lot more reliable.

We also make a small drive-by fix where we ensure the "autoHideDelay" property is set first so
that setting other members which may set a timer do not used an undefined value for the auto-hide
timer delay.

* Modules/modern-media-controls/controls/controls-bar.js:
(ControlsBar.prototype.set visible):
(ControlsBar.prototype.handleEvent):
(ControlsBar.prototype._cancelNonEnforcedAutoHideTimer):
(ControlsBar.prototype._cancelAutoHideTimer):

LayoutTests:

We improve the test by setting off timers when the actual "play" and "pause" events are
triggered rather than when we call .play() or .pause() on the media element. This matches
when the auto-hide timer are set in ControlsBar and makes the test more robust. Combined
with the modern-media-controls WebCore module source changes, we can now stop marking this
test as flaky.

We apply the same change to media/modern-media-controls/media-controller/media-controller-auto-hide-pause.html
since it also sets off a timer based on the media being paused.

* media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-leave-after-play-expected.txt:
* media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-leave-after-play.html:
* media/modern-media-controls/media-controller/media-controller-auto-hide-pause.html:
* platform/mac/TestExpectations:

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

2 years ago[QuickLook] Make HTTP QuickLook tests work in Apple Internal DumpRenderTree
dbates@webkit.org [Mon, 30 Jan 2017 18:14:25 +0000 (18:14 +0000)]
[QuickLook] Make HTTP QuickLook tests work in Apple Internal DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=167483

Reviewed by Andy Estes.

Write QuickLook tests that tap a hyperlink in terms of UIHelper (in LayoutTests/resources/ui-helper.js)
so that we can run these tests in an Apple Internal build of DumpRenderTree.

* http/tests/quicklook/at-import-stylesheet-blocked.html: Write in terms of UIHelper.
* http/tests/quicklook/base-url-blocked.html: Ditto.
* http/tests/quicklook/cross-origin-iframe-blocked.html: Ditto.
* http/tests/quicklook/document-domain-is-empty-string.html: Ditto.
* http/tests/quicklook/external-stylesheet-blocked.html: Ditto.
* http/tests/quicklook/hide-referer-on-navigation.html: Ditto.
* http/tests/quicklook/resources/tap-at-point-and-notify-done.js: Removed.
* http/tests/quicklook/resources/tap-run-test-hyperlink.js: Added.
(runTest):
* http/tests/quicklook/submit-form-blocked.html: Ditto.
* http/tests/quicklook/top-navigation-blocked.html: Ditto.
* platform/ios-simulator-wk1/TestExpectations: Unskip QuickLook tests as we can now run
them in an Apple Internal build of DumpRenderTree. Note that these test are listed in
file LayoutTests/platform/ios-simulator/TestExpectations so that they are skipped in
WebKit for iOS Simulator built with the public iOS SDK as we need to fix <https://bugs.webkit.org/show_bug.cgi?id=141906>.
* platform/ios-simulator-wk1/http/tests/quicklook/top-navigation-blocked-expected.txt: Added.
For some reason the console message "Unsafe JavaScript attempt to initiate navigation" includes
a line number in DumpRenderTree (why?). This line number is not emitted when the test is run
in WebKitTestRunner. Add platform-specific result for now.

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

2 years agoREGRESSION(r202615?): [GStreamer] ASSERTION FAILED: isMainThread() in WebCore::Builti...
carlosgc@webkit.org [Mon, 30 Jan 2017 18:13:11 +0000 (18:13 +0000)]
REGRESSION(r202615?): [GStreamer] ASSERTION FAILED: isMainThread() in WebCore::BuiltinResourceHandleConstructorMap& WebCore::builtinResourceHandleConstructorMap()
https://bugs.webkit.org/show_bug.cgi?id=167003

Reviewed by Michael Catanzaro.

Add a way to create a ResourceHandle for a given SoupNetworkSession and use it in the GStreamer streaming client
to ensure both the session and the handle are created and destroyed in the secondary thread. This way we also
avoid using the default session for downloading HLS fragments.

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(ResourceHandleStreamingClient::ResourceHandleStreamingClient): Create a SoupNetworkSession and pass it to ResourceHandle::create().
* platform/network/ResourceHandle.h: Add create and constructor to receive a SoupNetworkSession.
* platform/network/ResourceHandleInternal.h: Add SoupNetworkSession member.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandleInternal::soupSession): Return the SoupNetworkSession if not nullptr.
(WebCore::ResourceHandle::create): Create a ResourceHandle without trying to use any builtin constructor and
using the given SoupNetworkSession.
(WebCore::ResourceHandle::ResourceHandle): Set the SoupNetworkSession if early request validations didn't fail.

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

2 years ago[WebRTC] Add support for libwebrtc data channel
commit-queue@webkit.org [Mon, 30 Jan 2017 17:36:43 +0000 (17:36 +0000)]
[WebRTC] Add support for libwebrtc data channel
https://bugs.webkit.org/show_bug.cgi?id=167489

Patch by Youenn Fablet <youennf@gmail.com> on 2017-01-30
Reviewed by Alex Christensen.

Partially covered by webrtc/datachannel/basic.html but not yet enabled on bots.

Introducing LibWebRTCDataChannelHandler as the integration layer between WebCore (RTCDataChannel)
and libwebrtc (DataChannelObserver).

* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::bufferedAmount):
(WebCore::RTCDataChannel::bufferedAmountIsDecreasing):
* Modules/mediastream/RTCDataChannel.h:
* Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp: Added.
(WebCore::LibWebRTCDataChannelHandler::~LibWebRTCDataChannelHandler):
(WebCore::LibWebRTCDataChannelHandler::setClient):
(WebCore::LibWebRTCDataChannelHandler::sendStringData):
(WebCore::LibWebRTCDataChannelHandler::sendRawData):
(WebCore::LibWebRTCDataChannelHandler::close):
(WebCore::LibWebRTCDataChannelHandler::OnStateChange):
(WebCore::LibWebRTCDataChannelHandler::OnMessage):
* Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::OnRemoveStream):
(WebCore::LibWebRTCMediaEndpoint::addDataChannel):
(): Deleted.
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::createDataChannelHandler):
* dom/EventNames.h:
* platform/mediastream/RTCDataChannelHandler.h:
* platform/mediastream/RTCDataChannelHandlerClient.h:
* platform/mock/RTCDataChannelHandlerMock.h:

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

2 years agoUse simctl instead of LayoutTestRelay
jbedard@apple.com [Mon, 30 Jan 2017 17:31:47 +0000 (17:31 +0000)]
Use simctl instead of LayoutTestRelay
https://bugs.webkit.org/show_bug.cgi?id=165927

Reviewed by Daniel Bates.

Part 1

LayoutTestRelay uses SPI, since recent versions of the iOS SDK allow for installing apps on
simulators through simctl (iOS 10 and later), use this functionality instead.

* Scripts/webkitpy/port/base.py:
(Port.__init__): Added _test_runner_process_constructor.
* Scripts/webkitpy/port/darwin.py:
(DarwinPort.app_identifier_from_bundle): Added function to extract bundle ID from plist.
* Scripts/webkitpy/port/driver.py:
(Driver._start): Pass worker_number to server_process so we can look up the correct simulator device to use.
(IOSSimulatorDriver): Deleted.
* Scripts/webkitpy/port/driver_unittest.py:
(DriverTest.test_stop_cleans_up_properly): Set _test_runner_process_constructor for testing.
(DriverTest.test_two_starts_cleans_up_properly): Ditto.
(DriverTest.test_start_actually_starts): Ditto.
* Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort): Remove relay_name.
(IOSSimulatorPort.__init__): Set _test_runner_process_constructor to SimulatorProcess for IOSSimulatorPort.
(IOSSimulatorPort._create_simulators): Formatting change.
(IOSSimulatorPort.relay_path): Deleted.
(IOSSimulatorPort._check_relay): Deleted.
(IOSSimulatorPort._check_port_build): Deleted. Use base class implementation
(IOSSimulatorPort._build_relay): Deleted.
(IOSSimulatorPort._build_driver): Deleted. Use base class implementation
(IOSSimulatorPort._driver_class): Deleted. Use base class implementation
* Scripts/webkitpy/port/ios_unittest.py:
(iosTest.test_32bit): Update test.
(iosTest.test_64bit): Update test.
* Scripts/webkitpy/port/server_process.py:
(ServerProcess.__init__): Added argument worker_number. This class does not make use of it. We will make use of this argument in SimulatorProcess to lookup the associated simulator device.
(ServerProcess._set_file_nonblocking): Added to share common code.
* Scripts/webkitpy/port/server_process_mock.py:
(MockServerProcess.__init__): Added argument worker_number.
* Scripts/webkitpy/port/simulator_process.py: Added.
(SimulatorProcess): Added.
(SimulatorProcess.Popen): Added.
(SimulatorProcess.Popen.__init__): Added. Initialize Popen structure with stdin, stdout, stderr and pid.
(SimulatorProcess.Popen.poll): Added. Check if the process is running.
(SimulatorProcess.Popen.wait): Added. Wait for process to close.
(SimulatorProcess.__init__): Added. Install app to device specified through port and worker_number.
(SimulatorProcess._reset): Added. Unlink fifos.
(SimulatorProcess._start): Added. Launch app on simulator, link fifos.
(SimulatorProcess._kill): Added. Shutdown app on simulator.
* Scripts/webkitpy/xcode/simulator.py:
(Device.__init__): Accept host to run install/launch/terminate.
(Device.install_app): Install app to target Device.
(Device.launch_app): Launch app on target Device.
(Device.terminate_app): Shutdown app on target Device.
(Simulator._parse_devices): Pass host to Device.

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

2 years ago[GTK] pixman fails to compile on Raspberry Pi (GCC crash)
clopez@igalia.com [Mon, 30 Jan 2017 17:09:06 +0000 (17:09 +0000)]
[GTK] pixman fails to compile on Raspberry Pi (GCC crash)
https://bugs.webkit.org/show_bug.cgi?id=167411

Reviewed by Michael Catanzaro.

Disable the ARM iwMMXt fast path for pixman, because it triggers
a GCC bug on the RPi with Raspbian/PIXEL causing a build failure.

* gtk/jhbuild.modules:

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

2 years ago[Mac][cmake] Fix the build after r211354.
ossy@webkit.org [Mon, 30 Jan 2017 17:04:18 +0000 (17:04 +0000)]
[Mac][cmake] Fix the build after r211354.
https://bugs.webkit.org/show_bug.cgi?id=167565

Unreviewed buildfix.

* PlatformMac.cmake:

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

2 years ago[GTK] Scrolling iframes, doesn't redraw their content
magomez@igalia.com [Mon, 30 Jan 2017 16:53:09 +0000 (16:53 +0000)]
[GTK] Scrolling iframes, doesn't redraw their content
https://bugs.webkit.org/show_bug.cgi?id=167581

Reviewed by Carlos Garcia Campos.

Take into account whether we are using AC or not in order to repaint an area after scrolling.

No behaviour change, no new tests.

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::invalidateContentsForSlowScroll):

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

2 years agoUnreviewed. Fix GTK+ debug build after r211365.
carlosgc@webkit.org [Mon, 30 Jan 2017 16:47:15 +0000 (16:47 +0000)]
Unreviewed. Fix GTK+ debug build after r211365.

Remove invalid assert.

* WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeNow):

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

2 years ago[GTK] Do not release OpenGL resource immediately when leaving accelerated compositing...
carlosgc@webkit.org [Mon, 30 Jan 2017 16:42:12 +0000 (16:42 +0000)]
[GTK] Do not release OpenGL resource immediately when leaving accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=167544

Reviewed by Michael Catanzaro.

Sometimes the conditions to be in AC mode or not change quickly, and then we leave AC mode just enter it again
after a very short period of time. In those cases we are dropping all the GL resources and the compositor
thread, and creating it again. We could keep the layer tree host alive for a while when exiting AC mode, and
reuse it if we enter AC mode before the previous one has been discarded. While the previous layer tree host is
alive we still need to keep it up to date, for example if the web view is resized or contents size change, and
synchronize with the threaded compositor when it becomes the layer tree host again.

* WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::~AcceleratedDrawingArea): Discard the previous layer tree host.
(WebKit::AcceleratedDrawingArea::AcceleratedDrawingArea): Initialize the timer to discard the previous layer
tree host.
(WebKit::AcceleratedDrawingArea::pageBackgroundTransparencyChanged): Notify the previous layer tree host if needed.
(WebKit::AcceleratedDrawingArea::mainFrameContentSizeChanged): Ditto.
(WebKit::AcceleratedDrawingArea::updateBackingStoreState): Ditto.
(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode): Reuse the previous layer tree host if possible.
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeNow): Exit AC mode and save the layer tree host
starting a timer of 5 seconds to discard it if not reused.
(WebKit::AcceleratedDrawingArea::discardPreviousLayerTreeHost): Invalidate and destroy the previous layer tree host.
(WebKit::AcceleratedDrawingArea::didChangeViewportAttributes): Notify the previous layer tree host if needed.
(WebKit::AcceleratedDrawingArea::deviceOrPageScaleFactorChanged): Ditto.
* WebProcess/WebPage/AcceleratedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::scrollNonCompositedContents): If it's discardable add the action to
be synchronized instead.
(WebKit::ThreadedCoordinatedLayerTreeHost::contentsSizeChanged): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::pageBackgroundTransparencyChanged): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportAttributes): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::setIsDiscardable): When the layer tree host becomes discardable,
reset the sync actions and return. When it becomes the real layer tree host again, apply all pending actions to
synchronize with the threaded compositor.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::scroll): Notify the previous layer tree host if needed.
(WebKit::DrawingAreaImpl::mainFrameContentSizeChanged): Ditto.
(WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode): Use AcceleratedDrawingArea::exitAcceleratedCompositingModeNow().
* WebProcess/WebPage/LayerTreeHost.h:
(WebKit::LayerTreeHost::setIsDiscardable): Added.

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

2 years ago[GTK] Remove support to enable/disable experimental features
rego@igalia.com [Mon, 30 Jan 2017 16:35:03 +0000 (16:35 +0000)]
[GTK] Remove support to enable/disable experimental features
https://bugs.webkit.org/show_bug.cgi?id=167586

Reviewed by Michael Catanzaro.

As requested in bug #167578 we should remove the support to enable/disable
experimental features in WebKitGTK+.
One reason is that CSS Grid Layout is going to be enabled by default now,
so we don't need it to be in this file.
Another is that this support needs to be rewritten to use
the enumerable experimental features API.

* PlatformGTK.cmake:
* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsConstructed):
* UIProcess/gtk/ExperimentalFeatures.cpp: Removed.
* UIProcess/gtk/ExperimentalFeatures.h: Removed.

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

2 years ago[GTK] Add API to handle the accelerated compositing policy
carlosgc@webkit.org [Mon, 30 Jan 2017 13:50:37 +0000 (13:50 +0000)]
[GTK] Add API to handle the accelerated compositing policy
https://bugs.webkit.org/show_bug.cgi?id=167509

Reviewed by Michael Catanzaro.

Source/WebKit2:

Now that we have brought back the on demand mode, we should allow applications to choose the policy, without
having to deal with environment variables. Settings also allows to set different policy depending on the web
view, so for example evolution could disable AC for the composer, but leave the on demand mode for the email
viewer. This patch adds a single new setting hardware-acceleration-policy to handle both
acceleratedCompositingEnabled and forceCompositingMode preferences using an enum with values
WEBKIT_HARDWARE_ACCELERATION_POLICY_ON_DEMAND, WEBKIT_HARDWARE_ACCELERATION_POLICY_ALWAYS and
WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER.

* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsSetProperty): Add setter for hardware-acceleration-policy property.
(webKitSettingsGetProperty): Add getter for hardware-acceleration-policy property.
(webkit_settings_class_init): Add hardware-acceleration-policy property.
(webkit_settings_get_hardware_acceleration_policy): Return policy according to the preferences.
(webkit_settings_set_hardware_acceleration_policy): set preferences according to the given policy.
* UIProcess/API/gtk/WebKitSettings.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updatePreferences):

Tools:

Handle new setting in MiniBrowser. The settings dialog doesn't support enum settings so it needs to be handled
as a special case. Also add test cases to the get/set API.

* MiniBrowser/gtk/BrowserSettingsDialog.c:
(hardwareAccelerationPolicyToString):
(stringToHardwareAccelerationPolicy):
(cellRendererChanged):
(browserSettingsDialogConstructed):
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp:
(testWebKitSettings):

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

2 years ago[macOS] WebHTMLView has an internal retain cycle with its flagsChangedEventMonitor.
akling@apple.com [Mon, 30 Jan 2017 12:07:15 +0000 (12:07 +0000)]
[macOS] WebHTMLView has an internal retain cycle with its flagsChangedEventMonitor.
<https://webkit.org/b/167580>

Reviewed by Antti Koivisto.

Avoid the implicit strong capture of self by keeping it in a __block variable.
Also add code to dealloc to unregister the event monitor, since it will otherwise leak.
This fixes huge WebHTMLView leaks seen on the leaks bot.

* WebView/WebHTMLView.mm:
(-[WebHTMLViewPrivate dealloc]):
(-[WebHTMLView viewDidMoveToWindow]):

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

2 years agoUnreviewed. Skip more tests timing out in GTK+ bots.
carlosgc@webkit.org [Mon, 30 Jan 2017 10:27:00 +0000 (10:27 +0000)]
Unreviewed. Skip more tests timing out in GTK+ bots.

Skip two mores tests that use UIScriptController to generate events and another one expecting native
HTML form validation popover.

* platform/gtk/TestExpectations:

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

2 years agoSeveral web timing tests crash in GTK+ and AppleWin bots
carlosgc@webkit.org [Mon, 30 Jan 2017 10:14:36 +0000 (10:14 +0000)]
Several web timing tests crash in GTK+ and AppleWin bots
https://bugs.webkit.org/show_bug.cgi?id=167577

Reviewed by Ryosuke Niwa.

The problem is that entry is used in both the key, to get name, and in the value with WTFMove. So, the name is
invalidated by the move. It could be fixed by simply copying the name, instead of using entry->name, but I think
that code could be simplified using HashMap::ensure and then we don't need any string copy, nor even the static
insertPerformanceEntry().

Fix crashes in several imported/w3c/web-platform-tests/user-timing/ tests.

* page/PerformanceUserTiming.cpp:
(WebCore::UserTiming::mark):
(WebCore::UserTiming::measure):
(WebCore::insertPerformanceEntry): Deleted.

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

2 years agoUnreviewed. Skip form validation tests timing out in GTK+ bots.
carlosgc@webkit.org [Mon, 30 Jan 2017 10:10:40 +0000 (10:10 +0000)]
Unreviewed. Skip form validation tests timing out in GTK+ bots.

* platform/gtk/TestExpectations:

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

2 years ago[Threaded Compositor] Crash in GraphicsContext3D::deleteTexture when destroying Textu...
carlosgc@webkit.org [Mon, 30 Jan 2017 08:47:30 +0000 (08:47 +0000)]
[Threaded Compositor] Crash in GraphicsContext3D::deleteTexture when destroying TextureMapperPlatformLayerProxy
https://bugs.webkit.org/show_bug.cgi?id=167575

Reviewed by Žan Doberšek.

We should clear all the buffers on invalidate to ensure we don't have textures alive after CoordinatedGraphicsScene::purgeGLResources().

Fix crash in media/video-poster-background.html.

* platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
(WebCore::TextureMapperPlatformLayerProxy::invalidate): Clear current, pending and all used buffers.

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

2 years ago[Threaded Compositor] Crash on WebCore::GLContext::version()
carlosgc@webkit.org [Mon, 30 Jan 2017 05:55:34 +0000 (05:55 +0000)]
[Threaded Compositor] Crash on WebCore::GLContext::version()
https://bugs.webkit.org/show_bug.cgi?id=167559

Reviewed by Michael Catanzaro.

Source/WebCore:

Fixes crashes in several media tests.

* platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
(WebCore::TextureMapperPlatformLayerProxy::invalidate): Clear m_compositorThreadUpdateTimer and call the update function.

Source/WebKit2:

This is happening because TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired() is fired after the
threaded compositor is deleted. CoordinatedGraphicsScene::purgeGLResources() should invalidate the proxies
before clearing the map.

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::purgeGLResources):

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

2 years agoAX: WKContentView needs to implement UITextInput methods to make speak selection...
n_wang@apple.com [Mon, 30 Jan 2017 05:03:11 +0000 (05:03 +0000)]
AX: WKContentView needs to implement UITextInput methods to make speak selection highlighting work
https://bugs.webkit.org/show_bug.cgi?id=166955

Reviewed by Ryosuke Niwa.

Source/WebCore:

Created a new version of Range::collectSelectionRect() that returns rects for each
line, so that Speak Selection doesn't need to handle searching for soft line breaks.
Also added a variant of findPlainText to search for the closest matched range to the given position.

Test: editing/text-iterator/range-of-string-closest-to-position.html

* dom/Range.cpp:
(WebCore::Range::collectSelectionRectsWithoutUnionInteriorLines):
(WebCore::Range::collectSelectionRects):
* dom/Range.h:
* editing/TextIterator.cpp:
(WebCore::findPlainTextMatches):
(WebCore::updateSearchBuffer):
(WebCore::findIteratorOptions):
(WebCore::rangeMatches):
(WebCore::findClosestPlainText):
(WebCore::findPlainText):
(WebCore::findPlainTextOffset): Deleted.
* editing/TextIterator.h:
* editing/htmlediting.h:
* testing/Internals.cpp:
(WebCore::Internals::rangeOfStringNearLocation):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit2:

Implemented methods that Speak Selection can use to retrieve the word/sentence highlighting rects.

* Scripts/webkit/messages.py:
(headers_for_type):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView webSelectionRectsForSelectionRects:]):
(-[WKContentView webSelectionRects]):
(-[WKContentView _accessibilityRetrieveRectsEnclosingSelectionOffset:withGranularity:]):
(-[WKContentView _accessibilityRetrieveRectsAtSelectionOffset:withText:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::selectionRectsCallback):
(WebKit::WebPageProxy::requestRectsForGranularityWithSelectionOffset):
(WebKit::WebPageProxy::requestRectsAtSelectionOffsetWithText):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::visiblePositionForPositionWithOffset):
(WebKit::WebPage::getRectsForGranularityWithSelectionOffset):
(WebKit::rangeNearPositionMatchesText):
(WebKit::WebPage::getRectsAtSelectionOffsetWithText):

LayoutTests:

* editing/text-iterator/range-of-string-closest-to-position-expected.txt: Added.
* editing/text-iterator/range-of-string-closest-to-position.html: Added.

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

2 years ago[QuickLook] Add a WebPreference to enable saving QuickLook documents in WebKitLegacy
aestes@apple.com [Mon, 30 Jan 2017 01:40:29 +0000 (01:40 +0000)]
[QuickLook] Add a WebPreference to enable saving QuickLook documents in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=167563
<rdar://problem/30253207>

Reviewed by Andreas Kling.

Source/WebCore:

* loader/ios/QuickLook.h: Removed unused declarations.
(WebCore::QuickLookHandle::firstRequestURL): Deleted.
* loader/ios/QuickLook.mm:
(WebCore::removeQLPreviewConverterForURL): Stopped deleting the temporary file here; that's
now done in QuickLookDocumentWriter.
(addQLPreviewConverterWithFileForURL): Changed from an exported function to a static
function since it's now only called inside QuickLook.mm.
(WebCore::QuickLookHandle::QuickLookHandle): Stopped initializing m_firstRequestURL.
(WebCore::addQLPreviewConverterWithFileForURL): Deleted.
(WebCore::qlPreviewConverterFileNameForURL): Deleted.
(WebCore::qlPreviewConverterUTIForURL): Deleted.
(WebCore::QuickLookHandle::previewRequestURL): Deleted.
(WebCore::QuickLookHandle::converter): Deleted.

Source/WebKit/mac:

Instead of only saving QuickLook documents to a temporary file when the client is
MobileSafari, base this decision on a WebPreference that clients can choose to enable.

This also changes the SPI for accessing the temporary file path and UTI. Instead of
-[WebView quickLookContentForURL:], which requires the client to pass the response URL of
the frame that saved the QuickLook document, the content dictionary is now stored as a
property of WebDataSource.

This also removes the manual lifetime management of the QLPreviewConverter from
QuickLookDocumentWriter. The QLPreviewConverter is kept alive by DocumentLoader these days,
which ensures it lives long enough to respond to subresource requests.

New API test: QuickLook.LegacyQuickLookContent

* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::didCreateQuickLookHandle): Moved the logic of deciding whether to
write a temporary file to here from the QuickLookDocumentWriter constructor.
* WebView/WebDataSource.mm: Declared _quickLookContent.
(-[WebDataSource _quickLookContent]):
(-[WebDataSource _setQuickLookContent:]):
* WebView/WebDataSourceInternal.h: Overrode _quickLookContent as a read/write property.
* WebView/WebDataSourcePrivate.h: Declared _quickLookContent as a readonly property.
* WebView/WebPreferenceKeysPrivate.h: Defined WebKitQuickLookDocumentSavingPreferenceKey.
* WebView/WebPreferences.mm:
(-[WebPreferences quickLookDocumentSavingEnabled]):
(-[WebPreferences setQuickLookDocumentSavingEnabled:]):
* WebView/WebPreferencesPrivate.h: Declared property quickLookDocumentSavingEnabled.
* WebView/WebView.mm:
(-[WebView quickLookContentForURL:]): Changed to always return nil.
* WebView/WebViewPrivate.h: Added a comment stating that clients should use
-[WebDataSource _quickLookContent] instead.

Tools:

* TestWebKitAPI/Tests/WebKit2Cocoa/QuickLook.mm:
(-[QuickLookNavigationDelegate _webView:didStartLoadForQuickLookDocumentInMainFrameWithFileName:uti:]):
(-[QuickLookNavigationDelegate _webView:didFinishLoadForQuickLookDocumentInMainFrame:]):
(runTest):
(-[QuickLookFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TEST):

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

2 years ago[iOS] Expose WebCore::DataDetection::detectContentInRange WKWebProcessPlugInRangeHandle
mitz@apple.com [Mon, 30 Jan 2017 00:26:36 +0000 (00:26 +0000)]
[iOS] Expose WebCore::DataDetection::detectContentInRange WKWebProcessPlugInRangeHandle
https://bugs.webkit.org/show_bug.cgi?id=167565

Reviewed by Sam Weinig.

Source/WebKit2:

Test: TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandle.mm

* Shared/API/Cocoa/WKDataDetectorTypes.h: Added. Moved the enum definition from
  WKWebViewConfiguration.h to here.
* Shared/API/Cocoa/WKDataDetectorTypesInternal.h: Added.
(fromWKDataDetectorTypes): Moved from WKWebView.mm.

* UIProcess/API/Cocoa/WKWebView.mm:
(fromWKDataDetectorTypes): Moved to WKDataDetectorTypesInternal.h.

* UIProcess/API/Cocoa/WKWebViewConfiguration.h: Moved WKDataDetectorTypes definition out
  to WKDataDetectorTypes.h.

* WebKit2.xcodeproj/project.pbxproj: Added references to new files.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm:
(-[WKWebProcessPlugInRangeHandle detectDataWithTypes:context:]): Added. Calls
  DataDetection::detectContentInRange.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandle.mm: Added.
(-[BundleRangeHandleRemoteObject textFromBodyRange:]):
(-[BundleRangeHandleRemoteObject bodyInnerHTMLAfterDetectingData:]):
(TEST):
* TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandlePlugIn.mm: Added.
(-[BundleRangeHandlePlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[BundleRangeHandlePlugIn webProcessPlugInBrowserContextController:didFinishDocumentLoadForFrame:]):
* TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandleProtocol.h: Added.

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

2 years agoSimple line layout: PerformanceTests/Layout/simple-line-layout-innertext.html regress...
zalan@apple.com [Sun, 29 Jan 2017 20:21:08 +0000 (20:21 +0000)]
Simple line layout: PerformanceTests/Layout/simple-line-layout-innertext.html regressed at r211108
https://bugs.webkit.org/show_bug.cgi?id=167562

Reviewed by Antti Koivisto.

Apparently RunResolver::Run::constructStringForHyphenIfNeeded() is in a superhot codepath.
The Run should not have any additional members anyway, so let's construct the hyphenated
string on demand.
Progression on simple-line-layout-innertext.html is from ~34runs/sec back to ~50runs/sec.

Covered by existing text.

* rendering/RenderTreeAsText.cpp:
(WebCore::writeSimpleLine):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
* rendering/SimpleLineLayoutResolver.cpp:
(WebCore::SimpleLineLayout::RunResolver::Run::Run):
(WebCore::SimpleLineLayout::RunResolver::Run::textWithHyphen):
(WebCore::SimpleLineLayout::RunResolver::Run::text):
(WebCore::SimpleLineLayout::RunResolver::Run::constructStringForHyphenIfNeeded): Deleted.
* rendering/SimpleLineLayoutResolver.h:

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

2 years agoAdd invalid value tests to Link header handling.
yoav@yoav.ws [Sun, 29 Jan 2017 15:13:44 +0000 (15:13 +0000)]
Add invalid value tests to Link header handling.
https://bugs.webkit.org/show_bug.cgi?id=167366

Reviewed by Alex Christensen.

* http/tests/preload/download_resources_from_invalid_headers-expected.txt:
* http/tests/preload/resources/download_resources_from_header.php:
* http/tests/preload/resources/invalid_resources_from_header.php:

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

2 years ago[EFL] Gardening on 29th Jan.
gyuyoung.kim@webkit.org [Sun, 29 Jan 2017 14:30:46 +0000 (14:30 +0000)]
[EFL] Gardening on 29th Jan.

Unreviewed EFL gardening. Update flaky tests and crash tests.

* platform/efl/TestExpectations:

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

2 years ago[Coordinated Graphics] WebPage shouldn't use the layerTreeHost directly
carlosgc@webkit.org [Sun, 29 Jan 2017 10:06:30 +0000 (10:06 +0000)]
[Coordinated Graphics] WebPage shouldn't use the layerTreeHost directly
https://bugs.webkit.org/show_bug.cgi?id=167494

Reviewed by Michael Catanzaro.

In Coordinated Graphics we have a couple of methods that the WebPage uses directly from the layer tree host,
instead of using the drawing area interface. This patch adds DrawingArea::didChangeViewportAttributes and
DrawingArea::deviceOrPageScaleFactorChanged and renames LayerTreeHost::didChangeViewportProperties as
LayerTreeHost::didChangeViewportAttributes for consistency.

* Shared/CoordinatedGraphics/SimpleViewportController.cpp:
(WebKit::SimpleViewportController::didChangeViewportAttributes): Receive an rvalue reference to avoid copies.
* Shared/CoordinatedGraphics/SimpleViewportController.h:
* WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::didChangeViewportAttributes): Forward it to the layer tree host if any.
(WebKit::AcceleratedDrawingArea::deviceOrPageScaleFactorChanged): Ditto.
* WebProcess/WebPage/AcceleratedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportAttributes): Renamed and updated to pass an rvalue reference.
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportProperties): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/LayerTreeHost.h:
(WebKit::LayerTreeHost::didChangeViewportAttributes): Renamed and updated to pass an rvalue reference.
(WebKit::LayerTreeHost::didChangeViewportProperties): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::sendViewportAttributesChanged): Use the drawing area.
(WebKit::WebPage::scalePage): Ditto
(WebKit::WebPage::setDeviceScaleFactor): Ditto.
(WebKit::WebPage::viewportPropertiesDidChange): Ditto.

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

2 years agoMigrate 97 *-disabled tests to use TestExpectations
ddkilzer@apple.com [Sun, 29 Jan 2017 07:30:39 +0000 (07:30 +0000)]
Migrate 97 *-disabled tests to use TestExpectations
<https://webkit.org/b/167537>

Reviewed by Darin Adler.

* TestExpectations: Skip renamed tests.

* fast/dom/HTMLDataGridElement/DataGridColumns-basic-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-basic.html-disabled: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html-disabled: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom.html-disabled: Removed.
* fast/dom/HTMLDataGridElement/DataGridDataSource-basic-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html-disabled: Removed.
- Tests disabled in r52512. DataGrid feature removed in r84991.

* http/tests/appcache/dynamic-entries-no-cache-expected.txt: Removed.
* http/tests/appcache/dynamic-entries-no-cache.html-disabled: Removed.
- Test disabled in r39816. AppCache dynamic entry feature removed in r95486.

* svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled: Removed.
- Unused. Same as LayoutTests/svg/W3C-SVG-1.1/filters-comptran-01-b.svg.

* animations/font-size-using-ems.html: Renamed from LayoutTests/animations/font-size-using-ems.html-disabled.
* compositing/objects/composited-object-alignment.html: Renamed from LayoutTests/compositing/objects/composited-object-alignment.html-disabled.
* compositing/tiling/huge-layer-resize.html: Renamed from LayoutTests/compositing/tiling/huge-layer-resize.html-disabled.
* compositing/tiling/huge-layer.html: Renamed from LayoutTests/compositing/tiling/huge-layer.html-disabled.
* css2.1/t1202-counter-10-b.html: Renamed from LayoutTests/css2.1/t1202-counter-10-b.html-disabled.
* css2.1/t1202-counters-10-b.html: Renamed from LayoutTests/css2.1/t1202-counters-10-b.html-disabled.
* css2.1/t1204-increment-00-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled.
* css2.1/t1204-increment-01-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled.
* css2.1/t1204-increment-02-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled.
* css2.1/t1204-reset-00-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled.
* css2.1/t1204-reset-01-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled.
* css2.1/t1204-reset-02-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled.
* dom/xhtml/level2/html/HTMLFrameElement09.xhtml: Renamed from LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled.
* dom/xhtml/level3/core/documentadoptnode22.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled.
* dom/xhtml/level3/core/documentnormalizedocument06.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled.
* dom/xhtml/level3/core/documentsetdocumenturi01.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled.
* dom/xhtml/level3/core/documentsetdocumenturi02.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled.
* dom/xhtml/level3/core/domimplementationregistry12.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled.
* dom/xhtml/level3/core/domimplementationregistry23.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled.
* dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled.
* dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled.
* dom/xhtml/level3/core/noderemovechild03.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled.
* dom/xhtml/level3/core/nodereplacechild06.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled.
* dom/xhtml/level3/core/nodereplacechild07.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled.
* dom/xhtml/level3/core/nodereplacechild08.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled.
* editing/execCommand/create-list-1.html: Renamed from LayoutTests/editing/execCommand/create-list-1.html-disabled.
* editing/input/attributed-substring-from-range-lines.html: Renamed from LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled.
* editing/pasteboard/paste-empty-startcontainer.html: Renamed from LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled.
* editing/selection/inconsistent-in-removeChildNode.html: Renamed from LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled.
* editing/style/5091898.html: Renamed from LayoutTests/editing/style/5091898.html-disabled.
* fast/css/css2-system-color.html: Renamed from LayoutTests/fast/css/css2-system-color.html-disabled.
* fast/css/font-face-in-shadow-DOM.html: Renamed from LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled.
* fast/css/limited-vendor-prefix-behavior.html: Renamed from LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled.
* fast/dom/Window/timeout-released-on-close.html: Renamed from LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled.
* fast/dom/Window/window-resize-nan.html: Renamed from LayoutTests/fast/dom/Window/window-resize-nan.html-disabled.
* fast/dom/gc-8.html: Renamed from LayoutTests/fast/dom/gc-8.html-disabled.
* fast/dynamic/crash-paint-no-documentElement-renderer.html: Renamed from LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled.
* fast/events/destroyed-atomic-string.html: Renamed from LayoutTests/fast/events/destroyed-atomic-string.html-disabled.
* fast/events/key-events-in-frame.html: Renamed from LayoutTests/fast/events/key-events-in-frame.html-disabled.
* fast/frames/iframe-scroll-page-up-down.html: Renamed from LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled.
* fast/html/marquee-alternate.html: Renamed from LayoutTests/fast/html/marquee-alternate.html-disabled.
* fast/leaks/003.html: Renamed from LayoutTests/fast/leaks/003.html-disabled.
* fast/loader/api-test-go-to-current-back-forward-item.html: Renamed from LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled.
* fast/loader/api-test-new-window-data-load-base-url.html: Renamed from LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled.
* fast/loader/form-events-back-forward.html: Renamed from LayoutTests/fast/loader/form-events-back-forward.html-disabled.
* fast/notifications/notifications-event-stop-propagation.html: Renamed from LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled.
* fast/notifications/notifications-multi-events.html: Renamed from LayoutTests/fast/notifications/notifications-multi-events.html-disabled.
* fast/ruby/after-block-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled.
* fast/ruby/after-table-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled.
* fast/ruby/generated-after-counter-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled.
* fast/ruby/generated-before-and-after-counter-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled.
* fast/shadow-dom/copy-shadow-tree.html: Renamed from LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled.
* fast/table/double-height-table-no-tbody.html: Renamed from LayoutTests/fast/table/double-height-table-no-tbody.html-disabled.
* fast/text/large-text-composed-char-dos.html: Renamed from LayoutTests/fast/text/large-text-composed-char-dos.html-disabled.
* http/tests/multipart/win-boundary-crash.html: Renamed from LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled.
* http/tests/navigation/post-goback-repost-policy.html: Renamed from LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled.
* http/tests/navigation/success200-frames-goback.html: Renamed from LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled.
* http/tests/navigation/success200-frames-reload.html: Renamed from LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled.
* http/tests/navigation/success200-subframeload-goback.html: Renamed from LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled.
* java/lc3/ArrayMethods/object-001.html: Renamed from LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled.
* java/lc3/forin/array-001.html: Renamed from LayoutTests/java/lc3/forin/array-001.html-disabled.
* jquery/effects.html: Renamed from LayoutTests/jquery/effects.html-disabled.
* js/garbage-collect-after-string-appends.html: Renamed from LayoutTests/js/garbage-collect-after-string-appends.html-disabled.
* js/kde/Date.html: Renamed from LayoutTests/js/kde/Date.html-disabled.
* js/resources/garbage-collect-after-string-appends.js: Renamed from LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled.
* js/string-concatenate-outofmemory.html: Renamed from LayoutTests/js/string-concatenate-outofmemory.html-disabled.
* media/video-canvas.html: Renamed from LayoutTests/media/video-canvas.html-disabled.
* platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html: Renamed from LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A3.1.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A3.2.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled.
* svg/batik/text/textBiDi.svg: Renamed from LayoutTests/svg/batik/text/textBiDi.svg-disabled.
* svg/custom/filter-source-alpha.svg: Renamed from LayoutTests/svg/custom/filter-source-alpha.svg-disabled.
* svg/custom/font-face-fallback.svg: Renamed from LayoutTests/svg/custom/font-face-fallback.svg-disabled.
* svg/custom/js-font-test.svg: Renamed from LayoutTests/svg/custom/js-font-test.svg-disabled.
* svg/zoom/page/zoom-svg-through-object-with-text.xhtml: Renamed from LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled.
- Renamed disabled tests now that they're skipped in TestExpectations.

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

2 years ago[Threaded Compositor] Crash when detaching the CoordinatedGraphicsScene
carlosgc@webkit.org [Sun, 29 Jan 2017 07:16:51 +0000 (07:16 +0000)]
[Threaded Compositor] Crash when detaching the CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=167547

Reviewed by Michael Catanzaro.

It seems that commitSceneState() can be called after the CoordinatedGraphicsScene has been detached.

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::commitSceneState): Return early if scene has been detached.
(WebKit::CoordinatedGraphicsScene::detach): Take the render queue lock before clearing the render queue.

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

2 years ago[Threaded Compositor] Crash when deleting the compositor run loop
carlosgc@webkit.org [Sun, 29 Jan 2017 07:15:33 +0000 (07:15 +0000)]
[Threaded Compositor] Crash when deleting the compositor run loop
https://bugs.webkit.org/show_bug.cgi?id=167545

Reviewed by Michael Catanzaro.

The problem is that we are releasing the WorkQueue before the update timer that keeps a reference to the run
loop, destroyed by the WorkQueue. So, invalidate the WorkQueue in the next run loop iteration to ensure it
happens after the CompositingRunLoop destructor.

* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::~CompositingRunLoop):

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

2 years ago[GTK] ASSERTION FAILED: !m_layerTreeHost in DrawingAreaImpl::display()
carlosgc@webkit.org [Sun, 29 Jan 2017 07:14:12 +0000 (07:14 +0000)]
[GTK] ASSERTION FAILED: !m_layerTreeHost in DrawingAreaImpl::display()
https://bugs.webkit.org/show_bug.cgi?id=167548

Reviewed by Michael Catanzaro.

The problem is that non accelerated compositing forceRepaint implementation is doing a layout and then calling
display. The layout makes the drawing area enter in AC mode and display asserts that we have a layer tree
host. forceRepaint shouldn't do the layout because display already does that and it correctly handles the case
of entering AC mode during the layout. It shouldn't call setNeedsDisplay either, because that schedules a
display, but we are going to display synchronously.

* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::forceRepaint):

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

2 years agoWeb Inspector: Need some limit on Async Call Stacks for async loops (rAF loops)
mattbaker@apple.com [Sun, 29 Jan 2017 01:02:22 +0000 (01:02 +0000)]
Web Inspector: Need some limit on Async Call Stacks for async loops (rAF loops)
https://bugs.webkit.org/show_bug.cgi?id=165633
<rdar://problem/29738502>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

This patch limits the memory used by the Inspector backend to store async
stack trace data.

Asynchronous stack traces are stored as a disjoint set of parent pointer
trees. Tree nodes represent asynchronous operations, and hold a copy of
the stack trace at the time the operation was scheduled. Each tree can
be regarded as a set of stack traces, stored as singly linked lists that
share part of their structure (specifically their tails). Traces belonging
to the same tree will at least share a common root. A stack trace begins
at a leaf node and follows the chain of parent pointers to the root of
of the tree. Leaf nodes always contain pending asynchronous calls.

When an asynchronous operation is scheduled with requestAnimationFrame,
setInterval, etc, a node is created containing the current call stack and
some bookkeeping data for the operation. An unique identifier comprised
of an operation type and callback identifier is mapped to the node. If
scheduling the callback was itself the result of an asynchronous call,
the node becomes a child of the node associated with that call, otherwise
it becomes the root of a new tree.

A node is either `pending`, `active`, `dispatched`, or `canceled`. Nodes
start out as pending. After a callback for a pending node is dispatched
the node is marked as such, unless it is a repeating callback such as
setInterval, in which case it remains pending. Once a node is no longer
pending it is removed, as long as it has no children. Since nodes are
reference counted, it is a property of the stack trace tree that nodes
that are no longer pending and have no children pointing to them will be
automatically pruned from the tree.

If an async operation is canceled (e.g. cancelTimeout), the associated
node is marked as such. If the callback is not being dispatched at the
time, and has no children, it is removed.

Because async operations can be chained indefinitely, stack traces are
limited to a maximum depth. The depth of a stack trace is equal to the
sum of the depths of its nodes, with a node's depth equal to the number
of frames in its associated call stack. For any stack trace,

    S = { s𝟶, s𝟷, …, s𝑘 }, with endpoints s𝟶, s𝑘
    depth(S) = depth(s𝟶) + depth(s𝟷) + … + depth(s𝑘)

A stack trace is truncated when it exceeds the maximum depth. Truncation
occurs on node boundaries, not call frames, consequently the maximum depth
is more of a target than a guarantee:

    d = maximum stack trace depth
    for all S, depth(S) ≤ d + depth(s𝑘)

Because nodes can belong to multiple stack traces, it may be necessary
to clone the tail of a stack trace being truncated to prevent other traces
from being effected.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* inspector/AsyncStackTrace.cpp: Added.
(Inspector::AsyncStackTrace::create):
(Inspector::AsyncStackTrace::AsyncStackTrace):
(Inspector::AsyncStackTrace::~AsyncStackTrace):
(Inspector::AsyncStackTrace::isPending):
(Inspector::AsyncStackTrace::isLocked):
(Inspector::AsyncStackTrace::willDispatchAsyncCall):
(Inspector::AsyncStackTrace::didDispatchAsyncCall):
(Inspector::AsyncStackTrace::didCancelAsyncCall):
(Inspector::AsyncStackTrace::buildInspectorObject):
(Inspector::AsyncStackTrace::truncate):
(Inspector::AsyncStackTrace::remove):
* inspector/AsyncStackTrace.h:
* inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::didScheduleAsyncCall):
(Inspector::InspectorDebuggerAgent::didCancelAsyncCall):
(Inspector::InspectorDebuggerAgent::willDispatchAsyncCall):
(Inspector::InspectorDebuggerAgent::didDispatchAsyncCall):
(Inspector::InspectorDebuggerAgent::didPause):
(Inspector::InspectorDebuggerAgent::clearAsyncStackTraceData):
(Inspector::InspectorDebuggerAgent::buildAsyncStackTrace): Deleted.
(Inspector::InspectorDebuggerAgent::refAsyncCallData): Deleted.
(Inspector::InspectorDebuggerAgent::derefAsyncCallData): Deleted.
* inspector/agents/InspectorDebuggerAgent.h:
* inspector/protocol/Console.json:

Source/WebInspectorUI:

* Localizations/en.lproj/localizedStrings.js:
Text for "Truncated" marker tree element.

* UserInterface/Models/StackTrace.js:
(WebInspector.StackTrace):
(WebInspector.StackTrace.fromPayload):
(WebInspector.StackTrace.prototype.get truncated):
Plumbing for new Console.StackTrace property `truncated`.

* UserInterface/Views/ThreadTreeElement.css:
(.tree-outline > .item.thread + ol > .item.truncated-call-frames):
(.tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
Styles for "Truncated" marker tree element.

* UserInterface/Views/ThreadTreeElement.js:
(WebInspector.ThreadTreeElement.prototype.refresh):
Append "Truncated" marker tree element if necessary.

* Versions/Inspector-iOS-10.3.json:

LayoutTests:

Add truncation test cases and cleanup call frame logging.

* inspector/debugger/async-stack-trace-expected.txt:
* inspector/debugger/async-stack-trace.html:
* inspector/debugger/resources/log-active-stack-trace.js: Added.
(TestPage.registerInitializer.window.getActiveStackTrace):
(TestPage.registerInitializer.logStackTrace.logCallFrame):
(TestPage.registerInitializer.):
(TestPage.registerInitializer.window.logActiveStackTrace):
(TestPage.registerInitializer):

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

2 years agoRemote Inspector: Listing should be updated when a target gains or loses a debugger...
commit-queue@webkit.org [Sun, 29 Jan 2017 00:39:45 +0000 (00:39 +0000)]
Remote Inspector: Listing should be updated when a target gains or loses a debugger session
https://bugs.webkit.org/show_bug.cgi?id=167449

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-01-28
Reviewed by Brian Burg.

* inspector/remote/RemoteInspector.h:
* inspector/remote/RemoteInspector.mm:
(Inspector::RemoteInspector::setupFailed):
(Inspector::RemoteInspector::updateTargetListing):
(Inspector::RemoteInspector::receivedSetupMessage):
(Inspector::RemoteInspector::receivedDidCloseMessage):
(Inspector::RemoteInspector::receivedConnectionDiedMessage):
Whenever we add/remove a connection we should update the listing properties
for that target that corresponded to that connection. In this way group
updating active sessions, the target, and pushing listing together.

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

2 years agoDon't flash a tap highlight for the entirety of an editable WKWebView
timothy_horton@apple.com [Sun, 29 Jan 2017 00:16:51 +0000 (00:16 +0000)]
Don't flash a tap highlight for the entirety of an editable WKWebView
https://bugs.webkit.org/show_bug.cgi?id=167486
<rdar://problem/30193996>

Reviewed by Dan Bernstein.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
Bail from providing a tap highlight if we are about to highlight
the entire body of an editable web view.

* dom/Document.h:
Export.

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

2 years agoCheck USE(APPLE_INTERNAL_SDK) instead of specific headers when importing from WebKitA...
wenson_hsieh@apple.com [Sat, 28 Jan 2017 23:13:17 +0000 (23:13 +0000)]
Check USE(APPLE_INTERNAL_SDK) instead of specific headers when importing from WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=167555

Reviewed by Dan Bernstein.

Instead of guarding #import <WebKitAdditions/*> on the existence of the imported file, consult
USE(APPLE_INTERNAL_SDK) instead.

Source/WebCore:

* page/ios/EventHandlerIOS.mm:
* platform/ios/DragImageIOS.mm:
* platform/ios/PasteboardIOS.mm:
* platform/mac/DragDataMac.mm:

Source/WebKit2:

* UIProcess/Cocoa/WebPageProxyCocoa.mm:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

Source/WTF:

* wtf/Platform.h:

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

2 years agoAdd Link Preload as an off-by-default experimental feature menu item.
yoav@yoav.ws [Sat, 28 Jan 2017 22:53:54 +0000 (22:53 +0000)]
Add Link Preload as an off-by-default experimental feature menu item.
https://bugs.webkit.org/show_bug.cgi?id=167201

Reviewed by Ryosuke Niwa.

Source/WebCore:

Removed the explicit setting of the Link Preload experimental feature,
as it is now on by default for testing.

No new tests as this just removes methods from settings.

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences linkPreloadEnabled]):
(-[WebPreferences setLinkPreloadEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit/win:

* WebPreferenceKeysPrivate.h:
* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::valueForKey):
(WebPreferences::setLinkPreloadEnabled):
(WebPreferences::linkPreloadEnabled):
* WebPreferences.h:
* Interfaces/IWebPreferencesPrivate.idl:

Source/WebKit2:

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetLinkPreloadEnabled):
(WKPreferencesGetLinkPreloadEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
* DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):

Websites/webkit.org:

* experimental-features.html: Added Link Preload.

LayoutTests:

Removed code explicitly enabling Link preload from the tests, as it is now
turned on by default for testing. Corrected expectation files accordingly.

* http/tests/fetch/redirectmode-and-preload.html:
* http/tests/preload/delaying_onload_link_preload_after_discovery.html:
* http/tests/preload/delaying_onload_link_preload_after_discovery_image.html:
* http/tests/preload/download_resources-expected.txt:
* http/tests/preload/download_resources.html:
* http/tests/preload/download_resources_from_header_iframe.html:
* http/tests/preload/download_resources_from_invalid_headers.html:
* http/tests/preload/dynamic_adding_preload.html:
* http/tests/preload/dynamic_remove_preload_href-expected.txt:
* http/tests/preload/dynamic_remove_preload_href.html:
* http/tests/preload/not_delaying_window_onload_before_discovery.html:
* http/tests/preload/onerror_event-expected.txt:
* http/tests/preload/onerror_event.html:
* http/tests/preload/onload_event-expected.txt:
* http/tests/preload/onload_event.html:
* http/tests/preload/resources/download_resources_from_header.php:
* http/tests/preload/resources/invalid_resources_from_header.php:
* http/tests/preload/single_download_preload-expected.txt:
* http/tests/preload/single_download_preload.html:
* http/tests/security/cached-cross-origin-preloaded-css-stylesheet.html:
* http/tests/security/cached-cross-origin-preloading-css-stylesheet.html:

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

2 years agoFix typo in error message
commit-queue@webkit.org [Sat, 28 Jan 2017 22:35:17 +0000 (22:35 +0000)]
Fix typo in error message
https://bugs.webkit.org/show_bug.cgi?id=167554

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

* bindings/scripts/CodeGenerator.pm:
(GetEnumByType):

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

2 years ago[Modern Media Controls] REGRESSION: Video stops playing after going into Full Screen...
commit-queue@webkit.org [Sat, 28 Jan 2017 18:16:41 +0000 (18:16 +0000)]
[Modern Media Controls] REGRESSION: Video stops playing after going into Full Screen in media documents
https://bugs.webkit.org/show_bug.cgi?id=167552
<rdar://problem/29601646>

Patch by Antoine Quint <graouts@apple.com> on 2017-01-28
Reviewed by Eric Carlson.

Source/WebCore:

In the case of media documents, there is a built-in behavior, implemented in MediaDocument::defaultEventHandler(),
that toggles playback when clicking or double-clicking the video. We disable this behavior by adding a "click" event
handler on the entire media shadow root and calling "preventDefault()".

Test: media/modern-media-controls/media-documents/click-on-video-should-not-pause.html

* Modules/modern-media-controls/media/media-controller.js:
(MediaController):
(MediaController.prototype.handleEvent):
(MediaController.prototype._containerWasClicked):

LayoutTests:

Add a new test that checks that clicking on a <video> within a media document does not paused after being clicked.
Since this behavior uses click events, we use window.eventSender and skip this test on iOS.

* media/modern-media-controls/media-documents/click-on-video-should-not-pause-expected.txt: Added.
* media/modern-media-controls/media-documents/click-on-video-should-not-pause.html: Added.
* platform/ios-simulator/TestExpectations:

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

2 years ago[Xcode] Clean up PAL and WebCore’s build settings a little
mitz@apple.com [Sat, 28 Jan 2017 18:05:17 +0000 (18:05 +0000)]
[Xcode] Clean up PAL and WebCore’s build settings a little
https://bugs.webkit.org/show_bug.cgi?id=167292

Reviewed by Sam Weinig.

Source/WebCore:

* Configurations/Base.xcconfig: Simplified the definition of
  GCC_WARN_64_TO_32_BIT_CONVERSION, removed the unused build setting PREBINDING, removed
  a duplicate definition of GCC_GENERATE_DEBUGGING_SYMBOLS, and removed definitions specific
  to OS X versions that are no longer supported.

* Configurations/DebugRelease.xcconfig: Removed definitions specific to OS X versions
  that are no longer supported.

Source/WebCore/PAL:

* ChangeLog: Created this file.

* Configurations/Base.xcconfig: Simplified the definition of
  GCC_WARN_64_TO_32_BIT_CONVERSION, removed the unused build setting PREBINDING, removed
  a duplicate definition of GCC_GENERATE_DEBUGGING_SYMBOLS, and removed definitions specific
  to OS X versions that are no longer supported.

* Configurations/DebugRelease.xcconfig: Removed definitions specific to OS X versions
  that are no longer supported.

* Configurations/PAL.xcconfig: Removed header search paths that do not exist or do not
  make sense. Simplified the definitions of INSTALL_PATH and SKIP_INSTALL. Removed the
  unusued build settings PRODUCT_BUNDLE_IDENTIFIER and
  WK_PREFIXED_IPHONEOS_DEPLOYMENT_TARGET. Removed the redundant definition of
  EXECUTABLE_PREFIX.

* PAL.xcodeproj/project.pbxproj: Sorted the Configurations group.

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

2 years agoResolve beforeChild's render tree position before calling addChildIgnoringContinuation.
zalan@apple.com [Sat, 28 Jan 2017 16:26:48 +0000 (16:26 +0000)]
Resolve beforeChild's render tree position before calling addChildIgnoringContinuation.
https://bugs.webkit.org/show_bug.cgi?id=167540
<rdar://problem/30126535>

Reviewed by Simon Fraser.

Source/WebCore:

Use the actual render tree position for the beforeChild when inside a flow thread.

Test: fast/multicol/assert-on-continuation-with-spanner.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::addChild):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addChild):
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::resolveMovedChild):

LayoutTests:

* fast/multicol/assert-on-continuation-with-spanner-expected.txt: Added.
* fast/multicol/assert-on-continuation-with-spanner.html: Added.

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

2 years agoAvoid synchronous style recalc in dispatchUnloadEvents().
akling@apple.com [Sat, 28 Jan 2017 15:19:59 +0000 (15:19 +0000)]
Avoid synchronous style recalc in dispatchUnloadEvents().
<https://webkit.org/b/167551>

Reviewed by Antti Koivisto.

It shouldn't be necessary to force a synchronous style resolution in an unloading document.
This call has been here since the import of KHTMLPart.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchUnloadEvents):

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

2 years agoREGRESSION(r196383): Automatic shrink-to-fit of RuleSet no longer works.
akling@apple.com [Sat, 28 Jan 2017 12:16:23 +0000 (12:16 +0000)]
REGRESSION(r196383): Automatic shrink-to-fit of RuleSet no longer works.
<https://webkit.org/b/167543>

Reviewed by Antti Koivisto.

Re-enable the automatic shrink-to-fit optimization in RuleSet.
This was disabled accidentally, which I discovered while investigating
the memory footprint of extension stylesheets.

* css/RuleSet.h:

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

2 years agoGive scripts 'high' load priority
antti@apple.com [Sat, 28 Jan 2017 12:04:43 +0000 (12:04 +0000)]
Give scripts 'high' load priority
https://bugs.webkit.org/show_bug.cgi?id=167550

Reviewed by Andreas Kling.

For historical reasons it is currently 'medium', same as web fonts and some other non-parsing blocking things.

* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::defaultPriorityForResourceType):

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

2 years agoImport web-platform-tests/user-timing
joepeck@webkit.org [Sat, 28 Jan 2017 09:26:27 +0000 (09:26 +0000)]
Import web-platform-tests/user-timing
https://bugs.webkit.org/show_bug.cgi?id=167542
<rdar://problem/22746307>

Rubber-stamped by Ryosuke Niwa.

Only failures are ones where User Timing Level 2 differs
from User Timing Level 1.

* resources/ImportExpectations:
* web-platform-tests/user-timing/OWNERS: Added.
* web-platform-tests/user-timing/idlharness-expected.txt: Added.
* web-platform-tests/user-timing/idlharness.html: Added.
* web-platform-tests/user-timing/resources/w3c-import.log: Added.
* web-platform-tests/user-timing/resources/webperftestharness.js: Added.
* web-platform-tests/user-timing/resources/webperftestharnessextension.js: Added.
* web-platform-tests/user-timing/test_user_timing_clear_marks-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_clear_marks.html: Added.
* web-platform-tests/user-timing/test_user_timing_clear_measures-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_clear_measures.html: Added.
* web-platform-tests/user-timing/test_user_timing_entry_type-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_entry_type.html: Added.
* web-platform-tests/user-timing/test_user_timing_exists-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_exists.html: Added.
* web-platform-tests/user-timing/test_user_timing_mark-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_mark.html: Added.
* web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_with_timing_attributes-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_with_timing_attributes.html: Added.
* web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_with_timing_attributes.js: Added.
* web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_without_parameter-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_without_parameter.html: Added.
* web-platform-tests/user-timing/test_user_timing_mark_exceptions-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_mark_exceptions.html: Added.
* web-platform-tests/user-timing/test_user_timing_mark_with_name_of_navigation_timing_optional_attribute-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_mark_with_name_of_navigation_timing_optional_attribute.html: Added.
* web-platform-tests/user-timing/test_user_timing_measure-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_measure.html: Added.
* web-platform-tests/user-timing/test_user_timing_measure_exceptions-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_measure_exceptions.html: Added.
* web-platform-tests/user-timing/test_user_timing_measure_navigation_timing-expected.txt: Added.
* web-platform-tests/user-timing/test_user_timing_measure_navigation_timing.html: Added.
* web-platform-tests/user-timing/w3c-import.log: Added.

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

2 years agoAdd User Timing Experimental Feature
joepeck@webkit.org [Sat, 28 Jan 2017 09:26:14 +0000 (09:26 +0000)]
Add User Timing Experimental Feature
https://bugs.webkit.org/show_bug.cgi?id=167542
<rdar://problem/22746307>

Reviewed by Ryosuke Niwa.

Source/WebCore:

* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::performanceTimelineEnabled):
* page/Performance.idl:
* page/PerformanceEntry.idl:
Make a better RuntimeEnabledFeature named "PerformanceTiming" which
is enabled if either UserTiming or ResourceTiming is enabled. This
will then expose the APIs that are only useful when at least one of
the APIs are available.

* page/PerformanceEntry.cpp:
(WebCore::PerformanceEntry::name): Deleted.
(WebCore::PerformanceEntry::entryType): Deleted.
(WebCore::PerformanceEntry::startTime): Deleted.
(WebCore::PerformanceEntry::duration): Deleted.
* page/PerformanceEntry.h:
(WebCore::PerformanceEntry::name):
(WebCore::PerformanceEntry::entryType):
(WebCore::PerformanceEntry::startTime):
(WebCore::PerformanceEntry::duration):
Inline simple accessors.

* page/PerformanceUserTiming.cpp:
(WebCore::UserTiming::measure):
Fix a bug introduced by ExceptionOr refactoring.

(WebCore::UserTiming::clearMarks):
(WebCore::UserTiming::clearMeasures):
(WebCore::clearPerformanceEntries):
(WebCore::clearPeformanceEntries): Deleted.
Fix method name typo.

Source/WebKit/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences userTimingEnabled]):
(-[WebPreferences setUserTimingEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Add setting for User Timing runtime enabled feature.

Source/WebKit/win:

* Interfaces/IWebPreferencesPrivate.idl:
* WebPreferenceKeysPrivate.h:
* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::setUserTimingEnabled):
(WebPreferences::userTimingEnabled):
* WebPreferences.h:
* WebView.cpp:
(WebView::notifyPreferencesChanged):
Add setting for User Timing runtime enabled feature.

Source/WebKit2:

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetUserTimingEnabled):
(WKPreferencesGetUserTimingEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Experimental feature. Off for now while we update ResourceTiming
and NavigationTiming to be compatible with Performance Timing 2.

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
* DumpRenderTree/win/DumpRenderTree.cpp:
(enableExperimentalFeatures):

Websites/webkit.org:

* experimental-features.html:

LayoutTests:

* platform/efl/js/dom/global-constructors-attributes-expected.txt:
* platform/gtk/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:
* platform/win/js/dom/global-constructors-attributes-expected.txt:
Update results now that experimental User Timing feature is enabled in tests.

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

2 years agoPatch Review: EWS Bubbles wrap to multiple lines but can fit on one line
joepeck@webkit.org [Sat, 28 Jan 2017 09:25:59 +0000 (09:25 +0000)]
Patch Review: EWS Bubbles wrap to multiple lines but can fit on one line
https://bugs.webkit.org/show_bug.cgi?id=167519

Reviewed by Ryosuke Niwa.

Tools:

* QueueStatusServer/templates/statusbubble.html:
To measure the bubbleContainer's width, it must not be wrapping based
on its parent container. So when measuring the width temporarily set
the parent to a very large width so as to not artificially wrap us.
Restore the parent's width after measuring.

Websites/bugs.webkit.org:

While we do post message to determine the size, the fact that we have
constrained the iframe to a size of 450px meant its body is 450px and
the div containing the bubbles wraps at 450px. Its full size (~458px)
is not returned. Although we solve this artifical constraint problem
inside of the bubble containerMetrics measuring, up this default value
from 450 to 460 to reduce UI jitter (the current measurement on my
machine is 458px).

* PrettyPatch/PrettyPatch.rb:

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

2 years ago<rdar://problem/30247736> WebKit2-7604.1.5 has failed to build: error: only virtual...
mitz@apple.com [Sat, 28 Jan 2017 08:02:16 +0000 (08:02 +0000)]
<rdar://problem/30247736> WebKit2-7604.1.5 has failed to build: error: only virtual member functions can be marked 'override'

* UIProcess/ios/PageClientImplIOS.h: Guard the declaration of requestPasswordForQuickLookDocument
  with USE(QUICK_LOOK) to match the base class.
* UIProcess/ios/PageClientImplIOS.mm: Guard the implementation as well.

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

2 years agoIgnore Xcode’s project.xcworkspace and userdata directories in this new project like...
mitz@apple.com [Sat, 28 Jan 2017 07:08:08 +0000 (07:08 +0000)]
Ignore Xcode’s project.xcworkspace and userdata directories in this new project like we do
in other projects.

Source/ThirdParty/libwebrtc:

* libwebrtc.xcodeproj: Added property svn:ignore.

Source/WebCore:

* PAL/PAL.xcodeproj: Added property svn:ignore.

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

2 years agoFix the iOS build when USE(QUICK_LOOK) is disabled.
aestes@apple.com [Sat, 28 Jan 2017 06:49:15 +0000 (06:49 +0000)]
Fix the iOS build when USE(QUICK_LOOK) is disabled.

* testing/Internals.cpp:
(WebCore::Internals::setQuickLookPassword):
* testing/Internals.h:

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

2 years ago[WK1] Do not prevent the drag client from initializing on Mac
wenson_hsieh@apple.com [Sat, 28 Jan 2017 05:08:31 +0000 (05:08 +0000)]
[WK1] Do not prevent the drag client from initializing on Mac
https://bugs.webkit.org/show_bug.cgi?id=167541

Reviewed by Dan Bernstein.

Fixes fallout from r211192. To ensure compability with WebKit clients, we need to ensure that WebDragClient is
initialized everywhere when creating a WebView. Stub out method implementations as no-ops for non-Mac platforms.
This caused certain clients, such as Mail, to crash when a webView closes due to  null dereference.

* WebCoreSupport/WebDragClient.mm:
(WebDragClient::WebDragClient):
(WebDragClient::actionMaskForDrag):
(WebDragClient::willPerformDragDestinationAction):
(WebDragClient::dragSourceActionMaskForPoint):
(WebDragClient::willPerformDragSourceAction):
(WebDragClient::startDrag):
(WebDragClient::declareAndWriteDragImage):
(WebDragClient::declareAndWriteAttachment):
* WebView/WebView.mm:
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

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

2 years ago[iOS] Add a test for _WKNSFileManagerExtras
aestes@apple.com [Sat, 28 Jan 2017 05:05:37 +0000 (05:05 +0000)]
[iOS] Add a test for _WKNSFileManagerExtras
https://bugs.webkit.org/show_bug.cgi?id=167478

Reviewed by Andreas Kling.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2Cocoa/NSFileManagerExtras.mm: Added.
(expectAttributes):
(TEST):

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