Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java

Issue 2245733004: Serve offline page for online URL on disconnected or bad networks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address more feedback Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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.chrome.browser.omnibox; 5 package org.chromium.chrome.browser.omnibox;
6 6
7 import static org.chromium.chrome.browser.toolbar.ToolbarPhone.URL_FOCUS_CHANGE_ ANIMATION_DURATION_MS; 7 import static org.chromium.chrome.browser.toolbar.ToolbarPhone.URL_FOCUS_CHANGE_ ANIMATION_DURATION_MS;
8 8
9 import android.Manifest; 9 import android.Manifest;
10 import android.animation.Animator; 10 import android.animation.Animator;
(...skipping 884 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 @Override 895 @Override
896 public void revertChanges() { 896 public void revertChanges() {
897 if (!mUrlHasFocus) { 897 if (!mUrlHasFocus) {
898 setUrlToPageUrl(); 898 setUrlToPageUrl();
899 } else { 899 } else {
900 Tab tab = mToolbarDataProvider.getTab(); 900 Tab tab = mToolbarDataProvider.getTab();
901 if (NativePageFactory.isNativePageUrl(tab.getUrl(), tab.isIncognito( ))) { 901 if (NativePageFactory.isNativePageUrl(tab.getUrl(), tab.isIncognito( ))) {
902 mUrlBar.setUrl("", null); 902 mUrlBar.setUrl("", null);
903 } else { 903 } else {
904 mUrlBar.setUrl( 904 mUrlBar.setUrl(
905 mToolbarDataProvider.getText(), getOnlineUrlFromTab()); 905 mToolbarDataProvider.getText(), getCurrentTabUrl());
906 } 906 }
907 } 907 }
908 } 908 }
909 909
910 @Override 910 @Override
911 public long getFirstUrlBarFocusTime() { 911 public long getFirstUrlBarFocusTime() {
912 return mUrlBar.getFirstFocusTime(); 912 return mUrlBar.getFirstFocusTime();
913 } 913 }
914 914
915 /** 915 /**
(...skipping 1101 matching lines...) Expand 10 before | Expand all | Expand 10 after
2017 2017
2018 /** 2018 /**
2019 * Sets the displayed URL to be the URL of the page currently showing. 2019 * Sets the displayed URL to be the URL of the page currently showing.
2020 * 2020 *
2021 * <p>The URL is converted to the most user friendly format (removing HTTP:/ / for example). 2021 * <p>The URL is converted to the most user friendly format (removing HTTP:/ / for example).
2022 * 2022 *
2023 * <p>If the current tab is null, the URL text will be cleared. 2023 * <p>If the current tab is null, the URL text will be cleared.
2024 */ 2024 */
2025 @Override 2025 @Override
2026 public void setUrlToPageUrl() { 2026 public void setUrlToPageUrl() {
2027 String url = getOnlineUrlFromTab(); 2027 String url = getCurrentTabUrl();
2028 2028
2029 // If the URL is currently focused, do not replace the text they have en tered with the URL. 2029 // If the URL is currently focused, do not replace the text they have en tered with the URL.
2030 // Once they stop editing the URL, the current tab's URL will automatica lly be filled in. 2030 // Once they stop editing the URL, the current tab's URL will automatica lly be filled in.
2031 if (mUrlBar.hasFocus()) { 2031 if (mUrlBar.hasFocus()) {
2032 if (mUrlFocusedWithoutAnimations && !NewTabPage.isNTPUrl(url)) { 2032 if (mUrlFocusedWithoutAnimations && !NewTabPage.isNTPUrl(url)) {
2033 // If we did not run the focus animations, then the user has not typed any text. 2033 // If we did not run the focus animations, then the user has not typed any text.
2034 // So, clear the focus and accept whatever URL the page is curre ntly attempting to 2034 // So, clear the focus and accept whatever URL the page is curre ntly attempting to
2035 // display. 2035 // display.
2036 setUrlBarFocus(false); 2036 setUrlBarFocus(false);
2037 } else { 2037 } else {
(...skipping 19 matching lines...) Expand all
2057 return; 2057 return;
2058 } 2058 }
2059 2059
2060 if (setUrlBarText(url, mToolbarDataProvider.getText())) { 2060 if (setUrlBarText(url, mToolbarDataProvider.getText())) {
2061 mUrlBar.deEmphasizeUrl(); 2061 mUrlBar.deEmphasizeUrl();
2062 emphasizeUrl(); 2062 emphasizeUrl();
2063 } 2063 }
2064 updateCustomSelectionActionModeCallback(); 2064 updateCustomSelectionActionModeCallback();
2065 } 2065 }
2066 2066
2067 /** 2067 /** Gets the URL of the web page in the tab. */
2068 * Gets the URL of the web page in the tab. When displaying offline page it gets the URL of the 2068 private String getCurrentTabUrl() {
2069 * original page.
2070 */
2071 private String getOnlineUrlFromTab() {
2072 Tab currentTab = getCurrentTab(); 2069 Tab currentTab = getCurrentTab();
2073 if (currentTab == null) return ""; 2070 if (currentTab == null) return "";
2074 if (currentTab.isOfflinePage()) {
2075 return currentTab.getOriginalUrl().trim();
2076 }
2077 return currentTab.getUrl().trim(); 2071 return currentTab.getUrl().trim();
2078 } 2072 }
2079 2073
2080 /** 2074 /**
2081 * Changes the text on the url bar 2075 * Changes the text on the url bar
2082 * @param originalText The original text (URL or search terms) for copy/cut. 2076 * @param originalText The original text (URL or search terms) for copy/cut.
2083 * @param displayText The text (URL or search terms) for user display. 2077 * @param displayText The text (URL or search terms) for user display.
2084 * @return Whether the URL was changed as a result of this call. 2078 * @return Whether the URL was changed as a result of this call.
2085 */ 2079 */
2086 private boolean setUrlBarText(String originalText, String displayText) { 2080 private boolean setUrlBarText(String originalText, String displayText) {
2087 mUrlBar.setIgnoreTextChangesForAutocomplete(true); 2081 mUrlBar.setIgnoreTextChangesForAutocomplete(true);
2088 boolean urlChanged = mUrlBar.setUrl(originalText, displayText); 2082 boolean urlChanged = mUrlBar.setUrl(originalText, displayText);
2089 mUrlBar.setIgnoreTextChangesForAutocomplete(false); 2083 mUrlBar.setIgnoreTextChangesForAutocomplete(false);
2090 return urlChanged; 2084 return urlChanged;
2091 } 2085 }
2092 2086
2093 private void loadUrlFromOmniboxMatch(String url, int transition, int matchPo sition, int type) { 2087 private void loadUrlFromOmniboxMatch(String url, int transition, int matchPo sition, int type) {
2094 // loadUrl modifies AutocompleteController's state clearing the native 2088 // loadUrl modifies AutocompleteController's state clearing the native
2095 // AutocompleteResults needed by onSuggestionsSelected. Therefore, 2089 // AutocompleteResults needed by onSuggestionsSelected. Therefore,
2096 // loadUrl should should be invoked last. 2090 // loadUrl should should be invoked last.
2097 Tab currentTab = getCurrentTab(); 2091 Tab currentTab = getCurrentTab();
2098 String currentPageUrl = currentTab != null ? currentTab.getUrl() : ""; 2092 String currentPageUrl = getCurrentTabUrl();
2099 WebContents webContents = currentTab != null ? currentTab.getWebContents () : null; 2093 WebContents webContents = currentTab != null ? currentTab.getWebContents () : null;
2100 long elapsedTimeSinceModified = mNewOmniboxEditSessionTimestamp > 0 2094 long elapsedTimeSinceModified = mNewOmniboxEditSessionTimestamp > 0
2101 ? (SystemClock.elapsedRealtime() - mNewOmniboxEditSessionTimesta mp) : -1; 2095 ? (SystemClock.elapsedRealtime() - mNewOmniboxEditSessionTimesta mp) : -1;
2102 mAutocomplete.onSuggestionSelected(matchPosition, type, currentPageUrl, 2096 mAutocomplete.onSuggestionSelected(matchPosition, type, currentPageUrl,
2103 mUrlFocusedFromFakebox, elapsedTimeSinceModified, mUrlBar.getAut ocompleteLength(), 2097 mUrlFocusedFromFakebox, elapsedTimeSinceModified, mUrlBar.getAut ocompleteLength(),
2104 webContents); 2098 webContents);
2105 loadUrl(url, transition); 2099 loadUrl(url, transition);
2106 } 2100 }
2107 2101
2108 private void loadUrl(String url, int transition) { 2102 private void loadUrl(String url, int transition) {
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
2450 public View getContainerView() { 2444 public View getContainerView() {
2451 return this; 2445 return this;
2452 } 2446 }
2453 2447
2454 @Override 2448 @Override
2455 public void setTitleToPageTitle() { } 2449 public void setTitleToPageTitle() { }
2456 2450
2457 @Override 2451 @Override
2458 public void setShowTitle(boolean showTitle) { } 2452 public void setShowTitle(boolean showTitle) { }
2459 } 2453 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698