More WEBCORE_EXPORT macros.
https://bugs.webkit.org/show_bug.cgi?id=136129

Reviewed by Tim Horton.

Source/WebCore:

* Modules/geolocation/Geolocation.h:
* Modules/geolocation/GeolocationController.h:
* Modules/indexeddb/IDBDatabaseBackend.h:
* Modules/indexeddb/IDBDatabaseMetadata.h:
* Modules/indexeddb/IDBKey.h:
* Modules/indexeddb/IDBKeyData.h:
* Modules/indexeddb/IDBKeyPath.h:
* Modules/indexeddb/IDBKeyRange.h:
* Modules/indexeddb/IDBKeyRangeData.h:
* Modules/notifications/Notification.h:
* Modules/notifications/NotificationController.h:
* bindings/js/GCController.h:
* bridge/IdentifierRep.h:
* css/StyleProperties.h:
* dom/ExceptionCodePlaceholder.h:
* dom/KeyboardEvent.h:
* dom/MouseEvent.h:
* dom/MouseRelatedEvent.h:
* dom/Node.h:
(WebCore::Node::hasEditableStyle):
* dom/NodeTraversal.h:
* dom/Position.h:
(WebCore::Position::Position):
* dom/Range.h:
(WebCore::Range::startContainer):
(WebCore::Range::startOffset):
(WebCore::Range::endContainer):
(WebCore::Range::endOffset):
* editing/FrameSelection.h:
(WebCore::DragCaretController::clear):
* history/HistoryItem.h:
* history/PageCache.h:
* html/FormController.h:
* html/HTMLElement.h:
* html/HTMLFormElement.h:
* html/HTMLFrameOwnerElement.h:
* html/HTMLInputElement.h:
* html/HTMLMediaElement.h:
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.h:
* html/HTMLPlugInElement.h:
* html/HTMLPlugInImageElement.h:
* html/HTMLSelectElement.h:
* html/HTMLTableCellElement.h:
* html/HTMLTextAreaElement.h:
* html/HTMLTextFormControlElement.h:
* html/HTMLVideoElement.h:
* html/ImageDocument.h:
* html/PluginDocument.h:
* html/forms/FileIconLoader.h:
* html/shadow/InsertionPoint.h:
* inspector/InspectorClient.h:
* inspector/InspectorController.h:
* inspector/InspectorFrontendClientLocal.h:
* inspector/InspectorInstrumentation.h:
* loader/FrameLoadRequest.h:
* loader/FrameLoader.h:
* loader/FrameLoaderStateMachine.h:
* loader/HistoryController.h:
* loader/LoaderStrategy.h:
* loader/NavigationAction.h:
* loader/NetscapePlugInStreamLoader.h:
* loader/ProgressTracker.h:
* loader/archive/cf/LegacyWebArchive.h:
* loader/cache/MemoryCache.h:
* loader/icon/IconController.h:
* loader/icon/IconDatabase.h:
* loader/icon/IconDatabaseBase.h:
* page/FocusController.h:
* page/Frame.h:
* page/FrameDestructionObserver.h:
Replaced WEBCORE_TESTING with WEBCORE_EXPORT.
* page/FrameTree.h:
* page/FrameView.h:
* page/Page.h:
* page/PageConsole.h:
* page/PageGroup.h:
* page/PageThrottler.h:
* page/PrintContext.h:
* page/scrolling/ScrollingConstraints.h:
* page/scrolling/ScrollingStateNode.h:
* platform/FileChooser.h:
* platform/GamepadProvider.h:
* platform/Length.h:
* platform/MIMETypeRegistry.h:
* platform/MemoryPressureHandler.h:
* platform/Pasteboard.h:
* platform/PlatformExportMacros.h:
Removed WEBCORE_TESTING, which I'm replacing with WEBCORE_EXPORT.
* platform/PlatformKeyboardEvent.h:
* platform/PlatformPasteboard.h:
* platform/PlatformSpeechSynthesisVoice.h:
* platform/PlatformSpeechSynthesizer.h:
* platform/audio/MediaSessionManager.h:
* platform/graphics/FloatPoint.h:
* platform/graphics/FloatQuad.h:
* platform/graphics/FloatRect.h:
* platform/graphics/FloatSize.h:
* platform/graphics/Font.h:
* platform/graphics/FontCache.h:
* platform/graphics/FontGlyphs.h:
* platform/graphics/FontPlatformData.h:
* platform/graphics/GlyphPageTreeNode.h:
* platform/graphics/Gradient.h:
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsLayer.h:
* platform/graphics/Icon.h:
* platform/graphics/Image.h:
* platform/graphics/ImageBuffer.h:
* platform/graphics/IntPoint.h:
* platform/graphics/IntRect.h:
* platform/graphics/IntSize.h:
* platform/graphics/LayoutRect.h:
* platform/graphics/MediaPlayer.h:
* platform/graphics/Path.h:
* platform/graphics/Region.h:
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/LayerFlushScheduler.h:
* platform/graphics/ca/LayerPool.h:
* platform/graphics/ca/PlatformCAFilters.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/cg/IOSurfacePool.h:
* platform/graphics/cocoa/IOSurface.h:
* platform/graphics/filters/FilterOperations.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/ios/LegacyTileCache.h:
* platform/ios/PlatformEventFactoryIOS.h:
* platform/ios/wak/FloatingPointEnvironment.h:
* platform/mac/HIDGamepadProvider.h:
* platform/mock/MockMediaStreamCenter.h:
* platform/network/FormData.h:
* platform/network/HTTPHeaderMap.h:
* platform/network/NetworkStorageSession.h:
* platform/network/ProtectionSpaceBase.h:
* platform/network/cocoa/ProtectionSpaceCocoa.h:
(WebCore::ProtectionSpace::encodingRequiresPlatformData):
* platform/network/ios/QuickLook.h:
* platform/text/TextBreakIterator.h:
* plugins/PluginData.h:
* plugins/PluginMainThreadScheduler.h:
* rendering/HitTestLocation.h:
* rendering/HitTestResult.h:
* rendering/InlineBox.h:
Added more WEBCORE_EXPORT macros, which don't do anything yet.

Source/WTF:

* wtf/ExportMacros.h:
Removed WTF_TESTING which isn't used.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@172831 268f45cc-cd09-0410-ab3c-d52691b4dbfc
overflow:scroll elements should support rubber-banding
https://bugs.webkit.org/show_bug.cgi?id=91655

Reviewed by Sam Weinig and Darin Adler.

Source/WebCore:

This patch enables rubber-banding in overflow regions and it keeps latching 
working as currently implemented.

We cannot return early here if there is no scroll delta. There won't be a scroll
delta in most cases during event.phase() == PlatformWheelEventPhaseEnded, but that 
phase is required to be processed in order for rubber-banding to work properly. 
* dom/Element.cpp:
(WebCore::Element::dispatchWheelEvent):
* page/EventHandler.cpp:
(WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis):

Add a setting for this, which will default to true. This allows us to disable the 
feature in WebKit1 for now. There is a bug about making it work.
* page/Settings.in:

allowsHorizontalStretching() and allowsVerticalStretching() now take the 
PlatformWheelEvent as a parameter, so that ScrollElasticityAutomatic can use the 
event to decide whether or not stretching should be allowed in this case. 
ScrollElasticityAutomatic will not allow stretching if it is a brand new gesture 
that would result in a rubber-band. We don't want to rubber-band in that case
because we want the event to propagate up to a parent view. Also added some helper 
functions just to make that code easier to read.
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::newGestureIsStarting):
(WebCore::ScrollingTreeFrameScrollingNodeMac::isAlreadyPinnedInDirectionOfGesture):
(WebCore::ScrollingTreeFrameScrollingNodeMac::allowsHorizontalStretching):
(WebCore::ScrollingTreeFrameScrollingNodeMac::allowsVerticalStretching):
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::handleWheelEvent):
(WebCore::newGestureIsStarting):
(WebCore::ScrollAnimatorMac::isAlreadyPinnedInDirectionOfGesture):
(WebCore::ScrollAnimatorMac::allowsVerticalStretching):
(WebCore::ScrollAnimatorMac::allowsHorizontalStretching):
* platform/mac/ScrollElasticityController.h:
* platform/mac/ScrollElasticityController.mm:
(WebCore::ScrollElasticityController::handleWheelEvent):

To opt into rubber-banding, all we have to do is implement overhangAmount and set 
scroll elasticity. We'll choose ScrollElasticityAutomatic which means that we'll
only rubber-band in directions that can scroll and that we won't rubber-band for
new gestures when we're already pinned to the edge.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::overhangAmount):
(WebCore::RenderLayer::setHasHorizontalScrollbar):
(WebCore::RenderLayer::setHasVerticalScrollbar):

Source/WebKit/mac:

Disable rubber-banding in overflow areas for now.
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

LayoutTests:

Re-baseline. Mostly these tests are different now that end end event is handled.
* platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-expected.txt:
* platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler-expected.txt:
* platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler-expected.txt:
* platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
* platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
* platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt:
* platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:

This test requires a longer timeout to ensure that the rubber-band has ended.
* platform/mac/fast/scrolling/scroll-latched-nested-div.html:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@172832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION: CSS not() selector does not work when it appears after or within @supports
https://bugs.webkit.org/show_bug.cgi?id=136063

Patch by Yuki Sekiguchi <yuki.sekiguchi@access-company.com> on 2014-08-21
Reviewed by Darin Adler.

Source/WebCore:

CSSParser changes its m_parsingMode to SupportsMode when it finds
"@supports" token. However, the mode will be never changed to
NormalMode. This changes parsing algorithm for "not" token forever,
and it cannot parse not pseudo class selector.

When we finish parsing @supports rule, we should change to normal
mode.

@media does the same thing. This patch changed CharacterEndMediaQuery
to CharacterEndConditionQuery, and we change parsing mode from
SupportsMode to NormalMode when the parser finished to parse
@supports rule.

Like "@-webkit-mediaquery", we cannot use '{' to
"@-webkit-supports-condition". Changed "@-webkit-supports-condition"
parsing rule and parseSupportsCondition() not to use '{'.

Tests: css3/supports-not-selector-cssom.html
       css3/supports-not-selector.html

* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseSupportsCondition):
(WebCore::isCSSLetter):
(WebCore::CSSParser::realLex):

LayoutTests:

Test that @supports doesn't break "not" pseudo class selector.

* css3/supports-not-selector-cssom-expected.txt: Added.
* css3/supports-not-selector-cssom.html: Added.
* css3/supports-not-selector-expected.html: Added.
* css3/supports-not-selector.html: Added.

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