2014-03-19 Claudio Saavedra [GStreamer] Clean timeout source ids https://bugs.webkit.org/show_bug.cgi?id=130450 Reviewed by Philippe Normand. Sources IDs need to be cleaned up if the callback removes the source, otherwise we'll be attempting to remove an empty source at some point. * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: (webKitMediaVideoSrcStart): Clean the source id. (webKitMediaAudioSrcStart): Ditto. (webKitMediaVideoSrcSeekMainCb): Ditto. (webKitMediaAudioSrcSeekMainCb): Ditto. 2014-03-12 Carlos Garcia Campos [GTK] [Stable] deadlock in gobject introspection https://bugs.webkit.org/show_bug.cgi?id=125651 Reviewed by Sergio Villar Senin. Make the default SoupNetworkSession a destroyable object to ensure the wrapped SoupSession is finalized when the process finishes. This is important because soup cancels any ongoing connection when finalized. * platform/network/soup/SoupNetworkSession.cpp: (WebCore::SoupNetworkSession::defaultSession): Do not use NeverDestroyed. * platform/network/soup/SoupNetworkSession.h: 2014-03-10 Mario Sanchez Prada [GTK] Add support for Geoclue2 https://bugs.webkit.org/show_bug.cgi?id=120185 Reviewed by Carlos Garcia Campos. Patch by Anton Obzhirov and Mario Sanchez Prada Implement a new geolocation provider based on Geoclue2, which will only be used if a good enough version of Geoclue2 is found at configure time. * GNUmakefile.am: Generate C-API for accessing the D-Bus API provided by Geoclue2, and place it in DerivedSources. * GNUmakefile.list.am: Add GeolocationProviderGeoclue2.cpp, and include the generated proxy files when using Geoclue2. * PlatformGTK.cmake: Likewise, for CMake based builds. * platform/geoclue/GeolocationProviderGeoclue.h: Modified to accomodate the needs both for Geoclue and Geoclue2 providers. * platform/geoclue/GeolocationProviderGeoclue1.cpp: Renamed from Source/WebCore/platform/geoclue/GeolocationProviderGeoclue.cpp. (GeolocationProviderGeoclue::getPositionCallback): (GeolocationProviderGeoclue::positionChangedCallback): (GeolocationProviderGeoclue::createGeocluePositionCallback): (GeolocationProviderGeoclue::geoclueClientSetRequirementsCallback): (GeolocationProviderGeoclue::createGeoclueClientCallback): (GeolocationProviderGeoclue::GeolocationProviderGeoclue): (GeolocationProviderGeoclue::~GeolocationProviderGeoclue): (GeolocationProviderGeoclue::startUpdating): (GeolocationProviderGeoclue::stopUpdating): (GeolocationProviderGeoclue::setEnableHighAccuracy): (GeolocationProviderGeoclue::initializeGeoclueClient): (GeolocationProviderGeoclue::initializeGeocluePosition): (GeolocationProviderGeoclue::updateClientRequirements): (GeolocationProviderGeoclue::positionChanged): (GeolocationProviderGeoclue::errorOccurred): * platform/geoclue/GeolocationProviderGeoclue2.cpp: Added. (GeolocationProviderGeoclue::GeolocationProviderGeoclue): (GeolocationProviderGeoclue::~GeolocationProviderGeoclue): (GeolocationProviderGeoclue::startUpdating): (GeolocationProviderGeoclue::stopUpdating): (GeolocationProviderGeoclue::setEnableHighAccuracy): (GeolocationProviderGeoclue::createGeoclueManagerProxyCallback): (GeolocationProviderGeoclue::getGeoclueClientCallback): (GeolocationProviderGeoclue::createGeoclueClientProxyCallback): (GeolocationProviderGeoclue::startClientCallback): (GeolocationProviderGeoclue::locationUpdatedCallback): (GeolocationProviderGeoclue::createLocationProxyCallback): (GeolocationProviderGeoclue::startGeoclueClient): (GeolocationProviderGeoclue::updateLocation): (GeolocationProviderGeoclue::errorOccurred): (GeolocationProviderGeoclue::updateClientRequirements): 2014-03-07 Carlos Garcia Campos [GTK] Timeout sources not correctly removed https://bugs.webkit.org/show_bug.cgi?id=129877 Reviewed by Philippe Normand. Set source ID variables to 0 after removing the sources from the context. Also give a name to the sources. * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp: (WebCore::TrackPrivateBaseGStreamer::disconnect): (WebCore::TrackPrivateBaseGStreamer::activeChanged): (WebCore::TrackPrivateBaseGStreamer::tagsChanged): (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfActiveChanged): 2014-03-03 Lorenzo Tilve Optimize StylePropertiesSet::findPropertyIndex() to improve CSS properties performance https://bugs.webkit.org/show_bug.cgi?id=129605 Reviewed by Andreas Kling. Merged from Blink (patch by Mikhail Pozdnyakov): https://src.chromium.org/viewvc/blink?view=revision&revision=167325 Avoid checking whether 'StylePropertiesSet' is mutable and accesing directly to its data members to achieve performance improvements Before the optimization applied: mean: 3064.8337171934063 runs/s median: 3097.5899379343855 runs/s stdev: 66.89274074044187 runs/s min: 2891.7479324362585 runs/s max: 3113.288683440125 runs/s After the optimization applied: mean: 3343.8356114138105 runs/s median: 3356.25682957446 runs/s stdev: 36.297533087489036 runs/s min: 3238.5468032264243 runs/s max: 3368.664837531425 runs/s Performance gain for the average value is approx. 9.1%, in the range of the 10% - 8.2% for the min and max measured values (Linux desktop x64). * css/StyleProperties.cpp: (WebCore::ImmutableStyleProperties::findPropertyIndex): (WebCore::MutableStyleProperties::findPropertyIndex): * css/StyleProperties.h: (WebCore::toMutableStyleProperties): (WebCore::toImmutableStyleProperties): (WebCore::StyleProperties::findPropertyIndex): 2014-03-03 Tomas Popela [GTK] webkit_dom_range_compare_boundary_points fails when 0 is passed as how parameter https://bugs.webkit.org/show_bug.cgi?id=129145 Reviewed by Carlos Garcia Campos. While generating GObject DOM API the generator should skip non pointer types while generating the g_return_val_if_fail macro. This will avoid the situation when Range.START_TO_START is defined as 0, thus the webkit_dom_range_compare_boundary_points function will fail everytime it is called with 0 as how value. * bindings/scripts/CodeGeneratorGObject.pm: (GenerateFunction): 2014-02-06 Koop Mast Use system default compiler instead of gcc, as final fall through. https://bugs.webkit.org/show_bug.cgi?id=126773 Reviewed by Alexey Proskuryakov. * dom/make_names.pl: 2014-02-17 Carlos Garcia Campos Unreviewed. Fix make distcheck. * GNUmakefile.list.am: Add missing header files. 2014-02-11 Piotr Grad [GStreamer] High playback rate causes crash https://bugs.webkit.org/show_bug.cgi?id=128453 Reviewed by Philippe Normand. To high playback rate passed to GStreamer was causing crash. Added guard in setRate method. Test: media/video-extreme-playbackrate-crash.html * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::setRate): 2014-02-10 Carlos Garcia Campos [GLIB] Add GUniqueOutPtr and use it instead of GOwnPtr https://bugs.webkit.org/show_bug.cgi?id=127554 Reviewed by Gustavo Noronha Silva. Use GUniqueOutPtr instead of GOwnPtr. * GNUmakefile.list.am: * PlatformEfl.cmake: * PlatformGTK.cmake: * platform/audio/gstreamer/AudioDestinationGStreamer.cpp: (WebCore::AudioDestinationGStreamer::handleMessage): * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp: (WebCore::AudioFileReader::handleMessage): * platform/glib/BatteryProviderUPower.cpp: (BatteryProviderUPower::startUpdating): * platform/graphics/gstreamer/GStreamerUtilities.cpp: (WebCore::initializeGStreamer): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::handleMessage): * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp: (WebCore::TrackPrivateBaseGStreamer::getTag): * platform/graphics/gtk/ImageBufferGtk.cpp: (WebCore::encodeImage): (WebCore::ImageBuffer::toDataURL): * platform/graphics/gtk/ImageGtk.cpp: (WebCore::loadResourceSharedBuffer): * platform/gtk/DataObjectGtk.cpp: (WebCore::DataObjectGtk::setURIList): * platform/gtk/FileSystemGtk.cpp: (WebCore::readFromFile): * platform/gtk/GamepadsGtk.cpp: (WebCore::GamepadDeviceGtk::readCallback): * platform/gtk/GtkInputMethodFilter.cpp: (WebCore::GtkInputMethodFilter::handlePreeditChanged): * platform/gtk/PasteboardHelper.cpp: (WebCore::PasteboardHelper::fillDataObjectFromDropData): * platform/gtk/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::systemFont): * platform/gtk/SharedBufferGtk.cpp: (WebCore::SharedBuffer::createWithContentsOfFile): * platform/network/gtk/CredentialBackingStore.cpp: (WebCore::credentialForChallengeAsyncReadyCallback): * platform/network/soup/GOwnPtrSoup.cpp: Removed. * platform/network/soup/GOwnPtrSoup.h: Removed. * platform/network/soup/ResourceHandleSoup.cpp: (WebCore::redirectSkipCallback): (WebCore::nextMultipartResponsePartCallback): (WebCore::sendRequestCallback): (WebCore::addFileToSoupMessageBody): (WebCore::createSoupRequestAndMessageForHandle): (WebCore::readCallback): * platform/network/soup/SocketStreamHandleSoup.cpp: (WebCore::SocketStreamHandle::platformSend): (WebCore::SocketStreamHandle::platformClose): (WebCore::connectedCallback): (WebCore::readReadyCallback): * platform/network/soup/SoupNetworkSession.cpp: (WebCore::SoupNetworkSession::httpProxy): 2014-02-09 Carlos Garnacho [GTK] Add touch-events related code to build https://bugs.webkit.org/show_bug.cgi?id=98931 Reviewed by Carlos Garcia Campos. Tests in fast/events/touch have been enabled on GTK+ now that touch support is implemented, and thus all expected bits are there. * platform/gtk/GtkTouchContextHelper.cpp: * platform/gtk/GtkTouchContextHelper.h: Add helper object to track all touchpoints, handy when creating WebTouchEvents. * GNUmakefile.list.am: * PlatformGTK.cmake: * bindings/gobject/GNUmakefile.am: Add touch related code and idls to build, those are necessary now that GTK+ implements touch events. 2014-02-05 Ryuan Choi MediaPlayerPrivateGStreamerBase should have virtual destructor https://bugs.webkit.org/show_bug.cgi?id=128238 Reviewed by Carlos Garcia Campos. MediaPlayerPrivateGStreamer inherit MediaPlayerPrivateGStreamerBase. So MediaPlayerPrivateGStreamerBase should have virtual destructor. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Made destructor as virtual. 2014-02-03 Radu Stavila REGRESSION (r163018): Can’t scroll in https://bugs.webkit.org/show_bug.cgi?id=127640 Reviewed by Simon Fraser.