WebKit-https.git
7 years agoVersioning.
bshafiei@apple.com [Thu, 5 Jun 2014 07:31:56 +0000 (07:31 +0000)]
Versioning.

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

7 years agoMathML operators not stretched horizontally
fred.wang@free.fr [Thu, 5 Jun 2014 06:35:04 +0000 (06:35 +0000)]
MathML operators not stretched horizontally
https://bugs.webkit.org/show_bug.cgi?id=72828

Reviewed by Chris Fleizach.

Source/WebCore:
This patch adds basic horizontal stretching rules for operators inside
an <munder>, <mover> or <munderover> elements. The stretchy operators
in such an element stretch to cover the size of the non-stretchy
operators. This only works when fonts that have an OpenType MATH table
are used.

Tests: mathml/opentype/horizontal-LatinModern.html
       mathml/opentype/opentype-stretchy-horizontal.html
       mathml/opentype/horizontal-LatinModern-munderover.html

* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::MathMLOperatorDictionary::ExtractKeyHorizontal): We add an ordered list of operators that have horizontal stretch direction.
(WebCore::RenderMathMLOperator::RenderMathMLOperator): init m_Vertical
(WebCore::RenderMathMLOperator::SetOperatorProperties): set m_Vertical by checking whether the operator is in the horizontalOperators list.
(WebCore::RenderMathMLOperator::stretchTo): We do not stretch vertically
if the operator has horizontal direction.
We also add a new version stretchTo(LayoutUnit width) for horizontal stretching only.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Handle horizontal stretching: the maximumGlyphWidth is the maximum of
the base size or of the stretch size.
(WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): Add an ASSERT to ensure that this function is only called for vertical stretching.
(WebCore::RenderMathMLOperator::findStretchyData): Add an ASSERT to ensure that this function is not called to get the maximum width of a horizontal stretchy operator.
We take into account m_isVertical when calling getMathVariants or computing sizes.
There is not any Unicode-only construction for horizontal stretching, so a MATH table is required for horizontal stretching.
(WebCore::RenderMathMLOperator::updateStyle): Ignore some code paths specific to vertical stretching and take into account the m_Vertical parameters.
For horizontal stretching, the m_stretch*Baseline parameters are now updated to match the metrics of the size variant or of the maximum of the parts in the glyph assembly.
(WebCore::RenderMathMLOperator::computeLogicalHeight): logicalHeight is now explicitely the sum of m_stretchHeightAboveBaseline and m_stretchDepthBelowBaseline, since it can be different from the stretchSize() in horizontal stretching.
(WebCore::RenderMathMLOperator::paintGlyph): handle trimming for horizontal stretching.
(WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): rename the function and ensure it is only call for m_isVertical.
(WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): same as fillWithVerticalExtensionGlyph, but for horizontal stretching.
(WebCore::RenderMathMLOperator::paint): For glyph assembly, choose between paintVerticalGlyphAssembly or paintHorizontalGlyphAssembly.
(WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): rename the function and ensure it is only call for m_isVertical.
(WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): same as paintVerticalGlyphAssembly but for horizontal stretching.
* rendering/mathml/RenderMathMLOperator.h: we add a m_isVertical member to indicate the stretch direction and a m_stretchWidth to indicate the width of the stretchy character.
We define the horizontal counterparts of fillWith*ExtensionGlyph, paint*GlyphAssembly, GlyphPaintTrimming  StretchyData.
Finally stretchSize() takes into account the stretch direction.
* rendering/mathml/RenderMathMLUnderOver.cpp: We override the layout() function to stretch munderover children horizontally.
(WebCore::RenderMathMLUnderOver::layout):
* rendering/mathml/RenderMathMLUnderOver.h: we declare layout().

LayoutTests:
Add some tests to verify horizontal stretching with the MATH data.

* mathml/opentype/horizontal-LatinModern-munderover.html: Added.
* mathml/opentype/horizontal-LatinModern.html: Added.
* mathml/opentype/opentype-stretchy-horizontal.html: Added.
* platform/efl/TestExpectations: mark tests as failing.
* platform/gtk/mathml/opentype/horizontal-LatinModern-expected.png: Added.
* platform/gtk/mathml/opentype/horizontal-LatinModern-expected.txt: Added.
* platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.png: Added.
* platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.txt: Added.
* platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png: Added.
* platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Added.
* platform/mac/TestExpectations: mark tests as failing.
* platform/win/TestExpectations: ditto.

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

7 years ago[CSS Shapes] Image lifetime is not properly handled for gradient shapes
bjonesbe@adobe.com [Thu, 5 Jun 2014 04:52:57 +0000 (04:52 +0000)]
[CSS Shapes] Image lifetime is not properly handled for gradient shapes
https://bugs.webkit.org/show_bug.cgi?id=133414

Reviewed by Simon Fraser.

Source/WebCore:
Refactor computedShape() and it's helpers to be able to properly
manage the lifetime of the image returned from StyleImage.

This is a port of a Blink patch by Hans Muller.

Test: fast/shapes/shape-outside-floats/shape-outside-uncached-gradient.html

* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::createShapeForImage): Properly handle the
    lifetime of the image. Changed to use StyleImage::image() to get
    the image in all cases there's no need to special case cached
    images.
(WebCore::ShapeOutsideInfo::computedShape): Call createShapeForImage.
(WebCore::getShapeImageAndRect): Deleted.
* rendering/shapes/ShapeOutsideInfo.h:

LayoutTests:
* fast/shapes/shape-outside-floats/shape-outside-uncached-gradient-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-uncached-gradient.html: Added.

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

7 years agoiOS Debug build fix
timothy_horton@apple.com [Thu, 5 Jun 2014 01:05:45 +0000 (01:05 +0000)]
iOS Debug build fix

Rubber-stamped by Filip Pizlo.

* Configurations/LLVMForJSC.xcconfig:
Dead-code strip the llvmForJSC library unconditionally, to work around <rdar://problem/16920916>.

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

7 years ago[CSS Shapes] Fix off by one in creating a RasterShape
bjonesbe@adobe.com [Thu, 5 Jun 2014 00:45:38 +0000 (00:45 +0000)]
[CSS Shapes] Fix off by one in creating a RasterShape
https://bugs.webkit.org/show_bug.cgi?id=133499

Reviewed by Darin Adler.

Source/WebCore:
Test: fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-crash.html

* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
    marginY1 is supposed to be an inclusive endpoint, however, maxY()
    is an exclusive endpoint. This simply changes marginY1 into an
    exclusive endpoint.

LayoutTests:
* fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-crash-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-crash.html: Added.

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

7 years ago[iOS][WK2] Restore the visual scroll position instead of the dom scroll position...
benjamin@webkit.org [Wed, 4 Jun 2014 23:41:15 +0000 (23:41 +0000)]
[iOS][WK2] Restore the visual scroll position instead of the dom scroll position when restoring states from the history
https://bugs.webkit.org/show_bug.cgi?id=133490

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-06-04
Reviewed by Tim Horton.

Source/WebCore:
Expose the WebKit1 parameter "ScaleIsInitial". It is used for a similar concept in WebKit2 (userHasChangedPageScaleFactor).

Add "exposedContentPosition", which is the scroll position of the exposed rect.

* history/HistoryItem.h:
(WebCore::HistoryItem::exposedContentPosition):
(WebCore::HistoryItem::setExposedContentPosition):
(WebCore::HistoryItem::setScaleIsInitial):
* loader/HistoryController.cpp:
(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):

Source/WebKit2:
Instead of restoring the scroll position, restore the visual position. This makes pages appear at the same position
on screen ignoring changes in the obscured top inset.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
(WebKit::WebFrameLoaderClient::saveViewStateToItem):
(WebKit::WebFrameLoaderClient::restoreViewState):
Save and restore userHasChangedPageScaleFactor to handle rescaling correctly.
Limit the scale into valid viewport limits in case the viewport meta tag has changed or the device has rotated.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::userHasChangedPageScaleFactor):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::restorePageState):
(WebKit::WebPage::updateVisibleContentRects):
In updateVisibleContentRects, we keep track or the current difference between the exposed rect and the unobscured rect.
When restoring the page position, we use the current top inset and the saved exposed rect to restore the visual
scroll position.

It is not very robust as it does not resolve races between the two processes, but that is not worse than what we is there now.

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

7 years agoEnable WebGL on Windows.
achristensen@apple.com [Wed, 4 Jun 2014 22:22:23 +0000 (22:22 +0000)]
Enable WebGL on Windows.
https://bugs.webkit.org/show_bug.cgi?id=133503

Reviewed by Brent Fulgham.

Source/ThirdParty/ANGLE:
* changes.diff
Recorded additional changes from ANGLE.
* ANGLE.vcxproj/libEGL.vcxproj:
* ANGLE.vcxproj/libEGL.vcxproj.filters:
* ANGLE.vcxproj/libGLESv2.vcxproj:
* ANGLE.vcxproj/libGLESv2.vcxproj.filters:
* include/EGL/egl.h:
* include/EGL/eglsoftlinking.h: Added.
* include/GLES2/gl2.h:
* include/GLES2/gl2softlinking.h: Added.
Resurrected soft linking headers from r153664.
* src/libGLESv2/renderer/VertexBuffer.cpp:
(rx::VertexBufferInterface::directStoragePossible):
Compile fix for Win64.

Source/WebCore:
No new tests, but we should enable the webgl tests soon.

* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::markContextChanged):
Check if the context and RenderBox are accelerated to use accelerated code path.
* html/canvas/WebGLRenderingContext.h:
Disable accelerated compositing on WebGL canvases until that works.
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):
Compile fix after r166563.

Source/WebKit:
* WebKit.vcxproj/WebKit.sln:
Build ANGLE projects and add them as a dependency for linking WebKit.dll.
* WebKit.vcxproj/WebKit/WebKitCommon.props:
Link to ANGLE libraries to get EGL, GLESv2, and GLSL translator symbols.
* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
Added 64-bit linker symbol.

Source/WTF:
* wtf/FeatureDefines.h:
Enable WebGL for AppleWin and WinCairo ports.

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

7 years agoRegression(r169547): Crash in WebCore::styleForFirstLetter() while loading http:...
benjamin@webkit.org [Wed, 4 Jun 2014 22:08:44 +0000 (22:08 +0000)]
Regression(r169547): Crash in WebCore::styleForFirstLetter() while loading thenextweb.com/apple/2014/02/21/apple-confirms-acquired-testflight-creator-burstly/
https://bugs.webkit.org/show_bug.cgi?id=133500

Reviewed by Antti Koivisto.

Source/WebCore:
Unlike the other tree marking optimization, adding HasPseudoStyle() on an element style
during style resolution must be conservative and not set the flag unless every other filter
matched first.

After r169547, the SelectorChecker was setting flags on HasPseudoStyle() during the pseudo
element matching. If that passed but the remaining filter did not match, the element style
could have the flag "FIRST_LETTER" while not being able to resolve a style for "FIRST_LETTER".

When the layout code was creating the renderer, it would find the FIRST_LETTER flag on the main style
and try to get the specific style for FIRST_LETTER. Since no rule would resolve for FIRST_LETTER,
the style would be null and the code would be crashing when accessing its parameters.

This patch fixes the issue by moving the style marking for pseudo element at the end of the matching.

Test: fast/css/first-letter-on-non-matching-selectors.html

* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::match):
(WebCore::SelectorChecker::matchRecursively):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::match): Deleted.

LayoutTests:
* fast/css/first-letter-on-non-matching-selectors-expected.txt: Added.
* fast/css/first-letter-on-non-matching-selectors.html: Added.

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

7 years agoArrayIterator should not be exposed in Safari 8
oliver@apple.com [Wed, 4 Jun 2014 21:54:46 +0000 (21:54 +0000)]
ArrayIterator should not be exposed in Safari 8
https://bugs.webkit.org/show_bug.cgi?id=133494

Reviewed by Michael Saboff.

Source/JavaScriptCore:
Separate out types that require constructor objects, and don't
include the iterator types in that list.

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
* runtime/JSGlobalObject.h:

LayoutTests:
Add tests.

* js/no-iterator-constructors.html: Added.
* js/script-tests/no-iterator-constructors.js: Added.

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

7 years ago[iOS] allow UA to specify network interface
eric.carlson@apple.com [Wed, 4 Jun 2014 21:40:31 +0000 (21:40 +0000)]
[iOS] allow UA to specify network interface
https://bugs.webkit.org/show_bug.cgi?id=133396

Reviewed by Jer Noble.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerInterfaceName): Return settings->networkInterfaceName.
* html/HTMLMediaElement.h:

* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::mediaPlayerNetworkInterfaceName): Pass through the media element.
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerNetworkInterfaceName):

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): If the media player
    wants to use a specific netork interface name, pass it to the AVAsset allocator.

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

7 years agoDFG::Safepoint::begin() should set m_didCallBegin before releasing the rightToRun...
fpizlo@apple.com [Wed, 4 Jun 2014 21:28:57 +0000 (21:28 +0000)]
DFG::Safepoint::begin() should set m_didCallBegin before releasing the rightToRun lock, because otherwise, Safepoint::checkLivenessAndVisitChildren() may assert due to a race
https://bugs.webkit.org/show_bug.cgi?id=133525
<rdar://problem/16790296>

Reviewed by Oliver Hunt.

* dfg/DFGSafepoint.cpp:
(JSC::DFG::Safepoint::begin):

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

7 years agoPasting multiple photos on iOS only pastes one photo
jhoneycutt@apple.com [Wed, 4 Jun 2014 20:46:39 +0000 (20:46 +0000)]
Pasting multiple photos on iOS only pastes one photo

<https://bugs.webkit.org/show_bug.cgi?id=133495>
<rdar://problem/16138616>

Reviewed by Alexey Proskuryakov.

* editing/ios/EditorIOS.mm:
(WebCore::Editor::pasteWithPasteboard):
Create a WebContentReader. For each pasteboard item, get the document
fragment for that item, and add it to the reader. If we fail to get
the fragment from the delegate, fall back to using
webContentFromPasteboard() as before.

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

7 years agoUse references instead of pointers for non-optional arguments during text layout
commit-queue@webkit.org [Wed, 4 Jun 2014 20:42:33 +0000 (20:42 +0000)]
Use references instead of pointers for non-optional arguments during text layout
https://bugs.webkit.org/show_bug.cgi?id=133501

Patch by Myles C. Maxfield <litherum@gmail.com> on 2014-06-04
Reviewed by Tim Horton.

This patch applies some cleanup to InlineBox layout functions to take
references instead of pointers where appropriate.

No new tests are necessary because there is no behavior change.

* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeLogicalBoxHeights): Make the function take a
reference to the RootInlineBox instead of a pointer. This function does some
rounding.
(WebCore::InlineFlowBox::addTextBoxVisualOverflow): Make the function take a
reference to the InlineTextBox instead of a pointer.
(WebCore::InlineFlowBox::computeOverflow): Update call to addTextBoxVisualOverflow
to pass a reference instead of a pointer.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::alignBoxesInBlockDirection): Update call to
computeLogicalBoxHeights to pass a reference instead of a pointer.
(WebCore::RootInlineBox::ascentAndDescentForBox): Make the function take a
reference to the InlineBox instead of a pointer.
(WebCore::RootInlineBox::includeLeadingForBox): Make the function take a reference
instead of a pointer.
(WebCore::RootInlineBox::includeFontForBox): Ditto.
(WebCore::RootInlineBox::includeGlyphsForBox): Ditto.
(WebCore::RootInlineBox::includeMarginForBox): Ditto.
* rendering/RootInlineBox.h: Move functions that are not externally called into
a private: section. In addition, update function signatures to take references
instead of pointers.

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

7 years agoLists styled with SVG fonts are not rendered as expected
mmaxfield@apple.com [Wed, 4 Jun 2014 20:22:16 +0000 (20:22 +0000)]
Lists styled with SVG fonts are not rendered as expected
https://bugs.webkit.org/show_bug.cgi?id=133198

Reviewed by Simon Fraser.

Source/WebCore:
There were a couple places in RenderListMarker and RenderMenuList that were
implicitly creating TextRuns by passing a String to a function which
expected a TextRun. Because TextRun has a constructor which takes a single
String and isn't marked explicit, TextRuns were being created without
any of the associated code that initializes the TextRun (such as creating
a RenderingContext if necessary).

There is currently one more client of this code that needs to be fixed.
This is in RenderThemeIOS::adjustMenuListButtonStyle(). However, fixing
this will be a somewhat large change, and is out of scope for this patch.
I will submit a follow-up patch that fixes this permanently. Once this is
fixed, I can mark TextRun's constructors as explicit.

Test: svg/custom/list-items-with-svg-font-family.html

* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun): Mark constructors as explicit.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::computePreferredLogicalWidths): Call
RenderBlock::constructTextRun.
(WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
* rendering/RenderMenuList.cpp:
(RenderMenuList::updateOptionsWidth): Ditto.
* rendering/RenderThemeIOS.mm:
(WebCore::adjustInputElementButtonStyle): Instead of crashing, mark
form controls rendered with SVG fonts as having 0 width. This isn't
perfect, but fixing this is out of scope for this patch.

LayoutTests:
See per-file comments.

* platform/ios-sim/fonts/input-style-with-svg-font-crash.html: Added. Make sure
that iOS input elements don't crash when styled with SVG fonts.
* platform/ios-sim/fonts/resources/graffiti.svg: Added. SVG font for above test.
* svg/custom/list-items-with-svg-font-family-expected.txt: Added.
* svg/custom/list-items-with-svg-font-family.html: Added. Make sure there is
no crash when styling list elements with SVG fonts.

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

7 years ago[GTK] Unreviewed GTK gardening.
commit-queue@webkit.org [Wed, 4 Jun 2014 19:25:23 +0000 (19:25 +0000)]
[GTK] Unreviewed GTK gardening.

Add the new HiDPI tests to the bug that tracks support for this
feature on GTK.
Mark and report the new tests introduced on r169407 that timeout.
Mark and report the new accesibility test introduced on r169427
that fails.
Move the reported timeout tests to the timeout section of the
TestExpectations file.

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-06-04

* platform/gtk/TestExpectations:

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

7 years agoBuild ASan WebKit for iOS Simulator
dfarler@apple.com [Wed, 4 Jun 2014 18:18:09 +0000 (18:18 +0000)]
Build ASan WebKit for iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=133489

Reviewed by Darin Adler.

* DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
* DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
- Add missing ASan LDFLAGS.
* asan/asan.xcconfig:
- Split compiler-rt linker flags for OS X and iOS Simulator

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

7 years agoWebKit should adopt journal_mode=wal for all SQLite databases.
akling@apple.com [Wed, 4 Jun 2014 16:24:03 +0000 (16:24 +0000)]
WebKit should adopt journal_mode=wal for all SQLite databases.
<https://webkit.org/b/133496>
<rdar://problem/15600186>

We already had code to enable write-ahead logging, but it didn't work
since calling SQLiteStatement::step() without first calling prepare()
is a no-op.

Converted it to use into a simple executeCommand() instead.

Reviewed by Brady Eidson.

* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open):

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

7 years agoREGRESSION: [CSS Regions] Regions with overflow:auto generate scrollbars even if...
stavila@adobe.com [Wed, 4 Jun 2014 12:41:27 +0000 (12:41 +0000)]
REGRESSION: [CSS Regions] Regions with overflow:auto generate scrollbars even if the content flows into the following regions and as such, should not be scrolled
https://bugs.webkit.org/show_bug.cgi?id=133481

Reviewed by Antti Koivisto.

Source/WebCore:
When enlarging the layout overflow of a scrollable region, the portion of the content that flows
in the region must be taken into consideration. If the content continues to flow into the next
region, the layout overflow of the current region must not be enlarged.

Test: fast/regions/scrollable-first-region.html

* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::addRegionsOverflowFromChild):

LayoutTests:
Added test for a large item flowed through two regions with the first region having overflow:auto.
The region must NOT scroll.

* fast/regions/scrollable-first-region-expected.html: Added.
* fast/regions/scrollable-first-region.html: Added.

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

7 years agoFix some corner cases of :hover and :active in quirks mode
benjamin@webkit.org [Wed, 4 Jun 2014 07:25:29 +0000 (07:25 +0000)]
Fix some corner cases of :hover and :active in quirks mode
https://bugs.webkit.org/show_bug.cgi?id=133493

Reviewed by Andreas Kling.

Source/WebCore:
Previously, the quirks mode of :hover and :active were evaluated from the SelectorFragment
in fragmentOnlyMatchesLinksInQuirksMode(). There were two problems with that approach:
1) The FragmentGenerator optimizes out some filter when they always match or can never match.
   Those fragment should still qualify :hover and :active, but they were lost
   for fragmentOnlyMatchesLinksInQuirksMode().
2) Explicitely listing every attribute of SelectorFragment in fragmentOnlyMatchesLinksInQuirksMode()
   was extremly fragile. When :not() and :-webkit-any() were added, we forgot to update the quirks
   exceptions.

This patch moves the quirks mode exception code from the code generator to the Fragment generator.
The useless filters are no longer ignored for the quirks, and we don't need to update the quirks mode detection
with every change of SelectorFragment.

It is inefficient and ugly, but that is how that quirks is defined. It is only a problem for compilation,
execution time remains unchanged.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::pseudoClassOnlyMatchesLinksInQuirksMode):
(WebCore::SelectorCompiler::constructFragments):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSpecialFailureInQuirksModeForActiveAndHoverIfNeeded):
(WebCore::SelectorCompiler::fragmentOnlyMatchesLinksInQuirksMode): Deleted.

LayoutTests:
Add test case for the corner cases.

* fast/selectors/active-hover-quirks-expected.txt:
* fast/selectors/active-quirks-expected.txt:
* fast/selectors/hover-quirks-expected.txt:
* fast/selectors/resources/hover-active-quirks-utility.js:

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

7 years agoNeed to check invalid scheme in navigator content utils
gyuyoung.kim@samsung.com [Wed, 4 Jun 2014 03:33:30 +0000 (03:33 +0000)]
Need to check invalid scheme in navigator content utils
https://bugs.webkit.org/show_bug.cgi?id=133296

Reviewed by Darin Adler.

Source/WebCore:
* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::verifyProtocolHandlerScheme): Just fix a wrong typo.

LayoutTests:
Add tests that check that schemes with colons in their names are rejected.
Spec: http://www.whatwg.org/specs/web-apps/current-work/#custom-handlers

* fast/dom/NavigatorContentUtils/is-protocol-handler-registered-expected.txt:
* fast/dom/NavigatorContentUtils/is-protocol-handler-registered.html:
* fast/dom/NavigatorContentUtils/register-protocol-handler-expected.txt:
* fast/dom/NavigatorContentUtils/register-protocol-handler.html:
* fast/dom/NavigatorContentUtils/unregister-protocol-handler-expected.txt:
* fast/dom/NavigatorContentUtils/unregister-protocol-handler.html:
* platform/efl/fast/dom/NavigatorContentUtils/register-protocol-handler-expected.txt:
* platform/efl/fast/dom/NavigatorContentUtils/unregister-protocol-handler-expected.txt:

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

7 years agoWebKit2 View Gestures (Zoom): Can show unpainted regions when zoom-pinching-out
timothy_horton@apple.com [Wed, 4 Jun 2014 01:27:00 +0000 (01:27 +0000)]
WebKit2 View Gestures (Zoom): Can show unpainted regions when zoom-pinching-out
https://bugs.webkit.org/show_bug.cgi?id=133472
<rdar://problem/15686848>

Reviewed by Simon Fraser.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToLayers):
(WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
Use prepopulateRect() when zooming out to ensure that we have tiles for the current exposed area.

Factor applyTransientZoomToLayers out of adjustTransientZoom, so that
flushLayers can call applyTransientZoomToLayers without ending up calling prepopulateRect()
during layer flushing, which causes trouble.

It is OK to populate layers at the current scale even when zooming out, because the overdraw
already covers most of the zoomed out area, and we're only adding a few more tiles at worst.

* WebCore.exp.in:

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

7 years agoAdd myself (yoav@yoav.ws) to contributors.json
yoav@yoav.ws [Tue, 3 Jun 2014 22:50:00 +0000 (22:50 +0000)]
Add myself (yoav@yoav.ws) to contributors.json

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

7 years agoRefactor the srcset parser into its own file
yoav@yoav.ws [Tue, 3 Jun 2014 22:44:26 +0000 (22:44 +0000)]
Refactor the srcset parser into its own file
https://bugs.webkit.org/show_bug.cgi?id=133480

Reviewed by Andreas Kling.

No new tests, since this patch doesn't change the parser's behavior.

This patch moves the srcset parser into its own file,
in order to prepare the code for alignment with recent spec changes.

* CMakeLists.txt:
* html/HTMLImageElement.cpp:
* html/parser/HTMLParserIdioms.cpp:
(WebCore::compareByScaleFactor): Deleted.
(WebCore::parseDescriptors): Deleted.
(WebCore::parseImagesWithScaleFromSrcsetAttribute): Deleted.
(WebCore::bestFitSourceForImageAttributes): Deleted.
* html/parser/HTMLParserIdioms.h:
(WebCore::ImageWithScale::ImageWithScale): Deleted.
(WebCore::ImageWithScale::imageURL): Deleted.
(WebCore::ImageWithScale::scaleFactor): Deleted.
* html/parser/HTMLPreloadScanner.cpp:
* html/parser/HTMLSrcsetParser.cpp: Added.
(WebCore::compareByScaleFactor):
(WebCore::parseDescriptors):
(WebCore::parseImagesWithScaleFromSrcsetAttribute):
(WebCore::bestFitSourceForImageAttributes):
* html/parser/HTMLSrcsetParser.h: Added.
(WebCore::ImageWithScale::ImageWithScale):
(WebCore::ImageWithScale::imageURL):
(WebCore::ImageWithScale::scaleFactor):

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

7 years ago[ATK] accessibility/textarea-selected-text-range.html is failing
mario.prada@samsung.com [Tue, 3 Jun 2014 21:38:00 +0000 (21:38 +0000)]
[ATK] accessibility/textarea-selected-text-range.html is failing
https://bugs.webkit.org/show_bug.cgi?id=133479

Reviewed by Chris Fleizach.

Implement atk_text_set_caret_offset() in terms of
atk_text_set_selection() for zero-length selections.

No new tests needed, the following test should just start
passing again now: accessibility/textarea-selected-text-range.html.

* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(webkitAccessibleTextSetCaretOffset): Reimplemented this function
in terms of webkitAccessibleTextSetSelection().

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

7 years agoCorrected arm64 assertion in css jit.
achristensen@apple.com [Tue, 3 Jun 2014 21:37:06 +0000 (21:37 +0000)]
Corrected arm64 assertion in css jit.

Rubber stamped by Benjamin Poulain.

* cssjit/StackAllocator.h:
(WebCore::StackAllocator::pop):
Changed assertion from incorrectly matching x86_64 to using the correct minimum offset,
taking into account that a stackUnitInBytes is used for two registers on arm64
except the last stack unit, which could only be used for one register if there are
an odd number of registers.

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

7 years ago[iOS] Start ignoring common bogus viewport parameters
benjamin@webkit.org [Tue, 3 Jun 2014 21:31:26 +0000 (21:31 +0000)]
[iOS] Start ignoring common bogus viewport parameters
https://bugs.webkit.org/show_bug.cgi?id=133466
<rdar://problem/16203396>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-06-03
Reviewed by Sam Weinig.

Incorrect viewports are spreading really quickly lately. We have to start ignoring
some combinations of arguments as they are almost always used incorrectly, causing
a poor user experience on those websites.

* dom/ViewportArguments.cpp:
(WebCore::finalizeViewportArguments):

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

7 years agoCSS JIT: add support for the "any" pseudo class
commit-queue@webkit.org [Tue, 3 Jun 2014 21:26:50 +0000 (21:26 +0000)]
CSS JIT: add support for the "any" pseudo class
https://bugs.webkit.org/show_bug.cgi?id=133473

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

Add support for the :any pseudo class.

Source/WebCore:
Test: fast/selectors/pseudo-class-any.html

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesAnyPseudoClass):

LayoutTests:
* fast/selectors/pseudo-class-any-expected.txt: Added.
* fast/selectors/pseudo-class-any.html: Added.

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

7 years agoUpdate PlatformTimeRanges to use MediaTime rather than doubles for time values.
jer.noble@apple.com [Tue, 3 Jun 2014 21:09:07 +0000 (21:09 +0000)]
Update PlatformTimeRanges to use MediaTime rather than doubles for time values.
https://bugs.webkit.org/show_bug.cgi?id=133454

Reviewed by Eric Carlson.

Source/WebCore:
PlatformTimeRanges will now use MediaTime, so operations at the platform level won't
lose precision when converting to and from doubles and rational time values like CMTime.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::currentTimeFudgeFactor):
(WebCore::SourceBuffer::hasCurrentTime):
(WebCore::SourceBuffer::hasFutureTime):
(WebCore::SourceBuffer::canPlayThrough):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/TimeRanges.cpp:
(WebCore::TimeRanges::TimeRanges):
(WebCore::TimeRanges::start):
(WebCore::TimeRanges::end):
(WebCore::TimeRanges::add):
(WebCore::TimeRanges::contain):
(WebCore::TimeRanges::find):
(WebCore::TimeRanges::nearest):
(WebCore::TimeRanges::totalDuration):
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::seekable):
* platform/graphics/PlatformTimeRanges.cpp:
(WebCore::PlatformTimeRanges::create):
(WebCore::PlatformTimeRanges::PlatformTimeRanges):
(WebCore::PlatformTimeRanges::invert):
(WebCore::PlatformTimeRanges::start):
(WebCore::PlatformTimeRanges::end):
(WebCore::PlatformTimeRanges::add):
(WebCore::PlatformTimeRanges::contain):
(WebCore::PlatformTimeRanges::find):
(WebCore::PlatformTimeRanges::nearest):
(WebCore::PlatformTimeRanges::totalDuration):
* platform/graphics/PlatformTimeRanges.h:
(WebCore::PlatformTimeRanges::Range::Range):
(WebCore::PlatformTimeRanges::Range::isPointInRange):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Deleted.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::buffered):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::buffered):
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::advanceCurrentTime):

LayoutTests:
Update the video-pause-immediately to allow for small floating point differences.

* media/video-pause-immediately-expected.txt:
* media/video-pause-immediately.html:

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

7 years ago[iOS][WK2] Align the highlight rects with device pixels
benjamin@webkit.org [Tue, 3 Jun 2014 20:59:04 +0000 (20:59 +0000)]
[iOS][WK2] Align the highlight rects with device pixels
https://bugs.webkit.org/show_bug.cgi?id=133464

Source/WebCore:

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

Add utility functions to pixel align points and rects.

* WebCore.exp.in:
* platform/graphics/FloatPoint.h:
(WebCore::flooredToDevicePixels):
(WebCore::ceiledToDevicePixels):
* platform/graphics/FloatRect.cpp:
(WebCore::enclosingRectExtendedToDevicePixels):
* platform/graphics/FloatRect.h:

Source/WebKit2:
<rdar://problem/16708861>

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

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showTapHighlightWithColor:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):

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

7 years agoAdd Igalia WebKit blog to the planet
rego@igalia.com [Tue, 3 Jun 2014 20:13:32 +0000 (20:13 +0000)]
Add Igalia WebKit blog to the planet
https://bugs.webkit.org/show_bug.cgi?id=133446

Reviewed by Bem Jones-Bey.

* config.ini: Add Igalia WebKit blog to the planet and remove Martin's
and Xan's blogs as they will be included there.

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

7 years agoPrepopulated tiles may never be unparented from TileGrids with aggressive tile retent...
timothy_horton@apple.com [Tue, 3 Jun 2014 18:59:28 +0000 (18:59 +0000)]
Prepopulated tiles may never be unparented from TileGrids with aggressive tile retention on
https://bugs.webkit.org/show_bug.cgi?id=133471

Reviewed by Simon Fraser.

* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileGrid.h:
(WebCore::TileGrid::TileCohortInfo::TileCohortInfo):
* platform/graphics/ca/mac/TileGrid.mm:
(WebCore::TileGrid::TileCohortInfo::timeUntilExpiration):
(WebCore::TileGrid::cohortRemovalTimerFired):
Factor timeUntilExpiration() out of cohortRemovalTimerFired().

(WebCore::TileGrid::revalidateTiles):
Ensure that secondary tiles that never touch the primary coverage rect
are still unparented eventually (after 2 seconds, the same lifetime we use
for cohorts in non-aggressive retention).
Schedule another revalidateTiles if we left parented secondary tiles behind.

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

7 years agoTileGrid::prepopulateRect populates the wrong tiles if scale != 1
timothy_horton@apple.com [Tue, 3 Jun 2014 18:13:28 +0000 (18:13 +0000)]
TileGrid::prepopulateRect populates the wrong tiles if scale != 1
https://bugs.webkit.org/show_bug.cgi?id=133470

Reviewed by Simon Fraser.

* page/FrameView.cpp:
(WebCore::FrameView::requestScrollPositionUpdate):
* platform/graphics/ca/mac/TileGrid.mm:
(WebCore::TileGrid::prepopulateRect):
(WebCore::TileGrid::revalidateTiles):
prepopulateRect takes rects in "content" coordinates, but when later passed to
ensureTilesForRect, they're expected to be in the same coordinate space as the layer's
visible rect, and are scaled up. So, apply the inverse scale to counter that.

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

7 years agoMinor TileCoverageMap refinements
timothy_horton@apple.com [Tue, 3 Jun 2014 18:12:44 +0000 (18:12 +0000)]
Minor TileCoverageMap refinements
https://bugs.webkit.org/show_bug.cgi?id=133468

Reviewed by Simon Fraser.

* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::setContentsScale):
* platform/graphics/ca/mac/TileCoverageMap.h:
* platform/graphics/ca/mac/TileCoverageMap.mm:
(WebCore::TileCoverageMap::TileCoverageMap):
(WebCore::TileCoverageMap::setDeviceScaleFactor):
Keep the TileCoverageMap's contentsScale at the device scale factor, so that it
looks sharp on non-1x displays.

(WebCore::TileCoverageMap::update):
Decrease the height available for the TileCoverageMap by the topContentInset;
it's already being vertically offset by the topContentInset, but the height was
not adjusted, so it would run off the bottom of the window.

* platform/graphics/ca/mac/TileGrid.mm:
(WebCore::TileGrid::drawTileMapContents):
If using aggressive tile retention (and thus not coloring tiles based on age),
dim tiles that aren't in the visible cohort.

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

7 years agoFix a typo, TileGrid::updateTilerLayerProperties
timothy_horton@apple.com [Tue, 3 Jun 2014 18:11:31 +0000 (18:11 +0000)]
Fix a typo, TileGrid::updateTilerLayerProperties
https://bugs.webkit.org/show_bug.cgi?id=133474

Reviewed by Anders Carlsson.

* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::setAcceleratesDrawing):
(WebCore::TileController::setTilesOpaque):
(WebCore::TileController::setTileDebugBorderWidth):
(WebCore::TileController::setTileDebugBorderColor):
* platform/graphics/ca/mac/TileGrid.h:
* platform/graphics/ca/mac/TileGrid.mm:
(WebCore::TileGrid::updateTileLayerProperties):
(WebCore::TileGrid::updateTilerLayerProperties):
s/updateTilerLayerProperties/updateTileLayerProperties/g

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

7 years agoLLVM soft-linking should be truly fail-silent
fpizlo@apple.com [Tue, 3 Jun 2014 16:42:00 +0000 (16:42 +0000)]
LLVM soft-linking should be truly fail-silent
https://bugs.webkit.org/show_bug.cgi?id=133482

Reviewed by Mark Lam.

* llvm/InitializeLLVMPOSIX.cpp:
(JSC::initializeLLVMPOSIX): Missing return statement in the dlsym() returning null case.

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

7 years ago[SOUP] ResourceLoadTiming.responseStart is always 0
carlosgc@webkit.org [Tue, 3 Jun 2014 12:04:01 +0000 (12:04 +0000)]
[SOUP] ResourceLoadTiming.responseStart is always 0
https://bugs.webkit.org/show_bug.cgi?id=133469

Reviewed by Sergio Villar Senin.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::sendRequestCallback): Record the responseStart time.

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

7 years agoREGRESSION(r169092 and r169102): Skip failing JSC tests poperly on non-x86 Darwin...
commit-queue@webkit.org [Tue, 3 Jun 2014 11:40:34 +0000 (11:40 +0000)]
REGRESSION(r169092 and r169102): Skip failing JSC tests poperly on non-x86 Darwin platforms
https://bugs.webkit.org/show_bug.cgi?id=133149

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-06-03
Reviewed by Csaba Osztrogon√°c.

PerformanceTests/SunSpider:
* profiler-test.yaml: Skip profiler tests only if the architecture isn't x86 and the host is Darwin.

Source/JavaScriptCore:
* tests/mozilla/mozilla-tests.yaml: Skip js1_5/Regress/regress-159334.js only if the architecture isn't x86 and the host is Darwin.

Tools:
* Scripts/run-jsc-stress-tests: Added determineOS to determine the host operating system the script run on.

LayoutTests:
* js/script-tests/function-apply-many-args.js: Skip it only if the architecture isn't x86 and the host is Darwin.

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

7 years agoAdd a verbose flag to binding tests
commit-queue@webkit.org [Tue, 3 Jun 2014 06:51:26 +0000 (06:51 +0000)]
Add a verbose flag to binding tests
https://bugs.webkit.org/show_bug.cgi?id=122303

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-06-02
Reviewed by Csaba Osztrogon√°c.

This patch will:
- Add a verbose keyword argument to the BindingsTests constructor,
- Add --no-verbose option to the run-bindigs-test.
Verbose mode, which is on by default, prints positive results to stdout as before.
When the --no-verbose option added to run-bindings-tests, positive results are not printed at all.

Original patch from Matthew Hanson <matthew_hanson@apple.com>

* Scripts/run-bindings-tests:
(main):
* Scripts/webkitpy/bindings/main.py:
(BindingsTests.__init__):
(BindingsTests.detect_changes):

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

7 years agoUnreviewed EFL gardening. Rebaseline after r169522.
jinwoo7.song@samsung.com [Tue, 3 Jun 2014 05:47:13 +0000 (05:47 +0000)]
Unreviewed EFL gardening. Rebaseline after r169522.

* platform/efl/svg/W3C-SVG-1.1/animate-elem-32-t-expected.png:
* platform/efl/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.png:
* platform/efl/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.png:
* platform/efl/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.png:
* platform/efl/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.png:
* svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:

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

7 years agoUnreviewed EFL gardening. Rebaseline.
jinwoo7.song@samsung.com [Tue, 3 Jun 2014 04:59:18 +0000 (04:59 +0000)]
Unreviewed EFL gardening. Rebaseline.

* platform/efl/mathml/opentype/large-operators-LatinModern-expected.txt:
* platform/efl/mathml/opentype/opentype-stretchy-expected.txt:
* platform/efl/mathml/opentype/vertical-LatinModern-expected.txt:
* platform/efl/mathml/presentation/mo-stretch-expected.txt:

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

7 years agoUnreviewed EFL gardening.
jinwoo7.song@samsung.com [Tue, 3 Jun 2014 02:04:39 +0000 (02:04 +0000)]
Unreviewed EFL gardening.

Move the EFL specific test result to platform directory.

* platform/efl/fast/events/ghostly-mousemoves-in-subframe-expected.txt: Renamed from LayoutTests/fast/events/ghostly-mousemoves-in-subframe-expected.txt.

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

7 years agoUnreviewed EFL gardening.
jinwoo7.song@samsung.com [Tue, 3 Jun 2014 01:59:23 +0000 (01:59 +0000)]
Unreviewed EFL gardening.

Added expectation result after r167684, r169257, and r169390.

* fast/events/ghostly-mousemoves-in-subframe-expected.txt: Added.
* platform/efl/fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position-expected.txt: Added.
* platform/efl/fast/multicol/pagination/nested-transforms-expected.txt: Added.

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

7 years agoREGRESSION (iOS WebKit2): Single tap in pages with focus on load will clear the selec...
enrica@apple.com [Tue, 3 Jun 2014 01:26:10 +0000 (01:26 +0000)]
REGRESSION (iOS WebKit2): Single tap in pages with focus on load will clear the selection after the keyboard appears.
https://bugs.webkit.org/show_bug.cgi?id=133465
<rdar://problem/17059189>

Reviewed by Benjamin Poulain.

If a page focuses an input field on load we don't bring the keyboard on screen
since the keyboard is only shown when the user interacts with the page with gestures.
Still the WebProcess sets the focus and the selection according to the rules.
We need to make sure the UI process doesn't accidentally clear this selection
when the user starts the interaction with the page.
This patch also improves the function that retrieves the autocorrection data
to be returned to the keyboard, making sure that we always send back a reply
even when we don't have a valid selection.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _singleTapCommited:]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestAutocorrectionData):

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

7 years agoError running copy-webkitlibraries-to-product-directory
ddkilzer@apple.com [Tue, 3 Jun 2014 01:15:43 +0000 (01:15 +0000)]
Error running copy-webkitlibraries-to-product-directory
<http://webkit.org/b/133449>
<rdar://problem/17047638>

Reviewed by Filip Pizlo.

* Makefile: Ignore the mysterious future.  Use "@true" to
suppress the annoying "Nothing to be done for `libs'." message.

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

7 years ago[iOS] WebCore fails to build: platform/network/mac/ResourceHandleMac.mm:729:62: error...
ddkilzer@apple.com [Tue, 3 Jun 2014 00:37:02 +0000 (00:37 +0000)]
[iOS] WebCore fails to build: platform/network/mac/ResourceHandleMac.mm:729:62: error: use of undeclared identifier '_CFURLConnectionCopyTimingData'
<http://webkit.org/b/133445>
<rdar://problem/17090035>

Reviewed by Alexey Proskuryakov.

* platform/network/mac/ResourceHandleMac.mm: Attempt to fix the
build by including a private header and local declaration.

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

7 years agoChange DeferrableOneShotTimer to use std::function instead of being a class template
andersca@apple.com [Mon, 2 Jun 2014 23:44:48 +0000 (23:44 +0000)]
Change DeferrableOneShotTimer to use std::function instead of being a class template
https://bugs.webkit.org/show_bug.cgi?id=133423

Reviewed by Antti Koivisto.

Source/WebCore:
Also, add a new constructor to DeferrableOneShotTimer that takes an std::function. Change the callback
to not pass a DeferrableOneShotTimer& anymore. Change the delay parameter to use std::chrono::milliseconds.

* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::CachedGeneratedImage::CachedGeneratedImage):
(WebCore::CSSImageGeneratorValue::CachedGeneratedImage::evictionTimerFired):
* css/CSSImageGeneratorValue.h:
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired):
* html/HTMLPlugInImageElement.h:
* loader/cache/CachedResource.cpp:
(WebCore::deadDecodedDataDeletionIntervalForResourceType):
(WebCore::CachedResource::destroyDecodedDataIfNeeded):
(WebCore::CachedResource::decodedDataDeletionTimerFired):
* loader/cache/CachedResource.h:
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::MemoryCache):
* loader/cache/MemoryCache.h:
(WebCore::MemoryCache::setDeadDecodedDataDeletionInterval):
(WebCore::MemoryCache::deadDecodedDataDeletionInterval):
* platform/Timer.h:
(WebCore::Timer::Timer):
(WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer):
* platform/graphics/cg/SubimageCacheWithTimer.cpp:
(WebCore::SubimageCacheWithTimer::invalidateCacheTimerFired):
* platform/graphics/cg/SubimageCacheWithTimer.h:

Source/WebKit/mac:
* WebView/WebView.mm:
(+[WebView _setCacheModel:]):

Source/WebKit2:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformSetCacheModel):
* Shared/CacheModel.cpp:
(WebKit::calculateCacheSizes):
* Shared/CacheModel.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pluginSnapshotTimerFired):
* WebProcess/Plugins/PluginView.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetCacheModel):

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

7 years ago[iOS][WK2] Round the UIScrollView content size to device pixel
benjamin@webkit.org [Mon, 2 Jun 2014 22:18:54 +0000 (22:18 +0000)]
[iOS][WK2] Round the UIScrollView content size to device pixel
https://bugs.webkit.org/show_bug.cgi?id=133417
<rdar://problem/15922440>

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

We should really have the scaled content size floored to device pixels, but that will be for another
time.
This patch ensure the content size as seen by the API is rounded to device pixels. The value is floored
to avoid showing partial pixels when the content is stable.

* UIProcess/API/Cocoa/WKWebView.mm:
(floorFloatToPixels):
(roundScrollViewCountentSize):
(-[WKWebView _setHasCustomContentView:loadedMIMEType:WTF::]):
(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView scrollView:contentSizeForZoomScale:withProposedSize:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):

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

7 years agoMove ifdef to the right place.
oliver@apple.com [Mon, 2 Jun 2014 22:13:43 +0000 (22:13 +0000)]
Move ifdef to the right place.

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

7 years agoMake pseudo element matching for style resolution more JIT friendly
benjamin@webkit.org [Mon, 2 Jun 2014 22:07:24 +0000 (22:07 +0000)]
Make pseudo element matching for style resolution more JIT friendly
https://bugs.webkit.org/show_bug.cgi?id=133441

Reviewed by Antti Koivisto.

Source/WebCore:
Sharing pseudo elements is a complicated mess shared between the SelectorChecker
and the RuleCollector.

For compiling pseudo element matching, it would be best if all the complexity could
be moved to compile time instead of runtime. It is also preferable to keep the compiler
independant of the RuleCollector implementation's detail.

This patch is a first step toward that goal. The main objective here is to make
"dynamicPseudo" completely internal to the SelectorChecker.
This is mostly a mechanical change, it is likely PseudoElement matching could be simplified
further but that is not attempted here.

Test: fast/css/style-sharing-empty-rule-modification.html

* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ruleMatches):
The condition regarding pseudo element matching has been moved into SelectorChecker::match().

This creates an extra cost for querySelector(), but that should be fine since the vast majority
of selectors are JIT compiled and never use SelectorChecker in the first place.

(WebCore::ElementRuleCollector::collectMatchingRulesForList):
The loop is changed such that the tree marking (Style::setHasPseudoStyle) could be moved
to SelectorChecker.

The conditions about the security origin for getMatchedCSSRules() and the empty style rules
are moved prior to the call to ElementRuleCollector::ruleMatches(). This ensure we keep the same
behavior of not adding the pseudo style for empty rules (this could also help with tree marking
in general but empty rules are probably uncommon).

There is one behavior change from making this loop simpler: the SharingRules and StyleInvalidation
modes now update their ruleRange. It is useless but it is simpler.

* css/ElementRuleCollector.h:
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
The tree marking has been moved here.

* css/SelectorChecker.h:
(WebCore::SelectorChecker::match):
The pseudo element matching has been moved here.

* css/StyleResolver.h:
(WebCore::checkRegionSelector):
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::selectorMatches):

LayoutTests:
Add more coverage for style sharing with empty rules, just in case.

* fast/css/style-sharing-empty-rule-modification-expected.txt: Added.
* fast/css/style-sharing-empty-rule-modification.html: Added.

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

7 years agoSet default voucher for XPC client processes
barraclough@apple.com [Mon, 2 Jun 2014 21:54:15 +0000 (21:54 +0000)]
Set default voucher for XPC client processes
https://bugs.webkit.org/show_bug.cgi?id=133458

Reviewed by Geoff Garen.

* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
    - add voucher_replace_default_voucher.
* config.h:
    - add HAVE_VOUCHERS.

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

7 years agoSend external playback properties to fullscreen.
commit-queue@webkit.org [Mon, 2 Jun 2014 21:13:12 +0000 (21:13 +0000)]
Send external playback properties to fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=133366

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

Source/WebCore:
Refactor property updates in WebVideoFullscreenModelMediaElement and update
setExternalPlayback on webkitcurrentplaybacktargetiswirelesschangedEvent.

* WebCore.exp.in: Add export for setExternalPlayback.
* platform/ios/WebVideoFullscreenInterface.h: add setExternalPlayback
* platform/ios/WebVideoFullscreenInterfaceAVKit.h: add setExternalPlayback
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerController isPlayingOnExternalScreen]): added
(+[WebAVPlayerController keyPathsForValuesAffectingPlayingOnExternalScreen]): added
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback): added
(WebVideoFullscreenInterfaceAVKit::enterFullscreen): added
* platform/ios/WebVideoFullscreenModelMediaElement.h: add updateForEventName
* platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::setMediaElement): refactor property changes into updateForEventName()
(WebVideoFullscreenModelMediaElement::handleEvent): refactor property changes into updateForEventName()
(WebVideoFullscreenModelMediaElement::updateForEventName): remove duplicate code, implement for setExternalPlayback

Source/WebKit2:
Forward setExternalPlayback.

* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: add setExternalPlaybackProperties
* WebProcess/ios/WebVideoFullscreenManager.h: add setExternalPlaybackProperties
* WebProcess/ios/WebVideoFullscreenManager.mm: add setExternalPlaybackProperties
(WebKit::WebVideoFullscreenManager::setExternalPlaybackProperties): added

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

7 years agoWebCore build fix for webreplay
commit-queue@webkit.org [Mon, 2 Jun 2014 20:53:58 +0000 (20:53 +0000)]
WebCore build fix for webreplay
https://bugs.webkit.org/show_bug.cgi?id=133401

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

* replay/MemoizedDOMResult.cpp:
(WebCore::MemoizedDOMResultBase::createFromEncodedResult):
Add a default nullptr return in order to avoid a gcc warning.
The warning is because of a non-void method that has a case which doesn't return.
* replay/ReplayController.cpp:
(WebCore::ReplayController::setForceDeterministicSettings):
Guard the ScrollingCoordinator with the appropriate #ifdef.
* replay/SerializationMethods.cpp:
Guard the KeypressCommand with COCOA as it is only present there.

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

7 years agoRemove unintentional changes to WKContentViewInteraction.mm
enrica@apple.com [Mon, 2 Jun 2014 20:42:47 +0000 (20:42 +0000)]
Remove unintentional changes to WKContentViewInteraction.mm
introduced in r169500.

Unreviewed.

* UIProcess/ios/WKContentViewInteraction.mm:
(+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):

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

7 years agoAddress some review comments on bug 133408
ggaren@apple.com [Mon, 2 Jun 2014 20:22:18 +0000 (20:22 +0000)]
Address some review comments on bug 133408
https://bugs.webkit.org/show_bug.cgi?id=133410

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKBackForwardListItem.h:
* UIProcess/API/Cocoa/WKUIDelegate.h:

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

7 years agoRename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
rniwa@webkit.org [Mon, 2 Jun 2014 20:08:52 +0000 (20:08 +0000)]
Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
https://bugs.webkit.org/show_bug.cgi?id=133455

Reviewed by Timothy Hatcher.

PerformanceTests:
* Speedometer/: Renamed from DoYouEvenBench.
* Skipped: Updated the path for InteractiveRunner.html

Tools:
Since the perf. dashboard doesn't support following renamed benchmarks,
keep reporting Speedometer results as DoYouEvenBench results.

* Scripts/webkitpy/performance_tests/perftestsrunner.py:
(_generate_results_dict):

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

7 years agoRename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
rniwa@webkit.org [Mon, 2 Jun 2014 19:57:39 +0000 (19:57 +0000)]
Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
https://bugs.webkit.org/show_bug.cgi?id=133455

Reviewed by Timothy Hatcher.

Renamed the benchmark to Speedometer and added the new look designed by Timothy Hatcher.

Also changed the unit of measurements from milliseconds to runs-per-minute averaged over the number
of the benchmark suites (7 for 1.0). You can divide 420000 by the old benchmark score (in milliseconds)
to get the new value for the set of tests that are enabled by default in 1.0. You can continue to see
results in milliseconds on Full.html#ms.

* DoYouEvenBench/Full.html: Added a bunch of sections and the description of the benchmark.

* DoYouEvenBench/resources/benchmark-report.js: Remove the newly added content when ran inside a DRT or
WTR so that run-perf-tests wouldn't error.
* DoYouEvenBench/resources/benchmark-runner.js:
(BenchmarkRunner.prototype._appendFrame): Call a newly added willAddTestFrame callback when it exists.

* DoYouEvenBench/resources/gauge.png: Added.
* DoYouEvenBench/resources/gauge@2x.png: Added.
* DoYouEvenBench/resources/logo.png: Added.
* DoYouEvenBench/resources/logo@2x.png: Added.
* DoYouEvenBench/resources/main.css: Replaced the style.

* DoYouEvenBench/resources/main.js:
(window.benchmarkClient.willAddTestFrame): Place the iframe right where #testContainer is shown.
(window.benchmarkClient.willRunTest): Show the name of the suite (e.g. EmberJS-TodoMVC) to run next.
(window.benchmarkClient.didRunSuites):
(window.benchmarkClient.willStartFirstIteration): Initialize _timeValues and _finishedTestCount now that
we have an UI to run the benchmark multiple times without reloading the page.
(window.benchmarkClient.didFinishLastIteration): Split into smaller pieces.
(window.benchmarkClient._computeResults): Computes the mean and the statistics for the given time values,
and also format them in a human readable form.
(window.benchmarkClient._computeResults.totalTimeInDisplayUnit): Converts ms to runs/min.
(window.benchmarkClient._computeResults.sigFigFromPercentDelta): Given a percentage error (e.g. 1%),
returns the number of significant digits required for the mean.
(window.benchmarkClient._computeResults.toSigFigPrecision): Calls toPrecision with the specified precision
constrained to be at least the number of non-decimal digits and at most 6.
(window.benchmarkClient._addDetailedResultsRow): Renamed from _addResult. It now takes the table to which
to add a row and the iteration number.
(window.benchmarkClient._updateGaugeNeedle): Added. Controls the angle of the speed indicator.
(window.benchmarkClient._populateDetailedResults): Added.
(window.benchmarkClient.prepareUI): Added. It adds an event listener to show a specified section when
the push state of the document changes, and shows a warning sign when the view port size is too small.
We do this inside a callback to avoid running it inside DRT / WTR.
(startBenchmark):
(showSection): Added.
(startTest): Added.
(showResultsSummary): Added.
(showResultDetails): Added.
(showAbout): Added.

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

7 years agoFurther unreviewed GTK build fix after r169536.
jer.noble@apple.com [Mon, 2 Jun 2014 19:57:18 +0000 (19:57 +0000)]
Further unreviewed GTK build fix after r169536.

Update the m_duration contructor in MediaSourceGStreamer.

* platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
(WebCore::MediaSourceGStreamer::MediaSourceGStreamer):

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

7 years ago[Cocoa] -[WKWebView activeURL] is unused
mitz@apple.com [Mon, 2 Jun 2014 19:50:36 +0000 (19:50 +0000)]
[Cocoa] -[WKWebView activeURL] is unused
https://bugs.webkit.org/show_bug.cgi?id=133440

Reviewed by Mark Rowe.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView activeURL]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h: Removed the property declaration.

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

7 years agoUnreviewed GTK build fix after r169536.
jer.noble@apple.com [Mon, 2 Jun 2014 19:42:36 +0000 (19:42 +0000)]
Unreviewed GTK build fix after r169536.

Update MediaSourceGStreamer to match new duration parameters.

* platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
(WebCore::MediaSourceGStreamer::setDuration): Ditto.
* platform/graphics/gstreamer/MediaSourceGStreamer.h:
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

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

7 years ago[MSE][Mac] Media does not generate 'ended' event when playing to duration.
jer.noble@apple.com [Mon, 2 Jun 2014 18:58:45 +0000 (18:58 +0000)]
[MSE][Mac] Media does not generate 'ended' event when playing to duration.
https://bugs.webkit.org/show_bug.cgi?id=133452

Reviewed by Eric Carlson.

Add a boundaryTimeObserver to the AVSampleBufferRenderSynchronizer to detect when
playback crosses the duration boundary, and pause in that event. Also refuse to begin
playback if the currentTime is beyond the duration. Also, pause playback if duration
becomes less than currentTime.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentMediaTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentTimeDouble):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationChanged):

Update MediaSource::duration() and ::setDuration() to take and give MediaTimes rather than doubles:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::duration): double -> MediaTime.
(WebCore::MediaSource::setDuration): Ditto.
(WebCore::MediaSource::streamEndedWithError): Ditto.
* platform/graphics/MediaSourcePrivate.h: Ditto.
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::MediaSourcePrivateAVFObjC): Ditto.
(WebCore::MediaSourcePrivateAVFObjC::duration): Ditto.
(WebCore::MediaSourcePrivateAVFObjC::setDuration): Ditto.
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::MockMediaPlayerMediaSource): Ditto.
(WebCore::MockMediaPlayerMediaSource::maxTimeSeekableDouble): Ditto.
(WebCore::MockMediaPlayerMediaSource::durationDouble): Ditto.
(WebCore::MockMediaPlayerMediaSource::advanceCurrentTime): Ditto.
(WebCore::MockMediaPlayerMediaSource::updateDuration): Ditto.
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:
* platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate): Ditto.
(WebCore::MockMediaSourcePrivate::duration): Ditto.
(WebCore::MockMediaSourcePrivate::setDuration): Ditto.
* platform/mock/mediasource/MockMediaSourcePrivate.h:

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

7 years agoUnreviewed TestExpectations gardening after r169532.
mhock@apple.com [Mon, 2 Jun 2014 18:19:28 +0000 (18:19 +0000)]
Unreviewed TestExpectations gardening after r169532.

* TestExpectations:
Update fast/table/border-collapsing/collapsed-borders-adjoining-sections.html
from [ Failure ] to [ ImageOnlyFailure ].

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

7 years agoRename ImagePaintingContext to ImagePaintingOptions.
zalan@apple.com [Mon, 2 Jun 2014 17:39:26 +0000 (17:39 +0000)]
Rename ImagePaintingContext to ImagePaintingOptions.
https://bugs.webkit.org/show_bug.cgi?id=133451

Reviewed by Simon Fraser.

No change in functionality.

* WebCore.exp.in:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
* platform/graphics/GraphicsContext.h:
(WebCore::ImagePaintingOptions::ImagePaintingOptions):
(WebCore::ImagePaintingContext::ImagePaintingContext): Deleted.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintSnapshotImage):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintIntoRect):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paintSnapshot):

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

7 years agoRestructure initial distinct sandbox profiles
oliver@apple.com [Mon, 2 Jun 2014 17:22:33 +0000 (17:22 +0000)]
Restructure initial distinct sandbox profiles
https://bugs.webkit.org/show_bug.cgi?id=133415

Reviewed by Alexey Proskuryakov.

Add support for manually instantiating the network and
content process sandboxes, and add initial profiles.
These profiles are completely generic so we can make sure
nothing is broken by enabling them.

This also adds a target to the WebKit2 project to correctly
process the profiles.

* DatabaseProcess/ios/DatabaseProcessIOS.mm:
(WebKit::DatabaseProcess::initializeSandbox):
* DatabaseProcess/ios/com.apple.WebKit.DatabasesIOS.sb: Removed.
* NetworkProcess/ios/NetworkProcessIOS.mm:
(WebKit::NetworkProcess::initializeSandbox):
* Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb: Added.
* Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Added.
* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Added.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::initializeSandbox):

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

7 years agoREGRESSION (r154622): Borders disappear when hovering over cells in table
bfulgham@apple.com [Mon, 2 Jun 2014 16:37:45 +0000 (16:37 +0000)]
REGRESSION (r154622): Borders disappear when hovering over cells in table
https://bugs.webkit.org/show_bug.cgi?id=133057
<rdar://problem/15922359>

Reviewed by Tim Horton.

Source/WebCore:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintCollapsedBorders): Revert recent
non-edge collapsed border optimization due to drawing
regressions.

LayoutTests:
* TestExpectations: Mark the test we added in r154622 as failing
until we provide a permanent fix.

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

7 years agoProvide better encapsulation for image related painting properties.
zalan@apple.com [Mon, 2 Jun 2014 16:05:25 +0000 (16:05 +0000)]
Provide better encapsulation for image related painting properties.
https://bugs.webkit.org/show_bug.cgi?id=133434

Reviewed by Darin Adler.

Image related drawing property list keeps growing for the functions below and results in
multiple overloadings with seemingly random default parameters.

GraphicsContext::drawImage()
GraphicsContext::drawTiledImage()
GraphicsContext::drawImageBuffer()

This patch provides encapsulation for the image drawing properties. Encapsulation ensures that
introducing a new property does not result in yet another overloaded function.

No change in functionality.

* WebCore.exp.in:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::compositeBuffer):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
* platform/graphics/GraphicsContext.h:
(WebCore::ImagePaintingContext::ImagePaintingContext):
* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::endShadowLayer):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::platformApplySoftware):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRendererHelper::applyFilterEffect):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintSnapshotImage):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paintSnapshot):

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

7 years agoUnreviewed, rolling out r169529.
commit-queue@webkit.org [Mon, 2 Jun 2014 15:03:30 +0000 (15:03 +0000)]
Unreviewed, rolling out r169529.
https://bugs.webkit.org/show_bug.cgi?id=133447

caused assert in drawImage() (Requested by zalan on #webkit).

Reverted changeset:

"Provide better encapsulation for image related painting
properties."
https://bugs.webkit.org/show_bug.cgi?id=133434
http://trac.webkit.org/changeset/169529

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

7 years agoProvide better encapsulation for image related painting properties.
zalan@apple.com [Mon, 2 Jun 2014 14:23:52 +0000 (14:23 +0000)]
Provide better encapsulation for image related painting properties.
https://bugs.webkit.org/show_bug.cgi?id=133434

Reviewed by Darin Adler.

Image related drawing property list keeps growing for the functions below and results in
multiple overloadings with seemingly random default parameters.

GraphicsContext::drawImage()
GraphicsContext::drawTiledImage()
GraphicsContext::drawImageBuffer()

This patch provides encapsulation for the image drawing properties. Encapsulation ensures that
introducing a new property does not result in yet another overloaded function.

No change in functionality.

* WebCore.exp.in:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::compositeBuffer):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
* platform/graphics/GraphicsContext.h:
(WebCore::ImagePaintingContext::ImagePaintingContext):
* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::endShadowLayer):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::platformApplySoftware):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRendererHelper::applyFilterEffect):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintSnapshotImage):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paintSnapshot):

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

7 years agoAdd mock DTMFSender support.
commit-queue@webkit.org [Mon, 2 Jun 2014 10:55:37 +0000 (10:55 +0000)]
Add mock DTMFSender support.
https://bugs.webkit.org/show_bug.cgi?id=133298

Patch by Kiran <kiran.guduru@samsung.com> on 2014-06-02
Reviewed by Eric Carlson.

Source/WebCore:
Implemented mock implementation for RTCPeerConnectionHandler. Now creating
RTCDTMFSenderHandlerMock and returning while creating DTMFSender instead of
returning null.

Test: fast/mediastream/RTCPeerConnection-dtmf.html.

* CMakeLists.txt:
* platform/mock/RTCDTMFSenderHandlerMock.cpp: Added.
(WebCore::RTCDTMFSenderHandlerMock::RTCDTMFSenderHandlerMock):
(WebCore::RTCDTMFSenderHandlerMock::setClient):
(WebCore::RTCDTMFSenderHandlerMock::insertDTMF):
* platform/mock/RTCDTMFSenderHandlerMock.h: Added.
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::createDTMFSender):

LayoutTests:
* fast/mediastream/RTCPeerConnection-dtmf-expected.txt:
* fast/mediastream/RTCPeerConnection-dtmf.html:

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

7 years ago[GTK] media controls should prevent 'click' events from reaching the page
calvaris@igalia.com [Mon, 2 Jun 2014 08:31:26 +0000 (08:31 +0000)]
[GTK] media controls should prevent 'click' events from reaching the page
https://bugs.webkit.org/show_bug.cgi?id=133402

Reviewed by Eric Carlson.

When handling events, we events we need to return true in order
that the superclass gets the value and prevents the execution of
the default event handler in the page.

Test: media/media-controls-cancel-events.html

* Modules/mediacontrols/mediaControlsGtk.js:
(ControllerGtk.prototype.handleMuteButtonMouseOver):
(ControllerGtk.prototype.handleVolumeBoxMouseOut):
(ControllerGtk.prototype.handleCaptionButtonClicked):
(ControllerGtk.prototype.handleCaptionButtonMouseOver):
(ControllerGtk.prototype.handleCaptionButtonShowMenu):
(ControllerGtk.prototype.handleCaptionButtonMouseOut):
(ControllerGtk.prototype.handleCaptionMouseOut): Return true to
prevent forwarding the event execution.

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

7 years agoUnreviewed EFL gardening.
jinwoo7.song@samsung.com [Mon, 2 Jun 2014 07:32:13 +0000 (07:32 +0000)]
Unreviewed EFL gardening.

Below test cases are passing after r169403.
  - fast/dom/webtiming-document-open.html
  - fast/dom/webtiming-navigate-within-document.html

* platform/efl/TestExpectations:

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

7 years agoCSS JIT: add support for the "not" pseudo class
commit-queue@webkit.org [Mon, 2 Jun 2014 07:00:53 +0000 (07:00 +0000)]
CSS JIT: add support for the "not" pseudo class
https://bugs.webkit.org/show_bug.cgi?id=133314

Source/WebCore:
Patch by Yusuke Suzuki <utatane.tea@gmail.com> on 2014-06-02
Reviewed by Benjamin Poulain.

Add :not pseudo class support to CSS JIT. Current implementation
doesn't support visitedMatchType. So when link pseudo class appears in
:not sub fragment, fallback to the non-JIT implementation.

Tests: fast/selectors/not-active-hover-quirks.html
       fast/selectors/not-active-hover-strict.html
       fast/selectors/pseudo-class-not.html

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::constructFragments):
(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::computeBacktrackingInformation):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::fragmentOnlyMatchesLinksInQuirksMode):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesNotPseudoClass):
(WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation): Deleted.

LayoutTests:
Add :not pseudo class support to CSS JIT. Current implementation
doesn't support visitedMatchType. So when link pseudo class appears in
:not sub fragment, fallback to the non-JIT implementation.

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

* fast/selectors/not-active-hover-quirks-expected.txt: Added.
* fast/selectors/not-active-hover-quirks.html: Added.
* fast/selectors/not-active-hover-strict-expected.txt: Added.
* fast/selectors/not-active-hover-strict.html: Added.
* fast/selectors/pseudo-class-not-expected.txt: Added.
* fast/selectors/pseudo-class-not.html: Added.
* fast/selectors/resources/not-hover-active-quirks-utility.js: Added.
(testQuerySelector):
(test):
* fast/selectors/resources/not-hover-active-strict-utility.js: Added.
(testQuerySelector):
(test):

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

7 years agoUnreviewed EFL gardening.
jinwoo7.song@samsung.com [Mon, 2 Jun 2014 06:52:50 +0000 (06:52 +0000)]
Unreviewed EFL gardening.

gradient-background-leakage-hidpi.html and canvas-as-image-hidpi.html pass after r169445.

* platform/efl-wk2/TestExpectations:

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

7 years ago[MSE] Appends of overlapping sample data do not clear existing samples properly.
jer.noble@apple.com [Mon, 2 Jun 2014 05:16:46 +0000 (05:16 +0000)]
[MSE] Appends of overlapping sample data do not clear existing samples properly.
https://bugs.webkit.org/show_bug.cgi?id=133435

Reviewed by Darin Adler.

Source/WebCore:
Test: media/media-source/media-source-overlapping-append.html

The MSE spec has a spec error in how it removes overlapping frames. The intention seems to be
to check for overlapping samples only when the incoming sample increases the highest presentation time
field. But due to a mismatch in the range of a sample, defined as [start, end), and the check, which
treats the end as inclusive, the overlapping check is almost never run.

Add the sample comparison logic to match [start, end) ranges, and rename the existing check to differentiate
it from the new one:
* Modules/mediasource/SampleMap.cpp:
(WebCore::SamplePresentationTimeIsInsideRangeComparator::operator()):
(WebCore::SamplePresentationTimeIsWithinRangeComparator::operator()):
(WebCore::SampleMap::findSamplesBetweenPresentationTimes):
(WebCore::SampleMap::findSamplesWithinPresentationRange):
* Modules/mediasource/SampleMap.h:

Update the overlapping check to occur whenever the highest presentation time increases, and update the
logic within that check to catch all overlapping frames.
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::bufferedSamplesForTrackID):
* Modules/mediasource/SourceBuffer.h:
* WebCore.exp.in:

Add a dump method to MediaSample so that samples can be easily converted to a string for testing.
* platform/MediaSample.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::presentationSize):
(WebCore::MediaSampleAVFObjC::dump):

Update the Mock MSE implementation to pass along a "generation" field, to aid in testing.
* platform/mock/mediasource/MockBox.cpp:
(WebCore::MockSampleBox::MockSampleBox):
* platform/mock/mediasource/MockBox.h:
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockMediaSample::dump):

Add a method to internals to dump the buffered samples to string.
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::bufferedSamplesForTrackID):
* Modules/mediasource/SourceBuffer.h:
* testing/Internals.cpp:
(WebCore::Internals::bufferedSamplesForTrackID):
* testing/Internals.h:
* testing/Internals.idl:

Source/WTF:
Add a dump method to MediaTime, so that MediaTimes can be easily converted to strings (for logging purposes).

* wtf/MediaTime.cpp:
(WTF::MediaTime::dump):
* wtf/MediaTime.h:

LayoutTests:
* media/media-source/media-source-overlapping-append-expected.txt: Added.
* media/media-source/media-source-overlapping-append.html: Added.
* media/media-source/mock-media-source.js:

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

7 years agogetBBox() returns (0,0) when width or height is zero.
commit-queue@webkit.org [Mon, 2 Jun 2014 05:01:12 +0000 (05:01 +0000)]
getBBox() returns (0,0) when width or height is zero.
https://bugs.webkit.org/show_bug.cgi?id=93290

Patch by Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au> on 2014-06-01
Reviewed by Philip Rogers.

Source/WebCore:

The SVG spec states that a width or height of zero for  rects, circles and
ellipses is valid but disables rendering of that shape.
In this case, getBBox() should return the actual bounding box of the element.
Previously, WebKit always returned (0,0,0,0) rather than the
correct bounding box. This patch fixes that.

Rects and ellipses both now follow the same behaviour where
the fall-back code path is only used when the shape will render (e.g. not
when a dimension <= 0).

This necessitates calling calculateRadiiAndCenter for ellipses even
when the calculated values will be discarded in the fall back code path.
But calculateRadiiAndCenter is cheap and this avoids making changes
elsewhere to stop CG drawing a zero width (or height) ellipse.

Tests: svg/custom/getBBox-js-circle-zerodimension.html
       svg/custom/getBBox-js-ellipse-zerodimension.html
       svg/custom/getBBox-js-rect-zerodimension.html

* rendering/svg/RenderSVGEllipse.cpp:
(WebCore::RenderSVGEllipse::updateShapeFromElement):
Only follow fall-back code path when shape renders.
width||height==0 is not an error case so calculate bounding box.

* rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::updateShapeFromElement):
Only follow fall-back code path when shape renders.
rx||ry==0 is not an error case so calculate bounding box.

LayoutTests:

* platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
* svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
* svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
* svg/custom/getBBox-js-circle-zerodimension-expected.txt: Added.
* svg/custom/getBBox-js-circle-zerodimension.html: Added.
* svg/custom/getBBox-js-ellipse-zerodimension-expected.txt: Added.
* svg/custom/getBBox-js-ellipse-zerodimension.html: Added.
* svg/custom/getBBox-js-rect-zerodimension-expected.txt: Added.
* svg/custom/getBBox-js-rect-zerodimension.html: Added.

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

7 years agoEFL gardening. Unskip some iframe tests which have passed since buildbot OS bump up.
gyuyoung.kim@samsung.com [Mon, 2 Jun 2014 01:53:28 +0000 (01:53 +0000)]
EFL gardening. Unskip some iframe tests which have passed since buildbot OS bump up.

* platform/efl-wk1/TestExpectations:

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

7 years ago[Cocoa] Add SPI to get a WebArchive of the WKWebView
weinig@apple.com [Mon, 2 Jun 2014 00:33:19 +0000 (00:33 +0000)]
[Cocoa] Add SPI to get a WebArchive of the WKWebView
<rdar://problem/16748120>
https://bugs.webkit.org/show_bug.cgi?id=133439

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _getWebArchiveDataWithCompletionHandler:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

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

7 years agoDon't scroll to non-integral scroll offsets
simon.fraser@apple.com [Sun, 1 Jun 2014 23:07:20 +0000 (23:07 +0000)]
Don't scroll to non-integral scroll offsets
https://bugs.webkit.org/show_bug.cgi?id=133436
<rdar://problem/17088336>

Reviewed by Darin Adler.

With the gradual migration of scroll offsets to floating point, we ended
up with a fully floating point code path been event scroll deltas and
setting scroll positions in the scrolling tree.

With some input devices (e.g. Logitech scrollwheel mice), the scroll deltas
come in with non-integral values, and that caused the scroll offset to be non-integral,
resulting in fuzzy layer contents. So round the scroll position.

* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):

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

7 years agoAdd a LazyNeverDestroyed class template and use it
andersca@apple.com [Sun, 1 Jun 2014 22:31:13 +0000 (22:31 +0000)]
Add a LazyNeverDestroyed class template and use it
https://bugs.webkit.org/show_bug.cgi?id=133425

Reviewed by Darin Adler.

Source/JavaScriptCore:
* dfg/DFGFunctionWhitelist.cpp:
(JSC::DFG::FunctionWhitelist::ensureGlobalWhitelist):
* dfg/DFGFunctionWhitelist.h:

Source/WebCore:
* Modules/webdatabase/DatabaseBackendBase.cpp:
(WebCore::guidMutex):
* crypto/CryptoAlgorithmRegistry.cpp:
(WebCore::registryMutex):
* inspector/WorkerDebuggerAgent.cpp:
* loader/CrossOriginAccessControl.cpp:
(WebCore::isOnAccessControlResponseHeaderWhitelist):
* platform/network/NetworkStateNotifier.cpp:
(WebCore::networkStateNotifier):
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::DefaultSharedWorkerRepository::instance):
* workers/DefaultSharedWorkerRepository.h:
* workers/WorkerThread.cpp:
(WebCore::threadSetMutex):
* xml/XMLHttpRequest.cpp:
(WebCore::staticData):

Source/WebKit2:
* Shared/mac/SecItemShim.cpp:
(WebKit::responseMap):

Source/WTF:
LazyNeverDestroyed is similar to NeverDestroyed, except it's lazily constructed
by calling construct(). This makes it useful for using inside std::call_once functions.

* wtf/Forward.h:
* wtf/NeverDestroyed.h:
(WTF::LazyNeverDestroyed::construct):
(WTF::LazyNeverDestroyed::operator T&):
(WTF::LazyNeverDestroyed::get):
(WTF::LazyNeverDestroyed::asPtr):
(WTF::LazyNeverDestroyed::MaybeRelax::MaybeRelax):
* wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
(WTF::atomicallyInitializedStaticMutex):
* wtf/unicode/icu/CollatorICU.cpp:
(WTF::cachedCollatorMutex):

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

7 years agoDYEBench: Move test states into benchmarkClient and remove the closure
rniwa@webkit.org [Sun, 1 Jun 2014 21:12:00 +0000 (21:12 +0000)]
DYEBench: Move test states into benchmarkClient and remove the closure
https://bugs.webkit.org/show_bug.cgi?id=133438

Reviewed by Benjamin Poulain.

Moved all local variables in the closure wrapping benchmarkClient onto the object itself
and removed the closure to improve the readability of the code.

* DoYouEvenBench/Full.html:
* DoYouEvenBench/resources/main.js:
(window.benchmarkClient.willRunTest):
(window.benchmarkClient.didRunTest):
(window.benchmarkClient.didRunSuites):
(window.benchmarkClient.willStartFirstIteration):
(window.benchmarkClient.didFinishLastIteration):
(window.benchmarkClient._addResult): Moved.
(.): Deleted.

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

7 years agoDYEBench: Split stylesheets and scripts in Full.html into separate files
rniwa@webkit.org [Sun, 1 Jun 2014 20:38:55 +0000 (20:38 +0000)]
DYEBench: Split stylesheets and scripts in Full.html into separate files
https://bugs.webkit.org/show_bug.cgi?id=133437

Reviewed by Benjamin Poulain.

Extracted main.js and main.css.

Also fixed a bug in startBenchmark that disabled suites were counted towards the total number of tests.

* DoYouEvenBench/Full.html:
* DoYouEvenBench/resources/main.css: Added.
* DoYouEvenBench/resources/main.js: Added.
(.addResult):
(window.benchmarkClient):
(startBenchmark): Renamed from startTest.

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

7 years agoSubpixel rendering: Selection gap produces a pixel line overlap on inline boxes.
zalan@apple.com [Sun, 1 Jun 2014 16:30:58 +0000 (16:30 +0000)]
Subpixel rendering: Selection gap produces a pixel line overlap on inline boxes.
https://bugs.webkit.org/show_bug.cgi?id=133429

Reviewed by Simon Fraser.

Do not floor logical right/left values when selection gap is calculated for RenderBlocks.
It produces overlapping line/gap because the floored value is intersecting/too far from the
non-floored content selection rect.

Source/WebCore:
Tests: fast/inline/hidpi-selection-gap-and-inline-selection-have-gap-rtl.html
       fast/inline/hidpi-selection-gap-overlaps-inline-selection.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::logicalLeftSelectionGap):
(WebCore::RenderBlock::logicalRightSelectionGap):

LayoutTests:
* platform/mac/TestExpectations: add ML failure due to font sizing. (Ahem can't be used here)
* fast/inline/hidpi-selection-gap-and-inline-selection-have-gap-rtl-expected.html: Added.
* fast/inline/hidpi-selection-gap-and-inline-selection-have-gap-rtl.html: Added.
* fast/inline/hidpi-selection-gap-overlaps-inline-selection-expected.html: Added.
* fast/inline/hidpi-selection-gap-overlaps-inline-selection.html: Added.

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

7 years agoDYEBench: CSS parser warning at line 106 of base.css
rniwa@webkit.org [Sun, 1 Jun 2014 13:44:32 +0000 (13:44 +0000)]
DYEBench: CSS parser warning at line 106 of base.css
https://bugs.webkit.org/show_bug.cgi?id=133433

Reviewed by Maciej Stachowiak.

Removed the old filter CSS property for Internet Explorer. The latest Internet Explorer supports -ms-linear-gradient
on background CSS property anyways.

It's interesting that some of the tests only have -webkit- prefixes. Perhaps we should update those subtests.

* DoYouEvenBench/Full.html:
* DoYouEvenBench/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css:
(#header:before):
* DoYouEvenBench/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css:
(#header:before):
* DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
(#header:before):
* DoYouEvenBench/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css:
(#header:before):
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css:
(#header:before):
* DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css:
(#header:before):
* DoYouEvenBench/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css:
(#header:before):

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

7 years agoDYEBench: Ember.js assertion hit at line 20593
rniwa@webkit.org [Sun, 1 Jun 2014 07:01:52 +0000 (07:01 +0000)]
DYEBench: Ember.js assertion hit at line 20593
https://bugs.webkit.org/show_bug.cgi?id=133431

Reviewed by Darin Adler.

The assertion was hit because ToDoMVC includes jQuery 2.1 and Ember.js 1.3.1 only recognizes jQuery 2.0.
Port the assertion from Ember.js 1.5.1 to suppress the assertion.

We should update the entire Ember.js at some point but this would do the job for now.

* DoYouEvenBench/Full.html:
* DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:

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

7 years agoREGRESSION (r169412): Garbage pixels when vertical rubber-banding on http://yvoschaap...
timothy_horton@apple.com [Sun, 1 Jun 2014 06:26:45 +0000 (06:26 +0000)]
REGRESSION (r169412): Garbage pixels when vertical rubber-banding on yvoschaap.com/pmarca/
https://bugs.webkit.org/show_bug.cgi?id=133418
<rdar://problem/17065494>

Reviewed by Sam Weinig.

* WebCore.exp.in:
* platform/graphics/FloatPoint.h:
(WebCore::toFloatPoint):
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
The manual tiling code previously adjusted the initial
tiling source rect so that if the pattern was out of phase,
the first row and column would paint only the necessary part
of the tile. However, it did not also adjust the destination rect,
so the tile was painted in entirely the wrong place.
Additional testing (by enabling manual tiling mode for all patterned
images and running all of the layout tests) exposed another bug
where the last row and column would paint too much, which
was resolved by clipping to the outer image's destination rect.

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

7 years agoOne more missed piece of that last check-in.
darin@apple.com [Sun, 1 Jun 2014 06:26:39 +0000 (06:26 +0000)]
One more missed piece of that last check-in.

* TestExpectations: Removed the flakiness expectation from the
css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html
test since that now works reliably.

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

7 years agoView snapshots are sometimes taken at the wrong scale
timothy_horton@apple.com [Sun, 1 Jun 2014 06:25:08 +0000 (06:25 +0000)]
View snapshots are sometimes taken at the wrong scale
https://bugs.webkit.org/show_bug.cgi?id=133419
<rdar://problem/17087497>

Reviewed by Sam Weinig.

* UIProcess/API/mac/WKView.mm:
(-[WKView _takeViewSnapshot]):
Work around <rdar://problem/17084993> by re-requesting the snapshot at
kCGWindowImageNominalResolution if it was captured at the wrong scale.

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

7 years agoTry to fix another failure from the previous check-in seen on some bots.
darin@apple.com [Sun, 1 Jun 2014 06:14:38 +0000 (06:14 +0000)]
Try to fix another failure from the previous check-in seen on some bots.

* platform/mac-wk2/TestExpectations: Removed a couple obsolete lines.
* platform/wk2/TestExpectations: Added expectation for filter-hidden-content.svg, which
seems to be affected by the resizing for tests before it.

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

7 years agoFix test failure from the previous check-in.
darin@apple.com [Sun, 1 Jun 2014 03:48:16 +0000 (03:48 +0000)]
Fix test failure from the previous check-in.

* fast/dynamic/window-resize-scrollbars-test.html: Add resize handler so this test works
with asynchronous resizing.

* platform/wk2/TestExpectations: Expect failure for the test above; it's showing scrollbars,
and it should not. Before, the test was not running correctly so it seemed to pass.

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

7 years agoDYEBench: Prevent frame flattening on iOS
rniwa@webkit.org [Sun, 1 Jun 2014 03:04:10 +0000 (03:04 +0000)]
DYEBench: Prevent frame flattening on iOS
https://bugs.webkit.org/show_bug.cgi?id=133428

Reviewed by Andreas Kling.

Prevent frame flattening on iOS by setting scrolling=no.

* DoYouEvenBench/Full.html:
* DoYouEvenBench/resources/benchmark-runner.js:
(BenchmarkRunner.prototype._appendFrame):

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

7 years agoCSS JIT cleanup: move two utility functions out of the properties-matcher section
benjamin@webkit.org [Sun, 1 Jun 2014 01:34:15 +0000 (01:34 +0000)]
CSS JIT cleanup: move two utility functions out of the properties-matcher section
https://bugs.webkit.org/show_bug.cgi?id=133427

Reviewed by Andreas Kling.

Just move the code, no other modification.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoPreviousAdjacentElement):
(WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoNextAdjacentElement):

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

7 years agoViewport percentage tests that resize the viewport are flaky
darin@apple.com [Sun, 1 Jun 2014 00:01:16 +0000 (00:01 +0000)]
Viewport percentage tests that resize the viewport are flaky
https://bugs.webkit.org/show_bug.cgi?id=133351

Reviewed by Anders Carlsson.

Source/WebCore:
* page/FrameView.cpp:
(WebCore::FrameView::setFrameRect): Removed code that explicitly sends a resize event here.
The resize event will be sent as a side effect of layout instead.
(WebCore::FrameView::sendResizeEventIfNeeded): Don't send a resize event until layout is done,
since this is what propagates the new geometry in so the JavaScript code can detect it. Also
simplified the logic and streamlined a little, and added a FIXME about the bad idea here where
the code enqueues an event for an unknown time in the future. Removed the unneeded code that
passes in the DOM window as the target to dispatchWindowEvent, since that gets filled in as the
target by default.

Tools:
* DumpRenderTree/mac/DumpRenderTree.mm:
(sizeWebViewForCurrentTest): Added a call to reset the window origin, which
happens to be stored in the UI delegate object. This is part of resetting the
window position.

* DumpRenderTree/mac/UIDelegate.h: Store the window origin rather than storing
a frame rectangle. The size is stored in the size of the web view itself.
* DumpRenderTree/mac/UIDelegate.mm:
(-[UIDelegate resetWindowOrigin]): Added.
(-[UIDelegate webView:setFrame:]): Changed to set the size of the web view. The
old version would store the frame, but not resize the web view!
(-[UIDelegate webViewFrame:]): Get the size from the web view.

* WebKitTestRunner/efl/PlatformWebViewEfl.cpp:
(WTR::PlatformWebView::setWindowFrame): Added code to resize the web view.

* WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
(WTR::PlatformWebView::resizeTo): Added a comment about missing code to resize
the window.

* WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::resizeTo): Changed this to call setWindowFrame so the
window gets resized too, not just the web view.
(WTR::PlatformWebView::setWindowFrame): Added code to set the size of the web view.

* WebKitTestRunner/mac/PlatformWebViewMac.mm:
(WTR::PlatformWebView::resizeTo): Changed this to call setWindowFrame so the
window gets resized too, not just the web view.
(WTR::PlatformWebView::setWindowFrame): Added code to set the size of the web view.

LayoutTests:
* css3/viewport-percentage-lengths/resources/resize-test.js:
Added code to compensate for the difference between innerWidth/Height and outerWidth/Height
so this works well in a browser window. Added code to "warm up" so the first resize triggers
a resize event. Tweaked style of the code a bit. Use resize events to avoid flakiness due
to race conditions. One thing I did not fix is the "out of order" problem where all the
test results get written out after the words TEST COMPLETE.

* css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block-expected.txt:
Updated due to changes to the underlying test machinery, and also to show actual expected success.
The old results said PASS with various obviously wrong results.

* css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block.html:
Changed this test to use the shared resize-test.js.

* css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child-expected.txt:
Updated due to changes to the underlying test machinery, and also to show actual expected success.
The old results said PASS with various obviously wrong results.

* css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child.html:
Streamlined this test a little.

* css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size-expected.txt:
Updated due to changes to the underlying test machinery, and also to show actual expected success.
The old results said PASS with various obviously wrong results.

* css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html:
Streamlined this test a little.

* css3/viewport-percentage-lengths/viewport-percentage-lengths-resize-expected.txt:
Updated due to changes to the underlying test machinery, and also to show both expected success,
and some expected failures. These failures were going unnoticed before since the test didn't
successfully do any resizing of the web view.

* css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html:
Streamlined this test a little.

* fast/dom/Window/window-resize-contents-expected.txt: Updated to reflect the test actually
resizing. The old test results expected no resizing to occur.
* fast/dom/Window/window-resize-contents.html: Updated to use a resize event handler so the
test can successfully test asynchronous resizes like the ones done by WebKit2.

* fast/dom/rtl-scroll-to-leftmost-and-resize.html: Updated to use a resize event handler so
this can test asynchronous resizes. Also fixed code that was treating the arguments to resizeTo
as if they were inner coordinates rather than outer. However, the bug this tests for has not
been fixed, so need to expect failures.

* platform/mac/TestExpectations: Added a failure expection for the test above.

* platform/mac/fast/dynamic/window-resize-scrollbars-test-expected.png: Updated to expect a result
that successfully resized.
* platform/mac/fast/dynamic/window-resize-scrollbars-test-expected.txt: Ditto.

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

7 years ago[iOS] WebKit2.framework is unused
mitz@apple.com [Sat, 31 May 2014 20:29:46 +0000 (20:29 +0000)]
[iOS] WebKit2.framework is unused
https://bugs.webkit.org/show_bug.cgi?id=133424

Reviewed by Anders Carlsson.

* Configurations/WebKit2.xcconfig: Set SKIP_INSTALL to YES when targeting iOS.

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

7 years agoDon't use std::mutex::try_lock to check if we own a mutex
andersca@apple.com [Sat, 31 May 2014 17:41:28 +0000 (17:41 +0000)]
Don't use std::mutex::try_lock to check if we own a mutex
https://bugs.webkit.org/show_bug.cgi?id=133421

Reviewed by Dan Bernstein.

According the C++ standard, calling try_lock on a mutex that's already owned by the current thread
is undefined behavior, so don't do that.

* Modules/webdatabase/DatabaseBackendBase.cpp:
(WebCore::guidToVersionMap):
(WebCore::updateGuidVersionMap):
(WebCore::guidToDatabaseMap):
(WebCore::guidForOriginAndName):

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

7 years agoDYEBench spits out 404 errors for learn.json
rniwa@webkit.org [Sat, 31 May 2014 05:12:21 +0000 (05:12 +0000)]
DYEBench spits out 404 errors for learn.json
https://bugs.webkit.org/show_bug.cgi?id=133416

Reviewed by Oliver Hunt.

Add an empty learn.json file so that it won't cause a 404 error when hosted on a http server.

Bumped the version number to 0.12.

* DoYouEvenBench/Full.html:
* DoYouEvenBench/resources/todomvc/learn.json:

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

7 years ago[iOS][WK2] When a page does not finish rotation before the end of the animation,...
benjamin@webkit.org [Sat, 31 May 2014 00:56:51 +0000 (00:56 +0000)]
[iOS][WK2] When a page does not finish rotation before the end of the animation, synchronize explicitely
https://bugs.webkit.org/show_bug.cgi?id=133364
<rdar://problem/17026333>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-30
Reviewed by Sam Weinig.

When a page that does layout on rotation does not respond before the end of the animation, we end up with
a completely inconsistent state on the UIProcess (because it is unware of the new states).

The perfect way to fix this would be to make animated resize transactional and have the WebProcess resolve
conflicts. That is very complicated and the issue is uncommon, so this patch does not do that.

This patch force the synchronization whenever we finish the animation before we heard back
from the WebProcess.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _endAnimatedResize]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::resetState):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
(WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::synchronizeDynamicViewportUpdate):

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

7 years agoREGRESSION (WebKit2): space space to insert period doesn't work in web forms.
enrica@apple.com [Sat, 31 May 2014 00:12:53 +0000 (00:12 +0000)]
REGRESSION (WebKit2): space space to insert period doesn't work in web forms.
https://bugs.webkit.org/show_bug.cgi?id=133413
<rdar://problem/16948333>

Reviewed by Benjamin Poulain.

Source/WebCore:
Adding utility functions and their exports.

* WebCore.exp.in:
* editing/TextIterator.cpp:
(WebCore::plainTextReplacingNoBreakSpace):
* editing/TextIterator.h:
* editing/VisibleUnits.cpp:
(WebCore::charactersAroundPosition):
(WebCore::characterBeforePosition): Deleted.
* editing/VisibleUnits.h:

Source/WebKit2:
iOS TextInput needs to know about content surrounding the
current position while editing. Since we don't want to
query this information synchronously when asked, we cache it
as part of the EditorState. EditorState now contains a vector of
three characters representing the content after, before and two
position before the caret position.
The patch also replaces all calls to plainText with plainTextReplacingNoBreakSpace
to work well with iOS text input.

* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
* Shared/EditorState.h:
(WebKit::EditorState::EditorState):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _characterInRelationToCaretSelection:]):
(+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestDictationContext):
(WebKit::WebPage::replaceSelectedText):
(WebKit::WebPage::replaceDictatedText):
(WebKit::WebPage::requestAutocorrectionData):
(WebKit::WebPage::syncApplyAutocorrection):
(WebKit::computeAutocorrectionContext):

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

7 years agoCleanup temporary setting of image interpolation quality in GraphicsContext::drawImage*
zalan@apple.com [Fri, 30 May 2014 23:03:11 +0000 (23:03 +0000)]
Cleanup temporary setting of image interpolation quality in GraphicsContext::drawImage*
https://bugs.webkit.org/show_bug.cgi?id=133407

Reviewed by Darin Adler.

Add helper class to set/reset image interpolation quality value.

No change in functionality.

* platform/graphics/GraphicsContext.cpp:
(WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer):
(WebCore::InterpolationQualityMaintainer::~InterpolationQualityMaintainer):
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):

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

7 years agoFixed the build by adding back a declaration I deleted by accident :(.
ggaren@apple.com [Fri, 30 May 2014 21:51:52 +0000 (21:51 +0000)]
Fixed the build by adding back a declaration I deleted by accident :(.

Unreviewed.

* UIProcess/API/Cocoa/WKWebView.h:

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

7 years agoFixed some ChangeLog grammar.
ggaren@apple.com [Fri, 30 May 2014 21:41:48 +0000 (21:41 +0000)]
Fixed some ChangeLog grammar.

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

7 years agoUnreviewed, rolling in r169490.
ggaren@apple.com [Fri, 30 May 2014 21:41:10 +0000 (21:41 +0000)]
Unreviewed, rolling in r169490.

I change a non-ASCII apostrophe to ASCII.

Restored changeset:

"Some more copy-editing of the Modern WebKit headerdoc"
https://bugs.webkit.org/show_bug.cgi?id=133408
http://trac.webkit.org/changeset/169490

* UIProcess/API/Cocoa/WKBackForwardList.h:
* UIProcess/API/Cocoa/WKBackForwardListItem.h:
* UIProcess/API/Cocoa/WKFrameInfo.h:
* UIProcess/API/Cocoa/WKNavigation.h:
* UIProcess/API/Cocoa/WKNavigationAction.h:
(NS_ENUM):
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
(NS_ENUM):
* UIProcess/API/Cocoa/WKNavigationResponse.h:
* UIProcess/API/Cocoa/WKPreferences.h:
* UIProcess/API/Cocoa/WKProcessPool.h:
* UIProcess/API/Cocoa/WKScriptMessage.h:
* UIProcess/API/Cocoa/WKScriptMessageHandler.h:
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKUserContentController.h:
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:

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