1. 12 May, 2011 1 commit
    • tonyg@chromium.org's avatar
      2011-05-10 Tony Gentilcore <tonyg@chromium.org> · 4b0a55f4
      tonyg@chromium.org authored
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * accessibility/AccessibilityObject.cpp:
              * accessibility/AccessibilityRenderObject.cpp:
              * accessibility/mac/AccessibilityObjectWrapper.mm:
              * dom/DocumentMarkerController.cpp:
              * dom/Position.cpp:
              * dom/PositionIterator.cpp:
              * dom/Range.cpp:
              * editing/ApplyBlockElementCommand.cpp:
              * editing/ApplyStyleCommand.cpp:
              * editing/Editor.cpp:
              * editing/EditorCommand.cpp:
              * editing/FrameSelection.cpp:
              * editing/HTMLInterchange.cpp:
              * editing/IndentOutdentCommand.cpp:
              * editing/ReplaceSelectionCommand.cpp:
              * editing/SpellChecker.h:
              * editing/SpellingCorrectionCommand.cpp:
              * editing/SpellingCorrectionController.h:
              * editing/TextCheckingHelper.cpp:
              * editing/TextIterator.h:
              * editing/htmlediting.h:
              * editing/markup.cpp:
              * editing/visible_units.cpp:
              * editing/visible_units.h:
              * fileapi/DOMFileSystem.cpp:
              * fileapi/DirectoryReaderSync.cpp:
              * fileapi/DirectoryReaderSync.h:
              * fileapi/FileEntry.h:
              * fileapi/FileWriter.h:
              * fileapi/FileWriterBase.h:
              * fileapi/FileWriterSync.h:
              * history/CachedFrame.cpp:
              * history/CachedPage.cpp:
              * history/HistoryItem.cpp:
              * history/HistoryItem.h:
              * history/PageCache.h:
              * loader/HistoryController.h:
              * loader/PingLoader.h:
              * loader/ResourceLoader.h:
              * loader/appcache/DOMApplicationCache.h:
              * loader/cache/CachedCSSStyleSheet.h:
              * loader/cache/CachedFont.cpp:
              * loader/cache/CachedFont.h:
              * loader/cache/CachedResourceRequest.cpp:
              * loader/cache/CachedResourceRequest.h:
              * loader/cache/MemoryCache.h:
              * notifications/Notification.cpp:
              * notifications/Notification.h:
              * notifications/NotificationCenter.cpp:
              * notifications/NotificationCenter.h:
              * page/Chrome.cpp:
              * page/Chrome.h:
              * page/DOMSelection.cpp:
              * page/DOMTimer.h:
              * page/DOMWindow.cpp:
              * page/EventHandler.cpp:
              * page/FocusController.h:
              * page/Geolocation.cpp:
              * page/Geolocation.h:
              * page/History.cpp:
              * rendering/RenderListBox.cpp:
              * workers/WorkerContext.cpp:
      2011-05-10  Tony Gentilcore  <tonyg@chromium.org>
      
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * src/WebHistoryItem.cpp:
              * src/WebNotification.cpp:
              * src/WebTextCheckingCompletionImpl.cpp:
              * src/mac/WebSubstringUtil.mm:
      2011-05-10  Tony Gentilcore  <tonyg@chromium.org>
      
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * Plugins/Hosted/WebHostedNetscapePluginView.mm:
              * WebView/WebFrame.mm:
      2011-05-10  Tony Gentilcore  <tonyg@chromium.org>
      
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * WebProcess/WebPage/mac/WebPageMac.mm:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@86325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4b0a55f4
  2. 19 Apr, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-04-19 Vsevolod Vlasov <vsevik@chromium.org> · 9f623594
      commit-queue@webkit.org authored
              Reviewed by Pavel Feldman.
      
              Web Inspector: Rename lengthReceived to encodedDataLength/dataLength
              https://bugs.webkit.org/show_bug.cgi?id=58883
      
              * fileapi/FileReaderLoader.cpp:
              (WebCore::FileReaderLoader::didReceiveData):
              * inspector/InspectorInstrumentation.cpp:
              (WebCore::InspectorInstrumentation::didReceiveContentLengthImpl):
              * inspector/InspectorInstrumentation.h:
              (WebCore::InspectorInstrumentation::didReceiveContentLength):
              * inspector/InspectorResourceAgent.cpp:
              (WebCore::InspectorResourceAgent::didReceiveContentLength):
              * inspector/InspectorResourceAgent.h:
              * inspector/front-end/NetworkManager.js:
              (WebInspector.NetworkDispatcher.prototype.dataReceived):
              * loader/DocumentThreadableLoader.cpp:
              (WebCore::DocumentThreadableLoader::didReceiveData):
              (WebCore::DocumentThreadableLoader::didReceiveCachedMetadata):
              * loader/DocumentThreadableLoader.h:
              * loader/FrameLoaderClient.h:
              * loader/MainResourceLoader.cpp:
              (WebCore::MainResourceLoader::didReceiveData):
              * loader/MainResourceLoader.h:
              * loader/NetscapePlugInStreamLoader.cpp:
              (WebCore::NetscapePlugInStreamLoader::didReceiveData):
              * loader/NetscapePlugInStreamLoader.h:
              * loader/ResourceLoadNotifier.cpp:
              (WebCore::ResourceLoadNotifier::didReceiveData):
              (WebCore::ResourceLoadNotifier::dispatchDidReceiveContentLength):
              (WebCore::ResourceLoadNotifier::sendRemainingDelegateMessages):
              * loader/ResourceLoadNotifier.h:
              * loader/ResourceLoader.cpp:
              (WebCore::ResourceLoader::didReceiveData):
              * loader/ResourceLoader.h:
              * loader/SubresourceLoader.cpp:
              (WebCore::SubresourceLoader::didReceiveData):
              * loader/SubresourceLoader.h:
              * loader/SubresourceLoaderClient.h:
              (WebCore::SubresourceLoaderClient::didReceiveData):
              (WebCore::SubresourceLoaderClient::didReceiveCachedMetadata):
              * loader/WorkerThreadableLoader.cpp:
              (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
              (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveCachedMetadata):
              * loader/appcache/ApplicationCacheGroup.cpp:
              (WebCore::ApplicationCacheGroup::didReceiveData):
              * loader/appcache/ApplicationCacheGroup.h:
              * loader/appcache/ApplicationCacheHost.h:
              * notifications/Notification.cpp:
              (WebCore::Notification::didReceiveData):
              * notifications/Notification.h:
              * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
              (StreamingClient::didReceiveData):
              * platform/network/BlobResourceHandle.cpp:
              * platform/network/ResourceHandleClient.h:
              (WebCore::ResourceHandleClient::didReceiveData):
              * platform/network/android/ResourceHandleAndroid.cpp:
              (WebCore::SyncLoader::didReceiveData):
              * platform/network/cf/ResourceHandleCFNet.cpp:
              (WebCore::WebCoreSynchronousLoaderClient::didReceiveData):
              * platform/network/curl/ResourceHandleCurl.cpp:
              * platform/network/mac/ResourceHandleMac.mm:
              (WebCoreSynchronousLoaderClient::didReceiveData):
              * platform/network/soup/ResourceHandleSoup.cpp:
              * platform/network/win/ResourceHandleWin.cpp:
              * workers/WorkerScriptLoader.h:
              * xml/XMLHttpRequest.h:
      2011-04-19  Vsevolod Vlasov  <vsevik@chromium.org>
      
              Reviewed by Pavel Feldman.
      
              Web Inspector: Rename lengthReceived to encodedDataLength/dataLength
              https://bugs.webkit.org/show_bug.cgi?id=58883
      
              Renamed lengthReceived to encodedDataLength/dataLength.
      
              * public/WebURLLoaderClient.h:
              (WebKit::WebURLLoaderClient::didReceiveData):
              * src/AssociatedURLLoader.cpp:
              (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveCachedMetadata):
              * src/FrameLoaderClientImpl.cpp:
              (WebKit::FrameLoaderClientImpl::dispatchDidReceiveContentLength):
              * src/FrameLoaderClientImpl.h:
              * src/ResourceHandle.cpp:
              (WebCore::ResourceHandleInternal::didReceiveData):
      2011-04-19  Vsevolod Vlasov  <vsevik@chromium.org>
      
              Reviewed by Pavel Feldman.
      
              Web Inspector: Rename lengthReceived to encodedDataLength/dataLength
              https://bugs.webkit.org/show_bug.cgi?id=58883
      
              * WebCoreSupport/FrameLoaderClientEfl.cpp:
              (WebCore::FrameLoaderClientEfl::dispatchDidReceiveContentLength):
              * WebCoreSupport/FrameLoaderClientEfl.h:
      2011-04-19  Vsevolod Vlasov  <vsevik@chromium.org>
      
              Reviewed by Pavel Feldman.
      
              Web Inspector: Rename lengthReceived to encodedDataLength/dataLength
              https://bugs.webkit.org/show_bug.cgi?id=58883
      
              * WebCoreSupport/FrameLoaderClientGtk.cpp:
              (WebKit::FrameLoaderClient::dispatchDidReceiveContentLength):
              * WebCoreSupport/FrameLoaderClientGtk.h:
              * webkit/webkitdownload.cpp:
              (DownloadClient::didReceiveData):
      2011-04-19  Vsevolod Vlasov  <vsevik@chromium.org>
      
              Reviewed by Pavel Feldman.
      
              Web Inspector: Rename lengthReceived to encodedDataLength/dataLength
              https://bugs.webkit.org/show_bug.cgi?id=58883
      
              * WebCoreSupport/WebFrameLoaderClient.h:
              * WebCoreSupport/WebFrameLoaderClient.mm:
              (WebFrameLoaderClient::dispatchDidReceiveContentLength):
      2011-04-19  Vsevolod Vlasov  <vsevik@chromium.org>
      
              Reviewed by Pavel Feldman.
      
              Web Inspector: Rename lengthReceived to encodedDataLength/dataLength
              https://bugs.webkit.org/show_bug.cgi?id=58883
      
              * WebCoreSupport/WebFrameLoaderClient.h:
      2011-04-19  Vsevolod Vlasov  <vsevik@chromium.org>
      
              Reviewed by Pavel Feldman.
      
              Web Inspector: Rename lengthReceived to encodedDataLength/dataLength
              https://bugs.webkit.org/show_bug.cgi?id=58883
      
              * WebCoreSupport/FrameLoaderClientWinCE.h:
      2011-04-19  Vsevolod Vlasov  <vsevik@chromium.org>
      
              Reviewed by Pavel Feldman.
      
              Web Inspector: Rename lengthReceived to encodedDataLength/dataLength
              https://bugs.webkit.org/show_bug.cgi?id=58883
      
              * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
              (WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength):
              * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@84260 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f623594
  3. 16 Feb, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-02-16 Bill Budge <bbudge@chromium.org> · 7c4021cc
      commit-queue@webkit.org authored
              Reviewed by David Levin.
      
              Need didReceiveCachedMetadata, and finishTime for didFinishLoading exposed in ThreadableLoaderClient
              https://bugs.webkit.org/show_bug.cgi?id=54313
      
              No tests needed, exposes no new functionality
      
              * fileapi/FileReaderLoader.cpp:
              (WebCore::FileReaderLoader::didFinishLoading):
              * fileapi/FileReaderLoader.h:
              * loader/DocumentThreadableLoader.cpp:
              (WebCore::DocumentThreadableLoader::setDefersLoading):
              (WebCore::DocumentThreadableLoader::didReceiveCachedMetadata):
              (WebCore::DocumentThreadableLoader::didFinishLoading):
              (WebCore::DocumentThreadableLoader::loadRequest):
              * loader/DocumentThreadableLoader.h:
              * loader/ThreadableLoaderClient.h:
              (WebCore::ThreadableLoaderClient::didReceiveData):
              (WebCore::ThreadableLoaderClient::didReceiveCachedMetadata):
              (WebCore::ThreadableLoaderClient::didFinishLoading):
              * loader/ThreadableLoaderClientWrapper.h:
              (WebCore::ThreadableLoaderClientWrapper::didReceiveData):
              (WebCore::ThreadableLoaderClientWrapper::didReceiveCachedMetadata):
              (WebCore::ThreadableLoaderClientWrapper::didFinishLoading):
              * loader/WorkerThreadableLoader.cpp:
              (WebCore::workerContextDidReceiveCachedMetadata):
              (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveCachedMetadata):
              (WebCore::workerContextDidFinishLoading):
              (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
              * loader/WorkerThreadableLoader.h:
              * notifications/Notification.cpp:
              (WebCore::Notification::didFinishLoading):
              * notifications/Notification.h:
              * page/EventSource.cpp:
              (WebCore::EventSource::didFinishLoading):
              * page/EventSource.h:
              * workers/WorkerScriptLoader.cpp:
              (WebCore::WorkerScriptLoader::didFinishLoading):
              * workers/WorkerScriptLoader.h:
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::didFinishLoading):
              * xml/XMLHttpRequest.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@78782 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7c4021cc
  4. 08 Jan, 2011 1 commit
  5. 20 Aug, 2010 1 commit
    • inferno@chromium.org's avatar
      2010-08-20 Abhishek Arya <inferno@chromium.org> · 28c76f51
      inferno@chromium.org authored
              Reviewed by Darin Fisher.
      
              Prevent use of stale notification presenter pointer in notifications by instead using
              a notification center pointer and deriving the presenter from it. Notification presenter
              gets properly destroyed using disconnectFrame function inside notification center. Add
              null checks for notification presenter.
              https://bugs.webkit.org/show_bug.cgi?id=43645
      
              Test: fast/notifications/notifications-window-close-crash.html
      
              * notifications/Notification.cpp:
              (WebCore::Notification::Notification):
              (WebCore::Notification::create):
              (WebCore::Notification::show):
              (WebCore::Notification::cancel):
              (WebCore::Notification::contextDestroyed):
              (WebCore::Notification::finishLoading):
              * notifications/Notification.h:
              (WebCore::Notification::detachPresenter):
              * notifications/NotificationCenter.h:
              (WebCore::NotificationCenter::createHTMLNotification):
              (WebCore::NotificationCenter::createNotification):
      2010-08-20  Abhishek Arya  <inferno@chromium.org>
      
              Reviewed by Darin Fisher.
      
              Manual test to check that canceling the notification on a closed window does
              not result in crash.
              https://bugs.webkit.org/show_bug.cgi?id=43645
      
              * fast/notifications/notifications-window-close-crash-expected.txt: Added.
              * fast/notifications/notifications-window-close-crash.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65742 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      28c76f51
  6. 09 Jul, 2010 1 commit
    • yael.aharon@nokia.com's avatar
      2010-07-09 Yael Aharon <yael.aharon@nokia.com> · c37575eb
      yael.aharon@nokia.com authored
              Reviewed by Laszlo Gombos.
      
              NotificationPresenter needs a cancelRequestPermission API
              https://bugs.webkit.org/show_bug.cgi?id=41783
      
              Updated NotificationPresenter API, to use ScriptExecutionContext instead of origin.
              Added new API NotificationPresenter::cancelRequestsForPermision
              The new API will be implemented and a test will be added in a followup patch.
      
              * notifications/Notification.cpp:
              (WebCore::Notification::Notification):
              * notifications/NotificationCenter.cpp:
              (WebCore::NotificationCenter::checkPermission):
              (WebCore::NotificationCenter::requestPermission):
              (WebCore::NotificationCenter::disconnectFrame):
              * notifications/NotificationCenter.h:
              * notifications/NotificationPresenter.h:
      2010-07-09  Yael Aharon  <yael.aharon@nokia.com>
      
              Reviewed by Laszlo Gombos.
      
              NotificationPresenter needs a cancelRequestPermission API
              https://bugs.webkit.org/show_bug.cgi?id=41783
      
              Updated the NotificationPresenter API.
      
              * src/NotificationPresenterImpl.cpp:
              (WebKit::NotificationPresenterImpl::checkPermission):
              (WebKit::NotificationPresenterImpl::requestPermission):
              * src/NotificationPresenterImpl.h:
              (WebKit::NotificationPresenterImpl::cancelRequestsForPermission):
      2010-07-09  Yael Aharon  <yael.aharon@nokia.com>
      
              Reviewed by Laszlo Gombos.
      
              NotificationPresenter needs a cancelRequestPermission API
              https://bugs.webkit.org/show_bug.cgi?id=41783
      
              Updated NotificationPresenter API to use ScriptExecutionContext instead of origin
              and added a new NotificationPresenter::cancelRequestsForPermission API.
              The new API will be implemented in a followup patch.
      
              * WebCoreSupport/NotificationPresenterClientQt.cpp:
              (WebCore::NotificationPresenterClientQt::requestPermission):
              (WebCore::NotificationPresenterClientQt::checkPermission):
              (WebCore::NotificationPresenterClientQt::cancelRequestsForPermission):
              * WebCoreSupport/NotificationPresenterClientQt.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@62939 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c37575eb
  7. 17 Jun, 2010 1 commit
    • eric@webkit.org's avatar
      2010-06-17 John Gregg <johnnyg@google.com> · cf174c51
      eric@webkit.org authored
              Reviewed by David Levin.
      
              Move the call to the notification presenter that a Notification is being
              destroyed from the destructor (not safe) to the ActiveDOMObject::contextDestroyed
              method.
      
              Also fix up an incorrect reference loss in the V8 bindings code for Notifications.
              https://bugs.webkit.org/show_bug.cgi?id=40097
      
              No new tests; code paths are well-covered by existing tests.
      
              * bindings/v8/custom/V8NotificationCenterCustom.cpp:
              (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
              (WebCore::V8NotificationCenter::createNotificationCallback):
              * notifications/Notification.cpp:
              (WebCore::Notification::~Notification):
              (WebCore::Notification::contextDestroyed):
              * notifications/Notification.h:
      2010-06-17  John Gregg  <johnnyg@google.com>
      
              Reviewed by David Levin.
      
              Undo the build fix with the correct patch: Chromium NotificationPresenter
              is now informed of the destruction before it actually happens, so this
              use of the Notification object is correct.
              https://bugs.webkit.org/show_bug.cgi?id=40097
      
              * src/NotificationPresenterImpl.cpp:
              (WebKit::NotificationPresenterImpl::notificationObjectDestroyed):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@61316 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cf174c51
  8. 14 Jun, 2010 1 commit
    • yael.aharon@nokia.com's avatar
      [Qt] Platform plugin support for Notifications UI · f5c1bbee
      yael.aharon@nokia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=40005
      
      Reviewed by Kenneth Rohde Christiansen.
      
      WebCore: 
      
      To avoid race condition when GC is run during shutdown,
      disconnect the Notification from the NotificationPresenter
      when the presenter deletes itself.
      This cannot be tested by a layout test, the race condition happens only
      when GC is run during shutdown. It can be tested manually by loading
      manually any notification test and closing the browser.
      
      * notifications/Notification.cpp:
      (WebCore::Notification::~Notification):
      * notifications/Notification.h:
      (WebCore::Notification::detachPresenter):
      
      WebKit/qt: 
      
      Add an interface to the platform plugin to display notifications.
      Implemented the notification in the example platform plugin. 
      This interface is enabled by default, but could be turned off with
      a build flag. The platform plugin should control its own lifecycle,
      so now the close timer applies only when using the QSystemTrayIcon.
      That's because QSystemTrayIcon does not inform its caller when it
      is closed.
      
      Changed the way NotificationPresenterClientQt is deleted because it
      is being accessed when GC is deleting the Notification objects.
      NotificationPresenterClientQt is now detaching itself from the
      Notifications before it is deleted.
      
      * Api/qwebkitplatformplugin.h:
      (QWebNotificationPresenter::QWebNotificationPresenter):
      (QWebNotificationPresenter::~QWebNotificationPresenter):
      (QWebKitPlatformPlugin::):
      * WebCoreSupport/NotificationPresenterClientQt.cpp:
      (WebCore::NotificationIconWrapper::NotificationIconWrapper):
      (WebCore::NotificationIconWrapper::title):
      (WebCore::NotificationIconWrapper::message):
      (WebCore::NotificationIconWrapper::iconData):
      (WebCore::NotificationPresenterClientQt::~NotificationPresenterClientQt):
      (WebCore::NotificationIconWrapper::notificationClosed):
      (WebCore::NotificationPresenterClientQt::displayNotification):
      (WebCore::NotificationPresenterClientQt::cancel):
      (WebCore::NotificationPresenterClientQt::notificationForWrapper):
      (WebCore::NotificationPresenterClientQt::removeReplacedNotificationFromQueue):
      (WebCore::NotificationPresenterClientQt::detachNotification):
      * WebCoreSupport/NotificationPresenterClientQt.h:
      * WebCoreSupport/QtPlatformPlugin.cpp:
      (WebCore::QtPlatformPlugin::createNotificationPresenter):
      * WebCoreSupport/QtPlatformPlugin.h:
      * examples/platformplugin/WebNotificationPresenter.cpp: Added.
      (WebNotificationWidget::WebNotificationWidget):
      (WebNotificationWidget::~WebNotificationWidget):
      (WebNotificationWidget::showNotification):
      (WebNotificationWidget::event):
      * examples/platformplugin/WebNotificationPresenter.h: Added.
      (WebNotificationPresenter::WebNotificationPresenter):
      (WebNotificationPresenter::~WebNotificationPresenter):
      (WebNotificationPresenter::showNotification):
      * examples/platformplugin/WebPlugin.cpp:
      (WebPlugin::supportsExtension):
      * examples/platformplugin/WebPlugin.h:
      (WebPlugin::createNotificationPresenter):
      * examples/platformplugin/platformplugin.pro:
      * examples/platformplugin/qwebkitplatformplugin.h:
      (QWebNotificationPresenter::QWebNotificationPresenter):
      (QWebNotificationPresenter::~QWebNotificationPresenter):
      (QWebKitPlatformPlugin::):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@61121 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f5c1bbee
  9. 10 Jun, 2010 1 commit
    • eric@webkit.org's avatar
      2010-06-10 Yael Aharon <yael.aharon@nokia.com> · d396ada3
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              Support for loading notification icons
              https://bugs.webkit.org/show_bug.cgi?id=40396
      
              * http/tests/notifications: Added.
              * http/tests/notifications/icon-does-not-exist-expected.txt: Added.
              * http/tests/notifications/icon-does-not-exist.html: Added.
              * http/tests/notifications/icon-exists-cancel-expected.txt: Added.
              * http/tests/notifications/icon-exists-cancel.html: Added.
              * http/tests/notifications/icon-exists-expected.txt: Added.
              * http/tests/notifications/icon-exists-show-alert-during-load-expected.txt: Added.
              * http/tests/notifications/icon-exists-show-alert-during-load.html: Added.
              * http/tests/notifications/icon-exists.html: Added.
              * http/tests/notifications/icon-requires-auth-expected.txt: Added.
              * http/tests/notifications/icon-requires-auth.html: Added.
              * http/tests/notifications/resources: Added.
              * http/tests/notifications/resources/icon-exists.png: Added.
              * http/tests/notifications/resources/icon-requires-auth.php: Added.
              * platform/chromium/test_expectations.txt:
              * platform/gtk/Skipped:
              * platform/mac/Skipped:
              * platform/win/Skipped:
      2010-06-10  Yael Aharon  <yael.aharon@nokia.com>
      
              Reviewed by Kenneth Rohde Christiansen.
      
              Support for loading notification icons
              https://bugs.webkit.org/show_bug.cgi?id=40396
      
              Make notification objects download the icon needed for displaying the
              notification before calling the NotificationPresenter to display the
              notification.
      
              An error during the download would cause the notification to be displayed
              without an icon.
      
              If a notification is in the process of download, and a new notification
              is created with the same ReplaceId, the download is not cancelled
              immediately and the notification is removed only after the download is
              complete.
      
              Tests: http/tests/notifications/icon-does-not-exist.html
                     http/tests/notifications/icon-exists-cancel.html
                     http/tests/notifications/icon-exists-show-alert-during-load.html
                     http/tests/notifications/icon-exists.html
                     http/tests/notifications/icon-requires-auth.html
      
              * notifications/Notification.cpp:
              (WebCore::Notification::Notification):
              (WebCore::Notification::~Notification):
              (WebCore::Notification::show):
              (WebCore::Notification::cancel):
              (WebCore::Notification::startLoading):
              (WebCore::Notification::stopLoading):
              (WebCore::Notification::didReceiveResponse):
              (WebCore::Notification::didReceiveData):
              (WebCore::Notification::didFinishLoading):
              (WebCore::Notification::didFail):
              (WebCore::Notification::didFailRedirectCheck):
              (WebCore::Notification::didReceiveAuthenticationCancellation):
              (WebCore::Notification::finishLoading):
              * notifications/Notification.h:
              (WebCore::Notification::iconData):
              (WebCore::Notification::releaseIconData):
              (WebCore::Notification::):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60960 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d396ada3
  10. 14 Apr, 2010 1 commit
    • aa@chromium.org's avatar
      2010-04-14 Aaron Boodman <aa@chromium.org> · 27f8a278
      aa@chromium.org authored
              Reviewed by David Levin.
      
              Support relative URLs for notifications on Chromium. They weren't working previously because WebCore was inserting
              the relative URL into a KURL instance, but when KURL is backed by GURL as it is on Chromium, relative URLs are
              unsupported. Fixed by resolving the relative URL first.
      
              https://bugs.webkit.org/show_bug.cgi?id=36623
      
              Adding tests for this is difficult because we don't currently have DRT support for notifications on Mac, only Windows.
      
              * notifications/Notification.cpp:
              (WebCore::Notification::Notification): Accept resolved KURL instead of relative string.
              * notifications/Notification.h:
              (WebCore::Notification::create): Ditto.
              (WebCore::Notification::iconURL): Return resolved KURL instead of relative string.
              * notifications/NotificationCenter.h:
              (WebCore::NotificationCenter::createHTMLNotification): Immediately resolve URL instead of passing off relative string.
              (WebCore::NotificationCenter::createNotification): Ditto.
              * notifications/NotificationContents.h:
              (WebCore::NotificationContents::NotificationContents): Accept resolved KURL instead of relative string.
              (WebCore::NotificationContents::icon): Return resolved URL.
      2010-04-14  Aaron Boodman  <aa@chromium.org>
      
              Reviewed by David Levin.
      
              Support relative URLs for notifications on Chromium. They weren't working previously because WebCore was inserting
              the relative URL into a KURL instance, but when KURL is backed by GURL as it is on Chromium, relative URLs are
              unsupported. Fixed by resolving the relative URL first.
      
              https://bugs.webkit.org/show_bug.cgi?id=36623
      
              Adding tests for this is difficult because we don't currently have DRT support for notifications on Mac, only Windows.
      
              * public/WebNotification.h: Remove deprecated icon() method.
              * src/WebNotification.cpp: Ditto.
      2010-04-14  Aaron Boodman  <aa@chromium.org>
      
              Reviewed by David Levin.
      
              Support relative URLs for notifications on Chromium. They weren't working previously because WebCore was inserting
              the relative URL into a KURL instance, but when KURL is backed by GURL as it is on Chromium, relative URLs are
              unsupported. Fixed by resolving the relative URL first.
      
              https://bugs.webkit.org/show_bug.cgi?id=36623
      
              Adding tests for this is difficult because we don't currently have DRT support for notifications on Mac, only Windows.
      
              * WebCoreSupport/NotificationPresenterClientQt.cpp:
              (NotificationPresenterClientQt::show): Return type of NotificationContents::iconURL() changed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@57604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      27f8a278
  11. 05 Apr, 2010 1 commit
  12. 29 Mar, 2010 1 commit
    • eric@webkit.org's avatar
      2010-03-29 Rafael Weinstein <rafaelw@chromium.org> · e7fe0ccd
      eric@webkit.org authored
              Reviewed by Adam Barth.
      
              Change NotificationPresenter::checkPermission() to take the source frames full KURL,
              rather than its SecurityOrigin. This will aid chromium in having more fine grained
              permissions to control notification spam.
      
              * notifications/Notification.cpp:
              (WebCore::Notification::Notification):
              * notifications/NotificationCenter.cpp:
              (WebCore::NotificationCenter::checkPermission):
              * notifications/NotificationPresenter.h:
      2010-03-29  Rafael Weinstein  <rafaelw@chromium.org>
      
              Reviewed by Adam Barth.
      
              Change NotificationPresenter::checkPermission() to take the source frames full KURL,
              rather than its SecurityOrigin. This will aid chromium in having more fine grained
              permissions to control notification spam.
      
              * public/WebNotificationPresenter.h:
              (WebKit::WebNotificationPresenter::checkPermission):
              * src/NotificationPresenterImpl.cpp:
              (WebKit::NotificationPresenterImpl::checkPermission):
              * src/NotificationPresenterImpl.h:
      2010-03-29  Rafael Weinstein  <rafaelw@chromium.org>
      
              Reviewed by Adam Barth.
      
              Change NotificationPresenter::checkPermission() to take the source frames full KURL,
              rather than its SecurityOrigin. This will aid chromium in having more fine grained
              permissions to control notification spam.
      
              * WebCoreSupport/WebDesktopNotificationsDelegate.cpp:
              (WebDesktopNotificationsDelegate::checkPermission):
              * WebCoreSupport/WebDesktopNotificationsDelegate.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@56756 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e7fe0ccd
  13. 16 Mar, 2010 1 commit
  14. 11 Mar, 2010 1 commit
    • eric@webkit.org's avatar
      2010-03-11 Aaron Boodman <aa@chromium.org> · 04ca1559
      eric@webkit.org authored
              Kill WebDocument::applicationID() (part 1).
      
              Modify interface to WebCore::NotificationPresenter::checkPermission()
              and remove implementation of WebDocument::applicationID(). Breaking
              API changes will be in a subsequent change.
              https://bugs.webkit.org/show_bug.cgi?id=35846
      
              * notifications/Notification.cpp:
              (WebCore::Notification::Notification):
              * notifications/NotificationCenter.cpp:
              (WebCore::NotificationCenter::checkPermission):
              * notifications/NotificationPresenter.h:
      2010-03-11  Aaron Boodman  <aa@chromium.org>
      
              Kill WebDocument::applicationID() (part 1).
      
              Modify interface to WebCore::NotificationPresenter::checkPermission()
              and remove implementation of WebDocument::applicationID(). Breaking
              API changes will be in a subsequent change.
              https://bugs.webkit.org/show_bug.cgi?id=35846
      
              * public/WebNotificationPresenter.h:
              * src/NotificationPresenterImpl.cpp:
              (WebKit::NotificationPresenterImpl::checkPermission):
              * src/NotificationPresenterImpl.h:
              * src/WebDocument.cpp:
              (WebKit::WebDocument::applicationID):
      2010-03-11  Aaron Boodman  <aa@chromium.org>
      
              Kill WebDocument::applicationID() (part 1).
      
              Modify interface to WebCore::NotificationPresenter::checkPermission()
              and remove implementation of WebDocument::applicationID(). Breaking
              API changes will be in a subsequent change.
              https://bugs.webkit.org/show_bug.cgi?id=35846
      
              * WebCoreSupport/WebDesktopNotificationsDelegate.cpp:
              (WebDesktopNotificationsDelegate::checkPermission):
              * WebCoreSupport/WebDesktopNotificationsDelegate.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55888 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      04ca1559
  15. 28 Jan, 2010 3 commits
    • aa@chromium.org's avatar
      Reapply 54008: Expand the NotificationPresenter::checkPermission() interface · c057f33f
      aa@chromium.org authored
      to send the full URL of the requesting context, as well as a pointer to the
      document if that context was a document.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54015 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c057f33f
    • aa@chromium.org's avatar
      revert · 8dea3bd9
      aa@chromium.org authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54011 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8dea3bd9
    • aa@chromium.org's avatar
      2010-01-28 Aaron Boodman <aa@chromium.org> · 26c1f44e
      aa@chromium.org authored
              Reviewed by Darin Adler.
      
              Expand the NotificationPresenter::checkPermission() interface to send the full
              URL of the requesting context, as well as a pointer to the document if that
              context was a document.
      
              https://bugs.webkit.org/show_bug.cgi?id=34238
      
              * notifications/Notification.cpp:
              (WebCore::Notification::Notification):
              * notifications/NotificationCenter.cpp:
              (WebCore::NotificationCenter::NotificationCenter):
              (WebCore::NotificationCenter::checkPermission):
              Pass the full URL and document from the requesting context when calling
              NotificationPresenter::checkPermission().
      
              * notifications/NotificationPresenter.h:
              (WebCore::NotificationPresenter::):
              Expand interface.
      2010-01-27  Aaron Boodman  <aa@chromium.org>
      
              Reviewed by Darin Adler.
      
              Send full URL and application id of requesting context to Chromium
              when checking notification permissions.
      
              https://bugs.webkit.org/show_bug.cgi?id=34238
      
              * public/WebDocument.h:
              * src/WebDocument.cpp:
              (WebKit::WebDocument::applicationID):
              Implement applicationID() method.
      
              * public/WebNotificationPresenter.h:
              * src/NotificationPresenterImpl.cpp:
              (WebKit::NotificationPresenterImpl::checkPermission):
              * src/NotificationPresenterImpl.h:
              Send applicationID and full URL through to Chromium.
      2010-01-27  Aaron Boodman  <aa@chromium.org>
      
              Expand NotificationCenter::checkPermission() interface.
              It now passes the full URL instead of just the origin.
      
              https://bugs.webkit.org/show_bug.cgi?id=34238
      
              * WebCoreSupport/WebDesktopNotificationsDelegate.cpp:
              (WebDesktopNotificationsDelegate::checkPermission):
              * WebCoreSupport/WebDesktopNotificationsDelegate.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54008 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      26c1f44e
  16. 08 Dec, 2009 1 commit
    • abarth@webkit.org's avatar
      2009-12-08 John Gregg <johnnyg@google.com> · e3da2374
      abarth@webkit.org authored
              Reviewed by Adam Barth.
      
              https://bugs.webkit.org/show_bug.cgi?id=31886
      
              Test for accessing the notificationCenter of a window after it's closed.
      
              * fast/notifications/notification-after-close-expected.txt: Added.
              * fast/notifications/notification-after-close.html: Added.
      2009-12-08  John Gregg  <johnnyg@google.com>
      
              Reviewed by Adam Barth.
      
              Inform the NotificationCenter when its window goes away in the same
              manner as other DOMWindow fields, and prevent invalid operations on
              it after that happens.
      
              As part of this, change the V8 bindings for notifications to call
              through the NotificationCenter rather than doing those operations
              itself.
      
              https://bugs.webkit.org/show_bug.cgi?id=31886
      
              Test: fast/notifications/notification-after-close.html
      
              * bindings/v8/custom/V8NotificationCenterCustom.cpp:
              (WebCore::CALLBACK_FUNC_DECL):
              * notifications/Notification.cpp:
              (WebCore::Notification::Notification):
              * notifications/NotificationCenter.cpp:
              (WebCore::NotificationCenter::checkPermission):
              (WebCore::NotificationCenter::requestPermission):
              * notifications/NotificationCenter.h:
              (WebCore::NotificationCenter::createHTMLNotification):
              (WebCore::NotificationCenter::createNotification):
              (WebCore::NotificationCenter::disconnectFrame):
              * page/DOMWindow.cpp:
              (WebCore::DOMWindow::clear):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51865 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e3da2374
  17. 23 Sep, 2009 1 commit
    • ggaren@apple.com's avatar
      JavaScriptCore: Added the ability to swap vectors with inline capacities, so you can · 521f64b8
      ggaren@apple.com authored
      store a vector with inline capacity in a hash table.
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-23
      Reviewed by Sam Weinig.
      
      * wtf/Vector.h:
      (WTF::swap):
      (WTF::VectorBuffer::swap):
      
      WebCore: Bring a little sanity to this crazy EventTarget world of ours
      https://bugs.webkit.org/show_bug.cgi?id=29701
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-23
      Reviewed by Sam Weinig.
      
      Lots of EventTarget refactoring to achieve a single shared implementation
      that fixes some of the performance and correctness bugs of the many individual
      implementations, and makes reasoning about EventTargets and EventListeners
      much easier.
              
      The basic design is this:
          - EventTarget manages a set of EventListeners.
          - onXXX EventListener attributes forward to standard EventTarget APIs.
          - Since the onXXX code is repetitive, it is usually done with macros
            of the form DEFINE_ATTRIBUTE_EVENT_LISTENER(attributeName).
          - EventTarget provides a shared implementation of dispatchEvent,
            which subclasses with special event dispatch rules, like Node, override.
          - To support Node, which lazily instantiates its EventTarget data,
            EventTarget has no data members, and instead makes a virtual call
            to get its data from wherever its subclass chose to store it.
                    
      Code that used to call dispatchEvent, passing an ExceptionCode paratmeter,
      even though no exception could be thrown, has been changed not to do so,
      to improve clarity and performance.
              
      Code that used to call a special dispatchXXXEvent function, which just
      turned around and called dispatchEvent, has been changed to call
      dispatchEvent, to improve clarity and performance.
      
      * WebCore.base.exp:
      * WebCore.xcodeproj/project.pbxproj: Another day in the life of a WebKit
      engineer.
      
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::isObservableThroughDOM): Updated for Node API change. Added
      "is not in the document but is firing event listeners" as a condition
      that makes a Node observable in the DOM, so that event listeners firing
      on removed nodes are not destroyed midstream. (This was a long-standing
      bug that was somewhat hidden by the old implementation's habit of
      copying the RegisteredEventListener vector before firing events, which
      would keep almost all the relevant objects from being destroyed.)
      
      * bindings/js/JSEventListener.cpp:
      (WebCore::JSEventListener::handleEvent): Removed the isWindowEvent flag
      because it was one of the most elaborately planned no-ops in the history
      of software crime, and one of the reasons clients thought they needed more
      than one dispatchEvent function even though they didn't.
      * bindings/js/JSEventListener.h:
      
      * bindings/js/JSDOMWindowCustom.cpp:
      (WebCore::JSDOMWindow::markChildren):
      (WebCore::JSMessagePort::markChildren):
      * bindings/js/JSNodeCustom.cpp:
      (WebCore::JSNode::markChildren):
      * bindings/js/JSAbstractWorkerCustom.cpp:
      * bindings/js/JSDOMApplicationCacheCustom.cpp:
      * bindings/js/JSDedicatedWorkerContextCustom.cpp:
      * bindings/js/JSEventSourceCustom.cpp:
      * bindings/js/JSMessagePortCustom.cpp:
      * bindings/js/JSSharedWorkerContextCustom.cpp: Removed.
      * bindings/js/JSWebSocketCustom.cpp:
      * bindings/js/JSWorkerContextCustom.cpp:
      (WebCore::JSWorkerContext::markChildren):
      * bindings/js/JSWorkerCustom.cpp:
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::JSXMLHttpRequest::markChildren):
      * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
      (WebCore::JSXMLHttpRequestUpload::markChildren): EventListener marking is
      now autogenerated. Classes that still have custom mark functions for other
      reasons now call a shared EventTarget API to mark their EventListeners.
      
      * bindings/objc/ObjCEventListener.h:
      * bindings/objc/ObjCEventListener.mm:
      (WebCore::ObjCEventListener::handleEvent): Bye bye isWindowEvent.
      
      * bindings/scripts/CodeGeneratorJS.pm: Autogeneration support for
      marking and invalidating event listeners.
      
      * dom/CharacterData.cpp:
      (WebCore::CharacterData::dispatchModifiedEvent):
      * dom/ContainerNode.cpp:
      (WebCore::ContainerNode::insertBefore):
      (WebCore::ContainerNode::replaceChild):
      (WebCore::willRemoveChild):
      (WebCore::ContainerNode::appendChild):
      (WebCore::dispatchChildInsertionEvents):
      (WebCore::dispatchChildRemovalEvents):
      * dom/Document.cpp:
      (WebCore::Document::removeAllEventListeners):
      (WebCore::Document::implicitClose):
      (WebCore::Document::setFocusedNode):
      (WebCore::Document::dispatchWindowEvent):
      (WebCore::Document::dispatchWindowLoadEvent):
      (WebCore::Document::finishedParsing):
      * dom/Document.h: Use dispatchEvent directly.
      
      * dom/Element.h: Moved a few event listener attributes down from Node,
      since they don't apply to all Nodes, only Elements.
      
      * dom/EventListener.h: Removed isWindowEvent parameter.
      
      * dom/EventNames.h: Added the "display" event name, so it works correctly
      with attribute macros, and for performance.
      
      * dom/EventTarget.cpp:
      (WebCore::forbidEventDispatch):
      (WebCore::allowEventDispatch):
      (WebCore::eventDispatchForbidden): Made this code (embarrasingly) thread
      safe, since it's now called on multiple threads. (Currently, we only forbid
      event dispatch on the main thread. If we ever want to forbid event dispatch
      on secondary threads, we can improve it then.)
      
      (WebCore::EventTarget::addEventListener):
      (WebCore::EventTarget::removeEventListener):
      (WebCore::EventTarget::setAttributeEventListener):
      (WebCore::EventTarget::getAttributeEventListener):
      (WebCore::EventTarget::clearAttributeEventListener):
      (WebCore::EventTarget::dispatchEvent):
      (WebCore::EventTarget::fireEventListeners):
      (WebCore::EventTarget::getEventListeners):
      (WebCore::EventTarget::removeAllEventListeners):
      * dom/EventTarget.h:
      (WebCore::FiringEventEndIterator::FiringEventEndIterator):
      (WebCore::EventTarget::ref):
      (WebCore::EventTarget::deref):
      (WebCore::EventTarget::markEventListeners):
      (WebCore::EventTarget::invalidateEventListeners):
      (WebCore::EventTarget::isFiringEventListeners):
      (WebCore::EventTarget::hasEventListeners): The ONE TRUE IMPLEMENTATION of
      EventTarget APIs, crafted from an amalgam of all the different versions
      we used to have. The most significant change here is that we no longer
      make a copy of an EventListener vector before firing the events in the
      vector -- instead, we use a reference to the original vector, along with
      a notification mechanism for the unlikely case when an EventListener is
      removed from the vector. This substantially reduces malloc, copying, and
      refcount overhead, and complexity.
      
      * dom/InputElement.cpp:
      (WebCore::InputElement::setValueFromRenderer):
      * dom/MessageEvent.h:
      (WebCore::MessageEvent::create): Use dispatchEvent directly.
      
      * dom/MessagePort.cpp:
      (WebCore::MessagePort::dispatchMessages):
      (WebCore::MessagePort::eventTargetData):
      (WebCore::MessagePort::ensureEventTargetData):
      * dom/MessagePort.h:
      (WebCore::MessagePort::setOnmessage):
      (WebCore::MessagePort::onmessage):
      * dom/MessagePort.idl: Removed custom EventTarget implementation.
      
      * dom/MutationEvent.h:
      (WebCore::MutationEvent::create): Added some default values so callers
      can construct MutationEvents more easily, without calling a custom dispatch
      function.
      
      * dom/Node.cpp:
      (WebCore::Node::addEventListener):
      (WebCore::Node::removeEventListener):
      (WebCore::Node::eventTargetData):
      (WebCore::Node::ensureEventTargetData):
      (WebCore::Node::handleLocalEvents):
      (WebCore::Node::dispatchEvent):
      (WebCore::Node::dispatchGenericEvent):
      (WebCore::Node::dispatchSubtreeModifiedEvent):
      (WebCore::Node::dispatchUIEvent):
      (WebCore::Node::dispatchKeyEvent):
      (WebCore::Node::dispatchMouseEvent):
      (WebCore::Node::dispatchWheelEvent):
      (WebCore::Node::dispatchFocusEvent):
      (WebCore::Node::dispatchBlurEvent):
      * dom/Node.h:
      (WebCore::Node::preDispatchEventHandler):
      (WebCore::Node::postDispatchEventHandler):
      * dom/Node.idl:
      * dom/NodeRareData.h:
      (WebCore::NodeRareData::eventTargetData):
      (WebCore::NodeRareData::ensureEventTargetData): Use the shared EventTarget
      interface, and call dispatchEvent directly instead of custom dispatchXXXEvent
      functions that just forwarded to dispatchEvent.
      
      * dom/RegisteredEventListener.cpp:
      * dom/RegisteredEventListener.h:
      (WebCore::RegisteredEventListener::RegisteredEventListener):
      (WebCore::operator==): This is just a simple struct now, since we no longer
      do a complicated copy / refCount / isRemoved dance just to honor the rule
      that an EventListener can be removed during event dispatch.
      
      * history/CachedFrame.cpp:
      (WebCore::CachedFrameBase::restore): Removed another custom dispatchEvent.
      
      * html/HTMLBodyElement.cpp:
      * html/HTMLBodyElement.h: Use the shared EventTarget API.
      
      * html/HTMLFormControlElement.cpp:
      (WebCore::HTMLFormControlElement::dispatchFormControlChangeEvent):
      (WebCore::HTMLFormControlElement::checkValidity):
      * html/HTMLFormElement.cpp:
      (WebCore::HTMLFormElement::handleLocalEvents):
      (WebCore::HTMLFormElement::prepareSubmit):
      (WebCore::HTMLFormElement::reset):
      * html/HTMLFormElement.h: Use the standard dispatchEvent API.
      
      * html/HTMLFrameSetElement.cpp:
      * html/HTMLFrameSetElement.h: Use the shared EventTarget API.
      
      * html/HTMLImageLoader.cpp:
      (WebCore::HTMLImageLoader::dispatchLoadEvent):
      * html/HTMLInputElement.cpp:
      (WebCore::HTMLInputElement::onSearch):
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::loadInternal):
      * html/HTMLScriptElement.cpp:
      (WebCore::HTMLScriptElement::dispatchLoadEvent):
      (WebCore::HTMLScriptElement::dispatchErrorEvent):
      * html/HTMLSourceElement.cpp:
      (WebCore::HTMLSourceElement::errorEventTimerFired):
      * html/HTMLTokenizer.cpp:
      (WebCore::HTMLTokenizer::notifyFinished): Use the standard dispatchEvent API.
      
      * inspector/InspectorDOMAgent.cpp:
      (WebCore::InspectorDOMAgent::handleEvent):
      * inspector/InspectorDOMAgent.h:
      * inspector/InspectorDOMStorageResource.cpp:
      (WebCore::InspectorDOMStorageResource::handleEvent):
      * inspector/InspectorDOMStorageResource.h:
      * loader/FrameLoader.cpp:
      (WebCore::FrameLoader::stopLoading):
      (WebCore::FrameLoader::canCachePageContainingThisFrame):
      (WebCore::FrameLoader::logCanCacheFrameDecision):
      (WebCore::HashChangeEventTask::performTask):
      (WebCore::FrameLoader::pageHidden): No more isWindowEvent.
      
      * loader/ImageDocument.cpp:
      (WebCore::ImageEventListener::handleEvent):
      * loader/appcache/ApplicationCacheGroup.cpp:
      (WebCore::CallCacheListenerTask::performTask):
      * loader/appcache/ApplicationCacheHost.cpp:
      (WebCore::ApplicationCacheHost::notifyDOMApplicationCache):
      * loader/appcache/ApplicationCacheHost.h:
      * loader/appcache/DOMApplicationCache.cpp:
      (WebCore::DOMApplicationCache::eventTargetData):
      (WebCore::DOMApplicationCache::ensureEventTargetData):
      * loader/appcache/DOMApplicationCache.h:
      * loader/appcache/DOMApplicationCache.idl: Switched to the standard
      EventTarget API. As a part of this, I switched this class from using a
      custom internal event name enumeration to using the standard EventNames.
      
      * notifications/Notification.cpp:
      (WebCore::Notification::eventTargetData):
      (WebCore::Notification::ensureEventTargetData):
      * notifications/Notification.h:
      (WebCore::Notification::scriptExecutionContext):
      * notifications/Notification.idl: Switched to the standard EventTarget API.
      
      * page/DOMWindow.cpp:
      (WebCore::PostMessageTimer::event):
      (WebCore::windowsWithUnloadEventListeners):
      (WebCore::windowsWithBeforeUnloadEventListeners):
      (WebCore::allowsBeforeUnloadListeners):
      (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
      (WebCore::DOMWindow::pendingUnloadEventListeners):
      (WebCore::DOMWindow::dispatchAllPendingUnloadEvents): Changed the "pending"
      unload / beforeunload listener tracker just to track which windows had
      such listeners, instead of actually keeping a copy of the listeners. Now,
      this code can use the standard EventTarget API.
      
      (WebCore::DOMWindow::~DOMWindow):
      (WebCore::DOMWindow::postMessageTimerFired):
      (WebCore::DOMWindow::addEventListener):
      (WebCore::DOMWindow::removeEventListener):
      (WebCore::DOMWindow::dispatchLoadEvent):
      (WebCore::DOMWindow::dispatchEvent):
      (WebCore::DOMWindow::removeAllEventListeners):
      (WebCore::DOMWindow::captureEvents):
      (WebCore::DOMWindow::releaseEvents):
      (WebCore::DOMWindow::eventTargetData):
      (WebCore::DOMWindow::ensureEventTargetData):
      * page/DOMWindow.h:
      * page/DOMWindow.idl: Use the standard EventTarget APIs.
      
      * page/EventHandler.cpp:
      (WebCore::EventHandler::canMouseDownStartSelect):
      (WebCore::EventHandler::canMouseDragExtendSelect):
      (WebCore::EventHandler::sendResizeEvent):
      (WebCore::EventHandler::sendScrollEvent): Use dispatchEvent directly.
      
      * page/EventSource.cpp:
      (WebCore::EventSource::endRequest):
      (WebCore::EventSource::didReceiveResponse):
      (WebCore::EventSource::parseEventStreamLine):
      (WebCore::EventSource::stop):
      (WebCore::EventSource::createMessageEvent):
      (WebCore::EventSource::eventTargetData):
      (WebCore::EventSource::ensureEventTargetData):
      * page/EventSource.h:
      * page/EventSource.idl: Use the standard EventTarget APIs.
      
      * page/FocusController.cpp:
      (WebCore::dispatchEventsOnWindowAndFocusedNode):
      (WebCore::FocusController::setFocusedFrame):
      * page/Frame.cpp:
      (WebCore::Frame::shouldClose):
      * page/Frame.h:
      * page/Page.cpp:
      (WebCore::networkStateChanged):
      * page/animation/AnimationController.cpp:
      (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
      * rendering/RenderListBox.cpp:
      (WebCore::RenderListBox::valueChanged):
      * rendering/RenderTextControl.cpp:
      (WebCore::RenderTextControl::selectionChanged):
      * rendering/RenderTextControlMultiLine.cpp:
      (WebCore::RenderTextControlMultiLine::subtreeHasChanged): Use dispatchEvent.
      
      * svg/SVGElement.cpp:
      (WebCore::hasLoadListener): Rewritten for new EventTarget API.
      
      * svg/SVGElementInstance.cpp:
      (WebCore::dummyEventTargetData):
      (WebCore::SVGElementInstance::addEventListener):
      (WebCore::SVGElementInstance::removeEventListener):
      (WebCore::SVGElementInstance::removeAllEventListeners):
      (WebCore::SVGElementInstance::dispatchEvent):
      (WebCore::SVGElementInstance::eventTargetData):
      (WebCore::SVGElementInstance::ensureEventTargetData): Use the EventTarget API.
      
      * svg/SVGElementInstance.h:
      * svg/SVGImageLoader.cpp:
      (WebCore::SVGImageLoader::dispatchLoadEvent):
      * svg/SVGScriptElement.cpp:
      (WebCore::SVGScriptElement::dispatchErrorEvent): Use dispatchEvent directly.
      
      * svg/SVGUseElement.cpp:
      (WebCore::SVGUseElement::transferEventListenersToShadowTree): Updated for
      new EventTarget API.
      
      * svg/animation/SVGSMILElement.cpp:
      (WebCore::ConditionEventListener::handleEvent): No more isWindowEvent.
      
      * websockets/WebSocket.cpp:
      (WebCore::ProcessWebSocketEventTask::create):
      (WebCore::ProcessWebSocketEventTask::performTask):
      (WebCore::ProcessWebSocketEventTask::ProcessWebSocketEventTask):
      (WebCore::WebSocket::didConnect):
      (WebCore::WebSocket::didReceiveMessage):
      (WebCore::WebSocket::didClose):
      (WebCore::WebSocket::eventTargetData):
      (WebCore::WebSocket::ensureEventTargetData):
      * websockets/WebSocket.h:
      * websockets/WebSocket.idl:
      * workers/AbstractWorker.cpp:
      (WebCore::AbstractWorker::eventTargetData):
      (WebCore::AbstractWorker::ensureEventTargetData):
      * workers/AbstractWorker.h:
      * workers/AbstractWorker.idl:
      * workers/DedicatedWorkerContext.cpp:
      * workers/DedicatedWorkerContext.h:
      * workers/DedicatedWorkerContext.idl:
      * workers/DefaultSharedWorkerRepository.cpp:
      (WebCore::SharedWorkerConnectTask::performTask):
      (WebCore::SharedWorkerScriptLoader::load):
      (WebCore::SharedWorkerScriptLoader::notifyFinished):
      * workers/SharedWorker.idl:
      * workers/SharedWorkerContext.cpp:
      (WebCore::createConnectEvent):
      * workers/SharedWorkerContext.h:
      * workers/SharedWorkerContext.idl:
      * workers/Worker.cpp:
      (WebCore::Worker::notifyFinished):
      * workers/Worker.h:
      * workers/Worker.idl:
      * workers/WorkerContext.cpp:
      (WebCore::WorkerContext::eventTargetData):
      (WebCore::WorkerContext::ensureEventTargetData):
      * workers/WorkerContext.h:
      * workers/WorkerContext.idl:
      * workers/WorkerMessagingProxy.cpp:
      (WebCore::MessageWorkerContextTask::performTask):
      (WebCore::MessageWorkerTask::performTask):
      (WebCore::WorkerExceptionTask::performTask):
      * xml/XMLHttpRequest.cpp:
      (WebCore::XMLHttpRequest::callReadyStateChangeListener):
      (WebCore::XMLHttpRequest::createRequest):
      (WebCore::XMLHttpRequest::abort):
      (WebCore::XMLHttpRequest::networkError):
      (WebCore::XMLHttpRequest::abortError):
      (WebCore::XMLHttpRequest::didSendData):
      (WebCore::XMLHttpRequest::didReceiveData):
      (WebCore::XMLHttpRequest::eventTargetData):
      (WebCore::XMLHttpRequest::ensureEventTargetData):
      * xml/XMLHttpRequest.h:
      * xml/XMLHttpRequest.idl:
      * xml/XMLHttpRequestProgressEvent.h:
      (WebCore::XMLHttpRequestProgressEvent::create):
      * xml/XMLHttpRequestUpload.cpp:
      (WebCore::XMLHttpRequestUpload::eventTargetData):
      (WebCore::XMLHttpRequestUpload::ensureEventTargetData):
      * xml/XMLHttpRequestUpload.h:
      * xml/XMLHttpRequestUpload.idl: Use new EventTarget API.
      
      WebKit/mac: Updated for a WebCore rename.
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-23
      Reviewed by Sam Weinig.
      
      * WebView/WebFrame.mm:
      (-[WebFrame _cacheabilityDictionary]):
      
      LayoutTests: Layout tests for event target sanitization.
              
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-23
      Reviewed by Sam Weinig.
      
      New tests for event dispatch:
      
      * fast/events/event-attributes-after-exception-expected.txt: Added.
      * fast/events/event-attributes-after-exception.html: Added.
      * fast/events/event-fire-order-expected.txt: Added.
      * fast/events/event-fire-order.html: Added.
      * fast/events/event-fired-after-removal-expected.txt: Added.
      * fast/events/event-fired-after-removal.html: Added.
              
      Fixed these tests:
      
      * fast/xmlhttprequest/xmlhttprequest-get-expected.txt: eventPhase should
      be AT_TARGET (2) when firing an event on an XHR, not INVALID (0).
      * http/tests/xmlhttprequest/infoOnProgressEvent-expected.txt: ditto
      
      * http/tests/xmlhttprequest/event-target-expected.txt:
      * http/tests/xmlhttprequest/event-target.html: Removing an event listener
      during event dispatch should prevent it from firing. (This test was backwards.)
              
      * svg/custom/loadevents-capturing.svg: Enhanced this test to tell you
      why it fails when it fails. Changed it to register runTest() (now named 
      reportResults()) using addEventListener() instead of the 'onload' attribute.
      The test relies on reportResults() running after handler(), so it needs
      to register reportResults() after handler().
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      521f64b8
  18. 15 Sep, 2009 1 commit
    • ggaren@apple.com's avatar
      Removed the jsEventListeners set from JSDOMGlobalObject, to simplify · f493144c
      ggaren@apple.com authored
      creation and destruction of JSDOMGlobalObject and event listeners.
              
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-15
      Reviewed by Sam Weinig.
      
      Added an abstract operator==() to EventListener, to replace the
      jsEventListeners set's role in determining if two event listeners are
      equal from the DOM's perspective.
              
      Added a type field to EventListener, and casting operations, to support
      operator==() and other abstract operations.
      
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/js/JSAbstractWorkerCustom.cpp:
      (WebCore::JSAbstractWorker::addEventListener):
      (WebCore::JSAbstractWorker::removeEventListener):
      * bindings/js/JSDOMApplicationCacheCustom.cpp:
      (WebCore::JSDOMApplicationCache::addEventListener):
      (WebCore::JSDOMApplicationCache::removeEventListener):
      * bindings/js/JSDOMGlobalObject.cpp:
      * bindings/js/JSDOMGlobalObject.h:
      * bindings/js/JSDOMWindowCustom.cpp:
      (WebCore::JSDOMWindow::addEventListener):
      (WebCore::JSDOMWindow::removeEventListener):
      * bindings/js/JSDesktopNotificationsCustom.cpp:
      (WebCore::JSNotification::addEventListener):
      (WebCore::):
      * bindings/js/JSEventListener.cpp:
      (WebCore::JSEventListener::JSEventListener):
      (WebCore::JSEventListener::~JSEventListener):
      (WebCore::JSEventListener::markJSFunction):
      (WebCore::JSEventListener::handleEvent):
      (WebCore::JSEventListener::reportError):
      (WebCore::JSEventListener::operator==):
      * bindings/js/JSEventListener.h:
      (WebCore::JSEventListener::cast):
      * bindings/js/JSEventSourceCustom.cpp:
      (WebCore::JSEventSource::addEventListener):
      (WebCore::JSEventSource::removeEventListener):
      * bindings/js/JSMessagePortCustom.cpp:
      (WebCore::JSMessagePort::addEventListener):
      (WebCore::JSMessagePort::removeEventListener):
      * bindings/js/JSNodeCustom.cpp:
      (WebCore::JSNode::addEventListener):
      (WebCore::JSNode::removeEventListener):
      * bindings/js/JSSVGElementInstanceCustom.cpp:
      (WebCore::JSSVGElementInstance::addEventListener):
      (WebCore::JSSVGElementInstance::removeEventListener):
      * bindings/js/JSWorkerContextCustom.cpp:
      (WebCore::JSWorkerContext::addEventListener):
      (WebCore::JSWorkerContext::removeEventListener):
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::JSXMLHttpRequest::addEventListener):
      (WebCore::JSXMLHttpRequest::removeEventListener):
      * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
      (WebCore::JSXMLHttpRequestUpload::addEventListener):
      (WebCore::JSXMLHttpRequestUpload::removeEventListener):
      * bindings/objc/ObjCEventListener.h:
      (WebCore::ObjCEventListener::cast):
      * bindings/objc/ObjCEventListener.mm:
      (WebCore::ObjCEventListener::ObjCEventListener):
      (WebCore::ObjCEventListener::operator==):
      * dom/EventListener.h:
      (WebCore::EventListener::):
      (WebCore::EventListener::type):
      (WebCore::EventListener::EventListener):
      * dom/MessagePort.cpp:
      (WebCore::MessagePort::addEventListener):
      (WebCore::MessagePort::removeEventListener):
      * dom/Node.cpp:
      (WebCore::Node::removeEventListener):
      * inspector/InspectorDOMAgent.cpp:
      (WebCore::InspectorDOMAgent::InspectorDOMAgent):
      (WebCore::InspectorDOMAgent::mainFrameDocument):
      (WebCore::InspectorDOMAgent::operator==):
      * inspector/InspectorDOMAgent.h:
      (WebCore::InspectorDOMAgent::cast):
      * loader/ImageDocument.cpp:
      (WebCore::ImageEventListener::cast):
      (WebCore::ImageEventListener::ImageEventListener):
      (WebCore::ImageEventListener::operator==):
      * loader/appcache/DOMApplicationCache.cpp:
      (WebCore::DOMApplicationCache::addEventListener):
      (WebCore::DOMApplicationCache::removeEventListener):
      * notifications/Notification.cpp:
      (WebCore::Notification::removeEventListener):
      * page/DOMWindow.cpp:
      (WebCore::DOMWindow::removeEventListener):
      * page/EventSource.cpp:
      (WebCore::EventSource::addEventListener):
      (WebCore::EventSource::removeEventListener):
      * svg/animation/SVGSMILElement.cpp:
      (WebCore::ConditionEventListener::cast):
      (WebCore::ConditionEventListener::ConditionEventListener):
      (WebCore::ConditionEventListener::operator==):
      (WebCore::ConditionEventListener::handleEvent):
      * workers/AbstractWorker.cpp:
      (WebCore::AbstractWorker::addEventListener):
      (WebCore::AbstractWorker::removeEventListener):
      * workers/WorkerContext.cpp:
      (WebCore::WorkerContext::addEventListener):
      (WebCore::WorkerContext::removeEventListener):
      * xml/XMLHttpRequest.cpp:
      (WebCore::XMLHttpRequest::addEventListener):
      (WebCore::XMLHttpRequest::removeEventListener):
      * xml/XMLHttpRequestUpload.cpp:
      (WebCore::XMLHttpRequestUpload::addEventListener):
      (WebCore::XMLHttpRequestUpload::removeEventListener):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48402 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f493144c
  19. 26 Aug, 2009 1 commit
  20. 11 Aug, 2009 1 commit
    • atwilson@chromium.org's avatar
      JavaScriptCore: Desktop Notifications API · bb49055e
      atwilson@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=25463
      
      Patch by John Gregg <johnnyg@google.com> on 2009-08-11
      Reviewed by Maciej Stachowiak.
      
      Adds ENABLE_NOTIFICATION flag.
      
      * Configurations/FeatureDefines.xcconfig:
      * wtf/Platform.h:
      
      WebCore: Desktop Notifications API
      https://bugs.webkit.org/show_bug.cgi?id=25463
      
      Patch by John Gregg <johnnyg@google.com> on 2009-08-11
      Reviewed by Maciej Stachowiak.
      
      Adds an implementation of desktop notifications, behind the compile-time
      flag ENABLE(NOTIFICATIONS).  This code simply relays calls on the JavaScript
      API through a NotificationProvider interface, which must provide the services
      to actually notify the user and manage the desktop.  This provider is injected
      into WebKit through the ChromeClient for normal page contexts and through the
      WorkerThread for worker contexts.
      
      A permissions API is defined on a per-origin basis, which allows a web page
      to check if its origin is allowed to show desktop notifications, and to request
      permission for its origin.
      
      * Configurations/FeatureDefines.xcconfig:
      * DerivedSources.cpp:
      * DerivedSources.make:
      * GNUmakefile.am:
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.vcproj/WebCoreCommon.vsprops:
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/js/JSDOMWindowCustom.cpp:
      * bindings/js/JSDesktopNotificationsCustom.cpp: Added.
      (WebCore::JSNotificationCenter::requestPermission):
      (WebCore::JSNotification::addEventListener):
      (WebCore::JSNotification::removeEventListener):
      * bindings/js/JSEventTarget.cpp:
      (WebCore::toJS):
      (WebCore::toEventTarget):
      * dom/EventTarget.cpp:
      (WebCore::EventTarget::toNotification):
      * dom/EventTarget.h:
      * loader/EmptyClients.h:
      (WebCore::EmptyChromeClient::notificationPresenter):
      * notifications: Added.
      * notifications/Notification.cpp: Added.
      (WebCore::Notification::Notification):
      (WebCore::Notification::~Notification):
      (WebCore::Notification::show):
      (WebCore::Notification::cancel):
      (WebCore::Notification::ondisplay):
      (WebCore::Notification::setOndisplay):
      (WebCore::Notification::onerror):
      (WebCore::Notification::setOnerror):
      (WebCore::Notification::onclose):
      (WebCore::Notification::setOnclose):
      (WebCore::Notification::getAttributeEventListener):
      (WebCore::Notification::setAttributeEventListener):
      (WebCore::Notification::clearAttributeEventListener):
      (WebCore::Notification::dispatchDisplayEvent):
      (WebCore::Notification::dispatchErrorEvent):
      (WebCore::Notification::dispatchCloseEvent):
      (WebCore::Notification::addEventListener):
      (WebCore::Notification::removeEventListener):
      (WebCore::Notification::handleEvent):
      (WebCore::Notification::dispatchEvent):
      * notifications/Notification.h: Added.
      (WebCore::Notification::create):
      (WebCore::Notification::isHTML):
      (WebCore::Notification::url):
      (WebCore::Notification::contents):
      (WebCore::Notification::scriptExecutionContext):
      (WebCore::Notification::toNotification):
      (WebCore::Notification::refEventTarget):
      (WebCore::Notification::derefEventTarget):
      * notifications/Notification.idl: Added.
      * notifications/NotificationCenter.cpp: Added.
      (WebCore::NotificationCenter::NotificationCenter):
      (WebCore::NotificationCenter::checkPermission):
      (WebCore::NotificationCenter::requestPermission):
      * notifications/NotificationCenter.h: Added.
      (WebCore::NotificationCenter::create):
      (WebCore::NotificationCenter::createHTMLNotification):
      (WebCore::NotificationCenter::createNotification):
      (WebCore::NotificationCenter::context):
      (WebCore::NotificationCenter::presenter):
      * notifications/NotificationCenter.idl: Added.
      * notifications/NotificationContents.h: Added.
      (WebCore::NotificationContents::NotificationContents):
      (WebCore::NotificationContents::icon):
      (WebCore::NotificationContents::title):
      (WebCore::NotificationContents::body):
      * notifications/NotificationPresenter.h: Added.
      (WebCore::NotificationPresenter::):
      (WebCore::NotificationPresenter::~NotificationPresenter):
      * page/Chrome.cpp:
      (WebCore::Chrome::notificationPresenter):
      * page/Chrome.h:
      * page/ChromeClient.h:
      * page/DOMWindow.cpp:
      (WebCore::DOMWindow::clear):
      (WebCore::DOMWindow::webkitNotifications):
      * page/DOMWindow.h:
      * page/DOMWindow.idl:
      * page/Page.h:
      * workers/WorkerContext.cpp:
      (WebCore::WorkerContext::~WorkerContext):
      (WebCore::WorkerContext::webkitNotifications):
      * workers/WorkerContext.h:
      * workers/WorkerContext.idl:
      * workers/WorkerThread.h:
      (WebCore::WorkerThread::getNotificationPresenter):
      (WebCore::WorkerThread::setNotificationPresenter):
      
      WebKit/mac: Desktop Notifications API
      https://bugs.webkit.org/show_bug.cgi?id=25643
      
      Patch by John Gregg <johnnyg@google.com> on 2009-08-11
      Reviewed by Maciej Stachowiak.
      
      Adds ENABLE_NOTIFICATION flag.
      
      * Configurations/FeatureDefines.xcconfig:
      
      WebKit/win: Desktop Notifications API
      https://bugs.webkit.org/show_bug.cgi?id=25643
      
      Patch by John Gregg <johnnyg@google.com> on 2009-08-11
      Reviewed by Maciej Stachowiak.
      
      Adds test hooks for notification features to WebCoreSupport for
      use in DumpRenderTree.
      
      * Interfaces/IWebDesktopNotificationsDelegate.idl: Added.
      * Interfaces/IWebUIDelegate.idl:
      * Interfaces/WebKit.idl:
      * WebCoreSupport/WebChromeClient.cpp:
      (WebChromeClient::WebChromeClient):
      * WebCoreSupport/WebChromeClient.h:
      (WebChromeClient::notificationPresenter):
      * WebCoreSupport/WebDesktopNotificationsDelegate.cpp: Added.
      (NotificationCOMWrapper::create):
      (NotificationCOMWrapper::NotificationCOMWrapper):
      (NotificationCOMWrapper::QueryInterface):
      (NotificationCOMWrapper::AddRef):
      (NotificationCOMWrapper::Release):
      (NotificationCOMWrapper::isHTML):
      (NotificationCOMWrapper::contentsURL):
      (NotificationCOMWrapper::iconURL):
      (NotificationCOMWrapper::title):
      (NotificationCOMWrapper::text):
      (NotificationCOMWrapper::notifyDisplay):
      (NotificationCOMWrapper::notifyError):
      (NotificationCOMWrapper::notifyClose):
      (WebDesktopNotificationsDelegate::WebDesktopNotificationsDelegate):
      (WebDesktopNotificationsDelegate::show):
      (WebDesktopNotificationsDelegate::cancel):
      (WebDesktopNotificationsDelegate::notificationObjectDestroyed):
      (WebDesktopNotificationsDelegate::requestPermission):
      (WebDesktopNotificationsDelegate::checkPermission):
      (WebDesktopNotificationsDelegate::notificationDelegate):
      * WebCoreSupport/WebDesktopNotificationsDelegate.h: Added.
      * WebCoreSupport/WebInspectorDelegate.h:
      (WebInspectorDelegate::desktopNotificationsDelegate):
      * WebKit.vcproj/Interfaces.vcproj:
      * WebKit.vcproj/WebKit.vcproj:
      
      WebKitTools: Add support for desktop notifications API to DumpRenderTree,
      and support for ENABLE_NOTIFICATIONS flag to build-webkit.
      
      Patch by John Gregg <johnnyg@google.com> on 2009-08-11
      Reviewed by Maciej Stachowiak.
      
      * DumpRenderTree/LayoutTestController.cpp:
      (grantDesktopNotificationPermissionCallback):
      (LayoutTestController::staticFunctions):
      (LayoutTestController::grantDesktopNotificationPermission):
      (LayoutTestController::checkDesktopNotificationPermission):
      * DumpRenderTree/LayoutTestController.h:
      * DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp: Added.
      (DRTDesktopNotificationPresenter::DRTDesktopNotificationPresenter):
      (DRTDesktopNotificationPresenter::QueryInterface):
      (DRTDesktopNotificationPresenter::AddRef):
      (DRTDesktopNotificationPresenter::Release):
      (DRTDesktopNotificationPresenter::showDesktopNotification):
      (DRTDesktopNotificationPresenter::cancelDesktopNotification):
      (DRTDesktopNotificationPresenter::notificationDestroyed):
      (DRTDesktopNotificationPresenter::checkNotificationPermission):
      (DRTDesktopNotificationPresenter::requestNotificationPermission):
      * DumpRenderTree/win/DRTDesktopNotificationPresenter.h: Added.
      * DumpRenderTree/win/DumpRenderTree.vcproj:
      * DumpRenderTree/win/UIDelegate.cpp:
      (UIDelegate::UIDelegate):
      (UIDelegate::desktopNotificationsDelegate):
      * DumpRenderTree/win/UIDelegate.h:
      * Scripts/build-webkit:
      
      LayoutTests: Desktop Notifications API
      https://bugs.webkit.org/show_bug.cgi?id=25463
      
      Patch by John Gregg <johnnyg@google.com> on 2009-08-11
      Reviewed by Maciej Stachowiak.
      
      Adding layout tests for desktop notifications.  Currently these
      are all disabled because the flag for this feature is set to 0.
      
      * fast/notifications: Added.
      * fast/notifications/notifications-check-permission-expected.txt: Added.
      * fast/notifications/notifications-check-permission.html-disabled: Added.
       - Validates that checking permission for notifications works correctly.
      * fast/notifications/notifications-display-close-events-expected.txt: Added.
      * fast/notifications/notifications-display-close-events.html-disabled: Added.
       - Validates that the display and close events are fired correctly.
      * fast/notifications/notifications-double-show-expected.txt: Added.
      * fast/notifications/notifications-double-show.html-disabled: Added.
       - Validates that the same notification object cannot be shown twice.
      * fast/notifications/notifications-request-permission-expected.txt: Added.
      * fast/notifications/notifications-request-permission.html-disabled: Added.
       - Validates that requesting permission works correctly.
      * fast/notifications/notifications-with-permission-expected.txt: Added.
      * fast/notifications/notifications-with-permission.html-disabled: Added.
       - Validates that, with permission, showing a notification works correctly.
      * fast/notifications/notifications-without-permission-expected.txt: Added.
      * fast/notifications/notifications-without-permission.html-disabled: Added.
       - Validates that, without permission, showing a notification fails.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47056 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb49055e