WebKit-https.git
6 years agoClean up the difference between painting focus rings and adding PDF annotations
dino@apple.com [Wed, 7 May 2014 02:58:39 +0000 (02:58 +0000)]
Clean up the difference between painting focus rings and adding PDF annotations
https://bugs.webkit.org/show_bug.cgi?id=132638

Reviewed by Simon Fraser.

The code to add a PDF annotation when printing was called from
drawFocusRing, which is quite confusing. With just little movement
of code, we can detect an annotation and call addPDFURLRect in the
paint phase, and drawFocusRing becomes something that only
draws focus rings.

* rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutline): Split calls to drawFocusRing
and addPDFURLRect.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintFocusRing): Get rid of call to PDF.
(WebCore::RenderObject::addPDFURLRect): Change the signature so it
can be called externally, and calculates the rectangle itself.
(WebCore::RenderObject::paintOutline): Split the calls.
* rendering/RenderObject.h:

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

6 years agoCalling createPattern with a broken image must throw an invalidstate error
cabanier@adobe.com [Wed, 7 May 2014 02:25:00 +0000 (02:25 +0000)]
Calling createPattern with a broken image must throw an invalidstate error
https://bugs.webkit.org/show_bug.cgi?id=132407

Reviewed by Darin Adler.

Source/WebCore:
Updated createPattern so it throws an invalidState exception
if you pass it an image that is in the broken state.

Tests:
* canvas/philip/tests/2d.pattern.image.broken.html:
* canvas/philip/tests/2d.pattern.image.incomplete.empty.html:
* fast/canvas/canvas-empty-image-pattern.html:

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createPattern):

LayoutTests:
* canvas/philip/tests/2d.pattern.image.broken-expected.txt:
* canvas/philip/tests/2d.pattern.image.broken.html:
* canvas/philip/tests/2d.pattern.image.incomplete.empty-expected.txt:
* canvas/philip/tests/2d.pattern.image.incomplete.empty.html:
* fast/canvas/canvas-empty-image-pattern-expected.txt:
* fast/dom/gc-9-expected.txt:
* fast/dom/gc-9.html:
* platform/mac/canvas/philip/tests/2d.pattern.image.broken-expected.txt: Removed.
* platform/mac/canvas/philip/tests/2d.pattern.image.incomplete.empty-expected.txt: Removed.

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

6 years ago[iOS][Mac] Display sleeps while playing <video> content.
jer.noble@apple.com [Wed, 7 May 2014 01:44:13 +0000 (01:44 +0000)]
[iOS][Mac] Display sleeps while playing <video> content.
https://bugs.webkit.org/show_bug.cgi?id=132624

Reviewed by Darin Adler.

On iOS and Mac, create a DisplaySleepDisablerCocoa rather than an (no-op) DisplaySleepDisabler.

* platform/cocoa/DisplaySleepDisablerCocoa.cpp:
(WebCore::DisplaySleepDisabler::create):
* platform/cocoa/DisplaySleepDisablerCocoa.h:

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

6 years ago[Mac] Allow focus rings to redraw themselves if necessary
dino@apple.com [Wed, 7 May 2014 01:41:57 +0000 (01:41 +0000)]
[Mac] Allow focus rings to redraw themselves if necessary
https://bugs.webkit.org/show_bug.cgi?id=132593

Fix iOS build.

* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawFocusRing): We no longer use the color parameter.

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

6 years ago[Mac] Allow focus rings to redraw themselves if necessary
dino@apple.com [Wed, 7 May 2014 01:07:46 +0000 (01:07 +0000)]
[Mac] Allow focus rings to redraw themselves if necessary
https://bugs.webkit.org/show_bug.cgi?id=132593

Reviewed by Simon Fraser.

Source/WebCore:
Mac allows focus rings to change rendering over time. Expose this
functionality to WebKit by having the rendering code detect that
a focused element has asked to repaint itself, and also have
the FocusController object remember how long it has been since
an element was focused.

This patch removes WebCoreNSCellExtras, since a better version is
available in WebKitSystemInterface, and it was going to be cumbersome
to port the code from there into WebKit.

* WebCore.exp.in: Export _wkDrawFocusRingAtTime and _wkDrawCellFocusRingWithFrameAtTime.
* WebCore.xcodeproj/project.pbxproj: Remove WebCoreNSCellExtras.
* page/FocusController.cpp:
(WebCore::FocusController::FocusController): Initialize the repaint timer.
(WebCore::FocusController::~FocusController): Stop the repaint timer on deletion.
(WebCore::FocusController::setFocusedElement): Keep track of the current time when focused.
(WebCore::FocusController::focusedElementNeedsRepaint): Start the repaint timer.
(WebCore::FocusController::focusRepaintTimerFired): Ask the focused element to repaint itself.
(WebCore::FocusController::timeSinceFocusWasSet):
* page/FocusController.h: Expose timeSinceFocusWasSet() and focusedElementNeedsRepaint(), as
well as add the timer for repainting.

* platform/ControlStates.h: Add timeSinceControlWasFocused member variable, allowing the platform
code such as Theme to obtain the value from FocusController.
(WebCore::ControlStates::ControlStates):
(WebCore::ControlStates::timeSinceControlWasFocused):
(WebCore::ControlStates::setTimeSinceControlWasFocused):

* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::drawFocusRing): New Mac-only method that uses timeOffset.

* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::drawFocusRingToContext): No need to pass in color and radius - these are now
ignored in WKDrawFocusRing. However, I didn't want to change the signature of the
WKSI function.
(WebCore::drawFocusRingToContextAtTime): Call into the new method WKDrawFocusRingAtTime.
(WebCore::GraphicsContext::drawFocusRing): Color and radius no longer used.

* platform/mac/ThemeMac.mm:
(WebCore::checkboxMargins): Update the margins since our focus ring can be a lot bigger.
(WebCore::radioMargins): Ditto.
(WebCore::paintToggleButton): Drawing a focus ring might trigger a repaint too.
(WebCore::buttonMargins): Increase the margins.
(WebCore::paintButton): If our focus ring wants to be drawn again, set the ControlStates flag.

* platform/mac/WebCoreNSCellExtras.h: Removed.
* platform/mac/WebCoreNSCellExtras.m: Removed.

* platform/mac/WebCoreSystemInterface.h: Declare the new methods.
* platform/mac/WebCoreSystemInterface.mm:

* rendering/RenderElement.cpp:
(WebCore::RenderElement::initializeStyle): Expand the overflow rects by the maximum
focus ring width. This might be different from the current outline size.
(WebCore::RenderElement::setStyle): Ditto.

* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintFocusRing): If we're on Mac, use the new drawFocusRing method,
which sets a parameter to true if the focused element needs a repaint.

* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::updateControlStatesForRenderer): Copy the value from FocusController
so that the platform Theme code can use it.

* rendering/RenderTheme.h:
(WebCore::RenderTheme::platformFocusRingMaxWidth): Add a way to get the maximum width
of a focus ring for the platform. This is used to extend the overflow rects.
* rendering/RenderThemeMac.h: Override the focus ring width.
* rendering/RenderThemeMac.mm: On newer versions of OS X, we have a larger focus ring.
(WebCore::RenderThemeMac::platformFocusRingMaxWidth):
(WebCore::RenderThemeMac::paintMenuList): If a menu is focused, and needs a repaint, mark
it as such.

Source/WebKit/mac:
* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Add DrawFocusRingAtTime and DrawCellFocusRingWithFrameAtTime.

Source/WebKit2:
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Add DrawFocusRingAtTime and DrawCellFocusRingWithFrameAtTime.

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

6 years agoAdd test for deleteAllCompiledCode
msaboff@apple.com [Wed, 7 May 2014 00:34:34 +0000 (00:34 +0000)]
Add test for deleteAllCompiledCode
https://bugs.webkit.org/show_bug.cgi?id=132632

Reviewed by Phil Pizlo.

Added two new hooks to jsc, one to call Heap::deleteAllCompiledCode() and
the other to call CodeBlock::optimizeNextInvocation().  Used these two hooks
to write a test that will queue up loads of DFG compiles and then call
Heap::deleteAllCompiledCode() to make sure that it can handle compiled
code as well as code being compiled.

* jsc.cpp:
(GlobalObject::finishCreation):
(functionDeleteAllCompiledCode):
(functionOptimizeNextInvocation):
* runtime/TestRunnerUtils.cpp:
(JSC::optimizeNextInvocation):
* runtime/TestRunnerUtils.h:
* tests/stress/deleteAllCompiledCode.js: Added.
(functionList):
(runTest):

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

6 years ago<rdar://problem/16833442> [iOS WebKit2]: Keep the order of contentView in _scrollView...
benjamin@webkit.org [Wed, 7 May 2014 00:29:29 +0000 (00:29 +0000)]
<rdar://problem/16833442> [iOS WebKit2]: Keep the order of contentView in _scrollView after rotation
https://bugs.webkit.org/show_bug.cgi?id=132634

Reviewed by Enrica Casucci.

Nice idea of Yongjun.

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

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

6 years agoTake WKView's topContentInset into account when docking Web Inspector to the right.
timothy@apple.com [Wed, 7 May 2014 00:17:00 +0000 (00:17 +0000)]
Take WKView's topContentInset into account when docking Web Inspector to the right.

https://bugs.webkit.org/show_bug.cgi?id=132631

Reviewed by Joseph Pecoraro.

* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange): Subtract topContentInset
from the height of the frame for the Inspector.

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

6 years ago[iOS][WK2] WebKit2 does not set CanPreventNativeGestures on the platform events
benjamin@webkit.org [Wed, 7 May 2014 00:01:53 +0000 (00:01 +0000)]
[iOS][WK2] WebKit2 does not set CanPreventNativeGestures on the platform events
https://bugs.webkit.org/show_bug.cgi?id=132594

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-06
Reviewed by Simon Fraser.

Set CanPreventNativeGestures on the plaform event.
Change the tracking of WKContentView to be similar to WebPageProxy.

* Shared/WebEvent.h:
(WebKit::WebTouchEvent::WebTouchEvent):
(WebKit::WebTouchEvent::canPreventNativeGestures):
(WebKit::WebTouchEvent::setCanPreventNativeGestures):
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
* Shared/ios/WebTouchEventIOS.cpp:
(WebKit::WebTouchEvent::encode):
(WebKit::WebTouchEvent::decode):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _webTouchEventsRecognized:]):

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

6 years ago[iOS] Animate AVPlayerLayer into and out of full screen
jer.noble@apple.com [Tue, 6 May 2014 23:36:20 +0000 (23:36 +0000)]
[iOS] Animate AVPlayerLayer into and out of full screen
https://bugs.webkit.org/show_bug.cgi?id=132603

Reviewed by Simon Fraser.

Rather than synchronize animations across the WebProcess / UIProcess boundary, animate
the AVPlayerLayer into place by first resizing the full screen layer to occupy the
entire screen in the WebProcess, and use a sublayerTransform animation in the UIProcess
to scale the AVPlayer from its initial screen location, as well as back to its final screen
location.

* platform/graphics/GeometryUtilities.cpp:
(WebCore::largestRectWithAspectRatioInsideRect): Added utility method.
* platform/graphics/GeometryUtilities.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVVideoLayer init]): Added, initialize video gravity and enable child layer masking.
(-[WebAVVideoLayer setBounds:]): Create a transform to scale the video area.
(WebVideoFullscreenInterfaceAVKit::enterFullscreen): Block implicit animations during setup.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen): Reset the gravity to ResizeAspect
    if necessary.

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

6 years agoMake BlobDataItem use a refcounted object for files
ap@apple.com [Tue, 6 May 2014 23:34:35 +0000 (23:34 +0000)]
Make BlobDataItem use a refcounted object for files
https://bugs.webkit.org/show_bug.cgi?id=132628

Reviewed by Anders Carlsson.

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Added BlobDataFileReference.{h|cpp}

* WebCore.exp.in: Removed unused exports.

* platform/network/BlobData.h:
(WebCore::BlobDataItem::offset):
(WebCore::BlobDataItem::BlobDataItem):
Use a wrapper class for files, not a path. Changed to be more class-like accordingly.

* platform/network/BlobData.cpp:
(WebCore::BlobData::appendData):
(WebCore::BlobData::appendFile):
(WebCore::BlobData::appendBlob): Deleted.
(WebCore::BlobData::BlobData): Deleted.
We never add blobs to BlobData, they are always resolved to data of file references.
Lots of very confusing code to delete.

* platform/network/BlobDataFileReference.h: Added.
* platform/network/BlobDataFileReference.cpp: Added.
(WebCore::BlobDataFileReference::size):
(WebCore::BlobDataFileReference::expectedModificationTime):
(WebCore::BlobDataFileReference::computeFileSystemData):
A unique reference to a file referenced by blob, to be preserved when you slice
or combine blobs.

* platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::BlobRegistryImpl::registerFileBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::blobSize):
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::getSizeForNext):
(WebCore::BlobResourceHandle::didGetSize):
(WebCore::BlobResourceHandle::readDataSync):
(WebCore::BlobResourceHandle::readFileSync):
(WebCore::BlobResourceHandle::readDataAsync):
(WebCore::BlobResourceHandle::readFileAsync):
* platform/network/BlobResourceHandle.h:
* platform/network/FormData.cpp:
(WebCore::appendBlobResolved):
Updated for BlobDataItem interface changes.

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

6 years ago[HTML] Default argument to HTMLTableRowElement.insertCell() should be -1
ch.dumez@samsung.com [Tue, 6 May 2014 23:32:51 +0000 (23:32 +0000)]
[HTML] Default argument to HTMLTableRowElement.insertCell() should be -1
https://bugs.webkit.org/show_bug.cgi?id=132615

Reviewed by Darin Adler.

Source/WebCore:
HTMLTableRowElement.insertCell()'s argument default value should be -1, not
0, as per the specification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tr-element

The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
https://codereview.chromium.org/263323004/

Test: fast/dom/HTMLTableRowElement/insertCell-default-argument.html

* html/HTMLTableRowElement.h:
* html/HTMLTableRowElement.idl:

LayoutTests:
Add layout test to test that the default argument to
HTMLTableRowElement.insertCell() is -1.

* fast/dom/HTMLTableRowElement/insertCell-default-argument-expected.txt: Added.
* fast/dom/HTMLTableRowElement/insertCell-default-argument.html: Added.

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

6 years agoFix build.
oliver@apple.com [Tue, 6 May 2014 23:11:00 +0000 (23:11 +0000)]
Fix build.

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

6 years ago[iOS][WK2] Add tap highlight on the simple UITapGestureRecognizer
benjamin@webkit.org [Tue, 6 May 2014 22:53:12 +0000 (22:53 +0000)]
[iOS][WK2] Add tap highlight on the simple UITapGestureRecognizer
https://bugs.webkit.org/show_bug.cgi?id=132623
<rdar://problem/16709507>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-06
Reviewed by Enrica Casucci.

Add a low latency highlight for tap/click.

* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::commitPotentialTapFailed):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView _showTapHighlightWithColor:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
(-[WKContentView _didGetTapHighlightForRequest:color:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
(-[WKContentView _finishInteraction]):
(-[WKContentView _highlightLongPressRecognized:]):
(-[WKContentView _singleTapRecognized:]):
(-[WKContentView _singleTapDidReset:]):
(-[WKContentView _commitPotentialTapFailed]):
(-[WKContentView _singleTapCommited:]):
(-[WKContentView _attemptClickAtLocation:]):
* UIProcess/ios/WKSyntheticClickTapGestureRecognizer.h: Added.
* UIProcess/ios/WKSyntheticClickTapGestureRecognizer.m: Added.
(-[WKSyntheticClickTapGestureRecognizer setGestureRecognizedTarget:action:]):
(-[WKSyntheticClickTapGestureRecognizer setResetTarget:action:]):
(-[WKSyntheticClickTapGestureRecognizer setState:]):
(-[WKSyntheticClickTapGestureRecognizer reset]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::potentialTapAtPosition):
(WebKit::WebPageProxy::commitPotentialTap):
(WebKit::WebPageProxy::cancelPotentialTap):
(WebKit::WebPageProxy::tapHighlightAtPosition):
(WebKit::WebPageProxy::commitPotentialTapFailed):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::handleTap):
(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
(WebKit::WebPage::potentialTapAtPosition):
(WebKit::WebPage::commitPotentialTap):
(WebKit::WebPage::cancelPotentialTap):
(WebKit::WebPage::tapHighlightAtPosition):

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

6 years agoPut WebArchive and WebArchiveResource in the API namespace.
andersca@apple.com [Tue, 6 May 2014 22:44:56 +0000 (22:44 +0000)]
Put WebArchive and WebArchiveResource in the API namespace.

Rubber-stamped by Dan Bernstein.

* Shared/API/c/WKSharedAPICast.h:
* Shared/API/c/mac/WKWebArchive.cpp:
(WKWebArchiveGetTypeID):
(WKWebArchiveCreate):
(WKWebArchiveCreateWithData):
(WKWebArchiveCreateFromRange):
(WKWebArchiveCopyMainResource):
* Shared/API/c/mac/WKWebArchiveResource.cpp:
(WKWebArchiveResourceGetTypeID):
(WKWebArchiveResourceCreate):
* Shared/APIWebArchive.cpp: Renamed from Source/WebKit2/Shared/WebArchive.cpp.
(API::WebArchive::create):
(API::WebArchive::WebArchive):
(API::WebArchive::~WebArchive):
(API::WebArchive::mainResource):
(API::WebArchive::subresources):
(API::WebArchive::subframeArchives):
(API::releaseCFData):
(API::WebArchive::data):
(API::WebArchive::coreLegacyWebArchive):
* Shared/APIWebArchive.h: Renamed from Source/WebKit2/Shared/WebArchive.h.
* Shared/APIWebArchiveResource.cpp: Renamed from Source/WebKit2/Shared/WebArchiveResource.cpp.
(API::WebArchiveResource::create):
(API::WebArchiveResource::WebArchiveResource):
(API::WebArchiveResource::~WebArchiveResource):
(API::releaseCFData):
(API::WebArchiveResource::data):
(API::WebArchiveResource::URL):
(API::WebArchiveResource::MIMEType):
(API::WebArchiveResource::textEncoding):
(API::WebArchiveResource::coreArchiveResource):
* Shared/APIWebArchiveResource.h: Renamed from Source/WebKit2/Shared/WebArchiveResource.h.
* WebKit2.xcodeproj/project.pbxproj:

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

6 years agoAdd missing line from r168384.
akling@apple.com [Tue, 6 May 2014 22:27:23 +0000 (22:27 +0000)]
Add missing line from r168384.

* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::~ChildNodesLazySnapshot):

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

6 years agoCan't make a booking at virginamerica.com
oliver@apple.com [Tue, 6 May 2014 22:17:04 +0000 (22:17 +0000)]
Can't make a booking at virginamerica.com
https://bugs.webkit.org/show_bug.cgi?id=132626

Reviewed by Geoffrey Garen.

Source/WebCore:
Test: fast/dom/assign-to-prototype-accessor-on-prototype-should-be-silent.html

We can't throw an exception when a site incorrectly attempts
to use a dom property setter directly on the prototype as
there are sites that do this as compatibility workarounds
for old browsers. Instead we treat use of the setter on
the prototype object in the same way we do getters, and just
log a warning to the console.

* bindings/js/JSDOMBinding.cpp:
(WebCore::reportDeprecatedSetterError):
* bindings/js/JSDOMBinding.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceImplementsStr3):
(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::setJSTestInterfaceSupplementalStr3):
(WebCore::setJSTestInterfaceSupplementalNode):
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
(WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::setJSTestObjEnumAttr):
(WebCore::setJSTestObjByteAttr):
(WebCore::setJSTestObjOctetAttr):
(WebCore::setJSTestObjShortAttr):
(WebCore::setJSTestObjUnsignedShortAttr):
(WebCore::setJSTestObjLongAttr):
(WebCore::setJSTestObjLongLongAttr):
(WebCore::setJSTestObjUnsignedLongLongAttr):
(WebCore::setJSTestObjStringAttr):
(WebCore::setJSTestObjTestObjAttr):
(WebCore::setJSTestObjXMLObjAttr):
(WebCore::setJSTestObjCreate):
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedIntegralAttr):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
(WebCore::setJSTestObjReflectedBooleanAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedCustomIntegralAttr):
(WebCore::setJSTestObjReflectedCustomBooleanAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
(WebCore::setJSTestObjTypedArrayAttr):
(WebCore::setJSTestObjAttrWithGetterException):
(WebCore::setJSTestObjAttrWithSetterException):
(WebCore::setJSTestObjStringAttrWithGetterException):
(WebCore::setJSTestObjStringAttrWithSetterException):
(WebCore::setJSTestObjCustomAttr):
(WebCore::setJSTestObjWithScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::setJSTestObjConditionalAttr1):
(WebCore::setJSTestObjConditionalAttr2):
(WebCore::setJSTestObjConditionalAttr3):
(WebCore::setJSTestObjConditionalAttr4Constructor):
(WebCore::setJSTestObjConditionalAttr5Constructor):
(WebCore::setJSTestObjConditionalAttr6Constructor):
(WebCore::setJSTestObjAnyAttribute):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):
(WebCore::setJSTestObjStrawberry):
(WebCore::setJSTestObjStrictFloat):
(WebCore::setJSTestObjId):
(WebCore::setJSTestObjReplaceableAttribute):
(WebCore::setJSTestObjNullableLongSettableAttribute):
(WebCore::setJSTestObjNullableStringValue):
(WebCore::setJSTestObjAttributeWithReservedEnumType):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::setJSTestSerializedScriptValueInterfaceValue):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
(WebCore::setJSTestTypedefsAttrWithGetterException):
(WebCore::setJSTestTypedefsAttrWithSetterException):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):

LayoutTests:
Add testcase to make sure that we are silently ignoring usage
of prototype setters and the prototype itself. We dump a warning
to the console as throwing an exception breaks sites that used
to rely on essentially no-op behavior.

* fast/dom/assign-to-prototype-accessor-on-prototype-should-be-silent-expected.txt: Added.
* fast/dom/assign-to-prototype-accessor-on-prototype-should-be-silent.html: Added.

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

6 years agoJSString::toAtomicString() should return AtomicString.
akling@apple.com [Tue, 6 May 2014 22:16:22 +0000 (22:16 +0000)]
JSString::toAtomicString() should return AtomicString.
<https://webkit.org/b/132627>

Remove premature optimization where I was trying to avoid refcount
churn when returning an already atomicized String.

Instead of using reinterpret_cast to mangle the String member into
a const AtomicString& return value, just return AtomicString.

Reviewed by Geoff Garen.

* runtime/JSString.h:
(JSC::JSString::toAtomicString):

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

6 years agoChildNodesLazySnapshot::m_childNodes needs two heap allocations.
akling@apple.com [Tue, 6 May 2014 22:13:45 +0000 (22:13 +0000)]
ChildNodesLazySnapshot::m_childNodes needs two heap allocations.
<https://webkit.org/b/132616>

This seems a bit silly, since ChildNodesLazySnapshot is always
allocated on the stack.

Change it to be a bool + a Vector instead of using the nullity
as a presence indicator. This way we also don't end up with an
out-of-line ~OwnPtr for the Vector.

Reviewed by Geoff Garen.

* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::ChildNodesLazySnapshot):
(WebCore::ChildNodesLazySnapshot::nextNode):
(WebCore::ChildNodesLazySnapshot::takeSnapshot):
(WebCore::ChildNodesLazySnapshot::hasSnapshot):

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

6 years agoEliminate BlobStorageData
ap@apple.com [Tue, 6 May 2014 22:11:07 +0000 (22:11 +0000)]
Eliminate BlobStorageData
https://bugs.webkit.org/show_bug.cgi?id=132617

Reviewed by Anders Carlsson.

* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/BlobData.h:
(WebCore::BlobData::create):
(WebCore::BlobData::BlobData):
* platform/network/BlobRegistryImpl.cpp:
(WebCore::loadResourceSynchronously):
(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::BlobRegistryImpl::registerFileBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):
(WebCore::BlobRegistryImpl::getBlobDataFromURL):
(WebCore::BlobRegistryImpl::blobSize):
* platform/network/BlobRegistryImpl.h:
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::createAsync):
(WebCore::BlobResourceHandle::loadResourceSynchronously):
(WebCore::BlobResourceHandle::BlobResourceHandle):
(WebCore::BlobResourceHandle::doStart):
(WebCore::BlobResourceHandle::getSizeForNext):
(WebCore::BlobResourceHandle::didGetSize):
(WebCore::BlobResourceHandle::seek):
(WebCore::BlobResourceHandle::readSync):
(WebCore::BlobResourceHandle::readDataSync):
(WebCore::BlobResourceHandle::readFileSync):
(WebCore::BlobResourceHandle::readAsync):
(WebCore::BlobResourceHandle::readDataAsync):
(WebCore::BlobResourceHandle::readFileAsync):
(WebCore::BlobResourceHandle::notifyResponseOnSuccess):
* platform/network/BlobResourceHandle.h:
* platform/network/BlobStorageData.h: Removed.
* platform/network/FormData.cpp:
(WebCore::appendBlobResolved):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::addEncodedBlobToSoupMessageBody):

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

6 years agoFix the iOS build.
simon.fraser@apple.com [Tue, 6 May 2014 21:45:08 +0000 (21:45 +0000)]
Fix the iOS build.

WebCore::Editor::replaceNodeFromPasteboard(WebCore::Node*, WTF::String const&) is Mac-only.
Also sort the export file.

* WebCore.exp.in:

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

6 years agoBegin Removal of Old Multi-Column Code.
hyatt@apple.com [Tue, 6 May 2014 21:35:52 +0000 (21:35 +0000)]
Begin Removal of Old Multi-Column Code.
https://bugs.webkit.org/show_bug.cgi?id=132480

Reviewed by Andreas Kling.

Source/WebCore:
* dom/Document.cpp:
(WebCore::Document::regionBasedColumnsEnabled): Deleted.
* dom/Document.h:
* page/FrameView.cpp:
(WebCore::updateLayerPositionFlags):
* page/Settings.in:
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::clearPaginationInformation):
(WebCore::LayoutState::addForcedColumnBreak): Deleted.
* rendering/LayoutState.h:
(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::isPaginatingColumns): Deleted.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::~RenderBlock):
(WebCore::RenderBlock::addChildToContinuation):
(WebCore::RenderBlock::addChild):
(WebCore::RenderBlock::addChildIgnoringContinuation):
(WebCore::RenderBlock::removeLeftoverAnonymousBlock):
(WebCore::canMergeContiguousAnonymousBlocks):
(WebCore::RenderBlock::removeChild):
(WebCore::RenderBlock::recomputeLogicalWidth):
(WebCore::RenderBlock::addOverflowFromChildren):
(WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
(WebCore::RenderBlock::simplifiedLayout):
(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::offsetForContents):
(WebCore::RenderBlock::computeIntrinsicLogicalWidths):
(WebCore::RenderBlock::createAnonymousBoxWithSameTypeAs):
(WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation):
(WebCore::RenderBlock::renderName):
(WebCore::RenderBlock::addChildToAnonymousColumnBlocks): Deleted.
(WebCore::RenderBlock::containingColumnsBlock): Deleted.
(WebCore::RenderBlock::splitFlow): Deleted.
(WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks): Deleted.
(WebCore::RenderBlock::columnsBlockForSpanningElement): Deleted.
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): Deleted.
(WebCore::RenderBlock::updateLogicalWidthAndColumnWidth): Deleted.
(WebCore::RenderBlock::isTopLayoutOverflowAllowed): Deleted.
(WebCore::RenderBlock::isLeftLayoutOverflowAllowed): Deleted.
(WebCore::RenderBlock::paintColumnRules): Deleted.
(WebCore::RenderBlock::initialBlockOffsetForPainting): Deleted.
(WebCore::RenderBlock::blockDeltaForPaintingNextColumn): Deleted.
(WebCore::RenderBlock::paintColumnContents): Deleted.
(WebCore::ColumnRectIterator::ColumnRectIterator): Deleted.
(WebCore::ColumnRectIterator::advance): Deleted.
(WebCore::ColumnRectIterator::columnRect): Deleted.
(WebCore::ColumnRectIterator::hasMore): Deleted.
(WebCore::ColumnRectIterator::adjust): Deleted.
(WebCore::ColumnRectIterator::update): Deleted.
(WebCore::RenderBlock::hitTestColumns): Deleted.
(WebCore::RenderBlock::adjustForColumnRect): Deleted.
(WebCore::RenderBlock::availableLogicalWidth): Deleted.
(WebCore::RenderBlock::columnGap): Deleted.
(WebCore::RenderBlock::computeColumnCountAndWidth): Deleted.
(WebCore::RenderBlock::requiresColumns): Deleted.
(WebCore::RenderBlock::setComputedColumnCountAndWidth): Deleted.
(WebCore::RenderBlock::updateColumnProgressionFromStyle): Deleted.
(WebCore::RenderBlock::computedColumnWidth): Deleted.
(WebCore::RenderBlock::computedColumnCount): Deleted.
(WebCore::RenderBlock::columnInfo): Deleted.
(WebCore::RenderBlock::columnCount): Deleted.
(WebCore::RenderBlock::columnRectAt): Deleted.
(WebCore::RenderBlock::adjustPointToColumnContents): Deleted.
(WebCore::RenderBlock::adjustRectForColumns): Deleted.
(WebCore::RenderBlock::flipForWritingModeIncludingColumns): Deleted.
(WebCore::RenderBlock::adjustStartEdgeForWritingModeIncludingColumns): Deleted.
(WebCore::RenderBlock::adjustForColumns): Deleted.
(WebCore::RenderBlock::adjustIntrinsicLogicalWidthsForColumns): Deleted.
(WebCore::RenderBlock::paginationUnit): Deleted.
(WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer): Deleted.
(WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer): Deleted.
(WebCore::RenderBlock::computeLineGridPaginationOrigin): Deleted.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
(WebCore::RenderBlock::createAnonymousBlock):
(WebCore::RenderBlock::paintColumnRules):
(WebCore::RenderBlock::createAnonymousColumnsBlock): Deleted.
(WebCore::RenderBlock::createAnonymousColumnSpanBlock): Deleted.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustIntrinsicLogicalWidthsForColumns):
(WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths):
(WebCore::RenderBlockFlow::recomputeLogicalWidthAndColumnWidth):
(WebCore::RenderBlockFlow::columnGap):
(WebCore::RenderBlockFlow::computeColumnCountAndWidth):
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::inNormalFlow):
(WebCore::RenderBlockFlow::applyBeforeBreak):
(WebCore::RenderBlockFlow::applyAfterBreak):
(WebCore::RenderBlockFlow::updateMinimumPageHeight):
(WebCore::RenderBlockFlow::computeOverflow):
(WebCore::RenderBlockFlow::addOverhangingFloats):
(WebCore::RenderBlockFlow::hasOverhangingFloat):
(WebCore::RenderBlockFlow::relayoutForPagination):
(WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
(WebCore::RenderBlockFlow::requiresColumns):
(WebCore::RenderBlockFlow::setComputedColumnCountAndWidth):
(WebCore::RenderBlockFlow::updateColumnProgressionFromStyle):
(WebCore::RenderBlockFlow::computedColumnWidth):
(WebCore::RenderBlockFlow::computedColumnCount):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::hasOverhangingFloats):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlowThread.h:
* rendering/RenderGeometryMap.cpp:
(WebCore::canMapBetweenRenderers):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::clippedOverflowRectForRepaint):
(WebCore::RenderInline::computeRectForRepaint):
(WebCore::RenderInline::offsetFromContainer):
(WebCore::RenderInline::mapLocalToContainer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updatePagination):
(WebCore::accumulateOffsetTowardsAncestor):
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::hitTestList):
(WebCore::checkContainingBlockChainForPagination): Deleted.
(WebCore::RenderLayer::useRegionBasedColumns): Deleted.
(WebCore::RenderLayer::paintPaginatedChildLayer): Deleted.
(WebCore::RenderLayer::paintChildLayerIntoColumns): Deleted.
(WebCore::RenderLayer::hitTestPaginatedChildLayer): Deleted.
(WebCore::RenderLayer::hitTestChildLayerColumns): Deleted.
* rendering/RenderLayer.h:
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::shouldCheckColumnBreaks):
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::computeRectForRepaint):
(WebCore::RenderObject::mapLocalToContainer):
(WebCore::RenderObject::pushMappingToContainer):
(WebCore::RenderObject::offsetFromContainer):
* rendering/RenderObject.h:
(WebCore::RenderObject::isAnonymousBlock):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(WebCore::RenderObject::hasColumns): Deleted.
(WebCore::RenderObject::setHasColumns): Deleted.
(WebCore::RenderObject::isAnonymousColumnsBlock): Deleted.
(WebCore::RenderObject::isAnonymousColumnSpanBlock): Deleted.
(WebCore::RenderObject::adjustForColumns): Deleted.
(WebCore::RenderObject::offsetForColumns): Deleted.
* rendering/RenderText.cpp:
(WebCore::RenderText::selectionRectForRepaint):
* rendering/RenderView.cpp:
(WebCore::RenderView::availableLogicalHeight):
(WebCore::RenderView::pageOrViewLogicalHeight):
(WebCore::RenderView::unextendedBackgroundRect):
(WebCore::RenderView::backgroundRect):
(WebCore::RenderView::shouldDisableLayoutStateForSubtree):
(WebCore::RenderView::pageNumberForBlockProgressionOffset):
(WebCore::RenderView::pageCount):
(WebCore::RenderView::paginationUnit): Deleted.
* rendering/RenderView.h:
(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::push):
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):

LayoutTests:
* platform/mac/fast/multicol/client-rects-expected.png:
* platform/mac/fast/multicol/client-rects-expected.txt:
* platform/mac/fast/multicol/client-rects-spanners-complex-expected.png:
* platform/mac/fast/multicol/client-rects-spanners-complex-expected.txt:
* platform/mac/fast/multicol/client-rects-spanners-expected.png:
* platform/mac/fast/multicol/client-rects-spanners-expected.txt:
* platform/mac/fast/multicol/newmulticol/client-rects-expected.png:
* platform/mac/fast/multicol/newmulticol/client-rects-expected.txt:

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

6 years agoPut the symlink in the right place.
andersca@apple.com [Tue, 6 May 2014 21:32:25 +0000 (21:32 +0000)]
Put the symlink in the right place.

* WebKit.xcodeproj/project.pbxproj:

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

6 years agoDon't select an image that is about to have its menu shown.
beidson@apple.com [Tue, 6 May 2014 21:08:14 +0000 (21:08 +0000)]
Don't select an image that is about to have its menu shown.
<rdar://problem/16807845> and https://bugs.webkit.org/show_bug.cgi?id=132579

Reviewed by Tim Horton.

Source/WebCore:
* WebCore.exp.in:

* editing/Editor.h:
* editing/mac/EditorMac.mm:
(WebCore::Editor::replaceNodeFromPasteboard): New method that first selects
  the Node and then immediately pastes over it. Since it’s synchronous the
  selection never has a chance to paint.

* html/shadow/mac/ImageControlsButtonElementMac.cpp:
(WebCore::ImageControlsButtonElementMac::defaultEventHandler): Don’t select the image.

Source/WebKit/mac:
* Misc/WebSharingServicePickerController.mm:
(-[WebSharingServicePickerController didShareImageData:confirmDataIsValidTIFFData:]):
  Call the new replaceNodeFromPasteboard API instead of readSelectionFromPasteboard.

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

6 years ago[Mac] make metadata cue attributes consistent
eric.carlson@apple.com [Tue, 6 May 2014 20:19:31 +0000 (20:19 +0000)]
[Mac] make metadata cue attributes consistent
https://bugs.webkit.org/show_bug.cgi?id=132610

Reviewed by Jer Noble.

Source/WebCore:
No new tests, updated http/tests/media/track-in-band-hls-metadata.html.

* platform/mac/SerializedPlatformRepresentationMac.mm:
(WebCore::jsValueWithAVMetadataItemInContext): Don't include keys @dataTypeNamespace
    or @pictureType, @dataType -> @type.

LayoutTests:
* http/tests/media/track-in-band-hls-metadata-expected.txt:
* http/tests/media/track-in-band-hls-metadata.html:

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

6 years ago"Flash of content without image" when pasting a raw image from the pasteboard
beidson@apple.com [Tue, 6 May 2014 20:10:01 +0000 (20:10 +0000)]
"Flash of content without image" when pasting a raw image from the pasteboard
<rdar://problem/16826199> and https://bugs.webkit.org/show_bug.cgi?id=132612

Reviewed by Tim Horton.

Let an ArchiveResource be flagged as "should load immediately":
* loader/archive/ArchiveResource.cpp:
(WebCore::ArchiveResource::ArchiveResource):
* loader/archive/ArchiveResource.h:
(WebCore::ArchiveResource::setShouldLoadImmediately):
(WebCore::ArchiveResource::shouldLoadImmediately):

Set that flag on the ArchiveResource for the image.
Note we quite explicitly do this only in the "read a single image" from the pasteboard
case, because we don't want to do this synchronous step for multiple images at once
such as when pasting a WebArchive:
* editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readImage):

When creating a new CachedResource, if there is an ArchiveResource that is set to
load immediately, populate the CachedResource immediately instead of scheduling a load:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):

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

6 years ago[CSSRegions] Enabled regions performance tests by default
stavila@adobe.com [Tue, 6 May 2014 19:48:53 +0000 (19:48 +0000)]
[CSSRegions] Enabled regions performance tests by default
https://bugs.webkit.org/show_bug.cgi?id=128244

Reviewed by Andreas Kling.

Enabled regions performance tests.

* Skipped:

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

6 years agoRoll out r167889
mhahnenberg@apple.com [Tue, 6 May 2014 19:15:42 +0000 (19:15 +0000)]
Roll out r167889

Rubber stamped by Geoff Garen.

It broke some websites.

Source/JavaScriptCore:
* runtime/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::create):
* runtime/PropertyMapHashTable.h:
(JSC::PropertyTable::hasDeletedOffset):
(JSC::PropertyTable::hadDeletedOffset): Deleted.
* runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap):
(JSC::Structure::removePropertyTransition):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::removePropertyWithoutTransition):
(JSC::Structure::pin):
(JSC::Structure::pinAndPreventTransitions): Deleted.
* runtime/Structure.h:
* runtime/StructureInlines.h:
(JSC::Structure::setEnumerationCache):
(JSC::Structure::propertyTable):
(JSC::Structure::checkOffsetConsistency):
(JSC::Structure::hadDeletedOffsets): Deleted.
* tests/stress/for-in-after-delete.js:
(foo): Deleted.

LayoutTests:
* js/regress/delete-a-few-properties-then-get-by-id-expected.txt:
* js/regress/delete-a-few-properties-then-get-by-id.html:
* js/regress/script-tests/delete-a-few-properties-then-get-by-id.js:
(MyObject): Deleted.
(foo): Deleted.

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

6 years agoMove the WebKitLegacy header check to the right file
andersca@apple.com [Tue, 6 May 2014 19:14:19 +0000 (19:14 +0000)]
Move the WebKitLegacy header check to the right file
https://bugs.webkit.org/show_bug.cgi?id=132620
<rdar://problem/16815716>

Reviewed by Dan Bernstein.

* WebKitLegacy/MigrateHeadersFromWebKitLegacy.make:
* WebKitLegacy/WebKit.h:

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

6 years agoUnreviewed build fix for debug after r168367.
achristensen@apple.com [Tue, 6 May 2014 18:32:31 +0000 (18:32 +0000)]
Unreviewed build fix for debug after r168367.

* platform/NotImplemented.cpp:
Added include NotImplemented.h.

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

6 years agoRemoved unnecessary notImplemented.h includes.
enrica@apple.com [Tue, 6 May 2014 18:30:18 +0000 (18:30 +0000)]
Removed unnecessary notImplemented.h includes.
https://bugs.webkit.org/show_bug.cgi?id=132587

Patch by Alex Christensen <achristensen@webkit.org> on 2014-05-06
Reviewed by Anders Carlsson.

* Modules/webdatabase/Database.cpp:
* accessibility/AccessibilityObject.cpp:
* bindings/js/Dictionary.h:
* bindings/js/SerializedScriptValue.cpp:
* html/HTMLMediaSession.cpp:
* html/ImageDocument.cpp:
* html/parser/HTMLFormattingElementList.cpp:
* loader/appcache/ApplicationCacheStorage.cpp:
* page/mac/EventHandlerMac.mm:
* platform/NotImplemented.cpp:
* platform/audio/ios/MediaSessionManagerIOS.mm:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
* platform/graphics/mac/GraphicsContext3DMac.mm:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
* platform/ios/PlatformScreenIOS.mm:
* platform/mac/PlatformScreenMac.mm:
* platform/mac/WidgetMac.mm:
* platform/mediastream/MediaStreamTrackPrivate.cpp:
* platform/mediastream/mac/AVCaptureDeviceManager.mm:
* platform/mediastream/mac/AVMediaCaptureSource.mm:
* rendering/RenderGrid.cpp:
* workers/SharedWorkerGlobalScope.cpp:
* workers/WorkerGlobalScope.cpp:
* workers/WorkerMessagingProxy.cpp:
Removed notImplemented from list of includes.

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

6 years ago[GTK] Unreviewed GTK gardening
commit-queue@webkit.org [Tue, 6 May 2014 18:30:07 +0000 (18:30 +0000)]
[GTK] Unreviewed GTK gardening

Rebaseline affected tests by the modifications done to
inline SVG sizing behavior introduced on r168350.

Patch by Lorenzo Tilve <ltilve@igalia.com> on 2014-05-06

* platform/gtk/svg/custom/bug45331-expected.txt:
* platform/gtk/svg/custom/external-paintserver-reference-expected.txt:
* platform/gtk/svg/custom/junk-data-expected.txt:
* platform/gtk/svg/custom/linking-base-external-reference-expected.txt:
* platform/gtk/svg/custom/missing-xlink-expected.txt:
* platform/gtk/svg/custom/path-bad-data-expected.txt:
* platform/gtk/svg/custom/use-font-face-crash-expected.txt:
* platform/gtk/svg/foreignObject/svg-document-in-html-document-expected.txt:
* platform/gtk/svg/hixie/error/012-expected.txt:
* platform/gtk/svg/in-html/circle-expected.txt:
* platform/gtk/svg/transforms/animated-path-inside-transformed-html-expected.txt:
* platform/gtk/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt:
* platform/gtk/svg/wicd/rightsizing-grid-expected.txt:
* platform/gtk/svg/wicd/test-rightsizing-b-expected.txt:
* platform/gtk/svg/zoom/page/zoom-foreignObject-expected.txt:
* platform/gtk/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.txt:
* platform/gtk/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.txt:
* platform/gtk/svg/zoom/page/zoom-svg-through-object-with-override-size-expected.txt:
* platform/gtk/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
* platform/gtk/svg/zoom/text/zoom-foreignObject-expected.txt:

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

6 years agoPut WebKitPluginHost.app in WebKitLegacy.framework
andersca@apple.com [Tue, 6 May 2014 18:16:40 +0000 (18:16 +0000)]
Put WebKitPluginHost.app in WebKitLegacy.framework
https://bugs.webkit.org/show_bug.cgi?id=132592
<rdar://problem/15920046>

Reviewed by Dan Bernstein.

Source/WebKit:
* WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:
* Plugins/Hosted/NetscapePluginHostManager.mm:
(WebKit::NetscapePluginHostManager::spawnPluginHost):

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

6 years agoRemoved unnecessary notImplemented.h includes.
commit-queue@webkit.org [Tue, 6 May 2014 18:04:53 +0000 (18:04 +0000)]
Removed unnecessary notImplemented.h includes.
https://bugs.webkit.org/show_bug.cgi?id=132587

Patch by Alex Christensen <achristensen@webkit.org> on 2014-05-06
Reviewed by Anders Carlsson.

Source/WebCore:
* Modules/webdatabase/Database.cpp:
* accessibility/AccessibilityObject.cpp:
* bindings/js/Dictionary.h:
* bindings/js/SerializedScriptValue.cpp:
* html/HTMLMediaSession.cpp:
* html/ImageDocument.cpp:
* html/parser/HTMLFormattingElementList.cpp:
* loader/appcache/ApplicationCacheStorage.cpp:
* page/mac/EventHandlerMac.mm:
* platform/NotImplemented.cpp:
* platform/audio/ios/MediaSessionManagerIOS.mm:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
* platform/graphics/mac/GraphicsContext3DMac.mm:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
* platform/ios/PlatformScreenIOS.mm:
* platform/mac/PlatformScreenMac.mm:
* platform/mac/WidgetMac.mm:
* platform/mediastream/MediaStreamTrackPrivate.cpp:
* platform/mediastream/mac/AVCaptureDeviceManager.mm:
* platform/mediastream/mac/AVMediaCaptureSource.mm:
* rendering/RenderGrid.cpp:
* workers/SharedWorkerGlobalScope.cpp:
* workers/WorkerGlobalScope.cpp:
* workers/WorkerMessagingProxy.cpp:
Removed notImplemented from list of includes.

Source/WebKit2:
* UIProcess/ios/WKContentViewInteraction.mm:
* UIProcess/mac/WebContextMenuProxyMac.mm:
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
* WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
Removed notImplemented from list of includes.

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

6 years agoUnreviewed build fix after http://trac.webkit.org/changeset/168364
enrica@apple.com [Tue, 6 May 2014 17:58:13 +0000 (17:58 +0000)]
Unreviewed build fix after trac.webkit.org/changeset/168364

* rendering/RenderLineBreak.cpp:

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

6 years ago[HTML] Default argument to HTMLTableSectionElement.insertRow() should be -1
ch.dumez@samsung.com [Tue, 6 May 2014 17:54:40 +0000 (17:54 +0000)]
[HTML] Default argument to HTMLTableSectionElement.insertRow() should be -1
https://bugs.webkit.org/show_bug.cgi?id=132570

Reviewed by Darin Adler.

Source/WebCore:
HTMLTableSectionElement.insertRow()'s argument default value should be -1, not
0, as per the specification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tbody-element

The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
https://code.google.com/p/chromium/issues/detail?id=369803

Test: fast/dom/HTMLTableSectionElement/insertRow-default-argument.html

* html/HTMLTableSectionElement.h:
* html/HTMLTableSectionElement.idl:

LayoutTests:
Add layout test to test that the default argument to
HTMLTableSectionElement.insertRow() is -1.

* fast/dom/HTMLTableSectionElement/insertRow-default-argument-expected.txt: Added.
* fast/dom/HTMLTableSectionElement/insertRow-default-argument.html: Added.

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

6 years agoREGRESSION(r155957): Selection rects are incorrect when the selection contains BR...
enrica@apple.com [Tue, 6 May 2014 17:49:51 +0000 (17:49 +0000)]
REGRESSION(r155957): Selection rects are incorrect when the selection contains BR elements.
https://bugs.webkit.org/show_bug.cgi?id=132596
<rdar://problem/16692206>

Reviewed by Antti Koivisto.

This patch adds an implementation of collectSelectionRects to RenderLineBreak.
It uses the same logic used by RenderText to compute and annotate the returned rect
which is computed, like the caret rect, using information from the rootline box.

* rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionRects):
* rendering/RenderLineBreak.h:

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

6 years ago[CSS Regions] Optimize the number of regions invalidations
abucur@adobe.com [Tue, 6 May 2014 17:30:40 +0000 (17:30 +0000)]
[CSS Regions] Optimize the number of regions invalidations
https://bugs.webkit.org/show_bug.cgi?id=132611

Reviewed by David Hyatt.

Source/WebCore:
It is possible to invalidate the region chain of a flow thread
during the layout of the region when its height is not final.

This patch places the check after the height of the region
is determined, reducing the number of invalidations.

Tests: Less invalidations and repaints in the repaint tests for
the flow threads.

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::updateLogicalHeight):
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::layoutBlock):
(WebCore::RenderNamedFlowFragment::invalidateRegionIfNeeded):
* rendering/RenderNamedFlowFragment.h:

LayoutTests:
Because there are less region invalidations there are less repaints
of the flow threads.

* fast/regions/repaint/repaint-regions-overflow-expected.txt:

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

6 years ago[Extended Background] Respect repeat-x/repeat-y when creating margin tiles
weinig@apple.com [Tue, 6 May 2014 16:44:41 +0000 (16:44 +0000)]
[Extended Background] Respect repeat-x/repeat-y when creating margin tiles
https://bugs.webkit.org/show_bug.cgi?id=132534

Reviewed by Beth Dakin.

If the background image that is causing margin tiles only repeats in dimension only create
the tiles in that dimension.

* page/FrameView.cpp:
(WebCore::FrameView::updateExtendBackgroundIfNecessary):
(WebCore::FrameView::calculateExtendedBackgroundMode):
(WebCore::FrameView::updateTilesForExtendedBackgroundMode):
(WebCore::FrameView::setBackgroundExtendsBeyondPage): Deleted.
(WebCore::FrameView::needsExtendedBackgroundRectForPainting): Deleted.
(WebCore::FrameView::setHasExtendedBackgroundRectForPainting): Deleted.
* page/FrameView.h:
* page/Settings.cpp:
(WebCore::Settings::setBackgroundShouldExtendBeyondPage):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::hasHorizontalMargins):
(WebCore::TileController::hasVerticalMargins):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setTiledBackingHasMargins):
* rendering/RenderLayerBacking.h:

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

6 years agoTry to fix iOS build.
darin@apple.com [Tue, 6 May 2014 16:19:22 +0000 (16:19 +0000)]
Try to fix iOS build.

* DumpRenderTree/mac/TestRunnerMac.mm:
(-[APITestDelegateIPhone initWithTestRunner:utf8Data:baseURL:]):
Updated since I changed testRunner into a pointer instead of a reference.
Updated argument names to avoid conflict with field names.
(-[APITestDelegateIPhone run]): Ditto.
(-[APITestDelegateIPhone _cleanUp]): Ditto.

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

6 years agoAX: VoiceOver does not announce text changes for content editable regions in Safari
cfleizach@apple.com [Tue, 6 May 2014 16:17:19 +0000 (16:17 +0000)]
AX: VoiceOver does not announce text changes for content editable regions in Safari
https://bugs.webkit.org/show_bug.cgi?id=132577

Reviewed by Mario Sanchez Prada.

Source/WebCore:
When text or children are changed inside of a contenteditable region, we need to
convert those actions into AXValueChange notifications.

Test: accessibility/content-editable-set-inner-text-generates-axvalue-notification.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::childrenChanged):
(WebCore::AccessibilityNodeObject::hasContentEditableAttributeSet): Deleted.
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasContentEditableAttributeSet):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textChanged):

LayoutTests:
* accessibility/content-editable-set-inner-text-generates-axvalue-notification-expected.txt: Added.
* accessibility/content-editable-set-inner-text-generates-axvalue-notification.html: Added.

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

6 years ago[iOS] Fix two more AdoptCF I missed in my last patch.
darin@apple.com [Tue, 6 May 2014 14:14:49 +0000 (14:14 +0000)]
[iOS] Fix two more AdoptCF I missed in my last patch.

* WebView/WebHTMLView.mm:
(imageFromRect): Use adoptCF instead of AdoptCF.

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

6 years ago[SVG2] Share "on"- event attributes with HTMLElement
krit@webkit.org [Tue, 6 May 2014 14:04:13 +0000 (14:04 +0000)]
[SVG2] Share "on"- event attributes with HTMLElement
https://bugs.webkit.org/show_bug.cgi?id=132604

Reviewed by Mihnea Ovidenie.

Source/WebCore:
Share "on" event attribute parsing between SVGElement and HTMLElement.

Tests: fast/dom/script-tests/event-attribute-availability.js:

* html/HTMLElement.cpp:
(WebCore::HTMLElement::populateEventNameForAttributeLocalNameMap):
(WebCore::populateEventNameForAttributeLocalNameMap): Deleted.
* html/HTMLElement.h: Make populateEventNameForAttributeLocalNameMap
    public for use in SVGElement.
* svg/SVGElement.cpp: Use HTMLElement code to parse "on" event
    attributes.
(WebCore::SVGElement::parseAttribute):

LayoutTests:
Test that the "on" event attributes supported by HTMLElement are
supported by SVGElement as well.

* fast/dom/event-attribute-availability-expected.txt:
* fast/dom/script-tests/event-attribute-availability.js:

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

6 years agoUnreviewed, rolling out r168304.
commit-queue@webkit.org [Tue, 6 May 2014 13:34:58 +0000 (13:34 +0000)]
Unreviewed, rolling out r168304.
https://bugs.webkit.org/show_bug.cgi?id=132607

Broke the build (Requested by KaL on #webkit).

Reverted changeset:

"[GTK][CMake] Unable to do make install"
https://bugs.webkit.org/show_bug.cgi?id=130188
http://trac.webkit.org/changeset/168304

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

6 years ago[CSS Blending] Rename all the tests css3/compositing to css3/blending
commit-queue@webkit.org [Tue, 6 May 2014 13:17:26 +0000 (13:17 +0000)]
[CSS Blending] Rename all the tests css3/compositing to css3/blending
https://bugs.webkit.org/show_bug.cgi?id=132606

Patch by Ion Rosca <rosca@adobe.com> on 2014-05-06
Reviewed by Andrei Bucur.

* css3/blending: Renamed from LayoutTests/css3/compositing.

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

6 years agoWeb Inspector: [CSS Regions] Add the regionOversetChange event to the iOS 7.0 WebInsp...
stavila@adobe.com [Tue, 6 May 2014 12:37:52 +0000 (12:37 +0000)]
Web Inspector: [CSS Regions] Add the regionOversetChange event to the iOS 7.0 WebInspector UI
https://bugs.webkit.org/show_bug.cgi?id=132566

Reviewed by Antti Koivisto.

The regionOversetChange event was missing from the iOS7 WebInspector.

* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-7.0.json:

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

6 years ago[CSS Blending] Rename layout tests css3/compositing to css3/blending
commit-queue@webkit.org [Tue, 6 May 2014 12:16:58 +0000 (12:16 +0000)]
[CSS Blending] Rename layout tests css3/compositing to css3/blending
https://bugs.webkit.org/show_bug.cgi?id=132578

Patch by Ion Rosca <rosca@adobe.com> on 2014-05-06
Reviewed by Andrei Bucur.

* css3/blending: Renamed from css3/compositing.
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/ios-sim/css3/blending: Renamed from platform/ios-sim/css3/compositing
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:
* platform/mac/css3/blending: Renamed from platform/mac/css3/compositing.
* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:

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

6 years agoThere is no HW_AVAILCPU on FreeBSD, NetBSD, and OpenBSD
berto@igalia.com [Tue, 6 May 2014 10:58:05 +0000 (10:58 +0000)]
There is no HW_AVAILCPU on FreeBSD, NetBSD, and OpenBSD
https://bugs.webkit.org/show_bug.cgi?id=132542

Reviewed by Michael Saboff.

Use sysconf() to get the number of processor cores.

* wtf/NumberOfCores.cpp:
(WTF::numberOfProcessorCores):

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

6 years agoShare mac/editing/spelling/delete-into-misspelled-word.html with other platforms
g.czajkowski@samsung.com [Tue, 6 May 2014 06:54:23 +0000 (06:54 +0000)]
Share mac/editing/spelling/delete-into-misspelled-word.html with other platforms
https://bugs.webkit.org/show_bug.cgi?id=132561

Reviewed by Darin Adler.

This test does not use Mac specific features and
can be run by other platforms as well.

Due to bug 125689, this test starts using asynchronous spellchecking.

* editing/spelling/delete-into-misspelled-word-expected.txt:
Renamed from LayoutTests/platform/mac/editing/spelling/delete-into-misspelled-word-expected.txt
* editing/spelling/delete-into-misspelled-word.html:
Renamed from LayoutTests/platform/mac/editing/spelling/delete-into-misspelled-word.html

* platform/gtk/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/win/TestExpectations:
Mark delete-into-misspelled-word.html as failing since those
platforms didn't turn on asynchronous spellchecking.

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

6 years ago[Soup] Use std::unique_ptr<char[]> for the read buffer in SocketStreamHandle
zandobersek@gmail.com [Tue, 6 May 2014 06:19:50 +0000 (06:19 +0000)]
[Soup] Use std::unique_ptr<char[]> for the read buffer in SocketStreamHandle
https://bugs.webkit.org/show_bug.cgi?id=132559

Reviewed by Carlos Garcia Campos.

Manage the read buffer array through a std::unique_ptr<char[]> object.
This avoids handling with the raw pointer and also ensures that the memory
allocated with the new[] operator is deleted with the delete[] operator,
a problem exposed by the AddressSanitizer in WebSocket tests.

* platform/network/soup/SocketStreamHandle.h:
* platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::connected):
(WebCore::SocketStreamHandle::readBytes):
(WebCore::SocketStreamHandle::platformClose):

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

6 years agoAdapt inline SVG sizing behavior to Firefox and Blink
krit@webkit.org [Tue, 6 May 2014 06:06:28 +0000 (06:06 +0000)]
Adapt inline SVG sizing behavior to Firefox and Blink
https://bugs.webkit.org/show_bug.cgi?id=132569

Reviewed by Dean Jackson.

Source/WebCore:
This patch is ported from Blink CR 308992. Thanks to David Vest for helping
with back porting his Blink patch. From the commit message:

"The basis of this change is to map explicit width and height
attributes to CSS properties, essentially promoting them to
presentation attributes. Note that implicit "100%" width and height
are not mapped.

This enables us to remove the concept of "percentage intrinsic size"
and rely on normal CSS rules to resolve percentage values.

The change has been approved by the SVG WG and the spec is being
updated. Minutes here:

http://www.w3.org/2014/04/07-svg-minutes.html#item03"

The new model was indeed approved by the SVG WG and is basically following
the CSS 2.1 model for replaced elements.

With this patch WebKit, Firefox and Blink have the same behavior for inline SVG.
This is the first successful approach to unify the sizing behavior of SVG
across UAs.

Tests: svg/as-object/sizing/svg-in-object-placeholder-height-auto.html
       svg/as-object/sizing/svg-in-object-placeholder-height-fixed.html
       svg/as-object/sizing/svg-in-object-placeholder-height-percentage.html
       svg/in-html/sizing/svg-inline.html

* css/svg.css: Root SVG elements still need to be sized with height: 100% and
    width: 100%. This is necessary since width and height are presentation
    attributes now.
(svg:root):
* rendering/RenderBox.h:
(WebCore::RenderBox::computeIntrinsicRatioInformation): Remove all special
    behavior for intrinsic and percentage based sizes in SVG. This simplifies and
    unifies the code a lot. Most of the logic that is used is in RenderBox and
    RenderReplaced now. RenderSVGRoot was cleaned up a lot and is much lighter.
    And so it SVGSVGElement.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
(WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::computeIntrinsicRatioInformation):
* rendering/RenderImage.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
(WebCore::RenderReplaced::computeIntrinsicRatioInformation):
(WebCore::RenderReplaced::computeReplacedLogicalWidth):
(WebCore::RenderReplaced::computeReplacedLogicalHeight):
(WebCore::RenderReplaced::computePreferredLogicalWidths):
* rendering/RenderReplaced.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
(WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
(WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
(WebCore::RenderSVGRoot::hasRelativeDimensions):
(WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth): Deleted.
(WebCore::RenderSVGRoot::hasRelativeLogicalHeight): Deleted.
* rendering/svg/RenderSVGRoot.h:
* svg/SVGElement.h:
(WebCore::SVGElement::invalidateSVGPresentationAttributeStyle):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::isPresentationAttribute):
(WebCore::SVGSVGElement::collectStyleForPresentationAttribute):
(WebCore::SVGSVGElement::svgAttributeChanged):
(WebCore::SVGSVGElement::currentViewportSize):
(WebCore::SVGSVGElement::hasIntrinsicWidth):
(WebCore::SVGSVGElement::hasIntrinsicHeight):
(WebCore::SVGSVGElement::intrinsicWidth):
(WebCore::SVGSVGElement::intrinsicHeight):
(WebCore::SVGSVGElement::widthAttributeEstablishesViewport): Deleted.
(WebCore::SVGSVGElement::heightAttributeEstablishesViewport): Deleted.
* svg/SVGSVGElement.h:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::containerSize):
* xml/XMLErrors.cpp: If an error occurs in a stand alone SVG file, we create
    an XHTML document with the error message and append the SVG file.
    This SVG file now follows the CSS sizing behavior as inline SVG.
    Therefore, we need to set width and height to 100% explicitly.
(WebCore::XMLErrors::insertErrorMessageBlock):

LayoutTests:
The new sizing behavior for inline SVG causes different DRT outputs for about 40 test cases.
This is expected but for most tests an improvement since the SVGs fit into the documents
and scrollbars disappear or the general size gets smaller.
Some tests needed to be updated. The size was either not set at all or not properly.

svg-in-object.js and svg-inline.js contain dozens of new tests to check the correct sizing
behavior.

The tests were written by David Vest from Opera as part of CR 308992.

Many of the -expected updates are caused by SVG size changes in turn
affecting where line breaks are inserted.

* TestExpectations:
* accessibility/svg-image-expected.txt:
* css3/flexbox/flexitem.html:
* fast/css/infinite-floating-value-expected.txt:
* fast/css/remove-fixed-resizer-crash-expected.txt:
* fast/css3-text/css3-word-spacing-percentage/word-spacing-crash-expected.txt:
* fast/repaint/moving-shadow-on-container.html:
* fast/repaint/moving-shadow-on-path.html:
* fast/repaint/svg-layout-root-style-attr-update.html:
* fast/shapes/shape-outside-floats/shape-outside-relative-size-svg-expected.html:
* fast/shapes/shape-outside-floats/shape-outside-relative-size-svg.html:
* http/tests/xmlviewer/dumpAsText/svg-expected.txt:
* platform/mac/svg/batik/filters/feTile-expected.txt:
* platform/mac/svg/batik/masking/maskRegions-expected.txt:
* platform/mac/svg/batik/paints/patternRegions-positioned-objects-expected.txt:
* platform/mac/svg/batik/text/longTextOnPath-expected.txt:
* platform/mac/svg/batik/text/textDecoration-expected.txt:
* platform/mac/svg/batik/text/textEffect-expected.txt:
* platform/mac/svg/batik/text/textLength-expected.txt:
* platform/mac/svg/batik/text/textOnPath-expected.txt:
* platform/mac/svg/batik/text/textPosition-expected.txt:
* platform/mac/svg/batik/text/verticalText-expected.txt:
* platform/mac/svg/batik/text/verticalTextOnPath-expected.txt:
* platform/mac/svg/custom/bug45331-expected.txt:
* platform/mac/svg/custom/junk-data-expected.txt:
* platform/mac/svg/custom/missing-xlink-expected.txt:
* platform/mac/svg/custom/object-sizing-height-50p-on-target-svg-absolute-expected.png: Removed.
* platform/mac/svg/custom/object-sizing-height-50p-on-target-svg-expected.png: Removed.
* platform/mac/svg/custom/object-sizing-width-50p-height-50p-on-target-svg-absolute-expected.png: Removed.
* platform/mac/svg/custom/object-sizing-width-50p-height-50p-on-target-svg-expected.png: Removed.
* platform/mac/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute-expected.png: Removed.
* platform/mac/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute-expected.txt: Removed.
* platform/mac/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-expected.png: Removed.
* platform/mac/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-expected.txt: Removed.
* platform/mac/svg/custom/object-sizing-width-50p-on-target-svg-absolute-expected.png: Removed.
* platform/mac/svg/custom/object-sizing-width-50p-on-target-svg-expected.png: Removed.
* platform/mac/svg/custom/object-sizing-width-75p-height-50p-on-target-svg-absolute-expected.png: Removed.
* platform/mac/svg/custom/object-sizing-width-75p-height-50p-on-target-svg-expected.png: Removed.
* platform/mac/svg/custom/object-sizing-width-75p-height-50p-on-target-svg-expected.txt: Removed.
* platform/mac/svg/custom/path-bad-data-expected.txt:
* platform/mac/svg/custom/svg-fonts-in-html-expected.txt:
* platform/mac/svg/custom/use-font-face-crash-expected.txt:
* platform/mac/svg/foreignObject/svg-document-in-html-document-expected.txt:
* platform/mac/svg/hixie/error/012-expected.txt:
* platform/mac/svg/hixie/intrinsic/001-expected.png: Removed.
* platform/mac/svg/hixie/intrinsic/001-expected.txt: Removed.
* platform/mac/svg/hixie/intrinsic/002-expected.png: Removed.
* platform/mac/svg/hixie/intrinsic/002-expected.txt: Removed.
* platform/mac/svg/in-html/circle-expected.txt:
* platform/mac/svg/text/non-bmp-positioning-lists-expected.txt:
* platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.txt:
* platform/mac/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt:
* platform/mac/svg/wicd/rightsizing-grid-expected.txt:
* platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
* platform/mac/svg/zoom/page/zoom-background-image-tiled-expected.txt:
* platform/mac/svg/zoom/page/zoom-background-images-expected.txt:
* platform/mac/svg/zoom/page/zoom-foreignObject-expected.txt:
* platform/mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
* platform/mac/svg/zoom/page/zoom-svg-as-relative-image-expected.txt:
* platform/mac/svg/zoom/page/zoom-svg-float-border-padding-expected.txt:
* platform/mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.txt:
* platform/mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.txt:
* platform/mac/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt:
* platform/mac/svg/zoom/page/zoom-svg-through-object-with-override-size-expected.txt:
* platform/mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
* platform/mac/svg/zoom/page/zoom-zoom-coords-expected.txt:
* platform/mac/svg/zoom/text/zoom-foreignObject-expected.txt:
* svg/animations/animate-css-xml-attributeType-expected.txt:
* svg/as-image/image-respects-deviceScaleFactor.html:
* svg/as-image/image-respects-pageScaleFactor.html:
* svg/as-image/svg-as-image-with-relative-size-expected.html:
* svg/as-image/svg-as-relative-image.html:
* svg/as-object/sizing/svg-in-object-placeholder-height-auto-expected.txt: Added.
* svg/as-object/sizing/svg-in-object-placeholder-height-auto.html: Added.
* svg/as-object/sizing/svg-in-object-placeholder-height-fixed-expected.txt: Added.
* svg/as-object/sizing/svg-in-object-placeholder-height-fixed.html: Added.
* svg/as-object/sizing/svg-in-object-placeholder-height-percentage-expected.txt: Added.
* svg/as-object/sizing/svg-in-object-placeholder-height-percentage.html: Added.
* svg/as-object/sizing/svg-in-object.js: Added.
(.):
(.addAttr):
(.generateSVGURI):
(buildDemo):
(.doCombinationTestRecursive):
(doCombinationTest):
(debugHint):
(.debugHint):
(testSVGInObjectWithPlaceholderHeightAttr.):
(testSVGInObjectWithPlaceholderHeightAttr):
* svg/css/composite-shadow-example.html:
* svg/css/composite-shadow-with-opacity.html:
* svg/css/max-width-2.html:
* svg/css/stars-with-shadow.html:
* svg/custom/absolute-sized-content-with-resources.xhtml:
* svg/custom/altglyph.svg:
* svg/custom/document-all-includes-svg-expected.txt:
* svg/custom/external-paintserver-reference-expected.txt:
* svg/custom/external-paintserver-reference.svg:
* svg/custom/get-text-element-transform-crash-expected.txt:
* svg/custom/linking-base-external-reference-expected.txt:
* svg/custom/linking-base-external-reference.xhtml:
* svg/custom/object-sizing-height-50p-on-target-svg-absolute-expected.txt: Removed.
* svg/custom/object-sizing-height-50p-on-target-svg-absolute.xhtml: Removed.
* svg/custom/object-sizing-height-50p-on-target-svg-expected.txt: Removed.
* svg/custom/object-sizing-height-50p-on-target-svg.xhtml: Removed.
* svg/custom/object-sizing-width-50p-height-50p-on-target-svg-absolute-expected.txt: Removed.
* svg/custom/object-sizing-width-50p-height-50p-on-target-svg-absolute.xhtml: Removed.
* svg/custom/object-sizing-width-50p-height-50p-on-target-svg-expected.txt: Removed.
* svg/custom/object-sizing-width-50p-height-50p-on-target-svg.xhtml: Removed.
* svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute-expected.txt: Removed.
* svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute.xhtml: Removed.
* svg/custom/object-sizing-width-50p-height-75p-on-target-svg-expected.txt: Removed.
* svg/custom/object-sizing-width-50p-height-75p-on-target-svg.xhtml: Removed.
* svg/custom/object-sizing-width-50p-on-target-svg-absolute-expected.txt: Removed.
* svg/custom/object-sizing-width-50p-on-target-svg-absolute.xhtml: Removed.
* svg/custom/object-sizing-width-50p-on-target-svg-expected.txt: Removed.
* svg/custom/object-sizing-width-50p-on-target-svg.xhtml: Removed.
* svg/custom/object-sizing-width-75p-height-50p-on-target-svg-absolute-expected.txt: Removed.
* svg/custom/object-sizing-width-75p-height-50p-on-target-svg-absolute.xhtml: Removed.
* svg/custom/object-sizing-width-75p-height-50p-on-target-svg-expected.txt: Removed.
* svg/custom/object-sizing-width-75p-height-50p-on-target-svg.xhtml: Removed.
* svg/custom/pending-resource-after-removal.xhtml:
* svg/custom/percentage-of-html-parent.xhtml:
* svg/custom/relative-sized-content-with-resources.xhtml:
* svg/custom/relative-sized-content.xhtml:
* svg/custom/relative-sized-deep-shadow-tree-content.xhtml:
* svg/custom/relative-sized-image.xhtml:
* svg/custom/relative-sized-inner-svg.xhtml:
* svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml:
* svg/custom/relative-sized-shadow-tree-content.xhtml:
* svg/custom/relative-sized-use-on-symbol.xhtml:
* svg/custom/relative-sized-use-without-attributes-on-symbol.xhtml:
* svg/custom/tref-with-progress-tag-setpseudo-assert-expected.txt:
* svg/custom/unicode-in-tspan-multi-svg-crash-expected.txt:
* svg/custom/use-invalid-html-expected.txt:
* svg/custom/window-named-item-lookup-expected.txt:
* svg/dom/SVGViewSpec-invalid-ref-crash-expected.txt:
* svg/dom/parent-view-layout-crash-expected.txt:
* svg/dom/stylesheet-candidate-node-crash-main-expected.txt:
* svg/dom/svg-root-lengths.html:
* svg/foreignObject/absolute-position-foreign-object-child-crash-expected.txt:
* svg/hixie/intrinsic/001-expected.png: Removed.
* svg/hixie/intrinsic/001-expected.txt: Removed.
* svg/hixie/intrinsic/001.html: Removed.
* svg/hixie/intrinsic/002-expected.png: Removed.
* svg/hixie/intrinsic/002-expected.txt: Removed.
* svg/hixie/intrinsic/002.html: Removed.
* svg/hixie/intrinsic/resources/001.svg: Removed.
* svg/hixie/intrinsic/resources/002.svg: Removed.
* svg/in-html/sizing/svg-inline-expected.txt: Added.
* svg/in-html/sizing/svg-inline.html: Added.
* svg/in-html/sizing/svg-inline.js: Added.
(.):
(setupSVGElement):
(buildDemo):
(.doCombinationTestRecursive):
(doCombinationTest):
(debugHint):
(.debugHint):
* svg/path-arc-invalid-expected.txt:
* svg/repaint/repaint-webkit-svg-shadow-container-expected.txt:
* svg/text/append-text-node-to-tspan.html:
* svg/text/kerning.svg:
* svg/text/modify-text-node-in-tspan.html:
* svg/text/multichar-glyph.svg:
* svg/text/remove-text-node-from-tspan.html:
* svg/text/remove-tspan-from-text.html:
* svg/text/svg-rtl-text-crash-expected.txt:
* svg/text/text-block-child-crash-expected.txt:
* svg/transforms/animated-path-inside-transformed-html.xhtml:
* svg/transforms/svg-css-transforms-clip-path.xhtml:
* svg/transforms/transform-origin-css-property.xhtml:
* svg/zoom/page/zoom-foreignObject.svg:
* svg/zoom/page/zoom-svg-as-relative-image.html:
* svg/zoom/text/zoom-foreignObject.svg:

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

6 years ago[CSS Blending] Add tests using blending and isolation for body and html elements.
commit-queue@webkit.org [Tue, 6 May 2014 06:04:28 +0000 (06:04 +0000)]
[CSS Blending] Add tests using blending and isolation for body and html elements.
https://bugs.webkit.org/show_bug.cgi?id=132325

Patch by Ion Rosca <rosca@adobe.com> on 2014-05-05
Reviewed by Dirk Schulze.

* css3/compositing/blend-mode-body-child-background-color-expected.html: Added.
* css3/compositing/blend-mode-body-child-background-color.html: Added.
* css3/compositing/blend-mode-body-child-expected.html: Added.
* css3/compositing/blend-mode-body-child-isolate-background-color-expected.html: Added.
* css3/compositing/blend-mode-body-child-isolate-background-color.html: Added.
* css3/compositing/blend-mode-body-child-isolate-html-background-color-expected.html: Added.
* css3/compositing/blend-mode-body-child-isolate-html-background-color.html: Added.
* css3/compositing/blend-mode-body-child.html: Added.
* css3/compositing/blend-mode-body-element-expected.html: Added.
* css3/compositing/blend-mode-body-element.html: Added.
* css3/compositing/blend-mode-html-element-screen-expected.html: Added.
* css3/compositing/blend-mode-html-element-screen.html: Added.

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

6 years agoRetainPtr: Use adoptCF function instead of AdoptCF constructor argument
darin@apple.com [Tue, 6 May 2014 03:12:54 +0000 (03:12 +0000)]
RetainPtr: Use adoptCF function instead of AdoptCF constructor argument
https://bugs.webkit.org/show_bug.cgi?id=80222

Reviewed by Alexey Proskuryakov.

Source/WTF:
All the clients are gone, so we can now remove AdoptCF and AdoptNS.

* wtf/RetainPtr.h: Removed the public constructors that let you specify AdoptCF
and AdoptNS. Instead, made the adoptCF and adoptNS functions be friends and use
a private constructor that takes an Adopt argument.
(WTF::adoptCF): Moved the Objective-C class check in here.
(WTF::adoptNS): Moved the code to deal with the CFRetain for garbage collection
in here; it used to be spread across the constructor and adoptNSReference.

Tools:
* DumpRenderTree/mac/TestRunnerMac.mm:
(-[APITestDelegateIPhone initWithTestRunner:utf8Data:baseURL:]): Updated to
do more work here so we don't use RetainPtr local variables.
(-[APITestDelegateIPhone dealloc]): Added.
(-[APITestDelegateIPhone run]): Added an early exit if the web view is already
created. Updated for changes to member names and types.
(-[APITestDelegateIPhone _cleanUp]): Added code to set webView to nil and
updated for changes to member names and types. Changed to two word spelling.
(-[APITestDelegateIPhone webView:didFailLoadWithError:forFrame:]): Updated
name of _cleanUp method.
(-[APITestDelegateIPhone webView:didFailProvisionalLoadWithError:forFrame:]):
Ditto.
(-[APITestDelegateIPhone webView:didFinishLoadForFrame:]): Ditto.

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

6 years agoUnreviewed, rolling out r168334.
akling@apple.com [Tue, 6 May 2014 02:54:26 +0000 (02:54 +0000)]
Unreviewed, rolling out r168334.

Broke builds.

Reverted changeset:

"Put WebKitPluginHost.app in WebKitLegacy.framework"
https://bugs.webkit.org/show_bug.cgi?id=132592
http://trac.webkit.org/changeset/168334

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

6 years agohttps://bugs.webkit.org/show_bug.cgi?id=132593
dino@apple.com [Tue, 6 May 2014 02:49:41 +0000 (02:49 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=132593

Update WebKitSystemInterface to allow animated focus rings.

* WebKitSystemInterface.h:
* libWebKitSystemInterfaceMavericks.a:
* libWebKitSystemInterfaceMountainLion.a:

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

6 years ago[EFL] REGRESSION(167145): JavaScript media controls are broken
ryuan.choi@samsung.com [Tue, 6 May 2014 02:08:38 +0000 (02:08 +0000)]
[EFL] REGRESSION(167145): JavaScript media controls are broken
https://bugs.webkit.org/show_bug.cgi?id=131573

Reviewed by Brent Fulgham.

* PlatformEfl.cmake: Add the localized strings file to the list of user agent scripts.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::mediaControlsScript): Include the localized strings file in the script body.

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

6 years agoImplement scan backward and forward in video fullscreen.
commit-queue@webkit.org [Tue, 6 May 2014 01:49:29 +0000 (01:49 +0000)]
Implement scan backward and forward in video fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=132517

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-05-05
Reviewed by Simon Fraser.

Source/WebCore:
Implement scanning forward and backward. This implements methods in
WebAVPlayerController and forwards them through WebVideoFullscreenModelMediaElement
and on to HTMLMediaElement.

* WebCore.exp.in: necessary exports.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerController seekToTime:]):
Use fastSeek in this case.
(-[WebAVPlayerController canScanForward]): If you can play, you can scan.
(+[WebAVPlayerController keyPathsForValuesAffectingCanScanForward]): ditto
(-[WebAVPlayerController beginScanningForward:]): ditto
(-[WebAVPlayerController endScanningForward:]): ditto
(-[WebAVPlayerController canScanBackward]): If you can play, you can scan.
(+[WebAVPlayerController keyPathsForValuesAffectingCanScanBackward]): ditto
(-[WebAVPlayerController beginScanningBackward:]): ditto
(-[WebAVPlayerController endScanningBackward:]): ditto
(-[WebAVPlayerController canSeekToBeginning]):
This looks at seekableRanges to determine if any seeking is possible.
(+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToBeginning]):
depends on seekableRanges.
(-[WebAVPlayerController seekToBeginning:]): seek to -ininity
(-[WebAVPlayerController canSeekToEnd]):
This looks at seekableRanges to determine if any seeking is possible.
(+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToEnd]):
depends on seekableRanges.
(-[WebAVPlayerController seekToEnd:]): seek to INFINITY.
* platform/ios/WebVideoFullscreenModel.h:
Add 4 new functions.
* platform/ios/WebVideoFullscreenModelMediaElement.h:
ditto
* platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::fastSeek): forwards to HTMLMediaEelement
(WebVideoFullscreenModelMediaElement::beginScanningForward): forwards to HTMLMediaEelement
(WebVideoFullscreenModelMediaElement::beginScanningBackward): forwards to HTMLMediaEelement
(WebVideoFullscreenModelMediaElement::endScanning): forwards to HTMLMediaEelement

Source/WebKit2:
Plumb through scanning/seeking functions.

* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::fastSeek):
(WebKit::WebVideoFullscreenManagerProxy::beginScanningForward):
(WebKit::WebVideoFullscreenManagerProxy::beginScanningBackward):
(WebKit::WebVideoFullscreenManagerProxy::endScanning):
* WebProcess/ios/WebVideoFullscreenManager.messages.in:

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

6 years agoFix debug build.
akling@apple.com [Tue, 6 May 2014 01:22:02 +0000 (01:22 +0000)]
Fix debug build.

* runtime/JSCellInlines.h:
(JSC::JSCell::fastGetOwnProperty):

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

6 years ago[iOS][WK2] Prefetch DNS hostnames on tap highlight
benjamin@webkit.org [Tue, 6 May 2014 01:14:02 +0000 (01:14 +0000)]
[iOS][WK2] Prefetch DNS hostnames on tap highlight
https://bugs.webkit.org/show_bug.cgi?id=132509

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-05
Reviewed by Alexey Proskuryakov.

Source/WebCore:
* WebCore.exp.in:
* dom/Element.cpp:
* dom/Element.h:
(WebCore::Element::absoluteLinkURL()):

Source/WebKit2:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::tapHighlightAtPosition):

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

6 years ago[iOS WK2] Flickery scrolling inside overflow-scrolling: touch
simon.fraser@apple.com [Tue, 6 May 2014 01:10:30 +0000 (01:10 +0000)]
[iOS WK2] Flickery scrolling inside overflow-scrolling: touch
https://bugs.webkit.org/show_bug.cgi?id=132591
<rdar://problem/16760466>

Reviewed by Tim Horton.

Source/WebCore:

Avoid triggering layer tree commits that touch the layer's boundsOrigin
while the user is scrolling in the UI process.

Fix the WKOverflowScrollViewDelegate to pass along an "inUserInteration"
flag to the ScrollingTree to say that we're in the middle of a user interaction
(and also to send a final non-interactive update). That gets passed along
to the web process, and turned into "SyncScrollingLayerPosition" update.
AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll() consults
this, and uses it to set a flag on the ScrollableArea to say that the scroll
is a user scroll.

RenderLayerBacking then makes use of this (in existing code, shared with WK1)
to avoid triggering layer bounds setting. Instead, it now just calls syncBoundsOrigin(),
which updates the GraphicsLayer without touching platform layers. This is necessary
so that GraphicsLayer geometry is up-to-date (used for tiled layer visibility
computations).

Finally, a hack in GraphicsLayerCA::computeVisibleRect() is conditionalized
for WebKit1 by checking the type of platform layer.

* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
* page/scrolling/ScrollingTree.h:
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::syncBoundsOrigin):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::computeVisibleRect):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

Source/WebKit2:

Avoid triggering layer tree commits that touch the layer's boundsOrigin
while the user is scrolling in the UI process.

Fix the WKOverflowScrollViewDelegate to pass along an "inUserInteration"
flag to the ScrollingTree to say that we're in the middle of a user interaction
(and also to send a final non-interactive update). That gets passed along
to the web process, and turned into "SyncScrollingLayerPosition" update.
AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll() consults
this, and uses it to set a flag on the ScrollableArea to say that the scroll
is a user scroll.

RenderLayerBacking then makes use of this (in existing code, shared with WK1)
to avoid triggering layer bounds setting. Instead, it now just calls syncBoundsOrigin(),
which updates the GraphicsLayer without touching platform layers. This is necessary
so that GraphicsLayer geometry is up-to-date (used for tiled layer visibility
computations).

Finally, a hack in GraphicsLayerCA::computeVisibleRect() is conditionalized
for WebKit1 by checking the type of platform layer.

* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::rootScrollingNodeID):
(WebKit::RemoteScrollingCoordinatorProxy::isPointInNonFastScrollableRegion):
(WebKit::RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
* UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(-[WKOverflowScrollViewDelegate scrollViewDidScroll:]):
(-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
(-[WKOverflowScrollViewDelegate scrollViewDidEndDecelerating:]):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollViewDidScroll):
* WebProcess/Scrolling/RemoteScrollingCoordinator.h:
* WebProcess/Scrolling/RemoteScrollingCoordinator.messages.in:
* WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode):

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

6 years agoMark http/tests/media/hls/video-controls-live-stream.html as WontFix on Mountain...
akling@apple.com [Tue, 6 May 2014 01:03:26 +0000 (01:03 +0000)]
Mark http/tests/media/hls/video-controls-live-stream.html as WontFix on Mountain Lion.
<https://webkit.org/b/132491>

* platform/mac/TestExpectations:

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

6 years agoOptimize GetByVal when subscript is a rope string.
akling@apple.com [Tue, 6 May 2014 00:53:29 +0000 (00:53 +0000)]
Optimize GetByVal when subscript is a rope string.
<https://webkit.org/b/132590>

Use JSString::toIdentifier() in the various GetByVal implementations
to try and avoid allocating extra strings.

Added canUseFastGetOwnProperty() and wrap calls to fastGetOwnProperty()
in that, to avoid calling JSString::value() which always resolves ropes
into new strings and de-optimizes subsequent toIdentifier() calls.

My iMac says ~9% progression on Dromaeo/dom-attr.html

Reviewed by Phil Pizlo.

* dfg/DFGOperations.cpp:
* jit/JITOperations.cpp:
(JSC::getByVal):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::getByVal):
* runtime/JSCell.h:
* runtime/JSCellInlines.h:
(JSC::JSCell::fastGetOwnProperty):
(JSC::JSCell::canUseFastGetOwnProperty):

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

6 years agoPut WebKitPluginHost.app in WebKitLegacy.framework
andersca@apple.com [Tue, 6 May 2014 00:47:33 +0000 (00:47 +0000)]
Put WebKitPluginHost.app in WebKitLegacy.framework
https://bugs.webkit.org/show_bug.cgi?id=132592
<rdar://problem/15920046>

Reviewed by Dan Bernstein.

Source/WebKit:
* WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:
* Plugins/Hosted/NetscapePluginHostManager.mm:
(WebKit::NetscapePluginHostManager::spawnPluginHost):

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

6 years agoStop using BlobData on client side
ap@apple.com [Tue, 6 May 2014 00:42:52 +0000 (00:42 +0000)]
Stop using BlobData on client side
https://bugs.webkit.org/show_bug.cgi?id=132582

Reviewed by Sam Weinig.

Source/WebCore:
Blob registration now uses either a single file path, or a vector of much simpler
BlobPart objects, not an array with arbitrarily sliced blobs or files, which can't happen.

* Modules/websockets/WebSocket.cpp:(WebCore::WebSocket::didReceiveBinaryData):
Use a new simpler Blob constructor.

* WebCore.xcodeproj/project.pbxproj: Added BlobPart, removed BlobRegistrationData.

* bindings/js/JSBlobCustom.cpp: (WebCore::JSBlobConstructor::constructJSBlob):
Use Vector<BlobPart> instead of BlobData (1 line of code instead of 5).

* dom/DataTransfer.cpp: (WebCore::DataTransfer::hasFileOfType): Updated for
File::contentTypeFromFilePathOrName rename.

* fileapi/Blob.cpp: (WebCore::Blob::Blob):
* fileapi/Blob.h:
(WebCore::Blob::create):
(WebCore::Blob::deserialize):
* fileapi/File.cpp:
(WebCore::File::File):
(WebCore::File::contentTypeFromFilePathOrName):
(WebCore::createBlobDataForFileWithType): Deleted.
(WebCore::createBlobDataForFile): Deleted.
(WebCore::createBlobDataForFileWithName): Deleted.
(WebCore::File::contentTypeFromFilePath): Deleted.
* fileapi/File.h: (WebCore::File::deserialize): Deleted.
Added and updated constructors to not use BlobData. Changed special case constructors
to use name tags instead of non-enforced comments.

* fileapi/ThreadableBlobRegistry.h:
* fileapi/ThreadableBlobRegistry.cpp:
(WebCore::BlobRegistryContext::BlobRegistryContext): Updated with new data members
that were split out of BlobData.
(WebCore::ThreadableBlobRegistry::registerFileBlobURL): Added.
(WebCore::ThreadableBlobRegistry::registerBlobURL): Updated to pass Content-Type
explicitly, as it's no longer hidden in BlobData.

* fileapi/WebKitBlobBuilder.h:
* fileapi/WebKitBlobBuilder.cpp:
(WebCore::BlobBuilder::append):
(WebCore::BlobBuilder::finalize):
(WebCore::BlobBuilder::appendBytesData): Deleted.
Updated to use BlobPart. There is no longer any need to special case Files,
the registry takes care of that.

* platform/network/BlobData.h:
* platform/network/BlobData.cpp:
(WebCore::BlobDataItem::detachFromCurrentThread): Deleted.
(WebCore::BlobData::detachFromCurrentThread): Deleted.
BlobData will only be used on main thread by the registry.

* platform/network/BlobPart.h: Added. A new class to encapsulate a list of blobs
that are combined into a new blob, as exposed to JS via Blob constructor.

* platform/network/BlobRegistry.h:
* platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::registerFileBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURL):
* platform/network/BlobRegistryImpl.h:
Updated for the new registration methods. We no longer have arbitrary BlobDatas
coming in.

* platform/network/FormData.cpp: Don't include BlobData for now (but really,
BlobStorageData is the same thing, and they will be merged soon).
Unfortunately, FormData is used by both client and registry side, and there is
no clear delimitation at the time.

* xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob): Use the new simpler
way to create a Blob.

Source/WebKit2:
Update for WebCore changes.

* CMakeLists.txt:
* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::registerFileBlobURL):
(WebKit::NetworkBlobRegistry::registerBlobURL):
* NetworkProcess/FileAPI/NetworkBlobRegistry.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerFileBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURL):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Shared/FileAPI/BlobRegistrationData.cpp: Removed.
* Shared/FileAPI/BlobRegistrationData.h: Removed.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<BlobPart>::encode):
(IPC::ArgumentCoder<BlobPart>::decode):
* Shared/WebCoreArgumentCoders.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerFileBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURL):
* WebProcess/FileAPI/BlobRegistryProxy.h:

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

6 years agoREGRESSION (r168256): ASSERTION FAILED: (buffer + m_length) == position loading vanit...
akling@apple.com [Mon, 5 May 2014 23:39:04 +0000 (23:39 +0000)]
REGRESSION (r168256): ASSERTION FAILED: (buffer + m_length) == position loading vanityfair.com article.
<https://webkit.org/b/168256>
<rdar://problem/16816316>

Source/JavaScriptCore:
Make resolveRopeSlowCase8() behave like its 16-bit counterpart and not
clear the fibers. The caller takes care of this.

Test: fast/dom/getElementById-with-rope-string-arg.html

Reviewed by Geoffrey Garen.

* runtime/JSString.cpp:
(JSC::JSRopeString::resolveRopeSlowCase8):

LayoutTests:
Reviewed by Geoffrey Garen.

* fast/dom/getElementById-with-rope-string-arg-expected.txt: Added.
* fast/dom/getElementById-with-rope-string-arg.html: Added.

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

6 years agoClean up Image Document and tweak the layout and viewport
benjamin@webkit.org [Mon, 5 May 2014 23:35:38 +0000 (23:35 +0000)]
Clean up Image Document and tweak the layout and viewport
https://bugs.webkit.org/show_bug.cgi?id=132552

Source/WebCore:
Reviewed by Sam Weinig.

The #ifdef in every function was making quite a mess. A lot of that code does
not make sense on iOS.

This patch make a clean split between mouse related stuff and iOS.

Also:
-Change the viewport to be only width based, and avoid scaling in portrait.
-Center the image horizontally in the view.

* html/ImageDocument.cpp:
(WebCore::ImageDocument::ImageDocument):
(WebCore::ImageDocument::createDocumentStructure):
(WebCore::ImageDocument::imageUpdated):
(WebCore::ImageDocument::scale):
(WebCore::ImageDocument::resizeImageToFit):
(WebCore::ImageDocument::imageFitsInWindow):
(WebCore::ImageDocument::windowSizeChanged):
(WebCore::ImageDocument::imageClicked):
* html/ImageDocument.h:

Tools:
Reviewed by Anders Carlsson.

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
Update the default settings to have something consistent with WebKit2.

LayoutTests:
Reviewed by Anders Carlsson.

* svg/custom/anchor-on-use-expected.svg:

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

6 years agoNeed a delegate that informs the UI process when the page's pin state changes
bdakin@apple.com [Mon, 5 May 2014 23:14:43 +0000 (23:14 +0000)]
Need a delegate that informs the UI process when the page's pin state changes
https://bugs.webkit.org/show_bug.cgi?id=132583
-and corresponding-
<rdar://problem/16806231>

Reviewed by Anders Carlsson.

Source/WebCore:
We should default all of these pin-state value to true.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::ScrollingTree):

Source/WebKit2:
New UIClient function pinnedStateDidChange.

* UIProcess/API/APIUIClient.h:
(API::UIClient::pinnedStateDidChange):

Create WKPageUIClientV3 to add this function.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/C/WKPageUIClient.h:

Change default initialization to true instead of false, which makes more sense for
this API.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::didChangeScrollOffsetPinningForMainFrame):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):

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

6 years agoAdd SPI to provide the WebCrypto master key
andersca@apple.com [Mon, 5 May 2014 23:09:58 +0000 (23:09 +0000)]
Add SPI to provide the WebCrypto master key
https://bugs.webkit.org/show_bug.cgi?id=132586
<rdar://problem/16091460>

Reviewed by Dan Bernstein.

* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::webCryptoMasterKey):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::LoaderClient::webCryptoMasterKey):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::wrapCryptoKey):

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

6 years agohttps://bugs.webkit.org/show_bug.cgi?id=132522
barraclough@apple.com [Mon, 5 May 2014 23:06:52 +0000 (23:06 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=132522
Clean up ProcessThrottler

Unreviewed: bad build fix. Will work out what the right include is asap.

* UIProcess/ios/WebProcessProxyIOS.mm:

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

6 years agoNamed element cache can become invalid during HTMLCollection::updateNamedElementCache()
ch.dumez@samsung.com [Mon, 5 May 2014 22:50:33 +0000 (22:50 +0000)]
Named element cache can become invalid during HTMLCollection::updateNamedElementCache()
https://bugs.webkit.org/show_bug.cgi?id=132575

Reviewed by Ryosuke Niwa.

Source/WebCore:
Make sure the named element cache object stays valid in
HTMLCollection::updateNamedElementCache() while it is populating it.

The method was previously creating and setting the cache first, and then start
traversing the DOM tree to populate it. As a consequence, hasNamedElementCache()
would start returning true before the cache is actually populated.
The issue is that finding matches in the DOM tree can cause
HTMLCollection::invalidateCache() to be called under certain circumstances and
thus the named element cache object can become invalid while
updateNamedElementCache() is populating it.

To avoid the issue, this patch updates updateNamedElementCache() so that the
named element cache map is set *after* traversing the DOM tree. This way,
hasNamedElementCache() returns false while the cache is being populated and
there is no chance of it being invalidated too early.

Test: fast/dom/htmlcollection-selectedOptions-namedItem-crash.html

* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::updateNamedElementCache):
* html/HTMLCollection.h:
(WebCore::HTMLCollection::setNameItemCache):
(WebCore::HTMLCollection::createNameItemCache): Deleted.
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::updateNamedElementCache):

LayoutTests:
Add layout test to verify that HTMLCollection::updateNamedElementCache() is no longer
crashing for collections of selected options.

* fast/dom/htmlcollection-selectedOptions-namedItem-crash-expected.txt: Added.
* fast/dom/htmlcollection-selectedOptions-namedItem-crash.html: Added.

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

6 years ago[WIN] Enhance auto-version.sh to handle all-caps or mixed-case build environment...
bfulgham@apple.com [Mon, 5 May 2014 22:11:57 +0000 (22:11 +0000)]
[WIN] Enhance auto-version.sh to handle all-caps or mixed-case build environment variable
https://bugs.webkit.org/show_bug.cgi?id=132580
<rdar://problem/16811179>

Reviewed by Dean Jackson.

* win/tools/scripts/auto-version.sh: Incorporate Mark's revised syntax.

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

6 years ago[WIN] Enhance auto-version.sh to handle all-caps or mixed-case build environment...
bfulgham@apple.com [Mon, 5 May 2014 22:09:36 +0000 (22:09 +0000)]
[WIN] Enhance auto-version.sh to handle all-caps or mixed-case build environment variable
https://bugs.webkit.org/show_bug.cgi?id=132580
<rdar://problem/16811179>

Reviewed by Dean Jackson.

* win/tools/scripts/auto-version.sh: Fall back to all-caps version
of environment variable if mixed-case version is not present.

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

6 years agoREGRESSION: RELEASE_ASSERT in CodeBlock::baselineVersion @ cnn.com
msaboff@apple.com [Mon, 5 May 2014 22:09:00 +0000 (22:09 +0000)]
REGRESSION: RELEASE_ASSERT in CodeBlock::baselineVersion @ cnn.com
https://bugs.webkit.org/show_bug.cgi?id=132581

Reviewed by Filip Pizlo.

* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::isStillValid): Check that the alternative codeBlock we
started compiling for is still the same at the end of compilation.
Also did some minor restructuring.

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

6 years ago[Cocoa WebKit2] Add SPI to clear all visited links in a VisitedLinkProvider
commit-queue@webkit.org [Mon, 5 May 2014 21:23:37 +0000 (21:23 +0000)]
[Cocoa WebKit2] Add SPI to clear all visited links in a VisitedLinkProvider
https://bugs.webkit.org/show_bug.cgi?id=132573

Patch by Sam Weinig <sam@webkit.org> on 2014-05-05
Reviewed by Dan Bernstein.

* Shared/VisitedLinkTable.cpp:
(WebKit::VisitedLinkTable::VisitedLinkTable):
(WebKit::VisitedLinkTable::clear):
* Shared/VisitedLinkTable.h:
Add functions to clear the visited link table.

* UIProcess/API/Cocoa/_WKVisitedLinkProvider.h:
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm:
(-[_WKVisitedLinkProvider removeAll]):
Add SPI.

* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::removeAll):
* UIProcess/VisitedLinkProvider.h:
A remove all resets the provider and notifies all the attached processes.

* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::removeAllVisitedLinks):
* WebProcess/WebPage/VisitedLinkTableController.h:
* WebProcess/WebPage/VisitedLinkTableController.messages.in:
Add message to clear the visited links for a process.

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

6 years ago[iOS][WK2] Special case ViewGestureGeometryCollector::collectGeometryForSmartMagnific...
benjamin@webkit.org [Mon, 5 May 2014 21:13:22 +0000 (21:13 +0000)]
[iOS][WK2] Special case ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture() for image documents
https://bugs.webkit.org/show_bug.cgi?id=132553

Reviewed by Tim Horton.

Source/WebCore:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* html/ImageDocument.cpp:
(WebCore::ImageDocument::imageElement):
* html/ImageDocument.h:

Source/WebKit2:
When collecting the geometry for the smart magnification gesture, always return the image of an image document
on iOS. On iOS, it does not make much sense to return the whole document rect when the gesture is not over the image.

* WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):

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

6 years ago[CSS Blending] Webkit-blend-mode fails for accelerated parent with overflow:hidden
commit-queue@webkit.org [Mon, 5 May 2014 21:08:25 +0000 (21:08 +0000)]
[CSS Blending] Webkit-blend-mode fails for accelerated parent with overflow:hidden
https://bugs.webkit.org/show_bug.cgi?id=126160

Source/WebCore:
When the isolating layer has overflow:hidden, it will create a descendant clipping layer
(m_childContainmentLayer), which will restrict the bleding layer to reading the backdrop
from the isolating layer.
The solution in this patch is to forbid the isolating layer to create a descendant clipping
layer and make all the children to get their own ancestor clipping layers instead.

Patch by Ion Rosca <rosca@adobe.com> on 2014-05-05
Reviewed by Dean Jackson.

Tests: css3/compositing/blend-mode-accelerated-parent-overflow-hidden.html
       css3/compositing/blend-mode-clip-accelerated-blending-canvas.html
       css3/compositing/blend-mode-clip-accelerated-blending-child.html
       css3/compositing/blend-mode-clip-accelerated-blending-double.html
       css3/compositing/blend-mode-clip-accelerated-blending-with-siblings.html
       css3/compositing/blend-mode-clip-accelerated-transformed-blending.html
       css3/compositing/blend-mode-clip-rect-accelerated-blending.html

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
when the compositing ancestor isolates blending we take it into account for computing
the clipping rect for this layer, because it was not allowed to create the descendant
clipping layer.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::clippedByAncestor):
when the compositing ancestor isolates blending we decide if a layer is clipped by ancestor
by computing the clipping rect taking into account all the ancestors up to and including
the compositing ancestor.
(WebCore::RenderLayerCompositor::clipsCompositingDescendants):
if a layer isolates blending, it is not allowed to create a descendant clipping layer.

LayoutTests:
Patch by Ion Rosca <rosca@adobe.com> on 2014-05-05
Reviewed by Dean Jackson.

* css3/compositing/blend-mode-accelerated-parent-overflow-hidden-expected.html: Added.
* css3/compositing/blend-mode-accelerated-parent-overflow-hidden.html: Added.
* css3/compositing/blend-mode-clip-accelerated-blending-canvas-expected.txt: Added.
* css3/compositing/blend-mode-clip-accelerated-blending-canvas.html: Added.
* css3/compositing/blend-mode-clip-accelerated-blending-child-expected.html: Added.
* css3/compositing/blend-mode-clip-accelerated-blending-child.html: Added.
* css3/compositing/blend-mode-clip-accelerated-blending-double-expected.html: Added.
* css3/compositing/blend-mode-clip-accelerated-blending-double.html: Added.
* css3/compositing/blend-mode-clip-accelerated-blending-with-siblings-expected.html: Added.
* css3/compositing/blend-mode-clip-accelerated-blending-with-siblings.html: Added.
* css3/compositing/blend-mode-clip-accelerated-transformed-blending-expected.html: Added.
* css3/compositing/blend-mode-clip-accelerated-transformed-blending.html: Added.
* css3/compositing/blend-mode-clip-rect-accelerated-blending.html: Added.
* css3/compositing/blend-mode-clip-rect-accelerated-blending-expected.html: Added.
* css3/compositing/blend-mode-isolation-accelerated-overflow-hidden-expected.txt:

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

6 years agoAX: tabindex support in SVG2
krit@webkit.org [Mon, 5 May 2014 20:31:29 +0000 (20:31 +0000)]
AX: tabindex support in SVG2
https://bugs.webkit.org/show_bug.cgi?id=130212

Reviewed by Chris Fleizach.

Source/WebCore:
The patch is mainly based on a patch for Blink by Erik Dahlström.
https://src.chromium.org/viewvc/blink?revision=172964&view=revision

It adds support for tabindex to SVG by reusing the HTML code.

Spec: https://svgwg.org/svg2-draft/interact.html#sequential-focus-navigation-and-the-tabindex-attribute
IDL attribute: https://svgwg.org/svg2-draft/types.html#__svg__SVGElement__tabIndex

Test: svg/custom/tabindex-order.html

* dom/Element.cpp:
(WebCore::Element::setTabIndex): Moved from HTMLElement and shared with all elements.
* dom/Element.h:
* html/HTMLAnchorElement.cpp: Remove outdated comment.
(WebCore::HTMLAnchorElement::canStartSelection):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setTabIndex): Deleted.
* html/HTMLElement.h:
* svg/SVGAElement.cpp: Uses the same logic as HTMLAnchorElement now.
(WebCore::SVGAElement::tabIndex):
(WebCore::SVGAElement::supportsFocus):
(WebCore::SVGAElement::isMouseFocusable):
(WebCore::SVGAElement::isKeyboardFocusable):
(WebCore::SVGAElement::canStartSelection):
* svg/SVGAElement.h:
* svg/SVGCircleElement.h:
* svg/SVGClipPathElement.h:
* svg/SVGDefsElement.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::tabIndex): Return -1 if element can not be focused.
(WebCore::SVGElement::parseAttribute):
(WebCore::SVGElement::isMouseFocusable):
(WebCore::SVGElement::isKeyboardFocusable): Deleted. Use function on Element.
* svg/SVGElement.h:
* svg/SVGElement.idl:
* svg/SVGEllipseElement.h:
* svg/SVGGElement.h:
* svg/SVGGraphicsElement.h: Remove supportsFocus() from inheriting functions.
    Don't just return true. SVG elements should not be focusable by default.
    Instead check if tabindex was set explicitly.
* svg/SVGImageElement.h:
* svg/SVGLineElement.h:
* svg/SVGPathElement.h:
* svg/SVGPolyElement.h:
* svg/SVGRectElement.h:
* svg/SVGSVGElement.h:
* svg/SVGSwitchElement.h:
* svg/SVGSymbolElement.h:
* svg/SVGTextElement.h:

LayoutTests:
Add test for tabindex on various SVG elements. Negative tests included.

Test is based upon a test from Erik Dahlström. Modified to test all SVGGraphicsElements.

* svg/custom/tabindex-order-expected.txt: Added.
* svg/custom/tabindex-order.html: Added.
* accessibility/svg-group-element-with-title.html: Give group element a role.
* platform/gtk/svg/custom/linking-uri-01-b-expected.txt:
* platform/ios-sim/svg/custom/linking-uri-01-b-expected.txt:
* platform/mac/svg/custom/linking-uri-01-b-expected.txt:

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

6 years agohttps://bugs.webkit.org/show_bug.cgi?id=132522
barraclough@apple.com [Mon, 5 May 2014 20:14:11 +0000 (20:14 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=132522
Clean up ProcessThrottler

Reviewed by Geoffrey Garen.

The initial implementation of ProcessThrottler relied on the reply from the
SetViewState message to ensure the page visibility notifications have a chance
to be delivered. This resulted in:
    - unnecessarily complicated interface to ProcessThrottler (in VisibilityState class)
    - complexity bleeding out into WebPageProxy (handling 'hiding' state).
    - for cases other than view hiding, no suspension notification in the WebContent.

To fix these issues add an explicit handshake from the ProcessThrottler to the WebPage.
This gives us two things:
    - All previously posted messages (e.g. SetViewState) will be processed before suspension.
    - WebContent is always (bar timeout) notified before suspension.

Since this interlock ensures the SetViewState message will be processed, the WKContentView no
longer needs to request a reply from SetViewState, and WebPageProxy can lose all the 'hiding'
state tracking. In turn, we can simplify VisibilityToken to a couple of simpler types, without
the interface to change state - just acquire/release to keep the process runnable or permit
suspension.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
    - VisibilityToken -> BackgroundActivityToken
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
    - m_visibilityToken -> m_activityToken, remove m_pendingViewStateUpdates
      updateVisibilityToken -> updateActivityToken
(WebKit::WebPageProxy::reattachToWebProcess):
    - updateVisibilityToken -> updateActivityToken
(WebKit::WebPageProxy::viewStateDidChange):
    - remove m_pendingViewStateUpdates, updateActivityToken after sending SetViewState
(WebKit::WebPageProxy::updateActivityToken):
    - m_visibilityToken -> m_activityToken, no need to handle 'hiding' state.
(WebKit::WebPageProxy::updateVisibilityToken): Deleted.
    - renamed to updateActivityToken
(WebKit::WebPageProxy::didUpdateViewState): Deleted.
    - implementation moved back into header.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::didUpdateViewState):
    - implementation moved back into header.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::WebProcessProxy):
    - ProcessThrottler constructor now passed WebProcessProxy.
* UIProcess/WebProcessProxy.h:
    - added ProcessWillSuspend/ProcessReadyToSuspend
* UIProcess/WebProcessProxy.messages.in:
    - added ProcessWillSuspend/ProcessReadyToSuspend
* UIProcess/ios/ProcessAssertion.h:
(WebKit::ProcessAssertion::state):
    - accessor
* UIProcess/ios/ProcessThrottler.h:
(WebKit::ProcessThrottler::VisibilityToken::visibility): Deleted.
(WebKit::ProcessThrottler::VisibilityToken::setVisibility): Deleted.
    - removed VisibilityToken class, replaced with ForegroundActivityToken/BackgroundActivityToken.
(WebKit::ProcessThrottler::ProcessThrottler): Deleted.
(WebKit::ProcessThrottler::visibilityToken): Deleted.
(WebKit::ProcessThrottler::didConnnectToProcess): Deleted.
(WebKit::ProcessThrottler::assertionState): Deleted.
(WebKit::ProcessThrottler::updateAssertion): Deleted.
    - moved implementations to .mm.
* UIProcess/ios/ProcessThrottler.mm:
(WebKit::ProcessThrottler::ForegroundActivityToken::ForegroundActivityToken):
(WebKit::ProcessThrottler::ForegroundActivityToken::~ForegroundActivityToken):
(WebKit::ProcessThrottler::BackgroundActivityToken::BackgroundActivityToken):
(WebKit::ProcessThrottler::BackgroundActivityToken::~BackgroundActivityToken):
    - new, simpler replacement for VisibilityToken. Instantiate to keep a processes running, release to suspend.
(WebKit::ProcessThrottler::ProcessThrottler):
    - constructor, now initializes WebProcessProxy pointer & timer mechanism
(WebKit::ProcessThrottler::assertionState):
    - select the appropriate AssertionState give current ActivityTokens.
(WebKit::ProcessThrottler::updateAssertionNow):
    - update the current ProcessAssertion.
(WebKit::ProcessThrottler::updateAssertion):
    - update the current ProcessAssertion, delay running->suspended transitions to give the process a chance to clean up.
(WebKit::ProcessThrottler::didConnnectToProcess):
    - moved from header.
(WebKit::ProcessThrottler::suspendTimerFired):
    - timeout to prevent processes from running in the background for too long.
(WebKit::ProcessThrottler::processReadyToSuspend):
    - handshake from the WebContent process to acknowledge it is ready to suspend.
(WebKit::ProcessThrottler::VisibilityToken::VisibilityToken): Deleted.
(WebKit::ProcessThrottler::VisibilityToken::~VisibilityToken): Deleted.
(WebKit::ProcessThrottler::VisibilityToken::hideTimerFired): Deleted.
(WebKit::ProcessThrottler::VisibilityToken::setVisibilityInternal): Deleted.
    - removed VisibilityToken class, replaced with ForegroundActivityToken/BackgroundActivityToken.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didMoveToWindow]):
    - no longer necessary to request a response from SetViewState; this interlock is now managed by the ProcessThrottler.
* UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::sendProcessWillSuspend):
(WebKit::WebProcessProxy::processReadyToSuspend):
    - added ProcessWillSuspend/ProcessReadyToSuspend
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::processWillSuspend):
    - notification from the WebContent process that we will be suspended; for now just send back an ack.
* WebProcess/WebProcess.h:
    - added ProcessWillSuspend/ProcessReadyToSuspend
* WebProcess/WebProcess.messages.in:
    - added ProcessWillSuspend/ProcessReadyToSuspend

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

6 years agoImplement beginScrubbing and endScrubbing for video fullscreen.
commit-queue@webkit.org [Mon, 5 May 2014 20:02:56 +0000 (20:02 +0000)]
Implement beginScrubbing and endScrubbing for video fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=132520

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-05-05
Reviewed by Eric Carlson.

Source/WebCore:
Plumb through beginScrubbing and endScrubbing from AVKit down to HTMLMediaElement.
This keeps the playback state consistent while scrubbing and allows playback state
to return to the original state when scrubbing is complete.

* WebCore.exp.in:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerController beginScrubbing:]):
(-[WebAVPlayerController endScrubbing:]):
* platform/ios/WebVideoFullscreenModel.h:
* platform/ios/WebVideoFullscreenModelMediaElement.h:
* platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::beginScrubbing):
(WebVideoFullscreenModelMediaElement::endScrubbing):

Source/WebKit2:
Plumb through beginScrubbing and endScrubbing.

* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::beginScrubbing):
(WebKit::WebVideoFullscreenManagerProxy::endScrubbing):
* WebProcess/ios/WebVideoFullscreenManager.messages.in:

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

6 years agoREGRESSION (r168244): compositing/visibility/visibility-image-layers-dynamic.html
bdakin@apple.com [Mon, 5 May 2014 19:46:30 +0000 (19:46 +0000)]
REGRESSION (r168244): compositing/visibility/visibility-image-layers-dynamic.html
failing.
https://bugs.webkit.org/show_bug.cgi?id=132551

Reviewed by Tim Horton.

This just needed a re-baseline after all. The bounds have increased in size
because the size of the layer tree dump effects the bounds! So now that we are
printing out anchor points, the bound increase by 15 pixels for every new anchor
point print-out.

Should not longer be marked failing.
* TestExpectations:

Added comment to the test.
* compositing/visibility/visibility-image-layers-dynamic.html:

Re-baseline.
* platform/mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt:

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

6 years ago[CSS Blending] Move fast/repaint tests to css3/compositing/repaint
commit-queue@webkit.org [Mon, 5 May 2014 19:43:12 +0000 (19:43 +0000)]
[CSS Blending] Move fast/repaint tests to css3/compositing/repaint
https://bugs.webkit.org/show_bug.cgi?id=132567

Patch by Ion Rosca <rosca@adobe.com> on 2014-05-05
Reviewed by Mihnea Ovidenie.

* css3/compositing/repaint/blend-mode-isolate-stacking-context-expected.txt: Renamed from LayoutTests/fast/repaint/blend-mode-isolate-stacking-context-expected.txt.
* css3/compositing/repaint/blend-mode-isolate-stacking-context.html: Renamed from LayoutTests/fast/repaint/blend-mode-isolate-stacking-context.html.
* platform/efl-wk2/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:

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

6 years agoMore long hangs under IOSurfacePool::evict
timothy_horton@apple.com [Mon, 5 May 2014 18:59:23 +0000 (18:59 +0000)]
More long hangs under IOSurfacePool::evict
https://bugs.webkit.org/show_bug.cgi?id=132576
<rdar://problem/16769469>

Reviewed by Simon Fraser.

* platform/graphics/cg/IOSurfacePool.cpp:
(WebCore::IOSurfacePool::evict):
If the pool is too full, we should be evicting in-use surfaces
even if the size of the in-use surfaces has dropped below maximumInUseBytes,
otherwise we can get stuck in an infinite loop with 0 cached surfaces
and 1+ in-use surfaces.

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

6 years ago[CSS Regions] Remove regionLayoutUpdate event
stavila@adobe.com [Mon, 5 May 2014 18:49:54 +0000 (18:49 +0000)]
[CSS Regions] Remove regionLayoutUpdate event
https://bugs.webkit.org/show_bug.cgi?id=132564

Reviewed by Simon Fraser.

Source/WebCore:
The regionLayoutUpdate event was removed from the regions spec and was replaced by two other events:
regionOversetChange and regionFragmentChange.

No new tests needed, this patch removes a feature.

* dom/EventNames.h:
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): Deleted.
* dom/WebKitNamedFlow.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::resetNonPersistentData):
(WebCore::InspectorCSSAgent::willRemoveNamedFlow):
(WebCore::UpdateRegionLayoutTask::UpdateRegionLayoutTask): Deleted.
(WebCore::UpdateRegionLayoutTask::scheduleFor): Deleted.
(WebCore::UpdateRegionLayoutTask::unschedule): Deleted.
(WebCore::UpdateRegionLayoutTask::reset): Deleted.
(WebCore::UpdateRegionLayoutTask::timerFired): Deleted.
(WebCore::InspectorCSSAgent::didUpdateRegionLayout): Deleted.
(WebCore::InspectorCSSAgent::regionLayoutUpdated): Deleted.
* inspector/InspectorCSSAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didUpdateRegionLayoutImpl): Deleted.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didUpdateRegionLayout): Deleted.
* inspector/protocol/CSS.json:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::updateOversetState):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::removeRegionFromThread):
(WebCore::RenderNamedFlowThread::layout):
(WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEventIfNeeded): Deleted.
(WebCore::RenderNamedFlowThread::regionLayoutUpdateEventTimerFired): Deleted.
* rendering/RenderNamedFlowThread.h:

Source/WebInspectorUI:
The regionLayoutUpdate event was removed from the regions spec and was replaced by two other events:
regionOversetChange and regionFragmentChange.

* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.get regionLayoutUpdated): Deleted.
* UserInterface/Models/ScriptTimelineRecord.js:
* UserInterface/Protocol/CSSObserver.js:
(WebInspector.CSSObserver.prototype.regionLayoutUpdated): Deleted.
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-7.0.json:

LayoutTests:
Removed test for regionLayoutUpdate event.

* fast/regions/auto-size/autoheight-regionlayoutupdate-multipletimes-expected.txt: Removed.
* fast/regions/auto-size/autoheight-regionlayoutupdate-multipletimes.html: Removed.

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

6 years ago[GTK][CMake] Unable to do make install
mrobinson@webkit.org [Mon, 5 May 2014 18:38:05 +0000 (18:38 +0000)]
[GTK][CMake] Unable to do make install
https://bugs.webkit.org/show_bug.cgi?id=130188

Reviewed by Carlos Garcia Campos.

.:
Only try to install the HTML documentation if the build is configured to generate it via
the new ENABLE_GTKDOC option. We cannot conditionally install something, so this allows us
to keep the HTML documentation directory as an installation source.

* Source/PlatformGTK.cmake: The gtkdoc target now always builds HTML documentation, but
is only added to the default target when ENABLE_GTKDOC is turned on. gtkdoc-no-html is
never added to the default target, but will be triggered by build-webkit, so that
when ENABLE_GTKDOC is off and build-webkit isn't used, documentation isn't built at all.
* Source/cmake/OptionsGTK.cmake: Add an ENABLE_GTKDOC option to the build.

Tools:
* Scripts/webkitdirs.pm:
(buildCMakeGeneratedProject): Always build gtkdoc-no-html for WebKitGTK+. This
will give an early signal that a change has broken the documentation.

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

6 years agoEnhance IDL compiler so it supports unrestricted float and double
cabanier@adobe.com [Mon, 5 May 2014 18:31:30 +0000 (18:31 +0000)]
Enhance IDL compiler so it supports unrestricted float and double
https://bugs.webkit.org/show_bug.cgi?id=132460

Reviewed by Dirk Schulze.

Source/WebCore:
Updated IDL compiler so it supports unrestricted types.
Also updated the IDL files so they use unrestricted float and
double.

Tests:
* canvas/philip/tests/2d.gradient.linear.nonfinite.html:
* canvas/philip/tests/2d.gradient.object.invalidoffset.html:
* canvas/philip/tests/2d.gradient.radial.nonfinite.html:
* canvas/philip/tests/2d.imageData.get.nonfinite.html:
* canvas/philip/tests/2d.imageData.put.nonfinite.html:
* canvas/philip/tests/2d.missingargs.html:
* fast/canvas/canvas-getImageData-invalid-expected.txt:
* fast/canvas/canvas-putImageData-expected.txt:
* fast/canvas/canvas-putImageData.js:

* Modules/battery/BatteryManager.idl:
* Modules/gamepad/Gamepad.idl:
* Modules/geolocation/Coordinates.idl:
* Modules/mediasource/MediaSource.idl:
* Modules/mediasource/SourceBuffer.idl:
* Modules/mediasource/VideoPlaybackQuality.idl:
* Modules/mediastream/MediaSourceStates.idl:
* Modules/proximity/DeviceProximityEvent.idl:
* Modules/speech/SpeechGrammar.idl:
* Modules/speech/SpeechGrammarList.idl:
* Modules/speech/SpeechRecognitionAlternative.idl:
* Modules/speech/SpeechSynthesisEvent.idl:
* Modules/speech/SpeechSynthesisUtterance.idl:
* Modules/webaudio/AnalyserNode.idl:
* Modules/webaudio/AudioBuffer.idl:
* Modules/webaudio/AudioBufferSourceNode.idl:
* Modules/webaudio/AudioContext.idl:
* Modules/webaudio/AudioListener.idl:
* Modules/webaudio/AudioParam.idl:
* Modules/webaudio/AudioProcessingEvent.idl:
* Modules/webaudio/OfflineAudioContext.idl:
* Modules/webaudio/OscillatorNode.idl:
* Modules/webaudio/PannerNode.idl:
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorGObject.pm:
(GetGValueTypeName):
(GetGlibTypeName):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateParametersCheck):
(JSValueToNative):
* bindings/scripts/CodeGeneratorObjC.pm:
(GetObjCType):
(GenerateHeader):
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/TestTypedefs.idl:
* css/CSSPrimitiveValue.idl:
* css/WebKitCSSMatrix.idl:
* dom/ClientRect.idl:
* dom/DeviceMotionEvent.idl:
* dom/DeviceOrientationEvent.idl:
* dom/Document.idl:
* dom/RequestAnimationFrameCallback.idl:
* dom/Touch.idl:
* dom/TransitionEvent.idl:
* dom/WebKitAnimationEvent.idl:
* dom/WebKitTransitionEvent.idl:
* dom/WheelEvent.idl:
* html/HTMLInputElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLMeterElement.idl:
* html/HTMLProgressElement.idl:
* html/MediaController.idl:
* html/TextMetrics.idl:
* html/TimeRanges.idl:
* html/canvas/CanvasRenderingContext2D.idl:
* html/canvas/WebGLRenderingContext.idl:
* html/track/DataCue.idl:
* html/track/TextTrackCue.idl:
* html/track/VTTCue.idl:
* html/track/VTTRegion.idl:
* inspector/InspectorFrontendHost.idl:
* inspector/ScriptProfile.idl:
* inspector/ScriptProfileNode.idl:
* page/DOMWindow.idl:
* page/Performance.idl:
* page/PerformanceEntry.idl:
* page/PerformanceResourceTiming.idl:
* page/SpeechInputResult.idl:
* page/WebKitPoint.idl:
* svg/SVGAngle.idl:
* svg/SVGAnimatedNumber.idl:
* svg/SVGAnimationElement.idl:
* svg/SVGFEDropShadowElement.idl:
* svg/SVGFEGaussianBlurElement.idl:
* svg/SVGFEMorphologyElement.idl:
* svg/SVGGlyphRefElement.idl:
* svg/SVGLength.idl:
* svg/SVGMatrix.idl:
* svg/SVGNumber.idl:
* svg/SVGPathElement.idl:
* svg/SVGPathSegArcAbs.idl:
* svg/SVGPathSegArcRel.idl:
* svg/SVGPathSegCurvetoCubicAbs.idl:
* svg/SVGPathSegCurvetoCubicRel.idl:
* svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
* svg/SVGPathSegCurvetoCubicSmoothRel.idl:
* svg/SVGPathSegCurvetoQuadraticAbs.idl:
* svg/SVGPathSegCurvetoQuadraticRel.idl:
* svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
* svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
* svg/SVGPathSegLinetoAbs.idl:
* svg/SVGPathSegLinetoHorizontalAbs.idl:
* svg/SVGPathSegLinetoHorizontalRel.idl:
* svg/SVGPathSegLinetoRel.idl:
* svg/SVGPathSegLinetoVerticalAbs.idl:
* svg/SVGPathSegLinetoVerticalRel.idl:
* svg/SVGPathSegMovetoAbs.idl:
* svg/SVGPathSegMovetoRel.idl:
* svg/SVGPoint.idl:
* svg/SVGRect.idl:
* svg/SVGSVGElement.idl:
* svg/SVGTextContentElement.idl:
* svg/SVGTransform.idl:
* svg/SVGZoomEvent.idl:
* testing/InternalSettings.idl:
* testing/Internals.idl:
* xml/XPathResult.idl:

LayoutTests:
* canvas/philip/tests/2d.gradient.linear.nonfinite.html:
* canvas/philip/tests/2d.gradient.object.invalidoffset.html:
* canvas/philip/tests/2d.gradient.radial.nonfinite.html:
* canvas/philip/tests/2d.imageData.get.nonfinite.html:
* canvas/philip/tests/2d.imageData.put.nonfinite.html:
* canvas/philip/tests/2d.missingargs-expected.txt:
* canvas/philip/tests/2d.missingargs.html:
* fast/canvas/canvas-getImageData-invalid-expected.txt:
* fast/canvas/canvas-putImageData-expected.txt:
* fast/canvas/canvas-putImageData.js:
* fast/canvas/linearGradient-infinite-values-expected.txt:
* fast/canvas/radialGradient-infinite-values-expected.txt:
* fast/canvas/script-tests/canvas-getImageData-invalid.js:
* fast/canvas/script-tests/linearGradient-infinite-values.js:
* fast/canvas/script-tests/radialGradient-infinite-values.js:
* platform/mac/canvas/philip/tests/2d.missingargs-expected.txt:

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

6 years agoUse a layer delegate instead of web_disableAllActions wherever possible
timothy_horton@apple.com [Mon, 5 May 2014 18:30:02 +0000 (18:30 +0000)]
Use a layer delegate instead of web_disableAllActions wherever possible
https://bugs.webkit.org/show_bug.cgi?id=132560
<rdar://problem/16459284>

Reviewed by Simon Fraser.

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::commonInit):
If we own the platform layer, set its delegate to the action-disabling WebActionDisablingCALayerDelegate.
If we don't, its actual owner might want to control the delegate, so continue using web_disableAllActions.

* platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h: Added.
* platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm: Added.
(+[WebActionDisablingCALayerDelegate shared]):
(-[WebActionDisablingCALayerDelegate actionForLayer:forKey:]):
Add a class that can act as the delegate of a CALayer, and disables all actions.

* platform/graphics/cocoa/WebCoreCALayerExtras.h: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.h.
* platform/graphics/cocoa/WebCoreCALayerExtras.mm: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.mm.
(-[CALayer web_disableAllActions]):
Move WebCoreCALayerExtras from mac/ to cocoa/.

* UIProcess/API/mac/WKView.mm:
(-[WKView _setAcceleratedCompositingModeRootLayer:]):
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
Make use of WebActionDisablingCALayerDelegate where possible.
Also, UIKit disables actions for us, so don't bother doing anything on iOS.

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

6 years agoOptimize PutByVal when subscript is a rope string.
akling@apple.com [Mon, 5 May 2014 18:08:25 +0000 (18:08 +0000)]
Optimize PutByVal when subscript is a rope string.
<https://webkit.org/b/132572>

Add a JSString::toIdentifier() that is smarter when the JSString is
really a rope string. Use this in baseline & DFG's PutByVal to avoid
allocating new StringImpls that we immediately deduplicate anyway.

Reviewed by Antti Koivisto.

* dfg/DFGOperations.cpp:
(JSC::DFG::operationPutByValInternal):
* jit/JITOperations.cpp:
* runtime/JSString.h:
(JSC::JSString::toIdentifier):

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

6 years agoUpdate framework locations in package-root
psolanki@apple.com [Mon, 5 May 2014 17:50:06 +0000 (17:50 +0000)]
Update framework locations in package-root
https://bugs.webkit.org/show_bug.cgi?id=132571

Reviewed by Simon Fraser.

* Scripts/package-root:

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

6 years agoSession-aware plugin autostart data
mhock@apple.com [Mon, 5 May 2014 16:49:33 +0000 (16:49 +0000)]
Session-aware plugin autostart data
https://bugs.webkit.org/show_bug.cgi?id=131758
<rdar://problem/15906540>

Reviewed by Alexey Proskuryakov.

Source/WebCore:
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
* page/PlugInClient.h:

Source/WebKit2:
* Shared/WebProcessCreationParameters.cpp:
* Shared/WebProcessCreationParameters.h:
* UIProcess/Plugins/PlugInAutoStartProvider.cpp:
(WebKit::PlugInAutoStartProvider::PlugInAutoStartProvider):
(WebKit::PlugInAutoStartProvider::addAutoStartOriginHash):
(WebKit::PlugInAutoStartProvider::autoStartOriginHashesCopy):
(WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsArray):
(WebKit::PlugInAutoStartProvider::didReceiveUserInteraction):
* UIProcess/Plugins/PlugInAutoStartProvider.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::addPlugInAutoStartOriginHash):
(WebKit::WebContext::plugInDidReceiveUserInteraction):
* UIProcess/WebContext.h:
* UIProcess/WebContext.messages.in:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pluginDidReceiveUserInteraction):
* WebProcess/WebCoreSupport/WebPlugInClient.cpp:
(WebKit::WebPlugInClient::didStartFromOrigin):
* WebProcess/WebCoreSupport/WebPlugInClient.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::isPlugInAutoStartOriginHash):
(WebKit::WebProcess::shouldPlugInAutoStartFromOrigin):
(WebKit::WebProcess::plugInDidStartFromOrigin):
(WebKit::WebProcess::didAddPlugInAutoStartOriginHash):
(WebKit::WebProcess::resetPlugInAutoStartOriginDefaultHashes):
(WebKit::WebProcess::resetPlugInAutoStartOriginHashes):
(WebKit::WebProcess::plugInDidReceiveUserInteraction):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

6 years agoAnother iOS build fix after r168260.
aestes@apple.com [Mon, 5 May 2014 16:28:49 +0000 (16:28 +0000)]
Another iOS build fix after r168260.

Removed an unnecessary 'using namespace WebCore'.

* UIProcess/ios/WebMemoryPressureHandlerIOS.cpp:

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

6 years ago[CSS Regions] Elements with overflow:auto are not painted inside regions when followi...
stavila@adobe.com [Mon, 5 May 2014 16:14:47 +0000 (16:14 +0000)]
[CSS Regions] Elements with overflow:auto are not painted inside regions when following a float
https://bugs.webkit.org/show_bug.cgi?id=131161

Reviewed by David Hyatt.

Source/WebCore:
When a float-avoiding element (such as overflow:auto) is flowed into a flow thread after a float, its
logical left is not set on its frameRect or its layer's topLeft, but is instead kept in its RenderBoxRegionInfo
structure. In some situation, this causes paint rejection to kick-in because intersecting the layer's rect
(which DOESN'T contain the logical left from the region info object) with the computed background rect
(which contains the logical left from the region info object) results in an empty rect.

Test: fast/regions/overflow-auto-after-float.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):

LayoutTests:
Added test for an overflow:auto element being flowed after a float.

* fast/regions/overflow-auto-after-float-expected.html: Added.
* fast/regions/overflow-auto-after-float.html: Added.

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

6 years ago[CSSRegions] Slider displayed wrong in regions
abucur@adobe.com [Mon, 5 May 2014 14:47:33 +0000 (14:47 +0000)]
[CSSRegions] Slider displayed wrong in regions
https://bugs.webkit.org/show_bug.cgi?id=132243

Reviewed by Mihnea Ovidenie.

Source/WebCore:
In case a box didn't have a range, getRegionRangeForBox was searching for
the top-most unplittable ancestor. This is not correct in every case. It's
possible to have a box with range that has children without ranges (e.g. an
absolutely positioned inline box with shadow descendants).

I've modified getRegionRangeForBox to search for the first ancestor that
has a cached range and use that instead of looking for an unsplittable box.
The range of the box is the region at the top of the box, clamped by the
range of the ancestor. This will be correct all the time once all the layout
systems are region range aware and are able to cache it.

Test: fast/regions/positioned-slider-in-regions.html

* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::hasRegionRangeForBox):
(WebCore::RenderFlowThread::getRegionRangeForBox):
* rendering/RenderFlowThread.h:

LayoutTests:
Tests that the thumb of positioned slider inside regions is correctly painted.

* fast/regions/positioned-slider-in-regions-expected.html: Added.
* fast/regions/positioned-slider-in-regions.html: Added.

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

6 years agoFix the iOS build.
timothy_horton@apple.com [Mon, 5 May 2014 10:58:00 +0000 (10:58 +0000)]
Fix the iOS build.

* UIProcess/API/Cocoa/WKWebView.mm:

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

6 years agoUnreviewed. New GTK baseline for media/media-controls-clone.html.
calvaris@igalia.com [Mon, 5 May 2014 10:54:20 +0000 (10:54 +0000)]
Unreviewed. New GTK baseline for media/media-controls-clone.html.

* platform/gtk/TestExpectations: Removed from the expectations.
* platform/gtk/media/media-controls-clone-expected.png:
* platform/gtk/media/media-controls-clone-expected.txt: New
baseline.

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

6 years agoRemove two now-incorrect assertions after r168256.
akling@apple.com [Mon, 5 May 2014 08:19:01 +0000 (08:19 +0000)]
Remove two now-incorrect assertions after r168256.

* runtime/JSString.cpp:
(JSC::JSRopeString::resolveRopeSlowCase8):
(JSC::JSRopeString::resolveRopeSlowCase):

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

6 years ago[EFL][WK2] Refactor favicon database APIs
ryuan.choi@samsung.com [Mon, 5 May 2014 08:08:28 +0000 (08:08 +0000)]
[EFL][WK2] Refactor favicon database APIs
https://bugs.webkit.org/show_bug.cgi?id=132519

Reviewed by Gyuyoung Kim.

Source/WebKit2:
ewebkit2 has two options to get favicon.

The first option is ewk_view_favicon_get with "favicon,changed" signal.
It's simple to use but it always adds the callback to EwkView although applications does not use favicon.

The other option is ewk_favicon_database_icon_get with ewk_favicon_database_icon_change_callback_add API.
But the callback doesn't have information about Ewk_Favicon_Database to call ewk_favicon_database_icon_get.

This patch removed ewk_view_favicon_get and "favicon,changed" signal.
In addition, improved ewk_favicon_database_icon_change_callback.

* UIProcess/API/efl/EwkView.cpp: Remove ewk_favicon_database related code.
(EwkView::EwkView):
(EwkView::~EwkView):
(EwkView::informURLChange):
(EwkView::handleFaviconChanged):
(EwkView::createFavicon): Deleted.
* UIProcess/API/efl/EwkViewCallbacks.h:
* UIProcess/API/efl/ewk_favicon_database.cpp:
(EwkFaviconDatabase::iconDataReadyForPageURL):
(EwkFaviconDatabase::didChangeIconForPageURL): Deleted. dead code.
* UIProcess/API/efl/ewk_favicon_database.h:
Refactor Ewk_Favicon_Database_Icon_Change_Cb and improve doxygen.
* UIProcess/API/efl/ewk_favicon_database_private.h:
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_favicon_get): Deleted.
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_favicon_database.cpp:
(EWK2FaviconDatabaseTest::requestFaviconData):
(TEST_F):

Tools:
* MiniBrowser/efl/main.c: Use ewk_favicon_database_icon_get instead of ewk_view_favicon_get.
(update_view_favicon):
(on_icon_changed_cb):
(window_free):
(on_url_changed):
(window_create):
(on_view_favicon_changed): Deleted.

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

6 years ago[CSS Regions] ASSERT when hovering over region
abucur@adobe.com [Mon, 5 May 2014 08:01:13 +0000 (08:01 +0000)]
[CSS Regions] ASSERT when hovering over region
https://bugs.webkit.org/show_bug.cgi?id=128809

Reviewed by Mihnea Ovidenie.

Source/WebCore:
There's no point in hit-testing a box for a region if it's not contained inside
that region.

Test: fast/regions/hit-test-box-non-containing-region.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::nodeAtPoint):

LayoutTests:
Add a test verifying we're not trying to hit-test a box inside a region
where it's not contained.

* fast/regions/hit-test-box-non-containing-region-expected.txt: Added.
* fast/regions/hit-test-box-non-containing-region.html: Added.

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

6 years ago[iOS WebKit2] Swipe snapshots should be taken asynchronously
timothy_horton@apple.com [Mon, 5 May 2014 07:37:35 +0000 (07:37 +0000)]
[iOS WebKit2] Swipe snapshots should be taken asynchronously
https://bugs.webkit.org/show_bug.cgi?id=132417
<rdar://problem/16535921>

Reviewed by Anders Carlsson.

Reorganize takeViewSnapshot to return a ViewSnaphot with the image
filled in (the other properties are filled in by ViewSnapshotStore).

Make ViewSnapshotStore use a fixed size instead of count for the snapshot cache.
iOS doesn't use purgeable snapshots, so make the cache much smaller there.

Use CARenderServerCaptureLayerWithTransform to achieve async snapshotting.

Rename WebKit::ViewSnapshotStore::Snapshot to WebKit::ViewSnapshot so that
it can be forward-declared in a bunch of places.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _takeViewSnapshot:]):
Use CARenderServerCaptureLayerWithTransform.

* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/mac/WKView.mm:
(createIOSurfaceFromImage):
(-[WKView _takeViewSnapshot:]):
Adjust to the new push model.

* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::takeViewSnapshot):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::takeViewSnapshot):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::takeViewSnapshot):
Plumbing.

* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):
Realize an object that can be used as the layer contents from the slot ID.

* UIProcess/ios/WebMemoryPressureHandlerIOS.cpp:
(WebKit::WebMemoryPressureHandler::sharedHandler):
(WebKit::WebMemoryPressureHandler::WebMemoryPressureHandler):
* UIProcess/WebMemoryPressureHandlerIOS.h:
Add a memory pressure handler for the UI process. This does not use
WebCore's platform independent memory pressure handler because that
mechanism only allows for one handler per process, and we don't want to
stomp on any handlers installed by WebKit1 in a process where the WebKits coexist.

* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _takeViewSnapshot]): Deleted.
Get rid of an unnecessary bounce through WKContentView.

* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::retrieveSnapshotForItem):
(WebKit::ViewGestureController::endSwipeGesture):
Use the new name, ViewSnapshot.

* UIProcess/mac/ViewSnapshotStore.h:
(WebKit::ViewSnapshot::ViewSnapshot):
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::ViewSnapshotStore):
(WebKit::ViewSnapshotStore::~ViewSnapshotStore):
(WebKit::ViewSnapshotStore::snapshottingContext):
Use a custom CAContext for snapshotting so that snapshots don't
disappear when the main context is destroyed on hibernation.

(WebKit::ViewSnapshotStore::removeSnapshotImage):
(WebKit::ViewSnapshotStore::pruneSnapshots):
(WebKit::ViewSnapshotStore::recordSnapshot):
(WebKit::ViewSnapshotStore::getSnapshot):
(WebKit::ViewSnapshotStore::discardSnapshots):
(WebKit::ViewSnapshot::clearImage):
(WebKit::ViewSnapshot::hasImage):
(WebKit::createIOSurfaceFromImage): Deleted.
(WebKit::ViewSnapshotStore::Snapshot::clearImage): Deleted.
(WebKit::ViewSnapshotStore::Snapshot::hasImage): Deleted.
Cache by image size instead of counts.

* WebKit2.xcodeproj/project.pbxproj:

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

6 years agoOptimize JSRopeString for resolving directly to AtomicString.
akling@apple.com [Mon, 5 May 2014 06:24:44 +0000 (06:24 +0000)]
Optimize JSRopeString for resolving directly to AtomicString.
<https://webkit.org/b/132548>

Source/JavaScriptCore:
If we know that the JSRopeString we are resolving is going to be used
as an AtomicString, we can try to avoid creating a new string.

We do this by first resolving the rope into a stack buffer, and using
that buffer as a key into the AtomicString table. If there is already
an AtomicString with the same characters, we reuse that instead of
constructing a new StringImpl.

JSString gains these two public functions:

- AtomicString toAtomicString()

    Returns an AtomicString, tries to avoid allocating a new string
    if possible.

- AtomicStringImpl* toExistingAtomicString()

    Returns a non-null AtomicStringImpl* if one already exists in the
    AtomicString table. If none is found, the rope is left unresolved.

Reviewed by Filip Pizlo.

* runtime/JSString.cpp:
(JSC::JSRopeString::resolveRopeInternal8):
(JSC::JSRopeString::resolveRopeInternal16):
(JSC::JSRopeString::resolveRopeToAtomicString):
(JSC::JSRopeString::clearFibers):
(JSC::JSRopeString::resolveRopeToExistingAtomicString):
(JSC::JSRopeString::resolveRope):
(JSC::JSRopeString::outOfMemory):
* runtime/JSString.h:
(JSC::JSString::toAtomicString):
(JSC::JSString::toExistingAtomicString):

Source/WebCore:
Add two bindings generator attributes for parameters to influence
the way that JS rope strings are resolved:

- AtomicString

    Generates code that avoids allocating a new StringImpl if there
    is already an existing AtomicString we can reuse.

- RequiresExistingAtomicString

    Generates code that fails immediately if the provided string
    is not found in the AtomicString table. This is now used for
    document.getElementById(), and works because any existing ID
    is guaranteed to be in the table.

Reviewed by Filip Pizlo.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
(JSValueToNative):
* bindings/scripts/IDLAttributes.txt:
* dom/Document.idl:

Source/WTF:
Add AtomicString::find([LU]Char*, unsigned length) helpers for finding
an existing AtomicString without a StringImpl on hand.

Reviewed by Filip Pizlo.

* wtf/text/AtomicString.h:
* wtf/text/AtomicString.cpp:
(WTF::AtomicString::find):

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

6 years agoUnreviewed, rolling out r168254.
akling@apple.com [Mon, 5 May 2014 06:10:03 +0000 (06:10 +0000)]
Unreviewed, rolling out r168254.

Very crashy on debug JSC tests.

Reverted changeset:

"jsSubstring() should be lazy"
https://bugs.webkit.org/show_bug.cgi?id=132556
http://trac.webkit.org/changeset/168254

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