summaryrefslogtreecommitdiff
path: root/www/qt4-webkit/files/patch-libcxx
diff options
context:
space:
mode:
Diffstat (limited to 'www/qt4-webkit/files/patch-libcxx')
-rw-r--r--www/qt4-webkit/files/patch-libcxx620
1 files changed, 620 insertions, 0 deletions
diff --git a/www/qt4-webkit/files/patch-libcxx b/www/qt4-webkit/files/patch-libcxx
new file mode 100644
index 000000000000..ab695126e9fc
--- /dev/null
+++ b/www/qt4-webkit/files/patch-libcxx
@@ -0,0 +1,620 @@
+Several upstream (as in WebKit itself) commits that fix the build with libc++,
+plus a few additional changes made only for the port (the OS(FREEBSD) part for
+time_t). Some of those commits had to be edited because they did not apply
+cleanly to the ancient WebKit checkout present in Qt.
+
+Upstream commit messages:
+
+------------------------------------------------------------------------
+r86529 | abarth@webkit.org | 2011-05-16 09:30:58 +0300 (Mon, 16 May 2011) | 7 lines
+
+2011-05-15 Adam Barth <abarth@webkit.org>
+
+ Attempt to fix Qt build. (Strict PassOwnPtr fix.)
+
+ * dom/XMLDocumentParserQt.cpp:
+ (WebCore::XMLDocumentParser::doEnd):
+
+------------------------------------------------------------------------
+r86530 | abarth@webkit.org | 2011-05-16 09:36:56 +0300 (Mon, 16 May 2011) | 13 lines
+
+2011-05-15 Adam Barth <abarth@webkit.org>
+
+ Attempt to fix Qt build. (Strict PassOwnPtr fix.)
+
+* platform/network/qt/QNetworkReplyHandler.cpp:
+(WebCore::QNetworkReplyWrapper::release):
+(WebCore::QNetworkReplyWrapper::receiveMetaData):
+(WebCore::QNetworkReplyWrapper::receiveSniffedMIMEType):
+(WebCore::QNetworkReplyHandler::release):
+(WebCore::QNetworkReplyHandler::finish):
+(WebCore::QNetworkReplyHandler::redirect):
+(WebCore::QNetworkReplyHandler::start):
+
+------------------------------------------------------------------------
+r86531 | abarth@webkit.org | 2011-05-16 09:41:08 +0300 (Mon, 16 May 2011) | 7 lines
+
+2011-05-15 Adam Barth <abarth@webkit.org>
+
+ Attempt to fix Qt build. (Strict PassOwnPtr fix.)
+
+ * platform/text/qt/TextCodecQt.cpp:
+ (WebCore::newTextCodecQt):
+
+------------------------------------------------------------------------
+r86532 | abarth@webkit.org | 2011-05-16 09:46:33 +0300 (Mon, 16 May 2011) | 8 lines
+
+2011-05-15 Adam Barth <abarth@webkit.org>
+
+ Attempt to fix Qt build. (Strict PassOwnPtr fix.)
+
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+ (WebCore::GraphicsLayerQt::GraphicsLayerQt):
+ (WebCore::GraphicsLayer::create):
+
+
+------------------------------------------------------------------------
+r86533 | abarth@webkit.org | 2011-05-16 09:52:23 +0300 (Mon, 16 May 2011) | 10 lines
+
+2011-05-15 Adam Barth <abarth@webkit.org>
+
+ Attempt to fix the Qt build. (Strict PassOwnPtr fix.)
+
+ * Api/qgraphicswebview.cpp:
+ (QGraphicsWebViewPrivate::detachCurrentPage):
+ (QGraphicsWebView::setPage):
+ * Api/qwebpage.cpp:
+ (QWebPage::setView):
+
+------------------------------------------------------------------------
+r86537 | abarth@webkit.org | 2011-05-16 10:24:01 +0300 (Mon, 16 May 2011) | 41 lines
+
+2011-05-16 Adam Barth <abarth@webkit.org>
+
+ [Qt] QtPlatformPlugin create methods should use PassOwnPtr
+ https://bugs.webkit.org/show_bug.cgi?id=60873
+
+ This change is slightly more than a build fix because the patch kind of
+ spidered a bit while I was trying to fix the build the "right way."
+ Hopefully nothing here is controversial.
+
+ * Api/qwebpage.cpp:
+ (QWebPagePrivate::adjustPointForClicking):
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::createSelectPopup):
+ * WebCoreSupport/FullScreenVideoQt.cpp:
+ (WebCore::FullScreenVideoQt::FullScreenVideoQt):
+ (WebCore::FullScreenVideoQt::~FullScreenVideoQt):
+ * WebCoreSupport/FullScreenVideoQt.h:
+ * WebCoreSupport/NotificationPresenterClientQt.cpp:
+ (WebCore::NotificationWrapper::NotificationWrapper):
+ (WebCore::NotificationPresenterClientQt::displayNotification):
+ * WebCoreSupport/PopupMenuQt.cpp:
+ (WebCore::PopupMenuQt::PopupMenuQt):
+ (WebCore::PopupMenuQt::~PopupMenuQt):
+ (WebCore::PopupMenuQt::show):
+ * WebCoreSupport/PopupMenuQt.h:
+ * WebCoreSupport/QtPlatformPlugin.cpp:
+ (WebCore::QtPlatformPlugin::createSelectInputMethod):
+ (WebCore::QtPlatformPlugin::createNotificationPresenter):
+ (WebCore::QtPlatformPlugin::createHapticFeedbackPlayer):
+ (WebCore::QtPlatformPlugin::createTouchModifier):
+ (WebCore::QtPlatformPlugin::createFullScreenVideoHandler):
+ * WebCoreSupport/QtPlatformPlugin.h:
+ (WebCore::QtPlatformPlugin::QtPlatformPlugin):
+2011-05-16 Adam Barth <abarth@webkit.org>
+
+ [Qt] QtPlatformPlugin create methods should use PassOwnPtr
+ https://bugs.webkit.org/show_bug.cgi?id=60873
+
+ * plugins/qt/PluginViewQt.cpp:
+ (WebCore::PluginView::platformStart):
+
+------------------------------------------------------------------------
+r86538 | abarth@webkit.org | 2011-05-16 10:27:51 +0300 (Mon, 16 May 2011) | 6 lines
+
+2011-05-16 Adam Barth <abarth@webkit.org>
+
+ Missing include.
+
+ * WebCoreSupport/PopupMenuQt.h:
+
+------------------------------------------------------------------------
+r86540 | abarth@webkit.org | 2011-05-16 10:43:22 +0300 (Mon, 16 May 2011) | 10 lines
+
+2011-05-16 Adam Barth <abarth@webkit.org>
+
+ Attempt to fix Qt build. (Strict PassOwnPtr fix.)
+
+ This patch requires some slightly fancy footwork.
+
+ * WebCoreSupport/InspectorClientQt.cpp:
+ (WebCore::InspectorClientQt::openInspectorFrontend):
+ (WebCore::InspectorFrontendClientQt::InspectorFrontendClientQt):
+
+------------------------------------------------------------------------
+r86541 | abarth@webkit.org | 2011-05-16 10:51:04 +0300 (Mon, 16 May 2011) | 7 lines
+
+2011-05-16 Adam Barth <abarth@webkit.org>
+
+ Sigh. This code is somewhat crazy.
+
+ * WebCoreSupport/InspectorClientQt.cpp:
+ (WebCore::InspectorClientQt::openInspectorFrontend):
+
+------------------------------------------------------------------------
+r86550 | abarth@webkit.org | 2011-05-16 12:30:40 +0300 (Mon, 16 May 2011) | 13 lines
+
+2011-05-16 Adam Barth <abarth@webkit.org>
+
+ Partial revert of r86537. FullScreenVideoQt.h can't depend on OwnPtr.h
+ because moc_FullScreenVideoQt.cpp fails to include config.h.
+ Apparently, having moc_FullScreenVideoQt.cpp properly include config.h
+ is hard, so we're going back to manual new and delete for this class.
+ Bad times.
+
+ * WebCoreSupport/FullScreenVideoQt.cpp:
+ (WebCore::FullScreenVideoQt::FullScreenVideoQt):
+ (WebCore::FullScreenVideoQt::~FullScreenVideoQt):
+ * WebCoreSupport/FullScreenVideoQt.h:
+
+------------------------------------------------------------------------
+r90915 | andersca@apple.com | 2011-07-13 17:11:49 +0300 (Wed, 13 Jul 2011) | 7 lines
+
+If a compiler has nullptr support, include <cstddef> to get the nullptr_t definition
+https://bugs.webkit.org/show_bug.cgi?id=64429
+
+Include the cstddef which has the nullptr_t typedef according to the C++0x standard.
+
+* wtf/NullPtr.h:
+
+------------------------------------------------------------------------
+r92556 | darin@apple.com | 2011-08-06 23:17:26 +0300 (Sat, 06 Aug 2011) | 17 lines
+
+Fix Timer heap implementation to work with more libraries (other versions of STL)
+https://bugs.webkit.org/show_bug.cgi?id=65782
+
+Reviewed by Anders Carlsson.
+
+No behavior change, so no tests needed. Existing tests pass.
+
+* platform/Timer.cpp: Added TimerHeapPointer and TimerHeapReference class
+alongside the TimerHeapIterator class. Also added a swap function. Also
+added a TimerHeapLessThanFunction class.
+(WebCore::TimerBase::heapDecreaseKey): Pass pointers in to the TimerHeapIterator
+since that's how the class works now. Pass a TimerHeapLessThanFunction object
+instead of letting the library use the < operator directly.
+(WebCore::TimerBase::heapPopMin): Ditto.
+
+* platform/Timer.h: Updated for above changes.
+
+------------------------------------------------------------------------
+r107489 | weinig@apple.com | 2012-02-12 01:10:24 +0200 (Sun, 12 Feb 2012) | 9 lines
+
+Prepare JavaScriptCore to build with libc++
+<rdar://problem/10426673>
+https://bugs.webkit.org/show_bug.cgi?id=78424
+
+Reviewed by Anders Carlsson.
+
+* wtf/NullPtr.cpp:
+* wtf/NullPtr.h:
+libc++ provides std::nullptr emulation, so we don't have to.
+
+------------------------------------------------------------------------
+--- src/3rdparty/webkit/Source/JavaScriptCore/wtf/NullPtr.h
++++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/NullPtr.h
+@@ -35,10 +35,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #define __has_feature(feature) 0
+ #endif
+
+-#if __has_feature(cxx_nullptr) || (GCC_VERSION_AT_LEAST(4, 6, 0) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && _MSC_VER >= 1600 && !COMPILER(INTEL)) || defined(_LIBCPP_VERSION)
++#include <ciso646>
++
++#if __has_feature(cxx_nullptr) || (GCC_VERSION_AT_LEAST(4, 6, 0) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && _MSC_VER >= 1600 && !COMPILER(INTEL)) || defined(_LIBCPP_VERSION)
+
+ #define HAVE_NULLPTR 1
+
++#include <cstddef>
++
+ #else
+
+ namespace std {
+--- src/3rdparty/webkit/Source/WebCore/dom/XMLDocumentParserQt.cpp (revision 86528)
++++ src/3rdparty/webkit/Source/WebCore/dom/XMLDocumentParserQt.cpp (revision 86529)
+@@ -215,7 +215,7 @@
+ {
+ #if ENABLE(XSLT)
+ if (m_sawXSLTransform) {
+- document()->setTransformSource(new TransformSource(m_originalSourceForTransform));
++ document()->setTransformSource(adoptPtr(new TransformSource(m_originalSourceForTransform)));
+ document()->setParsing(false); // Make the doc think it's done, so it will apply xsl sheets.
+ document()->styleSelectorChanged(RecalcStyleImmediately);
+ document()->setParsing(true);
+--- src/3rdparty/webkit/Source/WebCore/loader/icon/IconRecord.h
++++ src/3rdparty/webkit/Source/WebCore/loader/icon/IconRecord.h
+@@ -38,7 +38,7 @@
+ #include <wtf/OwnPtr.h>
+ #include <wtf/text/StringHash.h>
+
+-#if OS(SOLARIS)
++#if OS(FREEBSD) || OS(SOLARIS)
+ #include <sys/types.h> // For time_t structure.
+ #endif
+
+--- src/3rdparty/webkit/Source/WebCore/page/Page.h
++++ src/3rdparty/webkit/Source/WebCore/page/Page.h
+@@ -29,7 +29,7 @@
+ #include <wtf/HashSet.h>
+ #include <wtf/Noncopyable.h>
+
+-#if OS(SOLARIS)
++#if OS(FREEBSD) || OS(SOLARIS)
+ #include <sys/time.h> // For time_t structure.
+ #endif
+
+--- src/3rdparty/webkit/Source/WebCore/platform/network/ResourceResponseBase.h
++++ src/3rdparty/webkit/Source/WebCore/platform/network/ResourceResponseBase.h
+@@ -35,7 +35,7 @@
+ #include <wtf/PassOwnPtr.h>
+ #include <wtf/RefPtr.h>
+
+-#if OS(SOLARIS)
++#if OS(FREEBSD) || OS(SOLARIS)
+ #include <sys/time.h> // For time_t structure.
+ #endif
+
+--- src/3rdparty/webkit/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp (revision 86529)
++++ src/3rdparty/webkit/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp (revision 86530)
+@@ -285,7 +285,7 @@
+
+ Q_ASSERT(!m_sniffer);
+
+- m_sniffer = new QtMIMETypeSniffer(m_reply, m_advertisedMIMEType, isSupportedImageType);
++ m_sniffer = adoptPtr(new QtMIMETypeSniffer(m_reply, m_advertisedMIMEType, isSupportedImageType));
+
+ if (m_sniffer->isFinished()) {
+ receiveSniffedMIMEType();
+@@ -666,7 +666,7 @@
+ if (!reply)
+ return;
+
+- m_replyWrapper = new QNetworkReplyWrapper(&m_queue, reply, m_resourceHandle->shouldContentSniff() && d->m_context->mimeSniffingEnabled(), this);
++ m_replyWrapper = adoptPtr(new QNetworkReplyWrapper(&m_queue, reply, m_resourceHandle->shouldContentSniff() && d->m_context->mimeSniffingEnabled(), this));
+
+ if (m_loadType == SynchronousLoad) {
+ m_replyWrapper->synchronousLoad();
+===================================================================
+--- src/3rdparty/webkit/Source/WebCore/platform/text/qt/TextCodecQt.cpp (revision 86530)
++++ src/3rdparty/webkit/Source/WebCore/platform/text/qt/TextCodecQt.cpp (revision 86531)
+@@ -64,7 +64,7 @@
+
+ static PassOwnPtr<TextCodec> newTextCodecQt(const TextEncoding& encoding, const void*)
+ {
+- return new TextCodecQt(encoding);
++ return adoptPtr(new TextCodecQt(encoding));
+ }
+
+ void TextCodecQt::registerCodecs(TextCodecRegistrar registrar)
+
+--- src/3rdparty/webkit/Source/WebKit/qt/Api/qgraphicswebview.cpp (revision 86532)
++++ src/3rdparty/webkit/Source/WebKit/qt/Api/qgraphicswebview.cpp (revision 86533)
+@@ -504,7 +504,7 @@
+ if (!d->page)
+ return;
+
+- d->page->d->client = new PageClientQGraphicsWidget(this, page); // set the page client
++ d->page->d->client = adoptPtr(new PageClientQGraphicsWidget(this, page));
+
+ if (d->overlay())
+ d->overlay()->prepareGraphicsItemGeometryChange();
+--- src/3rdparty/webkit/Source/WebKit/qt/Api/qwebpage.cpp (revision 86532)
++++ src/3rdparty/webkit/Source/WebKit/qt/Api/qwebpage.cpp (revision 86550)
+@@ -1319,7 +1319,7 @@
+ void QWebPagePrivate::adjustPointForClicking(QGraphicsSceneMouseEvent* ev)
+ {
+ QtPlatformPlugin platformPlugin;
+- QWebTouchModifier* touchModifier = platformPlugin.createTouchModifier();
++ OwnPtr<QWebTouchModifier> touchModifier = platformPlugin.createTouchModifier();
+ if (!touchModifier)
+ return;
+
+@@ -1328,8 +1328,7 @@
+ unsigned bottomPadding = touchModifier->hitTestPaddingForTouch(QWebTouchModifier::Down);
+ unsigned leftPadding = touchModifier->hitTestPaddingForTouch(QWebTouchModifier::Left);
+
+- delete touchModifier;
+- touchModifier = 0;
++ touchModifier = nullptr;
+
+ if (!topPadding && !rightPadding && !bottomPadding && !leftPadding)
+ return;
+@@ -2044,7 +2044,7 @@
+ }
+
+ if (view)
+- d->client = new PageClientQWidget(view, this);
++ d->client = adoptPtr(new PageClientQWidget(view, this));
+ }
+
+ /*!
+--- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.h (revision 86536)
++++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.h (revision 86550)
+@@ -22,6 +22,8 @@
+
+ #include "PopupMenu.h"
+ #include <QObject>
++#include <wtf/OwnPtr.h>
++#include <wtf/PassOwnPtr.h>
+
+ class QWebSelectData;
+ class QWebSelectMethod;
+@@ -49,8 +51,8 @@
+
+ private:
+ PopupMenuClient* m_popupClient;
+- QWebSelectMethod* m_popup;
+- QWebSelectData* m_selectData;
++ OwnPtr<QWebSelectMethod> m_popup;
++ OwnPtr<QWebSelectData> m_selectData;
+ const ChromeClientQt* m_chromeClient;
+ };
+
+--- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h (revision 86536)
++++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h (revision 86550)
+@@ -22,6 +22,7 @@
+ #define QtPlatformPlugin_h
+
+ #include <QPluginLoader>
++#include <wtf/PassOwnPtr.h>
+
+ class QWebSelectMethod;
+ class QWebKitPlatformPlugin;
+@@ -37,15 +38,20 @@
+
+ class QtPlatformPlugin {
+ public:
+- QtPlatformPlugin() : m_loaded(false), m_plugin(0) {}
++ QtPlatformPlugin()
++ : m_loaded(false)
++ , m_plugin(0)
++ {
++ }
++
+ ~QtPlatformPlugin();
+
+- QWebSelectMethod* createSelectInputMethod();
+- QWebNotificationPresenter* createNotificationPresenter();
+- QWebHapticFeedbackPlayer* createHapticFeedbackPlayer();
+- QWebTouchModifier* createTouchModifier();
++ PassOwnPtr<QWebSelectMethod> createSelectInputMethod();
++ PassOwnPtr<QWebNotificationPresenter> createNotificationPresenter();
++ PassOwnPtr<QWebHapticFeedbackPlayer> createHapticFeedbackPlayer();
++ PassOwnPtr<QWebTouchModifier> createTouchModifier();
+ #if ENABLE(VIDEO) && USE(QT_MULTIMEDIA)
+- QWebFullScreenVideoHandler* createFullScreenVideoHandler();
++ PassOwnPtr<QWebFullScreenVideoHandler> createFullScreenVideoHandler();
+ #endif
+
+ QWebKitPlatformPlugin* plugin();
+--- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp (revision 86536)
++++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp (revision 86550)
+@@ -696,18 +696,18 @@
+ }
+ #endif
+
+-QWebSelectMethod* ChromeClientQt::createSelectPopup() const
++PassOwnPtr<QWebSelectMethod> ChromeClientQt::createSelectPopup() const
+ {
+- QWebSelectMethod* result = m_platformPlugin.createSelectInputMethod();
++ OwnPtr<QWebSelectMethod> result = m_platformPlugin.createSelectInputMethod();
+ if (result)
+- return result;
++ return result.release();
+
+ #if defined(Q_WS_MAEMO_5)
+- return new QtMaemoWebPopup;
++ return adoptPtr(new QtMaemoWebPopup);
+ #elif !defined(QT_NO_COMBOBOX)
+- return new QtFallbackWebPopup(this);
++ return adoptPtr(new QtFallbackWebPopup(this));
+ #else
+- return 0;
++ return nullptr;
+ #endif
+ }
+
+--- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp (revision 86536)
++++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp (revision 86550)
+@@ -82,8 +82,6 @@
+
+ PopupMenuQt::PopupMenuQt(PopupMenuClient* client, const ChromeClientQt* chromeClient)
+ : m_popupClient(client)
+- , m_popup(0)
+- , m_selectData(0)
+ , m_chromeClient(chromeClient)
+ {
+ }
+@@ -90,8 +88,6 @@
+
+ PopupMenuQt::~PopupMenuQt()
+ {
+- delete m_selectData;
+- delete m_popup;
+ }
+
+ void PopupMenuQt::disconnectClient()
+@@ -107,11 +103,11 @@
+
+ if (!m_popup) {
+ m_popup = m_chromeClient->createSelectPopup();
+- connect(m_popup, SIGNAL(didHide()), this, SLOT(didHide()));
+- connect(m_popup, SIGNAL(selectItem(int, bool, bool)), this, SLOT(selectItem(int, bool, bool)));
++ connect(m_popup.get(), SIGNAL(didHide()), this, SLOT(didHide()));
++ connect(m_popup.get(), SIGNAL(selectItem(int, bool, bool)), this, SLOT(selectItem(int, bool, bool)));
+ }
+
+- if (QtFallbackWebPopup* fallback = qobject_cast<QtFallbackWebPopup*>(m_popup)) {
++ if (QtFallbackWebPopup* fallback = qobject_cast<QtFallbackWebPopup*>(m_popup.get())) {
+ QRect geometry(rect);
+ geometry.moveTopLeft(view->contentsToWindow(rect.location()));
+ fallback->setGeometry(geometry);
+@@ -118,10 +114,8 @@
+ fallback->setFont(m_popupClient->menuStyle().font().font());
+ }
+
+- if (m_selectData)
+- delete m_selectData;
+- m_selectData = new SelectData(m_popupClient);
+- m_popup->show(*m_selectData);
++ m_selectData = adoptPtr(new SelectData(m_popupClient));
++ m_popup->show(*m_selectData.get());
+ #endif
+ }
+
+--- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.cpp (revision 86536)
++++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.cpp (revision 86550)
+@@ -136,7 +136,7 @@
+ Q_ASSERT(m_chromeClient);
+
+ #if USE(QT_MULTIMEDIA)
+- m_FullScreenVideoHandler = m_chromeClient->m_platformPlugin.createFullScreenVideoHandler();
++ m_FullScreenVideoHandler = m_chromeClient->m_platformPlugin.createFullScreenVideoHandler().leakPtr();
+ if (!m_FullScreenVideoHandler)
+ m_FullScreenVideoHandler = new DefaultFullScreenVideoHandler;
+
+--- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp (revision 86536)
++++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp (revision 86550)
+@@ -102,36 +102,35 @@
+ return m_plugin;
+ }
+
+-QWebSelectMethod* QtPlatformPlugin::createSelectInputMethod()
++PassOwnPtr<QWebSelectMethod> QtPlatformPlugin::createSelectInputMethod()
+ {
+ QWebKitPlatformPlugin* p = plugin();
+- return p ? static_cast<QWebSelectMethod*>(p->createExtension(QWebKitPlatformPlugin::MultipleSelections)) : 0;
++ return adoptPtr(p ? static_cast<QWebSelectMethod*>(p->createExtension(QWebKitPlatformPlugin::MultipleSelections)) : 0);
+ }
+
+-
+-QWebNotificationPresenter* QtPlatformPlugin::createNotificationPresenter()
++PassOwnPtr<QWebNotificationPresenter> QtPlatformPlugin::createNotificationPresenter()
+ {
+ QWebKitPlatformPlugin* p = plugin();
+- return p ? static_cast<QWebNotificationPresenter*>(p->createExtension(QWebKitPlatformPlugin::Notifications)) : 0;
++ return adoptPtr(p ? static_cast<QWebNotificationPresenter*>(p->createExtension(QWebKitPlatformPlugin::Notifications)) : 0);
+ }
+
+-QWebHapticFeedbackPlayer* QtPlatformPlugin::createHapticFeedbackPlayer()
++PassOwnPtr<QWebHapticFeedbackPlayer> QtPlatformPlugin::createHapticFeedbackPlayer()
+ {
+ QWebKitPlatformPlugin* p = plugin();
+- return p ? static_cast<QWebHapticFeedbackPlayer*>(p->createExtension(QWebKitPlatformPlugin::Haptics)) : 0;
++ return adoptPtr(p ? static_cast<QWebHapticFeedbackPlayer*>(p->createExtension(QWebKitPlatformPlugin::Haptics)) : 0);
+ }
+
+-QWebTouchModifier* QtPlatformPlugin::createTouchModifier()
++PassOwnPtr<QWebTouchModifier> QtPlatformPlugin::createTouchModifier()
+ {
+ QWebKitPlatformPlugin* p = plugin();
+- return p ? static_cast<QWebTouchModifier*>(p->createExtension(QWebKitPlatformPlugin::TouchInteraction)) : 0;
++ return adoptPtr(p ? static_cast<QWebTouchModifier*>(p->createExtension(QWebKitPlatformPlugin::TouchInteraction)) : 0);
+ }
+
+ #if ENABLE(VIDEO) && USE(QT_MULTIMEDIA)
+-QWebFullScreenVideoHandler* QtPlatformPlugin::createFullScreenVideoHandler()
++PassOwnPtr<QWebFullScreenVideoHandler> QtPlatformPlugin::createFullScreenVideoHandler()
+ {
+ QWebKitPlatformPlugin* p = plugin();
+- return p ? static_cast<QWebFullScreenVideoHandler*>(p->createExtension(QWebKitPlatformPlugin::FullScreenVideoPlayer)) : 0;
++ return adoptPtr(p ? static_cast<QWebFullScreenVideoHandler*>(p->createExtension(QWebKitPlatformPlugin::FullScreenVideoPlayer)) : 0);
+ }
+ #endif
+
+--- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp (revision 86536)
++++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp (revision 86550)
+@@ -203,8 +203,9 @@
+ void InspectorClientQt::openInspectorFrontend(WebCore::InspectorController* inspectorController)
+ {
+ #if ENABLE(INSPECTOR)
+- QWebView* inspectorView = new QWebView;
+- InspectorClientWebPage* inspectorPage = new InspectorClientWebPage(inspectorView);
++ OwnPtr<QWebView> inspectorView = adoptPtr(new QWebView);
++ // FIXME: Where does inspectorPage get deleted?
++ InspectorClientWebPage* inspectorPage = new InspectorClientWebPage(inspectorView.get());
+ inspectorView->setPage(inspectorPage);
+
+ QWebInspector* inspector = m_inspectedWebPage->d->getOrCreateInspector();
+@@ -229,11 +230,14 @@
+ inspectorPage->setProperty("_q_inspectorJavaScriptWindowObjects", inspectorJavaScriptWindowObjects);
+ #endif
+ inspectorView->page()->mainFrame()->load(inspectorUrl);
+- m_inspectedWebPage->d->inspectorFrontend = inspectorView;
+- inspector->d->setFrontend(inspectorView);
++ m_inspectedWebPage->d->inspectorFrontend = inspectorView.get();
++ inspector->d->setFrontend(inspectorView.get());
+
+- m_frontendClient = new InspectorFrontendClientQt(m_inspectedWebPage, inspectorView, this);
+- inspectorView->page()->d->page->inspectorController()->setInspectorFrontendClient(m_frontendClient);
++ // Is 'controller' the same object as 'inspectorController' (which appears to be unused)?
++ InspectorController* controller = inspectorView->page()->d->page->inspectorController();
++ OwnPtr<InspectorFrontendClientQt> frontendClient = adoptPtr(new InspectorFrontendClientQt(m_inspectedWebPage, inspectorView.release(), this));
++ m_frontendClient = frontendClient.get();
++ controller->setInspectorFrontendClient(frontendClient.release());
+ m_frontendWebPage = inspectorPage;
+ #endif
+ }
+@@ -297,7 +301,7 @@
+
+ #if ENABLE(INSPECTOR)
+ InspectorFrontendClientQt::InspectorFrontendClientQt(QWebPage* inspectedWebPage, PassOwnPtr<QWebView> inspectorView, InspectorClientQt* inspectorClient)
+- : InspectorFrontendClientLocal(inspectedWebPage->d->page->inspectorController(), inspectorView->page()->d->page, new InspectorFrontendSettingsQt())
++ : InspectorFrontendClientLocal(inspectedWebPage->d->page->inspectorController(), inspectorView->page()->d->page, adoptPtr(new InspectorFrontendSettingsQt()))
+ , m_inspectedWebPage(inspectedWebPage)
+ , m_inspectorView(inspectorView)
+ , m_destroyingInspectorView(false)
+--- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp (revision 86536)
++++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp (revision 86550)
+@@ -211,9 +211,9 @@
+ QPixmap pixmap;
+ if (bytes.length() && pixmap.loadFromData(bytes)) {
+ QIcon icon(pixmap);
+- wrapper->m_notificationIcon = new QSystemTrayIcon(icon);
++ wrapper->m_notificationIcon = adoptPtr(new QSystemTrayIcon(icon));
+ } else
+- wrapper->m_notificationIcon = new QSystemTrayIcon();
++ wrapper->m_notificationIcon = adoptPtr(new QSystemTrayIcon());
+ #endif
+ }
+
+--- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h (revision 86536)
++++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h (revision 86550)
+@@ -34,6 +34,7 @@
+ #include "KURL.h"
+ #include "PlatformString.h"
+ #include "QtPlatformPlugin.h"
++#include <wtf/PassOwnPtr.h>
+ #include <wtf/RefCounted.h>
+
+ QT_BEGIN_NAMESPACE
+@@ -189,7 +190,7 @@
+ virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const;
+ virtual void populateVisitedLinks();
+
+- QWebSelectMethod* createSelectPopup() const;
++ PassOwnPtr<QWebSelectMethod> createSelectPopup() const;
+
+ virtual void dispatchViewportDataDidChange(const ViewportArguments&) const;
+
+--- src/3rdparty/webkit/Source/WebCore/plugins/qt/PluginViewQt.cpp (revision 86536)
++++ src/3rdparty/webkit/Source/WebCore/plugins/qt/PluginViewQt.cpp (revision 86550)
+@@ -950,7 +950,7 @@ bool PluginView::platformStart()
+
+ #if USE(ACCELERATED_COMPOSITING) && !USE(TEXTURE_MAPPER)
+ if (shouldUseAcceleratedCompositing()) {
+- m_platformLayer = new PluginGraphicsLayerQt(this);
++ m_platformLayer = adoptPtr(new PluginGraphicsLayerQt(this));
+ // Trigger layer computation in RenderLayerCompositor
+ m_element->setNeedsStyleRecalc(SyntheticStyleChange);
+ }