[css3-text] Add editing test for CSS3 Text Decoration properties
https://bugs.webkit.org/show_bug.cgi?id=120114

Reviewed by Darin Adler.

Adds editing layout test to verify that CSS3 Text Decoration properties
are being properly propagated.

* editing/pasteboard/insert-text-decoration-expected.txt: Added.
* editing/pasteboard/insert-text-decoration.html: Added.
* platform/mac/TestExpectations: Skip while CSS3_TEXT is disabled by default.
* platform/win/TestExpectations: Skip while CSS3_TEXT is disabled by default.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171067 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] Throttle painting using a UI-process-side CADisplayLink
https://bugs.webkit.org/show_bug.cgi?id=134879
<rdar://problem/17641699>

Reviewed by Simon Fraser.

Just waiting for CA to commit is insufficient to actually throttle to 60fps,
because nothing will block the main runloop from spinning.

Instead, listen to a CADisplayLink, and send didUpdate to the WebProcess
the first time it fires after we commit. This is not a guarantee that
our content is on the screen, but we don't have any way to make that guarantee yet.

This will throttle painting, rAF, etc. to the display refresh rate.

* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(-[OneShotDisplayLinkHandler initWithDrawingAreaProxy:]):
(-[OneShotDisplayLinkHandler dealloc]):
(-[OneShotDisplayLinkHandler displayLinkFired:]):
(-[OneShotDisplayLinkHandler invalidate]):
(-[OneShotDisplayLinkHandler schedule]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers): Deleted.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171068 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] don't enable low power audio mode on external output devices
https://bugs.webkit.org/show_bug.cgi?id=134877

Reviewed by Sam Weinig.


Source/WebCore: 
No new tests, this deals with changes to the audio hardware at runtime.

* WebCore.xcodeproj/project.pbxproj: Remove AudioSessionListener.h.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.

* platform/audio/AudioHardwareListener.cpp:
(WebCore::AudioHardwareListener::AudioHardwareListener): Initialize m_outputDeviceSupportsLowPowerMode
    to true on iOS.
* platform/audio/AudioHardwareListener.h:
(WebCore::AudioHardwareListener::outputDeviceSupportsLowPowerMode): New accessor.
(WebCore::AudioHardwareListener::setHardwareActivity): New setter for derived classes.
(WebCore::AudioHardwareListener::setOutputDeviceSupportsLowPowerMode): Ditto.

Remove AudioSessionListener interface, it wasn't being used.
* platform/audio/AudioSession.cpp:
(WebCore::AudioSession::addListener): Deleted.
(WebCore::AudioSession::removeListener): Deleted.
(WebCore::AudioSession::beganAudioInterruption): Deleted.
(WebCore::AudioSession::endedAudioInterruption): Deleted.
* platform/audio/AudioSession.h:
* platform/audio/AudioSessionListener.h: Removed.

* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::addSession): Allocate the AudioHardwareListener if necessary.
(WebCore::MediaSessionManager::removeSession): Free the AudioHardwareListener if necessary.
(WebCore::MediaSessionManager::audioOutputDeviceChanged): AudioHardwareListener client interface
    called when the output device changes, call updateSessionState to make sure we are using
    the correct buffer size.
* platform/audio/MediaSessionManager.h:

* platform/audio/ios/AudioDestinationIOS.h:
* platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionPrivate::AudioSessionPrivate): Drive-by cleanup, remove ObjC helper object
    that was used to listen for OS notifications, it is no longer used.
(SOFT_LINK_POINTER): Deleted.
(-[WebAudioSessionHelper initWithCallback:]): Deleted.
(-[WebAudioSessionHelper dealloc]): Deleted.
(-[WebAudioSessionHelper interruption:]): Deleted.

* platform/audio/mac/AudioHardwareListenerMac.cpp:
(WebCore::currentDeviceSupportsLowPowerBufferSize): New, return true only if using build-in 
    transport device.
(WebCore::processIsRunningPropertyDescriptor): Return reference to static AudioObjectPropertyAddress
    for kAudioHardwarePropertyProcessIsRunning instead of declaring one in every method
    that needs one.
(WebCore::outputDevicePropertyDescriptor): Return reference to static AudioObjectPropertyAddress
    for kAudioHardwarePropertyDefaultOutputDevice.
(WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac): Restructure and add audio object
    listener for default output device.
(WebCore::AudioHardwareListenerMac::~AudioHardwareListenerMac): *Remove* listener audio object
    property listener instead of *Adding* a new one. Remove new listener.
(WebCore::AudioHardwareListenerMac::propertyChanged): Enumerate the properties that changed,
    call appropriate method.
(WebCore::AudioHardwareListenerMac::processIsRunningChanged): Renamed from setHardwareActive, 
    cleanup.
(WebCore::AudioHardwareListenerMac::outputDeviceChanged): New, call client.audioHardwareOutputDeviceChanged.
(WebCore::AudioHardwareListenerMac::setHardwareActive): Deleted, renamed processIsRunningChanged.
* platform/audio/mac/AudioHardwareListenerMac.h:

* platform/audio/mac/MediaSessionManagerMac.cpp:
(MediaSessionManager::updateSessionState): Only set the output buffer size to 4K when hardware
    supports it.

Source/WebKit2: 
* PluginProcess/PluginProcess.h: Add an empty implementation of 
    AudioHardwareListener::audioOutputDeviceChanged.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171069 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r171045): Reproducible crash on navigation in PageClientImpl::willRecordNavigationSnapshot
https://bugs.webkit.org/show_bug.cgi?id=134887

Reviewed by Tim Horton.

* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::navigationGestureDidBegin): nil-check m_webView. It can be nil when
the client is using WKView directly.
(WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
(WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.
(WebKit::PageClientImpl::willRecordNavigationSnapshot): Ditto.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171070 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix the build.

* platform/audio/MediaSessionManager.h:


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