| 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..cb2d19cc50368e03d62047f2bc1fc9e8cd1704de 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,40 @@ 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 isSamePage, boolean isErrorPage) {
|
| + if (isInMainFrame && !isSamePage) {
|
| + mTab.didStartPageLoad(url, isErrorPage);
|
| + }
|
|
|
| - mTab.handleDidStartProvisionalLoadForFrame(isMainFrame, validatedUrl);
|
| + RewindableIterator<TabObserver> observers = mTab.getTabObservers();
|
| + while (observers.hasNext()) {
|
| + observers.next().onDidStartNavigation(
|
| + mTab, url, isInMainFrame, isSamePage, 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, String errorDescription, 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) {
|
| + mTab.updateThemeColorIfNeeded(true);
|
| + if (isInMainFrame) mTab.didFailPageLoad(errorCode);
|
| +
|
| + recordErrorInPolicyAuditor(url, errorDescription, errorCode);
|
| + return;
|
| + }
|
| +
|
| + if (!hasCommitted) return;
|
| + if (isInMainFrame && 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,15 +235,11 @@ public class TabWebContentsObserver extends WebContentsObserver {
|
| UmaUtils.setRunningApplicationStart(false);
|
| }
|
|
|
| - if (isMainFrame) {
|
| + if (isInMainFrame) {
|
| 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();
|
| @@ -225,45 +247,13 @@ public class TabWebContentsObserver extends WebContentsObserver {
|
| 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 && !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);
|
| + if (isInMainFrame) {
|
| + mTab.stopSwipeRefreshHandler();
|
| }
|
| }
|
|
|
| @@ -320,14 +310,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());
|
|
|