summaryrefslogtreecommitdiff
path: root/chromium/components/navigation_interception
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/components/navigation_interception
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-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')
-rw-r--r--chromium/components/navigation_interception/BUILD.gn5
-rw-r--r--chromium/components/navigation_interception/android/BUILD.gn5
-rw-r--r--chromium/components/navigation_interception/android/java/src/org/chromium/components/navigation_interception/NavigationParams.java14
-rw-r--r--chromium/components/navigation_interception/intercept_navigation_throttle.cc3
-rw-r--r--chromium/components/navigation_interception/navigation_params.cc25
-rw-r--r--chromium/components/navigation_interception/navigation_params.h7
-rw-r--r--chromium/components/navigation_interception/navigation_params_android.cc4
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