Add missing params from NavigationParams to NavigationHandle
Adds the params that NavigationHandle is missing from NavigationParams so that a followup CL can delete NavigationParams and migrate all usage to NavigationHandle. Bug: 1290507 Change-Id: I701f13ae0905b3816881f0d197b7b3926757a381 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3452608 Reviewed-by: Bo Liu <boliu@chromium.org> Reviewed-by: Yaron Friedman <yfriedman@chromium.org> Commit-Queue: Michael Thiessen <mthiesse@chromium.org> Cr-Commit-Position: refs/heads/main@{#969722}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
6c12a403d1
commit
9fca5b9a8a
android_webview/javatests/src/org/chromium/android_webview/test
chrome
android
junit
src
org
chromium
chrome
browser
browserservices
media
browser
optimization_guide
android
java
src
org
chromium
chrome
browser
optimization_guide
javatests
src
org
chromium
chrome
browser
optimization_guide
ui
android
toolbar
java
src
org
chromium
chrome
browser
toolbar
load_progress
content
browser
android
public
android
java
src
org
chromium
content_public
browser
@ -199,7 +199,8 @@ public class AwWebContentsObserverTest {
|
||||
boolean isSameDocument, boolean isFragmentNavigation, boolean isRendererInitiated,
|
||||
int transition) {
|
||||
NavigationHandle navigation = new NavigationHandle(0 /* navigationHandleProxy */, gurl,
|
||||
isInPrimaryMainFrame, isSameDocument, isRendererInitiated, null, null, transition);
|
||||
null, isInPrimaryMainFrame, isSameDocument, isRendererInitiated, null, null,
|
||||
transition, false, false, false, false, 0);
|
||||
mWebContentsObserver.didStartNavigation(navigation);
|
||||
|
||||
navigation.didFinish(gurl, isErrorPage, true /* hasCommitted */, isFragmentNavigation,
|
||||
|
@ -258,9 +258,11 @@ public class QualityEnforcerUnitTest {
|
||||
when(mTab.getOriginalUrl()).thenReturn(url);
|
||||
|
||||
NavigationHandle navigation = new NavigationHandle(0 /* navigationHandleProxy */, url,
|
||||
true /* isInPrimaryMainFrame */, false /* isSameDocument */,
|
||||
null /* referrerUrl */, true /* isInPrimaryMainFrame */, false /* isSameDocument */,
|
||||
false /* isRendererInitiated */, null /* initiatorOrigin */,
|
||||
null /* impressionData */, 0 /* pageTransition */);
|
||||
null /* impressionData */, 0 /* pageTransition */, false /* isPost */,
|
||||
false /* hasUserGesture */, false /* isRedirect */, false /* isExternalProtocol */,
|
||||
0 /* navigationId */);
|
||||
navigation.didFinish(url, false /* isErrorPage */, true /* hasCommitted */,
|
||||
false /* isFragmentNavigation */, false /* isDownload */,
|
||||
false /* isValidSearchFormUrl */, 0 /* pageTransition */, errorCode,
|
||||
|
@ -185,9 +185,11 @@ public class CurrentPageVerifierTest {
|
||||
GURL gurl = createMockGurl(url);
|
||||
when(mTab.getUrl()).thenReturn(gurl);
|
||||
NavigationHandle navigation = new NavigationHandle(0 /* navigationHandleProxy */, gurl,
|
||||
true /* isInPrimaryMainFrame */, false /* isSameDocument */,
|
||||
null /* referrerUrl */, true /* isInPrimaryMainFrame */, false /* isSameDocument */,
|
||||
false /* isRendererInitiated */, null /* initiatorOrigin */,
|
||||
null /* impressionData */, 0 /* pageTransition */);
|
||||
null /* impressionData */, 0 /* pageTransition */, false /* isPost */,
|
||||
false /* hasUserGesture */, false /* isRedirect */, false /* isExternalProtocol */,
|
||||
0 /* navigationId */);
|
||||
for (CustomTabTabObserver tabObserver : mTabObserverCaptor.getAllValues()) {
|
||||
tabObserver.onDidStartNavigation(mTab, navigation);
|
||||
}
|
||||
|
@ -125,8 +125,11 @@ public class MediaNotificationTestTabHolder {
|
||||
when(gurlOrigin.getSpec()).thenAnswer(invocation -> url);
|
||||
|
||||
NavigationHandle navigation = new NavigationHandle(0 /* navigationHandleProxy */, gurl,
|
||||
true /* isInPrimaryMainFrame */, isSameDocument, false /* isRendererInitiated */,
|
||||
null /* initiatorOrigin */, null /* impressionData */, 0 /* pageTransition */);
|
||||
null /* referrerUrl */, true /* isInPrimaryMainFrame */, isSameDocument,
|
||||
false /* isRendererInitiated */, null /* initiatorOrigin */,
|
||||
null /* impressionData */, 0 /* pageTransition */, false /* isPost */,
|
||||
false /* hasUserGesture */, false /* isRedirect */, false /* isExternalProtocol */,
|
||||
0 /* navigationId */);
|
||||
mMediaSessionTabHelper.mMediaSessionHelper.mWebContentsObserver.didStartNavigation(
|
||||
navigation);
|
||||
|
||||
|
@ -64,8 +64,8 @@ public class OptimizationGuideBridgeNativeUnitTest {
|
||||
public void testCanApplyOptimizationAsyncHasHint() {
|
||||
OptimizationGuideBridge bridge = new OptimizationGuideBridge();
|
||||
|
||||
NavigationHandle navHandle =
|
||||
new NavigationHandle(0, new GURL(TEST_URL), true, false, false, null, null, 0);
|
||||
NavigationHandle navHandle = new NavigationHandle(0, new GURL(TEST_URL), null, true, false,
|
||||
false, null, null, 0, false, false, false, false, 0);
|
||||
OptimizationGuideCallback callback = new OptimizationGuideCallback();
|
||||
bridge.canApplyOptimizationAsync(navHandle, OptimizationType.PERFORMANCE_HINTS, callback);
|
||||
|
||||
|
@ -131,8 +131,8 @@ public class OptimizationGuideBridgeUnitTest {
|
||||
public void testCanApplyOptimizationAsync_withoutNativeBridge() {
|
||||
GURL gurl = new GURL(TEST_URL);
|
||||
OptimizationGuideBridge bridge = new OptimizationGuideBridge(0);
|
||||
NavigationHandle navHandle =
|
||||
new NavigationHandle(0, new GURL(TEST_URL), true, false, false, null, null, 0);
|
||||
NavigationHandle navHandle = new NavigationHandle(0, new GURL(TEST_URL), null, true, false,
|
||||
false, null, null, 0, false, false, false, false, 0);
|
||||
|
||||
bridge.canApplyOptimizationAsync(
|
||||
navHandle, OptimizationType.PERFORMANCE_HINTS, mCallbackMock);
|
||||
@ -151,8 +151,8 @@ public class OptimizationGuideBridgeUnitTest {
|
||||
public void testCanApplyOptimizationAsync() {
|
||||
GURL gurl = new GURL(TEST_URL);
|
||||
OptimizationGuideBridge bridge = new OptimizationGuideBridge(1);
|
||||
NavigationHandle navHandle =
|
||||
new NavigationHandle(0, gurl, true, false, false, null, null, 0);
|
||||
NavigationHandle navHandle = new NavigationHandle(
|
||||
0, gurl, null, true, false, false, null, null, 0, false, false, false, false, 0);
|
||||
|
||||
bridge.canApplyOptimizationAsync(
|
||||
navHandle, OptimizationType.PERFORMANCE_HINTS, mCallbackMock);
|
||||
|
@ -82,8 +82,8 @@ public class LoadProgressMediatorTest {
|
||||
assertEquals(mModel.get(LoadProgressProperties.COMPLETION_STATE),
|
||||
CompletionState.FINISHED_DONT_ANIMATE);
|
||||
|
||||
NavigationHandle navigation =
|
||||
new NavigationHandle(0, URL_1, true, false, false, null, null, 0);
|
||||
NavigationHandle navigation = new NavigationHandle(
|
||||
0, URL_1, null, true, false, false, null, null, 0, false, false, false, false, 0);
|
||||
mTabObserver.onDidStartNavigation(mTab, navigation);
|
||||
assertEquals(
|
||||
mModel.get(LoadProgressProperties.COMPLETION_STATE), CompletionState.UNFINISHED);
|
||||
@ -119,8 +119,8 @@ public class LoadProgressMediatorTest {
|
||||
@UiThreadTest
|
||||
public void switchToLoadedTab() {
|
||||
initMediator();
|
||||
NavigationHandle navigation =
|
||||
new NavigationHandle(0, URL_1, true, false, false, null, null, 0);
|
||||
NavigationHandle navigation = new NavigationHandle(
|
||||
0, URL_1, null, true, false, false, null, null, 0, false, false, false, false, 0);
|
||||
mTabObserver.onDidStartNavigation(mTab, navigation);
|
||||
assertEquals(
|
||||
mModel.get(LoadProgressProperties.COMPLETION_STATE), CompletionState.UNFINISHED);
|
||||
@ -139,14 +139,15 @@ public class LoadProgressMediatorTest {
|
||||
public void loadNativePage() {
|
||||
initMediator();
|
||||
doReturn(0.1f).when(mTab).getProgress();
|
||||
NavigationHandle navigation =
|
||||
new NavigationHandle(0, URL_1, true, false, false, null, null, 0);
|
||||
NavigationHandle navigation = new NavigationHandle(
|
||||
0, URL_1, null, true, false, false, null, null, 0, false, false, false, false, 0);
|
||||
mTabObserver.onDidStartNavigation(mTab, navigation);
|
||||
assertEquals(
|
||||
mModel.get(LoadProgressProperties.COMPLETION_STATE), CompletionState.UNFINISHED);
|
||||
assertEquals(mModel.get(LoadProgressProperties.PROGRESS), 0.1f, MathUtils.EPSILON);
|
||||
|
||||
navigation = new NavigationHandle(0, NATIVE_PAGE_URL, true, false, false, null, null, 0);
|
||||
navigation = new NavigationHandle(0, NATIVE_PAGE_URL, null, true, false, false, null, null,
|
||||
0, false, false, false, false, 0);
|
||||
mTabObserver.onDidStartNavigation(mTab, navigation);
|
||||
assertEquals(mModel.get(LoadProgressProperties.COMPLETION_STATE),
|
||||
CompletionState.FINISHED_DONT_ANIMATE);
|
||||
@ -157,8 +158,8 @@ public class LoadProgressMediatorTest {
|
||||
@UiThreadTest
|
||||
public void switchToTabWithNativePage() {
|
||||
initMediator();
|
||||
NavigationHandle navigation =
|
||||
new NavigationHandle(0, URL_1, true, false, false, null, null, 0);
|
||||
NavigationHandle navigation = new NavigationHandle(
|
||||
0, URL_1, null, true, false, false, null, null, 0, false, false, false, false, 0);
|
||||
mTabObserver.onDidStartNavigation(mTab, navigation);
|
||||
assertEquals(
|
||||
mModel.get(LoadProgressProperties.COMPLETION_STATE), CompletionState.UNFINISHED);
|
||||
@ -179,8 +180,8 @@ public class LoadProgressMediatorTest {
|
||||
@UiThreadTest
|
||||
public void pageCrashes() {
|
||||
initMediator();
|
||||
NavigationHandle navigation =
|
||||
new NavigationHandle(0, URL_1, true, false, false, null, null, 0);
|
||||
NavigationHandle navigation = new NavigationHandle(
|
||||
0, URL_1, null, true, false, false, null, null, 0, false, false, false, false, 0);
|
||||
mTabObserver.onDidStartNavigation(mTab, navigation);
|
||||
assertEquals(
|
||||
mModel.get(LoadProgressProperties.COMPLETION_STATE), CompletionState.UNFINISHED);
|
||||
@ -228,15 +229,15 @@ public class LoadProgressMediatorTest {
|
||||
assertEquals(mModel.get(LoadProgressProperties.COMPLETION_STATE),
|
||||
CompletionState.FINISHED_DONT_ANIMATE);
|
||||
|
||||
NavigationHandle navigation =
|
||||
new NavigationHandle(0, gurl, true, false, false, null, null, 0);
|
||||
NavigationHandle navigation = new NavigationHandle(
|
||||
0, gurl, null, true, false, false, null, null, 0, false, false, false, false, 0);
|
||||
mTabObserver.onDidStartNavigation(mTab, navigation);
|
||||
mTabObserver.onLoadProgressChanged(mTab, 1.0f);
|
||||
assertEquals(mModel.get(LoadProgressProperties.PROGRESS), 1.0f, MathUtils.EPSILON);
|
||||
assertEquals(mModel.get(LoadProgressProperties.COMPLETION_STATE),
|
||||
CompletionState.FINISHED_DO_ANIMATE);
|
||||
NavigationHandle sameDocNav =
|
||||
new NavigationHandle(0, gurl, true, true, false, null, null, 0);
|
||||
NavigationHandle sameDocNav = new NavigationHandle(
|
||||
0, gurl, null, true, true, false, null, null, 0, false, false, false, false, 0);
|
||||
mTabObserver.onDidStartNavigation(mTab, sameDocNav);
|
||||
|
||||
assertEquals(mModel.get(LoadProgressProperties.PROGRESS), 1.0f, MathUtils.EPSILON);
|
||||
|
@ -43,13 +43,20 @@ NavigationHandleProxy::NavigationHandleProxy(
|
||||
java_navigation_handle_ = Java_NavigationHandle_Constructor(
|
||||
env, reinterpret_cast<jlong>(this),
|
||||
url::GURLAndroid::FromNativeGURL(env, cpp_navigation_handle_->GetURL()),
|
||||
url::GURLAndroid::FromNativeGURL(
|
||||
env, cpp_navigation_handle_->GetReferrer().url),
|
||||
cpp_navigation_handle_->IsInPrimaryMainFrame(),
|
||||
cpp_navigation_handle_->IsSameDocument(),
|
||||
cpp_navigation_handle_->IsRendererInitiated(),
|
||||
cpp_navigation_handle_->GetInitiatorOrigin()
|
||||
? cpp_navigation_handle_->GetInitiatorOrigin()->CreateJavaObject()
|
||||
: nullptr,
|
||||
impression_byte_buffer, cpp_navigation_handle_->GetPageTransition());
|
||||
impression_byte_buffer, cpp_navigation_handle_->GetPageTransition(),
|
||||
cpp_navigation_handle_->IsPost(),
|
||||
cpp_navigation_handle_->HasUserGesture(),
|
||||
cpp_navigation_handle_->WasServerRedirect(),
|
||||
cpp_navigation_handle_->IsExternalProtocol(),
|
||||
cpp_navigation_handle_->GetNavigationId());
|
||||
}
|
||||
|
||||
void NavigationHandleProxy::DidRedirect() {
|
||||
|
@ -28,6 +28,7 @@ public class NavigationHandle {
|
||||
private final boolean mIsSameDocument;
|
||||
private @PageTransition int mPageTransition;
|
||||
private GURL mUrl;
|
||||
private GURL mReferrerUrl;
|
||||
private boolean mHasCommitted;
|
||||
private boolean mIsDownload;
|
||||
private boolean mIsErrorPage;
|
||||
@ -37,19 +38,32 @@ public class NavigationHandle {
|
||||
private int mHttpStatusCode;
|
||||
private final Origin mInitiatorOrigin;
|
||||
private final Impression mImpression;
|
||||
private final boolean mIsPost;
|
||||
private final boolean mHasUserGesture;
|
||||
private final boolean mIsRedirect;
|
||||
private final boolean mIsExternalProtocol;
|
||||
private final long mNavigationId;
|
||||
|
||||
@CalledByNative
|
||||
public NavigationHandle(long nativeNavigationHandleProxy, GURL url,
|
||||
public NavigationHandle(long nativeNavigationHandleProxy, GURL url, GURL referrerUrl,
|
||||
boolean isInPrimaryMainFrame, boolean isSameDocument, boolean isRendererInitiated,
|
||||
Origin initiatorOrigin, ByteBuffer impressionData, @PageTransition int transition) {
|
||||
Origin initiatorOrigin, ByteBuffer impressionData, @PageTransition int transition,
|
||||
boolean isPost, boolean hasUserGesture, boolean isRedirect, boolean isExternalProtocol,
|
||||
long navigationId) {
|
||||
mNativeNavigationHandleProxy = nativeNavigationHandleProxy;
|
||||
mUrl = url;
|
||||
mReferrerUrl = referrerUrl;
|
||||
mIsInPrimaryMainFrame = isInPrimaryMainFrame;
|
||||
mIsSameDocument = isSameDocument;
|
||||
mIsRendererInitiated = isRendererInitiated;
|
||||
mInitiatorOrigin = initiatorOrigin;
|
||||
mImpression = impressionData != null ? Impression.deserialize(impressionData) : null;
|
||||
mPageTransition = transition;
|
||||
mIsPost = isPost;
|
||||
mHasUserGesture = hasUserGesture;
|
||||
mIsRedirect = isRedirect;
|
||||
mIsExternalProtocol = isExternalProtocol;
|
||||
mNavigationId = navigationId;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -99,6 +113,11 @@ public class NavigationHandle {
|
||||
return mUrl;
|
||||
}
|
||||
|
||||
/** The referrer URL for the navigation. */
|
||||
public GURL getReferrerUrl() {
|
||||
return mReferrerUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the navigation is taking place in the main frame of the primary
|
||||
* frame tree. With MPArch (crbug.com/1164280), a WebContents may have
|
||||
@ -242,6 +261,33 @@ public class NavigationHandle {
|
||||
return mImpression;
|
||||
}
|
||||
|
||||
/** True if the the navigation method is "POST". */
|
||||
public boolean isPost() {
|
||||
return mIsPost;
|
||||
}
|
||||
|
||||
/** True if the navigation was initiated by the user. */
|
||||
public boolean hasUserGesture() {
|
||||
return mHasUserGesture;
|
||||
}
|
||||
|
||||
/** Is the navigation a redirect (in which case URL is the "target" address). */
|
||||
public boolean isRedirect() {
|
||||
return mIsRedirect;
|
||||
}
|
||||
|
||||
/** True if the target URL can't be handled by Chrome's internal protocol handlers. */
|
||||
public boolean isExternalProtocol() {
|
||||
return mIsExternalProtocol;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a unique ID for this navigation.
|
||||
*/
|
||||
public long getNavigationId() {
|
||||
return mNavigationId;
|
||||
}
|
||||
|
||||
@NativeMethods
|
||||
interface Natives {
|
||||
void setRequestHeader(
|
||||
|
Reference in New Issue
Block a user