diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-09-24 17:28:43 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-09-24 17:28:43 +0200 |
commit | d8a590676b6c7d72406bd2f9b8185f38282fdfa7 (patch) | |
tree | c081ff601ae4a56ecda95f52ca17e4bcfe402a1f | |
parent | 0c6147d9b5ffbe18bfe1e8deb9cc128c9a0fad27 (diff) | |
parent | e643f766fa23ee73f7095d7ba20a385cef0f25a0 (diff) |
Merge remote-tracking branch 'origin/5.5' into 5.6
Change-Id: Ice3d6e88238940a62d75e7c67f63b626285fccb0
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | dist/changes-5.5.1 | 47 | ||||
-rw-r--r-- | src/core/browser_context_adapter.cpp | 7 | ||||
-rw-r--r-- | src/core/gyp_configure_host.pro | 2 | ||||
-rw-r--r-- | src/core/gyp_configure_target.pro | 2 | ||||
-rw-r--r-- | src/core/qtwebengine.gypi | 3 | ||||
-rw-r--r-- | src/core/web_contents_adapter.cpp | 2 | ||||
-rw-r--r-- | src/core/web_contents_delegate_qt.cpp | 5 | ||||
-rw-r--r-- | src/core/web_contents_delegate_qt.h | 1 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginedownloaditem.h | 2 | ||||
-rwxr-xr-x | tools/buildscripts/gyp_qtwebengine | 10 | ||||
-rw-r--r-- | tools/qmake/mkspecs/features/functions.prf | 2 |
12 files changed, 77 insertions, 7 deletions
diff --git a/.gitignore b/.gitignore index 67a9d4d04..9f362ff0f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,6 @@ src/core/api/Release src/core/api/Debug src/core/core_generated.gyp src/core/gypfiles -src/core/qmake_extras.gypi examples/webengine/quicknanobrowser/quicknanobrowser examples/webengine/quicknanobrowser/quicknanobrowser.app examples/webenginewidgets/browser/browser diff --git a/dist/changes-5.5.1 b/dist/changes-5.5.1 new file mode 100644 index 000000000..550115008 --- /dev/null +++ b/dist/changes-5.5.1 @@ -0,0 +1,47 @@ +Qt 5.5.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.5.0. + +Qt 5.5 introduces many new features and improvements as well as bugfixes +over the 5.4.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + + http://doc.qt.io/qt-5/index.html + +The Qt version 5.5 series is binary compatible with the 5.4.x series. +Applications compiled for 5.4 will continue to run with 5.5. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* General * +**************************************************************************** + +QtWebEngineCore +-------- + - Security fixes + * ICU: CVE-2014-8146, CVE-2014-8147 + * Blink: CVE-2015-1284, CVE-2015-1291, CVE-2015-1292 + * Skia: CVE-2015-1294 + * V8: CVE-2015-1290 + - [QTBUG-47945, QTBUG-48088] Fixed crashes and asserts on exit + + +**************************************************************************** +* Platform Specific Changes * +**************************************************************************** + +Linux +----- + - [QTBUG-47301] Fixed crash on XCB GLES2 and Wayland + - [QTBUG-45801] Find libEGL and libEGLES2v2 without development packages + +Windows +------- + - [QTBUG-44763] Fix slow proxy resolution with multiple network interfaces + - [QTBUG-47129] Make QtWebEngineProcess use full 4GB memory on 32-bit diff --git a/src/core/browser_context_adapter.cpp b/src/core/browser_context_adapter.cpp index 48d05ae1d..660c6ffb2 100644 --- a/src/core/browser_context_adapter.cpp +++ b/src/core/browser_context_adapter.cpp @@ -36,6 +36,7 @@ #include "browser_context_adapter.h" +#include "content/browser/web_contents/web_contents_impl.h" #include "content/public/browser/browser_thread.h" #include "browser_context_qt.h" #include "content_client_qt.h" @@ -255,6 +256,12 @@ void BrowserContextAdapter::setHttpUserAgent(const QString &userAgent) if (m_httpUserAgent == userAgent) return; m_httpUserAgent = userAgent; + + std::vector<content::WebContentsImpl *> list = content::WebContentsImpl::GetAllWebContents(); + Q_FOREACH (content::WebContentsImpl *web_contents, list) + if (web_contents->GetBrowserContext() == m_browserContext.data()) + web_contents->SetUserAgentOverride(userAgent.toStdString()); + if (m_browserContext->url_request_getter_.get()) m_browserContext->url_request_getter_->updateUserAgent(); } diff --git a/src/core/gyp_configure_host.pro b/src/core/gyp_configure_host.pro index 3eb67389f..eb94cb802 100644 --- a/src/core/gyp_configure_host.pro +++ b/src/core/gyp_configure_host.pro @@ -10,7 +10,7 @@ GYPI_CONTENTS = "{" \ " ['CXX.host', '$$which($$QMAKE_CXX)']," \ " ['LD.host', '$$which($$QMAKE_LINK)']," -GYPI_FILE = $$absolute_path('qmake_extras.gypi') +GYPI_FILE = $$OUT_PWD/qmake_extras.gypi !build_pass { write_file($$GYPI_FILE, GYPI_CONTENTS) } diff --git a/src/core/gyp_configure_target.pro b/src/core/gyp_configure_target.pro index 4d5204407..2a5996636 100644 --- a/src/core/gyp_configure_target.pro +++ b/src/core/gyp_configure_target.pro @@ -26,7 +26,7 @@ GYPI_CONTENTS += " ]," \ GYPI_CONTENTS += "}" -GYPI_FILE = $$absolute_path('qmake_extras.gypi') +GYPI_FILE = $$OUT_PWD/qmake_extras.gypi !exists($$GYPI_FILE): error("-- $$GYPI_FILE not found --") diff --git a/src/core/qtwebengine.gypi b/src/core/qtwebengine.gypi index 7a6b26ab7..a420918a0 100644 --- a/src/core/qtwebengine.gypi +++ b/src/core/qtwebengine.gypi @@ -114,5 +114,8 @@ '<(chromium_src_dir)/build/linux/system.gyp:fontconfig', ], }], + ['OS=="mac"', { + 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-ObjC']}, + }], ], } diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index 58fd23969..2b2512fc3 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -316,6 +316,8 @@ WebContentsAdapterPrivate::WebContentsAdapterPrivate() WebContentsAdapterPrivate::~WebContentsAdapterPrivate() { + // Destroy the WebContents first + webContents.reset(); } QExplicitlySharedDataPointer<WebContentsAdapter> WebContentsAdapter::createFromSerializedNavigationHistory(QDataStream &input, WebContentsAdapterClient *adapterClient) diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index e644d691f..eb9c42edc 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -144,6 +144,11 @@ void WebContentsDelegateQt::HandleKeyboardEvent(content::WebContents *, const co m_viewClient->unhandledKeyEvent(reinterpret_cast<QKeyEvent *>(event.os_event)); } +void WebContentsDelegateQt::RenderFrameDeleted(content::RenderFrameHost *render_frame_host) +{ + m_loadingErrorFrameList.removeOne(render_frame_host->GetRoutingID()); +} + void WebContentsDelegateQt::DidStartProvisionalLoadForFrame(content::RenderFrameHost* render_frame_host, const GURL& validated_url, bool is_error_page, bool is_iframe_srcdoc) { if (is_error_page) { diff --git a/src/core/web_contents_delegate_qt.h b/src/core/web_contents_delegate_qt.h index 1728c447d..3fda96113 100644 --- a/src/core/web_contents_delegate_qt.h +++ b/src/core/web_contents_delegate_qt.h @@ -93,6 +93,7 @@ public: virtual void MoveValidationMessage(content::WebContents *web_contents, const gfx::Rect &anchor_in_root_view) Q_DECL_OVERRIDE; // WebContentsObserver overrides + virtual void RenderFrameDeleted(content::RenderFrameHost *render_frame_host) Q_DECL_OVERRIDE; virtual void DidStartProvisionalLoadForFrame(content::RenderFrameHost *render_frame_host, const GURL &validated_url, bool is_error_page, bool is_iframe_srcdoc) Q_DECL_OVERRIDE; virtual void DidCommitProvisionalLoadForFrame(content::RenderFrameHost *render_frame_host, const GURL &url, ui::PageTransition transition_type) Q_DECL_OVERRIDE; virtual void DidFailProvisionalLoad(content::RenderFrameHost *render_frame_host, const GURL &validated_url, diff --git a/src/webenginewidgets/api/qwebenginedownloaditem.h b/src/webenginewidgets/api/qwebenginedownloaditem.h index 1428ad4c3..05e0f8765 100644 --- a/src/webenginewidgets/api/qwebenginedownloaditem.h +++ b/src/webenginewidgets/api/qwebenginedownloaditem.h @@ -76,7 +76,7 @@ public Q_SLOTS: Q_SIGNALS: void finished(); - void stateChanged(DownloadState state); + void stateChanged(QWebEngineDownloadItem::DownloadState state); void downloadProgress(qint64 bytesReceived, qint64 bytesTotal); private: diff --git a/tools/buildscripts/gyp_qtwebengine b/tools/buildscripts/gyp_qtwebengine index 5003e4b5b..ce2a43328 100755 --- a/tools/buildscripts/gyp_qtwebengine +++ b/tools/buildscripts/gyp_qtwebengine @@ -57,13 +57,19 @@ def additional_include_files(args=[]): # Always include common.gypi. AddInclude(os.path.join(script_dir, 'common.gypi')) - # Include extra gypi files for additional build tweaks such as file exclusions, - # common stuff we generate and extract from qmake and platform specific drop-in files. + # Include extra gypi files for additional build tweaks such as file exclusions + # and platform specific drop-in files. build_extras = glob.glob(os.path.join(qtwebengine_root, 'src', 'core', '*_extras.gypi')) for build in build_extras: print "Using extra options found in " + build AddInclude(build) + # Include extra gypi files for common stuff we generate and extract from qmake. + build_extras = glob.glob(os.path.join(output_dir, '*_extras.gypi')) + for build in build_extras: + print "Using extra options found in " + build + AddInclude(build) + # Optionally add supplemental .gypi files if present. supplements = glob.glob(os.path.join(chrome_src, '*', 'supplement.gypi')) for supplement in supplements: diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf index 0fda473c9..c0e1f90bb 100644 --- a/tools/qmake/mkspecs/features/functions.prf +++ b/tools/qmake/mkspecs/features/functions.prf @@ -14,7 +14,7 @@ defineTest(isPlatformSupported) { linux-g++*:!isGCCVersionSupported(): return(false) !isPythonVersionSupported(): return(false) - linux-g++*|linux-clang|win32-msvc2013|macx-clang: return(true) + linux-g++*|linux-clang|win32-msvc2013|macx-clang*: return(true) boot2qt: return(true) skipBuild("Qt WebEngine can currently only be built for Linux (GCC/clang), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.") |