Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java |
| index bf4d756e1fa0d9738c2b3f0016c1bb4985a87122..48128e1a0fe2e6c20c3f2e88aec8ec0f85d18bc9 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java |
| @@ -156,17 +156,20 @@ public class TabWebContentsObserver extends WebContentsObserver { |
| } |
| @Override |
| - public void didFailLoad(boolean isProvisionalLoad, boolean isMainFrame, int errorCode, |
| - String description, String failingUrl, boolean wasIgnoredByHandler) { |
| + public void didFailLoad( |
| + boolean isMainFrame, int errorCode, String description, String failingUrl) { |
| mTab.updateThemeColorIfNeeded(true); |
| RewindableIterator<TabObserver> observers = mTab.getTabObservers(); |
| while (observers.hasNext()) { |
| - observers.next().onDidFailLoad(mTab, isProvisionalLoad, isMainFrame, errorCode, |
| - description, failingUrl); |
| + observers.next().onDidFailLoad(mTab, isMainFrame, errorCode, description, failingUrl); |
| } |
| if (isMainFrame) mTab.didFailPageLoad(errorCode); |
| + recordErrorInPolicyAuditor(failingUrl, description, errorCode); |
| + } |
| + |
| + private void recordErrorInPolicyAuditor(String failingUrl, String description, int errorCode) { |
| PolicyAuditor auditor = |
| ((ChromeApplication) mTab.getApplicationContext()).getPolicyAuditor(); |
| auditor.notifyAuditEvent(mTab.getApplicationContext(), AuditEvent.OPEN_URL_FAILURE, |
| @@ -183,17 +186,31 @@ public class TabWebContentsObserver extends WebContentsObserver { |
| } |
| @Override |
| - public void didStartProvisionalLoadForFrame(long frameId, long parentFrameId, |
| - boolean isMainFrame, String validatedUrl, boolean isErrorPage) { |
| - if (isMainFrame) mTab.didStartPageLoad(validatedUrl, isErrorPage); |
| + public void didStartNavigation(String url, boolean isInMainFrame, boolean isErrorPage) { |
| + if (isInMainFrame) { |
| + mTab.didStartPageLoad(url, isErrorPage); |
| + } |
| - mTab.handleDidStartProvisionalLoadForFrame(isMainFrame, validatedUrl); |
| + RewindableIterator<TabObserver> observers = mTab.getTabObservers(); |
| + while (observers.hasNext()) { |
| + observers.next().onDidStartNavigation(mTab, url, isInMainFrame, isErrorPage); |
| + } |
| } |
| @Override |
| - public void didCommitProvisionalLoadForFrame(long frameId, boolean isMainFrame, String url, |
| - int transitionType) { |
| - if (isMainFrame && UmaUtils.isRunningApplicationStart()) { |
| + public void didFinishNavigation(String url, boolean isInMainFrame, boolean isErrorPage, |
| + boolean hasCommitted, boolean isSamePage, boolean isFragmentNavigation, |
| + Integer pageTransition, int errorCode, int httpStatusCode) { |
| + RewindableIterator<TabObserver> observers = mTab.getTabObservers(); |
| + if (errorCode != 0) { |
| + mTab.updateThemeColorIfNeeded(true); |
| + if (isInMainFrame) mTab.didFailPageLoad(errorCode); |
| + |
| + // TODO(shaktisahu): Find out how to get the description for this error. |
| + recordErrorInPolicyAuditor(url, "", errorCode); |
|
shaktisahu
2017/01/31 01:57:53
I didn't find a way to retrieve the error descript
Ted C
2017/01/31 18:57:48
I wonder if we could just do net::ErrorToShortStri
Bernhard Bauer
2017/02/07 13:19:16
I think error_page::LocalizedError::GetErrorDetail
shaktisahu
2017/02/07 18:08:22
Hmm... but error_page is in components and we may
Ted C
2017/02/08 05:31:15
Why wouldn't we able to use it here? We're in chr
shaktisahu
2017/02/08 06:32:10
Oh, I was trying to add this to web_contents_obser
Bernhard Bauer
2017/02/08 10:26:38
That sounds good to me, thanks!
shaktisahu
2017/02/10 08:07:41
Seems like error_page::LocalizedError::GetErrorDet
|
| + } |
|
Ted C
2017/01/31 18:57:47
Should we return in the errorCode case?
shaktisahu
2017/02/03 06:56:16
Done.
Yes. In that case I would move the block ha
|
| + |
| + if (isInMainFrame && hasCommitted && UmaUtils.isRunningApplicationStart()) { |
| // Current median is 550ms, and long tail is very long. ZoomedIn gives good view of the |
| // median and ZoomedOut gives a good overview. |
| RecordHistogram.recordCustomTimesHistogram( |
| @@ -209,65 +226,36 @@ public class TabWebContentsObserver extends WebContentsObserver { |
| UmaUtils.setRunningApplicationStart(false); |
| } |
| - if (isMainFrame) { |
| + if (isInMainFrame && hasCommitted) { |
| mTab.setIsTabStateDirty(true); |
| mTab.updateTitle(); |
| - } |
| - |
| - RewindableIterator<TabObserver> observers = mTab.getTabObservers(); |
| - while (observers.hasNext()) { |
| - observers.next().onDidCommitProvisionalLoadForFrame( |
| - mTab, frameId, isMainFrame, url, transitionType); |
| + mTab.handleDidFinishNavigation(url, pageTransition); |
| + mTab.setIsShowingErrorPage(isErrorPage); |
| } |
| observers.rewind(); |
| while (observers.hasNext()) { |
| - observers.next().onUrlUpdated(mTab); |
| + observers.next().onDidFinishNavigation(mTab, url, isInMainFrame, isErrorPage, |
| + hasCommitted, isSamePage, isFragmentNavigation, pageTransition, errorCode, |
| + httpStatusCode); |
| } |
| - if (!isMainFrame) return; |
| - mTab.handleDidCommitProvisonalLoadForFrame(url, transitionType); |
| - } |
| + if (hasCommitted) { |
| + observers.rewind(); |
| + while (observers.hasNext()) { |
| + observers.next().onUrlUpdated(mTab); |
| + } |
| + } |
| - @Override |
| - public void didNavigateMainFrame(String url, String baseUrl, |
| - boolean isNavigationToDifferentPage, boolean isFragmentNavigation, int statusCode) { |
| FullscreenManager fullscreenManager = mTab.getFullscreenManager(); |
| - if (isNavigationToDifferentPage && fullscreenManager != null) { |
| + if (isInMainFrame && hasCommitted && !isSamePage && fullscreenManager != null) { |
| fullscreenManager.setPersistentFullscreenMode(false); |
| } |
| - RewindableIterator<TabObserver> observers = mTab.getTabObservers(); |
| - while (observers.hasNext()) { |
| - observers.next().onDidNavigateMainFrame( |
| - mTab, url, baseUrl, isNavigationToDifferentPage, |
| - isFragmentNavigation, statusCode); |
| - } |
| - |
| mTab.stopSwipeRefreshHandler(); |
| } |
| @Override |
| - public void didStartNavigation(String url, boolean isInMainFrame, boolean isErrorPage) { |
| - RewindableIterator<TabObserver> observers = mTab.getTabObservers(); |
| - while (observers.hasNext()) { |
| - observers.next().onDidStartNavigation(mTab, url, isInMainFrame, isErrorPage); |
| - } |
| - } |
| - |
| - @Override |
| - public void didFinishNavigation(String url, boolean isInMainFrame, boolean isErrorPage, |
| - boolean hasCommitted, boolean isSamePage, Integer pageTransition, int errorCode) { |
| - if (isInMainFrame && hasCommitted) mTab.setIsShowingErrorPage(isErrorPage); |
| - |
| - RewindableIterator<TabObserver> observers = mTab.getTabObservers(); |
| - while (observers.hasNext()) { |
| - observers.next().onDidFinishNavigation(mTab, url, isInMainFrame, isErrorPage, |
| - hasCommitted, isSamePage, pageTransition, errorCode); |
| - } |
| - } |
| - |
| - @Override |
| public void didFirstVisuallyNonEmptyPaint() { |
| RewindableIterator<TabObserver> observers = mTab.getTabObservers(); |
| while (observers.hasNext()) { |
| @@ -320,14 +308,6 @@ public class TabWebContentsObserver extends WebContentsObserver { |
| } |
| @Override |
| - public void didStartNavigationToPendingEntry(String url) { |
| - RewindableIterator<TabObserver> observers = mTab.getTabObservers(); |
| - while (observers.hasNext()) { |
| - observers.next().onDidStartNavigationToPendingEntry(mTab, url); |
| - } |
| - } |
| - |
| - @Override |
| public void destroy() { |
| MediaCaptureNotificationService.updateMediaNotificationForTab( |
| mTab.getApplicationContext(), mTab.getId(), 0, mTab.getUrl()); |