WebKit-https.git
4 years agoExpose TextIndicator-backed snapshot and rect gathering on DOMNode
timothy_horton@apple.com [Sat, 25 Jul 2015 23:11:16 +0000 (23:11 +0000)]
Expose TextIndicator-backed snapshot and rect gathering on DOMNode
https://bugs.webkit.org/show_bug.cgi?id=147298
<rdar://problem/21905839>

Reviewed by Sam Weinig.

* bindings/objc/DOM.mm:
(-[DOMNode getPreviewSnapshotImage:andRects:]):
* bindings/objc/DOMExtensions.h:

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

4 years agoREGRESSION (bmalloc): WebKit performance tests don't report memory stats.
clopez@igalia.com [Sat, 25 Jul 2015 14:46:20 +0000 (14:46 +0000)]
REGRESSION (bmalloc): WebKit performance tests don't report memory stats.
https://bugs.webkit.org/show_bug.cgi?id=141247

Reviewed by Geoffrey Garen.

Meanwhile a better way of getting memory stats with bmalloc is not found
(see bug 136592), we can report as memory stats the resident set size
information that the operating system provides to us.

This at least should be good enough to get back the memory stats on the
performance tests and being able to track down memory usage regressions
at https://perf.webkit.org

* wtf/FastMalloc.cpp:
(WTF::fastMallocStatistics): Report maxrss data as committedVMBytes.

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

4 years agoAnother build fix. Removed the unused argument.
rniwa@webkit.org [Sat, 25 Jul 2015 09:19:13 +0000 (09:19 +0000)]
Another build fix. Removed the unused argument.

* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayer::setTileSize):

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

4 years agoiOS build fix after r187384.
rniwa@webkit.org [Sat, 25 Jul 2015 08:07:49 +0000 (08:07 +0000)]
iOS build fix after r187384.

* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayer::setTileSize):

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

4 years agoAX: iOS: Video "start playback" playback controls not accessible
cfleizach@apple.com [Sat, 25 Jul 2015 07:59:35 +0000 (07:59 +0000)]
AX: iOS: Video "start playback" playback controls not accessible
https://bugs.webkit.org/show_bug.cgi?id=147285

Reviewed by Jer Noble.

The start playback control also needs the right label.

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.createBase):

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

4 years agoRemove a file that was accidentally added in r142320
timothy_horton@apple.com [Sat, 25 Jul 2015 06:02:43 +0000 (06:02 +0000)]
Remove a file that was accidentally added in r142320

* PlatformMac.cmake:
* platform/mac/PlatformSpeechSynthesisMac.mm: Removed.
It looks like Chris added PlatformSpeechSynthesisMac and
PlatformSpeechSynthesizerMac but only meant to add the latter.

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

4 years agoRemove a file that was supposed to be removed in r158096
timothy_horton@apple.com [Sat, 25 Jul 2015 05:59:46 +0000 (05:59 +0000)]
Remove a file that was supposed to be removed in r158096

* platform/graphics/mac/WebTiledLayer.h: Removed.
* platform/graphics/mac/WebTiledLayer.mm: Removed.

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

4 years agoiOS 8 build fix attempt after r187215.
rniwa@webkit.org [Sat, 25 Jul 2015 05:38:22 +0000 (05:38 +0000)]
iOS 8 build fix attempt after r187215.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Deleted.

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

4 years ago[EFL] Build fix in ProtectionSpaceBase.cpp
jinwoo7.song@samsung.com [Sat, 25 Jul 2015 05:29:52 +0000 (05:29 +0000)]
[EFL] Build fix in ProtectionSpaceBase.cpp
https://bugs.webkit.org/show_bug.cgi?id=147289

Reviewed by Brent Fulgham.

Fix the build break for [-Werror=return-type] error.

* platform/network/ProtectionSpaceBase.cpp:
(WebCore::ProtectionSpaceBase::isPasswordBased):

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

4 years ago[Win] Test results gardening.
bfulgham@apple.com [Sat, 25 Jul 2015 04:32:11 +0000 (04:32 +0000)]
[Win] Test results gardening.

* platform/win/TestExpectations:
* platform/win/js/dom/global-constructors-attributes-expected.txt:

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

4 years agotext-overflow: ellipsis is broken by text-align: right and padding-left
mmaxfield@apple.com [Sat, 25 Jul 2015 03:51:06 +0000 (03:51 +0000)]
text-overflow: ellipsis is broken by text-align: right and padding-left
https://bugs.webkit.org/show_bug.cgi?id=121902

Reviewed by Zalan Bujtas.

Source/WebCore:

Right offsets (which include padding) are not the same as widths (which don't).

Test: fast/inline/padding-ellipsis-right.html

* rendering/RenderBlockLineLayout.cpp:
(WebCore::updateLogicalWidthForRightAlignedBlock):
(WebCore::RenderBlockFlow::checkLinesForTextOverflow):

LayoutTests:

Updating expected results.

* fast/inline/padding-ellipsis-right-expected.html: Added.
* fast/inline/padding-ellipsis-right.html: Added.
* platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.png:
* platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
* platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.png:
* platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
* platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.png:
* platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
* platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.png:
* platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
* platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.png:
* platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.png:
* platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:

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

4 years agoTried to fix the iOS 9 build after r187375.
mitz@apple.com [Sat, 25 Jul 2015 03:41:08 +0000 (03:41 +0000)]
Tried to fix the iOS 9 build after r187375.

* platform/network/mac/CookieJarMac.mm:

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

4 years agoUnreviewed, updated my nick name in contributors.json
hyungwook.lee@navercorp.com [Sat, 25 Jul 2015 03:13:39 +0000 (03:13 +0000)]
Unreviewed, updated my nick name in contributors.json

* Scripts/webkitpy/common/config/contributors.json:

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

4 years ago[MSE] Incorrect sample timestamps when using "sequence" mode
commit-queue@webkit.org [Sat, 25 Jul 2015 02:37:39 +0000 (02:37 +0000)]
[MSE] Incorrect sample timestamps when using "sequence" mode
https://bugs.webkit.org/show_bug.cgi?id=147252

Patch by Sajid Anwar <sajidanwar94@gmail.com> on 2015-07-24
Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-sequence-timestamps.html

According to the specification, the "sequence" mode indicates that the samples in the buffer will use generated timestamps
instead of the presentation/decode timestamps already present in the sample. The current implementation always adds
the current timestamp offset to the samples' timestamps, as expected for "segments" mode.

Add a method to media samples to allow their presentation and decode timestamps to be set to specific values.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Fix an algorithm condition to align with the specification, and
    correctly set the presentation and decode timestamps of samples when in "sequence" mode.
* platform/MediaSample.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::setTimestamps): Add a new method to set the values of a sample's presentation and decode timestamps.
* platform/mock/mediasource/MockBox.h:
(WebCore::MockBox::setTimestamps): Set m_presentationTimestamp and m_decodeTimestamp.
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockMediaSample::offsetTimestampsBy): Pass to MockBox.
* testing/Internals.cpp:
(WebCore::Internals::setShouldGenerateTimestamps): Expose the internal `setShouldGenerateTimestamps` method of SourceBuffer.
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* media/media-source/media-source-sequence-timestamps-expected.txt: Added.
* media/media-source/media-source-sequence-timestamps.html: Added.

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

4 years agoDon't create UIWebFormAccessory if we don't require accessory view.
commit-queue@webkit.org [Sat, 25 Jul 2015 01:08:19 +0000 (01:08 +0000)]
Don't create UIWebFormAccessory if we don't require accessory view.
https://bugs.webkit.org/show_bug.cgi?id=147283

Don't try to intialize _formAccessoryView if requiresAccessoryView returns false since we don't
need it yet.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-24
Reviewed by Dan Bernstein.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView inputAccessoryView]):

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

4 years agoWKWebsiteDataStore remove methods don't properly delete cookies
andersca@apple.com [Sat, 25 Jul 2015 00:33:03 +0000 (00:33 +0000)]
WKWebsiteDataStore remove methods don't properly delete cookies
https://bugs.webkit.org/show_bug.cgi?id=147282
rdar://problem/21948230

Reviewed by Sam Weinig.

Source/WebCore:

Rename deleteCookiesForHostname to deleteCookiesForHostnames and
make it take a vector of hostnames instead.

Also, fix the Mac implementation to not be O(n2) by putting all cookies
in a dictionary keyed on the domain.

Also make sure to call _saveStorage after deleting cookies.

Finally, get rid of deleteCookiesForHostname from CookieJarCFNet.cpp and
use the Mac implementation on iOS as well. Just stub out deleteCookiesForHostnames
on Windows since nobody is calling it.

* platform/network/PlatformCookieJar.h:
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::deleteCookiesForHostnames):
(WebCore::deleteCookiesForHostname): Deleted.
* platform/network/mac/CookieJarMac.mm:
(WebCore::deleteCookiesForHostnames):
(WebCore::deleteAllCookiesModifiedSince):
(WebCore::deleteCookiesForHostname): Deleted.
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::deleteCookiesForHostnames):
(WebCore::deleteCookiesForHostname): Deleted.
* platform/spi/cf/CFNetworkSPI.h:

Source/WebKit2:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
Call deleteCookiesForHostnames instead of iterating over each hostname.

* WebProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::deleteCookiesForHostname):
Call deleteCookiesForHostnames.

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

4 years agoAX: scrollable elements do not allow 3-finger swipe
cfleizach@apple.com [Fri, 24 Jul 2015 23:26:34 +0000 (23:26 +0000)]
AX: scrollable elements do not allow 3-finger swipe
https://bugs.webkit.org/show_bug.cgi?id=141893

Reviewed by Mario Sanchez Prada.

Source/WebCore:

To allow iOS Accessibility to perform by-page scrolling in overflow areas, we move
that scrolling code into AccessibilityObject and then iterate all the possible ScrollableAreas,
rather than just finding the parents that are ScrollViews.

Test: platform/ios-simulator/accessibility/scroll-in-overflow-div.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::scrollAreaAndAncestor):
(WebCore::AccessibilityObject::scrollPosition):
(WebCore::AccessibilityObject::scrollVisibleContentRect):
(WebCore::AccessibilityObject::scrollContentsSize):
(WebCore::AccessibilityObject::scrollByPage):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityScroll:]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(-[WebAccessibilityObjectWrapper _accessibilityScrollPosition]):
(-[WebAccessibilityObjectWrapper _accessibilityScrollSize]):
(-[WebAccessibilityObjectWrapper _accessibilityScrollVisibleRect]):
(-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):

Tools:

Support global notification listeners for iOS code.
Fix an issue in DRT where the dictionary of data was not being passed back to the layout test for the notication callback.
Implement scrollUp/Down/Left/Right.

* DumpRenderTree/AccessibilityController.h:
* DumpRenderTree/AccessibilityUIElement.cpp:
(increaseTextSelectionCallback):
(scrollPageUpCallback):
(scrollPageDownCallback):
(scrollPageLeftCallback):
(scrollPageRightCallback):
(decreaseTextSelectionCallback):
(getElementTextLengthCallback):
(AccessibilityUIElement::getJSClass):
* DumpRenderTree/AccessibilityUIElement.h:
* DumpRenderTree/ios/AccessibilityControllerIOS.mm:
(AccessibilityController::~AccessibilityController):
(AccessibilityController::elementAtPoint):
(AccessibilityController::addNotificationListener):
(AccessibilityController::platformResetToConsistentState):
(AccessibilityController::removeNotificationListener):
* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::AccessibilityUIElement):
(AccessibilityUIElement::subrole):
(AccessibilityUIElement::scrollPageUp):
(AccessibilityUIElement::scrollPageDown):
(AccessibilityUIElement::scrollPageLeft):
(AccessibilityUIElement::scrollPageRight):
(AccessibilityUIElement::roleDescription):
* DumpRenderTree/mac/AccessibilityNotificationHandler.mm:
(-[AccessibilityNotificationHandler _notificationReceived:]):
* WebKitTestRunner/InjectedBundle/AccessibilityController.h:
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::linkedElement):
(WTR::AccessibilityUIElement::headerElementAtIndex):
(WTR::AccessibilityUIElement::assistiveTechnologySimulatedFocus):
(WTR::AccessibilityUIElement::scrollPageUp):
(WTR::AccessibilityUIElement::scrollPageDown):
(WTR::AccessibilityUIElement::scrollPageLeft):
(WTR::AccessibilityUIElement::scrollPageRight):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm:
(WTR::AccessibilityController::addNotificationListener):
(WTR::AccessibilityController::removeNotificationListener):
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::AccessibilityUIElement):
(WTR::AccessibilityUIElement::assistiveTechnologySimulatedFocus):
(WTR::AccessibilityUIElement::scrollPageUp):
(WTR::AccessibilityUIElement::scrollPageDown):
(WTR::AccessibilityUIElement::scrollPageLeft):
(WTR::AccessibilityUIElement::scrollPageRight):
(WTR::AccessibilityUIElement::increaseTextSelection):

LayoutTests:

* platform/ios-simulator/accessibility/scroll-in-overflow-div-expected.txt: Added.
* platform/ios-simulator/accessibility/scroll-in-overflow-div.html: Added.

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

4 years agoSource/WebCore:
bfulgham@apple.com [Fri, 24 Jul 2015 23:24:38 +0000 (23:24 +0000)]
Source/WebCore:
[Win] Connect UserScript and UserStyleSheet through WebView.
https://bugs.webkit.org/show_bug.cgi?id=147279
<rdar://problem/21990767>

Reviewed by Dean Jackson.

Tested by http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher.html as well
as many skipped tests.

* DerivedSources.cpp: Conditionally compile JSSecurityPolicyViolationEvent.cpp if CSP_NEXT is enabled.
* DerivedSources.make: Generate bindings for SecurityPolicyViolationEvent.idl.
* WebCore.vcxproj/WebCore.vcxproj: Add missing files.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.

Source/WebKit/win:
[Win] Connect UserScript and UserStyleSheet through WebView.
https://bugs.webkit.org/show_bug.cgi?id=147279
<rdar://problem/21990767>

Reviewed by Dean Jackson.

* Interfaces/IWebViewPrivate.idl: Add updated API for 'addUserScriptToGroup' and
'addUserStyleSheetToGroup'
* WebView.cpp:
(WebView::addUserScriptToGroup): Add implementation.
(toStringVector): Added helper function.
(WebView::addUserStyleSheetToGroup): Add implementation.
(WebView::removeUserScriptFromGroup): Ditto.
(WebView::removeUserStyleSheetFromGroup): Ditto.
(WebView::removeUserScriptsFromGroup): Ditto.
(WebView::removeUserStyleSheetsFromGroup): Ditto.
(WebView::removeAllUserContentFromGroup): Ditto.
* WebView.h:

Tools:
[Win] Activate CSP_NEXT and Connect UserScript and UserStyleSheet through WebView.
https://bugs.webkit.org/show_bug.cgi?id=147279
<rdar://problem/21990767>

Reviewed by Dean Jackson.

* DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::addUserScript):
(TestRunner::addUserStyleSheet):
(TestRunner::setDeveloperExtrasEnabled):

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

4 years ago[Cocoa] Clean up server trust handling in ResourceHandle.
ap@apple.com [Fri, 24 Jul 2015 22:43:42 +0000 (22:43 +0000)]
[Cocoa] Clean up server trust handling in ResourceHandle.
https://bugs.webkit.org/show_bug.cgi?id=147277
rdar://problem/21394410

Reviewed by Brady Eidson.

* platform/network/ProtectionSpaceBase.h: (WebCore::ProtectionSpaceBase::isPasswordBased):
* platform/network/ProtectionSpaceBase.cpp: (WebCore::ProtectionSpaceBase::isPasswordBased):
Added. This is somewhat weak, as authentication schemes could change, but I couldn't find
any better way.

* platform/network/ResourceHandle.h:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
Factored out password handling, and made sure to not try that for server trust.

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

4 years ago[iOS]: Inline video controls are blurry on scaled-down pages on non-retina devices.
zalan@apple.com [Fri, 24 Jul 2015 22:25:52 +0000 (22:25 +0000)]
[iOS]: Inline video controls are blurry on scaled-down pages on non-retina devices.
https://bugs.webkit.org/show_bug.cgi?id=147272
rdar://problem/21429111

Reviewed by Simon Fraser.

Blurry inline video controls are the result of transform scaling up the content when the page
is zoomed out (page scale > 1).
This patch addresses the blurriness by switching to css zoom when the content is being scaled up.
While transform scale is a paint time operation, css zoom triggers layout and the content is getting
painted on a non-scaled graphics context.

* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-timeline-container):
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.set pageScaleFactor):

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

4 years agoAdd image for a blog post
mmaxfield@apple.com [Fri, 24 Jul 2015 22:15:50 +0000 (22:15 +0000)]
Add image for a blog post

* blog-files/el-capitan-system-font.png: Added.

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

4 years agoNetworking process crash in NetworkConnectionToWebProcess::convertMainResourceLoadToD...
andersca@apple.com [Fri, 24 Jul 2015 22:01:01 +0000 (22:01 +0000)]
Networking process crash in NetworkConnectionToWebProcess::convertMainResourceLoadToDownload while attempting to download a blob
https://bugs.webkit.org/show_bug.cgi?id=147276
rdar://problem/21423353

Reviewed by Andreas Kling.

We currently don't support downloading blobs, so for now just bail if we encounter a null loader inside
convertMainResourceLoadToDownload (which happens when trying to download a blob URL).

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didCleanupResourceLoader):
Rewrite the assertion to be more clear - it's fine to do an extra hash lookup in debug builds.

(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):
Bail if loader is null.

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

4 years agoAvoid 2 times name iteration in Object.assign
utatane.tea@gmail.com [Fri, 24 Jul 2015 21:45:21 +0000 (21:45 +0000)]
Avoid 2 times name iteration in Object.assign
https://bugs.webkit.org/show_bug.cgi?id=147268

Reviewed by Geoffrey Garen.

Object.assign calls Object.getOwnPropertyNames & Object.getOwnPropertySymbols to collect all the names.
But exposing the private API that collects both at the same time makes the API efficient when the given Object has so many non-indexed properties.
Since Object.assign is so generic API (some form of utility API), the form of the given Object is not expected.
So the taken object may have so many non-indexed properties.

In this patch, we introduce `ownEnumerablePropertyKeys` private function.
It is minor changed version of `[[OwnPropertyKeys]]` in the ES6 spec;
It only includes enumerable properties.

By filtering out the non-enumerable properties in the exposed private function,
we avoid calling @objectGetOwnPropertyDescriptor for each property at the same time.

* builtins/ObjectConstructor.js:
(assign):
* runtime/CommonIdentifiers.h:
* runtime/EnumerationMode.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* runtime/ObjectConstructor.cpp:
(JSC::ownEnumerablePropertyKeys):
* runtime/ObjectConstructor.h:
* tests/stress/object-assign-enumerable.js: Added.
(shouldBe):
* tests/stress/object-assign-order.js: Added.
(shouldBe):

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

4 years agovmmap crash at JavaScriptCore: 0x31cd12f6 (the JavaScript malloc zone enumerator)
ggaren@apple.com [Fri, 24 Jul 2015 21:29:07 +0000 (21:29 +0000)]
vmmap crash at JavaScriptCore: 0x31cd12f6 (the JavaScript malloc zone enumerator)
https://bugs.webkit.org/show_bug.cgi?id=147274

Reviewed by Anders Carlsson.

It's not really clear why vmmap sometimes fails to read the target
process, but we can avoid a crash when it does. This is useful because
you'll still get all the non-bmalloc data out of the target process,
and bmalloc might not even be relevant to your investigation.

* bmalloc/Zone.cpp:
(bmalloc::remoteRead): Check for failure.

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

4 years agoJavaScriptCore bmalloc should not register its malloc zone more than once
ggaren@apple.com [Fri, 24 Jul 2015 21:03:09 +0000 (21:03 +0000)]
JavaScriptCore bmalloc should not register its malloc zone more than once
https://bugs.webkit.org/show_bug.cgi?id=147273

Reviewed by Andreas Kling.

This was a goof: The Zone constructor, by virtue of running automatically,
was registering a Zone inside the analysis process.

* bmalloc/Zone.cpp:
(bmalloc::remoteRead): Clarify that the pointer is remote.

(bmalloc::enumerator):
(bmalloc::Zone::Zone):
* bmalloc/Zone.h: Separate the normal constructor and the remote constructor.
The remote constructor skips zone registration since its goal is not
to register a zone in the current process or do any allocation but rather
to mirror the bytes of the zone from the target process.

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

4 years agoRemove WEBCORE_EXPORT from Page::allowsMediaDocumentInlinePlayback()
ap@apple.com [Fri, 24 Jul 2015 20:31:59 +0000 (20:31 +0000)]
Remove WEBCORE_EXPORT from Page::allowsMediaDocumentInlinePlayback()
https://bugs.webkit.org/show_bug.cgi?id=147260

Reviewed by Daniel Bates.

* page/Page.h:
(WebCore::Page::allowsMediaDocumentInlinePlayback):

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

4 years agoCall fixChangeLogPatch when generating patches from webkit-patch
basile_clement@apple.com [Fri, 24 Jul 2015 20:22:58 +0000 (20:22 +0000)]
Call fixChangeLogPatch when generating patches from webkit-patch
https://bugs.webkit.org/show_bug.cgi?id=147248

Reviewed by Geoffrey Garen.

When two consecutive patches are from the same author, diff tools
create wrong-looking diffs for ChangeLog files where the apparent added
author is actually the previous patch's author line, making it awkward
to read - and things only get worse when committing a patch and a
followup fix for the same bug shortly after.

We have a perl function in VCSUtils.pm, fixChangeLogPatch, to corrects
this, which we use in perl scripts (svn-create-patch et al). But it is
not used by webkit-patch, which is a python script, and thus creates
"bad" diffs.

In the long term, we should probably port fixChangeLogPatch to python -
but in the short term, let's make webkit-patch call perl to run
fixChangeLogPatch. We are already making various external calls there
anyway.

* Scripts/webkitpy/common/checkout/scm/git.py:
(Git.create_patch):
* Scripts/webkitpy/common/checkout/scm/scm.py:
(SCM.fix_changelog_patch):
* Scripts/webkitpy/common/checkout/scm/svn.py:
(SVN.create_patch):

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

4 years agoRemove runtime flags for symbols
utatane.tea@gmail.com [Fri, 24 Jul 2015 19:48:26 +0000 (19:48 +0000)]
Remove runtime flags for symbols
https://bugs.webkit.org/show_bug.cgi?id=147246

Reviewed by Alex Christensen.

Source/JavaScriptCore:

* runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::finishCreation):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init): Deleted.
* runtime/JSGlobalObject.h:
* runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::finishCreation):
* runtime/RuntimeFlags.h:

Source/WebKit/mac:

* WebView/WebPreferencesPrivate.h:

Source/WebKit/win:

* Interfaces/IWebPreferencesPrivate.idl:

Source/WebKit2:

* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:

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

4 years agoObject.getOwnPropertySymbols on large list takes very long
utatane.tea@gmail.com [Fri, 24 Jul 2015 19:31:16 +0000 (19:31 +0000)]
Object.getOwnPropertySymbols on large list takes very long
https://bugs.webkit.org/show_bug.cgi?id=146137

Reviewed by Mark Lam.

Source/JavaScriptCore:

Before this patch, Object.getOwnPropertySymbols collects all the names including strings.
And after it's done, filter the names to only retrieve the symbols.
But it's so time consuming if the given object is a large non-holed array since it has
many indexed properties and all the indexes have to be converted to uniqued_strings and
added to the collection of property names (though they may not be of the requested type
and will be filtered out later)

This patch introduces PropertyNameMode.
We leverage this mode in 2 places.

1. PropertyNameArray side
It is set in PropertyNameArray and it filters the incoming added identifiers based on the mode.
It ensures that PropertyNameArray doesn't become so large in the pathological case.
And it ensures that non-expected typed keys by the filter (Symbols or Strings) are never added
to the property name array collections.
However it does not solve the whole problem because the huge array still incurs the many
"indexed property to uniqued string" conversion and the large iteration before adding the keys
to the property name array.

2. getOwnPropertyNames side
So we can use the PropertyNameMode in the caller side (getOwnPropertyNames) as a **hint**.
When the large iteration may occur, the caller side can use the PropertyNameMode as a hint to
avoid the iteration.
But we cannot exclusively rely on these caller side checks because it would require that we
exhaustively add the checks to all custom implementations of getOwnPropertyNames as well.
This process requires manual inspection of many pieces of code, and is error prone. Instead,
we only apply the caller side check in a few strategic places where it is known to yield
performance benefits; and we rely on the filter in PropertyNameArray::add() to reject the wrong
types of properties for all other calls to PropertyNameArray::add().

In this patch, there's a concept in use that is not clear just from reading the code, and hence
should be documented here. When selecting the PropertyNameMode for the PropertyNameArray to be
instantiated, we apply the following logic:

1. Only JavaScriptCore code is aware of ES6 Symbols.
We can assume that pre-existing external code that interfaces JSC are only looking for string named properties. This includes:
    a. WebCore bindings
    b. Serializer bindings
    c. NPAPI bindings
    d. Objective C bindings
2. In JSC, code that compute object storage space needs to iterate both Symbol and String named properties. Hence, use PropertyNameMode::Both.
3. In JSC, ES6 APIs that work with Symbols should use PropertyNameMode::Symbols.
4. In JSC, ES6 APIs that work with String named properties should use PropertyNameMode::Strings.

* API/JSObjectRef.cpp:
(JSObjectCopyPropertyNames):
* bindings/ScriptValue.cpp:
(Deprecated::jsToInspectorValue):
* bytecode/ObjectAllocationProfile.h:
(JSC::ObjectAllocationProfile::possibleDefaultPropertyCount):
* runtime/EnumerationMode.h:
(JSC::EnumerationMode::EnumerationMode):
(JSC::EnumerationMode::includeSymbolProperties): Deleted.
* runtime/GenericArgumentsInlines.h:
(JSC::GenericArguments<Type>::getOwnPropertyNames):
* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertyNames):
* runtime/JSLexicalEnvironment.cpp:
(JSC::JSLexicalEnvironment::getOwnNonIndexPropertyNames):
* runtime/JSONObject.cpp:
(JSC::Stringifier::Stringifier):
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Walker::walk):
* runtime/JSObject.cpp:
(JSC::JSObject::getOwnPropertyNames):
* runtime/JSPropertyNameEnumerator.cpp:
(JSC::JSPropertyNameEnumerator::create):
* runtime/JSPropertyNameEnumerator.h:
(JSC::propertyNameEnumerator):
* runtime/JSSymbolTableObject.cpp:
(JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorGetOwnPropertyNames):
(JSC::objectConstructorGetOwnPropertySymbols):
(JSC::objectConstructorKeys):
(JSC::defineProperties):
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):
* runtime/PropertyNameArray.h:
(JSC::PropertyNameArray::PropertyNameArray):
(JSC::PropertyNameArray::mode):
(JSC::PropertyNameArray::addKnownUnique):
(JSC::PropertyNameArray::add):
(JSC::PropertyNameArray::isUidMatchedToTypeMode):
(JSC::PropertyNameArray::includeSymbolProperties):
(JSC::PropertyNameArray::includeStringProperties):
* runtime/StringObject.cpp:
(JSC::StringObject::getOwnPropertyNames):
* runtime/Structure.cpp:
(JSC::Structure::getPropertyNamesFromStructure):

Source/WebCore:

* bindings/js/Dictionary.cpp:
(WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
(WebCore::Dictionary::getOwnPropertyNames):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
* bridge/NP_jsobject.cpp:
(_NPN_Enumerate):

Source/WebKit/mac:

* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::enumerate):

Source/WebKit2:

* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::enumerate):

LayoutTests:

* js/regress/object-get-own-property-symbols-on-large-array-expected.txt: Added.
* js/regress/object-get-own-property-symbols-on-large-array.html: Added.
* js/regress/script-tests/object-get-own-property-symbols-on-large-array.js: Added.
(trial):

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

4 years agoREGRESSION (r187149): Build fails when CSS_SELECTORS_LEVEL4 is disabled
ddkilzer@apple.com [Fri, 24 Jul 2015 18:51:48 +0000 (18:51 +0000)]
REGRESSION (r187149): Build fails when CSS_SELECTORS_LEVEL4 is disabled

This is a follow-up fix to:
    [CSS Selectors Level 4] Add #ifdefs to the new '>>' descendant combinator
    <https://bugs.webkit.org/show_bug.cgi?id=147184>

* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::appendTagHistory):
* css/CSSParserValues.h:
* css/CSSSelector.h:
- Change ENABLE_CSS_SELECTORS_LEVEL4 to
  ENABLE(CSS_SELECTORS_LEVEL4).

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

4 years agoWeb Inspector: Editing non-inspector-stylesheet rule selectors fails after the first...
drousso@apple.com [Fri, 24 Jul 2015 18:48:17 +0000 (18:48 +0000)]
Web Inspector: Editing non-inspector-stylesheet rule selectors fails after the first change
https://bugs.webkit.org/show_bug.cgi?id=147229

Reviewed by Timothy Hatcher.

Source/WebCore:

Test: inspector/css/modify-rule-selector.html

* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::setRuleSelector):
Now checks to see if the stylesheet is not mutated before making the change to the
rule's selector, and if so mark it as not mutated to allow future edits.

LayoutTests:

* inspector/css/modify-rule-selector-expected.txt: Added.
* inspector/css/modify-rule-selector.html: Added.

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

4 years ago[ES6] Add support for default parameters
saambarati1@gmail.com [Fri, 24 Jul 2015 18:40:58 +0000 (18:40 +0000)]
[ES6] Add support for default parameters
https://bugs.webkit.org/show_bug.cgi?id=38409

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch implements ES6 default parameters according to the ES6
specification. This patch builds off the components introduced with
"let" scoping and parsing function parameters in the same parser
arena as the function itself. "let" scoping allows functions with default
parameter values to place their parameters under the TDZ. Parsing function
parameters in the same parser arena allows the FunctionParameters AST node
refer to ExpressionNodes.

The most subtle part of this patch is how we allocate lexical environments
when functions have default parameter values. If a function has default
parameter values then there must be a separate lexical environment for
its parameters. Then, the function's "var" lexical environment must have
the parameter lexical environment as its parent. The BytecodeGenerator
takes great care to not allocate the "var" lexical environment before its
really needed.

The "arguments" object for a function with default parameters will never be
a mapped arugments object. It will always be a cloned arugments object.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::~BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeNextParameter):
(JSC::BytecodeGenerator::initializeVarLexicalEnvironment):
(JSC::BytecodeGenerator::visibleNameForParameter):
(JSC::BytecodeGenerator::emitLoadGlobalObject):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::pushLexicalScope):
(JSC::BytecodeGenerator::popLexicalScope):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::lastOpcodeID):
* bytecompiler/NodesCodegen.cpp:
(JSC::FunctionNode::emitBytecode):
* jit/JITOperations.cpp:
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createElementList):
(JSC::ASTBuilder::createFormalParameterList):
(JSC::ASTBuilder::appendParameter):
(JSC::ASTBuilder::createClause):
(JSC::ASTBuilder::createClauseList):
* parser/Nodes.h:
(JSC::FunctionParameters::size):
(JSC::FunctionParameters::at):
(JSC::FunctionParameters::hasDefaultParameterValues):
(JSC::FunctionParameters::append):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::tryParseDestructuringPatternExpression):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::Parser<LexerType>::parseFunctionParameters):
* parser/Parser.h:
(JSC::Scope::declareParameter):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createElementList):
(JSC::SyntaxChecker::createFormalParameterList):
(JSC::SyntaxChecker::appendParameter):
(JSC::SyntaxChecker::createClause):
(JSC::SyntaxChecker::createClauseList):
* tests/stress/es6-default-parameters.js: Added.
(assert):
(shouldThrow):
(shouldThrowSyntaxError):
(shouldThrowTDZ):
(basic):
(basicFunctionCaptureInDefault.basicFunctionCaptureInDefault.basicCaptured):
(basicCaptured.basicCaptured.tricky):
(strict):
(playground):
(scoping):
(augmentsArguments1):
(augmentsArguments2):
(augmentsArguments3):
(augmentsArguments4):
(augmentsArguments5):

LayoutTests:

* js/destructuring-assignment-default-values-expected.txt:
* js/parser-syntax-check-expected.txt:
* js/script-tests/destructuring-assignment-default-values.js:
(shouldThrow): Deleted.
* js/script-tests/parser-syntax-check.js:

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

4 years agoWeb Inspector: Add custom parameter lists for new DOM append/prepend/before/after...
commit-queue@webkit.org [Fri, 24 Jul 2015 18:39:41 +0000 (18:39 +0000)]
Web Inspector: Add custom parameter lists for new DOM append/prepend/before/after/replaceWith methods
https://bugs.webkit.org/show_bug.cgi?id=147257

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-07-24
Reviewed by Timothy Hatcher.

* UserInterface/Models/NativeFunctionParameters.js:

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

4 years agoRemove JS Promise constructor unused piece of code
calvaris@igalia.com [Fri, 24 Jul 2015 18:36:03 +0000 (18:36 +0000)]
Remove JS Promise constructor unused piece of code
https://bugs.webkit.org/show_bug.cgi?id=147262

Reviewed by Geoffrey Garen.

* runtime/JSPromiseConstructor.cpp:
(JSC::constructPromise): Deleted.
* runtime/JSPromiseConstructor.h: Removed JSC::constructPromise.

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

4 years agoAdd WASM files to vcxproj files.
mark.lam@apple.com [Fri, 24 Jul 2015 18:32:18 +0000 (18:32 +0000)]
Add WASM files to vcxproj files.
https://bugs.webkit.org/show_bug.cgi?id=147264

Reviewed by Geoffrey Garen.

This is a follow up to http://trac.webkit.org/changeset/187254 where WASM files
were introduced but were not able to be added to the vcxproj files yet.

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:

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

4 years agoDFG::safeToExecute() is wrong for MultiGetByOffset, doesn't consider the structures...
fpizlo@apple.com [Fri, 24 Jul 2015 18:23:13 +0000 (18:23 +0000)]
DFG::safeToExecute() is wrong for MultiGetByOffset, doesn't consider the structures of the prototypes that get loaded from
https://bugs.webkit.org/show_bug.cgi?id=147250

Reviewed by Geoffrey Garen.

This fixes a nasty - but currently benign - bug in DFG::safeToExecute(). That function
will tell you if hoisting a node to some point is safe in the sense that the node will
not crash the VM if it executes at that point. A node may be unsafe to execute if we
cannot prove that at that point, the memory it is loading is not garbage. This is a
necessarily loose notion - for example it's OK to hoist a load if we haven't proved
that the load makes semantic sense at that point, since anyway the place where the node
did get used will still be guarded by any such semantic checks. But because we may also
hoist uses of the load, we need to make sure that it doesn't produce a garbage value.
Also, we need to ensure that the load won't trap. Hence safeToExecute() returns true
anytime we can be sure that a node will not produce a garbage result (i.e. a malformed
JSValue or object pointer) and will not trap when executed at the point in question.

The bug is that this verification isn't performed for the loads from prototypes inside
MultiGetByOffset. DFG::ByteCodeParser will guard MultiGetByOffset with CheckStructure's
on the prototypes. So, hypothetically, you might end up hoisting a MultiGetByOffset
above those structure checks, which would mean that we might load a value from a memory
location without knowing that the location is valid. It might then return the value
loaded.

This never happens in practice. Those structure checks are more hoistable that the
MultiGetByOffset, since they read a strict subset of the MultiGetByOffset's abstract
heap reads. Also, we hoist in program order. So, those CheckStructure's will always be
hoisted before the MultiGetByOffset gets hoisted.

But we should fix this anyway. DFG::safeToExecute() has a clear definition of what a
"true" return means for IR transformations, and it fails in satisfying that definition
for MultiGetByOffset.

There are various approaches we can use for making this safe. I considered two:

1) Have MultiGetByOffset refer to the prototypes it is loading from in IR, so that we
   can check if it's safe to load from them.

2) Turn off MultiGetByOffset hoisting when it will emit loads from prototypes, and the
   prototype structure isn't being watched.

I ended up using (2), because it will be the most natural solution once I finish
https://bugs.webkit.org/show_bug.cgi?id=146929. Already now, it's somewhat more natural
than (1) since that requires more extensive IR changes. Also, (2) will give us what we
want in *most* cases: we will usually watch the prototype structure, and we will
usually constant-fold loads from prototypes. Both of these usually-true things would
have to become false for MultiGetByOffset hoisting to be disabled by this change.

This change also adds my attempt at a test, though it's not really a test of this bug.
This bug is currently benign. But, the test does at least trigger the logic to run,
which is better than nothing.

* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* tests/stress/multi-get-by-offset-hoist-around-structure-check.js: Added.
(foo):

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

4 years agoRecode.net gets into a continual resize loop in split fullscreen
simon.fraser@apple.com [Fri, 24 Jul 2015 17:51:05 +0000 (17:51 +0000)]
Recode.net gets into a continual resize loop in split fullscreen
https://bugs.webkit.org/show_bug.cgi?id=147266
rdar://problem/21409047

Reviewed by Tim Horton.

In split fullscreen, we use fixed layout and scale to shrink pages down to
fit a given width. This is re-evaluated every time the document width changes.
However some pages, like recode.net, end up continually resizing because
when laid out unconstrained they use a narrower width than when laid out with
a fixed layout size. In fixed layout, they actually use more width than the fixed
layout size.

Detect and break this cycle by just not re-scaling when we've done one fixed layout,
and the document is now taking more width than the fixed layout width.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded):

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

4 years agoCSS "content" property is missing in getComputedStyles
commit-queue@webkit.org [Fri, 24 Jul 2015 16:07:30 +0000 (16:07 +0000)]
CSS "content" property is missing in getComputedStyles
https://bugs.webkit.org/show_bug.cgi?id=147255

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-07-24
Reviewed by Simon Fraser.

Source/WebCore:

* css/CSSComputedStyleDeclaration.cpp:

LayoutTests:

* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* fast/css/getComputedStyle/resources/property-names.js:
* svg/css/getComputedStyle-basic-expected.txt:

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

4 years ago[EFL] many fast tests are flaky
ossy@webkit.org [Fri, 24 Jul 2015 14:49:18 +0000 (14:49 +0000)]
[EFL] many fast tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=145835

Unreviewed gardening. These tests aren't flakey now, let's unskip them.

* platform/efl/TestExpectations:

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

4 years ago[EFL] Multi-column tests have been failed since r167808
ossy@webkit.org [Fri, 24 Jul 2015 14:17:14 +0000 (14:17 +0000)]
[EFL] Multi-column tests have been failed since r167808
https://bugs.webkit.org/show_bug.cgi?id=141496

Unreviewed gardening, updated expected results.

* platform/efl/TestExpectations:
* platform/efl/fast/multicol/client-rects-expected.png:
* platform/efl/fast/multicol/client-rects-expected.txt:
* platform/efl/fast/multicol/client-rects-spanners-complex-expected.png: Added.
* platform/efl/fast/multicol/client-rects-spanners-complex-expected.txt:
* platform/efl/fast/multicol/client-rects-spanners-expected.png: Added.
* platform/efl/fast/multicol/client-rects-spanners-expected.txt:
* platform/efl/fast/multicol/layers-split-across-columns-expected.png:
* platform/efl/fast/multicol/layers-split-across-columns-expected.txt:
* platform/efl/fast/multicol/newmulticol/client-rects-expected.png: Added.
* platform/efl/fast/multicol/newmulticol/client-rects-expected.txt:
* platform/efl/fast/multicol/pagination/LeftToRight-tb-hittest-expected.png: Added.
* platform/efl/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt: Added.
* platform/efl/fast/multicol/pagination/RightToLeft-rl-hittest-expected.png: Added.
* platform/efl/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt: Added.

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

4 years ago[EFL] Unreviewed gardening, unskip now passing tests.
ossy@webkit.org [Fri, 24 Jul 2015 14:06:53 +0000 (14:06 +0000)]
[EFL] Unreviewed gardening, unskip now passing tests.

* platform/efl/TestExpectations:

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

4 years ago[EFL] Unreviewed gardening. Updated since MEDIA_STREAM is enabled.
ossy@webkit.org [Fri, 24 Jul 2015 12:59:50 +0000 (12:59 +0000)]
[EFL] Unreviewed gardening. Updated since MEDIA_STREAM is enabled.

* platform/efl/js/dom/constructor-length-expected.txt:

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

4 years agoRemove the unused GCC workaround - std::is_trivially_destructible
ossy@webkit.org [Fri, 24 Jul 2015 12:51:49 +0000 (12:51 +0000)]
Remove the unused GCC workaround - std::is_trivially_destructible
https://bugs.webkit.org/show_bug.cgi?id=147226

Reviewed by Darin Adler.

* wtf/StdLibExtras.h:

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

4 years ago[GStreamer] Crashes during plugin installation
carlosgc@webkit.org [Fri, 24 Jul 2015 12:06:34 +0000 (12:06 +0000)]
[GStreamer] Crashes during plugin installation
https://bugs.webkit.org/show_bug.cgi?id=144099

Reviewed by Philippe Normand.

Source/WebCore:

Add new methods to MediaPlayerClient and ChromeClient to request
the API layer to start the installer when there are missing media
plugins.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::requestInstallMissingPlugins): Pass
the request to the ChromeClient.
* html/HTMLMediaElement.h:
* page/ChromeClient.h:
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::requestInstallMissingPlugins):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
Invalidate any pending request to install missing media plugins.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): In case of
missing plugins message, start a request to install them if
supported by GST.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(WebCore::MediaPlayerRequestInstallMissingPluginsCallback::create):
(WebCore::MediaPlayerRequestInstallMissingPluginsCallback::MediaPlayerRequestInstallMissingPluginsCallback):
(WebCore::MediaPlayerRequestInstallMissingPluginsCallback::invalidate):
(WebCore::MediaPlayerRequestInstallMissingPluginsCallback::complete):

Source/WebKit2:

Move the missing plugins installation to the UI process, ensuring
there's a single installer running and cancelling the request when
the page is closed or the media player is deleted.

* PlatformEfl.cmake: Add new files to compilation.
* PlatformGTK.cmake: Ditto.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Add
RequestInstallMissingMediaPlugins message.
* UIProcess/gstreamer/WebPageProxyGStreamer.cpp: Added.
(WebKit::WebPageProxy::requestInstallMissingMediaPlugins): Call
gst_install_plugins_async() and send
DidEndRequestInstallMissingMediaPlugins message back to the web
process when done.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::requestInstallMissingMediaPlugins): Call
WebPage::requestInstallMissingMediaPlugins().
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close): Invalidate the install missing plugins
request callback.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Add
DidEndRequestInstallMissingMediaPlugins message.
* WebProcess/WebPage/gstreamer/WebPageGStreamer.cpp: Added.
(WebKit::WebPage::requestInstallMissingMediaPlugins): Send
RequestInstallMissingMediaPlugins to the UI process or complete
the request early if there's already a request in progress.
(WebKit::WebPage::didEndRequestInstallMissingMediaPlugins):
Complete the request.

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

4 years agoUnreviewed. Fix the build with MEDIA_STREAM disabled after r187282.
carlosgc@webkit.org [Fri, 24 Jul 2015 11:58:52 +0000 (11:58 +0000)]
Unreviewed. Fix the build with MEDIA_STREAM disabled after r187282.

RealtimeMediaSource is only defined when MEDIA_STREAM is enabled.

* UIProcess/UserMediaPermissionRequestProxy.cpp:
* UIProcess/UserMediaPermissionRequestProxy.h:

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

4 years agoREGRESSION(r187100): [GTK] ASSERTION FAILED: Attempt to access post layout data befor...
carlosgc@webkit.org [Fri, 24 Jul 2015 11:27:32 +0000 (11:27 +0000)]
REGRESSION(r187100): [GTK] ASSERTION FAILED: Attempt to access post layout data before receiving it when typing backspace
https://bugs.webkit.org/show_bug.cgi?id=147196

Reviewed by Žan Doberšek.

Do not try to use the PostLayoutData from EditorState when
isMissingPostLayoutData is true. That happens when there's a
layout pending, and EditorStateChanged is sent again after that
layout with the post layout data. So we can just return early and
wait until the second message.

* UIProcess/API/gtk/WebKitEditorState.cpp:
(webkitEditorStateChanged):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseUpdateTextInputState):

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

4 years agocommit-queue flags in webkit-patch are confusing
commit-queue@webkit.org [Fri, 24 Jul 2015 08:03:51 +0000 (08:03 +0000)]
commit-queue flags in webkit-patch are confusing
https://bugs.webkit.org/show_bug.cgi?id=88694

Patch by Dean Johnson <dean_johnson@apple.com> on 2015-07-24
Reviewed by Csaba Osztrogonác.

* Scripts/webkitpy/tool/steps/options.py:
(Options): Updated help string to be more descriptive.

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

4 years agoFix 32-bit build after r187272.
achristensen@apple.com [Fri, 24 Jul 2015 04:58:43 +0000 (04:58 +0000)]
Fix 32-bit build after r187272.

* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged):
Added some WK_API_ENABLED.

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

4 years ago<rdar://problem/21929532> REGRESSION (r184026): Safari AutoFill with Contact info...
mitz@apple.com [Fri, 24 Jul 2015 04:53:26 +0000 (04:53 +0000)]
<rdar://problem/21929532> REGRESSION (r184026): Safari AutoFill with Contact info for phone number is broken
https://bugs.webkit.org/show_bug.cgi?id=147249

Reviewed by Sam Weinig.

* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(encodeObject): Use encodeString only for strings that encode as NSString or
NSMutableString. It can’t encode arbitrary NSString subclasses.
(decodeObject): Use decodeString for NSMutableString as well.

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

4 years ago[Win] Unreviewed build fix after r187245.
achristensen@apple.com [Fri, 24 Jul 2015 04:38:54 +0000 (04:38 +0000)]
[Win] Unreviewed build fix after r187245.

* PlatformWin.cmake:
Add GDIUtilities.cpp to CMake build.

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

4 years ago[iOS] REGRESSION (187131): Loading CuteOverload zooms in to the top left corner.
zalan@apple.com [Fri, 24 Jul 2015 04:16:02 +0000 (04:16 +0000)]
[iOS] REGRESSION (187131): Loading CuteOverload zooms in to the top left corner.
https://bugs.webkit.org/show_bug.cgi?id=147251
rdar://problem/21953359

Calling zoomToRect() should result in essentially the same zoom scale as if we
called setZoomScale with the new page scale factor.

Reviewed by Benjamin Poulain.

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

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

4 years agoImplement WebAssembly modules
commit-queue@webkit.org [Fri, 24 Jul 2015 02:35:37 +0000 (02:35 +0000)]
Implement WebAssembly modules
https://bugs.webkit.org/show_bug.cgi?id=147222

Patch by Sukolsak Sakshuwong <sukolsak@gmail.com> on 2015-07-23
Reviewed by Filip Pizlo.

Make JSWASMModule inherit from JSDestructibleObject so that the destructor is called.

* wasm/JSWASMModule.h:

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

4 years agoLinking WebKit2 to be able to grab media sources from a UID
commit-queue@webkit.org [Fri, 24 Jul 2015 02:23:38 +0000 (02:23 +0000)]
Linking WebKit2 to be able to grab media sources from a UID
https://bugs.webkit.org/show_bug.cgi?id=147202
<rdar://problem/21947608>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-23
Reviewed by Brent Fulgham.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/RealtimeMediaSourceCenter.h:
* platform/mediastream/mac/AVCaptureDeviceManager.h:
* platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::sourceWithUID):
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::sourceWithUID):
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
(WebCore::RealtimeMediaSourceCenterOwr::sourceWithUID):
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
* platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::sourceWithUID):
* platform/mock/MockRealtimeMediaSourceCenter.h:

Source/WebKit2:

* UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::UserMediaPermissionRequestProxy::getDeviceNameForUID):
* UIProcess/UserMediaPermissionRequestProxy.h:

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

4 years agoUnreviewed build fix after r187245.
achristensen@apple.com [Fri, 24 Jul 2015 01:22:28 +0000 (01:22 +0000)]
Unreviewed build fix after r187245.

* WebView.cpp:
WM_DPICHANGED is #defined, which causes problems if we try to use it as a variable name.

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

4 years agoWeb Inspector: jittery cursor when adjusting time interval using timeline grabbers
mattbaker@apple.com [Fri, 24 Jul 2015 01:00:01 +0000 (01:00 +0000)]
Web Inspector: jittery cursor when adjusting time interval using timeline grabbers
https://bugs.webkit.org/show_bug.cgi?id=147095

Reviewed by Brian Burg.

* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler.resizing-selection > .selection-drag):
Override selection-drag element's cursor when "resizing-selection" selector is applied.
(.timeline-ruler.allows-time-range-selection.creating-selection): Deleted.
Renamed "creating-selection" selector to "resizing-selection" to reflect its new role.

* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseDown):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseUp):
Toggle cursor styles.

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

4 years agoRemove compile and runtime flags for promises.
achristensen@apple.com [Fri, 24 Jul 2015 00:55:10 +0000 (00:55 +0000)]
Remove compile and runtime flags for promises.
https://bugs.webkit.org/show_bug.cgi?id=147244

Reviewed by Yusuke Suzuki.

.:

* Source/cmake/OptionsMac.cmake:
* Source/cmake/OptionsWindows.cmake:
* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

* API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::JSCallbackObject):
* API/JSContextRef.cpp:
(JSGlobalContextCreateInGroup):
* Configurations/FeatureDefines.xcconfig:
* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::getInternalProperties):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::create):
(JSC::JSGlobalObject::syntaxErrorConstructor):
(JSC::JSGlobalObject::typeErrorConstructor):
(JSC::JSGlobalObject::URIErrorConstructor):
(JSC::JSGlobalObject::promiseConstructor):
(JSC::JSGlobalObject::nullGetterFunction):
(JSC::JSGlobalObject::nullSetterFunction):
(JSC::JSGlobalObject::applyFunction):
(JSC::JSGlobalObject::definePropertyFunction):
(JSC::JSGlobalObject::arrayProtoValuesFunction):
(JSC::JSGlobalObject::initializePromiseFunction):
(JSC::JSGlobalObject::newPromiseDeferredFunction):
(JSC::JSGlobalObject::throwTypeErrorGetterSetter):
(JSC::JSGlobalObject::regExpPrototype):
(JSC::JSGlobalObject::errorPrototype):
(JSC::JSGlobalObject::iteratorPrototype):
(JSC::JSGlobalObject::promisePrototype):
(JSC::JSGlobalObject::debuggerScopeStructure):
(JSC::JSGlobalObject::withScopeStructure):
(JSC::JSGlobalObject::iteratorResultStructure):
(JSC::JSGlobalObject::iteratorResultStructureOffset):
(JSC::JSGlobalObject::regExpMatchesArrayStructure):
(JSC::JSGlobalObject::promiseStructure):
* runtime/JSPromise.cpp:
(JSC::JSPromise::result):
* runtime/JSPromise.h:
* runtime/JSPromiseConstructor.cpp:
(JSC::constructPromise):
* runtime/JSPromiseConstructor.h:
* runtime/JSPromiseDeferred.cpp:
(JSC::JSPromiseDeferred::visitChildren):
* runtime/JSPromiseDeferred.h:
* runtime/JSPromisePrototype.cpp:
(JSC::JSPromisePrototype::getOwnPropertySlot):
* runtime/JSPromisePrototype.h:
* runtime/RuntimeFlags.h:
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:
* bindings/js/JSDOMPromise.cpp:
(WebCore::rejectPromiseWithExceptionIfAny):
* bindings/js/JSDOMPromise.h:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:
* WebView/WebPreferencesPrivate.h:

Source/WebKit/win:

* Interfaces/IWebPreferencesPrivate.idl:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WTF:

* wtf/FeatureDefines.h:

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

4 years agoAX: AccessibilityNodeObject::childrenChanged() generates too many AXLiveRegionChanged...
commit-queue@webkit.org [Fri, 24 Jul 2015 00:32:32 +0000 (00:32 +0000)]
AX: AccessibilityNodeObject::childrenChanged() generates too many AXLiveRegionChanged notifications
https://bugs.webkit.org/show_bug.cgi?id=147211
<rdar://problem/19908029>

Patch by Nan Wang <n_wang@apple.com> on 2015-07-23
Reviewed by Chris Fleizach.

Source/WebCore:

AccessibilityNodeObject::childrenChanged() can be called repeatedly, generating a live region
change notification each time. Sometimes, so many happen that VoiceOver hangs. We can use a timer
to make sure that we coalesce these notifications.

Test: platform/mac/accessibility/aria-multiple-liveregions-notification.html

* accessibility/AXObjectCache.cpp:
(WebCore::AXComputedObjectAttributeCache::getIgnored):
(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::frameLoadingEventNotification):
(WebCore::AXObjectCache::postLiveRegionChangeNotification):
(WebCore::AXObjectCache::liveRegionChangedNotificationPostTimerFired):
(WebCore::AXObjectCache::handleScrollbarUpdate):
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::childrenChanged):

LayoutTests:

* platform/mac/accessibility/aria-liveregions-notifications-always-sent-expected.txt:
* platform/mac/accessibility/aria-liveregions-notifications-always-sent.html:
* platform/mac/accessibility/aria-liveregions-notifications-expected.txt:
* platform/mac/accessibility/aria-liveregions-notifications.html:
* platform/mac/accessibility/aria-multiple-liveregions-notification-expected.txt: Added.
* platform/mac/accessibility/aria-multiple-liveregions-notification.html: Added.

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

4 years ago[iOS] Frame snapshots don't factor in page scale
timothy_horton@apple.com [Fri, 24 Jul 2015 00:19:58 +0000 (00:19 +0000)]
[iOS] Frame snapshots don't factor in page scale
https://bugs.webkit.org/show_bug.cgi?id=147239
<rdar://problem/21905756>

Reviewed by Simon Fraser.

* page/FrameSnapshotting.cpp:
(WebCore::snapshotFrameRect):
Apply page scale when determining the backing store size and setting up the context.

* page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithSelectionInFrame):
Don't assume snapshotFrameRect gave us an image with scale=deviceScale, because it
will factor in the pageScale too.

* platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::resolutionScale):
Expose resolutionScale.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::addToOverlapMap):
This has been true for a long time.

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

4 years agoAdding Web Components to feature status page.
jond@apple.com [Fri, 24 Jul 2015 00:08:54 +0000 (00:08 +0000)]
Adding Web Components to feature status page.
https://bugs.webkit.org/show_bug.cgi?id=147209

Reviewed by Timothy Hatcher.

* features.json:

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

4 years agoNotify the UI delegate when a MediaDocument's natural size changes
jer.noble@apple.com [Thu, 23 Jul 2015 23:46:59 +0000 (23:46 +0000)]
Notify the UI delegate when a MediaDocument's natural size changes
https://bugs.webkit.org/show_bug.cgi?id=147182

Reviewed by Simon Fraser.

Source/WebCore:

Notify the MediaDocument that it's underlying media element has changed its natural size, either when
the media engine notifies us that the size changed, or when the ready state progresses to HAVE_METADATA.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState): Notify the media document.
(WebCore::HTMLMediaElement::mediaPlayerSizeChanged): Ditto.
* html/MediaDocument.cpp:
(WebCore::MediaDocument::mediaElementNaturalSizeChanged): Pass to the chrome client.
* html/MediaDocument.h:
* page/ChromeClient.h:

Source/WebKit2:

Pipe notifications of media document natural size changes up from the chrome client, through
to the UIProcess,  through the page client, through the WKWebView, to the UIDelegate.

* UIProcess/API/APIUIClient.h:
(API::UIClient::mediaDocumentNaturalSizeChanged):
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mediaDocumentNaturalSizeChanged:]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::mediaDocumentNaturalSizeChanged):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::mediaDocumentNaturalSizeChanged):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::mediaDocumentNaturalSizeChanged):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mediaDocumentNaturalSizeChanged):
* WebProcess/WebPage/WebPage.h:
* UIProcess/API/gtk/PageClientImpl.h: Add default, empty implementation of new pure-virtual method.
* UIProcess/efl/WebViewEfl.h: Ditto.

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

4 years agoLayer z-ordering is incorrect when scrolling on page witih position:fixed
simon.fraser@apple.com [Thu, 23 Jul 2015 23:43:35 +0000 (23:43 +0000)]
Layer z-ordering is incorrect when scrolling on page witih position:fixed
https://bugs.webkit.org/show_bug.cgi?id=147220
rdar://problem/15849697&21929247

Reviewed by Dean Jackson.

Source/WebCore:

Overlap testing for compositing uses the currently laid out position of fixed
elements, without taking into account the fact that async scrolling can move
them around, and possibly under other non-composited elements. This manifested
as position:fixed elements moving over other elements on some pages when
scrolling, when they should have moved behind.

Fix by expanding the overlap map entry for position:fixed elements to create
an rect for the area they cover at all scroll locations, taking min and max
scroll offsets into account.

Also add a couple more LOG(Compositing) statements.

Tests: compositing/layer-creation/fixed-overlap-extent-rtl.html
       compositing/layer-creation/fixed-overlap-extent.html

* rendering/RenderLayerCompositor.cpp:
(WebCore::fixedPositionOffset):
(WebCore::RenderLayerCompositor::computeExtent):
(WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer):
(WebCore::RenderLayerCompositor::rootBackgroundTransparencyChanged):

LayoutTests:

Tests that reveal the overlap area by creating lots of small layers, and dumping
the layer tree.

* compositing/layer-creation/fixed-overlap-extent-expected.txt: Added.
* compositing/layer-creation/fixed-overlap-extent-rtl-expected.txt: Added.
* compositing/layer-creation/fixed-overlap-extent-rtl.html: Added.
* compositing/layer-creation/fixed-overlap-extent.html: Added.

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

4 years agobmalloc: Shrink the super chunk size (again)
ggaren@apple.com [Thu, 23 Jul 2015 23:33:05 +0000 (23:33 +0000)]
bmalloc: Shrink the super chunk size (again)
https://bugs.webkit.org/show_bug.cgi?id=147240

Reviewed by Andreas Kling.

Shrinking to 8MB reduced VM exhaustion crashes but did not eliminate them.
Let's try 4MB.

(My previous comment was that the maximum fast object was 2MB. But it
was 4MB! Now it's 2MB for realsies.)

* bmalloc/Sizes.h:

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

4 years agoWeb Inspector: rewrite inspector-protocol/console tests to use new testing patterns
burg@cs.washington.edu [Thu, 23 Jul 2015 23:20:31 +0000 (23:20 +0000)]
Web Inspector: rewrite inspector-protocol/console tests to use new testing patterns
https://bugs.webkit.org/show_bug.cgi?id=147231

Reviewed by Joseph Pecoraro.

Restructure existing protocol tests for Console.messageAdded to use Promises and
modern event listener test interfaces. Add some new functionality to make it easier
install multiple protocol event listeners without clobbering.

This test also splits warnings-errors.html into two tests, one to cover CSS parser
warnings and one for JavaScript parser and runtime errors.

* http/tests/inspector-protocol/resources/InspectorTest.js:
(InspectorTest.sendCommand): Support arguments packaged in an object. This style is preferable
in tests because it is very explicit about what functionality and messages are covered.

(InspectorTest.awaitEvent): Added. This is a single-shot event listener that resolves a
promise when the desired protocol event is dispatched.

(InspectorTest.addEventListener): Reimplemented, based on code from WebInspector.Object.
Allows multiple listeners to be registered for a single protocol event.

(InspectorTest.AsyncTestSuite.prototype.runTestCases):
(InspectorTest.AsyncTestSuite):
(InspectorTest.SyncTestSuite.prototype.runTestCases):
(InspectorTest.SyncTestSuite):
(InspectorTest.log): Improve the formatting of test suite/test case output.

(InspectorFrontendAPI.dispatchMessageAsync): Dispatch to an array of listeners if available.
(InspectorTest.importScript): Clarify that this method performs a synchronous load.
(.InspectorTest.eventHandler.eventName): Deleted.
* inspector-protocol/async-test-suite-expected.txt: Rebaseline whitespace.
* inspector-protocol/sync-test-suite-expected.txt: Rebaseline whitespace.
* inspector-protocol/console/console-message-expected.txt:
* inspector-protocol/console/console-message.html:
* inspector-protocol/console/css-source-locations-expected.txt: Added.
* inspector-protocol/console/css-source-locations.html: Added.
* inspector-protocol/console/js-source-locations-expected.txt: Added.
* inspector-protocol/console/js-source-locations.html: Added.
* inspector-protocol/console/warnings-errors-expected.txt: Removed.
* inspector-protocol/console/warnings-errors.html: Removed.
* inspector-protocol/runtime/getProperties-expected.txt: Rebaseline whitespace.

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

4 years agoRemoving one incorrect annotation from the previous change.
enrica@apple.com [Thu, 23 Jul 2015 23:16:07 +0000 (23:16 +0000)]
Removing one incorrect annotation from the previous change.

Unreviewed.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:

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

4 years ago[iOS] Add another preview delegate for didDismissPreview.
enrica@apple.com [Thu, 23 Jul 2015 23:08:11 +0000 (23:08 +0000)]
[iOS] Add another preview delegate for didDismissPreview.
https://bugs.webkit.org/show_bug.cgi?id=147241
rdar://problem/21664211

Reviewed by Tim Horton and Yongjun Zhang.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _previewItemController:didDismissPreview:committing:]):

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

4 years ago<rdar://problem/21910578> Second pass at [iOS] Keyboard shortcuts that take focus...
mitz@apple.com [Thu, 23 Jul 2015 23:06:44 +0000 (23:06 +0000)]
<rdar://problem/21910578> Second pass at [iOS] Keyboard shortcuts that take focus away from the web view end up typing a letter into the newly focused field
https://bugs.webkit.org/show_bug.cgi?id=146732

Reviewed by Darin Adler.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _interpretKeyEvent:isCharEvent:]): Rather than checking if the view is
first responder, which it might still be when the Web Content processes invokes this
callback, check if we are in editable content before forwarding the event to the keyboard.

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

4 years agoWindows test result gardening after Mac libxml changes.
ap@apple.com [Thu, 23 Jul 2015 22:53:12 +0000 (22:53 +0000)]
Windows test result gardening after Mac libxml changes.

* platform/win/fast/dom/adopt-attribute-crash-expected.txt: Added.
* platform/win/fast/parser/xml-colon-entity-expected.txt: Added.
* platform/win/fast/parser/xml-declaration-missing-ending-mark-expected.txt: Added.
* platform/win/svg/custom/bug78807-expected.txt: Added.

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

4 years agoUnreviewed build fix after r187251; rename flag -> allows.
jer.noble@apple.com [Thu, 23 Jul 2015 22:32:51 +0000 (22:32 +0000)]
Unreviewed build fix after r187251; rename flag -> allows.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback):

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

4 years ago[iOS] Unreviewed build fix after r187251.
achristensen@apple.com [Thu, 23 Jul 2015 22:29:51 +0000 (22:29 +0000)]
[iOS] Unreviewed build fix after r187251.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback):
Use the correct name for the boolean to pass along to SetAllowsMediaDocumentInlinePlayback.

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

4 years agoRelax media playback restrictions if the allowsMediaDocumentInlinePlayback property...
jer.noble@apple.com [Thu, 23 Jul 2015 22:23:28 +0000 (22:23 +0000)]
Relax media playback restrictions if the allowsMediaDocumentInlinePlayback property is set.
https://bugs.webkit.org/show_bug.cgi?id=147234

Reviewed by Darin Adler.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad): Moved restriction check into MediaElementSession.
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackPermitted): Check if is a top-level media document and if
    allowsMediaDocumentInilnePlayback is set, and return early.
(WebCore::MediaElementSession::effectivePreloadForElement): Ditto.
(WebCore::MediaElementSession::allowsAutomaticMediaDataLoading): Ditto.
* html/MediaElementSession.h:

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

4 years agoOne more iOS build fix.
enrica@apple.com [Thu, 23 Jul 2015 22:16:18 +0000 (22:16 +0000)]
One more iOS build fix.

Unreviewed.

* Platform/spi/ios/UIKitSPI.h:
* UIProcess/ios/WKContentViewInteraction.h:

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

4 years agoBridged passing lists of devices between the UIProcess and the WebProcess
commit-queue@webkit.org [Thu, 23 Jul 2015 22:15:22 +0000 (22:15 +0000)]
Bridged passing lists of devices between the UIProcess and the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=147056
<rdar://problem/21883094>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-23
Reviewed by Brent Fulgham.

Source/WebCore:

* Modules/mediastream/UserMediaRequest.h: Added fields to store and
retrieve lists of devices
(WebCore::UserMediaRequest::deviceUIDsVideo):
(WebCore::UserMediaRequest::deviceUIDsAudio):

Source/WebKit2:

* UIProcess/UserMediaPermissionRequestManagerProxy.cpp: Modified file
to reflect changes made to the header in the .messages.in file
(WebKit::UserMediaPermissionRequestManagerProxy::createRequest): Ditto
(WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision):
* UIProcess/UserMediaPermissionRequestManagerProxy.h: Ditto
* UIProcess/UserMediaPermissionRequestProxy.cpp: Ditto
(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
* UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::deviceUIDsVideo):
(WebKit::UserMediaPermissionRequestProxy::deviceUIDsAudio):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Changed heading
* WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::startRequest):
(WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision):
* WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceiveUserMediaPermissionDecision):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Changed heading

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

4 years agoMedia Session: add support for ducking media elements https://bugs.webkit.org/show_bu...
mrajca@apple.com [Thu, 23 Jul 2015 22:06:56 +0000 (22:06 +0000)]
Media Session: add support for ducking media elements https://bugs.webkit.org/show_bug.cgi?id=147089

Reviewed by Eric Carlson.

Test: media/session/transient-interruptions.html

* Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::handleDuckInterruption): Duck the active media elements.
(WebCore::MediaSession::handleUnduckInterruption): Unduck the active media elements.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateVolume): Lower the volume of media elements to 25% when ducked (constant determined empirically).
(WebCore::HTMLMediaElement::setShouldDuck): Call updateVolume to change the volume of the underlying media player.
* html/HTMLMediaElement.h:

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

4 years agoMedia Session: add infrastructure for testing ducking https://bugs.webkit.org/show_bu...
mrajca@apple.com [Thu, 23 Jul 2015 22:02:07 +0000 (22:02 +0000)]
Media Session: add infrastructure for testing ducking https://bugs.webkit.org/show_bug.cgi?id=147080

Reviewed by Jer Noble.

We need to expose a media element's underlying media player's volume to tests so we can test ducking.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::playerVolume):
* html/HTMLMediaElement.h:
* testing/Internals.cpp:
(WebCore::Internals::mediaElementPlayerVolume):
* testing/Internals.h:
* testing/Internals.idl:

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

4 years agoAdopt the new _previewItemControllerDidCancelPreview delegate method.
commit-queue@webkit.org [Thu, 23 Jul 2015 22:00:16 +0000 (22:00 +0000)]
Adopt the new _previewItemControllerDidCancelPreview delegate method.
https://bugs.webkit.org/show_bug.cgi?id=147238

Don't allow hightlight long press to trigger tap if the link preview is cancelled because
the link is not preview-able.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-23
Reviewed by Beth Dakin.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _previewItemControllerDidCancelPreview:]):

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

4 years agoImplement WebAssembly modules
commit-queue@webkit.org [Thu, 23 Jul 2015 21:26:42 +0000 (21:26 +0000)]
Implement WebAssembly modules
https://bugs.webkit.org/show_bug.cgi?id=147222

Patch by Sukolsak Sakshuwong <sukolsak@gmail.com> on 2015-07-23
Reviewed by Mark Lam.

Introducing the boilerplate data structure for the WebAssembly module.
WebAssembly functionality will be added in a subsequent patch.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* wasm/JSWASMModule.cpp: Added.
(JSC::JSWASMModule::visitChildren):
* wasm/JSWASMModule.h: Added.
(JSC::JSWASMModule::create):
(JSC::JSWASMModule::createStructure):
(JSC::JSWASMModule::JSWASMModule):

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

4 years agoiOS build fix after http://trac.webkit.org/changeset/187238.
enrica@apple.com [Thu, 23 Jul 2015 21:19:28 +0000 (21:19 +0000)]
iOS build fix after trac.webkit.org/changeset/187238.

Unreviewed.

* Platform/spi/ios/UIKitSPI.h:

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

4 years ago[WK2] Add a WKWebView property for whether the view is displaying a media document
jer.noble@apple.com [Thu, 23 Jul 2015 21:17:38 +0000 (21:17 +0000)]
[WK2] Add a WKWebView property for whether the view is displaying a media document
https://bugs.webkit.org/show_bug.cgi?id=147233

Reviewed by Beth Dakin.

Add a _isDisplayingStandaloneMediaDocument property, which queries the frame for whether
the current MIME type is one which our media engines support.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isDisplayingStandaloneMediaDocument]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::isDisplayingStandaloneMediaDocument):
* UIProcess/WebFrameProxy.h:

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

4 years ago[iOS] Add an explicit API to allow media documents to (temporarily) play inline
jer.noble@apple.com [Thu, 23 Jul 2015 21:15:28 +0000 (21:15 +0000)]
[iOS] Add an explicit API to allow media documents to (temporarily) play inline
https://bugs.webkit.org/show_bug.cgi?id=147181

Reviewed by Beth Dakin.

Source/WebCore:

Add listeners for the new allowsMediaDocumentInlinePlayback API. When this value becomes
NO, force any playing MediaDocuments to enter fullscreen mode.

* dom/Document.cpp:
(WebCore::Document::registerForAllowsMediaDocumentInlinePlaybackChangedCallbacks): Added registration method.
(WebCore::Document::unregisterForAllowsMediaDocumentInlinePlaybackChangedCallbacks): Added deregistration method.
(WebCore::Document::allowsMediaDocumentInlinePlaybackChanged): Notify all listeners.
* dom/Document.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::registerWithDocument): Listen for allowsMediaDocumentInlinePlayback changes.
(WebCore::HTMLMediaElement::unregisterWithDocument): Stop listening to same.
(WebCore::HTMLMediaElement::allowsMediaDocumentInlinePlaybackChanged): Enter fullscreen mode if the value
    changes to false during playback.
* html/HTMLMediaElement.h:
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback): Early true if the override value is set.
* page/Page.cpp:
(WebCore::Page::setAllowsMediaDocumentInlinePlayback): Notify all documents of the changed value.
* page/Page.h:
(WebCore::Page::allowsMediaDocumentInlinePlayback): Simple getter.

Source/WebKit2:

Add a WKWebView(Private) API which allows MediaDocuments loaded by the view to play their contents inline, regardless
of whether inline playback is restricted on the current device.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setRequiresUserActionForMediaPlayback:]): Added. Pass through to WebPageProxy.
(-[WKWebView _allowsMediaDocumentInlinePlayback]): Ditto.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::allowsMediaDocumentInlinePlayback): Simple getter.
(WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): Set, and conditionally pass the new value to WebPage.
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setAllowsMediaDocumentInlinePlayback): Set, and conditionally notify WebCore page of the change.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::allowsMediaDocumentInlinePlayback): Simple getter.
* WebProcess/WebPage/WebPage.messages.in: Add new messages.

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

4 years agoShould not allow previews of 1x1 images
bdakin@apple.com [Thu, 23 Jul 2015 20:53:47 +0000 (20:53 +0000)]
Should not allow previews of 1x1 images
https://bugs.webkit.org/show_bug.cgi?id=147237
-and corresponding-
rdar://problem/21968460

Reviewed by Tim Horton.

1x1 images are used on some sites to cover actual images, which leads to a
misleading preview experience. There is not any reason why you would really
want to preview an image this small nor any reason to believe that the
preview would result in anything useful.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):

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

4 years agoWeb Inspector: Add a function to CSSCompletions to get a list of supported system...
drousso@apple.com [Thu, 23 Jul 2015 20:24:08 +0000 (20:24 +0000)]
Web Inspector: Add a function to CSSCompletions to get a list of supported system fonts
https://bugs.webkit.org/show_bug.cgi?id=147009

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/protocol/CSS.json: Added getSupportedSystemFontFamilyNames function.

Source/WebCore:

Test: inspector/css/get-system-fonts.html

* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::getSupportedSystemFontFamilyNames):
Gets the list of system fonts (implemented in each platform) and returns that list.
* inspector/InspectorCSSAgent.h:
* platform/graphics/FontCache.h:
* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::systemFontFamilies):
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::systemFontFamilies):
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::systemFontFamilies):
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::systemFontFamilies):

Source/WebInspectorUI:

* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.activateExtraDomains):
* UserInterface/Base/Test.js:
(WebInspector.loaded):
* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.requestCSSCompletions.fontFamilyNamesCallback):
(WebInspector.CSSCompletions.requestCSSCompletions):
Now also grabs the list of system font family names and adds that list to the existing completion
list for both font and font-family in CSSKeywordCompletions.
(WebInspector.CSSCompletions.requestCSSNameCompletions): Deleted.

LayoutTests:

Skip the get-system-fonts test until it is implemented.
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/win/TestExpectations:

Added the get-system-fonts test that returns the list of system fonts.
* inspector/css/get-system-fonts-expected.html:
* inspector/css/get-system-fonts.html:

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

4 years agoCrash in WebPlatformStrategies::createPingHandle - Deref a null NetworkingContext.
beidson@apple.com [Thu, 23 Jul 2015 20:18:41 +0000 (20:18 +0000)]
Crash in WebPlatformStrategies::createPingHandle - Deref a null NetworkingContext.
<rdar://problem/21949735> and https://bugs.webkit.org/show_bug.cgi?id=147227

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createPingHandle): Skip it if there's a null NetworkingContext.

LayoutTests:

* http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher.html: Added.

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

4 years agoChange some images for a blog post and add 2x images.
timothy@apple.com [Thu, 23 Jul 2015 20:05:12 +0000 (20:05 +0000)]
Change some images for a blog post and add 2x images.

* blog-files/inspector-elements-tab-2x.png: Added.
* blog-files/inspector-elements-tab.png: Updated.
* blog-files/inspector-network-tab-2x.png: Added.
* blog-files/inspector-network-tab.png: Updated.
* blog-files/inspector-tab-bar-2x.png: Added.
* blog-files/inspector-tab-bar.png: Updated.

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

4 years agoSource/WebCore:
bfulgham@apple.com [Thu, 23 Jul 2015 19:30:02 +0000 (19:30 +0000)]
Source/WebCore:
[Win] Implement High DPI support features
https://bugs.webkit.org/show_bug.cgi?id=146335
<rdar://problem/21558269>

Reviewed by Alex Christensen.

* platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
(WebCore::PlatformCALayerWinInternal::drawTile): Don't translate the CGContext to the position
of the CACFLayerRef; the underlying context is already in the right position.
* platform/win/PlatformMouseEventWin.cpp: Update class to adjust mouse
event coordinates based on scaling factor.
(WebCore::deviceScaleFactor):
(WebCore::positionForEvent):
* platform/win/ScrollbarThemeWin.cpp:
(WebCore::scrollbarThicknessInPixels):
(WebCore::ScrollbarThemeWin::scrollbarThickness):
(WebCore::ScrollbarThemeWin::themeChanged):
* platform/win/WheelEventWin.cpp: Update class to adjust wheel event
coordinates based on scaling factor.
(WebCore::deviceScaleFactor):
(WebCore::positionForEvent):
(WebCore::globalPositionForEvent):
(WebCore::PlatformWheelEvent::PlatformWheelEvent):

Source/WebKit/win:
[Win] Implement High DPI support features
https://bugs.webkit.org/show_bug.cgi?id=146335
<rdar://problem/21558269>

Reviewed by Alex Christensen.

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::transitionToCommittedForNewPage): Size
page for current device scale factor.
* WebFrame.cpp:
(WebFrame::paintDocumentRectToContext): Account for device scale factor.
(WebFrame::paintScrollViewRectToContextAtPoint): Ditto.
* WebView.cpp:
(WebView::repaint): Adjust paint rect for device scale factor.
(WebView::scrollBackingStore): Adjust coordinates for scale factor.
(WebView::sizeChanged): Ditto.
(WebView::updateBackingStore): Ditto.
(WebView::paint): Ditto.
(WebView::paintIntoBackingStore): Ditto.
(WebView::handleContextMenuEvent): Ditto.
(WebView::gestureNotify): Ditto.
(WebView::gesture): Ditto.
(WebView::initializeToolTipWindow): Adjust max tool tip width
for device scale factor.
(WebView::selectionRect): Adjust coordinates for scale factor.
(WebView::elementAtPoint): Ditto.
(WebView::scrollOffset): Ditto.
(WebView::scrollBy): Ditto.
(WebView::visibleContentRect): Ditto.
(WebView::paintContents): Ditto.
* WebView.h:

Tools:
[Win] Implement proper High DPI support features
https://bugs.webkit.org/show_bug.cgi?id=146335
<rdar://problem/21558269>

Reviewed by Alex Christensen.

Update WinLauncher to take device scaling factor into account.

* WinLauncher/Common.cpp:
(resizeSubViews): Make sure toolbars and URL bar are properly sized and using
a valid font.
(computeFullDesktopFrame): Handle high DPI desktops.
(WndProc): Make comments more precise.
* WinLauncher/WinLauncher.cpp:
(WinLauncher::init): Determine device scale factor at launch.
(WinLauncher::updateDeviceScaleFactor): Added.
* WinLauncher/WinLauncher.h:
* WinLauncher/WinLauncherWebHost.h: Use C++11 initialization.
* WinLauncher/WinMain.cpp: Size interface based on scaling factor.
(wWinMain): Ditto.
* win/DLLLauncher/DLLLauncherMain.cpp:
(wWinMain): Tell Windows we understand high DPI.

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

4 years agoREGRESSION(r182236): Justified Arabic text does not expand
mmaxfield@apple.com [Thu, 23 Jul 2015 19:15:16 +0000 (19:15 +0000)]
REGRESSION(r182236): Justified Arabic text does not expand
https://bugs.webkit.org/show_bug.cgi?id=147217

Reviewed by Simon Fraser.

When I was writing r182236, I got confused between the levels of the string hierarchy in ComplexTextController.
I've added a comment in the header which should make it easier to get it right.

Test: fast/text/international/arabic-justify.html

* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
* platform/graphics/mac/ComplexTextController.h:

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

4 years agoRemove some files that should have been removed with WebKit2 Windows
timothy_horton@apple.com [Thu, 23 Jul 2015 18:34:51 +0000 (18:34 +0000)]
Remove some files that should have been removed with WebKit2 Windows
https://bugs.webkit.org/show_bug.cgi?id=147223

Reviewed by Csaba Osztrogonác.

* Shared/API/c/cf/WKURLRequestCF.cpp: Removed.
* Shared/API/c/cf/WKURLRequestCF.h: Removed.
* Shared/API/c/cf/WKURLResponseCF.cpp: Removed.
* Shared/API/c/cf/WKURLResponseCF.h: Removed.

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

4 years agoChange some images for a blog post.
timothy@apple.com [Thu, 23 Jul 2015 18:21:00 +0000 (18:21 +0000)]
Change some images for a blog post.

* blog-files/inspector-elements-tab.png:
* blog-files/inspector-network-tab.png:

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

4 years agoFix the build
timothy_horton@apple.com [Thu, 23 Jul 2015 18:04:55 +0000 (18:04 +0000)]
Fix the build

* Platform/spi/ios/UIKitSPI.h:

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

4 years agoAdd and change some images for a blog post.
timothy@apple.com [Thu, 23 Jul 2015 18:03:03 +0000 (18:03 +0000)]
Add and change some images for a blog post.

* blog-files/inspector-elements-network-tabs.png: Removed.
* blog-files/inspector-elements-tab.png: Added.
* blog-files/inspector-network-tab.png: Added.
* blog-files/inspector-tab-bar.png:

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

4 years agoCorrect rest of the images to match.
bfulgham@apple.com [Thu, 23 Jul 2015 17:30:13 +0000 (17:30 +0000)]
Correct rest of the images to match.

* blog-files/backdrop-filters/backdrop_correct_1x.jpg:
* blog-files/backdrop-filters/backdrop_correct_2x.jpg:
* blog-files/backdrop-filters/backdrop_invert_1x.jpg:
* blog-files/backdrop-filters/backdrop_invert_2x.jpg:
* blog-files/backdrop-filters/backdrop_mixed_1x.jpg:

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

4 years ago[Win] Unreviewed build fix after r187169.
achristensen@apple.com [Thu, 23 Jul 2015 17:26:58 +0000 (17:26 +0000)]
[Win] Unreviewed build fix after r187169.

* Scripts/build-webkit:
Correctly find WebKit.sln.

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

4 years agoAdjust image sizes to avoid page scaling.
bfulgham@apple.com [Thu, 23 Jul 2015 17:21:50 +0000 (17:21 +0000)]
Adjust image sizes to avoid page scaling.

* blog-files/backdrop-filters/Screen_OSX_Yosemite_Finder-iCloud-WaterBg_1x.jpg:
* blog-files/backdrop-filters/Screen_OSX_Yosemite_Finder-iCloud-WaterBg_2x.jpg:
* blog-files/backdrop-filters/Screen_V_iOS8_ControlCenter_BlueGradient_1x.jpg:
* blog-files/backdrop-filters/Screen_V_iOS8_ControlCenter_BlueGradient_2x.jpg:
* blog-files/backdrop-filters/backdrop_mixed_2x.jpg:

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

4 years agoApplication cache abort() tests are flaky
msaboff@apple.com [Thu, 23 Jul 2015 14:02:24 +0000 (14:02 +0000)]
Application cache abort() tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=87633

These AppCache tests are flakey:
http/tests/appcache/deferred-events-delete-while-raising-timer.html
http/tests/appcache/deferred-events-delete-while-raising.html
http/tests/appcache/deferred-events.html
http/tests/appcache/fail-on-update-2.html

* TestExpectations:

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

4 years agoWeb Inspector: wrong cursor shown when selecting time interval from timeline overview
mattbaker@apple.com [Thu, 23 Jul 2015 14:00:00 +0000 (14:00 +0000)]
Web Inspector: wrong cursor shown when selecting time interval from timeline overview
https://bugs.webkit.org/show_bug.cgi?id=147094

Reviewed by Timothy Hatcher.

* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler.allows-time-range-selection.creating-selection):
New cursor style for entire ruler element.

* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
Toggle cursor style when dragging to create a new selection in the overview.

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

4 years ago[Win] Fix typos in PluginViewWin.cpp: kWebPluginViewdowClassName -> kWebPluginViewCla...
commit-queue@webkit.org [Thu, 23 Jul 2015 12:21:33 +0000 (12:21 +0000)]
[Win] Fix typos in PluginViewWin.cpp: kWebPluginViewdowClassName -> kWebPluginViewClassName
https://bugs.webkit.org/show_bug.cgi?id=147214

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-07-23
Reviewed by Csaba Osztrogonác.

* Plugins/PluginViewWin.cpp:
(WebCore::registerPluginView):
(WebCore::PluginView::platformStart):

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

4 years agoFix the build for __IPHONE_OS_VERSION_MIN_REQUIRED <= 80200 || !HAVE(AVKIT)
timothy_horton@apple.com [Thu, 23 Jul 2015 10:11:28 +0000 (10:11 +0000)]
Fix the build for __IPHONE_OS_VERSION_MIN_REQUIRED <= 80200 || !HAVE(AVKIT)

* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(elementRectInWindow):
This helper is only used in the #else block, so move it there.

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

4 years agoRemove files that were meant to be removed in r173929
timothy_horton@apple.com [Thu, 23 Jul 2015 10:05:22 +0000 (10:05 +0000)]
Remove files that were meant to be removed in r173929

* WebProcess/WebPage/mac/WebInspectorMac.mm: Removed.

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

4 years agoRemove files that were meant to be removed in r168213
timothy_horton@apple.com [Thu, 23 Jul 2015 09:58:01 +0000 (09:58 +0000)]
Remove files that were meant to be removed in r168213

* UIProcess/API/Cocoa/WKErrorRecoveryAttempting.h: Removed.

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

4 years agoRemove files that were meant to be removed in r168229
timothy_horton@apple.com [Thu, 23 Jul 2015 09:50:37 +0000 (09:50 +0000)]
Remove files that were meant to be removed in r168229

* UIProcess/API/Cocoa/WKSession.h: Removed.
* UIProcess/API/Cocoa/WKSession.mm: Removed.
* UIProcess/API/Cocoa/WKSessionInternal.h: Removed.

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

4 years agoRemove files that were meant to be removed in r165014
timothy_horton@apple.com [Thu, 23 Jul 2015 09:18:01 +0000 (09:18 +0000)]
Remove files that were meant to be removed in r165014

* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.h: Removed.
* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm: Removed.

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