WebKit-https.git
7 years agoBackground doesn't fully repaint when body has margins.
zalan@apple.com [Sun, 4 Aug 2013 21:29:00 +0000 (21:29 +0000)]
Background doesn't fully repaint when body has margins.
https://bugs.webkit.org/show_bug.cgi?id=119033

Reviewed by Simon Fraser.

Ensure that background-color changes do not leave unpainted areas when
body has margins.

Both <body> and <html> background-color get propagated up to the viewport.
If <body> has background-color attribute set, while <html> doesn't, the color is
applied not only on the <body> but on both the <html> and the viewport. However,
it's not enough to mark the RenderView dirty because with tiles backing on,
there could be areas outside of the viewport that need repaint. By marking
the RenderView's graphics layer dirty instead, we ensure that all the related
tiles get marked dirty too and the new background color covers all areas.

Manual test added. When forcing top-level composition on (even with embedded iframe to
make sure we don't do paintsIntoWindow rendering), the test case execution changes so much,
that the repaint rects don't reflect the functionality difference anymore.

.:

Reviewed by Simon Fraser.

* ManualTests/compositing/background-color-change-on-body-with-margin.html: Added.

Source/WebCore:

* page/FrameView.cpp:
(WebCore::FrameView::reset):
(WebCore::FrameView::layout):
* page/FrameView.h:
(WebCore::FrameView::needsFullRepaint):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleWillChange):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode):
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintRootContents):
(WebCore::RenderView::repaintViewAndCompositedLayers):
* rendering/RenderView.h:

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

7 years agoDocument needn't expose its active element.
akling@apple.com [Sun, 4 Aug 2013 16:17:32 +0000 (16:17 +0000)]
Document needn't expose its active element.
<http://webkit.org/b/119466>

Reviewed by Antonio Gomes.

The Document::m_activeElement pointer is only used inside updateHoverActiveState(),
so we can remove the activeElement()/setActiveElement() accessors.

* dom/Document.h:
* dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):

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

7 years agoInserting a rule into an empty style sheet shouldn't trigger style recalc unless...
akling@apple.com [Sun, 4 Aug 2013 15:57:13 +0000 (15:57 +0000)]
Inserting a rule into an empty style sheet shouldn't trigger style recalc unless necessary.
<http://webkit.org/b/119475>
<rdar://problem/14643481>

Reviewed by Antti Koivisto.

This is kind of a cheesy optimization, but it turns out that the use case is quite common.
The pattern goes like this:

    (1) Create <style> element.
    (2) Add it to the document's <head>.
    (3) .addRule() one rule through the CSSOM API.

Prior to this patch, (3) would always cause a full (deferred) style recalc.

Now that we exclude empty style sheets from the document's (effective) active set,
we can piggyback on the style invalidation analysis when transitioning from an empty
sheet to a single-rule sheet.

In other words, add a special code path for the first rule insertion into an empty,
in-document style sheet to minimize the amount of invalidation that happens.

* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::didMutateRules):
(WebCore::CSSStyleSheet::insertRule):
* css/CSSStyleSheet.h:
(WebCore::CSSStyleSheet::RuleMutationScope::RuleMutationScope):
(WebCore::CSSStyleSheet::RuleMutationScope::~RuleMutationScope):

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

7 years ago[GTK] Fix a C++11 warning.
csaavedra@igalia.com [Sun, 4 Aug 2013 14:35:34 +0000 (14:35 +0000)]
[GTK] Fix a C++11 warning.

Rubber-stamped by Martin Robinson.

* platform/gtk/FileSystemGtk.cpp:
(WebCore::sharedResourcesPath): Fix a C++11 warning.

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

7 years ago[GTK] Remove legacy hack in CodeGeneratorGObject.pm
commit-queue@webkit.org [Sun, 4 Aug 2013 13:03:23 +0000 (13:03 +0000)]
[GTK] Remove legacy hack in CodeGeneratorGObject.pm
https://bugs.webkit.org/show_bug.cgi?id=117545

Patch by Diego Pino Garcia <dpino@igalia.com> on 2013-08-04
Reviewed by Carlos Garcia Campos.

There's a checking that sets gtype to uint in case it's ushort. gtype
is a value obtained from GetGValueTypeName(), which never returns
ushort.

* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateProperty): remove unnecessary glitch

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

7 years ago[Mac] Disable screen font substitution at WebCore-level in OS X 10.9+
akling@apple.com [Sun, 4 Aug 2013 07:41:28 +0000 (07:41 +0000)]
[Mac] Disable screen font substitution at WebCore-level in OS X 10.9+
<http://webkit.org/b/119474>
<rdar://problem/14643349>

Reviewed by Dan Bernstein.

Disable screen font substitution by default in Settings so internal WebCore clients
such as SVG-as-image will get the right default setting.

* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::shouldEnableScreenFontSubstitutionByDefault):
(WebCore::Settings::setScreenFontSubstitutionEnabled):
* page/Settings.h:
(WebCore::Settings::screenFontSubstitutionEnabled):
* page/Settings.in:
* page/mac/SettingsMac.mm:
(WebCore::Settings::shouldEnableScreenFontSubstitutionByDefault):

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

7 years agoRefine the unavailable plug-in indicator
timothy_horton@apple.com [Sun, 4 Aug 2013 04:13:03 +0000 (04:13 +0000)]
Refine the unavailable plug-in indicator
https://bugs.webkit.org/show_bug.cgi?id=119400
<rdar://problem/14616012>

Reviewed by Oliver Hunt.

Add a border, flip the text and background colors, and make the indicator
much higher contrast, to be more visible on a variety of sites.
Also, refine the arrow to be less blocky and inlaid inside a circle.

* rendering/RenderEmbeddedObject.cpp:
(WebCore::replacementTextRoundedRectPressedColor):
(WebCore::replacementTextRoundedRectColor):
(WebCore::replacementTextColor):
(WebCore::unavailablePluginBorderColor):
(WebCore::drawReplacementArrow):
(WebCore::RenderEmbeddedObject::paintReplaced):
(WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
(WebCore::RenderEmbeddedObject::unavailablePluginIndicatorBounds):
(WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
* rendering/RenderEmbeddedObject.h:

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

7 years agoUnreviewed, build and style fix for r153693.
timothy_horton@apple.com [Sun, 4 Aug 2013 04:00:03 +0000 (04:00 +0000)]
Unreviewed, build and style fix for r153693.

* UIProcess/WebProcessProxy.cpp:
* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/WebPage/WebPage.cpp:

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

7 years agoRemove SimplePDFPlugin
timothy_horton@apple.com [Sun, 4 Aug 2013 03:50:47 +0000 (03:50 +0000)]
Remove SimplePDFPlugin
https://bugs.webkit.org/show_bug.cgi?id=119437

Reviewed by Alexey Proskuryakov.

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getPlugins):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
Don't add SimplePDFPlugin, nor try to instantiate it.

* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
Merge previously inherited behavior in from SimplePDFPlugin.

* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Plugins/PDF/SimplePDFPlugin.h: Removed.
* WebProcess/Plugins/PDF/SimplePDFPlugin.mm: Removed.
Remove SimplePDFPlugin.

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

7 years agoRemove pageOverlayShouldApplyFadeWhenPainting() and adopt composited fade for the...
timothy_horton@apple.com [Sun, 4 Aug 2013 00:31:27 +0000 (00:31 +0000)]
Remove pageOverlayShouldApplyFadeWhenPainting() and adopt composited fade for the Mac port
https://bugs.webkit.org/show_bug.cgi?id=119411

Reviewed by Simon Fraser.

Mac is the only holdout that performs non-composited fades of page
overlays. We should adopt that mechanism (as a precursor to doing a
CA-accelerated fade) and remove the now-unnecessary property.

* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
(WKBundlePageOverlayFractionFadedIn):
Always return 1 (fully-faded-in) so that clients who attempt to use this
to bake the fade opacity into their painting will paint at full opacity,
allowing us to do the composited fade separately.

* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
* WebProcess/WebPage/DrawingAreaImpl.h:
* WebProcess/WebPage/LayerTreeHost.h:
* WebProcess/WebPage/PageOverlay.cpp:
(WebKit::PageOverlay::PageOverlay):
(WebKit::PageOverlay::setPage):
(WebKit::PageOverlay::setNeedsDisplay):
(WebKit::PageOverlay::fadeAnimationTimerFired):
* WebProcess/WebPage/PageOverlay.h:
Remove pageOverlayShouldApplyFadeWhenPainting and fractionFadedIn().

* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::drawRect):
Draw the find overlay without taking the PageOverlay's fade into account.

* WebProcess/WebPage/TapHighlightController.cpp:
(WebKit::TapHighlightController::drawRect):
Remove pageOverlayShouldApplyFadeWhenPainting. Since it's always
"false" for all ports now, take the second path here.

* WebProcess/WebPage/mac/LayerTreeHostMac.h:
* WebProcess/WebPage/mac/LayerTreeHostMac.mm:
(WebKit::LayerTreeHostMac::setPageOverlayOpacity):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setPageOverlayOpacity):
Implement setPageOverlayOpacity for DrawingAreaImpl
and TiledCoreAnimationDrawingArea.

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

7 years agohasIndexingHeader() ought really to be a property of an object and its structure...
fpizlo@apple.com [Sun, 4 Aug 2013 00:12:21 +0000 (00:12 +0000)]
hasIndexingHeader() ought really to be a property of an object and its structure, not just its structure
https://bugs.webkit.org/show_bug.cgi?id=119470

Reviewed by Oliver Hunt.

Structure can still tell you if the object "could" (in the conservative sense)
have an indexing header; that's used by the compiler.

Most of the time if you want to know if there's an indexing header, you ask the
JSObject.

In some cases, the JSObject wants to know if it would have an indexing header if
it had a different structure; then it uses Structure::hasIndexingHeader(JSCell*).

* dfg/DFGRepatch.cpp:
(JSC::DFG::tryCachePutByID):
(JSC::DFG::tryBuildPutByIdList):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
* runtime/ButterflyInlines.h:
(JSC::Butterfly::create):
(JSC::Butterfly::growPropertyStorage):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::resizeArray):
* runtime/JSObject.cpp:
(JSC::JSObject::copyButterfly):
(JSC::JSObject::visitButterfly):
* runtime/JSObject.h:
(JSC::JSObject::hasIndexingHeader):
(JSC::JSObject::setButterfly):
* runtime/Structure.h:
(JSC::Structure::couldHaveIndexingHeader):
(JSC::Structure::hasIndexingHeader):

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

7 years agowebaudio/audiobuffersource-loop-points.html always times out
simon.fraser@apple.com [Sat, 3 Aug 2013 17:49:50 +0000 (17:49 +0000)]
webaudio/audiobuffersource-loop-points.html always times out
https://bugs.webkit.org/show_bug.cgi?id=119467

Skip this test.

* platform/mac-wk2/TestExpectations:

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

7 years agoPreloadScanner preloads external CSS with non-matching media attribute
commit-queue@webkit.org [Sat, 3 Aug 2013 13:43:24 +0000 (13:43 +0000)]
PreloadScanner preloads external CSS with non-matching media attribute
https://bugs.webkit.org/show_bug.cgi?id=106198

Patch by Yoav Weiss <yoav@yoav.ws> on 2013-08-03
Reviewed by Dean Jackson.

Source/WebCore:

Test: http/tests/loading/preload-css-test.html

* html/parser/HTMLPreloadScanner.cpp:
Remove m_linkMediaAttributeIsScreen
Remove MediaQueryEvaluator calls
Add m_mediaAttribute that gets the value of the "media" attribute
Pass m_mediaAttribute to PreloadRequest
(WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
(WebCore::TokenPreloadScanner::StartTagScanner::resourceType):
(WebCore::TokenPreloadScanner::StartTagScanner::shouldPreload):
* html/parser/HTMLResourcePreloader.cpp:
Add MediaQueryEvaluator calls to see if "media" matches
Perform preload only to resource with a matching media (if media exists)
(WebCore::PreloadRequest::isSafeToSendToAnotherThread):
(WebCore::mediaAttributeMatches):
(WebCore::HTMLResourcePreloader::preload):
* html/parser/HTMLResourcePreloader.h:
Add a constructor with a mediaAttribute value
Add m_mediaAttribute & its getter.
(WebCore::PreloadRequest::create):
(WebCore::PreloadRequest::media):
(WebCore::PreloadRequest::PreloadRequest):

LayoutTests:

* http/tests/loading/preload-css-test-expected.txt: Added.
* http/tests/loading/preload-css-test.html: Added.
* http/tests/loading/resources/big_mq.css: Added.
* http/tests/loading/resources/small_mq.css: Added.
* http/tests/local/link-stylesheet-load-order-preload-expected.txt:

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

7 years agoRenderBoxModelObject::firstLetterRemainingText should be a RenderTextFragment*.
akling@apple.com [Sat, 3 Aug 2013 10:15:12 +0000 (10:15 +0000)]
RenderBoxModelObject::firstLetterRemainingText should be a RenderTextFragment*.
<http://webkit.org/b/119181>

Reviewed by Sam Weinig.

De-generalize this code a bit since we know that the firstLetterRemainingText() is always
going to be a RenderTextFragment.

* rendering/RenderBoxModelObject.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::firstLetterRemainingText):
(WebCore::RenderBoxModelObject::setFirstLetterRemainingText):

    Make these two deal in RenderTextFragment*.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetterStyle):

    Tighten up some pointer types so we don't have to cast as much.

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

7 years agoIntroduce toSVGMaskElement(), and use it
gyuyoung.kim@samsung.com [Sat, 3 Aug 2013 05:11:54 +0000 (05:11 +0000)]
Introduce toSVGMaskElement(), and use it
https://bugs.webkit.org/show_bug.cgi?id=119443

Reviewed by Andreas Kling.

As a step to change static_cast with toSVGXXX, static_cast<SVGMaskElement*> can
be changed with toSVGMaskElement().

Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=155432

* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::resourceBoundingBox):
* rendering/svg/RenderSVGResourceMasker.h:
* svg/SVGMaskElement.h:
(WebCore::toSVGMaskElement):

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

7 years agoRemove a bunch of redundant checks for empty string in StringImpl
benjamin@webkit.org [Sat, 3 Aug 2013 03:33:25 +0000 (03:33 +0000)]
Remove a bunch of redundant checks for empty string in StringImpl
https://bugs.webkit.org/show_bug.cgi?id=118768

Reviewed by Ryosuke Niwa.

The first thing done by createUninitialized() is check if the length passed
is zero. Internally, there are many cases for which we know the check will never succeed.

Clang is usually really smart for those kind of things, but there are a few cases where
the condition to avoid returning empty() is not simply a check for the length.
This patch adds an internal initializer to deal with that.

* wtf/text/StringImpl.cpp:
(WTF::StringImpl::createUninitializedInternal):
(WTF::StringImpl::createUninitializedInternalNonEmpty):
(WTF::StringImpl::createInternal): Create internal has a special case for null pointer
for the characters. The test also check length, the second check for length cannot fail.
(WTF::StringImpl::create8BitIfPossible): ditto.
(WTF::StringImpl::lower): 3 of the calls cannot be reached for empty length. On an empty length,
the test for (noUpper && !(ored & ~0x7F)) would have caused the function to return "this".

For the last createUninitialized(), there is no guarantee the realLength is not zero.

(WTF::StringImpl::replace): The first thing we do in replace(UChar,UChar) is check if there is anything
to replace. The check for length will never succeed as there must be a character to replace at that point.
* wtf/text/StringImpl.h:

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

7 years agoREGRESSION (r153005): Crash in SpaceSplitString::spaceSplitStringContainsValue on...
benjamin@webkit.org [Sat, 3 Aug 2013 03:09:25 +0000 (03:09 +0000)]
REGRESSION (r153005): Crash in SpaceSplitString::spaceSplitStringContainsValue on Facebook
https://bugs.webkit.org/show_bug.cgi?id=119384

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-08-02
Reviewed by Alexey Proskuryakov.

Source/WebCore:

When removing the "rel" attribute from HTMLAnchorElement, we parse the attribute for no value.
Following r153005, we no longer checked for null String, which caused a crash in that case.

Creating a SpaceSplitString from a null string causes the SpaceSplitString to be null. In that case
SpaceSplitString::contains() would always return false.
This patch modify SpaceSplitString::spaceSplitStringContainsValue() to follow the exact same
behavior.

Test: fast/dom/HTMLAnchorElement/remove-rel-attribute.html

* dom/SpaceSplitString.cpp:
(WebCore::SpaceSplitString::spaceSplitStringContainsValue):

LayoutTests:

* fast/dom/HTMLAnchorElement/remove-rel-attribute.html: Added.
* fast/dom/HTMLAnchorElement/remove-rel-attribute-expected.txt: Added.

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

7 years agoForce elements with perspective or preserve-3d to disallow direct composited backgrounds
dino@apple.com [Sat, 3 Aug 2013 00:06:31 +0000 (00:06 +0000)]
Force elements with perspective or preserve-3d to disallow direct composited backgrounds
https://bugs.webkit.org/show_bug.cgi?id=119462
<rdar://problem/14607548>

Reviewed by Simon Fraser.

Source/WebCore:

Bug 119461 (http://wkb.ug/119461) describes how a directly composited
background color can intersect with its children. It's not clear exactly
what the best way to fix that is, but for the moment we should disallow
any element that has perspective or a preserve-3d transform style from
getting a directly composited background.

Test: compositing/background-color/no-composited-background-color-when-perspective.html

* rendering/RenderLayerBacking.cpp:
(WebCore::hasPerspectiveOrPreserves3D): New static helper.
(WebCore::supportsDirectBoxDecorationsComposition): Return false if the above function is true.

LayoutTests:

* compositing/background-color/no-composited-background-color-when-perspective-expected.html: Added.
* compositing/background-color/no-composited-background-color-when-perspective.html: Added.
* compositing/geometry/preserve-3d-switching-expected.txt: Rebaselined.
* compositing/overflow-trumps-transform-style-expected.txt: Rebaselined.

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

7 years agoUpdate binding test results
oliver@apple.com [Sat, 3 Aug 2013 00:05:05 +0000 (00:05 +0000)]
Update binding test results

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

7 years agoGive the error object's stack property accessor attributes.
commit-queue@webkit.org [Sat, 3 Aug 2013 00:04:41 +0000 (00:04 +0000)]
Give the error object's stack property accessor attributes.
https://bugs.webkit.org/show_bug.cgi?id=119404

Source/JavaScriptCore:

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-02
Reviewed by Geoffrey Garen.

Changed the attributes of error object's stack property to allow developers to write
and delete the stack property. This will match the functionality of Chrome. Firefox
allows developers to write the error's stack, but not delete it.

* interpreter/Interpreter.cpp:
(JSC::Interpreter::addStackTraceIfNecessary):
* runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::finishCreation):

LayoutTests:

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-02
Reviewed by Geoffrey Garen.

* fast/dom/DOMException/stack-trace-expected.txt:

New tests to show that the error object's stack property is writable and deleteable.
* fast/js/error-object-write-and-detele-for-stack-property-expected.txt: Added.
* fast/js/error-object-write-and-detele-for-stack-property.html: Added.

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

7 years agoUnreviewed. Skip failing canvas blending tests on AppleWin port.
roger_fong@apple.com [Sat, 3 Aug 2013 00:01:06 +0000 (00:01 +0000)]
Unreviewed. Skip failing canvas blending tests on AppleWin port.
https://bugs.webkit.org/show_bug.cgi?id=119463.

* platform/win/TestExpectations:

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

7 years agoRemove no-arguments constructor to PropertySlot
barraclough@apple.com [Fri, 2 Aug 2013 23:40:48 +0000 (23:40 +0000)]
Remove no-arguments constructor to PropertySlot
https://bugs.webkit.org/show_bug.cgi?id=119460

Reviewed by Geoff Garen.

This constructor was unsafe if getValue is subsequently called,
and the property is a getter. Simplest to just remove it.

Source/WebCore:

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertyDescriptor):
(WebCore::DialogHandler::returnValue):
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::getOwnPropertyDescriptorDelegate):
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::getOwnPropertyDescriptorDelegate):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::runtimeObjectCustomGetOwnPropertyDescriptor):
* bindings/js/JSStorageCustom.cpp:
(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::putDelegate):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertyDescriptorBody):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::getOwnPropertyDescriptor):
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::getOwnPropertyDescriptor):
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::getOwnPropertyDescriptor):

Source/WebKit2:

* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::getOwnPropertyDescriptor):

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

7 years agoGardening: Touched a line in Platform.h to get all bots to do a clean build.
mark.lam@apple.com [Fri, 2 Aug 2013 23:23:49 +0000 (23:23 +0000)]
Gardening: Touched a line in Platform.h to get all bots to do a clean build.

Not reviewed.

* wtf/Platform.h:

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

7 years agoIncorrect type speculation reported by ToPrimitive
oliver@apple.com [Fri, 2 Aug 2013 22:38:28 +0000 (22:38 +0000)]
Incorrect type speculation reported by ToPrimitive
https://bugs.webkit.org/show_bug.cgi?id=119458

Reviewed by Mark Hahnenberg.

Make sure that we report the correct type possibilities for the output
from ToPrimitive

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::::executeEffects):

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

7 years agoRemove no-arguments constructor to PropertySlot
barraclough@apple.com [Fri, 2 Aug 2013 22:30:48 +0000 (22:30 +0000)]
Remove no-arguments constructor to PropertySlot
https://bugs.webkit.org/show_bug.cgi?id=119460

Reviewed by Geoff Garen.

This constructor was unsafe if getValue is subsequently called,
and the property is a getter. Simplest to just remove it.

* runtime/Arguments.cpp:
(JSC::Arguments::defineOwnProperty):
* runtime/JSActivation.cpp:
(JSC::JSActivation::getOwnPropertyDescriptor):
* runtime/JSFunction.cpp:
(JSC::JSFunction::getOwnPropertyDescriptor):
(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::defineOwnProperty):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::hasOwnPropertyForWrite):
* runtime/JSNameScope.cpp:
(JSC::JSNameScope::put):
* runtime/JSONObject.cpp:
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Walker::walk):
* runtime/JSObject.cpp:
(JSC::JSObject::hasProperty):
(JSC::JSObject::hasOwnProperty):
(JSC::JSObject::reifyStaticFunctionsForDelete):
* runtime/Lookup.h:
(JSC::getStaticPropertyDescriptor):
(JSC::getStaticFunctionDescriptor):
(JSC::getStaticValueDescriptor):
* runtime/ObjectConstructor.cpp:
(JSC::defineProperties):
* runtime/PropertySlot.h:

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

7 years agoRemoving a <link> element with an empty stylesheet shouldn't trigger style recalc.
akling@apple.com [Fri, 2 Aug 2013 22:11:07 +0000 (22:11 +0000)]
Removing a <link> element with an empty stylesheet shouldn't trigger style recalc.
<http://webkit.org/b/119442>
<rdar://problem/14631785>

Reviewed by Antti Koivisto.

Let Document decide whether or not to do a style recalc after a <link> element is removed.
This avoids unnecessary work when removing a <link> that refers to an empty style sheet.

Some Facebook pages have a <link rel="stylesheet" href="data:text/css;base64,"> that gets
removed during the initial page load, causing style recalc.

* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::removedFrom):

    Use DeferRecalcStyleIfNeeded. Since the style sheet is being removed, it will either
    cause a recalc (because it's no longer in the set of active sheets) or do nothing.

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

7 years agoDFG validation can cause assertion failures due to dumping
mhahnenberg@apple.com [Fri, 2 Aug 2013 21:50:56 +0000 (21:50 +0000)]
DFG validation can cause assertion failures due to dumping
https://bugs.webkit.org/show_bug.cgi?id=119456

Reviewed by Geoffrey Garen.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::hasHash):
(JSC::CodeBlock::isSafeToComputeHash):
(JSC::CodeBlock::hash):
(JSC::CodeBlock::dumpAssumingJITType):
* bytecode/CodeBlock.h:

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

7 years ago[Forms: color] WebColorPickerMac deconstructor shouldn't assert a variable
commit-queue@webkit.org [Fri, 2 Aug 2013 21:35:36 +0000 (21:35 +0000)]
[Forms: color] WebColorPickerMac deconstructor shouldn't assert a variable
<rdar://problem/14627633> and https://bugs.webkit.org/show_bug.cgi?id=119419

Patch by Ruth Fong <ruth_fong@apple.com> on 2013-08-02
Reviewed by Tim Horton.

* UIProcess/mac/WebColorPickerMac.mm:
(WebKit::WebColorPickerMac::~WebColorPickerMac): If the m_colorPickerUI variable
  is not null, then properly destroy it first before destroying WebColorPickerMac object.

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

7 years agoHave vm's exceptionStack match java's vm's exceptionStack.
commit-queue@webkit.org [Fri, 2 Aug 2013 21:32:20 +0000 (21:32 +0000)]
Have vm's exceptionStack match java's vm's exceptionStack.
https://bugs.webkit.org/show_bug.cgi?id=119362

Source/JavaScriptCore:

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-02
Reviewed by Geoffrey Garen.

The error object's stack is only updated if it does not exist yet. This matches
the functionality of other browsers, and Java VMs.

* interpreter/Interpreter.cpp:
(JSC::Interpreter::addStackTraceIfNecessary):
(JSC::Interpreter::throwException):
* runtime/VM.cpp:
(JSC::VM::clearExceptionStack):
* runtime/VM.h:
(JSC::VM::lastExceptionStack):

LayoutTests:

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-02
Reviewed by Geoffrey Garen.

All modifications to the tests below are column number changes. If the thrown
object was created by the user the column number references the error object,
otherwise it references the the throw.

* fast/events/window-onerror5-expected.txt:
* fast/js/line-column-numbers-expected.txt:
* fast/js/stack-trace-expected.txt:
* http/tests/workers/worker-importScriptsOnError-expected.txt:

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

7 years agoRemove WebCore folder from include statements
paroga@webkit.org [Fri, 2 Aug 2013 21:30:31 +0000 (21:30 +0000)]
Remove WebCore folder from include statements
https://bugs.webkit.org/show_bug.cgi?id=119438

Reviewed by Darin Adler.

This aligns the style of the changed files with the other WebCore code.

* platform/network/curl/CurlDownload.cpp:
* platform/network/curl/CurlDownload.h:

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

7 years ago[Forms: color] The positioning of the popover color well is inverted
commit-queue@webkit.org [Fri, 2 Aug 2013 21:27:26 +0000 (21:27 +0000)]
[Forms: color] The positioning of the popover color well is inverted
<rdar://problem/14635621> and https://bugs.webkit.org/show_bug.cgi?id=119455

Patch by Ruth Fong <ruth_fong@apple.com> on 2013-08-02
Reviewed by Tim Horton.

This patch converts the coordinates of the <input type='color'> element to
the window's base coordinate system.

* UIProcess/mac/WebColorPickerMac.mm:
(-[WKColorPopoverMac initWithFrame:inView:]):

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

7 years agowebaudio/javascriptaudionode-downmix8-2channel-input.html sometimes asserts
simon.fraser@apple.com [Fri, 2 Aug 2013 21:07:36 +0000 (21:07 +0000)]
webaudio/javascriptaudionode-downmix8-2channel-input.html sometimes asserts
https://bugs.webkit.org/show_bug.cgi?id=119459

* platform/mac-wk2/TestExpectations:

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

7 years agoSoft link ANGLE on Windows.
achristensen@apple.com [Fri, 2 Aug 2013 20:10:27 +0000 (20:10 +0000)]
Soft link ANGLE on Windows.
https://bugs.webkit.org/show_bug.cgi?id=119452

Reviewed by Dean Jackson.

* ANGLE.vcxproj/libEGL.vcxproj:
* ANGLE.vcxproj/libEGL.vcxproj.filters:
* ANGLE.vcxproj/libGLESv2.vcxproj:
* ANGLE.vcxproj/libGLESv2.vcxproj.filters:
Added soft linking headers.
* ANGLE.vcxproj/libEGLCommon.props:
* ANGLE.vcxproj/libGLESv2Common.props:
* ANGLE.vcxproj/translatorCommon.props:
Added ANGLE_WEBKIT_WIN macro definition for egl.h and gl2.h.
* include/EGL/egl.h:
* include/GLES2/gl2.h:
Conditionally include soft linking headers based on ANGLE_WEBKIT_WIN macro.
* include/EGL/eglsoftlinking.h: Added.
* include/GLES2/gl2softlinking.h: Added.

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

7 years agoFormAssociatedElement shouldn't create out-of-tree FormAttributeTargetObserver
rniwa@webkit.org [Fri, 2 Aug 2013 19:34:49 +0000 (19:34 +0000)]
FormAssociatedElement shouldn't create out-of-tree FormAttributeTargetObserver
https://bugs.webkit.org/show_bug.cgi?id=119309

Reviewed by Kent Tamura.

Merge https://chromium.googlesource.com/chromium/blink/+/6fbdcbf311de539107bc28711b3f7a527176e97b.

I'm not merging the test since the attached test case only works when the shadow DOM API is enabled.

* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::formAttributeChanged):
(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):

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

7 years agocompareDocumentPosition() should report PRECEDING or FOLLOWING information even if...
ch.dumez@sisa.samsung.com [Fri, 2 Aug 2013 18:52:52 +0000 (18:52 +0000)]
compareDocumentPosition() should report PRECEDING or FOLLOWING information even if nodes are disconnected
https://bugs.webkit.org/show_bug.cgi?id=119316

Reviewed by Ryosuke Niwa.

Source/WebCore:

As per the latest specification, compareDocumentPosition() should report PRECEDING or FOLLOWING
information even if nodes are disconnected:
- http://dom.spec.whatwg.org/#dom-node-comparedocumentposition

This behavior is consistent with both IE10, Firefox 22 and since recently Blink.

No new tests, covered by existing tests.

* dom/Node.cpp:
(WebCore::compareDetachedElementsPosition):
(WebCore::Node::compareDocumentPosition):

LayoutTests:

Update fast/dom/compare-document-position-disconnected-nodes.html to check that compareDocumentPosition()
now returns one of the following values for disconnected nodes:
- DOCUMENT_POSITION_DISCONNECTED | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | DOCUMENT_POSITION_PRECEDING
- DOCUMENT_POSITION_DISCONNECTED | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | DOCUMENT_POSITION_FOLLOWING

Several dom/xhtml/level3 are skipped and marked as WonfFix because they are outdated and no longer match
the DOM4 specification. They expect compareDocumentPosition() not to return PRECEDING / FOLLOWING
information for disconnected nodes.

* TestExpectations:
* dom/xhtml/level3/core/nodecomparedocumentposition38-expected.txt:
* fast/dom/compare-document-position-disconnected-nodes-expected.txt:
* fast/dom/compare-document-position-disconnected-nodes.html:
* fast/dom/shadow/compare-document-position-expected.txt:
* fast/dom/shadow/compare-document-position.html:

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

7 years agoREGRESSION(FTL): Fix mips implementation of ctiVMThrowTrampolineSlowpath.
commit-queue@webkit.org [Fri, 2 Aug 2013 18:45:21 +0000 (18:45 +0000)]
REGRESSION(FTL): Fix mips implementation of ctiVMThrowTrampolineSlowpath.
https://bugs.webkit.org/show_bug.cgi?id=119447

Patch by Julien Brianceau <jbrianceau@nds.com> on 2013-08-02
Reviewed by Geoffrey Garen.

Fix .cpload, update call frame and do not restore registers from JIT stack frame in
mips implementation of ctiVMThrowTrampolineSlowpath. This change is similar to
r153583 (sh4) and r153648 (ARM).

* jit/JITStubsMIPS.h:

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

7 years agoImplement canvas blending test that should validate the following scenarios:
commit-queue@webkit.org [Fri, 2 Aug 2013 18:42:51 +0000 (18:42 +0000)]
Implement canvas blending test that should validate the following scenarios:
Validate that all blending operators work as expected for the following layer combinations:

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

Patch by Mihai Tica <mitica@adobe.com> on 2013-08-02
Reviewed by Dirk Schulze.

* fast/canvas/canvas-blending-clipping-expected.txt: Added.
* fast/canvas/canvas-blending-clipping.html: Added.
* fast/canvas/canvas-blending-color-over-color-expected.txt: Added.
* fast/canvas/canvas-blending-color-over-color.html: Added.
* fast/canvas/canvas-blending-color-over-gradient-expected.txt: Added.
* fast/canvas/canvas-blending-color-over-gradient.html: Added.
* fast/canvas/canvas-blending-color-over-image-expected.txt: Added.
* fast/canvas/canvas-blending-color-over-image.html: Added.
* fast/canvas/canvas-blending-color-over-pattern-expected.txt: Added.
* fast/canvas/canvas-blending-color-over-pattern.html: Added.
* fast/canvas/canvas-blending-fill-style-expected.txt: Added.
* fast/canvas/canvas-blending-fill-style.html: Added.
* fast/canvas/canvas-blending-global-alpha-expected.txt: Added.
* fast/canvas/canvas-blending-global-alpha.html: Added.
* fast/canvas/canvas-blending-gradient-over-color-expected.txt: Added.
* fast/canvas/canvas-blending-gradient-over-color.html: Added.
* fast/canvas/canvas-blending-gradient-over-gradient-expected.txt: Added.
* fast/canvas/canvas-blending-gradient-over-gradient.html: Added.
* fast/canvas/canvas-blending-gradient-over-image-expected.txt: Added.
* fast/canvas/canvas-blending-gradient-over-image.html: Added.
* fast/canvas/canvas-blending-gradient-over-pattern-expected.txt: Added.
* fast/canvas/canvas-blending-gradient-over-pattern.html: Added.
* fast/canvas/canvas-blending-helpers.js: Added.
(separateBlendFunctions.normal):
(separateBlendFunctions.multiply):
(separateBlendFunctions.screen):
(separateBlendFunctions.overlay):
(separateBlendFunctions.darken):
(separateBlendFunctions.lighten):
(separateBlendFunctions.colorDodge):
(separateBlendFunctions.colorBurn):
(separateBlendFunctions.hardLight):
(separateBlendFunctions.softLight):
(separateBlendFunctions.difference):
(separateBlendFunctions.exclusion):
(applyBlendMode):
(luminosity):
(clipColor):
(setLuminosity):
(saturation):
(setSaturation):
(nonSeparateBlendFunctions.hue):
(nonSeparateBlendFunctions.saturation):
(nonSeparateBlendFunctions.color):
(nonSeparateBlendFunctions.luminosity):
(drawColorInContext):
(drawBackdropColorInContext):
(drawSourceColorInContext):
(fillPathWithColorInContext):
(fillPathWithBackdropInContext):
(fillPathWithSourceInContext):
(applyTransformsToContext):
(drawBackdropColorWithShadowInContext):
(drawSourceColorRectOverShadow):
(.backdropImage.onload):
(drawColorImageInContext):
(drawBackdropColorImageInContext):
(drawSourceColorImageInContext):
(drawColorPatternInContext):
(drawBackdropColorPatternInContext):
(drawSourceColorPatternInContext):
(drawGradientInContext):
(drawBackdropColorGradientInContext):
(drawSourceColorGradientInContext):
(blendColors):
(separateBlendColors):
(nonSeparateBlendColors):
* fast/canvas/canvas-blending-image-over-color-expected.txt: Added.
* fast/canvas/canvas-blending-image-over-color.html: Added.
* fast/canvas/canvas-blending-image-over-gradient-expected.txt: Added.
* fast/canvas/canvas-blending-image-over-gradient.html: Added.
* fast/canvas/canvas-blending-image-over-image-expected.txt: Added.
* fast/canvas/canvas-blending-image-over-image.html: Added.
* fast/canvas/canvas-blending-image-over-pattern-expected.txt: Added.
* fast/canvas/canvas-blending-image-over-pattern.html: Added.
* fast/canvas/canvas-blending-pattern-over-color-expected.txt: Added.
* fast/canvas/canvas-blending-pattern-over-color.html: Added.
* fast/canvas/canvas-blending-pattern-over-gradient-expected.txt: Added.
* fast/canvas/canvas-blending-pattern-over-gradient.html: Added.
* fast/canvas/canvas-blending-pattern-over-image-expected.txt: Added.
* fast/canvas/canvas-blending-pattern-over-image.html: Added.
* fast/canvas/canvas-blending-pattern-over-pattern-expected.txt: Added.
* fast/canvas/canvas-blending-pattern-over-pattern.html: Added.
* fast/canvas/canvas-blending-shadow-expected.txt: Added.
* fast/canvas/canvas-blending-shadow.html: Added.
* fast/canvas/canvas-blending-text-expected.txt: Added.
* fast/canvas/canvas-blending-text.html: Added.
* fast/canvas/canvas-blending-transforms-expected.txt: Added.
* fast/canvas/canvas-blending-transforms.html: Added.

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

7 years agohasIndexingHeader should be a property of the Structure, not just the IndexingType
fpizlo@apple.com [Fri, 2 Aug 2013 18:27:51 +0000 (18:27 +0000)]
hasIndexingHeader should be a property of the Structure, not just the IndexingType
https://bugs.webkit.org/show_bug.cgi?id=119422

Reviewed by Oliver Hunt.

This simplifies some code and also allows Structure to claim that an object
has an indexing header even if it doesn't have indexed properties.

I also changed some calls to use hasIndexedProperties() since in some cases,
that's what we actually meant. Currently the two are synonyms.

* dfg/DFGRepatch.cpp:
(JSC::DFG::tryCachePutByID):
(JSC::DFG::tryBuildPutByIdList):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
* runtime/ButterflyInlines.h:
(JSC::Butterfly::create):
(JSC::Butterfly::growPropertyStorage):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::resizeArray):
* runtime/IndexingType.h:
* runtime/JSObject.cpp:
(JSC::JSObject::copyButterfly):
(JSC::JSObject::visitButterfly):
(JSC::JSObject::setPrototype):
* runtime/JSObject.h:
(JSC::JSObject::setButterfly):
* runtime/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::create):
* runtime/Structure.h:
(JSC::Structure::hasIndexingHeader):

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

7 years agoRevert r153632, since it caused fast/forms/change-form-element-document-crash.html
simon.fraser@apple.com [Fri, 2 Aug 2013 18:03:40 +0000 (18:03 +0000)]
Revert r153632, since it caused fast/forms/change-form-element-document-crash.html
to assert.

* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::formAttributeChanged):
(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):

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

7 years agoImplement atk_text_get_text_*_offset for WORD
mario@webkit.org [Fri, 2 Aug 2013 16:02:11 +0000 (16:02 +0000)]
Implement atk_text_get_text_*_offset for WORD
https://bugs.webkit.org/show_bug.cgi?id=114871

Reviewed by Martin Robinson.

Source/WebCore:

Re-implement this functions without using GailTextUtil nor Pango.

* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(textForObject): Made the parameter a const, to avoid warnings.
(getSelectionOffsetsForObject): Add special cases for END boundaries.
(emptyTextSelectionAtOffset): Convenience function to be used in
early returns from functions returning both text and offsets.
(webkitAccessibleTextGetChar): Use emptyTextSelectionAtOffset(),
and remove checks that are now done outside of this function, in
webkitAccessibleTextGetTextForOffset().
(nextWordStartPosition): Helper function to reliably find the
start of the next word as and user would do it by navigating with
Ctrl and the arrows (considering spaces and punctuation).
(previousWordEndPosition): Similar to nextWordStartPosition, but
written to help find the end of the previous one.
(wordAtPositionForAtkBoundary): Helper function to find the word
at a given position considering values of AtkTextBoundary.
(numberOfReplacedElementsBeforeOffset): Helper function to help
figure out how many embedded objects we have exposed for an
AtkText object, used to adjust offsets coming from outside.
(webkitAccessibleTextGetWordForBoundary): New function,
implementing atk_text_get_text_*_offset for WORD.
(webkitAccessibleTextGetTextForOffset): Replace usage of Gail for
WORD boundaries with webkitAccessibleTextGetWordForBoundary().
Also, moved the initialization of the start and end offsets to the
bottom, into the gail/pango section, since those values will be
from now on initialized in getSelectionOffsetsForObject().
(webkitAccessibleTextGetSelection): Removed the initialization of
the start and end offsets, since those values will be from now on
initialized in getSelectionOffsetsForObject().

Source/WebKit/gtk:

Updated current unit tests and add a new one specific for embedded
objects, to ensure we are covering even more cases than before.

* tests/testatk.c:
(testWebkitAtkGetTextAtOffsetWithEmbeddedObjects): New.
(main): Added new test to the test suite.

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

7 years ago[EFL] REGRESSION after r153432: some accessibility tests crash.
commit-queue@webkit.org [Fri, 2 Aug 2013 15:52:39 +0000 (15:52 +0000)]
[EFL] REGRESSION after r153432: some accessibility tests crash.
https://bugs.webkit.org/show_bug.cgi?id=119333

Patch by Mario Sanchez Prada <mario.prada@samsung.com> on 2013-08-02
Reviewed by Gustavo Noronha Silva.

Add missing null-check to avoid dereferencing a non-existent parent.

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::attributesOfElement): Ditto.

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

7 years agoBuildfix for !ENABLE(SVG) platforms after r153581.
zarvai@inf.u-szeged.hu [Fri, 2 Aug 2013 15:40:57 +0000 (15:40 +0000)]
Buildfix for !ENABLE(SVG) platforms after r153581.
https://bugs.webkit.org/show_bug.cgi?id=119444

Reviewed by Andreas Kling.

Adding missing guards.

* css/StylePropertyShorthand.cpp:
(WebCore::matchingShorthandsForLonghand):
* css/StylePropertyShorthand.h:

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

7 years agoREGRESSION (r130783): Scrolling is broken going back to a cached page from a page...
beidson@apple.com [Fri, 2 Aug 2013 15:18:19 +0000 (15:18 +0000)]
REGRESSION (r130783): Scrolling is broken going back to a cached page from a page that still has outstanding subresources.
<rdar://problem/14601124> and https://bugs.webkit.org/show_bug.cgi?id=119416

Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/loading/unfinished-load-back-to-cached-page-callbacks.html

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading): Always explicitly cancel the Document parser when stopLoading is called.

LayoutTests:

* http/tests/loading/resources/page-with-slow-loading-subresource.html: Added.
* http/tests/loading/resources/slowimage.php: Added.
* http/tests/loading/unfinished-load-back-to-cached-page-callbacks-expected.txt:
* http/tests/loading/unfinished-load-back-to-cached-page-callbacks.html:
* http/tests/loading/unfinished-main-resource-back-to-cached-page-callbacks-expected.txt: Copied from LayoutTests/http/tests/loading/unfinished-load-back-to-cached-page-callbacks-expected.txt.
* http/tests/loading/unfinished-main-resource-back-to-cached-page-callbacks.html: Copied from LayoutTests/http/tests/loading/unfinished-load-back-to-cached-page-callbacks.html.

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

7 years agoREGRESSION: ARM still crashes after change set r153612.
commit-queue@webkit.org [Fri, 2 Aug 2013 14:59:27 +0000 (14:59 +0000)]
REGRESSION: ARM still crashes after change set r153612.
https://bugs.webkit.org/show_bug.cgi?id=119433

Patch by Julien Brianceau <jbrianceau@nds.com> on 2013-08-02
Reviewed by Michael Saboff.

Update call frame and do not restore registers from JIT stack frame in ARM and ARMv7
implementations of ctiVMThrowTrampolineSlowpath. This change is similar to r153583
for sh4 architecture.

* jit/JITStubsARM.h:
* jit/JITStubsARMv7.h:

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

7 years ago<input type="search"> doesn't correctly handle the "size" attribute
graouts@apple.com [Fri, 2 Aug 2013 14:58:09 +0000 (14:58 +0000)]
<input type="search"> doesn't correctly handle the "size" attribute
https://bugs.webkit.org/show_bug.cgi?id=119174

Source/WebCore:

We weren't taking into account the decorations for search fields (results and close buttons)
when computing the preferred logical width for these fields based on the "size" attribute
and as a result we would not guarantee that we could show the number of characters set by
the "size" attribute.

To make the process of reporting extra width due to decorations cleaner, we add a new decorationWidth()
method for InputType subclasses to override and called through HTMLInputElement::decorationWidth()
and have NumberInputType and SearchInputType return custom decoration widths.

Reviewed by Darin Adler.

Test: fast/forms/search/search-size-with-decorations.html

* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::decorationWidth):
* html/HTMLInputElement.h:
* html/InputType.cpp:
(WebCore::InputType::decorationWidth):
* html/InputType.h:
Expose a new method to get the width for the input's decoration through the InputType.

* html/NumberInputType.cpp:
(WebCore::NumberInputType::decorationWidth):
* html/NumberInputType.h:
Override InputType::decorationWidth() to return the decoration width for a number input
using the same code previously used in RenderTextControlSingleLine::preferredContentLogicalWidth().

* html/SearchInputType.cpp:
(WebCore::SearchInputType::sizeShouldIncludeDecoration):
Override InputType::sizeShouldIncludeDecoration() to return true since search fields
have custom decoration adding to the size of the field.

(WebCore::SearchInputType::decorationWidth):
Return the combined size of the results and cancel buttons, as available.
* html/SearchInputType.h:

* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
Remove the code specific to NumberInputType (which was moved to InputType::decorationWidth())
and replace it with a call to HTMLInputElement::decorationWidth() since this method will now
return the extra decoration width for an input element should it have any.

LayoutTests:

New test fast/forms/search/search-size-with-decorations.html that checks the different
decorations for search fields and the resulting sizes.

Also rebaselining the following tests since the rendering of search fields changed:

fast/forms/search-cancel-button-style-sharing.html
fast/forms/search-display-none-cancel-button.html
fast/forms/searchfield-heights.html
fast/forms/control-restrict-line-height.html
fast/forms/placeholder-pseudo-style.html
fast/forms/search-rtl.html
fast/css/text-overflow-input.html
fast/forms/placeholder-position.html
fast/repaint/search-field-cancel.html
fast/forms/input-appearance-height.html
fast/forms/search-vertical-alignment.html
fast/forms/box-shadow-override.html
fast/forms/search/search-size-with-decorations.html
fast/css/input-search-padding.html
fast/forms/search-styled.html

Reviewed by Darin Adler.

* fast/forms/placeholder-position-expected.txt:
* fast/forms/search/search-size-with-decorations-expected.txt: Added.
* fast/forms/search/search-size-with-decorations.html: Added.
* fast/repaint/search-field-cancel-expected.txt:
* platform/mac/fast/css/input-search-padding-expected.txt:
* platform/mac/fast/css/text-overflow-input-expected.png:
* platform/mac/fast/css/text-overflow-input-expected.txt:
* platform/mac/fast/forms/box-shadow-override-expected.png:
* platform/mac/fast/forms/box-shadow-override-expected.txt:
* platform/mac/fast/forms/control-restrict-line-height-expected.png:
* platform/mac/fast/forms/control-restrict-line-height-expected.txt:
* platform/mac/fast/forms/input-appearance-height-expected.png:
* platform/mac/fast/forms/input-appearance-height-expected.txt:
* platform/mac/fast/forms/placeholder-position-expected.png:
* platform/mac/fast/forms/placeholder-pseudo-style-expected.png:
* platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
* platform/mac/fast/forms/search-cancel-button-style-sharing-expected.png:
* platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt:
* platform/mac/fast/forms/search-display-none-cancel-button-expected.txt:
* platform/mac/fast/forms/search-rtl-expected.png:
* platform/mac/fast/forms/search-rtl-expected.txt:
* platform/mac/fast/forms/search-styled-expected.txt:
* platform/mac/fast/forms/search-vertical-alignment-expected.png:
* platform/mac/fast/forms/search-vertical-alignment-expected.txt:
* platform/mac/fast/forms/search/search-size-with-decorations-expected.png: Added.
* platform/mac/fast/forms/searchfield-heights-expected.png:
* platform/mac/fast/forms/searchfield-heights-expected.txt:
* platform/mac/fast/repaint/search-field-cancel-expected.png:

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

7 years agoREGRESSION(r153612): It made jsc and layout tests crash
msaboff@apple.com [Fri, 2 Aug 2013 14:46:05 +0000 (14:46 +0000)]
REGRESSION(r153612): It made jsc and layout tests crash
https://bugs.webkit.org/show_bug.cgi?id=119440

Reviewed by Csaba Osztrogonác.

Made the changes if changeset r153612 only apply to 32 bit builds.

* jit/JITExceptions.cpp:
* jit/JITExceptions.h:
* jit/JITStubs.cpp:
(JSC::cti_vm_throw_slowpath):
* jit/JITStubs.h:

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

7 years ago[WIN] Fix build without precompiled header.
paroga@webkit.org [Fri, 2 Aug 2013 12:19:19 +0000 (12:19 +0000)]
[WIN] Fix build without precompiled header.

* accessibility/win/AccessibilityObjectWrapperWin.h: Added missing include.
* rendering/RenderThemeWin.cpp: Ditto.

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

7 years agoAdd JSCTestRunnerUtils to the list of forwarding headers to fix build.
paroga@webkit.org [Fri, 2 Aug 2013 11:37:10 +0000 (11:37 +0000)]
Add JSCTestRunnerUtils to the list of forwarding headers to fix build.

* CMakeLists.txt:

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

7 years agoRemove redundant call of argsList->current() from loops in CSSParser.
bw80.lee@samsung.com [Fri, 2 Aug 2013 10:49:04 +0000 (10:49 +0000)]
Remove redundant call of argsList->current() from loops in CSSParser.
https://bugs.webkit.org/show_bug.cgi?id=119432

Reviewed by Christophe Dumez.

while loops in CSSParser call argList->current() function at the start
of each iteration, but this is redundant because argsList->next() at
the end of the iteration calls the argList->current() and returns the
result.

Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=155402

* css/CSSParser.cpp:
(WebCore::CSSParser::parseMixFunction):
(WebCore::CSSParser::parseCustomFilterFunctionWithInlineSyntax):

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

7 years agoCorrect bugzilla link in my last commit.
akling@apple.com [Fri, 2 Aug 2013 09:22:07 +0000 (09:22 +0000)]
Correct bugzilla link in my last commit.

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

7 years agoRemoving an empty style sheet shouldn't trigger style recalc.
akling@apple.com [Fri, 2 Aug 2013 09:15:43 +0000 (09:15 +0000)]
Removing an empty style sheet shouldn't trigger style recalc.
<http://webkit.org/b/119248>
<rdar://problem/14629045>

Reviewed by Antti Koivisto.

Teach DocumentStyleSheetCollection to filter out empty style sheets when deciding whether
or not to trigger a style recalc. We can then be clever when an empty style sheet is removed
from the document, and avoid causing extra work.

Some pages use this pattern:

    (1) Create a <style> element.
    (2) Add it to the document's <head> element.
    (3) Insert some CSS as a text child of the <style> element.

Since the <style> element is already inside the document at (3), we had to treat this as an
old style sheet being removed, even though it was just an empty sheet of nothing.

With this patch, Document gains enough smarts to know that removing/adding an empty sheet
won't affect layout/rendering in any meaningful way, thus a style recalc can be avoided.

* dom/Document.h:
* dom/Document.cpp:
(WebCore::Document::styleResolverChanged):

    Add a DeferRecalcStyleIfNeeded mode to styleResolverChanged().

* css/CSSStyleSheet.h:
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::clearOwnerNode):

    Use DeferRecalcStyleIfNeeded when saying bye from a CSSStyleSheet and let Document decide
    if removing the sheet should trigger style recalc instead of always assuming it should.

* dom/DocumentStyleSheetCollection.cpp:
(WebCore::filterEnabledNonemptyCSSStyleSheets):
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):

    Exclude empty sheets from the activeAuthorStyleSheets() collection. They are still
    visible through CSSOM's document.styleSheets.

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

7 years agoFrame flattening: Change the logic on whether resize event needs to be dispatched.
zalan@apple.com [Fri, 2 Aug 2013 08:58:23 +0000 (08:58 +0000)]
Frame flattening: Change the logic on whether resize event needs to be dispatched.
https://bugs.webkit.org/show_bug.cgi?id=119394

Reviewed by Simon Fraser.

http://trac.webkit.org/changeset/149287 changed the logic so that resize events are
sent out from FrameView::setFrameRect() too. Checking whether frame flattening is
enabled is sufficient enough to ensure that no extra resize events are dispatched.

Source/WebCore:

Test: fast/frames/flattening/iframe-flattening-resize-event-count.html

* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::setFrameRect):
(WebCore::FrameView::frameFlatteningEnabled):
(WebCore::FrameView::supportsFrameFlattening):
(WebCore::FrameView::avoidScrollbarCreation):
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::layout):
(WebCore::FrameView::isInChildFrameWithFrameFlattening):
* page/FrameView.h:
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::layoutWithFlattening):

LayoutTests:

* fast/frames/flattening/iframe-flattening-resize-event-count-expected.txt: Added.
* fast/frames/flattening/iframe-flattening-resize-event-count.html: Added.
* fast/frames/flattening/resources/iframe-to-resize.html: Added.

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

7 years agoAdd --rmdir option to git svn dcommit
paroga@webkit.org [Fri, 2 Aug 2013 08:32:30 +0000 (08:32 +0000)]
Add --rmdir option to git svn dcommit
https://bugs.webkit.org/show_bug.cgi?id=119398

Reviewed by Ryosuke Niwa.

Add this option tells git-svn to remove empty directories
from the svn tree so they do not leave over there.

* Scripts/webkitpy/common/checkout/scm/git.py:
(Git.push_local_commits_to_server):

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

7 years agoCheck WTF::Vector size with '0' inline capacity
mikhail.pozdnyakov@intel.com [Fri, 2 Aug 2013 08:20:23 +0000 (08:20 +0000)]
Check WTF::Vector size with '0' inline capacity
https://bugs.webkit.org/show_bug.cgi?id=119397

Reviewed by Andreas Kling.

Putting in place the compile assertion that had been removed with r153514.

* wtf/SizeLimits.cpp:

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

7 years ago<http://webkit.org/b/119169> RetainPtr should support ARC for Objective-C objects.
mrowe@apple.com [Fri, 2 Aug 2013 07:51:49 +0000 (07:51 +0000)]
<webkit.org/b/119169> RetainPtr should support ARC for Objective-C objects.

While RetainPtr is not necessary under ARC, having it available makes it easier to transition
existing code from manual retain / release to ARC.

Under ARC, the object member of RetainPtr is treated as a strong reference by the compiler.
This means that merely assigning to the member variable is sufficient to retain the object,
and clearing the member variable is sufficient to release it. We still need to explicitly
CFRetain / CFRelease CoreFoundation types so the explicit calls to these functions are
moved in to helper functions and overloading is used to have the Objective-C object versions
of them be no-ops under ARC.

Reviewed by Anders Carlsson.

* wtf/RetainPtr.h:
(WTF::retain): Continue to always CFRetain / CFRelease CoreFoundation objects. Only CFRetain / CFRelease
Objective-C objects when using manual retain / release.
(WTF::release): Ditto.
(WTF::adoptNSReference): Adopting references will be handled automatically by the compiler
when possible under ARC by eliminating redundant retain / release pairs.
(WTF::RetainPtr::ImplicitConversionToBoolIsNotAllowed): A new method that exists only to be used by the
conversion to the unspecified bool type.
(WTF::RetainPtr::operator UnspecifiedBoolType): Switch to using a pointer to a member function as the
unspecified bool type to avoid warnings from the compiler when casting Objective-C object types under ARC.

(WTF::RetainPtr::RetainPtr): Switch to our retain / release helper functions.
(WTF::RetainPtr::~RetainPtr): Ditto.
(WTF::::RetainPtr): Ditto.
(WTF::::clear): Ditto.
(WTF::=): Ditto.
(WTF::adoptCF): Annotate the argument with CF_RELEASES_ARGUMENT on both the declaration and the definition.
(WTF::adoptNS): Ditto for NS_RELEASES_ARGUMENT.

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

7 years ago<rdar://problem/14235491> FastMalloc zone enumerator responding to MALLOC_PTR_REGION_...
mrowe@apple.com [Fri, 2 Aug 2013 06:09:05 +0000 (06:09 +0000)]
<rdar://problem/14235491> FastMalloc zone enumerator responding to MALLOC_PTR_REGION_RANGE_TYPE with individual allocations

Teach PageMapMemoryUsageRecorder::recordPendingRegions to only record data of the type that it's asked for.
This also fixes the vmmap output to associate some regions with the FastMalloc malloc zone that were previously
associated with it only via the VM tag, meaning they were incorrectly being omitted from the malloc statistics
section of the report.

Reviewed by Dan Bernstein.

* wtf/FastMalloc.cpp:
(WTF::PageMapMemoryUsageRecorder::recordPendingRegions): Report the individual allocations only when requested. Add
the ability to report the regions containing pointers separately from the allocations.

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

7 years ago<rdar://problem/14528244> False-positive leaks from FastMalloc.
mrowe@apple.com [Fri, 2 Aug 2013 06:01:54 +0000 (06:01 +0000)]
<rdar://problem/14528244> False-positive leaks from FastMalloc.

A logic error in the page map enumeration code within FastMalloc could result in a subset of the memory regions
owned by FastMalloc being skipped by the malloc zone enumeration code used by leaks and other performance tools.
If the only reference to an allocated object lived within one of the skipped memory regions, leaks would believe
it had been leaked since it would not find any references to the object.

The logic error manifested when a FastMalloc span owned a region of memory that crossed a 16MB address space boundary,
and when there was one or more other spans immediately after it in the address space. Crossing the 16MB address space
boundary means that the start and end points of the span are in different leaf nodes of the page map trie, and the
code within the page map's visitValues method didn't correctly account this case when skipping to the end of the span
after visiting it. It would resume iterating from the start of the next leaf node rather than continuing to skip values
until the end of the span was passed. The value representing the end of the span would then be processed as if it were
the start of a new span, and more values would be skipped even though they may contain actual spans.

The solution is to rework the algorithm used in visitValues so that it will skip the correct number of values even when
some of the values are in different leaf nodes. This is a more involved change than it may seem since it's also necessary
to deal with the case where a memory region spans two separate root nodes, which can happen if the region happens to cross
a 64GB boundary in the address space.

Reviewed by Geoff Garen.

* wtf/TCPageMap.h:
(TCMalloc_PageMap3::visitValues): Use a single loop to iterate, with the loop index being the key in to the page map in the
same form as used by get and set. This allows us to correctly deal with the index being skipped to a different intermediate or
root node as a result of visiting a span that crosses a 16MB boundary in memory.
(TCMalloc_PageMap2::visitValues): Ditto, but without having to deal with intermediate nodes.

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

7 years agoUnreviewed, rolling out r153608.
commit-queue@webkit.org [Fri, 2 Aug 2013 02:39:15 +0000 (02:39 +0000)]
Unreviewed, rolling out r153608.
http://trac.webkit.org/changeset/153608
https://bugs.webkit.org/show_bug.cgi?id=119425

Snorkled fast/multicol/overflow-content-expected.html
(Requested by kling on #webkit).

Source/WebCore:

* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyMatchedProperties):

LayoutTests:

* fast/css/identical-logical-height-decl-expected.html: Removed.
* fast/css/identical-logical-height-decl.html: Removed.

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

7 years ago[Forms: color] <input type='color'> popover color well implementation
commit-queue@webkit.org [Fri, 2 Aug 2013 02:07:34 +0000 (02:07 +0000)]
[Forms: color] <input type='color'> popover color well implementation
<rdar://problem/14411008> and https://bugs.webkit.org/show_bug.cgi?id=119356

Patch by Ruth Fong <ruth_fong@apple.com> on 2013-08-01
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig: Added and enabled INPUT_TYPE_COLOR_POPOVER.

Source/WebCore:

* Configurations/FeatureDefines.xcconfig: Added and enabled INPUT_TYPE_COLOR_POPOVER.

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig: Added and enabled INPUT_TYPE_COLOR_POPOVER.

Source/WebKit2:

This patch adds an popover implementation of <input type='color'>.

* Configurations/FeatureDefines.xcconfig: Added and enabled INPUT_TYPE_COLOR_POPOVER.

* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::createColorPicker): Updated to pass the
  coordinates of the <input type='color'> element and the WKView
  object for the window.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewWillStartLiveResize): Close popover color
  picker when the view is resized.
(WebKit::WebPageProxy::viewInWindowStateDidChange): Close popover color
  picker when the view is no longer in the window.
(WebKit::WebPageProxy::showColorPicker): Updated to show either a color panel
  or a popover color picker depending on whether INPUT_TYPE_COLOR_POPOVER is enabled.

* UIProcess/mac/WebColorPickerMac.h:
* UIProcess/mac/WebColorPickerMac.mm:
(WebKit::WebColorPickerMac::create):
(WebKit::WebColorPickerMac::~WebColorPickerMac):
(WebKit::WebColorPickerMac::WebColorPickerMac):
(WebKit::WebColorPickerMac::endPicker):
(WebKit::WebColorPickerMac::setSelectedColor):
(WebKit::WebColorPickerMac::showColorPicker):
Methods updated to handle both the color panel implementation and
  the popover implementation; also renamed m_panel to m_colorPickerUI.

(-[WKColorPopoverMac initWithFrame:WebCore::inView:]):
(-[WKColorPopoverMac setAndShowPicker:WebKit::withColor:]):
(-[WKColorPopoverMac dealloc]):
(-[WKColorPopoverMac invalidate]):
(-[WKColorPopoverMac windowWillClose:]):
(-[WKColorPopoverMac didChooseColor:]):
(-[WKColorPopoverMac setColor:]):
WKColorPopoverMac provides the popover implementation of <input type='color'>.

(-[WKColorPanelMac didChooseColor:]): Updated to match the interface of
  WKColorPickerMac::didChooseColor.

Source/WTF:

* wtf/FeatureDefines.h: Added and enabled INPUT_TYPE_COLOR_POPOVER.

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

7 years agoFormAssociatedElement shouldn't create out-of-tree FormAttributeTargetObserver
rniwa@webkit.org [Fri, 2 Aug 2013 01:57:12 +0000 (01:57 +0000)]
FormAssociatedElement shouldn't create out-of-tree FormAttributeTargetObserver
https://bugs.webkit.org/show_bug.cgi?id=119309

Reviewed by Kent Tamura.

Merge https://chromium.googlesource.com/chromium/blink/+/6fbdcbf311de539107bc28711b3f7a527176e97b.

I'm not merging the test since the attached test case only works when the shadow DOM API is enabled.

* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::formAttributeChanged):
(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):

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

7 years agoselectors should match attribute name with case sensitivity based on element & docume...
rwlbuis@webkit.org [Fri, 2 Aug 2013 01:00:10 +0000 (01:00 +0000)]
selectors should match attribute name with case sensitivity based on element & document type
https://bugs.webkit.org/show_bug.cgi?id=71152

Reviewed by Darin Adler.

Source/WebCore:

Support case-sensitive attribute name selecting for non HTML. In order to do this we have to
store the attribute name in the selector as-is when css parsing, and get the lowercase localName
on demand for case-insensitive matching. The only time we want case-insensitive matching is when
we try to match a HTML element in a HTML document.

Tests: fast/dom/SelectorAPI/attrname-case-insensitive.html
       fast/dom/SelectorAPI/attrname-case-sensitive.xhtml
       svg/css/case-sensitive-attrname-selectors.html

* css/CSSGrammar.y.in: do not lowercase attribute selector name.
* css/CSSParserValues.h:
(WebCore::CSSParserSelector::setAttribute):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::setAttribute):
* css/CSSSelector.h: allow access to lowered version of attribute localName if needed.
(WebCore::CSSSelector::attributeCanonicalLocalName):
* css/SelectorChecker.cpp:
(WebCore::anyAttributeMatches): do only case-insensitive matching for HTML.
(WebCore::SelectorChecker::checkOne):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::checkExactAttribute): do only case-insensitive matching for HTML.
* css/SelectorCheckerFastPath.cpp:
(WebCore::HTMLNames::checkExactAttributeValue):
* css/SelectorCheckerFastPath.h:
(WebCore::SelectorCheckerFastPath::matchesRightmostAttributeSelector):
* dom/Attribute.h:
(WebCore::Attribute::matches): use more convenient parameters.

LayoutTests:

Results matches FireFox nightly.

* fast/dom/SelectorAPI/attrname-case-insensitive-expected.txt: Added.
* fast/dom/SelectorAPI/attrname-case-insensitive.html: Check that in HTML documents CSS selectors
use case-insensitive attribute name matching for HTML elements, case-sensitive otherwise.
* fast/dom/SelectorAPI/attrname-case-sensitive-expected.txt: Added.
* fast/dom/SelectorAPI/attrname-case-sensitive.xhtml: Check that in XHTML documents CSS selectors
always use case-sensitive attribute name matching.
* svg/css/case-sensitive-attrname-selectors-expected.txt: Added.
* svg/css/case-sensitive-attrname-selectors.html: Check that in HTML documents CSS selectors in stylesheets
use case-insensitive attribute name matching for HTML elements, case-sensitive otherwise.

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

7 years ago <rdar://problem/14625616> http/tests/download/basic-ascii.html and http/tests...
ap@apple.com [Fri, 2 Aug 2013 00:23:02 +0000 (00:23 +0000)]
    <rdar://problem/14625616> http/tests/download/basic-ascii.html and http/tests/download/literal-utf-8.html fails

        Changed the PHP files to not have a BOM, which confuses some versions of PHP.
        They are both ASCII anyway.

        * http/tests/download/resources/basic-ascii.php:
        * http/tests/download/resources/literal-utf-8.php:

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

7 years ago[Windows] WebKit1 Fullscreen Video Play is Broken
bfulgham@apple.com [Fri, 2 Aug 2013 00:07:03 +0000 (00:07 +0000)]
[Windows] WebKit1 Fullscreen Video Play is Broken
https://bugs.webkit.org/show_bug.cgi?id=119415

Reviewed by Jer Noble.

Source/WebCore:

* platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Add
call for ACFPlayerLayerSetFrame
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::platformSetVisible):
Tear down video player when leaving Fullscreen mode and not using
the newer Fullscreen feature.
(WebCore::AVFWrapper::disconnectAndDeleteAVFWrapper):
Disconnect from notifications for AVCFPlayerItemPresentationSizeChangedNotification,
AVCFPlayerItemDuratoinChangedNotification, and disconnect any
LegibleOutput items added to the player item.
(WebCore::AVFWrapper::createPlayerItem): Add notifications for
AVCFPlayerItemPresentationSizeChanged.
(WebCore::LayerClient::platformCALayerLayoutSublayersOfLayer): Notify
the AVCFPLayerLayer when the display size has changed.
* platform/graphics/ca/win/CACFLayerTreeHost.h:
(WebCore::CACFLayerTreeHost::manualCreateRenderer): Added.
* platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
(WebCore::WKCACFViewLayerTreeHost::manualCreateRenderer): Added.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
(WebCore::MediaPlayerPrivateFullscreenWindow::createWindow): Minor
cleanups.
(WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer):
Make sure a Direct3D renderer is created when building the full screen
window for Video playback.

Source/WebKit/win:

* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings): Set accelerated
rendering on by default on systems that support it.
* WebView.cpp:
(WebView::exitFullscreen): Clean up Fullscreen video controller
once it is no longer used. This was preventing users from being
able to reenter Fullscreen mode after leaving it.
(WebView::fullScreenClientForceRepaint): Change assert to
match the member actually being used in the method.

Tools:

* WinLauncher/WinLauncher.cpp:
(dllLauncherEntryPoint): Activate full screen mode via
IWebPreferencesInternal interface.

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

7 years agosrcset algorithm breaks base64 src attributes
dino@apple.com [Fri, 2 Aug 2013 00:02:25 +0000 (00:02 +0000)]
srcset algorithm breaks base64 src attributes
https://bugs.webkit.org/show_bug.cgi?id=119413

Reviewed by Darin Adler.

Source/WebCore:

Base64 encoded src attributes typically have a COMMA
character which was breaking in the candidate matching
algorithm. Make sure to handle that case, and to unescape
any incoming URLs.

Slight cleanup of the srcset matching algorithm. The
candidates are now gathered from a single update
method. I've renamed the methods in the process.
This means we now reparse the srcset attribute if
only the src changes, but I think the code is
cleaner this way.

Tests: fast/hidpi/image-srcset-data-src.html
       fast/hidpi/image-srcset-data-srcset.html
       fast/hidpi/image-srcset-nomodifier.html
       fast/hidpi/image-srcset-viewport-modifiers.html

* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement): No need to initialise m_bestFitImageURL.
(WebCore::HTMLImageElement::imageSourceURL): Use isEmpty() rather than checking for nullAtom.
(WebCore::HTMLImageElement::determineBestImageForScaleFactor): New renamed method that selects the best
candidate for the image source.
(WebCore::HTMLImageElement::collectImageCandidatesFromSrcSet): Gather the srcset images. Changes include
simplifying the whitespace and skipping candidates that we don't yet support.
(WebCore::HTMLImageElement::collectImageCandidateFromSrc): Add the src attribute to the list of candidates.
(WebCore::HTMLImageElement::parseAttribute): Now both attributes call determineBestImageForScaleFactor.
* html/HTMLImageElement.h: No need for m_srcImageIndex any more.

LayoutTests:

Four new tests that exercise candidate matching. In particular:
- base64 encoded src attributes
- base64 encoded srcset attributes that are escaped
- attributes without scale modifiers
- attributes that have modifiers other than scale

* fast/hidpi/image-srcset-change-dynamically-from-js.html: Minor change to add scale modifier.
* fast/hidpi/image-srcset-data-src.html: Added.
* fast/hidpi/image-srcset-data-srcset.html: Added.
* fast/hidpi/image-srcset-nomodifier.html: Added.
* fast/hidpi/image-srcset-viewport-modifiers.html: Added.
* platform/mac/fast/hidpi/image-srcset-data-src-expected.png: Added.
* platform/mac/fast/hidpi/image-srcset-data-src-expected.txt: Added.
* platform/mac/fast/hidpi/image-srcset-data-srcset-expected.png: Added.
* platform/mac/fast/hidpi/image-srcset-data-srcset-expected.txt: Added.
* platform/mac/fast/hidpi/image-srcset-nomodifier-expected.png: Added.
* platform/mac/fast/hidpi/image-srcset-nomodifier-expected.txt: Added.
* platform/mac/fast/hidpi/image-srcset-viewport-modifiers-expected.png: Added.
* platform/mac/fast/hidpi/image-srcset-viewport-modifiers-expected.txt: Added.

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

7 years agoMinor cleanup for srcset tests
dino@apple.com [Fri, 2 Aug 2013 00:01:21 +0000 (00:01 +0000)]
Minor cleanup for srcset tests
https://bugs.webkit.org/show_bug.cgi?id=119407

Reviewed by Tim Horton.

Other than small typos and style tweaks, there are three
main changes here:

1. Collect duplicated code into a helper file.
2. Make sure the tests that add or remove the attributes
can run standalone outside of DRT.
3. Update the -simple test with new images that make it
more clear what srcset is doing.

* fast/hidpi/image-srcset-change-dynamically-from-js.html:
* fast/hidpi/image-srcset-invalid-inputs-correct-src.html:
* fast/hidpi/image-srcset-invalid-inputs-except-one.html:
* fast/hidpi/image-srcset-invalid-inputs.html:
* fast/hidpi/image-srcset-only-src-attribute.html:
* fast/hidpi/image-srcset-remove-dynamically-from-js.html:
* fast/hidpi/image-srcset-same-alternative-for-both-attributes.html:
* fast/hidpi/image-srcset-simple.html:
* fast/hidpi/image-srcset-src-selection.html:
* fast/hidpi/resources/image-set-1x.png: Added.
* fast/hidpi/resources/image-set-2x.png: Added.
* fast/hidpi/resources/srcset-helper.js: Added.
* platform/mac/fast/hidpi/image-srcset-simple-expected.png:
* platform/mac/fast/hidpi/image-srcset-simple-expected.txt:

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

7 years agoImplement img element's srcset attribute
dino@apple.com [Fri, 2 Aug 2013 00:00:29 +0000 (00:00 +0000)]
Implement img element's srcset attribute
https://bugs.webkit.org/show_bug.cgi?id=110252

Patch by Romain Perier <romain.perier@gmail.com> on 2013-08-01
Reviewed by Dean Jackson.

Source/WebCore:

Tests: fast/hidpi/image-srcset-simple.html
       fast/hidpi/image-srcset-src-selection.html
       fast/hidpi/image-srcset-simple.html
       fast/hidpi/image-srcset-src-selection.html
       fast/hidpi/image-srcset-only-src-attribute.html
       fast/hidpi/image-srcset-same-alternative-for-both-attributes.html
       fast/hidpi/image-srcset-invalid-inputs.html
       fast/hidpi/image-srcset-invalid-inputs-except-one.html
       fast/hidpi/image-srcset-invalid-inputs-correct-src.html
       fast/hidpi/image-srcset-change-dynamically-from-js.html
       fast/hidpi/image-srcset-remove-dynamically-from-js.html

* html/HTMLAttributeNames.in: Add srcset attribute.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement):
Adding initialization for new variables member.
(WebCore::HTMLImageElement::imageSourceURL):
Override this method to return the choosen image transparently to the ImageLoader.
(WebCore::HTMLImageElement::updateBestImageForScaleFactor):
New method to select the good image candidate dependending on the scale factor. This method is separated from
parsing because it will be useful for selecting a new image candidate on the fly if the device scale factor changes.
(WebCore::HTMLImageElement::updateImagesFromSrcSet):
New method for parsing the srcset attribute and build a list of images with the corresponding scale factor.
(WebCore::HTMLImageElement::parseAttribute):
Adding support for processing the image candidates, select the good one and call ImageLoader for rendering.
* html/HTMLImageElement.h:
- Adding new methods declarations.
- Adding new type definition.
- Adding new variable member to store the URL of the choosen image.
- Adding new variable member to store the index of the src image.
- Adding new Vector to store the list of images after parsing.
* html/HTMLImageElement.idl: Adding srcset attribute for the differents existing bidings.

LayoutTests:

* fast/hidpi/image-srcset-simple.html: Ensures that the good image
is selected from srcset by the user agent according to the choosen scale factor.
* fast/hidpi/image-srcset-src-selection.html: Ensures that the image
from the src attribute is collected by the parsing algorithm and selected by the user agent
when no other candidate matches the scale factor.
* fast/hidpi/image-srcset-only-src-attribute.html: Ensures that the algorithms used for srcset
does not change the behaviour of the src attribute when the srcset attribute is not defined,
even using scale factor greater than 1.
* fast/hidpi/image-srcset-same-alternative-for-both-attributes.html: Ensures that the good image
is selected by the user agent when src and srcset contain an image with a scale factor of 1.
* fast/hidpi/image-srcset-invalid-inputs.html: Ensures that the parsing and the selection
algorithms support invalid inputs. Theses ones are simply ignored.
* fast/hidpi/image-srcset-invalid-inputs-except-one.html: Ensures that a valid image
is selected even if this one is part of a set containing invalid inputs.
* fast/hidpi/image-srcset-invalid-inputs-correct-src.html: Ensures that the image from
the src attribute is choosen when srcset contains only invalid inputs, this selection
should not depend on the scale factor.
* fast/hidpi/image-srcset-change-dynamically-from-js.html: Ensures that src and srcset attributes
can be changed dynamically from javascript.
* fast/hidpi/image-srcset-remove-dynamically-from-js.html: Ensures that src attribute
can be removed dynamically from javascript.
* platform/mac/fast/hidpi/image-srcset-simple-expected.png:
* platform/mac/fast/hidpi/image-srcset-simple-expected.txt:
* platform/mac/fast/hidpi/image-srcset-src-selection-expected.png:
* platform/mac/fast/hidpi/image-srcset-src-selection-expected.txt:
* platform/mac/fast/hidpi/image-srcset-only-src-attribute-expected.png:
* platform/mac/fast/hidpi/image-srcset-only-src-attribute-expected.txt:
* platform/mac/fast/hidpi/image-srcset-same-alternative-for-both-attributes-expected.png:
* platform/mac/fast/hidpi/image-srcset-same-alternative-for-both-attributes-expected.txt:
* platform/mac/fast/hidpi/image-srcset-invalid-inputs-expected.png:
* platform/mac/fast/hidpi/image-srcset-invalid-inputs-expected.txt:
* platform/mac/fast/hidpi/image-srcset-invalid-inputs-except-one-expected.png:
* platform/mac/fast/hidpi/image-srcset-invalid-inputs-except-one-expected.txt:
* platform/mac/fast/hidpi/image-srcset-invalid-inputs-correct-src-expected.png:
* platform/mac/fast/hidpi/image-srcset-invalid-inputs-correct-src-expected.txt:
* platform/mac/fast/hidpi/image-srcset-change-dynamically-from-js-expected.png:
* platform/mac/fast/hidpi/image-srcset-change-dynamically-from-js-expected.txt:
* platform/mac/fast/hidpi/image-srcset-remove-dynamically-from-js-expected.png:
* platform/mac/fast/hidpi/image-srcset-remove-dynamically-from-js-expected.txt:

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

7 years ago[CSS Shapes] New positioning model: support for stacked floats with shape-outside
bjonesbe@adobe.com [Thu, 1 Aug 2013 23:44:45 +0000 (23:44 +0000)]
[CSS Shapes] New positioning model: support for stacked floats with shape-outside
https://bugs.webkit.org/show_bug.cgi?id=118087

Reviewed by Alexandru Chiculita.

Import new test for stacked floats from the CSSWG's repository to
replace the old tests. The simple horizontal rectangle test is no
longer applicable now that float stacking ignores shapes, so it has
just been removed.

* TestExpectations: Remove skipping for replaced tests.
* csswg/submitted/shapes/shape-outside/shape-outside-floats-stacked-000-expected.html: Added.
* csswg/submitted/shapes/shape-outside/shape-outside-floats-stacked-000.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-simple-rectangle-horizontal-multiple-expected.html: Removed.
* fast/shapes/shape-outside-floats/shape-outside-floats-simple-rectangle-horizontal-multiple.html: Removed.
* fast/shapes/shape-outside-floats/shape-outside-floats-stacked-expected.html: Removed.
* fast/shapes/shape-outside-floats/shape-outside-floats-stacked.html: Removed.

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

7 years agoUpdate polygon shape-outside tests for upstream changes
bjonesbe@adobe.com [Thu, 1 Aug 2013 23:17:51 +0000 (23:17 +0000)]
Update polygon shape-outside tests for upstream changes
https://bugs.webkit.org/show_bug.cgi?id=119414

Reviewed by Alexandru Chiculita.

The refs were updated upstream to make them work properly in Blink.
This pulls in that change to keep things in sync.

* csswg/submitted/shapes/shape-outside/shape-outside-floats-polygon-001-expected.html:
* csswg/submitted/shapes/shape-outside/shape-outside-floats-polygon-001.html:
* csswg/submitted/shapes/shape-outside/shape-outside-floats-polygon-002-expected.html:

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

7 years agoUnreviewed. Add an alternative address to show my affiliation in team.html.
changseok.oh@collabora.com [Thu, 1 Aug 2013 22:36:07 +0000 (22:36 +0000)]
Unreviewed. Add an alternative address to show my affiliation in team.html.

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

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

7 years agoLots of leaks under WebContext::pluginInfoStoreDidLoadPlugins()
andersca@apple.com [Thu, 1 Aug 2013 22:27:10 +0000 (22:27 +0000)]
Lots of leaks under WebContext::pluginInfoStoreDidLoadPlugins()
https://bugs.webkit.org/show_bug.cgi?id=119412

Reviewed by Simon Fraser.

For some sick reason, the WKContextClient plugInInformationBecameAvailable callback function
expects a +1 reference to the plug-in array. Isolate that hack to WebContextClient so that
we don't leak the array if there is no WKContextClient.

* UIProcess/WebContext.cpp:
(WebKit::WebContext::pluginInfoStoreDidLoadPlugins):
* UIProcess/WebContextClient.cpp:
(WebKit::WebContextClient::plugInInformationBecameAvailable):

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

7 years agoDFG is not enforcing correct ordering of ToString conversion in MakeRope
oliver@apple.com [Thu, 1 Aug 2013 22:18:58 +0000 (22:18 +0000)]
DFG is not enforcing correct ordering of ToString conversion in MakeRope
https://bugs.webkit.org/show_bug.cgi?id=119408

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Construct ToString and Phantom nodes in advance of MakeRope
nodes to ensure that ordering is ensured, and correct values
will be reified on OSR exit.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):

LayoutTests:

Add tests

* fast/js/dfg-make-rope-side-effects-expected.txt: Added.
* fast/js/dfg-make-rope-side-effects.html: Added.
* fast/js/script-tests/dfg-make-rope-side-effects.js: Added.
(f):
(k.valueOf):
(k.toString):

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

7 years agoDFG optimizations don't handle neutered arrays properly
fpizlo@apple.com [Thu, 1 Aug 2013 22:14:28 +0000 (22:14 +0000)]
DFG optimizations don't handle neutered arrays properly
https://bugs.webkit.org/show_bug.cgi?id=119409

Reviewed by Mark Hahnenberg and Oliver Hunt.

Source/WebCore:

Test: fast/js/dfg-typed-array-neuter.

* bindings/js/SerializedScriptValue.cpp:
(WebCore::neuterView):
(WebCore::SerializedScriptValue::transferArrayBuffers):
(WebCore::SerializedScriptValue::create):
* bindings/js/SerializedScriptValue.h:

LayoutTests:

* fast/js/dfg-typed-array-neuter-expected.txt: Added.
* fast/js/dfg-typed-array-neuter.html: Added.
* fast/js/script-tests/dfg-typed-array-neuter.js: Added.
(foo):
(bar):

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

7 years agoREGRESSION: Crash beneath cti_vm_throw_slowpath due to invalid CallFrame pointer
msaboff@apple.com [Thu, 1 Aug 2013 21:57:38 +0000 (21:57 +0000)]
REGRESSION: Crash beneath cti_vm_throw_slowpath due to invalid CallFrame pointer
https://bugs.webkit.org/show_bug.cgi?id=119140

Reviewed by Filip Pizlo.

Ensure that ExceptionHandler is returned by functions in two registers by encoding the value as a 64 bit int.

* jit/JITExceptions.cpp:
(JSC::encode):
* jit/JITExceptions.h:
* jit/JITStubs.cpp:
(JSC::cti_vm_throw_slowpath):
* jit/JITStubs.h:

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

7 years agoRemove return statement in void function
kseo@webkit.org [Thu, 1 Aug 2013 21:50:58 +0000 (21:50 +0000)]
Remove return statement in void function
https://bugs.webkit.org/show_bug.cgi?id=119379

Reviewed by Darin Adler.

It does not make sense to return a value in void function.

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

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

7 years ago[WK2] Add USE(SOUP) guard in WebProcess::destroyPrivateBrowsingSession
kseo@webkit.org [Thu, 1 Aug 2013 21:48:07 +0000 (21:48 +0000)]
[WK2] Add USE(SOUP) guard in WebProcess::destroyPrivateBrowsingSession
https://bugs.webkit.org/show_bug.cgi?id=119381

Reviewed by Darin Adler.

The is a followup to r153355. I missed to add USE(SOUP) guard in
WebProcess::destroyPrivateBrowsingSession.

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

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

7 years agoREGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being...
simon.fraser@apple.com [Thu, 1 Aug 2013 21:41:22 +0000 (21:41 +0000)]
REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into the wrong location
https://bugs.webkit.org/show_bug.cgi?id=112833

Reviewed by Sam Weinig.

AutodrainedPool.h and SchedulePair.h should just be project headers, not
private headers, so they get copied into <build dir>/usr/local/include/wtf
not <build dir>/usr/local/include

* WTF.xcodeproj/project.pbxproj:

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

7 years agoREGRESSION (Safari 6 - ToT): Incorrectly assumes that RenderStyle data can be shared
commit-queue@webkit.org [Thu, 1 Aug 2013 21:25:33 +0000 (21:25 +0000)]
REGRESSION (Safari 6 - ToT): Incorrectly assumes that RenderStyle data can be shared
https://bugs.webkit.org/show_bug.cgi?id=113058

Source/WebCore:

Before sharing CSS properties with an element in the cache, we need to
check that the new element is suitable for this, just like we check
elements before inserting them into the cache.

Patch by Morten Stenshorne <mstensho@opera.com> on 2013-08-01
Reviewed by Andreas Kling.

Test: fast/css/identical-logical-height-decl.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyMatchedProperties):

LayoutTests:

Patch by Morten Stenshorne <mstensho@opera.com> on 2013-08-01
Reviewed by Andreas Kling.

* fast/css/identical-logical-height-decl-expected.html: Added.
* fast/css/identical-logical-height-decl.html: Added.

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

7 years agoFixed expected test results for run-bindings-tests after r153532, r153537.
mark.lam@apple.com [Thu, 1 Aug 2013 21:13:11 +0000 (21:13 +0000)]
Fixed expected test results for run-bindings-tests after r153532, r153537.
https://bugs.webkit.org/show_bug.cgi?id=119410.

Reviewed by Simon Fraser.

No new tests.

* bindings/scripts/test/JS/JSFloat64Array.cpp:
(WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
(WebCore::JSFloat64ArrayPrototype::getOwnPropertySlot):
(WebCore::JSFloat64Array::getOwnPropertySlot):
(WebCore::JSFloat64Array::getOwnPropertySlotByIndex):
* bindings/scripts/test/JS/JSFloat64Array.h:
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObjectConstructor::getOwnPropertySlot):
(WebCore::JSTestActiveDOMObjectPrototype::getOwnPropertySlot):
(WebCore::JSTestActiveDOMObject::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetterConstructor::getOwnPropertySlot):
(WebCore::JSTestCustomNamedGetterPrototype::getOwnPropertySlot):
(WebCore::JSTestCustomNamedGetter::getOwnPropertySlot):
(WebCore::JSTestCustomNamedGetter::getOwnPropertySlotByIndex):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::getOwnPropertySlot):
(WebCore::JSTestEventConstructor::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestEventConstructor.h:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetConstructor::getOwnPropertySlot):
(WebCore::JSTestEventTargetPrototype::getOwnPropertySlot):
(WebCore::JSTestEventTarget::getOwnPropertySlot):
(WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
* bindings/scripts/test/JS/JSTestEventTarget.h:
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestExceptionConstructor::getOwnPropertySlot):
(WebCore::JSTestException::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestException.h:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::getOwnPropertySlot):
(WebCore::JSTestInterfacePrototype::getOwnPropertySlot):
(WebCore::JSTestInterface::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerConstructor::getOwnPropertySlot):
(WebCore::JSTestMediaQueryListListenerPrototype::getOwnPropertySlot):
(WebCore::JSTestMediaQueryListListener::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorConstructor::getOwnPropertySlot):
(WebCore::JSTestNamedConstructor::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodeConstructor::getOwnPropertySlot):
(WebCore::JSTestNode::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestNode.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::getOwnPropertySlot):
(WebCore::JSTestObjPrototype::getOwnPropertySlot):
(WebCore::JSTestObj::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
(WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::getOwnPropertySlot):
(WebCore::JSTestSerializedScriptValueInterface::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::getOwnPropertySlot):
(WebCore::JSTestTypedefsPrototype::getOwnPropertySlot):
(WebCore::JSTestTypedefs::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestTypedefs.h:

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

7 years agoMark some ref tests that sometimes file becaues of colorspace
simon.fraser@apple.com [Thu, 1 Aug 2013 21:07:16 +0000 (21:07 +0000)]
Mark some ref tests that sometimes file becaues of colorspace
issues as both Pass and ImageOnlyFailure.

* platform/mac/TestExpectations:

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

7 years agoREGRESSION (r153448) video-controls-captions-trackmenu.html is failing
jer.noble@apple.com [Thu, 1 Aug 2013 20:34:20 +0000 (20:34 +0000)]
REGRESSION (r153448) video-controls-captions-trackmenu.html is failing
https://bugs.webkit.org/show_bug.cgi?id=119376

Reviewed by Simon Fraser.

Call showMenu() before attempting to click on the caption menu items.

* media/video-controls-captions-trackmenu.html:
* platform/mac/TestExpectations:

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

7 years agoCopy eglplatform.h to be found by Windows WebGL build.
achristensen@apple.com [Thu, 1 Aug 2013 20:24:23 +0000 (20:24 +0000)]
Copy eglplatform.h to be found by Windows WebGL build.
https://bugs.webkit.org/show_bug.cgi?id=119299

Reviewed by Brent Fulgham.

* WebCore.vcxproj/WebCorePreBuild.cmd: Copy eglplatform.h.

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

7 years agoFixed wrong static_casting in ANGLE from r153064.
achristensen@apple.com [Thu, 1 Aug 2013 20:21:01 +0000 (20:21 +0000)]
Fixed wrong static_casting in ANGLE from r153064.
https://bugs.webkit.org/show_bug.cgi?id=119296

Reviewed by Dean Jackson.

* src/compiler/Intermediate.cpp:
(TIntermediate::promoteConstantUnion):
Undid erroneous static_cast change.
* src/compiler/intermediate.h:
(TIntermConstantUnion::getIConst):
(TIntermConstantUnion::getFConst):
(TIntermConstantUnion::getBConst):
Made getters use size_t instead of int.

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

7 years agoCrash in WebCore:  WebCore::AudioSession::beganAudioInterruption + 62
jer.noble@apple.com [Thu, 1 Aug 2013 20:10:52 +0000 (20:10 +0000)]
Crash in WebCore:  WebCore::AudioSession::beganAudioInterruption + 62
https://bugs.webkit.org/show_bug.cgi?id=119406

Reviewed by Eric Carlson.

Unregister for AudioSession interruption events when being destroyed.

* platform/audio/ios/AudioDestinationIOS.cpp:
(WebCore::AudioDestinationIOS::~AudioDestinationIOS):

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

7 years agoLayout should force a StyleResolver rebuild if there isn't one at all.
akling@apple.com [Thu, 1 Aug 2013 19:19:42 +0000 (19:19 +0000)]
Layout should force a StyleResolver rebuild if there isn't one at all.
<http://webkit.org/b/119378>

Reviewed by Antti Koivisto.

We can't tell if viewport-dependent media queries have been invalidated at layout,
unless we have a StyleResolver to ask about this.
In case there isn't one, take the same path as we would with an invalidated query
instead of relying on ensureStyleResolver() to build it.

* page/FrameView.cpp:
(WebCore::FrameView::layout):

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

7 years agoCrashing Test: fast/forms/color/input-color-onchange-event.html
commit-queue@webkit.org [Thu, 1 Aug 2013 18:58:31 +0000 (18:58 +0000)]
Crashing Test: fast/forms/color/input-color-onchange-event.html
<rdar://problem/14621667> and https://bugs.webkit.org/show_bug.cgi?id=119403

Patch by Ruth Fong <ruth_fong@apple.com> on 2013-08-01
Reviewed by Tim Horton.

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

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

7 years agoAdding myself to list of reviewers since I am one (see https://www.webkit.org/blog...
graouts@apple.com [Thu, 1 Aug 2013 18:43:13 +0000 (18:43 +0000)]
Adding myself to list of reviewers since I am one (see https://webkit.org/blog/2691/antoine-quint-is-now-a-webkit-reviewer/).

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

7 years ago[BlackBerry] Crash at absoluteClippedOverflowRect() in PluginView::calculateClipRect()
zhajiang@rim.com [Thu, 1 Aug 2013 18:12:57 +0000 (18:12 +0000)]
[BlackBerry] Crash at absoluteClippedOverflowRect() in PluginView::calculateClipRect()
https://bugs.webkit.org/show_bug.cgi?id=119401

Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-08-01.
Reviewed by George Staikos.

JIRA 462881
The renderer of the PluginView's element has been detached due to transition
to a new load. We should return an empty contentRect if there even isn't
a renderer. This is a speculative fix based on the stack trace provided.

* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::calculateClipRect):

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

7 years agoUnavailable plug-in indicator arrow should be inside the rounded rect, not in its...
timothy_horton@apple.com [Thu, 1 Aug 2013 17:59:44 +0000 (17:59 +0000)]
Unavailable plug-in indicator arrow should be inside the rounded rect, not in its own circle
https://bugs.webkit.org/show_bug.cgi?id=119400
<rdar://problem/14616012>

Reviewed by Anders Carlsson.

* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
Shift the arrow in by 9px, and make the text's rounded rect include it,
instead of having the arrow in a separate circle.

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

7 years agoDuplicate property names can cause test to fail
bjonesbe@adobe.com [Thu, 1 Aug 2013 17:39:43 +0000 (17:39 +0000)]
Duplicate property names can cause test to fail
https://bugs.webkit.org/show_bug.cgi?id=119399

Reviewed by Dirk Pranke.

This problem was noticed when porting the patch for
http://wkb.ug/119357 to Blink: a test would fail because the converted
and test property lists weren't the same length, but they contained
all of the same property names. It looks like this is actually caused
by a bug in converting the HTML, which is being currently rewritten.
In the meantime, as long as this compares the number of unique
properties, it makes the test more robust.

* Scripts/webkitpy/w3c/test_converter_unittest.py:
(verify_prefixed_properties):

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

7 years agoMerge FrameWinCE into FrameWin
paroga@webkit.org [Thu, 1 Aug 2013 17:07:03 +0000 (17:07 +0000)]
Merge FrameWinCE into FrameWin
https://bugs.webkit.org/show_bug.cgi?id=117988

Reviewed by Brent Fulgham.

Reuse the code from FrameWin.cpp instead of duplicating it.

* PlatformWinCE.cmake:
* page/win/FrameGdiWin.cpp: Added.
(WebCore::imageFromRect):
* page/wince/FrameWinCE.cpp: Removed.

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

7 years agoMade OESTextureHalfFloat work on Windows.
achristensen@apple.com [Thu, 1 Aug 2013 16:53:48 +0000 (16:53 +0000)]
Made OESTextureHalfFloat work on Windows.
https://bugs.webkit.org/show_bug.cgi?id=119298

Reviewed by Christophe Dumez.

* DerivedSources.cpp: Added JSOESTextureHalfFloat.cpp inside of #if ENABLE(WEBGL).
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Added JSOESTextureHalfFloat.cpp and JSOESTextureHalfFloat.h.
* html/canvas/OESTextureHalfFloat.idl: Added newline to end of file.
* html/canvas/WebGLObject.cpp: Removed unused #includes.

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

7 years agoUnreviewed. Adding my expertise.
bjonesbe@adobe.com [Thu, 1 Aug 2013 16:47:15 +0000 (16:47 +0000)]
Unreviewed. Adding my expertise.

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

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

7 years agoRearrange the code of FrameWin
paroga@webkit.org [Thu, 1 Aug 2013 16:23:14 +0000 (16:23 +0000)]
Rearrange the code of FrameWin
https://bugs.webkit.org/show_bug.cgi?id=117984

Reviewed by Brent Fulgham.

Source/WebCore:

Move code from the CG implementation into the general file so we can
share the code with Windows CE port in a next step. In a first step
it only shares more code between the CG and Cairo implementations.
Also use OwnPtr instead of plain pointers to make ownership more clear.

* page/win/FrameCGWin.cpp:
(WebCore::imageFromRect):
* page/win/FrameCairoWin.cpp:
(WebCore::imageFromRect):
* page/win/FrameWin.cpp:
(WebCore::imageFromSelection):
(WebCore::Frame::dragImageForSelection):
(WebCore::Frame::nodeImage):
* page/win/FrameWin.h:

Source/WebKit/win:

* WebView.cpp:
(WebView::generateSelectionImage):

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

7 years agohttp/tests/multipart/invalid-image-data-standalone.html needs to skipped, not
simon.fraser@apple.com [Thu, 1 Aug 2013 15:35:47 +0000 (15:35 +0000)]
http/tests/multipart/invalid-image-data-standalone.html needs to skipped, not
just marked as failing, otherwise it gets listed as a test that times out.

* platform/mac/TestExpectations:

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

7 years agoUnreviewed. Add myself as a committer. Yoo-hoo! \o/
changseok.oh@collabora.com [Thu, 1 Aug 2013 15:03:05 +0000 (15:03 +0000)]
Unreviewed. Add myself as a committer. Yoo-hoo! \o/

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

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

7 years agoREGRESSION(FTL): Fix sh4 implementation of ctiVMThrowTrampolineSlowpath.
commit-queue@webkit.org [Thu, 1 Aug 2013 13:28:56 +0000 (13:28 +0000)]
REGRESSION(FTL): Fix sh4 implementation of ctiVMThrowTrampolineSlowpath.
https://bugs.webkit.org/show_bug.cgi?id=119391

Patch by Julien Brianceau <jbrianceau@nds.com> on 2013-08-01
Reviewed by Csaba Osztrogonác.

* jit/JITStubsSH4.h: Fix ctiVMThrowTrampolineSlowpath implementation:
    - Call frame is in r14 register.
    - Do not restore registers from JIT stack frame here.

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

7 years agomask-repeat: round bug
commit-queue@webkit.org [Thu, 1 Aug 2013 13:03:45 +0000 (13:03 +0000)]
mask-repeat: round bug

Source/WebCore:

Added the round functionality to -webkit-mask-repeat and background-repeat. The tile size of the
image is scaled so that the image can fit a whole number of times in the background.
https://bugs.webkit.org/show_bug.cgi?id=119080

Patch by Andrei Parvu <parvu@adobe.com> on 2013-08-01
Reviewed by Dirk Schulze.

Tests: css3/masking/mask-repeat-round-auto1.html
       css3/masking/mask-repeat-round-auto2.html
       css3/masking/mask-repeat-round-border.html
       css3/masking/mask-repeat-round-content.html
       css3/masking/mask-repeat-round-padding.html
       css3/background/background-repeat-round-auto1.html
       css3/background/background-repeat-round-auto2.html
       css3/background/background-repeat-round-border.html
       css3/background/background-repeat-round-content.html
       css3/background/background-repeat-round-padding.html

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

LayoutTests:

Added tests for the -webkit-mask-repeat: round property.
https://bugs.webkit.org/show_bug.cgi?id=119080

Patch by Andrei Parvu <parvu@adobe.com> on 2013-08-01
Reviewed by Dirk Schulze.

* css3/masking/mask-repeat-round-auto1-expected.html: Added.
* css3/masking/mask-repeat-round-auto1.html: Added.
* css3/masking/mask-repeat-round-auto2-expected.html: Added.
* css3/masking/mask-repeat-round-auto2.html: Added.
* css3/masking/mask-repeat-round-border-expected.html: Added.
* css3/masking/mask-repeat-round-border.html: Added.
* css3/masking/mask-repeat-round-content-expected.html: Added.
* css3/masking/mask-repeat-round-content.html: Added.
* css3/masking/mask-repeat-round-padding-expected.html: Added.
* css3/masking/mask-repeat-round-padding.html: Added.
* css3/masking/resources/circle.png: Added.
* css3/background/background-repeat-round-auto1-expected.html: Added.
* css3/background/background-repeat-round-auto1.html: Added.
* css3/background/background-repeat-round-auto2-expected.html: Added.
* css3/background/background-repeat-round-auto2.html: Added.
* css3/background/background-repeat-round-border-expected.html: Added.
* css3/background/background-repeat-round-border.html: Added.
* css3/background/background-repeat-round-content-expected.html: Added.
* css3/background/background-repeat-round-content.html: Added.
* css3/background/background-repeat-round-padding-expected.html: Added.
* css3/background/background-repeat-round-padding.html: Added.
* css3/background/resources/circle.png: Added.

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

7 years agoReduce CSSProperty's StylePropertyMetadata memory footprint by half when used inside...
alexis@webkit.org [Thu, 1 Aug 2013 12:26:44 +0000 (12:26 +0000)]
Reduce CSSProperty's StylePropertyMetadata memory footprint by half when used inside a ImmutableStylePropertySet.
https://bugs.webkit.org/show_bug.cgi?id=117715

Reviewed by Andreas Kling.

Today CSSProperty holds its metadata in the following way :

--------------------------------------------------------------------------------------------
| m_propertyID : 14 We use 14 bits because CSSPropertyIDs start at 1001.                    |
| m_shorthandID : 14 id of the shorthand this property was set, 0 if not part of a shorthand|
| m_important : 1                                                                           |
| m_implicit : 1                                                                            |
| m_inherited : 1                                                                           |
--------------------------------------------------------------------------------------------

The proposal to decrease the memory footprint on CSSProperty's metadata
only stand when stored inside ImmutableStylePropertySet which uses a custom
way to allocate and lay out the StylePropertyMetadata and the CSSValues in
memory because the idea behind is that the content will not change.
The MutableStylePropertySet uses a regular vector to retrieve, remove
and modify the CSSProperties. ImmutableStylePropertySet is used by default
when parsing up until someone start to access the CSSOM like
div.style which will convert the immutable to a mutable set. It is also good
to note that a CSSProperty is created for every single statement inside a block
in a stylesheet so we do have quite a bunch around. Another consideration is
that the only client to the m_shorthandID is the inspector which uses it
to group the longhands into a shorthand drop down list.

The new proposal is the following one :
- Reduce m_propertyID to 10 bits by not starting the CSSPropertyIDs from
1001 but rather 0 (or 3 as two are hardcoded CSSPropertyInvalid and CSSPropertyVariable).
- Use the fact that we statically know which longhand belong to which shorthand. So
we create a static mapping between longhands and shorthands.

Here is the new layout :
------------------------------------------------------------------------------
| m_propertyID : 10 (up to 1024 properties), we have less than 400 today      |
| m_isSetFromShorthand : 1 and then use the mapping in StylePropertyShorthand |
| m_indexInShorthandsVector : 2                                               |
| m_important : 1 (unchanged)                                                 |
| m_implicit : 1  (unchanged)                                                 |
| m_inherited : 1 (unchanged)                                                 |
------------------------------------------------------------------------------

it was set from using the new code in StylePropertyShorthand.
- m_indexInShorthandsVector : 2 bits, unfortunately there are few longhands which belong to multiple
shorthands so we need to store which was this longhand was part at parsing time. Notice
that it does not store the CSSPropertyID of the matching shorthand but rather its position
in the vector of matching shorthands. CSSProperty::m_shorthandID() method make it transparent
for call sites and return the actual CSSPropertyID of the shorthand. So far 2 bits seems
enough as there is only few longhands with ambiguity and they belong to 3 shorthands.

Profiling the benchmark with Intel Vtune to find out the performance regression
showed that copying uint16_t, so StylePropertyMetadata, is not
a fast operation in term of assembly code and has a big penalty on Windows
MSVC over unsigned for example. The latter produces a much faster code
when using unsigned over uint16_t (45% difference in the benchmark).

The patch avoid the copies of StylePropertyMetadata when applicable (by using const ref).

The second part of the fix is avoiding the conversion from an int (enum) to
an uint16_t in a tight loop such as StylePropertySet::findPropertyIndex
(which is the hotspot of the benchmark).

On my Windows 7 64 bits Core i5 machine CSSPropertySetterGetter results are :
- avg : 2714 runs/s with the patch
- avg : 2696 runs/s without the patch

According to Andreas Kling this patch save up ~1.8Mb on membuster.

No new tests : refactor, old ones should cover.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::getBackgroundShorthandValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::addPropertyWithPrefixingVariant):
(WebCore::CSSParser::addProperty):
* css/CSSProperty.cpp:
(WebCore::StylePropertyMetadata::shorthandID):
(WebCore::borderDirections):
* css/CSSProperty.h:
(WebCore::StylePropertyMetadata::StylePropertyMetadata): Use uint16_t type for bitfields so sizeof() returns 2 bytes.
(WebCore::CSSProperty::CSSProperty):
(WebCore::CSSProperty::isSetFromShorthand):
(WebCore::CSSProperty::shorthandID):
* css/StylePropertySet.cpp:
(WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
(WebCore::getIndexInShorthandVectorForPrefixingVariant):
(WebCore::MutableStylePropertySet::appendPrefixingVariantProperty):
(WebCore::MutableStylePropertySet::setPrefixingVariantProperty):
* css/StylePropertySet.h:
(WebCore::StylePropertySet::PropertyReference::shorthandID):
* css/StylePropertyShorthand.cpp:
(WebCore::backgroundShorthand):
(WebCore::backgroundPositionShorthand):
(WebCore::backgroundRepeatShorthand):
(WebCore::borderShorthand):
(WebCore::borderAbridgedShorthand):
(WebCore::borderBottomShorthand):
(WebCore::borderColorShorthand):
(WebCore::borderImageShorthand):
(WebCore::borderLeftShorthand):
(WebCore::borderRadiusShorthand):
(WebCore::webkitBorderRadiusShorthand):
(WebCore::borderRightShorthand):
(WebCore::borderSpacingShorthand):
(WebCore::borderStyleShorthand):
(WebCore::borderTopShorthand):
(WebCore::borderWidthShorthand):
(WebCore::listStyleShorthand):
(WebCore::fontShorthand):
(WebCore::marginShorthand):
(WebCore::markerShorthand):
(WebCore::outlineShorthand):
(WebCore::overflowShorthand):
(WebCore::paddingShorthand):
(WebCore::transitionShorthand):
(WebCore::webkitAnimationShorthand):
(WebCore::webkitAnimationShorthandForParsing):
(WebCore::webkitBorderAfterShorthand):
(WebCore::webkitBorderBeforeShorthand):
(WebCore::webkitBorderEndShorthand):
(WebCore::webkitBorderStartShorthand):
(WebCore::webkitColumnsShorthand):
(WebCore::webkitColumnRuleShorthand):
(WebCore::webkitFlexFlowShorthand):
(WebCore::webkitFlexShorthand):
(WebCore::webkitMarginCollapseShorthand):
(WebCore::webkitGridColumnShorthand):
(WebCore::webkitGridRowShorthand):
(WebCore::webkitMarqueeShorthand):
(WebCore::webkitMaskShorthand):
(WebCore::webkitMaskPositionShorthand):
(WebCore::webkitMaskRepeatShorthand):
(WebCore::webkitTextEmphasisShorthand):
(WebCore::webkitTextStrokeShorthand):
(WebCore::webkitTransitionShorthand):
(WebCore::webkitTransformOriginShorthand):
(WebCore::widthShorthand):
(WebCore::heightShorthand):
(WebCore::matchingShorthandsForLonghand):
(WebCore::indexOfShorthandForLonghand):
* css/StylePropertyShorthand.h:
(WebCore::StylePropertyShorthand::StylePropertyShorthand):
(WebCore::StylePropertyShorthand::id):
* css/makeprop.pl:

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

7 years ago[Qt] Enable QML handling of crashed/unresponsive QtWebProcess
commit-queue@webkit.org [Thu, 1 Aug 2013 11:06:42 +0000 (11:06 +0000)]
[Qt] Enable QML handling of crashed/unresponsive QtWebProcess
https://bugs.webkit.org/show_bug.cgi?id=108474

Forward the processDidCrash, didRelaunchProcess, processDidBecomeUnresponsive
and processDidBecomeResponsive signals to QML's WebView.experimental.

Patch by Milian Wolff <milian.wolff@kdab.com> on 2013-08-01
Reviewed by Jocelyn Turcotte.

* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::processDidCrash):
(QQuickWebViewPrivate::didRelaunchProcess):
(QQuickWebViewPrivate::processDidBecomeUnresponsive):
(QQuickWebViewPrivate::processDidBecomeResponsive):
* UIProcess/API/qt/qquickwebview_p.h:
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):

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

7 years ago[Qt] Unreviewed expected pixel test result update after r153522.
zarvai@inf.u-szeged.hu [Thu, 1 Aug 2013 09:42:53 +0000 (09:42 +0000)]
[Qt] Unreviewed expected pixel test result update after r153522.

* platform/qt-5.0-wk2/compositing/overflow/overflow-compositing-descendant-expected.png:
* platform/qt-5.0-wk2/compositing/overflow/scroll-ancestor-update-expected.png:
* platform/qt-5.0-wk2/compositing/visibility/visibility-simple-video-layer-expected.png:
* platform/qt-5.0-wk2/css2.1/20110323/replaced-min-max-001-expected.png:
* platform/qt-5.0-wk2/css2.1/t170602-bdr-conflct-w-14-d-expected.png:
* platform/qt-5.0-wk2/css2.1/t170602-bdr-conflct-w-24-d-expected.png:
* platform/qt-5.0-wk2/css2.1/t170602-bdr-conflct-w-34-d-expected.png:
* platform/qt-5.0-wk2/css2.1/t170602-bdr-conflct-w-44-d-expected.png:
* platform/qt-5.0-wk2/css2.1/t170602-bdr-conflct-w-54-d-expected.png:
* platform/qt-5.0-wk2/css2.1/t170602-bdr-conflct-w-64-d-expected.png:
* platform/qt-5.0-wk2/css2.1/t170602-bdr-conflct-w-74-d-expected.png:
* platform/qt-5.0-wk2/css2.1/t170602-bdr-conflct-w-84-d-expected.png:
* platform/qt-5.0-wk2/css3/compositing/effect-background-blend-mode-expected.png: Added.
* platform/qt-5.0-wk2/css3/compositing/effect-background-blend-mode-stacking-expected.png:
* platform/qt-5.0-wk2/fast/backgrounds/size/backgroundSize09-expected.png: Added.
* platform/qt-5.0-wk2/fast/backgrounds/size/backgroundSize10-expected.png: Added.
* platform/qt-5.0-wk2/fast/backgrounds/size/backgroundSize11-expected.png: Added.
* platform/qt-5.0-wk2/fast/backgrounds/size/contain-and-cover-expected.png: Added.
* platform/qt-5.0-wk2/fast/backgrounds/size/contain-and-cover-zoomed-expected.png:
* platform/qt-5.0-wk2/fast/borders/border-image-side-reduction-expected.png:
* platform/qt-5.0-wk2/fast/fast-mobile-scrolling/no-fixed-position-elements-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/block-layout-inline-children-replaced-expected.png:
* platform/qt-5.0-wk2/fast/repaint/fixed-position-transparency-with-overflow-expected.png:
* platform/qt-5.0-wk2/fast/replaced/width100percent-image-expected.png:
* platform/qt-5.0-wk2/scrollbars/overflow-scrollbar-combinations-expected.png:
* platform/qt-5.0-wk2/svg/W3C-SVG-1.1/animate-elem-30-t-expected.png:
* platform/qt-5.0-wk2/svg/W3C-SVG-1.1/animate-elem-40-t-expected.png:
* platform/qt-5.0-wk2/svg/W3C-SVG-1.1/coords-viewattr-02-b-expected.png:
* platform/qt-5.0-wk2/svg/custom/createImageElement-expected.png:
* platform/qt-5.0-wk2/svg/custom/createImageElement2-expected.png:
* platform/qt-5.0-wk2/svg/custom/image-parent-translation-expected.png:
* platform/qt-5.0-wk2/svg/custom/js-update-image-and-display-expected.png:
* platform/qt-5.0-wk2/svg/custom/js-update-image-and-display2-expected.png:
* platform/qt-5.0-wk2/svg/custom/js-update-image-and-display3-expected.png:
* platform/qt-5.0-wk2/svg/custom/js-update-image-expected.png:
* platform/qt-5.0-wk2/svg/custom/pointer-events-image-css-transform-expected.png:
* platform/qt-5.0-wk2/svg/custom/pointer-events-image-expected.png:
* platform/qt-5.0-wk2/svg/custom/text-image-opacity-expected.png:
* platform/qt-5.0-wk2/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png:
* platform/qt-5.0-wk2/svg/dynamic-updates/SVGImageElement-dom-height-attr-expected.png:
* platform/qt-5.0-wk2/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png:
* platform/qt-5.0-wk2/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png:
* platform/qt-5.0-wk2/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png:
* platform/qt-5.0-wk2/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png:
* platform/qt-5.0-wk2/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png:
* platform/qt-5.0-wk2/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png:
* platform/qt-5.0-wk2/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png:
* platform/qt-5.0-wk2/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png:
* platform/qt-5.0-wk2/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png:
* platform/qt-5.0-wk2/svg/hixie/perf/004-expected.png:
* platform/qt-5.0-wk2/svg/transforms/animated-path-inside-transformed-html-expected.png:
* platform/qt-5.0-wk2/svg/wicd/test-rightsizing-b-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug101674-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug11026-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug1188-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug1296-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug1430-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug2981-2-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug4284-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug4427-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug56563-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug625-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/bugs/bug97383-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/core/bloomberg-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/core/misc-expected.png:
* platform/qt-5.0-wk2/tables/mozilla/other/cell_widths-expected.png:
* platform/qt-5.0-wk2/tables/mozilla_expected_failures/bugs/bug6933-expected.png:

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