Coalesce WKView visibleRect changes
https://bugs.webkit.org/show_bug.cgi?id=115792
<rdar://problem/13776842>

Reviewed by Simon Fraser.

The system can call renewGState much more often than we actually want
to update the WebProcess' notion of the exposed rect. Most importantly,
within an autolayout pass it is called many times, and often sees
[WKView visibleRect] be an intermediate value which will never be
flushed to the screen. We only care about the final value, so we should
wait until AppKit has finished - with a zero-delay timer - to inform the
WebProcess of exposed rect changes.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
Add exposedRectChangedTimer.
(WebKit::WebPageProxy::close):
Cancel exposedRectChangedTimer when tearing down the WebPageProxy.
* UIProcess/WebPageProxy.h:
(WebPageProxy):
Add exposedRectChangedTimerFired, the timer itself, and two rects:
the most recent exposed rect from the WKView, and the last one we actually
sent across to the WebProcess.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::viewExposedRectChanged):
Instead of immediately sending exposed rect changes to the WebProcess,
start a zero-delay timer to do so.
(WebKit::WebPageProxy::exposedRectChangedTimerFired):
Once the zero-delay timer fires, send the new exposed rect to the WebProcess.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149761 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Safari unexpectedly quits with invalid message from the web process with message ID 0x323002f (WebPageProxy.DecidePolicyForNavigationAction)
https://bugs.webkit.org/show_bug.cgi?id=115814
<rdar://problem/12331258>

Reviewed by Andreas Kling.

To ensure that any asynchronous messages are delivered to the UI process before
synchronous messages (except when doing so would lead to a deadlock), Call
setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage on the UI process connections.

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

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149762 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix some compiler warnings (miscellaneous)
https://bugs.webkit.org/show_bug.cgi?id=80790

Patch by Rob Buis <rbuis@rim.com> on 2013-05-08
Reviewed by Philip Rogers.

Get rid of the following warning for BlackBerry:

BackingStoreClient.cpp:54:21: warning: unused parameter 'parentFrame' [-Wunused-parameter]

by using ASSERT_UNUSED instead of ASSERT.

* WebKitSupport/BackingStoreClient.cpp:
(BlackBerry::WebKit::BackingStoreClient::create):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149763 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed AppleWin build fix.

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
(MediaPlayerPrivateAVFoundationCF):
(WebCore::MediaPlayerPrivateAVFoundationCF::currentTrack):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149764 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add SPI to determine if a plugin is sandboxed
https://bugs.webkit.org/show_bug.cgi?id=115810

Reviewed by Anders Carlsson.

* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::initializeSandbox):
* Shared/Plugins/mac/PluginSandboxProfile.h: Added.
* Shared/Plugins/mac/PluginSandboxProfile.mm: Added.
(WebKit::pluginSandboxProfileDefaultDirectory):
(WebKit::pluginSandboxProfileDirectories):
(WebKit::pluginSandboxProfileName):
(WebKit::pluginSandboxCommonProfile):
(WebKit::pluginSandboxProfileForDirectory):
(WebKit::pluginSandboxProfile):
(WebKit::pluginHasSandboxProfileForDirectory):
(WebKit::pluginHasSandboxProfile):
Move sandbox code to its own file and refactor to use cocoa. Also adds pluginHasSandboxProfile function
which uses the newly refactored code.

* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKPlugInInfoIsSandboxedKey):
(createInfoDictionary):
Add WKPlugInInfoIsSandboxedKey.

* WebKit2.xcodeproj/project.pbxproj:
Add new files.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149765 268f45cc-cd09-0410-ab3c-d52691b4dbfc
TextTrackCue should support empty content
https://bugs.webkit.org/show_bug.cgi?id=115821

Reviewed by Jer Noble.

Source/WebCore:

Test: media/track/track-cue-empty-text-crash.html

* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Don't bother trying to render
    cues with no content.

* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::getCueAsHTML): Return early if there isn't a node tree.
(WebCore::TextTrackCue::createCueRenderingTree): Ditto.
(WebCore::TextTrackCue::determineTextDirection): Ditto.
(WebCore::TextTrackCue::updateDisplayTree): Return early if there isn't a cue rendering tree.

LayoutTests:

* media/track/track-cue-empty-text-crash-expected.txt: Added.
* media/track/track-cue-empty-text-crash.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tools: add new BlackBerry include dirs.
https://bugs.webkit.org/show_bug.cgi?id=115514

Patch by Alberto Garcia <agarcia@igalia.com> on 2013-05-08
Reviewed by Rob Buis.

iType include dirs are missing, and HarfBuzz needs to be fixed.

* Scripts/webkitdirs.pm:
(blackberryCMakeArguments):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149767 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Assert at compile time that we don't pass Objective-C object pointers to adoptCF
https://bugs.webkit.org/show_bug.cgi?id=115823

Reviewed by Geoffrey Garen.

Source/WebCore:

* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
Use adoptNS for CALayer.

Source/WebKit2:

Fix adoptNS/adoptCF mismatches. For the adopt(leakRef()) case we'd ideally want a static_pointer_cast overload for RetainPtr,
but this will do for now.

* Shared/mac/ArgumentCodersMac.mm:
(CoreIPC::decode):

Source/WTF:

static_assert in adoptCF that the object passed in is not an Objective-C object.
* wtf/RetainPtr.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149768 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Fix usage of BlackBerry::Platform::String
https://bugs.webkit.org/show_bug.cgi?id=115781

Patch by Eli Fidler <efidler@blackberry.com> on 2013-05-08
Reviewed by Rob Buis.

BlackBerry PRs 304193 and 327181
Internally Reviewed by Mike Lattanzio, Arvid Nilsson, Joe Mason, Jeff Rogers, and George Staikos

We currently have a problem where we're passing UTF-8 encoded data into
the char* constructors of BlackBerry::Platform::String. This means the string
thinks its data is not UTF-8.

Source/WebCore:

* platform/blackberry/ClipboardBlackBerry.cpp:
(WebCore::ClipboardBlackBerry::setData):
(WebCore::ClipboardBlackBerry::writeURL):
(WebCore::ClipboardBlackBerry::writePlainText):
* platform/blackberry/CookieManager.cpp:
(WebCore::CookieManager::getRawCookies):
(WebCore::CookieManager::getBackingStoreCookies):
* platform/blackberry/CookieParser.cpp:
(WebCore::CookieParser::CookieParser):
(WebCore::CookieParser::parseOneCookie):
* platform/blackberry/CursorBlackBerry.cpp:
(WebCore::Cursor::Cursor):
* platform/blackberry/PlatformBlob.cpp:
(WebCore::PlatformBlob::nextDataItem):
* platform/blackberry/WorkerAsyncFileSystemBlackBerry.cpp:
(WebCore::WorkerAsyncFileSystemBlackBerry::openFileSystemOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::deleteFileSystemOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::moveOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::copyOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::removeOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::removeRecursivelyOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::readMetadataOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::createFileOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::createDirectoryOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::fileExistsOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::directoryExistsOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::readDirectoryOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::createWriterOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadataOnMainThread):
* platform/graphics/blackberry/ImageBlackBerry.cpp:
(WebCore::Image::loadPlatformResource):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::load):
(WebCore::MediaPlayerPrivate::notifyChallengeResult):
(WebCore::toWebMediaStreamSource):
(WebCore::toWebMediaStreamDescriptor):
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::NetworkManager::startJob):
* platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle):
* platform/network/blackberry/rss/RSSFilterStream.cpp:
(WebCore::RSSFilterStream::notifyStatusReceived):
(WebCore::RSSFilterStream::notifyHeadersReceived):
(WebCore::RSSFilterStream::convertContentToHtml):
(WebCore::RSSFilterStream::charset):
(WebCore::RSSFilterStream::removeHeader):
(WebCore::RSSFilterStream::updateHeader):
(WebCore::RSSFilterStream::updateRSSHeaders):
* platform/network/blackberry/rss/RSSFilterStream.h:
* platform/text/blackberry/StringBlackBerry.cpp:
(WTF::String::operator BlackBerry::Platform::String):

Source/WebKit/blackberry:

* Api/JavaScriptVariant.cpp:
(BlackBerry::WebKit::JSValueRefToBlackBerryJavaScriptVariant):
* Api/WebKitTextCodec.cpp:
(BlackBerry::WebKit::base64Encode):
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPage::loadFile):
(BlackBerry::WebKit::WebPage::textEncoding):
(BlackBerry::WebKit::WebPage::textHasAttribute):
(BlackBerry::WebKit::WebPagePrivate::defaultUserAgent):
* Api/WebPage.h:
* Api/WebSettings.cpp:
(BlackBerry::WebKit::WebSettings::standardSettings):
* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
(WebCore::FrameLoaderClientBlackBerry::dispatchDidFinishLoad):
(WebCore::FrameLoaderClientBlackBerry::dispatchDidReceiveIcon):
* WebKitSupport/DefaultTapHighlight.cpp:
(WebKit):
(BlackBerry::WebKit::DefaultTapHighlight::draw):
(BlackBerry::WebKit::DefaultTapHighlight::hide):

Tools:

* DumpRenderTree/blackberry/DumpRenderTree.cpp:
(BlackBerry::WebKit::DumpRenderTree::resetToConsistentStateBeforeTesting):
(BlackBerry::WebKit::dumpHistoryItem):
* DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp:
(TestRunner::setUserStyleSheetLocation):
* DumpRenderTree/blackberry/WorkQueueItemBlackBerry.cpp:
(LoadHTMLStringItem::invoke):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149769 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Simplify RetainPtrObjectHashTraits
https://bugs.webkit.org/show_bug.cgi?id=115822

Reviewed by Benjamin Poulain.

RetainPtrObjectHashTraits is inherited from SimpleClassHashTraits
instead of GenericHashTraits re-using more shared functionality.

* wtf/RetainPtr.h:
(WTF::RetainPtrObjectHashTraits::emptyValue):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149770 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update WebKitLibraries/win to handle different architectures properly.

* win/lib32: Copied from win/lib.
* win/tools/WinTools.make:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149771 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Apply remote changes to storage maps locally
https://bugs.webkit.org/show_bug.cgi?id=115825

Reviewed by Beth Dakin.

* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::resetValues):
Clear the pending values map.

(WebKit::StorageAreaMap::didSetItem):
If we failed to set the item, forget everything we know about this storage map.
Otherwise, remove the pending item.

(WebKit::StorageAreaMap::didRemoveItem):
Remove the pending item.

(WebKit::StorageAreaMap::shouldApplyChangeForKey):
Helper function that returns whether a change for a given key should be applied.

(WebKit::StorageAreaMap::applyChange):
Apply the change. Currently only adds and removes are handled.

(WebKit::StorageAreaMap::dispatchStorageEvent):
Apply the change locally as well if needed.

* WebProcess/Storage/StorageAreaMap.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149772 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Teach buildbot how to compile 32-bit on Mac.

Reviewed by Ryosuke Niwa.

* BuildSlaveSupport/build.webkit.org-config/master.cfg:
(CompileWebKit.start):
(ExtractTestResultsAndLeaks):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149773 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebKit2] REGRESSION (Custom Protocols): Reproducible crash when navigating to URL with an invalid scheme
https://bugs.webkit.org/show_bug.cgi?id=115790

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

NSMutableSet does not support adding or removing nil objects, and
WTF::HashSet does not support adding, removing, or checking for null
WTF::Strings.

For the NSMutableSet case, make sure that we don't try to add or remove
nil NSStrings.

For the WTF::HashSet case, NSURL will return a nil NSString if we ask
it for its scheme when it is invalid, which we will convert to a null
WTF::String. Don't try to check if our HashSet of registered schemes
contains a null String.

* Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
(WebKit::CustomProtocolManager::registerScheme): Assert that the scheme
isn't null. We reject null schemes at the WKBrowsingContextController level.
(WebKit::CustomProtocolManager::unregisterScheme): Ditto.
(WebKit::CustomProtocolManager::supportsScheme): If scheme is null, return false.
* UIProcess/API/mac/WKBrowsingContextController.mm:
(+[WKBrowsingContextController registerSchemeForCustomProtocol:]): Do not register a nil scheme.
(+[WKBrowsingContextController unregisterSchemeForCustomProtocol:]): Ditto.

Tools:

Added two API tests:

1) Verify that +[WKBrowsingContextController (un)registerSchemeForCustomProtocol:] can be called with a nil NSString without crashing.
2) Verify that +[WKCustomProtocol canInitWithRequest:] does not crash when passed an NSURLRequest with an invalid scheme.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsInvalidScheme.mm: Added.
(TestWebKitAPI):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsInvalidScheme_Bundle.cpp: Added.
(TestWebKitAPI):
(TestWebKitAPI::decidePolicyForNavigationAction):
(CustomProtocolInvalidSchemeTest):
(TestWebKitAPI::CustomProtocolInvalidSchemeTest::CustomProtocolInvalidSchemeTest):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149774 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update JSCIdentifier pretty printer in Tools/gdb/webkit.py
https://bugs.webkit.org/show_bug.cgi?id=115808

Patch by Denis Nomiyama <d.nomiyama@samsung.com> on 2013-05-08
Reviewed by Darin Adler.

The pretty printer for the JSCIdentifier in Tools/gdb/webkit.py
was left outdated after r127191, when the m_string member was changed
from UString to String. This patch calls the right pretty printer for it.

* gdb/webkit.py:
(JSCIdentifierPrinter.to_string): Use WTFPrettyPrinter instead of
WTFImplPrettyPrinter.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149775 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add Scheduler for Mac MtnLion 32bit Release builder.
        
Unreviewed.
        
* BuildSlaveSupport/build.webkit.org-config/config.json:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149776 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Don't apply changes while we're clearing the database
https://bugs.webkit.org/show_bug.cgi?id=115826

Reviewed by Darin Adler.

* UIProcess/Storage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::openDatabase):
Only call didOpenDatabaseWithOrigin if we actually did open the database.

(WebKit::LocalStorageDatabase::updateDatabaseWithChangedItems):
Create the database if needed.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getValues):
Send back a DidGetValues message.

* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
Initialize m_hasPendingClear.

(WebKit::StorageAreaMap::clear):
Set m_hasPendingClear to true.

(WebKit::StorageAreaMap::resetValues):
Set m_hasPendingClear back to false.

(WebKit::StorageAreaMap::loadValuesIfNeeded):
Set m_hasPendingClear to true so we'll ignore any changes that are already part of the returned items.

(WebKit::StorageAreaMap::didGetValues):
Set m_hasPendingClear back to false.

(WebKit::StorageAreaMap::didClear):
Set m_hasPendingClear back to false.

(WebKit::StorageAreaMap::applyChange):
Don't apply the change if m_hasPendingClear is true.

* WebProcess/Storage/StorageAreaMap.messages.in:
Add DidGetValues message.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149777 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Heap-use-after-free in WebCore::AudioNodeOutput::pull
https://bugs.webkit.org/show_bug.cgi?id=111362

Reviewed by Chris Rogers.

* Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::createFromAudioFileData):
* Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::AudioNodeInput):
(WebCore::AudioNodeInput::updateInternalBus):
* Modules/webaudio/AudioNodeInput.h:
(AudioNodeInput):
* Modules/webaudio/AudioNodeOutput.cpp:
(WebCore::AudioNodeOutput::AudioNodeOutput):
(WebCore::AudioNodeOutput::updateInternalBus):
(WebCore::AudioNodeOutput::pull):
(WebCore::AudioNodeOutput::bus):
* Modules/webaudio/AudioNodeOutput.h:
(AudioNodeOutput):
* Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
* Modules/webaudio/OfflineAudioDestinationNode.h:
(OfflineAudioDestinationNode):
* platform/audio/AudioBus.cpp:
(WebCore::AudioBus::createBufferFromRange):
(WebCore::AudioBus::createBySampleRateConverting):
(WebCore::AudioBus::createByMixingToMono):
* platform/audio/AudioBus.h:
(AudioBus):
* platform/audio/AudioFileReader.h:
(WebCore):
* platform/audio/AudioResampler.cpp:
(WebCore::AudioResampler::AudioResampler):
(WebCore::AudioResampler::configureChannels):
* platform/audio/AudioResampler.h:
(AudioResampler):
* platform/audio/HRTFElevation.cpp:
(WebCore::getConcatenatedImpulseResponsesForSubject):
(WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
* platform/audio/MultiChannelResampler.cpp:
* platform/audio/Reverb.cpp:
(WebCore::Reverb::initialize):
* platform/audio/Reverb.h:
(Reverb):
* platform/audio/efl/AudioBusEfl.cpp:
(WebCore::AudioBus::loadPlatformResource):
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(AudioFileReader):
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):
* platform/audio/gtk/AudioBusGtk.cpp:
(WebCore::AudioBus::loadPlatformResource):
* platform/audio/mac/AudioBusMac.mm:
(WebCore::AudioBus::loadPlatformResource):
* platform/audio/mac/AudioFileReaderMac.cpp:
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):
* platform/audio/mac/AudioFileReaderMac.h:
(AudioFileReader):
* platform/audio/qt/AudioBusQt.cpp:
(WebCore::AudioBus::loadPlatformResource):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149778 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed build fix, AppleWin port.

* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::seek):
(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
(WebCore):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(MediaPlayerPrivateAVFoundation):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149779 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Potential use-after-free of Frame
https://bugs.webkit.org/show_bug.cgi?id=115774

Reviewed by Simon Fraser.

Merge https://chromium.googlesource.com/chromium/blink/+/c5b4a6db82e8280c7fc55ee3dc3a84c6b026e66e.

* page/Frame.cpp:
(WebCore::Frame::setPrinting):
(WebCore::Frame::setPageAndTextZoomFactors):
(WebCore::Frame::deviceOrPageScaleFactorChanged):


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