OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.android_webview; | 5 package org.chromium.android_webview; |
6 | 6 |
7 import org.chromium.android_webview.AwContents.VisualStateCallback; | 7 import org.chromium.android_webview.AwContents.VisualStateCallback; |
8 import org.chromium.base.ThreadUtils; | 8 import org.chromium.base.ThreadUtils; |
9 import org.chromium.content_public.browser.WebContents; | 9 import org.chromium.content_public.browser.WebContents; |
10 import org.chromium.content_public.browser.WebContentsObserver; | 10 import org.chromium.content_public.browser.WebContentsObserver; |
(...skipping 25 matching lines...) Expand all Loading... | |
36 if (client == null) return; | 36 if (client == null) return; |
37 String unreachableWebDataUrl = AwContentsStatics.getUnreachableWebDataUr l(); | 37 String unreachableWebDataUrl = AwContentsStatics.getUnreachableWebDataUr l(); |
38 boolean isErrorUrl = | 38 boolean isErrorUrl = |
39 unreachableWebDataUrl != null && unreachableWebDataUrl.equals(va lidatedUrl); | 39 unreachableWebDataUrl != null && unreachableWebDataUrl.equals(va lidatedUrl); |
40 if (isMainFrame && !isErrorUrl) { | 40 if (isMainFrame && !isErrorUrl) { |
41 client.onPageFinished(validatedUrl); | 41 client.onPageFinished(validatedUrl); |
42 } | 42 } |
43 } | 43 } |
44 | 44 |
45 @Override | 45 @Override |
46 public void didFailLoad(boolean isProvisionalLoad, | 46 public void didFailLoad(boolean isProvisionalLoad, boolean isMainFrame, int errorCode, |
47 boolean isMainFrame, int errorCode, String description, String faili ngUrl) { | 47 String description, String failingUrl, boolean wasIgnoredByHandler) { |
48 AwContentsClient client = mAwContentsClient.get(); | 48 AwContentsClient client = mAwContentsClient.get(); |
49 if (client == null) return; | 49 if (client == null) return; |
50 String unreachableWebDataUrl = AwContentsStatics.getUnreachableWebDataUr l(); | 50 String unreachableWebDataUrl = AwContentsStatics.getUnreachableWebDataUr l(); |
51 boolean isErrorUrl = | 51 boolean isErrorUrl = |
52 unreachableWebDataUrl != null && unreachableWebDataUrl.equals(fa ilingUrl); | 52 unreachableWebDataUrl != null && unreachableWebDataUrl.equals(fa ilingUrl); |
53 if (isMainFrame && !isErrorUrl && errorCode == NetError.ERR_ABORTED) { | 53 if (isMainFrame && !isErrorUrl && errorCode == NetError.ERR_ABORTED) { |
54 // Need to call onPageFinished for backwards compatibility with the classic webview. | 54 // Need to call onPageFinished for backwards compatibility with the classic webview. |
55 // See also AwContents.IoThreadClientImpl.onReceivedError. | 55 // See also AwContents.IoThreadClientImpl.onReceivedError. |
56 client.onPageFinished(failingUrl); | 56 // If the navigation was ignored because of shouldOverrideUrlLoading we have already |
57 // called onPageFinished in | |
58 // AwContents.InterceptNavigationDelegateImpl.shouldIgnoreNavigation instead. | |
59 if (!wasIgnoredByHandler) { | |
mnaganov (inactive)
2015/06/04 19:09:27
nit: Why not to put this condition check into the
gsennton
2015/06/08 14:07:23
Done.
| |
60 client.onPageFinished(failingUrl); | |
61 } | |
57 } | 62 } |
58 } | 63 } |
59 | 64 |
60 @Override | 65 @Override |
61 public void didNavigateMainFrame(final String url, String baseUrl, | 66 public void didNavigateMainFrame(final String url, String baseUrl, |
62 boolean isNavigationToDifferentPage, boolean isFragmentNavigation, i nt statusCode) { | 67 boolean isNavigationToDifferentPage, boolean isFragmentNavigation, i nt statusCode) { |
63 // Only invoke the onPageCommitVisible callback when navigating to a dif ferent page, | 68 // Only invoke the onPageCommitVisible callback when navigating to a dif ferent page, |
64 // but not when navigating to a different fragment within the same page. | 69 // but not when navigating to a different fragment within the same page. |
65 if (isNavigationToDifferentPage) { | 70 if (isNavigationToDifferentPage) { |
66 ThreadUtils.postOnUiThread(new Runnable() { | 71 ThreadUtils.postOnUiThread(new Runnable() { |
(...skipping 24 matching lines...) Expand all Loading... | |
91 } | 96 } |
92 } | 97 } |
93 | 98 |
94 @Override | 99 @Override |
95 public void didNavigateAnyFrame(String url, String baseUrl, boolean isReload ) { | 100 public void didNavigateAnyFrame(String url, String baseUrl, boolean isReload ) { |
96 final AwContentsClient client = mAwContentsClient.get(); | 101 final AwContentsClient client = mAwContentsClient.get(); |
97 if (client == null) return; | 102 if (client == null) return; |
98 client.doUpdateVisitedHistory(url, isReload); | 103 client.doUpdateVisitedHistory(url, isReload); |
99 } | 104 } |
100 } | 105 } |
OLD | NEW |