Refactor Editor::markAndReplaceFor before fixing autocorrection bugs
https://bugs.webkit.org/show_bug.cgi?id=114344

Reviewed by Enrica Casucci.

This patch refactors Editor::markAndReplaceFor so that we can start fixing bugs in a sane state.
Extracted isAutomaticTextReplacementType and correctSpellcheckingPreservingTextCheckingParagraph,
and made convenience local variables const.

In particular, shouldMarkSpelling used to be assigned of false when shouldShowCorrectionPanel was true
in a middle of a function but this was removed in favor of explicitly checking this condition later
since shouldMarkSpelling was only referenced once after the assignment.

* editing/Editor.cpp:
(WebCore::isAutomaticTextReplacementType): Extracted.

(WebCore::correctSpellcheckingPreservingTextCheckingParagraph): Extracted.  Used highestAncestor
and rangeFromLocationAndLength to match the rest of the up-to-date editing code.

(WebCore::Editor::markAndReplaceFor): See above.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148124 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fixed build failure in Plugin.h: FloatPoint was not in namespace WebCore

make[1]: *** Waiting for unfinished jobs....
In file included from Source/WebKit2/PluginProcess/PluginCreationParameters.h:31:0,
                 from Source/WebKit2/PluginProcess/PluginCreationParameters.cpp:27:
./Source/WebKit2/WebProcess/Plugins/Plugin.h:268:58: error: 'FloatPoint' in namespace 'WebCore' does not name a type
./Source/WebKit2/WebProcess/Plugins/Plugin.h:268:77: error: ISO C++ forbids declaration of 'parameter' with no type [-fpermissive]
cc1plus: warning: unrecognized command line option "-Wno-c++11-extensions" [enabled by default]
make[1]: *** [Source/WebKit2/PluginProcess/libwebkit2gtk_3_0_la-PluginCreationParameters.lo] Error 1

It now passes that make target.

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

Patch by Tobias Mueller <tobiasmue@gnome.org> on 2013-04-10
Reviewed by Darin Adler.

* WebProcess/Plugins/Plugin.h:
(WebCore): Added FloatPoint to the WebCore namespace

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148125 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Fix regression to test-webkitpy.
https://bugs.webkit.org/show_bug.cgi?id=114368

Reviewed by Ryosuke Niwa.

* Scripts/webkitpy/layout_tests/port/factory.py:
(PortFactory._default_port): Return qt-linux instead of chromium-linux as default port for linux/freebsd.
(PortFactory.get): Remove obsolete chromium port related code.
* Scripts/webkitpy/layout_tests/port/mac.py:
(MacPort.default_child_processes): Prevent type error if can't determine total memory.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148126 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WinCairo build fails to link.
https://bugs.webkit.org/show_bug.cgi?id=114358

Patch by peavo@outlook.com <peavo@outlook.com> on 2013-04-10
Reviewed by Brent Fulgham.

Export the symbol WTF::MD5::checksum().

* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
* JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Disallow programmatic movement of the browser window while user gestures are in progress.
<http://webkit.org/b/114271>
<rdar://problem/13226530>

Reviewed by Oliver Hunt.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::moveBy):
(WebCore::DOMWindow::moveTo):
(WebCore::DOMWindow::resizeBy):
(WebCore::DOMWindow::resizeTo):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148128 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Rename BlackBerry specific Texture class
https://bugs.webkit.org/show_bug.cgi?id=95781

Reviewed by Rob Buis.

Texture was a bit too generic and prone to name conflicts. Renamed it
to LayerTexture.

Source/WebCore:

No change in behavior, no new tests.

PR 322882

* PlatformBlackBerry.cmake:
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::drawSurface):
(WebCore::LayerCompositingThread::contentsTexture):
* platform/graphics/blackberry/LayerCompositingThread.h:
(LayerCompositingThread):
* platform/graphics/blackberry/LayerCompositingThreadClient.h:
(WebCore):
(WebCore::LayerCompositingThreadClient::contentsTexture):
* platform/graphics/blackberry/LayerFilterRenderer.cpp:
(WebCore::LayerFilterRenderer::applyActions):
* platform/graphics/blackberry/LayerFilterRenderer.h:
(LayerFilterRenderer):
* platform/graphics/blackberry/LayerRendererSurface.h:
(WebCore::LayerRendererSurface::texture):
(LayerRendererSurface):
* platform/graphics/blackberry/LayerTexture.cpp: Renamed from Source/WebCore/platform/graphics/blackberry/Texture.cpp.
(WebCore):
(WebCore::LayerTexture::LayerTexture):
(WebCore::LayerTexture::~LayerTexture):
(WebCore::LayerTexture::updateContents):
(WebCore::LayerTexture::setContentsToColor):
(WebCore::LayerTexture::protect):
* platform/graphics/blackberry/LayerTexture.h: Renamed from Source/WebCore/platform/graphics/blackberry/Texture.h.
(WebCore):
(LayerTexture):
(WebCore::LayerTexture::create):
(WebCore::LayerTexture::textureId):
(WebCore::LayerTexture::isDirty):
(WebCore::LayerTexture::hasTexture):
(WebCore::LayerTexture::isColor):
(WebCore::LayerTexture::isOpaque):
(WebCore::LayerTexture::isProtected):
(WebCore::LayerTexture::protect):
(WebCore::LayerTexture::unprotect):
(WebCore::LayerTexture::size):
(WebCore::LayerTexture::width):
(WebCore::LayerTexture::height):
(WebCore::LayerTexture::bytesPerPixel):
(WebCore::LayerTexture::sizeInBytes):
(WebCore::LayerTexture::setTextureId):
(WebCore::LayerTexture::setSize):
* platform/graphics/blackberry/LayerTile.cpp:
(WebCore::LayerTile::setContents):
(WebCore::LayerTile::updateContents):
(WebCore::LayerTile::setTexture):
* platform/graphics/blackberry/LayerTile.h:
(WebCore::LayerTile::texture):
(LayerTile):
* platform/graphics/blackberry/LayerTiler.cpp:
(WebCore::LayerTiler::drawTile):
(WebCore::LayerTiler::contentsTexture):
* platform/graphics/blackberry/LayerTiler.h:
(LayerTiler):
(WebCore::LayerTiler::TextureJob::TextureJob):
(WebCore::LayerTiler::TextureJob::setContents):
(WebCore::LayerTiler::TextureJob::updateContents):
(TextureJob):
* platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
(WebCore::TextureProtector::TextureProtector):
(TextureProtector):
(WebCore::TextureCacheCompositingThread::allocateTextureId):
(WebCore::freeTextureId):
(WebCore::TextureCacheCompositingThread::textureResized):
(WebCore::TextureCacheCompositingThread::textureSizeInBytesChanged):
(WebCore::TextureCacheCompositingThread::textureDestroyed):
(WebCore::TextureCacheCompositingThread::install):
(WebCore::TextureCacheCompositingThread::resizeTexture):
(WebCore::TextureCacheCompositingThread::evict):
(WebCore::TextureCacheCompositingThread::textureAccessed):
(WebCore::TextureCacheCompositingThread::prune):
(WebCore::TextureCacheCompositingThread::textureForTiledContents):
(WebCore::TextureCacheCompositingThread::textureForColor):
(WebCore::TextureCacheCompositingThread::updateContents):
* platform/graphics/blackberry/TextureCacheCompositingThread.h:
(WebCore::TextureCacheCompositingThread::createTexture):
(TextureCacheCompositingThread):
(WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
(ZombieTexture):

Source/WebKit/blackberry:

PR 322882

* Api/WebOverlay.cpp:
(BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::uploadTexturesIfNeeded):
* Api/WebOverlay_p.h:
(WebOverlayLayerCompositingThreadClient):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG: Negative size for new Array() interpreted as large unsigned int
https://bugs.webkit.org/show_bug.cgi?id=114366

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

Added new check in operationNewArrayWithSize() for a negative
size.  If size is negative throw a "RangeError: Array size is not a
small enough positive integer" exception.

* dfg/DFGOperations.cpp:

LayoutTests:

New test to make sure DFG generated code for new Array() with a
computed negative size throws an exception.

* fast/js/dfg-negative-array-size-expected.txt: Added.
* fast/js/dfg-negative-array-size.html: Added.
* fast/js/script-tests/dfg-negative-array-size.js: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148130 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Clicking on the volume slider of HTML5 elements is pausing sometimes
https://bugs.webkit.org/show_bug.cgi?id=112548

Patch by Xabier Rodriguez Calvar <calvaris@igalia.com> on 2013-04-10
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/click-volume-bar-not-pausing.html

* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
Calling the setDefaultHandled() method on the event prevents it
from being incorrectly propagated from the volume button up to the
MediaDocument.

LayoutTests:

Added test.

* media/click-volume-bar-not-pausing-expected.txt: Added.
* media/click-volume-bar-not-pausing.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148131 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Change all instances of test-results.appspot.com to webkit-test-results.appspot.com
https://bugs.webkit.org/show_bug.cgi?id=114370

Reviewed by Ryosuke Niwa.

Finish the transition of WebKit over to it's own instance of the flakiness dashboard.
Unfortunately, there's no way to test this until this is committed and there is
a master restart.

* BuildSlaveSupport/build.webkit.org-config/master.cfg:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js:
* TestResultServer/generate_builders_json.py:
* TestResultServer/static-dashboards/dashboard_base.js:
* TestResultServer/static-dashboards/loader.js:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148132 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed buildfix after r148123.

* inspector/InspectorInstrumentation.h:
(WebCore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove code duplicates from MacroAssemblerARM
https://bugs.webkit.org/show_bug.cgi?id=104457

Reviewed by Oliver Hunt.

Reuse some existing methods to avoid duplicated code.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::store8):
(JSC::MacroAssemblerARM::store32):
(JSC::MacroAssemblerARM::swap):
(JSC::MacroAssemblerARM::add32):
(JSC::MacroAssemblerARM::sub32):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
AX: Make sure all AX methods called from outside call prepareAccessibility
https://bugs.webkit.org/show_bug.cgi?id=113818

Reviewed by Darin Adler.

Make sure any calls that can be made from outside WebCore are protected with the
prepareAccessibility method.

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityMathRootIndexObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathRadicandObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathNumeratorObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathDenominatorObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathBaseObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathSubscriptObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathSuperscriptObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathUnderObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathOverObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathFencedOpenString]):
(-[WebAccessibilityObjectWrapper accessibilityMathFencedCloseString]):
(-[WebAccessibilityObjectWrapper accessibilityIsMathTopObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathType]):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148135 268f45cc-cd09-0410-ab3c-d52691b4dbfc
when ARIA button contains a link, label text is ignored (affects main buttons on m.facebook.com)
https://bugs.webkit.org/show_bug.cgi?id=113906

Reviewed by Tim Horton.

Source/WebCore: 

If an element does not expose any children, then it's safe to include all of its sub children when determining
the visible text.
The bug is that all elements were ignoring focusable elements (like <a>) when determining visible children text

Test: accessibility/link-inside-button-accessible-text.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::shouldUseAccessiblityObjectInnerText):
* accessibility/AccessibilityNodeObject.h:
(AccessibilityNodeObject):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isDescendantOfBarrenParent):
(AccessibilityObject):

LayoutTests: 

The static-text-role-uses-text-under-element.html relies on similar logic to this bug.

I realized that it was verifying the wrong thing and if we had looked closely at this layout test
we would have caught this regression earlier most likely.

* accessibility/link-inside-button-accessible-text-expected.txt: Added.
* accessibility/link-inside-button-accessible-text.html: Added.
* platform/mac/accessibility/static-text-role-uses-text-under-element-expected.txt:
* platform/mac/accessibility/static-text-role-uses-text-under-element.html:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148136 268f45cc-cd09-0410-ab3c-d52691b4dbfc
FindBanner matches are offset when the WKView has a header or footer
https://bugs.webkit.org/show_bug.cgi?id=114314
-and corresponding-
<rdar://problem/13522434>

Reviewed by Simon Fraser.

Source/WebCore: 

There were already a few places in the code where we needed to adjust the 
scrollOffset() to pretend that (0,0) is that the top of the Document rather than 
the top of the header. To fix the FindBanner issues, we need to know that version 
of the offset in a few more places, so I added a function on ScrollView to fetch 
it called scrollOffsetRelativeToDocument().

New function subtracts out the headerHeight() to treat the top of 
the document as (0,0).
* WebCore.exp.in:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollOffsetRelativeToDocument):

Use scrollOffsetRelativeToDocument() where we were previously making this 
calculation. Also re-name an inaccurately named variable where we are actually 
converting FROM a document offset to a ScrollableArea offset.
(WebCore::ScrollView::windowToContents):
* platform/ScrollView.h:
(ScrollView):

getRectToExpose needs to know about the actual visibleContentRect and the 
visibleContentRect that is relative to the Document. So this 
patch adds a new parameter to getRectToExpose for that purpose.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::getRectToExpose):
* rendering/RenderLayer.h:

Source/WebKit2: 

When calculating the matching rects, also adjust to the scroll offset that is  
relative to the Document.
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::rectsForTextMatches):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148137 268f45cc-cd09-0410-ab3c-d52691b4dbfc
One more unreviewed buildfix after r148123.

* platform/graphics/filters/CustomFilterMeshGenerator.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Exclusions] Zoom causes shape-inside to fail when shape-padding is specified
https://bugs.webkit.org/show_bug.cgi?id=113730

Reviewed by Dirk Schulze.

Source/WebCore:

Snap computed margin and polygon boundaries to the LayoutUnit grid to ensure
that they fall within the shape's LayoutUnit bounding box.

Test: fast/exclusions/shape-inside/shape-inside-polygon-zoom.html

* rendering/ExclusionPolygon.cpp:
(WebCore::snapVerticesToLayoutUnitGrid): Convert the FloatPoint coordinates to LayoutUnits and then back to floats.
(WebCore::computeShapePaddingBounds): Now calls snapVerticesToLayoutUnitGrid() before creating a FloatPolygon.
(WebCore::computeShapeMarginBounds): Ditto.

LayoutTests:

Verify that content lays out within a padded shape-inside polygon when the
document has been zoomed.

* fast/exclusions/shape-inside/shape-inside-polygon-zoom-expected.html: Added.
* fast/exclusions/shape-inside/shape-inside-polygon-zoom.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148139 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] in-band tracks sometimes not recognized
https://bugs.webkit.org/show_bug.cgi?id=114380

Reviewed by Jer Noble.

No new tests, covered by existing in-band tests.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Don't call selectMediaOption,
    availableMediaCharacteristicsWithMediaSelectionOptions is unlikely to be loaded at this time.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Disable automatic text track
    selection.
(WebCore::assetMetadataKeyNames): Watch for the status of availableMediaCharacteristicsWithMediaSelectionOptions
    to change.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148140 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[wk2] REGRESSION: Find highlight does not update when the view is resized
https://bugs.webkit.org/show_bug.cgi?id=114382
<rdar://problem/13599797>

Reviewed by Simon Fraser.

Invalidate the page overlays from TiledCoreAnimationDrawingArea::updateGeometry.
This will have no effect if the page overlay hasn't previously asked to be painted
(as drawsContent will remain false on the layer).

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea): Add invalidateAllPageOverlays.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::invalidateAllPageOverlays): Factor this out of didChangeScrollOffsetForAnyFrame.
(WebKit::TiledCoreAnimationDrawingArea::didChangeScrollOffsetForAnyFrame): Call invalidateAllPageOverlays.
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry): Call invalidateAllPageOverlays.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JSObject::getOwnNonIndexPropertyNames calculates numCacheableSlots incorrectly
https://bugs.webkit.org/show_bug.cgi?id=114235

Reviewed by Filip Pizlo.

If the object doesn't have any properties but the prototype does, we'll assume those prototype properties are 
accessible in the base object's backing store, which is bad.

Source/JavaScriptCore: 

* runtime/JSObject.cpp:
(JSC::JSObject::getPropertyNames):
(JSC::JSObject::getOwnNonIndexPropertyNames):
* runtime/PropertyNameArray.h:
(JSC::PropertyNameArray::PropertyNameArray):
(JSC::PropertyNameArray::setNumCacheableSlotsForObject):
(JSC::PropertyNameArray::setBaseObject):
(PropertyNameArray):

LayoutTests: 

* fast/js/get-by-pname-only-prototype-properties-expected.txt: Added.
* fast/js/get-by-pname-only-prototype-properties.html: Added.
* fast/js/script-tests/get-by-pname-only-prototype-properties.js: Added.
(foo):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148142 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[wk2] Un-pollute TCADA methods with "PageOverlayLayerMap::iterator end"
https://bugs.webkit.org/show_bug.cgi?id=114387

Reviewed by Simon Fraser.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::paintContents):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::setExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):


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