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..72c31f0e822ddd6746e1f29240da92a762951070 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,38 @@ 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(); |
| + while (observers.hasNext()) { |
| + observers.next().onDidFinishNavigation(mTab, url, isInMainFrame, isErrorPage, |
| + hasCommitted, isSamePage, isFragmentNavigation, pageTransition, errorCode, |
| + httpStatusCode); |
| + } |
| + |
| + if (errorCode != 0) { |
|
jam
2017/02/07 05:10:32
where is this block coming from?
shaktisahu
2017/02/07 07:35:51
Same comment as AndroidWebContentsObserver.java
shaktisahu
2017/02/08 01:00:46
Done.
|
| + mTab.updateThemeColorIfNeeded(true); |
| + if (isInMainFrame) mTab.didFailPageLoad(errorCode); |
| + |
| + // TODO(shaktisahu): Find out how to get the description for this error. |
| + recordErrorInPolicyAuditor(url, "", errorCode); |
| + return; |
| + } |
| + |
| + 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 +233,29 @@ public class TabWebContentsObserver extends WebContentsObserver { |
| UmaUtils.setRunningApplicationStart(false); |
| } |
| - if (isMainFrame) { |
| + if (isInMainFrame && hasCommitted) { |
| mTab.setIsTabStateDirty(true); |
| mTab.updateTitle(); |
| + mTab.handleDidFinishNavigation(url, pageTransition); |
| + mTab.setIsShowingErrorPage(isErrorPage); |
| } |
| - RewindableIterator<TabObserver> observers = mTab.getTabObservers(); |
| - while (observers.hasNext()) { |
| - observers.next().onDidCommitProvisionalLoadForFrame( |
| - mTab, frameId, isMainFrame, url, transitionType); |
| - } |
| - |
| - observers.rewind(); |
| - while (observers.hasNext()) { |
| - observers.next().onUrlUpdated(mTab); |
| + if (hasCommitted) { |
| + observers.rewind(); |
| + while (observers.hasNext()) { |
| + observers.next().onUrlUpdated(mTab); |
| + } |
| } |
| - if (!isMainFrame) return; |
| - mTab.handleDidCommitProvisonalLoadForFrame(url, transitionType); |
| - } |
| - |
| - @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()); |