diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/components/navigation_interception | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/navigation_interception')
7 files changed, 44 insertions, 19 deletions
diff --git a/chromium/components/navigation_interception/BUILD.gn b/chromium/components/navigation_interception/BUILD.gn index 9a1a7e684b2..5246b9401ab 100644 --- a/chromium/components/navigation_interception/BUILD.gn +++ b/chromium/components/navigation_interception/BUILD.gn @@ -29,7 +29,10 @@ static_library("navigation_interception") { "navigation_params_android.cc", "navigation_params_android.h", ] - deps += [ ":jni_headers" ] + deps += [ + ":jni_headers", + "//url:origin_android", + ] } } diff --git a/chromium/components/navigation_interception/android/BUILD.gn b/chromium/components/navigation_interception/android/BUILD.gn index 7a53961c187..917d94892b0 100644 --- a/chromium/components/navigation_interception/android/BUILD.gn +++ b/chromium/components/navigation_interception/android/BUILD.gn @@ -5,7 +5,10 @@ import("//build/config/android/rules.gni") android_library("navigation_interception_java") { - deps = [ "//base:base_java" ] + deps = [ + "//base:base_java", + "//url:origin_java", + ] sources = [ "java/src/org/chromium/components/navigation_interception/InterceptNavigationDelegate.java", "java/src/org/chromium/components/navigation_interception/NavigationParams.java", diff --git a/chromium/components/navigation_interception/android/java/src/org/chromium/components/navigation_interception/NavigationParams.java b/chromium/components/navigation_interception/android/java/src/org/chromium/components/navigation_interception/NavigationParams.java index 4403589d422..e02aa54caaf 100644 --- a/chromium/components/navigation_interception/android/java/src/org/chromium/components/navigation_interception/NavigationParams.java +++ b/chromium/components/navigation_interception/android/java/src/org/chromium/components/navigation_interception/NavigationParams.java @@ -6,7 +6,10 @@ package org.chromium.components.navigation_interception; import android.text.TextUtils; +import androidx.annotation.Nullable; + import org.chromium.base.annotations.CalledByNative; +import org.chromium.url.Origin; /** * Navigation parameters container used to keep parameters for navigation interception. @@ -45,9 +48,13 @@ public class NavigationParams { /** True if navigation is renderer initiated. Eg clicking on a link. */ public final boolean isRendererInitiated; + /** Initiator origin of the request, could be null. */ + public final Origin initiatorOrigin; + public NavigationParams(String url, String referrer, boolean isPost, boolean hasUserGesture, int pageTransitionType, boolean isRedirect, boolean isExternalProtocol, - boolean isMainFrame, boolean isRendererInitiated, boolean hasUserGestureCarryover) { + boolean isMainFrame, boolean isRendererInitiated, boolean hasUserGestureCarryover, + @Nullable Origin initiatorOrigin) { this.url = url; this.referrer = TextUtils.isEmpty(referrer) ? null : referrer; this.isPost = isPost; @@ -58,15 +65,16 @@ public class NavigationParams { this.isMainFrame = isMainFrame; this.isRendererInitiated = isRendererInitiated; this.hasUserGestureCarryover = hasUserGestureCarryover; + this.initiatorOrigin = initiatorOrigin; } @CalledByNative public static NavigationParams create(String url, String referrer, boolean isPost, boolean hasUserGesture, int pageTransitionType, boolean isRedirect, boolean isExternalProtocol, boolean isMainFrame, boolean isRendererInitiated, - boolean hasUserGestureCarryover) { + boolean hasUserGestureCarryover, @Nullable Origin initiatorOrigin) { return new NavigationParams(url, referrer, isPost, hasUserGesture, pageTransitionType, isRedirect, isExternalProtocol, isMainFrame, isRendererInitiated, - hasUserGestureCarryover); + hasUserGestureCarryover, initiatorOrigin); } } diff --git a/chromium/components/navigation_interception/intercept_navigation_throttle.cc b/chromium/components/navigation_interception/intercept_navigation_throttle.cc index 687c38a72b9..3953e16cc47 100644 --- a/chromium/components/navigation_interception/intercept_navigation_throttle.cc +++ b/chromium/components/navigation_interception/intercept_navigation_throttle.cc @@ -122,7 +122,8 @@ NavigationParams InterceptNavigationThrottle::GetNavigationParams( navigation_handle()->GetPageTransition(), is_redirect, navigation_handle()->IsExternalProtocol(), true, navigation_handle()->IsRendererInitiated(), - navigation_handle()->GetBaseURLForDataURL()); + navigation_handle()->GetBaseURLForDataURL(), + navigation_handle()->GetInitiatorOrigin()); } } // namespace navigation_interception diff --git a/chromium/components/navigation_interception/navigation_params.cc b/chromium/components/navigation_interception/navigation_params.cc index 960ebdad4f1..de7a3f20cff 100644 --- a/chromium/components/navigation_interception/navigation_params.cc +++ b/chromium/components/navigation_interception/navigation_params.cc @@ -6,16 +6,18 @@ namespace navigation_interception { -NavigationParams::NavigationParams(const GURL& url, - const content::Referrer& referrer, - bool has_user_gesture, - bool is_post, - ui::PageTransition transition_type, - bool is_redirect, - bool is_external_protocol, - bool is_main_frame, - bool is_renderer_initiated, - const GURL& base_url_for_data_url) +NavigationParams::NavigationParams( + const GURL& url, + const content::Referrer& referrer, + bool has_user_gesture, + bool is_post, + ui::PageTransition transition_type, + bool is_redirect, + bool is_external_protocol, + bool is_main_frame, + bool is_renderer_initiated, + const GURL& base_url_for_data_url, + const base::Optional<url::Origin>& initiator_origin) : url_(url), referrer_(referrer), has_user_gesture_(has_user_gesture), @@ -25,7 +27,8 @@ NavigationParams::NavigationParams(const GURL& url, is_external_protocol_(is_external_protocol), is_main_frame_(is_main_frame), is_renderer_initiated_(is_renderer_initiated), - base_url_for_data_url_(base_url_for_data_url) {} + base_url_for_data_url_(base_url_for_data_url), + initiator_origin_(initiator_origin) {} NavigationParams::~NavigationParams() = default; diff --git a/chromium/components/navigation_interception/navigation_params.h b/chromium/components/navigation_interception/navigation_params.h index 63f6a674deb..bbd5fa085e5 100644 --- a/chromium/components/navigation_interception/navigation_params.h +++ b/chromium/components/navigation_interception/navigation_params.h @@ -22,7 +22,8 @@ class NavigationParams { bool is_external_protocol, bool is_main_frame, bool is_renderer_initiated, - const GURL& base_url_for_data_url); + const GURL& base_url_for_data_url, + const base::Optional<url::Origin>& initiator_origin); ~NavigationParams(); NavigationParams(const NavigationParams&); NavigationParams& operator=(const NavigationParams&) = delete; @@ -38,6 +39,9 @@ class NavigationParams { bool is_main_frame() const { return is_main_frame_; } bool is_renderer_initiated() const { return is_renderer_initiated_; } const GURL& base_url_for_data_url() const { return base_url_for_data_url_; } + const base::Optional<url::Origin>& initiator_origin() const { + return initiator_origin_; + } private: @@ -51,6 +55,7 @@ class NavigationParams { bool is_main_frame_; bool is_renderer_initiated_; GURL base_url_for_data_url_; + base::Optional<url::Origin> initiator_origin_; }; } // namespace navigation_interception diff --git a/chromium/components/navigation_interception/navigation_params_android.cc b/chromium/components/navigation_interception/navigation_params_android.cc index 6b6b6c5df1f..25635347192 100644 --- a/chromium/components/navigation_interception/navigation_params_android.cc +++ b/chromium/components/navigation_interception/navigation_params_android.cc @@ -29,7 +29,9 @@ base::android::ScopedJavaLocalRef<jobject> CreateJavaNavigationParams( env, jstring_url, jstring_referrer, params.is_post(), params.has_user_gesture(), params.transition_type(), params.is_redirect(), params.is_external_protocol(), params.is_main_frame(), - params.is_renderer_initiated(), has_user_gesture_carryover); + params.is_renderer_initiated(), has_user_gesture_carryover, + params.initiator_origin() ? params.initiator_origin()->CreateJavaObject() + : nullptr); } } // namespace navigation_interception |