diff options
author | Michal Klocek <michal.klocek@qt.io> | 2019-12-18 20:31:13 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2020-01-14 19:42:04 +0100 |
commit | 445235bc012fcdc73acc881f865a21769c46a6d3 (patch) | |
tree | 931ad5942ed3a5a11939cbd8c3d238657bdf2177 /src/webenginewidgets/api/qwebenginepage_p.h | |
parent | d2f6a5c7b97d61c4e983243d444dd51592a44bab (diff) |
Rework url changed logic
Due security changes to prevent url spoofing, our implementation
is getting extra invalidate url requests. Unfortunately, this breaks our
url handling, which now gets lots of new back and fort url changed signals and
make several unit test failures. After tedious investigation of Chromium
omnibox handing and trying out different approaches, it seems that
only sensible solution is to follow Chromium logic and make
NavigationStateChanged to update 'ui' in asynchronous matter.
This change tries not break any tests and simplify url handling.
The only side effect of this change is that WebEnginePage::setContent will
get extra 'url' signal of initial 'urlData' and later 'baseUrl' change
is emitted.
Fix one of qml tests which did not expect to have url on LoadStartedStatus.
Task-number: QTBUG-63388
Task-number: QTBUG-48995
Change-Id: Id347f4325c036e16bfae7bf2f694905e0f21f8d7
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webenginewidgets/api/qwebenginepage_p.h')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage_p.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index 2843f69c4..e78b0f926 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -97,7 +97,7 @@ public: void recommendedStateChanged(LifecycleState state) override; void visibleChanged(bool visible) override; void titleChanged(const QString&) override; - void urlChanged(const QUrl&) override; + void urlChanged() override; void iconChanged(const QUrl&) override; void loadProgressChanged(int progress) override; void didUpdateTargetURL(const QUrl&) override; @@ -186,7 +186,7 @@ public: QWebEngineProfile *profile; QWebEngineSettings *settings; QWebEngineView *view; - QUrl explicitUrl; + QUrl url; QWebEngineContextMenuData contextData; bool isLoading; QWebEngineScriptCollection scriptCollection; |