Use post-branch store for RefCountedBase::derefBase
https://bugs.webkit.org/show_bug.cgi?id=115078

Reviewed by Andreas Kling.

* wtf/RefCounted.h:
(WTF::RefCountedBase::derefBase): This makes the assembly easier to follow.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149053 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove wxWebKit #ifdefs from WebCore/page
https://bugs.webkit.org/show_bug.cgi?id=115079

Reviewed by Geoffrey Garen.

* page/FrameView.cpp:
(WebCore::FrameView::wheelEvent):
* page/Settings.cpp:
(WebCore):
* page/Settings.h:
(Settings):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149054 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove wxWebKit #ifdefs from WebCore/plugins
https://bugs.webkit.org/show_bug.cgi?id=115080

Reviewed by Geoffrey Garen.

* plugins/PluginView.h:
(PluginView):
* plugins/mac/PluginViewMac.mm:
(WebCore::nativeWindowFor):
(WebCore::cgHandleFor):
(WebCore::topLevelOffsetFor):
(WebCore::PluginView::platformStart):
* plugins/win/PluginViewWin.cpp:
(windowHandleForPageClient):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::platformStart):
(WebCore::PluginView::snapshot):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149055 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove wxWebKit #ifdefs from WebCore/platform/graphics
https://bugs.webkit.org/show_bug.cgi?id=115081

Reviewed by Geoffrey Garen.

* platform/graphics/BitmapImage.h:
(BitmapImage):
* platform/graphics/Color.h:
(Color):
* platform/graphics/FloatRect.h:
(FloatRect):
* platform/graphics/FloatSize.h:
(FloatSize):
* platform/graphics/FontPlatformData.h:
* platform/graphics/GlyphBuffer.h:
(WebCore):
(WebCore::GlyphBuffer::glyphAt):
(WebCore::GlyphBuffer::add):
* platform/graphics/Gradient.h:
* platform/graphics/GraphicsContext.h:
(GraphicsContext):
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
* platform/graphics/ImageBufferData.h:
* platform/graphics/IntPoint.h:
(IntPoint):
* platform/graphics/IntRect.h:
* platform/graphics/IntSize.h:
(IntSize):
* platform/graphics/NativeImagePtr.h:
(WebCore):
* platform/graphics/Path.h:
* platform/graphics/Pattern.h:
* platform/graphics/SimpleFontData.h:
(SimpleFontData):
(WebCore::SimpleFontData::widthForGlyph):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::collectComplexTextRuns):
* platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
* platform/graphics/transforms/AffineTransform.h:
(AffineTransform):
* platform/graphics/transforms/TransformationMatrix.h:
(TransformationMatrix):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149056 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Do not use static string in DiagnosticLoggingKeys
https://bugs.webkit.org/show_bug.cgi?id=115093

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-04-24
Reviewed by Andreas Kling.

The code is not hot enough to justify keeping the memory around.
This removes 3kb from the binary on x86_64.

* page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::mediaLoadedKey):
(WebCore::DiagnosticLoggingKeys::mediaLoadingFailedKey):
(WebCore::DiagnosticLoggingKeys::pluginLoadedKey):
(WebCore::DiagnosticLoggingKeys::pluginLoadingFailedKey):
(WebCore::DiagnosticLoggingKeys::pageContainsPluginKey):
(WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOnePluginKey):
(WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
(WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
(WebCore::DiagnosticLoggingKeys::passKey):
(WebCore::DiagnosticLoggingKeys::failKey):
(WebCore::DiagnosticLoggingKeys::noopKey):
* page/DiagnosticLoggingKeys.h:
(DiagnosticLoggingKeys):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Moving word boundaries backwards fails when there is a text node starting with an apostrophe
https://bugs.webkit.org/show_bug.cgi?id=115070

Reviewed by Alexey Proskuryakov.

Source/WebCore: 

The bug was caused by previousBoundary erroneously assuming that we don't need any more context if a word
boundary is found at the beginning of a string. For example, when "I'll" is split into two text nodes,
"I" and "'ll", there is a word boundary between "'" and "ll" in "'ll" so we need to examine the whole "I'll".

Fixed the bug by obtaining more context when the character starts exactly at offset 1 in a text node to
work around this bug. In the long term, we probably need to provide Foundation of the entire context since in
languages like Hebrew and some of European languages, there could be many accents and combining characters
between split into multiple text nodes as one variant is seen in the newly added test case.

Test: editing/selection/previous-word-boundary-across-text-nodes.html

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

LayoutTests: 

Added a test case for moving bacwkards with a word granurality across multiple text nodes.
Some test cases still fail since this patch only implements a work around.

* editing/selection/previous-word-boundary-across-text-nodes-expected.txt: Added.
* editing/selection/previous-word-boundary-across-text-nodes.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Setting an inline style property to "" shouldn't cause style recalc unless the property was present.
<http://webkit.org/b/115122>

Reviewed by Antti Koivisto.

StylePropertySet::setProperty() handles empty strings by removing the property entirely.
If there was no property to remove, it shouldn't claim that it changed something, as that
will cause the CSSOM wrapper to mark the element for style recalc.

A common idiom that triggers this is excessive use of { element.style.display = ''; }

* css/StylePropertySet.cpp:
(WebCore::MutableStylePropertySet::setProperty):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149059 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ElementData::attributeItem() should bounds-check the index.
<http://webkit.org/b/115076>

Reviewed by Antti Koivisto.

Switch the ASSERT_WITH_SECURITY_IMPLICATION to a RELEASE_ASSERT.

* dom/Element.h:
(WebCore::ElementData::attributeItem):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ElementData should use 'unsigned' attribute indices.
<http://webkit.org/b/115103>

Reviewed by Antti Koivisto.

Switch to using 'unsigned' for attribute indices. This gives consistent behavior
on 32/64-bit, and the underlying storage is already limited by Vector's 32-bit capacity.

Added an ElementData::attributeNotFound constant (-1) since we can't use WTF::notFound.

* dom/Element.cpp:
(WebCore::Element::detachAttribute):
(WebCore::Element::removeAttribute):
(WebCore::Element::setAttribute):
(WebCore::Element::setSynchronizedLazyAttribute):
(WebCore::Element::setAttributeInternal):
(WebCore::Element::setAttributeNode):
(WebCore::Element::removeAttributeNode):
(WebCore::Element::removeAttributeInternal):
(WebCore::UniqueElementData::removeAttribute):
(WebCore::ElementData::getAttributeItemIndexSlowCase):
* dom/Element.h:
(ElementData):
(UniqueElementData):
(Element):
(WebCore::Element::getAttributeItemIndex):
(WebCore::Element::attributeCount):
(WebCore::ElementData::length):
(WebCore::ElementData::getAttributeItem):
(WebCore::ElementData::getAttributeItemIndex):
* dom/NamedNodeMap.cpp:
(WebCore::NamedNodeMap::removeNamedItem):
(WebCore::NamedNodeMap::removeNamedItemNS):
(WebCore::NamedNodeMap::length):
* dom/NamedNodeMap.h:
(NamedNodeMap):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149061 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Clean up unused code in ViewportArguments.h
https://bugs.webkit.org/show_bug.cgi?id=115121

Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-04-24.
Reviewed by Benjamin Poulain.

The target-densityDPI emulation implementation has been removed by
r147893, so clean up the remaining code as well.

* dom/ViewportArguments.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149062 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Battery API won't return updated battery status until client calls didChangeBatteryStatus
https://bugs.webkit.org/show_bug.cgi?id=114891

Patch by Otto Derek Cheung <otcheung@rim.com> on 2013-04-24
Reviewed by Rob Buis.

The BatteryStatus object in BatteryManager won't get updated until BatteryClient calls
didChangeBatteryStatus in BatteryController. Any attempts to call webkitBattery.charged()
or other get functions will always return the default values until the next battery status
change object gets passed to the controller.

We need to update the manager when we attach it to the controller, and update all
existing managers when the controller receives it's first battery status object.

* Modules/battery/BatteryController.cpp:
(WebCore::BatteryController::addListener):
(WebCore::BatteryController::updateBatteryStatus):
* Modules/battery/BatteryManager.cpp:
(WebCore::BatteryManager::didChangeBatteryStatus):
(WebCore::BatteryManager::updateBatteryStatus):
(WebCore):
* Modules/battery/BatteryManager.h:
(BatteryManager):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149063 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Crash when trying to determine the length of an invalid message
https://bugs.webkit.org/show_bug.cgi?id=115127
<rdar://problem/13700736>

Reviewed by Beth Dakin.

Use message instead of incomingMessage since incomingMessage will always be null.

* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::processIncomingMessage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149064 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix a merge error in r149007 (was missing a null check added in r148777).

* rendering/LogicalSelectionOffsetCaches.h:
(WebCore::containingBlockForAbsolutePosition):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149065 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Vertical overlay scrollbar in iframes fades in and out rapidly when you scroll in 
a circle
https://bugs.webkit.org/show_bug.cgi?id=115124
-and corresponding-
<rdar://problem/13168957>

Reviewed by Anders Carlsson.

With http://trac.webkit.org/changeset/119834 we started calling 
ScrollbarPainterController's contentAreaScrolled/contentAreaScrolledInDirection 
API on a zero-delay timer instead of calling it right away. This prevented some 
crashes that we saw whenever this was called during a layout. However, that delay, 
combined with the particulars of contentAreaScrolledInDirection cause this bug 
where sometimes the scrollbars in an iframe will fade out very noticeably when 
scrolling in a circle.

This change makes it so we will only use the zero-delay timer if the 
ScrollableArea is not currently handling a wheel event. If it IS handling a wheel 
event, then we will send the notifications to AppKit right away. I confirmed that 
this change did not reintroduce the old crashes. 

Keep track of whether we are currently handling a wheel event with the new member 
variable m_isHandlingWheelEvent.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::handleWheelEvent):
* page/EventHandler.h:
(WebCore::EventHandler::isHandlingWheelEvent):
(EventHandler):

To prevent layering violations, the ScrollableArea sub-classes will have to access 
this information from the EventHandler.
* page/FrameView.cpp:
(WebCore::FrameView::isHandlingWheelEvent):
* page/FrameView.h:
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::isHandlingWheelEvent):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::isHandlingWheelEvent):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::isHandlingWheelEvent):
* rendering/RenderListBox.h:

sendContentAreaScrolledSoon() can be private. Also add new function 
sendContentAreaScrolled().
* platform/mac/ScrollAnimatorMac.h:
(ScrollAnimatorMac):

If the ScrollableArea is handling a wheel event, call 
sendContentAreaScrolled(), otherwise call sendContentAreaScrolledSoon()
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
(WebCore::ScrollAnimatorMac::sendContentAreaScrolled):

Re-factored to use sendContentAreaScrolled()
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Have VS2010 WebKit solution look in WebKit_Libraries/lib32 for dependencies.

* JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorPostBuild.cmd:
* JavaScriptCore.vcxproj/JavaScriptCorePreLink.cmd:
* JavaScriptCore.vcxproj/jsc/jscPostBuild.cmd:
* JavaScriptCore.vcxproj/jsc/jscPreLink.cmd:
* JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj.filters:
* JavaScriptCore.vcxproj/testRegExp/testRegExpPostBuild.cmd:
* JavaScriptCore.vcxproj/testRegExp/testRegExpPreLink.cmd:
* JavaScriptCore.vcxproj/testapi/testapiPreLink.cmd:
* WTF.vcxproj/build-generated-files.sh:
* win/tools/vsprops/common.props:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149067 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        fast/js/global-constructors.html was deleted in r149001, removing it from
        TextExpectations too.

        * platform/mac/TestExpectations:
        * platform/qt-arm/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149068 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Once a custom font is cached to disk, it starts failing to render until the page is refreshed.
<rdar://problem/13622998> and https://bugs.webkit.org/show_bug.cgi?id=115131

Reviewed by Alexey Proskuryakov.

No new tests (Not a tested config, nor are disk cache issues currently testable).

* loader/cache/CachedResource.h:
(WebCore::CachedResource:: mayTryReplaceEncodedData): Allow subclasses to refuse encoded data replacement.

* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::tryReplaceEncodedData): Only try if shouldTryReplaceEncodedData() is true.

* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::CachedFont):
(WebCore::CachedFont::ensureCustomFontData):
(WebCore::CachedFont::mayTryReplaceEncodedData): Return false if the custom font data has ever been created.
* loader/cache/CachedFont.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149070 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG should keep the operand to create_this alive if it's emitting code for create_this
https://bugs.webkit.org/show_bug.cgi?id=115133

Source/JavaScriptCore: 

Reviewed by Mark Hahnenberg.
        
The DFG must model bytecode liveness, or else OSR exit is going to have a really bad time.

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

LayoutTests: 

Reviewed by Mark Hahnenberg.
        
This test crashes prior to my change.

* fast/js/dfg-allocation-profile-watch-point-exit-expected.txt: Added.
* fast/js/dfg-allocation-profile-watch-point-exit.html: Added.
* fast/js/jsc-test-list:
* fast/js/script-tests/dfg-allocation-profile-watch-point-exit.js: Added.
(Foo):
(foo):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149071 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WIN] Remove pthread from Visual Studio files in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=114864

Reviewed by Brent Fulgham.

* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
* JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractorCommon.vsprops:
* JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
* JavaScriptCore.vcproj/testRegExp/testRegExpCommon.vsprops:
* JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
* JavaScriptCore.vcxproj/JavaScriptCoreCommon.props:
* JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorCommon.props:
* JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorCommon.props:
* JavaScriptCore.vcxproj/jsc/jscCommon.props:
* JavaScriptCore.vcxproj/testRegExp/testRegExpCommon.props:
* JavaScriptCore.vcxproj/testapi/testapiCommon.props:
* JavaScriptCore.vcxproj/testapi/testapiCommonCFLite.props:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149072 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Fix build error after r148963.
https://bugs.webkit.org/show_bug.cgi?id=115126

Reviewed by Laszlo Gombos.

Generate forwarding headers for 'CoordinatedGraphics' to generate WKView.h

Source/WebKit2:

* PlatformEfl.cmake:

Tools:

* TestWebKitAPI/PlatformEfl.cmake:


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