commit libQtWebKit4.2222 for openSUSE:13.1:Update
![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package libQtWebKit4.2222 for openSUSE:13.1:Update checked in at 2013-11-11 12:28:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:13.1:Update/libQtWebKit4.2222 (Old) and /work/SRC/openSUSE:13.1:Update/.libQtWebKit4.2222.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libQtWebKit4.2222" Changes: -------- New Changes file: --- /dev/null 2013-10-11 12:16:15.204037506 +0200 +++ /work/SRC/openSUSE:13.1:Update/.libQtWebKit4.2222.new/libQtWebKit4.changes 2013-11-11 12:28:37.000000000 +0100 @@ -0,0 +1,360 @@ +------------------------------------------------------------------- +Fri Nov 8 13:34:00 UTC 2013 - dvaleev@suse.com + +- Apply "WebCore workaround for QtWebkit: do not build with -g, + but with -g1" for powerpc as well + (04_enable_debug_information.diff) + +------------------------------------------------------------------- +Thu Oct 24 11:04:08 UTC 2013 - dmueller@suse.com + +- Dinar wants ppc64 to be built with -g1 + +------------------------------------------------------------------- +Sat Oct 19 11:30:16 UTC 2013 - dmueller@suse.com + +- reduce memory consumption on ARM/AArch64 to fix build + +------------------------------------------------------------------- +Sun Sep 29 21:21:01 UTC 2013 - hrvoje.senjan@gmail.com + +- Added bison3.patch, fixes compilation with bison3 (webkit#119798) + +------------------------------------------------------------------- +Tue Sep 24 16:26:08 UTC 2013 - alarrosa@suse.com + +- Fix the license declaration in the spec file (bnc#739670) + +------------------------------------------------------------------- +Tue Sep 3 23:04:29 UTC 2013 - hrvoje.senjan@gmail.com + +- Update to 2.3.3 + * Bugfix release + * QtWebKit displays the border radii (radius) of a button very ugly + (webkit#28113) + * Resource leak related to gstreamer and videos (webkit#109350) + * Fix minor memory leak in slot execution + * Potential use-after-free with an event fired at a + HTMLMediaElement which is currently being deleted (webkit#117466) + +------------------------------------------------------------------- +Thu Aug 22 21:59:02 UTC 2013 - hrvoje.senjan@gmail.com + +- Dropped no-jit.patch, jit and assembler are now disabled on all + arches except x86_64, and that's defined through DEFINE passed + to build script as both require SSE2 instructions (bnc#837063) +- Export LDFLAGS -Wl,--as-needed for reduced linkage +- Added %{optflags} to qwebview building + +------------------------------------------------------------------- +Thu Aug 15 10:40:51 UTC 2013 - toddrme2178@gmail.com + +- Add Provides: qtwebkit since it is needed by some outside + packages + +------------------------------------------------------------------- +Wed Aug 7 12:58:33 UTC 2013 - hrvoje.senjan@gmail.com + +- Postpone gstreamer 1.0 support for next release since it breaks + phonon's gstreamer 0.10 backend, and 1.0 version is not in sight + +------------------------------------------------------------------- +Thu Aug 1 09:26:22 UTC 2013 - speilicke@suse.com + +- Buildrequire python-xml on SLE and libwebp everywhere + +------------------------------------------------------------------- +Sat Jul 13 22:58:59 UTC 2013 - hrvoje.senjan@gmail.com + +- Update to 2.3.2 + * Bugfix release + * Fix a crash in QtPixmapRuntime. (webkit#117193) + * Fix a crash under ~PingLoader when the QNAM on the page has + been destroyed. (webkit#116035) + * Fix crash when loading link to audio file (webkit#15794) + * Fix crash when calling QWebFrame::evaluateJavaScript + (webkit#113434) + * Assert in JSC::Heap::unprotect when closing facebook.com website + (webkit#115058) + * Add support for tiled shadow blur (webkit#90082) + * Late-loading stylesheets can cause composited layers to be blank + (webkit103773) + +------------------------------------------------------------------- +Thu Jul 4 06:42:25 UTC 2013 - nico.kruber@gmail.com + +- fix missing plugins.pri in qwebview sources + +------------------------------------------------------------------- +Wed Jul 3 13:23:48 UTC 2013 - dmueller@suse.com + +- update to qwebview from 4.8.5 + +------------------------------------------------------------------- +Fri Jun 21 05:08:40 UTC 2013 - crrodriguez@opensuse.org + +- build with large file support in 32 bit archs + +------------------------------------------------------------------- +Mon May 13 08:09:39 UTC 2013 - schwab@suse.de + +- aarch64-support.diff: add support for aarch64 +- no-jit.patch: no JIT on aarch64 and powerpc + +------------------------------------------------------------------- +Tue Apr 30 19:10:16 UTC 2013 - hrvoje.senjan@gmail.com + +- Disable GStreamer 1.0 for 12.3, causes issues with e.g. Amarok + +------------------------------------------------------------------- +Thu Apr 18 16:08:42 UTC 2013 - hrvoje.senjan@gmail.com + +- Update to version 2.3.1 + * Bugfix release +- Dropped libQtWebKit4-gcc48.patch, included upstream + +------------------------------------------------------------------- +Sat Apr 6 19:19:57 UTC 2013 - hrvoje.senjan@gmail.com + +- Add libQtWebKit4-gcc48.patch, fixes build with GCC 4.8 +- Tweak the patches, so it also saves memory on + arm + +------------------------------------------------------------------- +Tue Apr 2 14:06:42 UTC 2013 - hrvoje.senjan@gmail.com + +- Added buffer-ranges.patch, fixes buffering with gstreamer 1.0 + (webkit#105319) + and MediaPlayerPrivateGStreamer-should-take-ownership-of-the-playbin.patch + (webkit#107445) + +------------------------------------------------------------------- +Sat Mar 30 16:00:03 UTC 2013 - asterios.dramis@gmail.com + +- Added libxslt-devel as build requirement (QtWebKit can use it to properly + display xml files - see rh#919778). +- Enabled WebP support (added libwebp-devel as build requirement). + +------------------------------------------------------------------- +Tue Mar 19 11:56:19 UTC 2013 - idonmez@suse.com + +- Enable GStreamer 1.0 for also openSUSE 12.3 + +------------------------------------------------------------------- +Sat Mar 16 13:31:52 UTC 2013 - hrvoje.senjan@gmail.com + +- Update to version 2.3.0 (bnc#769197) + * Lots of performance improvements and reduced memory usage. + * Incremental image loading by prefering WebKit image-decoders over + Qt image decoders + * Interface for automatic spell-checker + * Better support for "BLOB" URLs + * WebGL support + * CSS shaders/filters support + * CSS regions/exclusions support +- Add upstream patch for gstreamer 1.0 support, and enable it + for >= 13.1 +- Drop obsolete patches: avoid-rpath.diff, bison-26.diff, + build-with-glib-231.diff, fix_infinite_loop_bwo97258.diff, + 0001_fix_symbols_visibility_for_webcore.diff and + 01_lflags_as-needed.diff + +------------------------------------------------------------------- +Wed Feb 6 16:02:59 UTC 2013 - cornelis@solcon.nl + +- Removed webkit-qtwebkit-2.2tp1-qt46.patch to solve bnc#776525 + +------------------------------------------------------------------- +Wed Dec 19 16:56:33 UTC 2012 - nico.kruber@gmail.com + +- added patch to fix infinite loop with certain svg files + see https://bugs.webkit.org/show_bug.cgi?id=97258 + +------------------------------------------------------------------- +Wed Dec 5 11:58:30 UTC 2012 - stephan.binner@basyskom.com + +- Sync with Qt 4.8.4 + +------------------------------------------------------------------- +Mon Nov 19 22:01:33 UTC 2012 - cgiboudeaux@gmx.com + +- Rediff reduce-link-optimization.diff. Needed by SLES + +------------------------------------------------------------------- +Mon Nov 5 18:30:36 UTC 2012 - dmueller@suse.com + +- fix build against bison 2.6 + +------------------------------------------------------------------- +Wed Sep 19 02:24:00 UTC 2012 - dmueller@suse.com + +- Sync with Qt 4.8.3 + +------------------------------------------------------------------- +Mon Aug 13 16:32:27 UTC 2012 - dmueller@suse.com + +- reduce memory usage for arm + ++++ 163 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:13.1:Update/.libQtWebKit4.2222.new/libQtWebKit4.changes New: ---- 02_add_nostrip_for_debug_packages.diff 03_hide_std_symbols.diff 04_enable_debug_information.diff MediaPlayerPrivateGStreamer-should-take-ownership-of-the-playbin.patch aarch64-support.patch baselibs.conf bison3.patch buffer-ranges.patch defines_qt_webkit.diff do-not-force-optimization-level.diff gstreamer-1.0.diff libQtWebKit4-gcc47.patch libQtWebKit4.changes libQtWebKit4.spec qtwebkit-2.3.3.tar.gz qwebview-4.8.5.tar.gz qwebview-buildfixes.diff reduce-link-optimization.diff webkit-qtwebkit-2.2-tp1-pluginpath.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libQtWebKit4.spec ++++++ # # spec file for package libQtWebKit4 # # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2011 Asterios Dramis <asterios.dramis@gmail.com>. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: libQtWebKit4 %define tar_version 2.3.3 %define qt_version 4.8.5 Version: %{qt_version}+%{tar_version} Release: 0 Summary: Open source Web Browser engine based on Qt4 License: LGPL-2.1+ and BSD-3-Clause and MPL-1.1 and GPL-2.0+ Group: Development/Libraries/C and C++ Url: http://trac.webkit.org/wiki/QtWebKit Source0: qtwebkit-%{tar_version}.tar.gz Source1: qwebview-%{qt_version}.tar.gz Source99: baselibs.conf # PATCH-FIX-OPENSUSE webkit-qtwebkit-2.2-tp1-pluginpath.patch asterios.dramis@gmail.com -- Search /usr/lib{,64}/mozilla/plugins-wrapped for browser plugins too (taken from Fedora) Patch0: webkit-qtwebkit-2.2-tp1-pluginpath.patch Patch1: 04_enable_debug_information.diff # PATCH-FIX-OPENSUSE 03_hide_std_symbols.diff asterios.dramis@gmail.com -- Do not make the std:: symbols in webkit public (taken from Ubuntu) Patch2: 03_hide_std_symbols.diff # PATCH-FIX-OPENSUSE 02_add_nostrip_for_debug_packages.diff asterios.dramis@gmail.com -- Set CONFIG += nostrip to avoid stripping (taken from Ubuntu) Patch3: 02_add_nostrip_for_debug_packages.diff # PATCH-FIX-OPENSUSE defines_qt_webkit.diff asterios.dramis@gmail.com -- Defines QT_WEBKIT to display correctly documentation in Qt Creator Help plugin (taken from Ubuntu) Patch4: defines_qt_webkit.diff Patch5: do-not-force-optimization-level.diff Patch6: reduce-link-optimization.diff Patch7: libQtWebKit4-gcc47.patch Patch8: qwebview-buildfixes.diff # PATCH-FEATURE-UPSTREAM Patch9: gstreamer-1.0.diff # PATCH-FIX-UPSTREAM hrvoje.senjan@gmail.com -- Call gst_object_ref_sink() on the playbin object to take ownership of it Patch10: MediaPlayerPrivateGStreamer-should-take-ownership-of-the-playbin.patch # PATCH-FIX-UPSTREAM buffer-ranges.patch hrvoje.senjan@gmail.com -- Use different method for buffering with gstreamer 1.0 Patch11: buffer-ranges.patch # PATCH-FIX-UPSTREAM aarch64-support.diff schwab@suse.de -- add support for aarch64 Patch12: aarch64-support.patch # PATCH-FIX-UPSTREAM bison3.patch -- fixes compilation with bison3 Patch13: bison3.patch BuildRequires: bison BuildRequires: fdupes BuildRequires: flex BuildRequires: fontconfig-devel BuildRequires: gperf BuildRequires: libicu-devel BuildRequires: libqt4-devel BuildRequires: libwebp-devel BuildRequires: libxslt-devel BuildRequires: pcre-devel BuildRequires: perl BuildRequires: python-devel %if 0%{?suse_version} <= 1110 BuildRequires: python-xml %endif BuildRequires: ruby %if 0%{?suse_version} > 1140 BuildRequires: perl-Switch %endif %if 0%{?suse_version} > 1120 %if 0%{?suse_version} < 1320 BuildRequires: pkgconfig(gstreamer-0.10) BuildRequires: pkgconfig(gstreamer-app-0.10) BuildRequires: pkgconfig(gstreamer-base-0.10) BuildRequires: pkgconfig(gstreamer-interfaces-0.10) BuildRequires: pkgconfig(gstreamer-pbutils-0.10) BuildRequires: pkgconfig(gstreamer-plugins-base-0.10) BuildRequires: pkgconfig(gstreamer-video-0.10) %else BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gstreamer-app-1.0) BuildRequires: pkgconfig(gstreamer-base-1.0) BuildRequires: pkgconfig(gstreamer-pbutils-1.0) BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) BuildRequires: pkgconfig(gstreamer-video-1.0) %endif %endif BuildRequires: sqlite-devel %requires_ge libqt4-x11 Provides: qtwebkit = %{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build %description WebKit is an open source web browser engine. WebKit's HTML and JavaScript code began as a branch of the KHTML and KJS libraries from KDE. As part of KDE framework KHTML was based on Qt but during their porting efforts Apple's engineers made WebKit toolkit independent. QtWebKit is a project aiming at porting this fabulous engine back to Qt. %package -n libQtWebKit-devel Summary: Development files for qtwebkit Group: Development/Libraries/C and C++ Requires: libQtWebKit4 = %{version} %requires_ge libqt4-devel %description -n libQtWebKit-devel This package contains development files for qtwebkit. %prep %setup -q -n webkit-qtwebkit-23 -a 1 %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 %if 0%{?suse_version} > 1310 %patch9 -p1 %patch10 -p1 %patch11 -p1 %endif %patch12 -p1 %patch13 -p1 %build # runs out of memory or creates static archives > 2/4GB boundary otherwise %ifarch %arm aarch64 RPM_OPT_FLAGS="$RPM_OPT_FLAGS " export RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-g / /} %endif %ifnarch x86_64 jitopts="DEFINES+=ENABLE_JIT=0 DEFINES+=ENABLE_YARR_JIT=0 DEFINES+=ENABLE_ASSEMBLER=0" %else jitopts="" %endif export QTDIR=%{_prefix} Tools/Scripts/build-webkit \ --qt \ --makeargs="%{?_smp_mflags}" \ --prefix=%{_prefix} \ --no-webkit2 \ --release \ %ifnarch x86_64 --no-force-sse2 \ %endif --qmakearg="CONFIG+=production_build CONFIG+=use_system_icu QMAKE_CFLAGS+=\"${RPM_OPT_FLAGS} $(getconf LFS_CFLAGS)\" QMAKE_CXXFLAGS+=\"${RPM_OPT_FLAGS} $(getconf LFS_CFLAGS)\" QMAKE_LFLAGS+="-Wl,--as-needed" DEFINES+=USE_GSTREAMER=1 DEFINES+=HAVE_LIBWEBP=1 $jitopts" pushd tools/designer/src/plugins/qwebview/ qmake qmake \ QMAKE_CXXFLAGS+="%{optflags}" \ QMAKE_CFLAGS+="%{optflags}" \ QMAKE_LFLAGS+="-Wl,--as-needed" make popd %install make INSTALL_ROOT=%{buildroot} -C WebKitBuild/Release install make install INSTALL_ROOT=%{buildroot} -C tools/designer/src/plugins/qwebview # find %{buildroot}%{_libdir} -type f -name '*prl' -exec perl -pi -e "s, -L$RPM_BUILD_DIR/\S+,,g" {} \; find %{buildroot}%{_libdir} -type f -name '*prl' -exec sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" {} \; find %{buildroot}%{_libdir} -type f -name '*pc' -print -exec perl -pi -e "s, -L$RPM_BUILD_DIR/?\S+,,g" {} \; -exec sed -i -e "s,^moc_location=.*,moc_location=/usr/bin/moc," -e "s,uic_location=.*,uic_location=/usr/bin/uic," {} \; %fdupes -s %{buildroot}%{_includedir} %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root,-) %{_libdir}/qt4/plugins/imports/QtWebKit/ %{_libdir}/libQtWebKit.so.4* %{_libdir}/qt4/plugins/designer/libqwebview.so %files -n libQtWebKit-devel %defattr(-,root,root,-) %doc ChangeLog %{_includedir}/QtWebKit/ %{_libdir}/pkgconfig/QtWebKit.pc %{_libdir}/libQtWebKit.prl %{_libdir}/libQtWebKit.so %dir %{_datadir}/qt4/mkspecs/modules %{_datadir}/qt4/mkspecs/modules/qt_webkit.pri %changelog ++++++ 02_add_nostrip_for_debug_packages.diff ++++++ diff -urNB orig.webkit-qtwebkit-23/Source/JavaScriptCore/JavaScriptCore.pri webkit-qtwebkit-23/Source/JavaScriptCore/JavaScriptCore.pri --- orig.webkit-qtwebkit-23/Source/JavaScriptCore/JavaScriptCore.pri 2013-04-08 19:48:19.908101090 +0200 +++ webkit-qtwebkit-23/Source/JavaScriptCore/JavaScriptCore.pri 2013-04-08 19:48:57.210634744 +0200 @@ -13,6 +13,8 @@ QMAKE_CXXFLAGS_RELEASE += -g1 } +CONFIG += nostrip + JAVASCRIPTCORE_GENERATED_SOURCES_DIR = $${ROOT_BUILD_DIR}/Source/JavaScriptCore/$${GENERATED_SOURCES_DESTDIR} INCLUDEPATH += \ diff -urNB orig.webkit-qtwebkit-23/Source/WebCore/WebCore.pri webkit-qtwebkit-23/Source/WebCore/WebCore.pri --- orig.webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-04-08 19:48:19.909101077 +0200 +++ webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-04-08 19:49:24.013299665 +0200 @@ -13,6 +13,8 @@ QMAKE_CXXFLAGS_RELEASE += -g1 } +CONFIG += nostrip + QT *= network haveQt(5): QT *= core-private gui-private diff -urNB orig.webkit-qtwebkit-23/Source/WebKit/WebKit1.pri webkit-qtwebkit-23/Source/WebKit/WebKit1.pri --- orig.webkit-qtwebkit-23/Source/WebKit/WebKit1.pri 2013-04-08 19:48:19.909101077 +0200 +++ webkit-qtwebkit-23/Source/WebKit/WebKit1.pri 2013-04-08 19:49:40.386094977 +0200 @@ -13,6 +13,8 @@ QMAKE_CXXFLAGS_RELEASE += -g1 } +CONFIG += nostrip + INCLUDEPATH += \ $$SOURCE_DIR/qt/Api \ $$SOURCE_DIR/qt/WebCoreSupport \ diff -urNB orig.webkit-qtwebkit-23/Source/WTF/WTF.pri webkit-qtwebkit-23/Source/WTF/WTF.pri --- orig.webkit-qtwebkit-23/Source/WTF/WTF.pri 2013-04-08 19:48:19.910101065 +0200 +++ webkit-qtwebkit-23/Source/WTF/WTF.pri 2013-04-08 19:49:55.895901077 +0200 @@ -14,6 +14,8 @@ QMAKE_CXXFLAGS_RELEASE += -g1 } +CONFIG += nostrip + haveQt(5) { mac { # Mac OS does ship libicu but not the associated header files. ++++++ 03_hide_std_symbols.diff ++++++ From: Modestas Vainius <modax@debian.org> SUbject: Make hide_symbols to cover all QtWebKit portions Origin: vendor Author: Timo Jyrinki <timo@debian.org> Last-Update: 2013-01-28 (use a similar patch on Qt 5) Forwarded: no Almost everything in Source/WebCore/generated was not build with -fvisibility=hidden resulting into redundantly polluted and huge dynamic symbol list in libQtWebKit.so. Therefore, move +hide_symbols configuration parameter upwards in order for it to cover everything including the offending Source/WebCore/CodeGenerators.pri --- a/Source/QtWebKit.pro 2012-12-18 19:04:43.000000000 +0000 +++ b/Source/QtWebKit.pro 2013-01-28 08:25:56.342911517 +0000 @@ -7,6 +7,11 @@ TEMPLATE = subdirs CONFIG += ordered +CONFIG(release):!CONFIG(standalone_package) { + contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols + unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions +} + api.file = api.pri SUBDIRS += api ++++++ 04_enable_debug_information.diff ++++++ diff -urNB orig.webkit-qtwebkit-23/Source/JavaScriptCore/JavaScriptCore.pri webkit-qtwebkit-23/Source/JavaScriptCore/JavaScriptCore.pri --- orig.webkit-qtwebkit-23/Source/JavaScriptCore/JavaScriptCore.pri 2013-03-14 14:24:37.000000000 +0100 +++ webkit-qtwebkit-23/Source/JavaScriptCore/JavaScriptCore.pri 2013-04-08 19:44:20.232097452 +0200 @@ -7,6 +7,12 @@ SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/JavaScriptCore +equals(QT_ARCH, arm) { + message("JavaScriptCore workaround for QtWebkit: do not build with -g, but with -g1") + QMAKE_CXXFLAGS_RELEASE -= -g + QMAKE_CXXFLAGS_RELEASE += -g1 +} + JAVASCRIPTCORE_GENERATED_SOURCES_DIR = $${ROOT_BUILD_DIR}/Source/JavaScriptCore/$${GENERATED_SOURCES_DESTDIR} INCLUDEPATH += \ diff -urNB orig.webkit-qtwebkit-23/Source/WebCore/WebCore.pri webkit-qtwebkit-23/Source/WebCore/WebCore.pri --- orig.webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-03-14 14:24:37.000000000 +0100 +++ webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-04-08 19:45:23.002312717 +0200 @@ -7,6 +7,12 @@ SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebCore +equals(QT_ARCH, arm)|equals(QT_ARCH, i386)|equals(QT_ARCH, i686)|equals(QT_ARCH, x86_64)| equals(QT_ARCH, powerpc64)|equals(QT_ARCH, powerpc) { + message("WebCore workaround for QtWebkit: do not build with -g, but with -g1") + QMAKE_CXXFLAGS_RELEASE -= -g + QMAKE_CXXFLAGS_RELEASE += -g1 +} + QT *= network haveQt(5): QT *= core-private gui-private diff -urNB orig.webkit-qtwebkit-23/Source/WebKit/WebKit1.pri webkit-qtwebkit-23/Source/WebKit/WebKit1.pri --- orig.webkit-qtwebkit-23/Source/WebKit/WebKit1.pri 2013-03-14 14:24:37.000000000 +0100 +++ webkit-qtwebkit-23/Source/WebKit/WebKit1.pri 2013-04-08 19:46:41.045337045 +0200 @@ -7,6 +7,12 @@ SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebKit +equals(QT_ARCH, arm) { + message("WebKit1 workaround for QtWebkit: do not build with -g, but with -g1") + QMAKE_CXXFLAGS_RELEASE -= -g + QMAKE_CXXFLAGS_RELEASE += -g1 +} + INCLUDEPATH += \ $$SOURCE_DIR/qt/Api \ $$SOURCE_DIR/qt/WebCoreSupport \ diff -urNB orig.webkit-qtwebkit-23/Source/WTF/WTF.pri webkit-qtwebkit-23/Source/WTF/WTF.pri --- orig.webkit-qtwebkit-23/Source/WTF/WTF.pri 2013-03-14 14:24:37.000000000 +0100 +++ webkit-qtwebkit-23/Source/WTF/WTF.pri 2013-04-08 19:46:46.301271336 +0200 @@ -8,6 +8,12 @@ # All external modules should include WTF headers by prefixing with "wtf" (#include <wtf/some/thing.h>). INCLUDEPATH += $$PWD +equals(QT_ARCH, arm) { + message("WTF workaround for QtWebkit: do not build with -g, but with -g1") + QMAKE_CXXFLAGS_RELEASE -= -g + QMAKE_CXXFLAGS_RELEASE += -g1 +} + haveQt(5) { mac { # Mac OS does ship libicu but not the associated header files. ++++++ MediaPlayerPrivateGStreamer-should-take-ownership-of-the-playbin.patch ++++++
From e387c506a0dfe4b62a9e8beedc76d1abcc177c24 Mon Sep 17 00:00:00 2001 From: christophe.dumez <christophe.dumez@intel.com> Date: Mon, 4 Mar 2013 11:26:04 +0100 Subject: [PATCH] [gstreamer] MediaPlayerPrivateGStreamer should take ownership of the playbin
https://bugs.webkit.org/show_bug.cgi?id=107445 Reviewed by Philippe Normand. In gstreamer 1.0, gst_element_factory_make() now returns a floating reference. MediaPlayerPrivateGStreamer calls gst_element_factory_make() to create the playbin object but does not take ownership of the object. As a consequence, the object keeps floating until it is unref'd in the MediaPlayerPrivateGStreamer destructor. This patch uses a GRefPtr<GstElement> to store the playbin object and only adopt the object returned by gst_element_factory_make() if gstreamer 0.10 is used. When gstreamer 1.0 is used, the returned object will not be adopted, which will remove the floating reference. This way, we ensure that the playbin object is owned by MediaPlayerPrivateGStreamer. No new tests, no behavior change for layout tests. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): (WebCore::MediaPlayerPrivateGStreamer::load): (WebCore::MediaPlayerPrivateGStreamer::playbackPosition): (WebCore::MediaPlayerPrivateGStreamer::changePipelineState): (WebCore::MediaPlayerPrivateGStreamer::duration): (WebCore::MediaPlayerPrivateGStreamer::seek): (WebCore::MediaPlayerPrivateGStreamer::paused): (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo): (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio): (WebCore::MediaPlayerPrivateGStreamer::setVolume): (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVolumeChange): (WebCore::MediaPlayerPrivateGStreamer::setRate): (WebCore::MediaPlayerPrivateGStreamer::buffered): (WebCore::MediaPlayerPrivateGStreamer::handleMessage): (WebCore::MediaPlayerPrivateGStreamer::fillTimerFired): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: (MediaPlayerPrivateGStreamer): Change-Id: I441285d33189c4afc26e9608bc0993716c24d7ed git-svn-id: http://svn.webkit.org/repository/webkit/trunk@140414 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> --- .../gstreamer/MediaPlayerPrivateGStreamer.cpp | 128 ++++++++++---------- .../gstreamer/MediaPlayerPrivateGStreamer.h | 2 +- 2 files changed, 66 insertions(+), 64 deletions(-) diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp index 736fd5a..cd34c18 100644 --- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp +++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp @@ -204,7 +204,6 @@ bool MediaPlayerPrivateGStreamer::isAvai MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer(MediaPlayer* player) : m_player(player) - , m_playBin(0) , m_webkitVideoSink(0) , m_fpsSink(0) , m_source(0) @@ -270,8 +269,7 @@ MediaPlayerPrivateGStreamer::~MediaPlaye #endif if (m_playBin) { - gst_element_set_state(m_playBin, GST_STATE_NULL); - gst_object_unref(GST_OBJECT(m_playBin)); + gst_element_set_state(m_playBin.get(), GST_STATE_NULL); m_playBin = 0; } @@ -301,7 +299,7 @@ void MediaPlayerPrivateGStreamer::load(c cleanUrl = cleanUrl.substring(0, kurl.pathEnd()); m_url = KURL(KURL(), cleanUrl); - g_object_set(m_playBin, "uri", cleanUrl.utf8().data(), NULL); + g_object_set(m_playBin.get(), "uri", cleanUrl.utf8().data(), NULL); LOG_MEDIA_MESSAGE("Load %s", cleanUrl.utf8().data()); @@ -319,7 +317,7 @@ void MediaPlayerPrivateGStreamer::load(c // GStreamer needs to have the pipeline set to a paused state to // start providing anything useful. - gst_element_set_state(m_playBin, GST_STATE_PAUSED); + gst_element_set_state(m_playBin.get(), GST_STATE_PAUSED); if (!m_delayingLoad) commitLoad(); @@ -348,7 +346,7 @@ float MediaPlayerPrivateGStreamer::playb float ret = 0.0f; GstQuery* query = gst_query_new_position(GST_FORMAT_TIME); - if (!gst_element_query(m_playBin, query)) { + if (!gst_element_query(m_playBin.get(), query)) { LOG_MEDIA_MESSAGE("Position query failed..."); gst_query_unref(query); return ret; @@ -376,12 +374,12 @@ bool MediaPlayerPrivateGStreamer::change GstState currentState; GstState pending; - gst_element_get_state(m_playBin, ¤tState, &pending, 0); + gst_element_get_state(m_playBin.get(), ¤tState, &pending, 0); LOG_MEDIA_MESSAGE("Current state: %s, pending: %s", gst_element_state_get_name(currentState), gst_element_state_get_name(pending)); if (currentState == newState || pending == newState) return true; - GstStateChangeReturn setStateResult = gst_element_set_state(m_playBin, newState); + GstStateChangeReturn setStateResult = gst_element_set_state(m_playBin.get(), newState); GstState pausedOrPlaying = newState == GST_STATE_PLAYING ? GST_STATE_PAUSED : GST_STATE_PLAYING; if (currentState != pausedOrPlaying && setStateResult == GST_STATE_CHANGE_FAILURE) { loadingFailed(MediaPlayer::Empty); @@ -437,9 +435,9 @@ float MediaPlayerPrivateGStreamer::durat gint64 timeLength = 0; #ifdef GST_API_VERSION_1 - bool failure = !gst_element_query_duration(m_playBin, timeFormat, &timeLength) || static_cast<guint64>(timeLength) == GST_CLOCK_TIME_NONE; + bool failure = !gst_element_query_duration(m_playBin.get(), timeFormat, &timeLength) || static_cast<guint64>(timeLength) == GST_CLOCK_TIME_NONE; #else - bool failure = !gst_element_query_duration(m_playBin, &timeFormat, &timeLength) || timeFormat != GST_FORMAT_TIME || static_cast<guint64>(timeLength) == GST_CLOCK_TIME_NONE; + bool failure = !gst_element_query_duration(m_playBin.get(), &timeFormat, &timeLength) || timeFormat != GST_FORMAT_TIME || static_cast<guint64>(timeLength) == GST_CLOCK_TIME_NONE; #endif if (failure) { LOG_MEDIA_MESSAGE("Time duration query failed for %s", m_url.string().utf8().data()); @@ -502,7 +500,7 @@ void MediaPlayerPrivateGStreamer::seek(f GstClockTime clockTime = GST_TIMEVAL_TO_TIME(timeValue); LOG_MEDIA_MESSAGE("Seek: %" GST_TIME_FORMAT, GST_TIME_ARGS(clockTime)); - if (!gst_element_seek(m_playBin, m_player->rate(), + if (!gst_element_seek(m_playBin.get(), m_player->rate(), GST_FORMAT_TIME, (GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE), GST_SEEK_TYPE_SET, clockTime, @@ -522,7 +520,7 @@ bool MediaPlayerPrivateGStreamer::paused } GstState state; - gst_element_get_state(m_playBin, &state, 0, 0); + gst_element_get_state(m_playBin.get(), &state, 0, 0); return state == GST_STATE_PAUSED; } @@ -604,7 +602,7 @@ void MediaPlayerPrivateGStreamer::notify gint videoTracks = 0; if (m_playBin) - g_object_get(m_playBin, "n-video", &videoTracks, NULL); + g_object_get(m_playBin.get(), "n-video", &videoTracks, NULL); m_hasVideo = videoTracks > 0; @@ -626,7 +624,7 @@ void MediaPlayerPrivateGStreamer::notify gint audioTracks = 0; if (m_playBin) - g_object_get(m_playBin, "n-audio", &audioTracks, NULL); + g_object_get(m_playBin.get(), "n-audio", &audioTracks, NULL); m_hasAudio = audioTracks > 0; m_player->mediaPlayerClient()->mediaPlayerEngineUpdated(m_player); } @@ -636,7 +634,7 @@ void MediaPlayerPrivateGStreamer::setVol if (!m_playBin) return; - gst_stream_volume_set_volume(GST_STREAM_VOLUME(m_playBin), GST_STREAM_VOLUME_FORMAT_CUBIC, + gst_stream_volume_set_volume(GST_STREAM_VOLUME(m_playBin.get()), GST_STREAM_VOLUME_FORMAT_CUBIC, static_cast<double>(volume)); } @@ -647,7 +645,7 @@ void MediaPlayerPrivateGStreamer::notify if (!m_player || !m_playBin) return; double volume; - volume = gst_stream_volume_get_volume(GST_STREAM_VOLUME(m_playBin), GST_STREAM_VOLUME_FORMAT_CUBIC); + volume = gst_stream_volume_get_volume(GST_STREAM_VOLUME(m_playBin.get()), GST_STREAM_VOLUME_FORMAT_CUBIC); // get_volume() can return values superior to 1.0 if the user // applies software user gain via third party application (GNOME // volume control for instance). @@ -671,7 +669,7 @@ void MediaPlayerPrivateGStreamer::setRat GstState state; GstState pending; - gst_element_get_state(m_playBin, &state, &pending, 0); + gst_element_get_state(m_playBin.get(), &state, &pending, 0); if ((state != GST_STATE_PLAYING && state != GST_STATE_PAUSED) || (pending == GST_STATE_PAUSED)) return; @@ -683,7 +681,7 @@ void MediaPlayerPrivateGStreamer::setRat m_changingRate = true; if (!rate) { - gst_element_set_state(m_playBin, GST_STATE_PAUSED); + gst_element_set_state(m_playBin.get(), GST_STATE_PAUSED); return; } @@ -713,12 +711,12 @@ void MediaPlayerPrivateGStreamer::setRat LOG_MEDIA_MESSAGE("Need to mute audio: %d", (int) mute); - if (!gst_element_seek(m_playBin, rate, GST_FORMAT_TIME, flags, + if (!gst_element_seek(m_playBin.get(), rate, GST_FORMAT_TIME, flags, GST_SEEK_TYPE_SET, start, GST_SEEK_TYPE_SET, end)) LOG_MEDIA_MESSAGE("Set rate to %f failed", rate); else - g_object_set(m_playBin, "mute", mute, NULL); + g_object_set(m_playBin.get(), "mute", mute, NULL); } MediaPlayer::NetworkState MediaPlayerPrivateGStreamer::networkState() const @@ -744,7 +742,7 @@ PassRefPtr<TimeRanges> MediaPlayerPrivat GstQuery* query = gst_query_new_buffering(GST_FORMAT_PERCENT); - if (!gst_element_query(m_playBin, query)) { + if (!gst_element_query(m_playBin.get(), query)) { gst_query_unref(query); return timeRanges.release(); } @@ -799,7 +797,7 @@ gboolean MediaPlayerPrivateGStreamer::ha gst_message_parse_error(message, &err.outPtr(), &debug.outPtr()); LOG_MEDIA_MESSAGE("Error %d: %s (url=%s)", err->code, err->message, m_url.string().utf8().data()); - GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(m_playBin), GST_DEBUG_GRAPH_SHOW_ALL, "webkit-video.error"); + GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(m_playBin.get()), GST_DEBUG_GRAPH_SHOW_ALL, "webkit-video.error"); error = MediaPlayer::Empty; if (err->code == GST_STREAM_ERROR_CODEC_NOT_FOUND @@ -840,7 +838,7 @@ gboolean MediaPlayerPrivateGStreamer::ha // Ignore state changes from internal elements. They are // forwarded to playbin2 anyway. - if (GST_MESSAGE_SRC(message) == reinterpret_cast<GstObject*>(m_playBin)) { + if (GST_MESSAGE_SRC(message) == reinterpret_cast<GstObject*>(m_playBin.get())) { updateStates(); // Construct a filename for the graphviz dot file output. @@ -851,7 +849,7 @@ gboolean MediaPlayerPrivateGStreamer::ha gst_element_state_get_name(oldState), gst_element_state_get_name(newState)).utf8(); - GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(m_playBin), GST_DEBUG_GRAPH_SHOW_ALL, dotFileName.data()); + GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(m_playBin.get()), GST_DEBUG_GRAPH_SHOW_ALL, dotFileName.data()); } break; case GST_MESSAGE_BUFFERING: @@ -908,7 +906,7 @@ void MediaPlayerPrivateGStreamer::fillTi { GstQuery* query = gst_query_new_buffering(GST_FORMAT_PERCENT); - if (!gst_element_query(m_playBin, query)) { + if (!gst_element_query(m_playBin.get(), query)) { gst_query_unref(query); return; } @@ -1107,7 +1105,7 @@ void MediaPlayerPrivateGStreamer::update GstElement* sinkPtr = 0; - g_object_get(m_playBin, "audio-sink", &sinkPtr, NULL); + g_object_get(m_playBin.get(), "audio-sink", &sinkPtr, NULL); m_webkitAudioSink = adoptGRef(sinkPtr); } @@ -1117,7 +1115,7 @@ void MediaPlayerPrivateGStreamer::source { GstElement* srcPtr = 0; - g_object_get(m_playBin, "source", &srcPtr, NULL); + g_object_get(m_playBin.get(), "source", &srcPtr, NULL); m_source = adoptGRef(srcPtr); if (WEBKIT_IS_WEB_SRC(m_source.get())) @@ -1130,7 +1128,7 @@ void MediaPlayerPrivateGStreamer::cancel return; if (m_playBin) - gst_element_set_state(m_playBin, GST_STATE_NULL); + gst_element_set_state(m_playBin.get(), GST_STATE_NULL); } void MediaPlayerPrivateGStreamer::updateStates() @@ -1146,7 +1144,7 @@ void MediaPlayerPrivateGStreamer::update GstState state; GstState pending; - GstStateChangeReturn ret = gst_element_get_state(m_playBin, + GstStateChangeReturn ret = gst_element_get_state(m_playBin.get(), &state, &pending, 250 * GST_NSECOND); bool shouldUpdateAfterSeek = false; @@ -1195,7 +1193,7 @@ void MediaPlayerPrivateGStreamer::update if (!m_paused) { LOG_MEDIA_MESSAGE("[Buffering] Restarting playback."); - gst_element_set_state(m_playBin, GST_STATE_PLAYING); + gst_element_set_state(m_playBin.get(), GST_STATE_PLAYING); } } else if (!m_buffering && (currentTime() < duration())) { m_paused = true; @@ -1210,7 +1208,7 @@ void MediaPlayerPrivateGStreamer::update LOG_MEDIA_MESSAGE("[Buffering] Pausing stream for buffering."); - gst_element_set_state(m_playBin, GST_STATE_PAUSED); + gst_element_set_state(m_playBin.get(), GST_STATE_PAUSED); } } else m_paused = true; @@ -1241,14 +1239,14 @@ void MediaPlayerPrivateGStreamer::update // pipeline. if (state == GST_STATE_READY && isLiveStream() && m_preload == MediaPlayer::Auto) { setPreload(MediaPlayer::None); - gst_element_set_state(m_playBin, GST_STATE_NULL); - gst_element_set_state(m_playBin, GST_STATE_PAUSED); + gst_element_set_state(m_playBin.get(), GST_STATE_NULL); + gst_element_set_state(m_playBin.get(), GST_STATE_PAUSED); } // A live stream was paused, reset the pipeline. if (state == GST_STATE_PAUSED && pending == GST_STATE_PLAYING && isLiveStream()) { - gst_element_set_state(m_playBin, GST_STATE_NULL); - gst_element_set_state(m_playBin, GST_STATE_PLAYING); + gst_element_set_state(m_playBin.get(), GST_STATE_NULL); + gst_element_set_state(m_playBin.get(), GST_STATE_PLAYING); } if (!isLiveStream() && !m_buffering) @@ -1284,9 +1282,9 @@ void MediaPlayerPrivateGStreamer::update shouldUpdateAfterSeek = true; m_seeking = false; if (!m_paused) - gst_element_set_state(m_playBin, GST_STATE_PLAYING); + gst_element_set_state(m_playBin.get(), GST_STATE_PLAYING); } else if (!m_paused) - gst_element_set_state(m_playBin, GST_STATE_PLAYING); + gst_element_set_state(m_playBin.get(), GST_STATE_PLAYING); m_networkState = MediaPlayer::Loading; break; @@ -1372,7 +1370,7 @@ bool MediaPlayerPrivateGStreamer::loadNe // append the value of new-location to it. gchar* currentLocation = 0; - g_object_get(m_playBin, "uri", ¤tLocation, NULL); + g_object_get(m_playBin.get(), "uri", ¤tLocation, NULL); KURL currentUrl(KURL(), currentLocation); g_free(currentLocation); @@ -1396,14 +1394,14 @@ bool MediaPlayerPrivateGStreamer::loadNe // Reset pipeline state. m_resetPipeline = true; - gst_element_set_state(m_playBin, GST_STATE_READY); + gst_element_set_state(m_playBin.get(), GST_STATE_READY); GstState state; - gst_element_get_state(m_playBin, &state, 0, 0); + gst_element_get_state(m_playBin.get(), &state, 0, 0); if (state <= GST_STATE_READY) { // Set the new uri and start playing. - g_object_set(m_playBin, "uri", newUrl.string().utf8().data(), NULL); - gst_element_set_state(m_playBin, GST_STATE_PLAYING); + g_object_set(m_playBin.get(), "uri", newUrl.string().utf8().data(), NULL); + gst_element_set_state(m_playBin.get(), GST_STATE_PLAYING); return true; } } @@ -1446,7 +1444,7 @@ void MediaPlayerPrivateGStreamer::didEnd if (!m_player->mediaPlayerClient()->mediaPlayerIsLooping()) { m_paused = true; - gst_element_set_state(m_playBin, GST_STATE_NULL); + gst_element_set_state(m_playBin.get(), GST_STATE_NULL); } } @@ -1457,7 +1455,7 @@ void MediaPlayerPrivateGStreamer::cacheD // And re-cache it if possible. GstState state; - gst_element_get_state(m_playBin, &state, 0, 0); + gst_element_get_state(m_playBin.get(), &state, 0, 0); float newDuration = duration(); if (state <= GST_STATE_READY) { @@ -1491,8 +1489,8 @@ void MediaPlayerPrivateGStreamer::durati m_totalBytes = -1; if (totalBytes() && !isLiveStream()) { setPreload(MediaPlayer::Auto); - gst_element_set_state(m_playBin, GST_STATE_NULL); - gst_element_set_state(m_playBin, GST_STATE_PAUSED); + gst_element_set_state(m_playBin.get(), GST_STATE_NULL); + gst_element_set_state(m_playBin.get(), GST_STATE_PAUSED); } } } @@ -1507,7 +1505,7 @@ void MediaPlayerPrivateGStreamer::setMut if (!m_playBin) return; - g_object_set(m_playBin, "mute", muted, NULL); + g_object_set(m_playBin.get(), "mute", muted, NULL); } void MediaPlayerPrivateGStreamer::notifyPlayerOfMute() @@ -1518,7 +1516,7 @@ void MediaPlayerPrivateGStreamer::notify return; gboolean muted; - g_object_get(m_playBin, "mute", &muted, NULL); + g_object_get(m_playBin.get(), "mute", &muted, NULL); m_player->muteChanged(static_cast<bool>(muted)); } @@ -1744,13 +1742,13 @@ void MediaPlayerPrivateGStreamer::setPre ASSERT(m_playBin); GstPlayFlags flags; - g_object_get(m_playBin, "flags", &flags, NULL); + g_object_get(m_playBin.get(), "flags", &flags, NULL); if (m_preload == MediaPlayer::Auto) { LOG_MEDIA_MESSAGE("Enabling on-disk buffering"); - g_object_set(m_playBin, "flags", flags | GST_PLAY_FLAG_DOWNLOAD, NULL); + g_object_set(m_playBin.get(), "flags", flags | GST_PLAY_FLAG_DOWNLOAD, NULL); } else { LOG_MEDIA_MESSAGE("Disabling on-disk buffering"); - g_object_set(m_playBin, "flags", flags & ~GST_PLAY_FLAG_DOWNLOAD, NULL); + g_object_set(m_playBin.get(), "flags", flags & ~GST_PLAY_FLAG_DOWNLOAD, NULL); } if (m_delayingLoad && m_preload != MediaPlayer::None) { @@ -1762,24 +1760,27 @@ void MediaPlayerPrivateGStreamer::setPre void MediaPlayerPrivateGStreamer::createGSTPlayBin() { ASSERT(!m_playBin); + + // gst_element_factory_make() returns a floating reference so + // we should not adopt. m_playBin = gst_element_factory_make(gPlaybinName, "play"); #ifndef GST_API_VERSION_1 - m_gstGWorld = GStreamerGWorld::createGWorld(m_playBin); + m_gstGWorld = GStreamerGWorld::createGWorld(m_playBin.get()); #endif - GstBus* bus = gst_pipeline_get_bus(GST_PIPELINE(m_playBin)); + GstBus* bus = gst_pipeline_get_bus(GST_PIPELINE(m_playBin.get())); gst_bus_add_signal_watch(bus); g_signal_connect(bus, "message", G_CALLBACK(mediaPlayerPrivateMessageCallback), this); gst_object_unref(bus); - g_object_set(m_playBin, "mute", m_player->muted(), NULL); + g_object_set(m_playBin.get(), "mute", m_player->muted(), NULL); - g_signal_connect(m_playBin, "notify::volume", G_CALLBACK(mediaPlayerPrivateVolumeChangedCallback), this); - g_signal_connect(m_playBin, "notify::source", G_CALLBACK(mediaPlayerPrivateSourceChangedCallback), this); - g_signal_connect(m_playBin, "notify::mute", G_CALLBACK(mediaPlayerPrivateMuteChangedCallback), this); - g_signal_connect(m_playBin, "video-changed", G_CALLBACK(mediaPlayerPrivateVideoChangedCallback), this); - g_signal_connect(m_playBin, "audio-changed", G_CALLBACK(mediaPlayerPrivateAudioChangedCallback), this); + g_signal_connect(m_playBin.get(), "notify::volume", G_CALLBACK(mediaPlayerPrivateVolumeChangedCallback), this); + g_signal_connect(m_playBin.get(), "notify::source", G_CALLBACK(mediaPlayerPrivateSourceChangedCallback), this); + g_signal_connect(m_playBin.get(), "notify::mute", G_CALLBACK(mediaPlayerPrivateMuteChangedCallback), this); + g_signal_connect(m_playBin.get(), "video-changed", G_CALLBACK(mediaPlayerPrivateVideoChangedCallback), this); + g_signal_connect(m_playBin.get(), "audio-changed", G_CALLBACK(mediaPlayerPrivateAudioChangedCallback), this); #ifndef GST_API_VERSION_1 m_webkitVideoSink = webkitVideoSinkNew(m_gstGWorld.get()); @@ -1862,9 +1863,9 @@ void MediaPlayerPrivateGStreamer::create gst_element_add_pad(m_videoSinkBin, gst_ghost_pad_new("sink", pad.get())); // Set the bin as video sink of playbin. - g_object_set(m_playBin, "video-sink", m_videoSinkBin, NULL); + g_object_set(m_playBin.get(), "video-sink", m_videoSinkBin, NULL); #else - g_object_set(m_playBin, "video-sink", actualVideoSink, NULL); + g_object_set(m_playBin.get(), "video-sink", actualVideoSink, NULL); #endif GRefPtr<GstPad> videoSinkPad = adoptGRef(gst_element_get_static_pad(m_webkitVideoSink, "sink")); diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h index d14d004..1f7b3f3 100644 --- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h +++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h @@ -157,7 +157,7 @@ class MediaPlayerPrivateGStreamer : public MediaPlayerPrivateInterface { private: MediaPlayer* m_player; - GstElement* m_playBin; + GRefPtr<GstElement> m_playBin; GstElement* m_webkitVideoSink; GstElement* m_videoSinkBin; GstElement* m_fpsSink; -- 1.7.1 ++++++ aarch64-support.patch ++++++ Index: webkitgtk-2.0.1/Source/WTF/wtf/Platform.h =================================================================== --- webkitgtk-2.0.1.orig/Source/WTF/wtf/Platform.h +++ webkitgtk-2.0.1/Source/WTF/wtf/Platform.h @@ -318,6 +318,14 @@ #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 #endif +/* CPU(AARCH64) - AArch64 */ +#if defined(__aarch64__) +#define WTF_CPU_AARCH64 1 +#if defined(__AARCH64BE__) +#define WTF_CPU_BIG_ENDIAN 1 +#endif +#endif + /* ==== OS() - underlying operating system; only to be used for mandated low-level services like virtual memory, not to choose a GUI toolkit ==== */ @@ -744,7 +752,8 @@ || CPU(ALPHA) \ || CPU(SPARC64) \ || CPU(S390X) \ - || CPU(PPC64) + || CPU(PPC64) \ + || CPU(AARCH64) #define WTF_USE_JSVALUE64 1 #else #define WTF_USE_JSVALUE32_64 1 Index: webkitgtk-2.0.1/Source/WTF/wtf/dtoa/utils.h =================================================================== --- webkitgtk-2.0.1.orig/Source/WTF/wtf/dtoa/utils.h +++ webkitgtk-2.0.1/Source/WTF/wtf/dtoa/utils.h @@ -49,7 +49,7 @@ defined(__ARMEL__) || \ defined(_MIPS_ARCH_MIPS32R2) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 -#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) +#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(AARCH64) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(_M_IX86) || defined(__i386__) #if defined(_WIN32) ++++++ baselibs.conf ++++++ libQtWebKit4 ++++++ bison3.patch ++++++ diff --git a/Source/ThirdParty/ANGLE/src/compiler/glslang.y b/Source/ThirdParty/ANGLE/src/compiler/glslang.y index 1f15d07d61dd950512c759d9750a9700c1224d35..4f894b382acf1d7bb161b7baa85527b3a8e5c5c1 100644 --- a/Source/ThirdParty/ANGLE/src/compiler/glslang.y +++ b/Source/ThirdParty/ANGLE/src/compiler/glslang.y @@ -47,6 +47,7 @@ WHICH GENERATES THE GLSL ES PARSER (glslang_tab.cpp AND glslang_tab.h). %expect 1 /* One shift reduce conflict because of if | else */ %pure-parser %parse-param {TParseContext* context} +%lex-param {YYLEX_PARAM} %union { struct { ++++++ buffer-ranges.patch ++++++
From c3934e3270b74e95b3d15657c0b34e0ff3aa6a13 Mon Sep 17 00:00:00 2001 From: Xabier Rodriguez Calvar <calvaris@igalia.com> Date: Mon, 4 Mar 2013 11:25:18 +0100 Subject: [PATCH] [GStreamer] Buffering ranges are reported incorrectly with GStreamer 1.0
https://bugs.webkit.org/show_bug.cgi?id=105319 Patch by Xabier Rodriguez Calvar <calvaris@igalia.com> on 2012-12-21 Reviewed by Philippe Normand. We add the gPercentMax constant to select between 100 and GST_FORMAT_PERCENT_MAX depending if we are compiling against GStreamer 0.10 or 1.0 and we use that in the corresponding method. Current tests should suffice. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::buffered): Added the use of gPercentMax constant instead of 100 to have the different code paths for GStreamer 0.10 and 1.0. Change-Id: I04d57303e683353b8734c62ef5016fa965a9627b git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138364 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> --- .../gstreamer/MediaPlayerPrivateGStreamer.cpp | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp index f2bd292..736fd5a 100644 --- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp +++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp @@ -74,10 +74,17 @@ typedef enum { GST_PLAY_FLAG_BUFFERING = 0x000000100 } GstPlayFlags; +// gPercentMax is used when parsing buffering ranges with +// gst_query_parse_nth_buffering_range as there was a bug in GStreamer +// 0.10 that was using 100 instead of GST_FORMAT_PERCENT_MAX. This was +// corrected in 1.0. gst_query_parse_buffering_range worked as +// expected with GST_FORMAT_PERCENT_MAX in both cases. #ifdef GST_API_VERSION_1 static const char* gPlaybinName = "playbin"; +static const gint64 gPercentMax = GST_FORMAT_PERCENT_MAX; #else static const char* gPlaybinName = "playbin2"; +static const gint64 gPercentMax = 100; #endif GST_DEBUG_CATEGORY_STATIC(webkit_media_player_debug); @@ -749,11 +756,11 @@ PassRefPtr<TimeRanges> MediaPlayerPrivateGStreamer::buffered() const return timeRanges.release(); } - gint64 rangeStart = 0, rangeStop = 0; for (guint index = 0; index < gst_query_get_n_buffering_ranges(query); index++) { + gint64 rangeStart = 0, rangeStop = 0; if (gst_query_parse_nth_buffering_range(query, index, &rangeStart, &rangeStop)) - timeRanges->add(static_cast<float>((rangeStart * mediaDuration) / 100), - static_cast<float>((rangeStop * mediaDuration) / 100)); + timeRanges->add(static_cast<float>((rangeStart * mediaDuration) / gPercentMax), + static_cast<float>((rangeStop * mediaDuration) / gPercentMax)); } // Fallback to the more general maxTimeLoaded() if no range has -- 1.7.1 ++++++ defines_qt_webkit.diff ++++++ diff -urNB orig.webkit-qtwebkit-23/Tools/qmake/qt_webkit.pri webkit-qtwebkit-23/Tools/qmake/qt_webkit.pri --- orig.webkit-qtwebkit-23/Tools/qmake/qt_webkit.pri 2013-03-14 14:24:37.000000000 +0100 +++ webkit-qtwebkit-23/Tools/qmake/qt_webkit.pri 2013-03-16 14:05:25.474814889 +0100 @@ -16,6 +16,7 @@ !contains(QT_CONFIG, modular)|contains(QT_ELIGIBLE_MODULES, webkit) { QT_CONFIG += webkit + DEFINES += QT_WEBKIT } else { warning("Attempted to include $$QT.webkit.name in the build, but it was not enabled in configure.") } ++++++ do-not-force-optimization-level.diff ++++++ diff -urNB orig.webkit-qtwebkit-23/configure.ac webkit-qtwebkit-23/configure.ac --- orig.webkit-qtwebkit-23/configure.ac 2013-04-07 15:18:00.547041081 +0200 +++ webkit-qtwebkit-23/configure.ac 2013-04-07 15:14:49.538429017 +0200 @@ -956,14 +956,6 @@ AC_DEFINE([NDEBUG], [1], [Define to disable debugging features]) fi -# Add the appropriate 'O' level for optimized builds -if test "$enable_optimizations" = "yes"; then - CXXFLAGS="$CXXFLAGS -O2" - CFLAGS="$CFLAGS -O2" -else - CXXFLAGS="$CXXFLAGS -O0" - CFLAGS="$CFLAGS -O0" -fi PKG_CHECK_MODULES([LIBSOUP], [libsoup-2.4 >= $LIBSOUP_REQUIRED_VERSION]) diff -urNB orig.webkit-qtwebkit-23/Source/JavaScriptCore/GNUmakefile.am webkit-qtwebkit-23/Source/JavaScriptCore/GNUmakefile.am --- orig.webkit-qtwebkit-23/Source/JavaScriptCore/GNUmakefile.am 2013-03-14 14:24:37.000000000 +0100 +++ webkit-qtwebkit-23/Source/JavaScriptCore/GNUmakefile.am 2013-04-07 15:17:32.598390487 +0200 @@ -35,7 +35,6 @@ libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CFLAGS = \ -fstrict-aliasing \ - -O3 \ $(javascriptcore_cflags) libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPPFLAGS = \ diff -urNB orig.webkit-qtwebkit-23/Source/JavaScriptCore/Target.pri webkit-qtwebkit-23/Source/JavaScriptCore/Target.pri --- orig.webkit-qtwebkit-23/Source/JavaScriptCore/Target.pri 2013-04-07 15:18:00.582040643 +0200 +++ webkit-qtwebkit-23/Source/JavaScriptCore/Target.pri 2013-04-07 15:14:49.539429004 +0200 @@ -15,9 +15,6 @@ CONFIG += staticlib -*-g++*:QMAKE_CXXFLAGS_RELEASE -= -O2 -*-g++*:QMAKE_CXXFLAGS_RELEASE += -O3 - # Rules when JIT enabled (not disabled) !contains(DEFINES, ENABLE_JIT=0) { linux*-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) { diff -urNB orig.webkit-qtwebkit-23/Source/ThirdParty/gyp/test/cxxflags/gyptest-cxxflags.py webkit-qtwebkit-23/Source/ThirdParty/gyp/test/cxxflags/gyptest-cxxflags.py --- orig.webkit-qtwebkit-23/Source/ThirdParty/gyp/test/cxxflags/gyptest-cxxflags.py 2013-04-07 15:18:00.588040568 +0200 +++ webkit-qtwebkit-23/Source/ThirdParty/gyp/test/cxxflags/gyptest-cxxflags.py 2013-04-07 15:14:49.539429004 +0200 @@ -28,7 +28,6 @@ try: PushEnv() - os.environ['CXXFLAGS'] = '-O0' test.run_gyp('cxxflags.gyp') finally: # We clear the environ after calling gyp. When the auto-regeneration happens, diff -urNB orig.webkit-qtwebkit-23/Source/WTF/GNUmakefile.am webkit-qtwebkit-23/Source/WTF/GNUmakefile.am --- orig.webkit-qtwebkit-23/Source/WTF/GNUmakefile.am 2013-03-14 14:24:37.000000000 +0100 +++ webkit-qtwebkit-23/Source/WTF/GNUmakefile.am 2013-04-07 15:17:21.514529054 +0200 @@ -26,7 +26,6 @@ libWTF_la_CFLAGS = \ -fstrict-aliasing \ - -O3 \ $(global_cflags) \ $(GLIB_CFLAGS) \ $(UNICODE_CFLAGS) diff -urNB orig.webkit-qtwebkit-23/Source/WTF/WTF.pro webkit-qtwebkit-23/Source/WTF/WTF.pro --- orig.webkit-qtwebkit-23/Source/WTF/WTF.pro 2013-03-14 14:24:37.000000000 +0100 +++ webkit-qtwebkit-23/Source/WTF/WTF.pro 2013-04-07 15:16:15.211357958 +0200 @@ -268,9 +268,6 @@ QT += core QT -= gui -*-g++*:QMAKE_CXXFLAGS_RELEASE -= -O2 -*-g++*:QMAKE_CXXFLAGS_RELEASE += -O3 - *sh4* { QMAKE_CXXFLAGS += -mieee -w QMAKE_CFLAGS += -mieee -w diff -urNB orig.webkit-qtwebkit-23/Tools/qmake/mkspecs/features/unix/default_pre.prf webkit-qtwebkit-23/Tools/qmake/mkspecs/features/unix/default_pre.prf --- orig.webkit-qtwebkit-23/Tools/qmake/mkspecs/features/unix/default_pre.prf 2013-04-07 15:18:00.644039868 +0200 +++ webkit-qtwebkit-23/Tools/qmake/mkspecs/features/unix/default_pre.prf 2013-04-07 15:14:49.539429004 +0200 @@ -12,6 +12,10 @@ SBOX_CHECK = $$(_SBOX_DIR) !isEmpty(SBOX_CHECK): CONFIG += scratchbox +QMAKE_CFLAGS_RELEASE = "" +QMAKE_CXXFLAGS_RELEASE = "" +QMAKE_LFLAGS_RELEASE = "" + # If Qt is configured with embedded or QPA we set a convenience config # flag that can be used to test for either of these situations. contains(QT_CONFIG, qpa)|contains(QT_CONFIG, embedded): CONFIG += embedded diff -urNB orig.webkit-qtwebkit-23/Tools/Tools.pro webkit-qtwebkit-23/Tools/Tools.pro --- orig.webkit-qtwebkit-23/Tools/Tools.pro 2013-04-07 15:18:00.772038268 +0200 +++ webkit-qtwebkit-23/Tools/Tools.pro 2013-04-07 15:14:49.539429004 +0200 @@ -7,6 +7,10 @@ TEMPLATE = subdirs CONFIG += ordered +QMAKE_CFLAGS_RELEASE = "" +QMAKE_CXXFLAGS_RELEASE = "" +QMAKE_LFLAGS_RELEASE = "" + !no_webkit1 { SUBDIRS += QtTestBrowser/QtTestBrowser.pro contains(DEFINES, HAVE_QTTESTLIB=1): SUBDIRS += DumpRenderTree/qt/DumpRenderTree.pro ++++++ gstreamer-1.0.diff ++++++ diff -urNB webkit-qtwebkit-23/Source/WebCore/WebCore.pri new/Source/WebCore/WebCore.pri --- webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-02-15 16:46:12.000000000 +0100 +++ new/Source/WebCore/WebCore.pri 2013-02-21 15:46:00.298855975 +0100 @@ -197,8 +197,10 @@ contains(DEFINES, WTF_USE_GSTREAMER=1) { DEFINES += ENABLE_GLIB_SUPPORT=1 - PKGCONFIG += glib-2.0 gio-2.0 gstreamer-0.10 gstreamer-app-0.10 gstreamer-base-0.10 gstreamer-interfaces-0.10 gstreamer-pbutils-0.10 gstreamer-plugins-base-0.10 gstreamer-video-0.10 -} + DEFINES += GST_API_VERSION=1.0 + DEFINES += GST_API_VERSION_1 + PKGCONFIG += glib-2.0 gio-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-base-1.0 gstreamer-pbutils-1.0 gstreamer-plugins-base-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 + } contains(DEFINES, ENABLE_VIDEO=1) { contains(DEFINES, WTF_USE_QTKIT=1) { @@ -233,7 +235,7 @@ contains(DEFINES, WTF_USE_GSTREAMER=1) { DEFINES += WTF_USE_WEBAUDIO_GSTREAMER=1 INCLUDEPATH += $$SOURCE_DIR/platform/audio/gstreamer - PKGCONFIG += gstreamer-audio-0.10 gstreamer-fft-0.10 + PKGCONFIG += gstreamer-audio-1.0 gstreamer-fft-1.0 } } diff -urNB webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h new/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h --- webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h 2013-02-15 16:46:12.000000000 +0100 +++ new/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h 2013-02-21 15:46:00.298855975 +0100 @@ -157,7 +157,7 @@ virtual void needTouchEvents(bool) { } #endif -#if ENABLE(VIDEO) && (USE(GSTREAMER) || USE(QT_MULTIMEDIA) || USE(QTKIT)) +#if ENABLE(VIDEO) && ((USE(GSTREAMER) && !defined(GST_API_VERSION_1)) || USE(QT_MULTIMEDIA) || USE(QTKIT)) virtual bool supportsFullscreenForNode(const Node*); virtual void enterFullscreenForNode(Node*); virtual void exitFullscreenForNode(Node*); diff -urNB webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h new/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h --- webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h 2013-02-15 16:46:12.000000000 +0100 +++ new/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h 2013-02-21 15:52:57.400847675 +0100 @@ -106,10 +106,10 @@ private: ChromeClientQt* m_chromeClient; HTMLVideoElement* m_videoElement; -#if USE(QT_MULTIMEDIA) +#if USE(QT_MULTIMEDIA) && !defined(GST_API_VERSION_1) QWebFullScreenVideoHandler* m_FullScreenVideoHandler; #endif -#if USE(GSTREAMER) +#if USE(GSTREAMER) && !defined(GST_API_VERSION_1) GStreamerFullScreenVideoHandler* m_FullScreenVideoHandlerGStreamer; #endif #if USE(QTKIT) diff -urNB webkit-qtwebkit-23/Tools/qmake/mkspecs/features/features.prf new/Tools/qmake/mkspecs/features/features.prf --- webkit-qtwebkit-23/Tools/qmake/mkspecs/features/features.prf 2013-02-15 16:46:12.000000000 +0100 +++ new/Tools/qmake/mkspecs/features/features.prf 2013-02-21 15:46:00.297855972 +0100 @@ -186,7 +186,7 @@ DEFINES += WTF_USE_QTKIT=1 } } else: linux-*:!contains(DEFINES, USE_QTMULTIMEDIA=1) { - !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 \'gstreamer-0.10 >= 0.10.30\' \'gstreamer-plugins-base-0.10 >= 0.10.30\'): { + !contains(QT_CONFIG, no-pkg-config):packagesExist("glib-2.0 gio-2.0 gstreamer-1.0 gstreamer-plugins-base-1.0") { DEFINES += ENABLE_VIDEO=1 DEFINES += WTF_USE_GSTREAMER=1 } else { ++++++ libQtWebKit4-gcc47.patch ++++++ diff -urNB orig.webkit-qtwebkit-23/configure.ac webkit-qtwebkit-23/configure.ac --- orig.webkit-qtwebkit-23/configure.ac 2013-03-14 14:24:37.000000000 +0100 +++ webkit-qtwebkit-23/configure.ac 2013-03-16 18:37:28.146753408 +0100 @@ -178,7 +178,6 @@ # cleanly with that. AC_LANG_PUSH(C++) TMPCXXFLAGS=$CXXFLAGS -CXXFLAGS="-Wall -Werror" AC_MSG_CHECKING([if we have to disable C++0x compat warnings for GCC >= 4.6.0]) AC_TRY_COMPILE([ namespace std { diff -urNB orig.webkit-qtwebkit-23/Tools/qmake/mkspecs/features/unix/default_post.prf webkit-qtwebkit-23/Tools/qmake/mkspecs/features/unix/default_post.prf --- orig.webkit-qtwebkit-23/Tools/qmake/mkspecs/features/unix/default_post.prf 2013-03-16 18:36:20.726596276 +0100 +++ webkit-qtwebkit-23/Tools/qmake/mkspecs/features/unix/default_post.prf 2013-03-16 18:37:58.117378724 +0100 @@ -21,7 +21,7 @@ linux-*g++* { !production_build { # Treat warnings as errors on x86/Linux/GCC - isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386): QMAKE_CXXFLAGS += -Werror + #isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386): QMAKE_CXXFLAGS += -Werror } greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 5) { !contains(QMAKE_CXXFLAGS, -std=(c|gnu)\\+\\+(0x|11)) { ++++++ qwebview-buildfixes.diff ++++++ --- tools/designer/src/plugins/qwebview/qwebview_plugin.cpp +++ tools/designer/src/plugins/qwebview/qwebview_plugin.cpp @@ -45,7 +45,7 @@ #include <QtDesigner/QExtensionManager> #include <QtCore/qplugin.h> -#include <QtWebKit/QWebView> +#include "qwebview.h" static const char *toolTipC = "QtWebKit Web widget"; --- tools/designer/src/plugins/qwebview/qwebview.pro +++ tools/designer/src/plugins/qwebview/qwebview.pro @@ -2,6 +2,8 @@ TARGET = qwebview CONFIG += qt warn_on plugin QT += webkit +INCLUDEPATH += ../../../../../Source/WebKit/qt/Api +LIBS += -L../../../../../WebKitBuild/Release/lib include(../plugins.pri) build_all:!build_pass { ++++++ reduce-link-optimization.diff ++++++ Index: webkit-qtwebkit-23/Source/WebCore/WebCore.pri =================================================================== --- webkit-qtwebkit-23.orig/Source/WebCore/WebCore.pri 2013-02-18 14:25:04.705311898 +0000 +++ webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-02-18 14:25:04.701311898 +0000 @@ -345,6 +345,8 @@ mac { unix:!mac:*-g++*:QMAKE_CXXFLAGS += -ffunction-sections } unix:!mac:*-g++*:QMAKE_CXXFLAGS += -fdata-sections +unix:!mac:*-g++*:!equals(QT_ARCH, powerpc):!equals(QT_ARCH, s390):!equals(QT_ARCH, mips):!equals(QT_ARCH, arm):QMAKE_LFLAGS += -Wl,--no-keep-memory +unix:!mac:*-g++*:!equals(QT_ARCH, powerpc):!equals(QT_ARCH, s390):!equals(QT_ARCH, mips):!equals(QT_ARCH, arm):QMAKE_LFLAGS += -Wl,--reduce-memory-overheads unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,--gc-sections linux*-g++*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF ++++++ webkit-qtwebkit-2.2-tp1-pluginpath.patch ++++++ diff -urNB orig.webkit-qtwebkit-23/Source/WebCore/plugins/PluginDatabase.cpp webkit-qtwebkit-23/Source/WebCore/plugins/PluginDatabase.cpp --- orig.webkit-qtwebkit-23/Source/WebCore/plugins/PluginDatabase.cpp 2013-03-14 14:24:37.000000000 +0100 +++ webkit-qtwebkit-23/Source/WebCore/plugins/PluginDatabase.cpp 2013-03-16 13:29:10.274008641 +0100 @@ -384,6 +384,7 @@ paths.append("/usr/lib/firefox/plugins"); paths.append("/usr/lib64/browser-plugins"); paths.append("/usr/lib/browser-plugins"); + paths.append("/usr/lib/mozilla/plugins-wrapped"); paths.append("/usr/lib/mozilla/plugins"); paths.append("/usr/local/netscape/plugins"); paths.append("/opt/mozilla/plugins"); @@ -393,6 +394,7 @@ paths.append("/usr/lib/netscape/plugins"); paths.append("/usr/lib/netscape/plugins-libc5"); paths.append("/usr/lib/netscape/plugins-libc6"); + paths.append("/usr/lib64/mozilla/plugins-wrapped"); paths.append("/usr/lib64/netscape/plugins"); paths.append("/usr/lib64/mozilla/plugins"); paths.append("/usr/lib/nsbrowser/plugins"); -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de