WebKit-https.git
6 years agoFix build.
weinig@apple.com [Sun, 25 May 2014 19:34:40 +0000 (19:34 +0000)]
Fix build.

* UIProcess/API/Cocoa/WKPreferences.h:

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

6 years ago[WebKit2] Rework WebPreferencesStore to allow easier overriding of defaults
weinig@apple.com [Sun, 25 May 2014 18:59:41 +0000 (18:59 +0000)]
[WebKit2] Rework WebPreferencesStore to allow easier overriding of defaults
https://bugs.webkit.org/show_bug.cgi?id=133258

Reviewed by Anders Carlsson.

To support changing default values of preferences based on which API you are using (either
the legacy C-SPI or the Objective-C API), overhaul the WebPreferencesStore to use a single
HashMap of String -> Value (where Value is new type that can be a String, bool, uint32_t or double)
instead of four HashMaps.  This allows us to use two of these new HashMaps, one for the actual
set values, and one for overridden defaults. This new Value class will also allow easier incremental
updating of preferences in the future.

Other notable changes:
- Removed Float kind of preferences. There were none.
- Move StorageBlockingPolicy preference to the correct group, it's a uint32_t, not bool.

* Shared/WebPreferencesStore.cpp:
* Shared/WebPreferencesStore.h:

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

6 years agoAdd type-checked casts for TransformOperations
ddkilzer@apple.com [Sun, 25 May 2014 18:09:16 +0000 (18:09 +0000)]
Add type-checked casts for TransformOperations
<http://webkit.org/b/133217>

Reviewed by Simon Fraser.

Source/WebCore:

* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::validateTransformOperations):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::getTransformFunctionValue):
- Switch to type-checked casts.

* platform/graphics/transforms/IdentityTransformOperation.h:
* platform/graphics/transforms/Matrix3DTransformOperation.h:
* platform/graphics/transforms/MatrixTransformOperation.h:
* platform/graphics/transforms/PerspectiveTransformOperation.h:
* platform/graphics/transforms/RotateTransformOperation.h:
* platform/graphics/transforms/ScaleTransformOperation.h:
* platform/graphics/transforms/SkewTransformOperation.h:
* platform/graphics/transforms/TranslateTransformOperation.h:
- Add 'final' to class declaration.
- Add 'override' to overridden methods.
- Add type-checked cast via TRANSFORMOPERATION_TYPE_CASTS macro.
- Move implementation of operator==(const TransformOperation&)
  from header to source file so it is able to use a type-checked
  cast, and switch back to using a reference instead of a
  pointer.
- Add or update ASSERT in private constructor to check for
  correct OperationType in classes that represent multiple
  types.

* platform/graphics/transforms/Matrix3DTransformOperation.cpp:
(WebCore::Matrix3DTransformOperation::operator==): Added.

* platform/graphics/transforms/MatrixTransformOperation.cpp:
(WebCore::Matrix3DTransformOperation::operator==): Added.
(WebCore::MatrixTransformOperation::blend):
- Switch to type-checked casts and use a reference.

* platform/graphics/transforms/PerspectiveTransformOperation.cpp:
(WebCore::Matrix3DTransformOperation::operator==): Added.
(WebCore::PerspectiveTransformOperation::blend):
* platform/graphics/transforms/RotateTransformOperation.cpp:
(WebCore::Matrix3DTransformOperation::operator==): Added.
(WebCore::RotateTransformOperation::blend):
* platform/graphics/transforms/ScaleTransformOperation.cpp:
(WebCore::Matrix3DTransformOperation::operator==): Added.
(WebCore::ScaleTransformOperation::blend):
* platform/graphics/transforms/SkewTransformOperation.cpp:
(WebCore::Matrix3DTransformOperation::operator==): Added.
(WebCore::SkewTransformOperation::blend):
* platform/graphics/transforms/TranslateTransformOperation.cpp:
(WebCore::Matrix3DTransformOperation::operator==): Added.
(WebCore::TranslateTransformOperation::blend):
- Switch to type-checked casts.

* platform/graphics/transforms/TransformOperation.h:
(WebCore::TransformOperation::isRotateTransformOperationType):
(WebCore::TransformOperation::isScaleTransformOperationType):
(WebCore::TransformOperation::isSkewTransformOperationType):
(WebCore::TransformOperation::isTranslateTransformOperationType):
- Add type-checking methods used in constructors and type-checked
  casts.
- Define TRANSFORMOPERATION_TYPE_CASTS macro used by subclasses.

Source/WebKit2:

* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<TransformOperations>::encode):
- Switch to type-checked casts.

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

6 years agoUse type-checking FilterOperation casts in CoordinatedGraphicsArgumentCoders.cpp
ddkilzer@apple.com [Sun, 25 May 2014 18:00:09 +0000 (18:00 +0000)]
Use type-checking FilterOperation casts in CoordinatedGraphicsArgumentCoders.cpp
<http://webkit.org/b/133203>

Reviewed by Simon Fraser.

* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<WebCore::FilterOperations>::encode):
- Replace static_cast<>() operators with type-checking
  FilterOperation casts.
- Replace 'default' statement with 'case' statements so new
  filters added later require an explicit decision to be made.
(IPC::ArgumentCoder<WebCore::FilterOperations>::decode):
- Replace 'default' statement with 'case' statements so new
  filters added later require an explicit decision to be made.

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

6 years agoCrash in WebCore::TextResourceDecoder::checkForCSSCharset
ddkilzer@apple.com [Sun, 25 May 2014 16:37:38 +0000 (16:37 +0000)]
Crash in WebCore::TextResourceDecoder::checkForCSSCharset
<http://webkit.org/b/133257>
<rdar://problem/17027109>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test: fast/encoding/css-charset-missing-semi-colon-and-newline.html

* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForCSSCharset): Add early
return.

LayoutTests:

* fast/encoding/css-charset-missing-semi-colon-and-newline-expected.txt: Added.
* fast/encoding/css-charset-missing-semi-colon-and-newline.html: Added.

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

6 years ago[Mac] preload AVAssetTrack properties before asking for them
eric.carlson@apple.com [Sun, 25 May 2014 07:00:12 +0000 (07:00 +0000)]
[Mac] preload AVAssetTrack properties before asking for them
https://bugs.webkit.org/show_bug.cgi?id=133240

Reviewed by Jer Noble.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::assetTrackMetadataKeyNames): Add preferredTransform and naturalSize to the list
    of properties we preload.

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

6 years agoObject.prototype.toString() should use cached strings for null/undefined.
akling@apple.com [Sun, 25 May 2014 03:50:43 +0000 (03:50 +0000)]
Object.prototype.toString() should use cached strings for null/undefined.
<https://webkit.org/b/133261>

Normally, when calling Object.prototype.toString() on a regular object,
we'd cache the result of the stringification on the object's structure,
making repeated calls fast.

For null and undefined, we were not as smart. We'd instead construct a
new string with either "[object Null]" or "[object Undefined]" each time.

This was exposed by Dromaeo's JS library tests, where some prototype.js
subtests generate millions of strings this way.

This patch adds two VM-permanent cached strings to the SmallStrings.
Looks like ~10% speed-up on Dromaeo/jslib-traverse-prototype.html

Reviewed by Darin Adler.

* runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToString):
* runtime/SmallStrings.cpp:
(JSC::SmallStrings::SmallStrings):
(JSC::SmallStrings::initializeCommonStrings):
(JSC::SmallStrings::visitStrongReferences):
* runtime/SmallStrings.h:
(JSC::SmallStrings::nullObjectString):
(JSC::SmallStrings::undefinedObjectString):

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

6 years agoPotential null dereference in
jhoneycutt@apple.com [Sun, 25 May 2014 03:30:56 +0000 (03:30 +0000)]
Potential null dereference in
WebFrameLoaderClient::dispatchDidFailProvisionalLoad()
<https://bugs.webkit.org/show_bug.cgi?id=133193>

WebFrameLoaderClient::dispatchDidFailProvisionalLoad() calls the
InjectedBundleLoaderClient's didFailProvisionalLoadWithErrorForFrame()
before sending a message to the UI process that a provisional load has
failed. It's possible for the provisional document loader to become
null while calling into the InjectedBundleLoaderClient (as is the case
with the WebKitTestRunner's injected bundle), leading to a null
dereference when trying to send the DidFailProvisionalLoadForFrame
message.

Reviewed by Darin Adler.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
Get the navigation ID before calling into the injected bundle.

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

6 years agoRemove one of the CSSProperty constructor
commit-queue@webkit.org [Sun, 25 May 2014 03:12:27 +0000 (03:12 +0000)]
Remove one of the CSSProperty constructor
https://bugs.webkit.org/show_bug.cgi?id=131094

Patch by Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> on 2014-05-24
Reviewed by Darin Adler.

Remove one of the CSSProperty constructor, because it is obsolete.

* css/CSSProperty.h:
(WebCore::CSSProperty::CSSProperty): Deleted.
* css/StyleProperties.h:
(WebCore::StyleProperties::PropertyReference::toCSSProperty):

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

6 years agoRename ScrollingTreeScrollingNode's m_scrollPosition to make it clear that it's the...
simon.fraser@apple.com [Sat, 24 May 2014 20:40:04 +0000 (20:40 +0000)]
Rename ScrollingTreeScrollingNode's m_scrollPosition to make it clear that it's the value committed from the state tree
https://bugs.webkit.org/show_bug.cgi?id=133254

Reviewed by Tim Horton.

Source/WebCore:

Make ScrollingTreeScrollingNode::scrollPosition() pure virtual, and rename
the member variable and associated getter to make it clear that they relate
to the last committed scroll position.

* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::lastCommittedScrollPosition):
(WebCore::ScrollingTreeScrollingNode::scrollPosition): Deleted.

Source/WebKit2:

Override scrollPosition() on ScrollingTreeOverflowScrollingNodeIOS.

* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollPosition):

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

6 years agoShare some more ScrollingTreeScrollingNode code
simon.fraser@apple.com [Sat, 24 May 2014 20:40:03 +0000 (20:40 +0000)]
Share some more ScrollingTreeScrollingNode code
https://bugs.webkit.org/show_bug.cgi?id=133248

Reviewed by Sam Weinig.

Push scrollBy(), scrollByWithoutContentEdgeConstraints() and setScrollPosition()
down to ScrollingTreeFrameScrollingNode.

This requires that scrollPosition() return the right thing for each class, so make
it virtual. Future patches will reduce the confusion between the committed scroll
position and the one derived from layers.

* page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::scrollBy):
(WebCore::ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition):
* page/scrolling/ScrollingTreeFrameScrollingNode.h:
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::scrollPosition):
* page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
* page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
(WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints): Deleted.
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints): Deleted.

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

6 years agoScrolling tests should not try to dump pixels
simon.fraser@apple.com [Sat, 24 May 2014 20:40:00 +0000 (20:40 +0000)]
Scrolling tests should not try to dump pixels
https://bugs.webkit.org/show_bug.cgi?id=133245

Reviewed by Tim Horton.

dumpAsText(true) -> dumpAsText().

* platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-with-handler.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-with-handler.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-with-handler.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-with-handler.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-with-handler.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-with-handler.html:
* platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select.html:

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

6 years agoAX: fix coordinate mapping for iOS accessibility
cfleizach@apple.com [Sat, 24 May 2014 19:30:49 +0000 (19:30 +0000)]
AX: fix coordinate mapping for iOS accessibility
https://bugs.webkit.org/show_bug.cgi?id=133188

Reviewed by Sam Weinig.

Source/WebCore:
Make WebCore aware of the accessibility point/rect conversion methods.

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
* loader/EmptyClients.h:
* page/Chrome.cpp:
(WebCore::Chrome::accessibilityScreenToRootView):
(WebCore::Chrome::rootViewToAccessibilityScreen):
* page/Chrome.h:
* page/ChromeClient.h:
* platform/HostWindow.h:

Source/WebKit/mac:
* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::accessibilityScreenToRootView):
(WebChromeClient::rootViewToAccessibilityScreen):

Source/WebKit2:
Add in accessibility conversion methods that will check if the methods are present
(if accessibility is not on, they won't be)
and use those to convert points into the right coordinate space that VoiceOver is expecting.

* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::accessibilityScreenToRootView):
(WebKit::WebPageProxy::rootViewToAccessibilityScreen):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::accessibilityScreenToRootView):
(WebKit::PageClientImpl::rootViewToAccessibilityScreen):
* UIProcess/mac/PageClientImpl.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::accessibilityScreenToRootView):
(WebKit::WebChromeClient::rootViewToAccessibilityScreen):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::accessibilityScreenToRootView):
(WebKit::WebPage::rootViewToAccessibilityScreen):
* WebProcess/WebPage/WebPage.h:

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

6 years agoSubpixel rendering: Non-compositing transforms with subpixel coordinates paint to...
zalan@apple.com [Sat, 24 May 2014 14:50:42 +0000 (14:50 +0000)]
Subpixel rendering: Non-compositing transforms with subpixel coordinates paint to wrong position.
https://bugs.webkit.org/show_bug.cgi?id=133184
<rdar://problem/16745606>

Reviewed by Simon Fraser.

Snapping relative negative coordinate values should produce the same position as if they were
positive absolute coordinates.
When a child box gets positioned off of its containers towards top/left, its relative coordinates
become negative. Pixel snapping those negative values should produce the same
final painting position as if the child box was fixed positioned with positive coordinates.
Since halfway values always round away from zero, negative and positive halfway values
produce opposite rounding direction.
This patch ensures that negative halfway values round to the direction as if they were positive.

Source/WebCore:
Test: fast/layers/hidpi-floor-negative-coordinate-values-to-maintain-rounding-direction.html

* platform/LayoutUnit.h:
(WebCore::roundToDevicePixel):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerByApplyingTransform):

LayoutTests:
* fast/layers/hidpi-floor-negative-coordinate-values-to-maintain-rounding-direction-expected.html: Added.
* fast/layers/hidpi-floor-negative-coordinate-values-to-maintain-rounding-direction.html: Added.

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

6 years agoUpdate GTK references for some tests after bug 130322.
fred.wang@free.fr [Sat, 24 May 2014 11:49:40 +0000 (11:49 +0000)]
Update GTK references for some tests after bug 130322.
https://bugs.webkit.org/show_bug.cgi?id=130322

Unreviewed gardening.

* platform/gtk/mathml/opentype/vertical-LatinModern-expected.txt:
* platform/gtk/mathml/presentation/mo-stretch-expected.txt:

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

6 years agoMark some opentype MATH tests failing due to bad references.
fred.wang@free.fr [Sat, 24 May 2014 11:30:16 +0000 (11:30 +0000)]
Mark some opentype MATH tests failing due to bad references.
https://bugs.webkit.org/show_bug.cgi?id=130322

Unreviewed gardening.

* platform/mac/TestExpectations:

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

6 years agoREGRESSION(r165841): Messages sent before the child process is launched are never...
carlosgc@webkit.org [Sat, 24 May 2014 07:17:53 +0000 (07:17 +0000)]
REGRESSION(r165841): Messages sent before the child process is launched are never sent after r165841
https://bugs.webkit.org/show_bug.cgi?id=131675

Reviewed by Anders Carlsson.

Since r165841 the connection is opened after the pending messages
are sent, because connectionWillOpen might send messages that we
want to happen after the ones already pending. The problem is that
Connection::canSendOutgoingMessages() returns false when
connection hasn't been opened. We should ensure no messages are
sent by connectionWillOpen.

* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching): Open the
connection before sending pending messages.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::connectionWillOpen): Do not call
VisitedLinkProvider::addProcess() here because it tries to send a
message to the web process, but the connection hasn't be opened yet.
(WebKit::WebPageProxy::processDidFinishLaunching): Call
VisitedLinkProvider::addProcess() here instead.
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching): Call
WebPageProxy::processDidFinishLaunching() for every web page.

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

6 years agoUse size variants and glyph assembly from the MATH data.
fred.wang@free.fr [Sat, 24 May 2014 04:56:50 +0000 (04:56 +0000)]
Use size variants and glyph assembly from the MATH data.
https://bugs.webkit.org/show_bug.cgi?id=130322

Reviewed by Chris Fleizach.

Source/WebCore:
This patch modifies the RenderMathMLOperator code to use the MATH table
when one is provided in the current font on the <math> tag. More
precisely, the MathVariants table is used to draw a size variant or
a glyph assembly. The displaystyle attribute is not supported yet, so
for now large operators are always assumed to be in display style. The
MATH support does not work well with all platforms+fonts, so at the
moment the default font-family on the <math> is not changed.

Tests: mathml/opentype/large-operators-LatinModern.html
       mathml/opentype/opentype-stretchy.html
       mathml/opentype/vertical-LatinModern.html

* css/mathml.css: We only specify the default font-family on the math root, so that people can easily style the mathematics.
For now, old fonts without the MATH table are still used as the default.
(math):
(math, mfenced > *): Deleted.
(mo, mfenced): Deleted.
* platform/graphics/SimpleFontData.cpp: don't return the math data if the font is loading.
(WebCore::SimpleFontData::mathData):
* platform/graphics/opentype/OpenTypeMathData.cpp: update #ifdef so that disabling ENABLE_OPENTYPE_MATH won't lead to errors with unused parameters.
(WebCore::OpenTypeMathData::OpenTypeMathData):
(WebCore::OpenTypeMathData::getMathConstant):
(WebCore::OpenTypeMathData::getItalicCorrection):
(WebCore::OpenTypeMathData::getMathVariants):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::boundsForGlyph):
(WebCore::RenderMathMLOperator::heightForGlyph):
(WebCore::RenderMathMLOperator::advanceForGlyph):
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): We handle preferred width of size variants.
(WebCore::RenderMathMLOperator::shouldAllowStretching): This function now only returns whether the operator will stretch and no longer has side effect.
(WebCore::RenderMathMLOperator::getGlyphAssemblyFallBack): We add a function to convert from the MathVariant table data to the format supported by RenderMathMLOperator.
(WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): We add a function to get the glyph that will be used for large operators in display style.
(WebCore::RenderMathMLOperator::findStretchyData): We make this function handle size variants.
(WebCore::RenderMathMLOperator::updateStyle): We handle size variants.
(WebCore::RenderMathMLOperator::paint): We handle size variants.
* rendering/mathml/RenderMathMLOperator.h:

LayoutTests:
This adds some pixel tests for large operators and vertical stretchy operators.

* mathml/opentype/LICENSE-LatinModern.txt: Added.
* mathml/opentype/large-operators-LatinModern.html: Added.
* mathml/opentype/latinmodern-math.woff: Added.
* mathml/opentype/opentype-stretchy.html: Added.
* mathml/opentype/stretchy.woff: Added.
* mathml/opentype/vertical-LatinModern.html: Added.
* platform/efl/mathml/opentype/large-operators-LatinModern-expected.png: Added.
* platform/efl/mathml/opentype/large-operators-LatinModern-expected.txt: Added.
* platform/efl/mathml/opentype/opentype-stretchy-expected.png: Added.
* platform/efl/mathml/opentype/opentype-stretchy-expected.txt: Added.
* platform/efl/mathml/opentype/vertical-LatinModern-expected.png: Added.
* platform/efl/mathml/opentype/vertical-LatinModern-expected.txt: Added.
* platform/gtk/mathml/opentype/large-operators-LatinModern-expected.png: Added.
* platform/gtk/mathml/opentype/large-operators-LatinModern-expected.txt: Added.
* platform/gtk/mathml/opentype/opentype-stretchy-expected.png: Added.
* platform/gtk/mathml/opentype/opentype-stretchy-expected.txt: Added.
* platform/gtk/mathml/opentype/vertical-LatinModern-expected.png: Added.
* platform/gtk/mathml/opentype/vertical-LatinModern-expected.txt: Added.
* platform/gtk/mathml/presentation/mo-stretch-expected.png: update reference due to change in mathml.css
* platform/gtk/mathml/presentation/mo-stretch-expected.txt: ditto
* platform/mac/mathml/opentype/large-operators-LatinModern-expected.txt: Added.
* platform/mac/mathml/opentype/opentype-stretchy-expected.txt: Added.
* platform/mac/mathml/opentype/vertical-LatinModern-expected.txt: Added.
* platform/mac-wk2/mathml/opentype/large-operators-LatinModern-expected.txt: Added.
* platform/mac-wk2/mathml/opentype/opentype-stretchy-expected.txt: Added.
* platform/mac-wk2/mathml/opentype/vertical-LatinModern-expected.txt: Added.
* platform/win/TestExpectations: Mark the OpenType MATH tests as failing

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

6 years agoREGRESSION: Rubberbanding out jumps to top left corner on google.com
benjamin@webkit.org [Sat, 24 May 2014 04:35:51 +0000 (04:35 +0000)]
REGRESSION: Rubberbanding out jumps to top left corner on google.com
https://bugs.webkit.org/show_bug.cgi?id=133253
<rdar://problem/17025664>

Patch by Ian Henderson <ianh@apple.com> on 2014-05-23
Reviewed by Benjamin Poulain.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
Avoid deceleration during zooming to work around a UIKit bug.

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

6 years ago[iOS][WK2] Avoid updating the view from the viewport configuration unnecessarily
benjamin@webkit.org [Sat, 24 May 2014 04:25:09 +0000 (04:25 +0000)]
[iOS][WK2] Avoid updating the view from the viewport configuration unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=133255
<rdar://problem/16890926>

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

All the updates were mostly harmless since they are pretty cheap, but they can be
very annoying for debugging.

This patch skips viewportUpdates in the trivial cases.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setMinimumLayoutSizeOverride:]):
(-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mainFrameDidLayout):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportPropertiesDidChange):

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

6 years ago[iOS][WK2] The page scale factor randomly resets to initial scale when editing
benjamin@webkit.org [Sat, 24 May 2014 03:45:00 +0000 (03:45 +0000)]
[iOS][WK2] The page scale factor randomly resets to initial scale when editing
https://bugs.webkit.org/show_bug.cgi?id=133244

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

We were never telling the WebProcess that zoom is used triggered. As a result, the ViewportConfiguration was free
to reset the scale whenever it felt like it. The fix is to call willStartUserTriggeredZoom before changing the scale.

This patch also split _willStartUserTriggeredScrollingOrZooming from willStartUserTriggeredZoom
and rename it to willStartPanOrPinchGesture. This is just a tiny cleanup since the only thing left in _willStartUserTriggeredScrollingOrZooming
was gesture related.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _zoomToFocusRect:WebCore::selectionRect:WebCore::fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
(-[WKWebView scrollViewWillBeginZooming:withView:]):
(-[WKWebView scrollViewWillBeginDragging:]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView scrollViewWillBeginDragging:]):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView willStartUserTriggeredZoom]):
(-[WKContentView willStartUserTriggeredScroll]): Deleted.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView willStartPanOrPinchGesture]):
(-[WKContentView _willStartUserTriggeredScrollingOrZooming]): Deleted.

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

6 years agoREGRESSION (iOS WebKit2): requestAnimationFrame fires more than once between layer...
timothy_horton@apple.com [Sat, 24 May 2014 02:17:59 +0000 (02:17 +0000)]
REGRESSION (iOS WebKit2): requestAnimationFrame fires more than once between layer tree commits
https://bugs.webkit.org/show_bug.cgi?id=132794
<rdar://problem/16877909>

Reviewed by Simon Fraser.

Virtualize DisplayRefreshMonitor so that WebKit2 can implement its own DisplayRefreshMonitor for UI-side compositing views.
This allows the synchronization of requestAnimationFrame callbacks with UI-side compositing painting.

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:

* page/ChromeClient.h:
(WebCore::ChromeClient::graphicsLayerFactory):
(WebCore::ChromeClient::createDisplayRefreshMonitor):
* platform/graphics/DisplayRefreshMonitorFactory.h: Added.
* platform/graphics/GraphicsLayerUpdater.cpp:
(WebCore::GraphicsLayerUpdater::createDisplayRefreshMonitor):
* platform/graphics/GraphicsLayerUpdater.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::createDisplayRefreshMonitor):
* rendering/RenderLayerCompositor.h:
Give the ChromeClient a chance to provide us with a custom DisplayRefreshMonitor.
If it does not, we'll fall back to making a DisplayRefreshMonitorMac or
DisplayRefreshMonitorIOS depending on the platform.

* dom/ScriptedAnimationController.cpp:
* dom/ScriptedAnimationController.h:
* platform/graphics/DisplayRefreshMonitor.cpp:
* platform/graphics/DisplayRefreshMonitor.h:
* platform/graphics/DisplayRefreshMonitorClient.cpp: Added.
* platform/graphics/DisplayRefreshMonitorClient.h: Added.
* platform/graphics/DisplayRefreshMonitorManager.cpp: Added.
* platform/graphics/DisplayRefreshMonitorManager.h: Added.
Split DisplayRefreshMonitor.cpp into one file per class.
Use references in a few places.
Remove some useless comments.

* platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::displayDidRefresh):
Use takeAny() and remove a FIXME about it not existing.

* platform/graphics/DisplayRefreshMonitorClient.cpp: Added.
(WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded):
Use an early return instead of having the whole function body in an if().

* platform/graphics/ios/DisplayRefreshMonitorIOS.h: Added.
* platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
* platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
* platform/graphics/mac/DisplayRefreshMonitorMac.h: Added.
Virtualize DisplayRefreshMonitorIOS and DisplayRefreshMonitorMac,
and move things specific to each of them out of DisplayRefreshMonitor itself.

* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createDisplayRefreshMonitor):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::graphicsLayerFactory):
(WebKit::DrawingArea::createDisplayRefreshMonitor):
Plumb the DisplayRefreshMonitor request through to the DrawingArea.
RemoteLayerTreeDrawingArea will implement and return a RemoteLayerTreeDisplayRefreshMonitor.

* WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.h: Added.
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::create):
* WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.mm: Added.
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::RemoteLayerTreeDisplayRefreshMonitor):
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::~RemoteLayerTreeDisplayRefreshMonitor):
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback):
When requesting a display refresh callback, schedule a layer commit.
It may end up being empty, but will still call us back with a didUpdate,
upon which we'll fire the callback.

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::didUpdateLayers):

* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::createDisplayRefreshMonitor):
(WebKit::RemoteLayerTreeDrawingArea::willDestroyDisplayRefreshMonitor):
Keep track of the set of DisplayRefreshMonitors.

(WebKit::RemoteLayerTreeDrawingArea::didUpdate):
Fire requestAnimationFrame callbacks once the UI process commits the new layer tree.

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

6 years agoCSS JIT: Apply backtracking optimization to adjacent backtracking
commit-queue@webkit.org [Sat, 24 May 2014 02:11:17 +0000 (02:11 +0000)]
CSS JIT: Apply backtracking optimization to adjacent backtracking
https://bugs.webkit.org/show_bug.cgi?id=132951

Patch by Yusuke Suzuki <utatane.tea@gmail.com> on 2014-05-23
Reviewed by Benjamin Poulain.

Apply the backtracking optimization to the adjacent backtracking.
This optimization is already done for the descendant backtracking.
We apply this to the adjacent backtracking similarly.

Source/WebCore:
Test: fast/selectors/backtracking-adjacent-optimized.html

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
(WebCore::SelectorCompiler::solveAdjacentBacktrackingActionForDirectAdjacent):
(WebCore::SelectorCompiler::solveBacktrackingAction):
(WebCore::SelectorCompiler::computeBacktrackingStartOffsetInChain):
(WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
(WebCore::SelectorCompiler::computeBacktrackingWidthFromIndirectAdjacent):
(WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
(WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant): Deleted.

LayoutTests:
* fast/selectors/backtracking-adjacent-optimized-expected.txt: Added.
* fast/selectors/backtracking-adjacent-optimized.html: Added.

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

6 years agoMake CSS JIT run on ARM64.
achristensen@apple.com [Sat, 24 May 2014 01:06:16 +0000 (01:06 +0000)]
Make CSS JIT run on ARM64.
https://bugs.webkit.org/show_bug.cgi?id=133156

Reviewed by Benjamin Poulain.

* cssjit/FunctionCall.h:
(WebCore::FunctionCall::saveAllocatedRegisters):
(WebCore::FunctionCall::restoreAllocatedRegisters):
Use StackAllocator's new push and pop functions to push and pop a vector instead of iterating it.
* cssjit/RegisterAllocator.h:
(WebCore::RegisterAllocator::reserveCalleeSavedRegisters):
(WebCore::RegisterAllocator::restoreCalleeSavedRegisters):
Return a vector of registers to allocate instead of doing the allocation to make the RegisterAllocator
not need to know about the StackAllocator and to use the new vector push and pop functions.
(WebCore::RegisterAllocator::~RegisterAllocator):
Store RegisterIDs instead of StackReferences to avoid needing to know about the stack.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
Removed the requirement for assert to be disabled to print disassembly when debugging css jit.
(WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
Added to correctly push the link register and frame pointer.
This is required if the jit code calls a function on arm64 and helpful for debugging tools on x86_64.
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
Generate the prologue and epilogue which respectively push and pop
the link register, frame pointer, and callee saved registers if needed.
* cssjit/StackAllocator.h:
(WebCore::StackAllocator::push):
(WebCore::StackAllocator::pop):
Added new vector push and pop functions to use stp and ldb instructions on arm64.

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

6 years agoHide fullscreen immediately when switching tabs.
commit-queue@webkit.org [Sat, 24 May 2014 00:23:15 +0000 (00:23 +0000)]
Hide fullscreen immediately when switching tabs.
https://bugs.webkit.org/show_bug.cgi?id=133239

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

Source/WebCore:
This change allows fullscreen to disappear immediately while still cleaning
up fullscreen normally.

* WebCore.exp.in:
* platform/ios/WebVideoFullscreenControllerAVKit.h:
renamed function to requestHideAndExitFullscreen

* platform/ios/WebVideoFullscreenControllerAVKit.mm:
renamed function to requestHideAndExitFullscreen

(-[WebVideoFullscreenController requestHideAndExitFullscreen]):
rename of requestExitFullscreen that also hides.

(-[WebVideoFullscreenController requestExitFullscreen]): Deleted.
* platform/ios/WebVideoFullscreenInterfaceAVKit.h: declare requestHideAndExitFullscreen()
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
this hides the window before requesting exitfullscreen from the model.

Source/WebKit/mac:
Renamed a function to better describe it's new functionality.

* WebView/WebView.mm:
(-[WebView viewDidMoveToWindow]):
now calls: requestHideAndExitFullscreen

Source/WebKit2:
Renamed a function to better describe it's new functionality.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
now calls: requestHideAndExitFullscreen

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

6 years agoREGRESSION (WebKit2): Keyboard disappears/appears automatically between text boxes.
enrica@apple.com [Sat, 24 May 2014 00:18:32 +0000 (00:18 +0000)]
REGRESSION (WebKit2): Keyboard disappears/appears automatically between text boxes.
https://bugs.webkit.org/show_bug.cgi?id=133243
<rdar://problem/16761913>

Reviewed by Benjamin Poulain.

We need to ensure that when an element loses focus and another one gets it,
this is handled in one single message in the UI process to avoid seeing
the keyboard animating in and out.
This is accomplished by always postponing the blur notification until all events
have been processed.
If a new node is focused before the delayed blur notification is sent to the UI
process, the message we send includes both blur and focus notification. In this case,
the postponed blur notification is not sent.

* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::startAssistingNode):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
(-[WKContentView _startAssistingNode:userIsInteracting:userObject:]): Deleted.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::startAssistingNode):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::elementDidFocus):
(WebKit::WebPage::elementDidBlur):

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

6 years agoREGRESSION(r169265): sh: line 0: cd: ../.vm
msaboff@apple.com [Sat, 24 May 2014 00:13:43 +0000 (00:13 +0000)]
REGRESSION(r169265): sh: line 0: cd: ../.vm
https://bugs.webkit.org/show_bug.cgi?id=133242

Rubber stamped by Geoffrey Garen.

Added missing shell escapes '\' required as part of previous fix.

* Scripts/run-jsc-stress-tests:

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

6 years agoRemove an assertion.
andersca@apple.com [Sat, 24 May 2014 00:12:54 +0000 (00:12 +0000)]
Remove an assertion.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):

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

6 years ago[iOS] WKPDFView should have a page indicator
timothy_horton@apple.com [Fri, 23 May 2014 23:52:12 +0000 (23:52 +0000)]
[iOS] WKPDFView should have a page indicator
https://bugs.webkit.org/show_bug.cgi?id=133109
<rdar://problem/16383003>

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setHasCustomContentView:loadedMIMEType:WTF::]):
(-[WKWebView _setObscuredInsets:]):
Forward obscured insets changes to the custom content view.

(-[WKWebView _updateScrollViewBackground]):
If we have a custom content view, use its background instead of the
(likely nonexistent) page's when updaing the scroll view's background color.

* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/Cocoa/WKWebViewContentProvider.h:
* UIProcess/Cocoa/WKWebViewContentProviderDelegate.h: Added.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setInsetForOverlaidAccessoryViews:]):
Add SPI for clients to inform us about potential overlaid accessory views
which should be taken into account e.g. for positioning the page indicator.

Add a view that sits fixed on top of the WKWebView, ignores interaction,
but provides the WKWebViewContentProvider a place to install views
that don't scroll along with the content.

* UIProcess/ios/WKPDFPageNumberIndicator.h: Added.
* UIProcess/ios/WKPDFPageNumberIndicator.mm: Added.
(-[WKPDFPageNumberIndicator initWithFrame:]):
(-[WKPDFPageNumberIndicator dealloc]):
(-[WKPDFPageNumberIndicator setCurrentPageNumber:]):
(-[WKPDFPageNumberIndicator setPageCount:]):
(-[WKPDFPageNumberIndicator show]):
(-[WKPDFPageNumberIndicator hide:]):
(-[WKPDFPageNumberIndicator moveToPoint:animated:]):
(-[WKPDFPageNumberIndicator sizeThatFits:]):
(-[WKPDFPageNumberIndicator _updateLabel]):
(-[WKPDFPageNumberIndicator _makeRoundedCorners]):
Add a page number indicator.

* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView dealloc]):
(-[WKPDFView web_setScrollView:]):
(-[WKPDFView _revalidateViews]):
(-[WKPDFView _offsetForPageNumberIndicator]):
(-[WKPDFView _updatePageNumberIndicator]):
(-[WKPDFView web_setObscuredInsets:]):
(-[WKPDFView web_setInsetForOverlaidAccessoryViews:]):
(-[WKPDFView web_setFixedOverlayView:]):
(-[WKPDFView _computePageAndDocumentFrames]):
Update the page number indicator when the topmost visible page changes.
Move the page number indicator around when the obscured insets change.

* WebKit2.xcodeproj/project.pbxproj:

* English.lproj/Localizable.strings:

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

6 years agoRevert the erroneous change committed in r169286.
rniwa@webkit.org [Fri, 23 May 2014 23:32:38 +0000 (23:32 +0000)]
Revert the erroneous change committed in r169286.

* Scripts/webkitpy/performance_tests/perftest.py:
(PerfTest._run_with_driver):

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

6 years agoFix test failures on the bot.
andersca@apple.com [Fri, 23 May 2014 23:25:52 +0000 (23:25 +0000)]
Fix test failures on the bot.

* UIProcess/API/Cocoa/WKProcessPool.mm:
(websiteDataDirectoryURL):
If we have no bundle identifier, use the process name.

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

6 years agoPerformance testing, diamond-square terrain generation + canvas
ggaren@apple.com [Fri, 23 May 2014 22:37:30 +0000 (22:37 +0000)]
Performance testing, diamond-square terrain generation + canvas
https://bugs.webkit.org/show_bug.cgi?id=133054

Reviewed by Ryosuke Niwa.

This test was written by Hunter Loftis. It originally appeared on his
blog @ <http://www.playfuljs.com/realistic-terrain-in-130-lines/>.

I did a bit of editing for format and benchmark suitability.

* Canvas/terrain.html: Added.

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

6 years agorun-perf-tests should ignore whitespace lines when snarfing test output
ggaren@apple.com [Fri, 23 May 2014 22:37:19 +0000 (22:37 +0000)]
run-perf-tests should ignore whitespace lines when snarfing test output
https://bugs.webkit.org/show_bug.cgi?id=133238

Reviewed by Ryosuke Niwa.

Required for PerformanceTests/Canvas/terrain.html.

* Scripts/webkitpy/performance_tests/perftest.py:
(PerfTest._run_with_driver):
(PerfTest):

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

6 years agoRemove operationCallGetter
mhahnenberg@apple.com [Fri, 23 May 2014 22:32:59 +0000 (22:32 +0000)]
Remove operationCallGetter

Rubber stamped by Filip Pizlo.

Nobody calls this function.

* JavaScriptCore.order:
* jit/JITOperations.cpp:
* jit/JITOperations.h:

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

6 years agoTemplatize GC's destructor invocation for dtor type.
akling@apple.com [Fri, 23 May 2014 22:14:20 +0000 (22:14 +0000)]
Templatize GC's destructor invocation for dtor type.
<https://webkit.org/b/133231>

Get rid of a branch in callDestructor() by templatizing it for
the DestructorType. Removed JSCell::methodTableForDestruction()
since this was the only call site and it was jumping through
a bunch of unnecessary hoops.

Reviewed by Geoffrey Garen.

* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::callDestructor):
(JSC::MarkedBlock::specializedSweep):
* heap/MarkedBlock.h:
* runtime/JSCell.h:
* runtime/JSCellInlines.h:
(JSC::JSCell::methodTableForDestruction): Deleted.

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

6 years agoSupport inline caching of RegExpMatchesArray.length
akling@apple.com [Fri, 23 May 2014 22:13:50 +0000 (22:13 +0000)]
Support inline caching of RegExpMatchesArray.length
<https://webkit.org/b/133234>

Give RegExpMatchesArray.length the same treatment as JSArray in
repatch so we don't have to go out of line on every access.

~13% speed-up on Octane/regexp.

Reviewed by Geoffrey Garen.

* jit/Repatch.cpp:
(JSC::tryCacheGetByID):
* runtime/RegExpMatchesArray.h:
(JSC::isRegExpMatchesArray):

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

6 years agoREGRESSION (iOS WebKit2): Autocorrection is not accurate when changing selection.
enrica@apple.com [Fri, 23 May 2014 21:49:36 +0000 (21:49 +0000)]
REGRESSION (iOS WebKit2): Autocorrection is not accurate when changing selection.
https://bugs.webkit.org/show_bug.cgi?id=133237
<rdar://problem/16655776>

Reviewed by Ryosuke Niwa.

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

When the selection is changed with a gesture in an editable element,
we must notify the keyboard to make sure the autocorrection engine
updates its typing context. WKContentView must implement
beginSelectionChange and endSelectionChange to call into
the keyboard layer.

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

6 years ago[iOS] WK2: Provide implementation for windowFrame
bfulgham@apple.com [Fri, 23 May 2014 21:32:40 +0000 (21:32 +0000)]
[iOS] WK2: Provide implementation for windowFrame
https://bugs.webkit.org/show_bug.cgi?id=133205
<rdar://problem/16894890>

Reviewed by Benjamin Poulain.

* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::windowFrame): Added.
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::convertToUserSpace): Added.

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

6 years agoRemove invalid ASSERT in wordRangeForPosition.
enrica@apple.com [Fri, 23 May 2014 21:32:39 +0000 (21:32 +0000)]
Remove invalid ASSERT in wordRangeForPosition.
https://bugs.webkit.org/show_bug.cgi?id=133232

Reviewed by Ryosuke Niwa.

In WK2 for iOS this function is called on every selection change.
The selection could be set by Javascript in an element that is not visible.
In that case we won't be able to create a VisiblePosition therefore wordRangeForPosition
should not ASSERT that the VisiblePosition is not null, but rather
perform an early return if it is null.

* editing/VisibleUnits.cpp:
(WebCore::wordRangeFromPosition):

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

6 years agoRebaseline two tests affected by r169229.
simon.fraser@apple.com [Fri, 23 May 2014 20:32:20 +0000 (20:32 +0000)]
Rebaseline two tests affected by r169229.

* platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
* platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:

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

6 years ago[CSS Grid Layout] Use gridRowCount() and gridColumnCount() when possible
rego@igalia.com [Fri, 23 May 2014 20:31:21 +0000 (20:31 +0000)]
[CSS Grid Layout] Use gridRowCount() and gridColumnCount() when possible
https://bugs.webkit.org/show_bug.cgi?id=133213

Reviewed by Sergio Villar Senin.

Use gridRowCount() and gridColumnCount() instead of m_grid.size() and
m_grid[0].size() to make the code more descriptive and easier to
understand.

No new tests (No change in behavior).

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::growGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):

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

6 years agoREGRESSION (r153917): Chart for the Category Explorer within Quicken Essentials
ap@apple.com [Fri, 23 May 2014 19:51:25 +0000 (19:51 +0000)]
REGRESSION (r153917): Chart for the Category Explorer within Quicken Essentials
does not draw until you force a redraw
https://bugs.webkit.org/show_bug.cgi?id=133228
<rdar://problem/15221231>

Reviewed by Simon Fraser.

* platform/RuntimeApplicationChecks.cpp: (WebCore::applicationIsQuickenEssentials):
* platform/RuntimeApplicationChecks.h:
Added a check for Quicken Essentials.

* platform/mac/WidgetMac.mm: (WebCore::Widget::paint): Don't do an early return
for Quicken Essentials, it depends on drawing to update its layer.

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

6 years agoREGRESSION(r169105): fast/regions/cssom/region-range-for-box-crash.html is more crash...
mihnea@adobe.com [Fri, 23 May 2014 19:01:27 +0000 (19:01 +0000)]
REGRESSION(r169105): fast/regions/cssom/region-range-for-box-crash.html is more crashy than before
https://bugs.webkit.org/show_bug.cgi?id=133124

Reviewed by David Hyatt.

Source/WebCore:
When adjusting the end points of a subtree selection in the case of a document
with named flows, we have to make sure that we pass the computed end
points to the visible selection algorithm only if the end points are
part of the same subtree, otherwise assume a selection clear behavior.

The test fast/regions/cssom/region-range-for-box-crash.html is used to
test this behavior.

* rendering/SelectionSubtreeRoot.cpp:
(WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):
(WebCore::SelectionSubtreeRoot::selectionStartEndPositions): Moved to header file.
* rendering/SelectionSubtreeRoot.h:
(WebCore::SelectionSubtreeRoot::selectionStartEndPositions):

LayoutTests:
Unskip the test file that used to crash.

* TestExpectations:

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

6 years agoUse a per app directory structure for website data
andersca@apple.com [Fri, 23 May 2014 18:59:56 +0000 (18:59 +0000)]
Use a per app directory structure for website data
https://bugs.webkit.org/show_bug.cgi?id=133125
<rdar://problem/16830143>

Reviewed by Dan Bernstein, Sam Weinig and Tim Horton.

Put website data in subdirectories of ~/Library/WebKit/<bundle ID>/WebsiteData.
We use "LocalStorage", "WebSQL", and "IndexedDB" subdirectories.

* UIProcess/API/Cocoa/WKProcessPool.mm:
(websiteDataDirectoryURL):
(-[WKProcessPool _initWithConfiguration:]):

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

6 years agoRebaseline some tests after r169260
mhahnenberg@apple.com [Fri, 23 May 2014 18:36:55 +0000 (18:36 +0000)]
Rebaseline some tests after r169260

* fast/dom/Geolocation/enabled-expected.txt:
* fast/dom/Geolocation/script-tests/enabled.js:
* js/dom/delete-syntax-expected.txt:
* js/dom/script-tests/delete-syntax.js:

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

6 years agoREGRESSION (r169241) Crash running run-jsc-stress-tests on EFL ARM
msaboff@apple.com [Fri, 23 May 2014 18:05:57 +0000 (18:05 +0000)]
REGRESSION (r169241) Crash running run-jsc-stress-tests on EFL ARM
https://bugs.webkit.org/show_bug.cgi?id=133223

Reviewed by Geoffrey Garen.

Change runAndMonitorTestRunnerCommand() to convert the *cmd argument to a
string before calling IO.popen() to work with older versions of ruby.
Changed the remote path in runShellTestRunner to quote the command
string we want to run via ssh so that it will work correctly with array
to string conversion needed for popen.

* Scripts/run-jsc-stress-tests:

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

6 years agoreset m_havePreparedToPlay when changing media engines.
commit-queue@webkit.org [Fri, 23 May 2014 18:02:11 +0000 (18:02 +0000)]
reset m_havePreparedToPlay when changing media engines.
https://bugs.webkit.org/show_bug.cgi?id=133199

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

If a play request comes in before the media player is created, m_havePreparedToPlay
is set to true. But when the player is created, this prevents the new player from
getting the prepare call.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): set m_havePreparedToPlay false.

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

6 years agoUnreviewed. Skip some snapshotting tests failing after r169173.
roger_fong@apple.com [Fri, 23 May 2014 17:52:43 +0000 (17:52 +0000)]
Unreviewed. Skip some snapshotting tests failing after r169173.
https://bugs.webkit.org/show_bug.cgi?id=133227.

* platform/mac-wk2/TestExpectations:

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

6 years agoUnreviewed EFL gardening
m.pakula@samsung.com [Fri, 23 May 2014 17:22:56 +0000 (17:22 +0000)]
Unreviewed EFL gardening

* platform/efl/TestExpectations: Add test expectation for tests faling after r167840.
* platform/efl/fast/borders/border-antialiasing-expected.png: Rebaseline after r168046.
* platform/efl/fast/borders/border-antialiasing-expected.txt: Ditto.
* platform/efl/fast/forms/fieldset-align-expected.txt: Rebaseline after r168575.

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

6 years agoRemove 'css-shaders' option from the build-webkit
commit-queue@webkit.org [Fri, 23 May 2014 17:11:48 +0000 (17:11 +0000)]
Remove 'css-shaders' option from the build-webkit
https://bugs.webkit.org/show_bug.cgi?id=133212

Patch by Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> on 2014-05-23
Reviewed by Daniel Bates.

Original CSS shaders removed in r162644.

* Scripts/webkitperl/FeatureList.pm:

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

6 years agoNavigator object needs to have properties directly on the instance object
oliver@apple.com [Fri, 23 May 2014 17:08:14 +0000 (17:08 +0000)]
Navigator object needs to have properties directly on the instance object
https://bugs.webkit.org/show_bug.cgi?id=133221

Reviewed by Mark Lam.

Flag the Navigator object as requiring properties to be on the instance
as there were a few compatibility issues when on the prototype.

* bindings/scripts/CodeGeneratorJS.pm:
(InterfaceRequiresAttributesOnInstance):

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

6 years ago[Cocoa] WKNavigationResponsePrivate.h is internal
mitz@apple.com [Fri, 23 May 2014 16:42:56 +0000 (16:42 +0000)]
[Cocoa] WKNavigationResponsePrivate.h is internal
https://bugs.webkit.org/show_bug.cgi?id=133218

Reviewed by Dean Jackson.

* WebKit2.xcodeproj/project.pbxproj: Promote WKNavigationResponsePrivate.h to private.

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

6 years agoSwitch CSSGradientValue to use more references
simon.fraser@apple.com [Fri, 23 May 2014 16:13:03 +0000 (16:13 +0000)]
Switch CSSGradientValue to use more references
https://bugs.webkit.org/show_bug.cgi?id=133206

Reviewed by Andreas Kling.

Switch from pointers to references in various places.

* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::image):
(WebCore::CSSGradientValue::addStops):
(WebCore::positionFromValue):
(WebCore::CSSGradientValue::computeEndPoint):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::resolveRadius):
(WebCore::CSSRadialGradientValue::createGradient):
* css/CSSGradientValue.h:

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

6 years agoSubpixel rendering: Make webkit-box-shadow painting subpixel aware.
zalan@apple.com [Fri, 23 May 2014 14:27:19 +0000 (14:27 +0000)]
Subpixel rendering: Make webkit-box-shadow painting subpixel aware.
https://bugs.webkit.org/show_bug.cgi?id=133201
<rdar://problem/16072830>

Reviewed by Simon Fraser.

This patch enables webkit-box-shadow to be painted on a subpixel position. However, we
still truncate -webkit-box-shadow property values. Tracked here: http://webkit.org/b/133202

Source/WebCore:
Test: fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position.html

* platform/graphics/FloatRoundedRect.cpp:
(WebCore::FloatRoundedRect::inflateWithRadii): same as in from RoundedRect.
(WebCore::FloatRoundedRect::adjustRadii): same as in from RoundedRect.
* platform/graphics/FloatRoundedRect.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBoxShadow):

LayoutTests:
Currently not ref-testable.

* fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position.html: Added.
* platform/mac/fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position-expected.png: Added.
* platform/mac/fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position-expected.txt: Added.

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

6 years ago[GTK] GObject DOM bindings API break test should fail in the bots when the command...
carlosgc@webkit.org [Fri, 23 May 2014 10:29:21 +0000 (10:29 +0000)]
[GTK] GObject DOM bindings API break test should fail in the bots when the command fails to run
https://bugs.webkit.org/show_bug.cgi?id=133209

Reviewed by Sergio Villar Senin.

Return FAILURE when the command failed to run.

* BuildSlaveSupport/build.webkit.org-config/master.cfg:
(RunGtkWebKitGObjectDOMBindingsAPIBreakTests.evaluateCommand):

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

6 years ago[UNIX] Reorganize and cleanup main functions of GTK and EFL ports
carlosgc@webkit.org [Fri, 23 May 2014 09:57:56 +0000 (09:57 +0000)]
[UNIX] Reorganize and cleanup main functions of GTK and EFL ports
https://bugs.webkit.org/show_bug.cgi?id=131024

Reviewed by Gustavo Noronha Silva.

Move main function implementation files to <process-dir>/EntryPoint/unix/<ProcessName>Main.cpp
files that are now shared by GTK and EFL ports. These files call a
main method that wraps a new method ChildProcessMain that contains
the common code and uses a helper class for the platform specific
code. GTK+ and EFL ports implement that helper class for every process type.

* NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp: Renamed from Source/WebKit2/efl/MainEfl.cpp.
(main):
* NetworkProcess/efl/NetworkProcessMainEfl.cpp: Renamed from Source/WebKit2/unix/NetworkMainUnix.cpp.
(WebKit::NetworkProcessMainUnix):
* NetworkProcess/gtk/NetworkProcessMainGtk.cpp: Renamed from Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp.
(WebKit::NetworkProcessMainUnix):
* NetworkProcess/unix/NetworkProcessMainUnix.h:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PluginProcess/EntryPoint/unix/PluginProcessMain.cpp: Renamed from Source/WebKit2/unix/PluginMainUnix.cpp.
(main):
* PluginProcess/unix/PluginProcessMainUnix.cpp:
(WebKit::webkitXError):
(WebKit::PluginProcessMainUnix):
* PluginProcess/unix/PluginProcessMainUnix.h:
* Shared/unix/ChildProcessMain.cpp: Copied from Source/WebKit2/WebProcess/efl/WebProcessMainEfl.h.
(WebKit::ChildProcessMainBase::parseCommandLine):
* Shared/unix/ChildProcessMain.h: Renamed from Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.h.
(WebKit::ChildProcessMainBase::platformInitialize):
(WebKit::ChildProcessMainBase::platformFinalize):
(WebKit::ChildProcessMainBase::initializationParameters):
(WebKit::ChildProcessMain):
* WebProcess/EntryPoint/unix/WebProcessMain.cpp: Renamed from Source/WebKit2/gtk/MainGtk.cpp.
(main):
* WebProcess/efl/WebProcessMainEfl.cpp:
(WebKit::WebProcessMainUnix):
(dummyExtensionErrorHandler): Deleted.
* WebProcess/gtk/WebProcessMainGtk.cpp:
(WebKit::WebProcessMainUnix):
* WebProcess/unix/WebProcessMainUnix.h: Renamed from Source/WebKit2/WebProcess/efl/WebProcessMainEfl.h.

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

6 years ago[GTK] Install libharfbuzz-dev in Tools/gtk/install-dependencies
berto@igalia.com [Fri, 23 May 2014 09:09:29 +0000 (09:09 +0000)]
[GTK] Install libharfbuzz-dev in Tools/gtk/install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=133210

Reviewed by Carlos Garcia Campos.

* gtk/install-dependencies:

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

6 years agoTry to fix windows build.
antti@apple.com [Fri, 23 May 2014 07:02:35 +0000 (07:02 +0000)]
Try to fix windows build.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

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

6 years agoAdd the partial specialization for VectorTraits<std::unique_ptr<P>>
zandobersek@gmail.com [Fri, 23 May 2014 06:45:30 +0000 (06:45 +0000)]
Add the partial specialization for VectorTraits<std::unique_ptr<P>>
https://bugs.webkit.org/show_bug.cgi?id=133083

Reviewed by Andreas Kling.

* wtf/VectorTraits.h: Like for RefPtr<P>, OwnPtr<P> and Ref<P>, the partial
specialization for VectorTraits<std::unique_ptr<P>> should exist and should
inherit from SimpleClassVector.

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

6 years agoHave the decoded element in VectorArgumentCoder::decode() moved into Vector::append()
zandobersek@gmail.com [Fri, 23 May 2014 06:44:19 +0000 (06:44 +0000)]
Have the decoded element in VectorArgumentCoder::decode() moved into Vector::append()
https://bugs.webkit.org/show_bug.cgi?id=133082

Reviewed by Andreas Kling.

* Platform/IPC/ArgumentCoders.h: Move the decoded element into the Vector::append() call.
This enforces a move instead of a copy if the decoded element's type is move-constructible.

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

6 years agoMove the passed-in Vector<Attachment> in MessageDecoder constructor down into Argumen...
zandobersek@gmail.com [Fri, 23 May 2014 06:43:05 +0000 (06:43 +0000)]
Move the passed-in Vector<Attachment> in MessageDecoder constructor down into ArgumentDecoder
https://bugs.webkit.org/show_bug.cgi?id=133080

Reviewed by Andreas Kling.

* Platform/IPC/MessageDecoder.cpp:
(IPC::MessageDecoder::MessageDecoder): The Vector<Attachment> object was passed in by value.
Move it into the ArgumentDecoder constructor as it is not used elsewhere in this constructor
and produces a copy otherwise.

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

6 years ago[Curl] Crash when exceeding maximum cache limit.
commit-queue@webkit.org [Fri, 23 May 2014 06:36:03 +0000 (06:36 +0000)]
[Curl] Crash when exceeding maximum cache limit.
https://bugs.webkit.org/show_bug.cgi?id=133185

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-05-22
Reviewed by Brent Fulgham.

When the maximum cache limit is exceeded, I get a crash.
This happens when deleting cache entries, because a reference to the url string object in the LRU list
is used as a parameter to invalidateCacheEntry(), when called from makeRoomForNewEntry().
When the string is removed from the LRU list in makeRoomForNewEntry(), the string is deleted.
Next, the string is accessed again to remove the url from the index, and we crash.

This can be fixed by removing the string from the LRU list after it is removed from the index.

Fixing the crash also revealed an infinite loop problem.
If the url for some reason only exist in the LRU list, and not in the index,
we will inifitely loop in makeRoomForNewEntry(), trying to remove this url from the cache, but never succeeding.
This can be fixed by removing the url from the LRU list, also when it's not in the index.

* platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::makeRoomForNewEntry): Avoid infinite loop by checking if there are more cache entries to remove.
(WebCore::CurlCacheManager::invalidateCacheEntry): Avoid crash and infinite loop by removing url from LRU list last.

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

6 years agoMake viewport units work in CSS gradients
simon.fraser@apple.com [Fri, 23 May 2014 05:18:23 +0000 (05:18 +0000)]
Make viewport units work in CSS gradients
https://bugs.webkit.org/show_bug.cgi?id=133204
<rdar://problem/17012259>

Source/WebCore:

Reviewed by Tim Horton.

Make viewport percentage lengths work in gradients.

Test: fast/gradients/viewport-units-gradient.html

* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::addStops):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):
* css/CSSGradientValue.h:

LayoutTests:

Reviewed by Tim Horton.

Make viewport percentage lengths work in gradients.

* fast/gradients/viewport-units-gradient-expected.html: Added.
* fast/gradients/viewport-units-gradient.html: Added.

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

6 years agoAdd Yusuke Suzuki to the list of contributors (for real)
benjamin@webkit.org [Fri, 23 May 2014 04:34:32 +0000 (04:34 +0000)]
Add Yusuke Suzuki to the list of contributors (for real)

Wrong section...

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-22

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

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

6 years agoAdd Yusuke Suzuki to the list of contributors
benjamin@webkit.org [Fri, 23 May 2014 04:30:01 +0000 (04:30 +0000)]
Add Yusuke Suzuki to the list of contributors

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-22

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

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

6 years ago[iOS][WK2] Add support for minimal-ui viewports
benjamin@webkit.org [Fri, 23 May 2014 04:13:19 +0000 (04:13 +0000)]
[iOS][WK2] Add support for minimal-ui viewports
https://bugs.webkit.org/show_bug.cgi?id=133162

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

Source/WebCore:
Add support for minimal-ui directly into the Viewport configuration.

ViewportConfiguration knows about two kinds of layout size in scrollview coordinates:
-normal size
-minimal ui size.

Initially, the page is initialized with resetMinimalUI() and starts with a normal layout.

At any time before the main resource is loaded, the Web page can update its viewport meta tag
to include minimal-ui. The viewport configuration is updated immediately to reflect the minimal-ui
layout size. Any layout after that takes minimal-ui into account.

* WebCore.exp.in:
* css/LengthFunctions.cpp:
(WebCore::minimumValueForLength):
(WebCore::floatValueForLength):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::viewportPercentageValue):
* dom/ViewportArguments.h:
(WebCore::ViewportArguments::operator==):
* page/FrameView.cpp:
(WebCore::FrameView::setViewportSizeForCSSViewportUnits):
(WebCore::FrameView::viewportSizeForCSSViewportUnits):
(WebCore::FrameView::setViewportSize): Deleted.
(WebCore::FrameView::viewportSize): Deleted.
* page/FrameView.h:
* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::ViewportConfiguration):
(WebCore::ViewportConfiguration::setMinimumLayoutSize):
(WebCore::ViewportConfiguration::setMinimumLayoutSizeForMinimalUI):
(WebCore::ViewportConfiguration::activeMinimumLayoutSizeInScrollViewCoordinates):
(WebCore::ViewportConfiguration::resetMinimalUI):
(WebCore::ViewportConfiguration::pageWillRenderFirstFrame):
(WebCore::ViewportConfiguration::initialScale):
(WebCore::ViewportConfiguration::minimumScale):
(WebCore::ViewportConfiguration::updateConfiguration):
(WebCore::ViewportConfiguration::layoutWidth):
(WebCore::ViewportConfiguration::layoutHeight):
(WebCore::ViewportConfiguration::description):
* page/ViewportConfiguration.h:
(WebCore::ViewportConfiguration::minimumLayoutSizeForMinimalUI):
(WebCore::ViewportConfiguration::usesMinimalUI):
* rendering/RenderView.cpp:
(WebCore::RenderView::viewportSizeForCSSViewportUnits):
(WebCore::RenderView::viewportSize): Deleted.
* rendering/RenderView.h:

Source/WebKit2:
In the WebKit2 layers, we have two parts to minimal-ui.
-In WebPage, we need to get the values from the UIProcess and setup the ViewportConfiguration.
 Another part is freezing the state on page load.
-In the UIProcess, we need to get the right information for layout and styling, and we need to tell
 the UI clients about minimal-ui changes.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setUsesMinimalUI:]):
(-[WKWebView _usesMinimalUI]):
(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _minimumLayoutSizeOverride]):
(-[WKWebView _setMinimumLayoutSizeOverride:]):
(-[WKWebView _minimumLayoutSizeOverrideForMinimalUI]):
(-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
(-[WKWebView _largestUnobscuredSizeOverride]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(setViewportConfigurationMinimumLayoutSize): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::setUsesMinimalUI):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSizeForMinimalUI):
(WebKit::WebPageProxy::setMaximumUnobscuredSize):
(WebKit::WebPageProxy::setUsesMinimalUI):
(WebKit::WebPageProxy::setMinimumLayoutSizeForMinimalUI): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setViewportConfigurationMinimumLayoutSizeForMinimalUI):
(WebKit::WebPage::setMaximumUnobscuredSize):
(WebKit::WebPage::willFlushLayers):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::WebPage::updateViewportSizeForCSSViewportUnits):
(WebKit::WebPage::setMinimumLayoutSizeForMinimalUI): Deleted.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

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

6 years agoCan't type in status in facebook.com on iOS Safari because keyboard disappears
rniwa@webkit.org [Fri, 23 May 2014 04:06:05 +0000 (04:06 +0000)]
Can't type in status in facebook.com on iOS Safari because keyboard disappears
https://bugs.webkit.org/show_bug.cgi?id=133196

Reviewed by Geoffrey Garen.

Source/WebCore:
Fixed the bug by rolling out r156252.

When the user taps on the status on facebook.com, the page focuses a textarea,
which is then made momentarily invisible by setting display:none.
The page then removes display:none later and expects the textarea to be still focused.

With r156252, the focus is removed after the page sets display:none and the keyboard disappears.
Since the focus is never reset on the textarea, the user can never type in anything.

The specification may need to change here given that this (rather odd) behavior/expectation exists
on one of the most popular websites on the Web.

* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::recalcStyle):
(WebCore::Document::updateLayout):
(WebCore::Document::resetHiddenFocusElementSoon): Deleted.
(WebCore::Document::resetHiddenFocusElementTimer): Deleted.
* dom/Document.h:

LayoutTests:
Removed the test added by r156252.

* fast/dom/HTMLDocument/active-element-gets-unfocusable-expected.txt: Removed.
* fast/dom/HTMLDocument/active-element-gets-unfocusable.html: Removed.

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

6 years agohttp/tests/security/xss-DENIED-xsl-document-redirect.xml fails with NetworkProcess
mmaxfield@apple.com [Fri, 23 May 2014 03:59:11 +0000 (03:59 +0000)]
http/tests/security/xss-DENIED-xsl-document-redirect.xml fails with NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=132523

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-05-22
Reviewed by Alexey Proskuryakov.

Source/WebCore:
We should not manufacture a response in the event of an error during a
synchronous XHR. In addition, this test removes two places that are
sensitive to such a manufactured response.

Updates test expectations.

* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest): Don't inspect a
loader response if there is an error
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
manufacture a response
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
manufacture a response
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::docLoaderFunc): Only use the response's URL if no error
occurred.

LayoutTests:
Two tests have been rebaselined, and re-enable test that now passes. Because of
r23889, synchronous XHRs for file: URLs purposely don't invoke error handlers.

* fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Updated
incorrect test description
* fast/xmlhttprequest/resources/xmlhttprequest-nonexistent-file-real.html: Ditto
* platform/mac-wk2/TestExpectations: Re-enable test that now passes.

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

6 years agoUnreviewed typo fix.
mmaxfield@apple.com [Fri, 23 May 2014 03:31:57 +0000 (03:31 +0000)]
Unreviewed typo fix.

Reviewed by NOBODY.

No new tests.

* platform/graphics/mac/FontMac.mm:
(WebCore::Font::dashesForIntersectionsWithRect): Accidentally said run.length() instead of glyphBuffer.size().

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

6 years agoEliminate n/total progress update from run-jsc-stress-tests output to file
msaboff@apple.com [Fri, 23 May 2014 03:27:36 +0000 (03:27 +0000)]
Eliminate n/total progress update from run-jsc-stress-tests output to file
https://bugs.webkit.org/show_bug.cgi?id=133191

Reviewed by Geoffrey Garen.

Changed progressMeter setting to be based on stdout being a tty instead of
stdin.  Unified the processing of output from the shell runner to match the
same processing as is used by the makefile runner.  As part of this, the
shell runner script was simplified.  It now forwards the output of each
test_script just like the Makefile and doesn't provide its own progress.

* Scripts/jsc-stress-test-helpers/shell-runner.sh:
* Scripts/run-jsc-stress-tests:

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

6 years ago[iOS][WK2] Reset the special action-target of WKSyntheticClickTapGestureRecognizer...
benjamin@webkit.org [Fri, 23 May 2014 03:16:33 +0000 (03:16 +0000)]
[iOS][WK2] Reset the special action-target of WKSyntheticClickTapGestureRecognizer on destruction
https://bugs.webkit.org/show_bug.cgi?id=133165
<rdar://problem/16283914>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-22
Reviewed by Andy Estes.

It is unclear why, but the WKSyntheticClickTapGestureRecognizer sometimes survives its own view
and is reset after WKContentView was destructed.
This patch cleans up the target-action on destruction to avoid accessing a destructed object.

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

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

6 years agoDo not force a layout when changing the FixedLayoutSize in WebPage
benjamin@webkit.org [Fri, 23 May 2014 02:24:07 +0000 (02:24 +0000)]
Do not force a layout when changing the FixedLayoutSize in WebPage
https://bugs.webkit.org/show_bug.cgi?id=133167

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-22
Reviewed by Andreas Kling.

WebPage::setFixedLayoutSize was forcing a layout immediately after changing the layout size on FrameView.
This is forcing plenty of extra layouts since the fixed layout size is one of many properties updated on the FrameView.

FrameView marks that layout is needed. It is not clear why a layout was performed immediately.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setFixedLayoutSize):

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

6 years ago[iOS WebKit2] Web process should try to shrink its memory footprint when going into...
akling@apple.com [Fri, 23 May 2014 01:36:10 +0000 (01:36 +0000)]
[iOS WebKit2] Web process should try to shrink its memory footprint when going into background.
<https://webkit.org/b/133197>
<rdar://problem/17011561>

Source/WebCore:
Make releaseMemory() public so we can call it from the process-will-suspend callback.

Reviewed by Gavin Barraclough.

* WebCore.exp.in:
* platform/MemoryPressureHandler.h:

Source/WebKit2:
Try to free up as much memory as possible before going into background.

Reviewed by Gavin Barraclough.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::processWillSuspend):

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

6 years agoHook up a setting for showing detailed logging during memory pressure relief.
akling@apple.com [Fri, 23 May 2014 01:34:26 +0000 (01:34 +0000)]
Hook up a setting for showing detailed logging during memory pressure relief.
<https://webkit.org/b/133194>

Source/WebCore:
Make the pressure relief logger opt-in. Also make it flush memory back to the
OS (for both malloc and FastMalloc) to get more accurate numbers at each step.

Reviewed by Gavin Barraclough.

* WebCore.exp.in:
* platform/MemoryPressureHandler.cpp:
* platform/MemoryPressureHandler.h:
(WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
(WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):
(WebCore::MemoryPressureHandler::ReliefLogger::setLoggingEnabled):
* platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):

Source/WebKit2:
Plumb through the same setting that we used for detailed logging in WK1.

Reviewed by Gavin Barraclough.

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformInitializeWebProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

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

6 years agoDon't scan for phone numbers in editable regions
beidson@apple.com [Fri, 23 May 2014 01:29:30 +0000 (01:29 +0000)]
Don't scan for phone numbers in editable regions
<rdar://problem/16949846> and https://bugs.webkit.org/show_bug.cgi?id=133192

Reviewed by Enrica Casucci.

No new tests (Currently untested WK2-only feature)

* editing/Editor.cpp:
(WebCore::Editor::scanRangeForTelephoneNumbers): Skip the range if the Node is editable.

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

6 years agoCaptions layout incorrectly in fullscreen.
commit-queue@webkit.org [Fri, 23 May 2014 01:04:43 +0000 (01:04 +0000)]
Captions layout incorrectly in fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=133175

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

When doing layout for fullscreen, geometry should be absolute so it is not influenced
by the rest of the page. This change adds style for CSSPropertyPosition, CSSPropertyLeft,
and CSSPropertyTop.

* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
Refactor style changes into updateStyleForTextTrackRepresentation().
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
Refactor style changes into updateStyleForTextTrackRepresentation().
(WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
Refactor style changes into updateStyleForTextTrackRepresentation().
(WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation):
Consolidate style changes here. Include the two existing and three new style changes.
* html/shadow/MediaControlElements.h:
Declare updateStyleForTextTrackRepresentation().

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

6 years ago[iOS] Send shareable resources to QuickLook if enabled
aestes@apple.com [Fri, 23 May 2014 00:40:23 +0000 (00:40 +0000)]
[iOS] Send shareable resources to QuickLook if enabled
https://bugs.webkit.org/show_bug.cgi?id=133189
<rdar://problem/17003995>

Reviewed by Brady Eidson.

Like we do for didReceiveData(), we need to pass an incoming ShareableResource to QuickLook if a QuickLook
handle exists.

* Shared/ShareableResource.cpp:
(WebKit::ShareableResource::Handle::tryWrapInCFData): Return the shared resource in a CFDataRef.
(WebKit::ShareableResource::Handle::tryWrapInSharedBuffer): Implemented in terms of tryWrapInCFData().
* Shared/ShareableResource.h:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResource): If a QuickLook handle exists, send the shareable resource to
it via a CFDataRef.

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

6 years agoFix the compositing/transitions/transform-on-large-layer.html test
simon.fraser@apple.com [Fri, 23 May 2014 00:39:36 +0000 (00:39 +0000)]
Fix the  compositing/transitions/transform-on-large-layer.html test
https://bugs.webkit.org/show_bug.cgi?id=133195

Reviewed by Dean Jackson.

This test used window resize when it doesn't need to and was flakey.

* compositing/transitions/transform-on-large-layer.html:
* platform/efl/TestExpectations:
* platform/mac/TestExpectations:

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

6 years agoREGRESSION (r155977): Very stuttery 3D css animation on jtechcommunications.com
simon.fraser@apple.com [Thu, 22 May 2014 23:57:46 +0000 (23:57 +0000)]
REGRESSION (r155977): Very stuttery 3D css animation on jtechcommunications.com
https://bugs.webkit.org/show_bug.cgi?id=133179
<rdar://problem/16864666>

Reviewed by Dean Jackson.

Source/WebCore:

Revert code added in r155977 to try to pick a good contentsScale for layers
based on a root-relative transform. This resulted in pages with too much
backing store, and too many cases where layers repainted during animations,
causing stutter.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::flushCompositingState):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateContentsOpaque):
(WebCore::GraphicsLayerCA::updateAnimations):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
(WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
(WebCore::GraphicsLayerCA::updateContentsScale):
(WebCore::clampedContentsScaleForScale): Deleted.
(WebCore::maxScaleFromTransform): Deleted.
(WebCore::GraphicsLayerCA::updateRootRelativeScale): Deleted.
(WebCore::GraphicsLayerCA::getTransformFromAnimationsWithMaxScaleImpact): Deleted.
* platform/graphics/ca/GraphicsLayerCA.h:

LayoutTests:

Rebaseline.

* compositing/contents-scale/animating-expected.txt:
* compositing/contents-scale/rounded-contents-scale-expected.txt:
* compositing/contents-scale/scaled-ancestor-expected.txt:
* compositing/contents-scale/simple-scale-expected.txt:
* compositing/contents-scale/z-translate-expected.txt:
* platform/mac/compositing/overflow/composited-scrolling-paint-phases-expected.txt:
* platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt:
* platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
* platform/mac/compositing/visible-rect/nested-transform-expected.txt:

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

6 years ago[iOS] Enable -apple-system- styled elements to respond to system font size changes.
mhock@apple.com [Thu, 22 May 2014 21:46:23 +0000 (21:46 +0000)]
[iOS] Enable -apple-system- styled elements to respond to system font size changes.
https://bugs.webkit.org/show_bug.cgi?id=133186
<rdar://problem/16583782>

Reviewed by Enrica Casucci.

Source/WebCore:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderThemeIOS.h:
* rendering/RenderThemeIOS.mm:
(WebCore::_contentSizeCategory):
(WebCore::RenderThemeIOS::contentSizeCategory):
(WebCore::RenderThemeIOS::setContentSizeCategory):

Source/WebKit2:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView _contentSizeCategoryDidChange:]):
(-[WKWebView _contentSizeCategory]):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::contentSizeCategoryDidChange):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::contentSizeCategoryDidChange):

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

6 years agoREGRESSION(r154797): Debugger crashes when stepping over an uncaught exception.
mark.lam@apple.com [Thu, 22 May 2014 21:40:21 +0000 (21:40 +0000)]
REGRESSION(r154797): Debugger crashes when stepping over an uncaught exception.
<https://webkit.org/b/133182>

Reviewed by Oliver Hunt.

Source/JavaScriptCore:
Before r154797, we used to clear the VM exception before calling into the
debugger.  After r154797, we don't.  This patch will restore this clearing
of the exception before calling into the debugger.

Also added assertions after returning from calls into the debugger to
ensure that the debugger did not introduce any exceptions.

* interpreter/Interpreter.cpp:
(JSC::unwindCallFrame):
(JSC::Interpreter::unwind):
(JSC::Interpreter::debug):
- Fixed the assertion here.  Interpreter::debug() should never be called
  with a pending exception.  Debugger callbacks for exceptions should be
  handled by Interpreter::unwind() and Interpreter::unwindCallFrame().

LayoutTests:
* inspector-protocol/debugger/regress-133182-expected.txt: Added.
* inspector-protocol/debugger/regress-133182.html: Added.

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

6 years agoAdd option to run-jsc-stress-tests to use installed jsc
msaboff@apple.com [Thu, 22 May 2014 21:11:55 +0000 (21:11 +0000)]
Add option to run-jsc-stress-tests to use installed jsc
https://bugs.webkit.org/show_bug.cgi?id=133102

Reviewed by Geoffrey Garen.

Added --no-copy option to not copy a JavaScriptCore framework, but use the one
provied with the --jsc option.

* Scripts/run-jsc-stress-tests:

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

6 years ago[iOS] Add CFBundleAllowMixedLocalizations to WebContentService
ap@apple.com [Thu, 22 May 2014 20:35:23 +0000 (20:35 +0000)]
[iOS] Add CFBundleAllowMixedLocalizations to WebContentService
https://bugs.webkit.org/show_bug.cgi?id=133187
<rdar://problem/16561084>

Reviewed by Tim Horton.

* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist:
We already had it in WebContentService.Development, just not here.

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

6 years ago[MSE] Stored samples are not freed when SourceBuffer is removed from MediaSource
jer.noble@apple.com [Thu, 22 May 2014 18:25:46 +0000 (18:25 +0000)]
[MSE] Stored samples are not freed when SourceBuffer is removed from MediaSource
https://bugs.webkit.org/show_bug.cgi?id=133174

Reviewed by Eric Carlson.

Clear out stored MediaSamples from SourceBuffer's TrackBuffer storage when
aborting loading. Also, report the memory cost of those samples, so that the
SourceBuffer will be GCd more readily.

Add a mechanism for reporting the size of a MediaSample:
* Modules/mediasource/SourceBuffer.h:
* platform/MediaSample.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:

Track the memory usage of a SampleMap when adding and removing samples, as well
as allowing the SampleMap to be cleared wholesale:
* Modules/mediasource/SampleMap.cpp:
(WebCore::SampleMap::clear): Release all stored MediaSamples.
(WebCore::SampleMap::addSample): Update m_totalSize.
(WebCore::SampleMap::removeSample): Ditto.
* Modules/mediasource/SampleMap.h:
(WebCore::SampleMap::SampleMap): Initialize m_totalSize.
(WebCore::SampleMap::sizeInBytes): Simple accessor.

Clear the stored samples when loading is aborted, and report the extra memory
cost
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::SourceBuffer): Initialize m_reportedExtraMemoryCost.
(WebCore::SourceBuffer::removedFromMediaSource): Clear all stored samples.
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Call reportExtraMemoryCost().
(WebCore::SourceBuffer::reportExtraMemoryCost): Inform the vm of the new
    extra memory cost incurred by the object.

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

6 years ago[iOS][WK2] Application cache is broken
ap@apple.com [Thu, 22 May 2014 18:23:21 +0000 (18:23 +0000)]
[iOS][WK2] Application cache is broken
https://bugs.webkit.org/show_bug.cgi?id=133172
<rdar://problem/16994593>

Reviewed by Andy Estes.

* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformDefaultApplicationCacheDirectory): Use a proper
path for application cache database (same as WebKit1).

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

6 years agoREGRESSION (WebKit2): Keyboard should have Search button in duckduckgo.com.
enrica@apple.com [Thu, 22 May 2014 18:03:54 +0000 (18:03 +0000)]
REGRESSION (WebKit2): Keyboard should have Search button in duckduckgo.com.
https://bugs.webkit.org/show_bug.cgi?id=133183
<rdar://problem/17004207>

Reviewed by Geoff Garen.

Source/WebCore:
Adding new export.

* WebCore.exp.in:

Source/WebKit2:
The keyboard type should be search if the input type is search
or if it is text and it is inside a form with an action and either
name, id or title contain the word search. This matches the
heuristics we have in WK1 for iOS.

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

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

6 years agoREGRESSION(r163712): [GTK] Misspelling and grammar underline marks are no longer...
carlosgc@webkit.org [Thu, 22 May 2014 16:23:05 +0000 (16:23 +0000)]
REGRESSION(r163712): [GTK] Misspelling and grammar underline marks are no longer drawn
https://bugs.webkit.org/show_bug.cgi?id=133047

Reviewed by Darin Adler.

Change two conditions changed by mistake in r163712.

* editing/TextCheckingHelper.cpp:
(WebCore::findMisspellings): Enter the loop also when wordStart is 0.
(WebCore::TextCheckingHelper::findFirstMisspelling): Skip the work
when the text is a single character. Also reworked it to use a for
loop to improve the readability.

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

6 years agoUnreviewed EFL gardening
m.pakula@samsung.com [Thu, 22 May 2014 15:51:47 +0000 (15:51 +0000)]
Unreviewed EFL gardening

Add test expectations for failing tests.

* platform/efl-wk2/TestExpectations:
* platform/efl/editing/apply-style-iframe-crash-expected.txt: Added after r168641.

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

6 years agoVideo is resumed with old playback rate.
commit-queue@webkit.org [Thu, 22 May 2014 14:57:59 +0000 (14:57 +0000)]
Video is resumed with old playback rate.
https://bugs.webkit.org/show_bug.cgi?id=132905

Patch by Piotr Grad <p.grad@samsung.com> on 2014-05-22
Reviewed by Philippe Normand.

Source/WebCore:
Setting '0' playback rate is causing pipeline to pause.
GStreamer player impl. exposed this information to upper layers but it should not.
Solution is to hidden such situation behind m_playbackRatePause flag.

Test: media/video-paused-0-rate.html

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::pause):
(WebCore::MediaPlayerPrivateGStreamer::doSeek):
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamer::paused):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

LayoutTests:
* media/video-paused-0-rate-expected.txt: Added.
* media/video-paused-0-rate.html: Added.

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

6 years agoText markers don't paint on simple lines
antti@apple.com [Thu, 22 May 2014 13:05:20 +0000 (13:05 +0000)]
Text markers don't paint on simple lines
https://bugs.webkit.org/show_bug.cgi?id=133177

Reviewed by Anders Carlsson.

Source/WebCore:

Marker painting code does not yet support simple lines.

Tests: fast/text/mark-matches-rendering-simple-lines.html
       fast/text/mark-matches-rendering.html

* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::addMarker):

    Force text blocks with markers to use line boxes.

* testing/Internals.cpp:
(WebCore::Internals::setMarkedTextMatchesAreHighlighted):

    Expose this so we can make reftests for marker rendering.

* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* fast/text/mark-matches-rendering-expected.html: Added.
* fast/text/mark-matches-rendering-simple-lines-expected.html: Added.
* fast/text/mark-matches-rendering-simple-lines.html: Added.
* fast/text/mark-matches-rendering.html: Added.

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

6 years ago[CSS Grid Layout] Split the grid-item-margin-auto-columns-rows.html test.
commit-queue@webkit.org [Thu, 22 May 2014 12:01:32 +0000 (12:01 +0000)]
[CSS Grid Layout] Split the grid-item-margin-auto-columns-rows.html test.
https://bugs.webkit.org/show_bug.cgi?id=131064

Patch by Javier Fernandez <jfernandez@igalia.com> on 2014-05-22
Reviewed by Benjamin Poulain.

Splitting the "grid-item-margin-auto-columns-rows" into different writing-modes
related tests, so besides increasing clarity, it makes it fit in the 800x600 viewport.

* fast/css-grid-layout/grid-item-margin-auto-columns-rows-expected.html: Removed.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows.html: Removed.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr-expected.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl-expected.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr-expected.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl-expected.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl.html: Added.

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

6 years ago[CSS Grid Layout] Guard RenderObject::isRenderGrid() method
rego@igalia.com [Thu, 22 May 2014 11:54:24 +0000 (11:54 +0000)]
[CSS Grid Layout] Guard RenderObject::isRenderGrid() method
https://bugs.webkit.org/show_bug.cgi?id=132380

Reviewed by Benjamin Poulain.

Guard RenderObject::isRenderGrid() method under ENABLE_CSS_GRID_LAYOUT compilation flag.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalWidthInRegion):
* rendering/RenderObject.h:

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

6 years ago[Win64] Unreviewed build fix.
achristensen@apple.com [Thu, 22 May 2014 06:44:44 +0000 (06:44 +0000)]
[Win64] Unreviewed build fix.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
Corrected 64-bit linker symbol.

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

6 years agoREGRESSION(r167870): Crash in simple line layout code with :after
antti@apple.com [Thu, 22 May 2014 06:12:34 +0000 (06:12 +0000)]
REGRESSION(r167870): Crash in simple line layout code with :after
https://bugs.webkit.org/show_bug.cgi?id=133155

Source/WebCore:
<rdar://problem/16977696>

Reviewed by Darin Adler.

Fix https://bugs.webkit.org/show_bug.cgi?id=132241 in a safer way.
The underline behavior is tested by the existing fast/text/simple-lines-hover-underline.html

Test: fast/text/simple-lines-hover-after.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::invalidateLineLayoutPath): Deleted.

    Move to RenderBlockFlow.

* rendering/RenderBlock.h:
(WebCore::RenderBlock::invalidateLineLayoutPath):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::styleDidChange):

    Invalidate layout if style changes in a manner that makes us ineligible to use the simple line layout path.

(WebCore::RenderBlockFlow::invalidateLineLayoutPath):

    Drop the simple line layout on path invalidation if it exists. It may not be valid anymore.
    Also invalidate the layout if this happens so we'll reconstruct the lines later.

(WebCore::RenderBlockFlow::simpleLineLayout): Deleted.
(WebCore::RenderBlockFlow::ensureLineBoxes):
(WebCore::RenderBlockFlow::createLineBoxes): Deleted.

    Revert some of the changes made it r167870.

* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::simpleLineLayout):

    Add strong validity assert.

LayoutTests:

Reviewed by Darin Adler.

* fast/text/simple-lines-hover-after-expected.html: Added.
* fast/text/simple-lines-hover-after.html: Added.

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

6 years agoStore barrier elision should run after DCE in both the DFG path and the FTL path
fpizlo@apple.com [Thu, 22 May 2014 01:36:23 +0000 (01:36 +0000)]
Store barrier elision should run after DCE in both the DFG path and the FTL path
https://bugs.webkit.org/show_bug.cgi?id=129718

Rubber stamped by Mark Hahnenberg.

* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):

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

6 years ago[iOS] two media control button strings are not localized
eric.carlson@apple.com [Thu, 22 May 2014 01:18:27 +0000 (01:18 +0000)]
[iOS] two media control button strings are not localized
https://bugs.webkit.org/show_bug.cgi?id=133160

Reviewed by Geoffrey Garen.

* English.lproj/mediaControlsLocalizedStrings.js:

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

6 years ago[EFL] Add include path of compact_unwind_encoding.h if FTL JIT is enabled
commit-queue@webkit.org [Thu, 22 May 2014 00:12:47 +0000 (00:12 +0000)]
[EFL] Add include path of compact_unwind_encoding.h if FTL JIT is enabled
https://bugs.webkit.org/show_bug.cgi?id=132907

Patch by Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> on 2014-05-21
Reviewed by Gyuyoung Kim.

.:
* Source/cmake/FindLIBCXXABI.cmake: Added.
* Source/cmake/OptionsEfl.cmake:

Source/JavaScriptCore:
* CMakeLists.txt:

Tools:
We need the mach-o/compact_unwind_encoding.h header from libc++abi-dev package
in JavaScriptCore/ftl/FTLUnwindInfo.cpp when FTL JIT is enabled.

* efl/install-dependencies:

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

6 years agoOnly enable sandbox extensions on mac.
oliver@apple.com [Thu, 22 May 2014 00:11:07 +0000 (00:11 +0000)]
Only enable sandbox extensions on mac.

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

6 years agoUnreviewed Mac gardening after r169161.
zalan@apple.com [Wed, 21 May 2014 21:50:39 +0000 (21:50 +0000)]
Unreviewed Mac gardening after r169161.

* platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt:

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

6 years ago[iOS] Update some of the media controls buttons to be bigger
dino@apple.com [Wed, 21 May 2014 21:35:53 +0000 (21:35 +0000)]
[iOS] Update some of the media controls buttons to be bigger
https://bugs.webkit.org/show_bug.cgi?id=133158
<rdar://problem/16475828>

Reviewed by Simon Fraser.

The buttons in the media controls on iOS are too small
to be comfortably pressed. Make them the size of the controls
panel and the expected iOS button size (44x44px).

The artwork for the buttons now includes the padding. I've
added a file from which you can edit the artwork, then
copy it into the CSS (because editing directly in CSS is
a huge pain).

So far just the play/pause and fullscreen button have been
updated. There will be a follow-up patch to fix the remaining
buttons and the scrubber.

* Modules/mediacontrols/assets-apple-iOS.svg: Added.
* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-panel):
(audio::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-play-button:active):
(audio::-webkit-media-controls-play-button.paused):
(audio::-webkit-media-controls-fullscreen-button:active):
(@media only screen and (-webkit-min-device-pixel-ratio: 2)): Deleted.

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