Improve loader/go-back-cached-main-resource.html test
https://bugs.webkit.org/show_bug.cgi?id=116709

Patch by Manuel Rego Casasnovas <rego@igalia.com> on 2013-05-24
Reviewed by Alexey Proskuryakov.

It is only needed to register the listeners on the initial load as they
are already present when restoring from page cache. Modified the test to
use event.persisted property to know if we are handling the first load
in order to register the listeners only once.

* loader/resources/first-page.html: Rename registerListeners() function
to a more accurate name didShowPage() and use event.persisted to
register the listeners only in the first load.
* loader/resources/other-page.html: Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150645 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Path: upstream the missing bits from the BlackBerry port
https://bugs.webkit.org/show_bug.cgi?id=116658

Patch by Alberto Garcia <agarcia@igalia.com> on 2013-05-24
Reviewed by Xan Lopez.

PathBlackBerry was upstreamed a while ago (r144612) but a few bits
were missing from the cross-platform code.

* platform/graphics/Path.cpp:
(WebCore::Path::addPathForRoundedRect):
* platform/graphics/Path.h:
(Graphics):
(Path):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150646 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Intermittent crash when typing in Address Bar
https://bugs.webkit.org/show_bug.cgi?id=116728
<rdar://problem/13976781>

Reviewed by Sam Weinig.

If a web process connection has been removed from the storage manager because we disconnected it
since there were no more active pages associated with the web process, we'll fail to find it here
so just return early instead of crashing.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::destroyStorageMap):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Mac: Set the default audio buffer size to a large value for <video> elements.
https://bugs.webkit.org/show_bug.cgi?id=116342

Source/WebCore:

Reviewed by Eric Carlson.
Roll-in rubber stamped by Eric Carlson.

To enable power savings by waking up the audio hardware less often, set the
requested buffer frame size to a large value, such as 4096. Since this results
in approximately 100ms worth of buffer, set the buffer size to a much lower
value when playing WebAudio, which is much more sensitive to latency than video
or audio elements.

Introduce a new class, AudioSessionManager, as well as a helper class,
AudioSessionManagerToken. Audio elements, video elements, and WebAudio destination
nodes will create and retain a token, and release the token in their destructor.
This allows the AudioSessionManager to track how many of what type of audio-
generating objects are in existence.

This requires implementing AudioSession for Mac platforms. Move the implementation
for retrieving the hardware sample rate and setting the buffer duration into
AudioSessionMac from AudioDestinationMac, to be shared with AudioSessionManagerMac.

Change the AudioSession method preferredBufferLength() into preferredBufferSize(),
as the callers really want to specify a buffer size, not a buffer duration. On iOS,
where the available API requires a duration, perform the conversion from duration to
size on behalf of the caller.

However, since the original version of this patch caused media test
failures on the Mac ML and Lion bots, only enable the buffer size
change for OS X > ML.

* html/HTMLMediaElement.h:  Add a AudioSessionManagerToken member.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize the token.
* platform/audio/AudioSession.cpp:
(WebCore::AudioSession::preferredBufferSize): Renamed from preferredBufferLength.
(WebCore::AudioSession::setPreferredBufferSize): Renamed from setPreferredBufferLength.
* platform/audio/AudioSession.h:
* platform/audio/AudioSessionManager.cpp:
(AudioSessionManagerToken::create): Simple factory method.
(AudioSessionManagerToken::AudioSessionManagerToken): Call AudioSessionManager::incrementCount().
(AudioSessionManagerToken::~AudioSessionManagerToken): Call AudioSessionManager::decrementCount().
(AudioSessionManager::sharedManager): Simple singleton method.
(AudioSessionManager::AudioSessionManager): Simple constructor.
(AudioSessionManager::has): Return whether the type is present.
(AudioSessionManager::incrementCount): Increment, then call updateSessionState()
(AudioSessionManager::decrementCount): Decrement, then call updateSessionState()
(AudioSessionManager::updateSessionState): Stub, does nothing.
* platform/audio/AudioSessionManager.h:
* platform/audio/ios/AudioDestinationIOS.cpp:
(WebCore::AudioDestinationIOS::configure): Call setPreferredBufferSize() instead of setPreferredBufferLength()
* platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSession::preferredBufferSize): Renamed from preferredBufferLength.
(WebCore::AudioSession::setPreferredBufferSize): Renamed from setPreferredBufferLength
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestination::hardwareSampleRate): Call AudioSession::sampleRate().
(WebCore::AudioDestinationMac::AudioDestinationMac): Create the AudioSessionManagerToken.
(WebCore::AudioDestinationMac::configure): Do not set the buffer size (this is done in AudioSessionManagerMac).
* platform/audio/mac/AudioDestinationMac.h:
* platform/audio/mac/AudioSessionMac.cpp: Added.
(WebCore::defaultDevice): Added, returns the default audio device.
(WebCore::AudioSession::AudioSession): Simple constructor.
(WebCore::AudioSession::~AudioSession): Simple destructor.
(WebCore::AudioSession::category): Stub, unimplemented.
(WebCore::AudioSession::setCategory): Ditto.
(WebCore::AudioSession::categoryOverride): Ditto.
(WebCore::AudioSession::setCategoryOverride): Ditto.
(WebCore::AudioSession::numberOfOutputChannels): Ditto.
(WebCore::AudioSession::setActive): Ditto.
(WebCore::AudioSession::sampleRate): Use the HAL to return the default audio device sample rate.
(WebCore::AudioSession::preferredBufferSize): Return the current HAL setting.
(WebCore::AudioSession::setPreferredBufferSize): Set the buffer size.
* platform/audio/mac/AudioSessionManagerMac.cpp:
(AudioSessionManager::updateSessionState): Set the buffer size depending on what audio outputs are present.
* WebCore.xcodeproj/project.pbxproj: Add the new files to the project.

Source/WTF:

Reviewed by Eric Carlson.

* wtf/Platform.h: Add a WTF_USE_AUDIO_SESSION setting.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove PagePopup code
https://bugs.webkit.org/show_bug.cgi?id=116732

Reviewed by Andreas Kling.

.:

* Source/cmakeconfig.h.cmake:
Remove ENABLE_PAGE_POPUP.

Source/WebCore:

Remove all page popup code.

* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* dom/ContextFeatures.cpp:
* dom/ContextFeatures.h:
* loader/EmptyClients.h:
* page/ChromeClient.h:
* page/DOMWindowPagePopup.cpp: Removed.
* page/DOMWindowPagePopup.h: Removed.
* page/DOMWindowPagePopup.idl: Removed.
* page/PagePopup.h: Removed.
* page/PagePopupClient.cpp: Removed.
* page/PagePopupClient.h: Removed.
* page/PagePopupController.cpp: Removed.
* page/PagePopupController.h: Removed.
* page/PagePopupController.idl: Removed.
* page/PagePopupDriver.h: Removed.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore):
* testing/Internals.h:
(WebCore):
(Internals):
* testing/Internals.idl:
* testing/MockPagePopupDriver.cpp: Removed.
* testing/MockPagePopupDriver.h: Removed.

Source/WebKit/blackberry:

* WebCoreSupport/AboutDataEnableFeatures.in:
Remove PAGE_POPUP.

Source/WTF:

Remove ENABLE_PAGE_POPUP.

* wtf/FeatureDefines.h:

LayoutTests:

Remove tests that relied on the mock page popup driver.

* fast/forms/date/no-page-popup-controller-expected.txt: Removed.
* fast/forms/date/no-page-popup-controller.html: Removed.
* fast/forms/resources/picker-common.js: Removed.
* fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings-expected.txt: Removed.
* fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add more lines to the context during Dictionary lookups
https://bugs.webkit.org/show_bug.cgi?id=115256

Patch by Thomas Deniau <deniau@apple.com> on 2013-05-24
Reviewed by Ryosuke Niwa.

Source/WebCore:

No new tests - no new functionality.

* WebCore.exp.in: Export a few methods in VisibleUnits needed to be able
to call previousLinePosition(), nextLinePosition(), startOfLine() and
endOfLine() in WebPageMac.mm when determining the context while looking
up a dictionary definition. These symbols used to be exported for iOS
only, export them on the desktop too.

Source/WebKit2:

* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupAtLocation):
Instead of using the current paragraph as the context (which stops at
line breaks), get a few lines before and after the point, so that the
context contains at least four lines in each direction.
This way the Dictionary will be able to look up things that extend past
the current line.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150653 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2] Spelling tests gardening
https://bugs.webkit.org/show_bug.cgi?id=116718

Unreviewed gardening.

The most spelling tests are skipped for wk2 platforms and they have deprecated comments.
Move the tests from global wk2/TestExpectations to the ports' TestExpectations as
the core spellchecking implementation is delivered for wk2.
This change will allow to run spelling tests easier and using [ Pass ] keyword
in TestExpectations won't be needed.


* platform/efl-wk2/TestExpectations:
* platform/gtk-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/qt-5.0-wk2/TestExpectations:
* platform/wk2/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150654 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r150215): broke a test case in inspector/console/console-css-warnings.html
https://bugs.webkit.org/show_bug.cgi?id=116731

Reviewed by Ryosuke Niwa.

The mentioned revision removed a layering violation added just to
support some IE7 hack. That was removed but the test case
supporting it was left untouched, remove it.

* inspector/console/console-css-warnings-expected.txt:
* inspector/console/console-css-warnings.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150655 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[AC] Needs to be guarded by USE(ACCELERATED_COMPOSITING)
https://bugs.webkit.org/show_bug.cgi?id=116712

Patch by Seokju Kwon <seokju.kwon@gmail.com> on 2013-05-24
Reviewed by Andreas Kling.

renderView is used when ACCELERATED_COMPOSITING is enabled.
So, this patch allows it to be guarded by USE(ACCELERATED_COMPOSITING).

No new tests, no behavior change.

* page/FrameView.cpp:
(WebCore::FrameView::setFrameRect):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150656 268f45cc-cd09-0410-ab3c-d52691b4dbfc
We broke !(0/0)
https://bugs.webkit.org/show_bug.cgi?id=116736

Reviewed by Gavin Barraclough.

Source/JavaScriptCore: 

* parser/ASTBuilder.h:
(JSC::ASTBuilder::createLogicalNot):
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::pureToBoolean):

Source/WTF: 

* wtf/MathExtras.h:
(isNotZeroAndOrdered):
(isZeroOrUnordered):

LayoutTests: 

* fast/js/constant-fold-not-nan.html: Added.
* fast/js/constant-fold-not-nan-expected.txt: Added.
* fast/js/jsc-test-list:
* fast/js/script-tests/constant-fold-not-nan.js: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150659 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unused code to read/write history
https://bugs.webkit.org/show_bug.cgi?id=116738

Reviewed by Brent Fulgham.

* Interfaces/IWebHistory.idl:
Replace loadFromURL and saveToURL with unused1/unused2.

* Interfaces/IWebHistoryPrivate.idl:
Replace data with unused1.

* WebHistory.cpp:
Remove history loading/saving code.

(WebHistory::unused1):
(WebHistory::unused2):
Add implementations.

* WebHistory.h:
(WebHistory):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150660 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make team.html have each contributor's area of expertise
https://bugs.webkit.org/show_bug.cgi?id=116737

Patch by Bem Jones-Bey <bjonesbe@adobe.com> on 2013-05-24
Reviewed by Benjamin Poulain.

Tools:

* Scripts/webkitpy/common/config/contributors.json:
Add expertise to each contributor, taken from http://trac.webkit.org/wiki/WebKit%20Team

Changed formatting of the file because the lines are getting way to
long, and I generated this, so it's easier if the formatting of the
file is regular.

Websites/webkit.org:

* team.html:
Update to use the new expertise field in contributors.json.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove custom code for webkitAudioContext global constructor getter
https://bugs.webkit.org/show_bug.cgi?id=116530

Reviewed by Geoffrey Garen.

Source/WebCore:

Get rid of custom code for webkitAudioContext global constructor getter. The
global DOMWindow attribute is now automatically generated by leveraging support
for [EnabledAtRuntime] extended attribute and the existing methods in
RuntimeEnabledFeatures class.

No new tests, no behavior change.

* GNUmakefile.list.am: Remove JSDOMWindowWebAudioCustom.*.
* Modules/webaudio/AudioContext.idl:
Remove [NoInterfaceObject] extended attribute so that the global constructor is
automatically generated instead of automatically added. Add [EnabledAtRuntime]
extended attribute since this global constructor can be disabled at runtime and
so that we can getter rid of the [CustomGetter] for the corresponding global
constructor. Use [InterfaceName] extended attribute so that the interface name
matches the global constructor on DOMWindow (webkitAudioContext).

* Target.pri: Remove JSDOMWindowWebAudioCustom.*.
* UseJSC.cmake: Remove JSDOMWindowWebAudioCustom.*.
* WebCore.exp.in: Export additional symbol.
* WebCore.order: Export additional symbol.
* WebCore.vcproj/WebCore.vcproj: Remove JSDOMWindowWebAudioCustom.*.
* WebCore.vcxproj/WebCore.vcxproj: Remove JSDOMWindowWebAudioCustom.*.
* WebCore.vcxproj/WebCore.vcxproj.filters: Remove JSDOMWindowWebAudioCustom.*.
* WebCore.xcodeproj/project.pbxproj: Remove JSDOMWindowWebAudioCustom.*.
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebAudioEnabled):
* bindings/js/JSBindingsAllInOne.cpp: Remove JSDOMWindowWebAudioCustom.*.
* bindings/js/JSDOMWindowWebAudioCustom.cpp: Removed. We no longer need any custom code for
the WebAudio global constructor getter because we use [EnabledAtRuntime] support in the
bindings generator now.
* page/DOMWindow.idl: Remove global constructor for AudioContext as it is now automatically
generated.
* page/Settings.in: Remove webAudioEnabled setting as we use the existing setting
in RuntimeEnabledFeatures now.

Source/WebKit/efl:

Use RuntimeEnabledFeatures instead of Settings to toggle Web Audio support.

* WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
(DumpRenderTreeSupportEfl::setWebAudioEnabled):
* WebCoreSupport/DumpRenderTreeSupportEfl.h:
* ewk/ewk_view.cpp:
(_Ewk_View_Private_Data):
(_ewk_view_priv_new):
* ewk/ewk_view.h: Remove public API to toggle Web Audio support as it is no longer
a view specific feature.

Source/WebKit/gtk:

Use RuntimeEnabledFeatures instead of Settings to toggle Web Audio support.

* webkit/webkitwebview.cpp:
(webkit_web_view_update_settings):
(webkit_web_view_settings_notify):

Source/WebKit/mac:

Use RuntimeEnabledFeatures instead of Settings to toggle Web Audio support.

* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit/qt:

Use RuntimeEnabledFeatures instead of Settings to toggle Web Audio support.

* Api/qwebsettings.cpp:
(QWebSettingsPrivate::apply):

Source/WebKit/win:

Use RuntimeEnabledFeatures instead of Settings to toggle Web Audio support.

* WebView.cpp:
(WebView::notifyPreferencesChanged):

Source/WebKit2:

Use RuntimeEnabledFeatures instead of WebCore Settings to toggle Web Audio support.

* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

Update EFL's DumpRenderTree to use DumpRenderTreeSupport to toggle
WebAudio feature instead of public ewk_view API since that API was
removed.

* DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
(DumpRenderTreeChrome::resetDefaultsToConsistentValues):
* DumpRenderTree/efl/TestRunnerEfl.cpp:
(TestRunner::overridePreference):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Global constructors exposed in worker environment have wrong attributes
https://bugs.webkit.org/show_bug.cgi?id=116708

Reviewed by Geoffrey Garen.

Source/WebCore:

Fix JSC bindings generator so that Global constructors exposed in worker environment
have the following attributes:
{ [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }

This is now consistent with global constructors on DOMWindow and with the Web IDL
specification:
http://dev.w3.org/2006/webapi/WebIDL/#es-interfaces

Test: fast/js/global-constructors-attributes-worker.html

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributesHashTable):

LayoutTests:

Add fast/js/global-constructors-attributes-worker.html test case to check the
global constructors attributers in the worker environment.

* fast/js/global-constructors-attributes-expected.txt:
* fast/js/global-constructors-attributes-worker-expected.txt: Added.
* fast/js/global-constructors-attributes-worker.html: Added.
* fast/js/global-constructors-attributes.html:
* fast/js/script-tests/global-constructors-attributes.js: Make sure script usable
in a Worker and stop reporting the "constructor" property as a global constructor.
* platform/efl/fast/js/global-constructors-attributes-expected.txt:
* platform/efl/fast/js/global-constructors-attributes-worker-expected.txt: Added.
* platform/gtk/fast/js/global-constructors-attributes-expected.txt:
* platform/mac-lion/fast/js/global-constructors-attributes-expected.txt:
* platform/qt/fast/js/global-constructors-attributes-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150664 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move history property list writer to WebKit
https://bugs.webkit.org/show_bug.cgi?id=116746

Reviewed by Tim Horton.

Source/WebCore:

Remove files from the Xcode project and remove symbols that now live in WebKit.

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Add files to the Xcode project.

* WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

Move WebCore history files to WebKit since they're only used by WebKit now.

* History/BinaryPropertyList.cpp: Renamed from Source/WebCore/platform/cf/BinaryPropertyList.cpp.
* History/BinaryPropertyList.h: Renamed from Source/WebCore/platform/cf/BinaryPropertyList.h.
* History/HistoryPropertyList.cpp: Renamed from Source/WebCore/history/cf/HistoryPropertyList.cpp.
* History/HistoryPropertyList.h: Renamed from Source/WebCore/history/cf/HistoryPropertyList.h.
* History/WebHistory.mm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Animated GIFs don't repaint after TiledCoreAnimationDrawingArea un-suspends painting
https://bugs.webkit.org/show_bug.cgi?id=116744
<rdar://problem/13973514>

Reviewed by Simon Fraser.

* WebCore.exp.in: Export FrameView::resumeAnimatingImages.
* page/FrameView.cpp:
(WebCore::FrameView::setIsInWindow):
(WebCore::FrameView::resumeAnimatingImages):
Factor the code to restart animated images out of frameView::setIsInWindow.

* page/FrameView.h:
(FrameView):

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::resumePainting):
Force WebCore to repaint animated images when painting is resumed.


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

* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150667 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove using namespace std from Mac WebKit1
https://bugs.webkit.org/show_bug.cgi?id=116747

Reviewed by Sam Weinig.

Use explicit std:: qualifiers instead.

* History/BinaryPropertyList.cpp:
(IntegerArray::deletedValueSize):
(BinaryPropertyListPlan::invalidObjectReference):
(bytesNeeded):
* History/WebHistory.mm:
(-[WebHistoryPrivate orderedLastVisitedDays]):
(WebHistoryWriter::WebHistoryWriter):
* History/WebHistoryItem.mm:
(-[WebHistoryItem initFromDictionaryRepresentation:]):
* Plugins/Hosted/NetscapePluginHostManager.mm:
(WebKit::NetscapePluginHostManager::instantiatePlugin):
* Plugins/Hosted/NetscapePluginHostProxy.mm:
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::LocalObjectMap::idForObject):
(WebKit::NetscapePluginInstanceProxy::wheelEvent):
(WebKit::NetscapePluginInstanceProxy::print):
(WebKit::NetscapePluginInstanceProxy::snapshot):
(WebKit::NetscapePluginInstanceProxy::loadURL):
(WebKit::NetscapePluginInstanceProxy::createBindingsInstance):
* Plugins/Hosted/ProxyInstance.mm:
(WebKit::ProxyInstance::invoke):
(WebKit::ProxyInstance::supportsInvokeDefaultMethod):
(WebKit::ProxyInstance::supportsConstruct):
(WebKit::ProxyInstance::getPropertyNames):
(WebKit::ProxyInstance::methodNamed):
(WebKit::ProxyInstance::fieldNamed):
(WebKit::ProxyInstance::fieldValue):
(WebKit::ProxyInstance::setFieldValue):
* Plugins/WebBasePluginPackage.mm:
(-[WebBasePluginPackage supportsExtension:]):
(-[WebBasePluginPackage MIMETypeForExtension:]):
* Plugins/WebNetscapePluginStream.mm:
(WebNetscapePluginStream::deliverData):
* Plugins/WebNetscapePluginView.mm:
(PluginTimer::start):
(-[WebNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]):
* WebCoreSupport/WebFrameLoaderClient.mm:
* WebView/WebFrame.mm:
* WebView/WebHTMLView.mm:
(-[WebHTMLView _adjustedBottomOfPageWithTop:bottom:limit:]):
* WebView/WebTextCompletionController.mm:
(-[WebTextCompletionController _placePopupWindow:]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150668 268f45cc-cd09-0410-ab3c-d52691b4dbfc
MessageSender shouldn't be a class template
https://bugs.webkit.org/show_bug.cgi?id=116743

Reviewed by Andreas Kling.

Change MessageSender to be a proper abstract base class. Subclasses of MessageSender must
implement messageSenderConnection() as well as messageSenderDestinationID().

This reduces code size and will allow us to be more flexible with MessageSender in the future.

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::sendAbortingOnFailure):
(WebKit::NetworkResourceLoader::messageSenderConnection):
(WebKit):
(WebKit::NetworkResourceLoader::messageSenderDestinationID):
* NetworkProcess/NetworkResourceLoader.h:
(NetworkResourceLoader):
* NetworkProcess/mac/DiskCacheMonitor.h:
(DiskCacheMonitor):
* NetworkProcess/mac/DiskCacheMonitor.mm:
(WebKit::DiskCacheMonitor::messageSenderConnection):
(WebKit::DiskCacheMonitor::messageSenderDestinationID):
(WebKit):
* Platform/CoreIPC/MessageSender.h:
(CoreIPC):
(MessageSender):
(CoreIPC::MessageSender::send):
(CoreIPC::MessageSender::sendSync):
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::messageSenderConnection):
(WebKit):
(WebKit::ChildProcess::messageSenderDestinationID):
* Shared/ChildProcess.h:
(ChildProcess):
* Shared/Downloads/Download.cpp:
(WebKit::Download::messageSenderConnection):
(WebKit):
(WebKit::Download::messageSenderDestinationID):
* Shared/Downloads/Download.h:
(Download):
* Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
(WebKit::CustomProtocolManager::initialize):
* Shared/WebConnection.h:
(WebConnection):
* Shared/mac/SecItemShim.cpp:
(WebKit::sendSecItemRequest):
* UIProcess/WebConnectionToWebProcess.cpp:
(WebKit::WebConnectionToWebProcess::hasValidConnection):
(WebKit::WebConnectionToWebProcess::messageSenderConnection):
(WebKit::WebConnectionToWebProcess::messageSenderDestinationID):
* UIProcess/WebConnectionToWebProcess.h:
(WebConnectionToWebProcess):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Geolocation/WebGeolocationManager.cpp:
(WebKit::WebGeolocationManager::registerWebPage):
(WebKit::WebGeolocationManager::unregisterWebPage):
* WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
(WebKit::WebIconDatabaseProxy::retainIconForPageURL):
(WebKit::WebIconDatabaseProxy::releaseIconForPageURL):
(WebKit::WebIconDatabaseProxy::synchronousIconForPageURL):
(WebKit::WebIconDatabaseProxy::loadDecisionForIconURL):
(WebKit::WebIconDatabaseProxy::setIconURLForPageURL):
(WebKit::WebIconDatabaseProxy::setIconDataForIconURL):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::postMessage):
(WebKit::InjectedBundle::postSynchronousMessage):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::messageSenderConnection):
(WebKit::WebResourceLoader::messageSenderDestinationID):
* WebProcess/Network/WebResourceLoader.h:
(WebResourceLoader):
* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::show):
(WebKit::WebNotificationManager::cancel):
(WebKit::WebNotificationManager::clearNotifications):
(WebKit::WebNotificationManager::didDestroyNotification):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::writeItemsToPasteboard):
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::loadValuesIfNeeded):
* WebProcess/WebConnectionToUIProcess.cpp:
(WebKit::WebConnectionToUIProcess::hasValidConnection):
(WebKit::WebConnectionToUIProcess::messageSenderConnection):
(WebKit::WebConnectionToUIProcess::messageSenderDestinationID):
* WebProcess/WebConnectionToUIProcess.h:
(WebConnectionToUIProcess):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::windowRect):
(WebKit::WebChromeClient::focusedFrameChanged):
(WebKit::WebChromeClient::createWindow):
(WebKit::WebChromeClient::toolbarsVisible):
(WebKit::WebChromeClient::statusbarVisible):
(WebKit::WebChromeClient::menubarVisible):
(WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
(WebKit::WebChromeClient::shouldInterruptJavaScript):
(WebKit::WebChromeClient::exceededDatabaseQuota):
* WebProcess/WebCoreSupport/WebColorChooser.cpp:
(WebKit::WebColorChooser::WebColorChooser):
(WebKit::WebColorChooser::setSelectedColor):
(WebKit::WebColorChooser::endChooser):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidReceiveIcon):
(WebKit::WebFrameLoaderClient::updateGlobalHistory):
(WebKit::WebFrameLoaderClient::updateGlobalHistoryRedirectLinks):
(WebKit::WebFrameLoaderClient::setTitle):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::populatePluginCache):
(WebKit::WebPlatformStrategies::getTypes):
(WebKit::WebPlatformStrategies::bufferForType):
(WebKit::WebPlatformStrategies::getPathnamesForType):
(WebKit::WebPlatformStrategies::stringForType):
(WebKit::WebPlatformStrategies::copy):
(WebKit::WebPlatformStrategies::changeCount):
(WebKit::WebPlatformStrategies::uniqueName):
(WebKit::WebPlatformStrategies::color):
(WebKit::WebPlatformStrategies::url):
(WebKit::WebPlatformStrategies::addTypes):
(WebKit::WebPlatformStrategies::setTypes):
(WebKit::WebPlatformStrategies::setBufferForType):
(WebKit::WebPlatformStrategies::setPathnamesForType):
(WebKit::WebPlatformStrategies::setStringForType):
* WebProcess/WebCoreSupport/WebPopupMenu.cpp:
(WebKit::WebPopupMenu::show):
(WebKit::WebPopupMenu::hide):
* WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
(WebKit::WebSearchPopupMenu::saveRecentSearches):
(WebKit::WebSearchPopupMenu::loadRecentSearches):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::sendDidReceiveEvent):
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::updateBackForwardItem):
(WebKit::WebBackForwardListProxy::itemAtIndex):
(WebKit::WebBackForwardListProxy::backListCount):
(WebKit::WebBackForwardListProxy::forwardListCount):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::createInspectorPage):
(WebKit::WebInspector::didClose):
(WebKit::WebInspector::bringToFront):
(WebKit::WebInspector::inspectedURLChanged):
(WebKit::WebInspector::save):
(WebKit::WebInspector::append):
(WebKit::WebInspector::attachBottom):
(WebKit::WebInspector::attachRight):
(WebKit::WebInspector::detach):
(WebKit::WebInspector::setAttachedWindowHeight):
(WebKit::WebInspector::setAttachedWindowWidth):
(WebKit::WebInspector::setToolbarHeight):
(WebKit::WebInspector::updateDockingAvailability):
(WebKit::WebInspector::sendMessageToRemoteFrontend):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::messageSenderConnection):
(WebKit):
(WebKit::WebPage::messageSenderDestinationID):
* WebProcess/WebPage/WebPage.h:
(WebPage):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::executeKeypressCommandsInternal):
(WebKit::WebPage::handleEditingKeyboardEvent):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::shouldTerminate):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Expose database storage and cache locations via preferences.
https://bugs.webkit.org/show_bug.cgi?id=116729

Reviewed by Tim Horton.

Source/WebKit: 

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Export
three symbols needed to implement the feature.

Source/WebKit/win: 

* WebDatabaseManager.cpp: Update to check preferences for the
desired location of the database store.
(databasesDirectory): Added.
(WebKitInitializeWebDatabasesIfNecessary): Use new databasesDirectory
method to determine what system path to use for file storage.
* WebKit.vcproj/WebKitExports.def.in: Export three symbols
needed to implement the feature.
* WebView.cpp: Update to check preferences for the desired location
of the various caches used by WebKit.
(WebView::setCacheModel): Update to check preferences for URL cache
storage.
(WebKitSetApplicationCachePathIfNecessary): Update to check
preferences for ccache storage.

Tools: 

Update DumpRenderTree to use CFPreferences to control where WebKit
stores its local databases, URL caches, etc.

* DumpRenderTree/win/DumpRenderTree.cpp:
(libraryPathForDumpRenderTree): Added.
(dllLauncherEntryPoint): Set up DRT-specific cache locations.
* Scripts/webkitpy/port/base.py:
(Port._driver_tempdir): Added (to allow port-specific overload).
(Port._driver_tempdir_for_environment): Ditto
* Scripts/webkitpy/port/driver.py:
(Driver._setup_environ_for_driver): Use new overload to set
environment variable.
(Driver._start): Use new overload for temp directory location.
* Scripts/webkitpy/port/win.py:
(WinPort._driver_tempdir_for_environment): New overload to supply
Windows path to DumpRenderTree environment (while still using
cygwin paths for internal operations.


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