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

Issue 2245733004: Serve offline page for online URL on disconnected or bad networks (Closed)

Created:
4 years, 4 months ago by jianli
Modified:
4 years, 3 months ago
CC:
chromium-reviews, romax+watch_chromium.org, fgorski+watch_chromium.org, dewittj+watch_chromium.org, petewil+watch_chromium.org, chili+watch_chromium.org, asvitkine+watch_chromium.org, dimich+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Serve offline page for online URL on disconnected or bad networks This patch provides the implementation for OfflinePageRequestHandler that may return OfflinePageRequestJob to replace the response with offline content if needed. The original request redirection logic in OfflinePageTabHelper is removed. BUG=636072 Committed: https://crrev.com/7b4c282100e0ff3ef68b7e95b520325c7e94d11b Cr-Commit-Position: refs/heads/master@{#414577}

Patch Set 1 #

Patch Set 2 : Update #

Total comments: 30

Patch Set 3 : Address feedback #

Total comments: 24

Patch Set 4 : Address more feedback #

Total comments: 23

Patch Set 5 : Address some more feedback #

Total comments: 14

Patch Set 6 : Add tests #

Patch Set 7 : Address feedback from dimich #

Total comments: 2

Patch Set 8 : Rebase + add missing new test file #

Patch Set 9 : Address more feedback #

Total comments: 4

Patch Set 10 : Fix NQE test cleanup #

Patch Set 11 : Update unittest per feedback #

Patch Set 12 : Add Java integration test #

Patch Set 13 : Rebase #

Patch Set 14 : Fix build #

Patch Set 15 : Make opening offline download item work + fix build #

Patch Set 16 : Fix junit test #

Total comments: 12

Patch Set 17 : Address feedback from fgorski + fix test #

Patch Set 18 : Rebase #

Patch Set 19 : Fix test #

Total comments: 3

Patch Set 20 : Update java test per final feedback #

Patch Set 21 : Update comment in test #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1679 lines, -569 lines) Patch
M chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +4 lines, -8 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +4 lines, -4 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java View 1 2 3 4 5 6 7 4 chunks +5 lines, -11 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 6 chunks +13 lines, -19 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -4 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/TabDelegate.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +13 lines, -0 lines 0 comments Download
M chrome/android/java_sources.gni View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -0 lines 0 comments Download
A chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +157 lines, -0 lines 0 comments Download
M chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridgeTest.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +3 lines, -3 lines 0 comments Download
M chrome/browser/android/offline_pages/offline_page_request_handler.h View 1 2 3 1 chunk +0 lines, -73 lines 0 comments Download
M chrome/browser/android/offline_pages/offline_page_request_handler.cc View 1 2 3 1 chunk +0 lines, -105 lines 0 comments Download
A chrome/browser/android/offline_pages/offline_page_request_interceptor.h View 1 2 3 1 chunk +42 lines, -0 lines 0 comments Download
A chrome/browser/android/offline_pages/offline_page_request_interceptor.cc View 1 2 3 4 1 chunk +28 lines, -0 lines 0 comments Download
A chrome/browser/android/offline_pages/offline_page_request_job.h View 1 2 3 4 5 6 7 1 chunk +114 lines, -0 lines 0 comments Download
A chrome/browser/android/offline_pages/offline_page_request_job.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +512 lines, -0 lines 0 comments Download
A chrome/browser/android/offline_pages/offline_page_request_job_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +673 lines, -0 lines 0 comments Download
M chrome/browser/android/offline_pages/offline_page_tab_helper.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +12 lines, -77 lines 0 comments Download
M chrome/browser/android/offline_pages/offline_page_tab_helper.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 4 chunks +43 lines, -248 lines 0 comments Download
M chrome/browser/profiles/profile_impl_io_data.cc View 1 2 3 2 chunks +4 lines, -6 lines 0 comments Download
M chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc View 1 2 3 4 2 chunks +0 lines, -8 lines 0 comments Download
M chrome/chrome_browser.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +4 lines, -2 lines 0 comments Download
M chrome/chrome_tests_unit.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -1 line 0 comments Download
A chrome/test/data/offline_pages/test.mhtml View 1 2 3 4 5 6 7 8 9 10 1 chunk +17 lines, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 4 chunks +28 lines, -0 lines 0 comments Download

Messages

Total messages: 104 (60 generated)
jianli
The tests will be updated or added later.
4 years, 4 months ago (2016-08-12 23:36:21 UTC) #2
fgorski
Jian, This is a complex patch. I need you to walk me through it so ...
4 years, 4 months ago (2016-08-15 21:38:32 UTC) #3
jianli
https://codereview.chromium.org/2245733004/diff/40001/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java File chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java (right): https://codereview.chromium.org/2245733004/diff/40001/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java#newcode2068 chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java:2068: * Gets the URL of the web page in ...
4 years, 4 months ago (2016-08-15 23:15:44 UTC) #5
Dmitry Titov
Initial feedback (partial). You will need someone good familiar with Net layer to look at ...
4 years, 4 months ago (2016-08-16 20:02:55 UTC) #6
jianli
mmenke for reviewing url request handling and interception
4 years, 4 months ago (2016-08-16 20:14:17 UTC) #8
mmenke
https://codereview.chromium.org/2245733004/diff/60001/chrome/browser/android/offline_pages/offline_page_request_handler.cc File chrome/browser/android/offline_pages/offline_page_request_handler.cc (right): https://codereview.chromium.org/2245733004/diff/60001/chrome/browser/android/offline_pages/offline_page_request_handler.cc#newcode292 chrome/browser/android/offline_pages/offline_page_request_handler.cc:292: new OfflinePageRequestHandler(network_state)); Rather than attach an object that does ...
4 years, 4 months ago (2016-08-17 17:09:28 UTC) #9
jianli
https://codereview.chromium.org/2245733004/diff/60001/chrome/browser/android/offline_pages/offline_page_request_handler.cc File chrome/browser/android/offline_pages/offline_page_request_handler.cc (right): https://codereview.chromium.org/2245733004/diff/60001/chrome/browser/android/offline_pages/offline_page_request_handler.cc#newcode76 chrome/browser/android/offline_pages/offline_page_request_handler.cc:76: NetworkState GetNetworkState(net::URLRequest* request) { On 2016/08/16 20:02:55, Dmitry Titov ...
4 years, 4 months ago (2016-08-18 22:46:36 UTC) #10
mmenke
https://codereview.chromium.org/2245733004/diff/80001/chrome/browser/android/offline_pages/offline_page_request_interceptor.cc File chrome/browser/android/offline_pages/offline_page_request_interceptor.cc (right): https://codereview.chromium.org/2245733004/diff/80001/chrome/browser/android/offline_pages/offline_page_request_interceptor.cc#newcode22 chrome/browser/android/offline_pages/offline_page_request_interceptor.cc:22: return OfflinePageRequestJob::Create(profile_id_, request, network_delegate); I don't think we need ...
4 years, 4 months ago (2016-08-19 15:04:10 UTC) #11
jianli
https://codereview.chromium.org/2245733004/diff/80001/chrome/browser/android/offline_pages/offline_page_request_interceptor.cc File chrome/browser/android/offline_pages/offline_page_request_interceptor.cc (right): https://codereview.chromium.org/2245733004/diff/80001/chrome/browser/android/offline_pages/offline_page_request_interceptor.cc#newcode22 chrome/browser/android/offline_pages/offline_page_request_interceptor.cc:22: return OfflinePageRequestJob::Create(profile_id_, request, network_delegate); On 2016/08/19 15:04:09, mmenke wrote: ...
4 years, 4 months ago (2016-08-19 19:34:56 UTC) #12
jianli
https://codereview.chromium.org/2245733004/diff/80001/chrome/browser/android/offline_pages/offline_page_request_job.cc File chrome/browser/android/offline_pages/offline_page_request_job.cc (right): https://codereview.chromium.org/2245733004/diff/80001/chrome/browser/android/offline_pages/offline_page_request_job.cc#newcode437 chrome/browser/android/offline_pages/offline_page_request_job.cc:437: info->use_default = true; On 2016/08/19 15:04:09, mmenke wrote: > ...
4 years, 4 months ago (2016-08-19 19:36:41 UTC) #13
mmenke
https://codereview.chromium.org/2245733004/diff/80001/chrome/browser/profiles/profile_impl_io_data.cc File chrome/browser/profiles/profile_impl_io_data.cc (right): https://codereview.chromium.org/2245733004/diff/80001/chrome/browser/profiles/profile_impl_io_data.cc#newcode535 chrome/browser/profiles/profile_impl_io_data.cc:535: request_interceptors.push_back(std::unique_ptr<net::URLRequestInterceptor>( On 2016/08/19 19:34:56, jianli wrote: > On 2016/08/19 ...
4 years, 4 months ago (2016-08-19 19:43:02 UTC) #14
jianli
On Fri, Aug 19, 2016 at 12:43 PM, <mmenke@chromium.org> wrote: > > https://codereview.chromium.org/2245733004/diff/80001/ > chrome/browser/profiles/profile_impl_io_data.cc ...
4 years, 4 months ago (2016-08-19 20:14:09 UTC) #15
Dmitry Titov
Nice progress! https://codereview.chromium.org/2245733004/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java File chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java (right): https://codereview.chromium.org/2245733004/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java#newcode2068 chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java:2068: private String getOnlineUrlFromTab() { I wonder if ...
4 years, 4 months ago (2016-08-20 01:08:14 UTC) #16
jianli
https://codereview.chromium.org/2245733004/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java File chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java (right): https://codereview.chromium.org/2245733004/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java#newcode2068 chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java:2068: private String getOnlineUrlFromTab() { On 2016/08/20 01:08:13, Dmitry Titov ...
4 years, 4 months ago (2016-08-20 01:48:52 UTC) #17
jianli
Also added tests.
4 years, 4 months ago (2016-08-20 01:49:08 UTC) #18
jianli
nyquist for android codes holte for histograms
4 years, 4 months ago (2016-08-20 01:51:54 UTC) #20
mmenke
https://codereview.chromium.org/2245733004/diff/80001/chrome/browser/android/offline_pages/offline_page_request_job.cc File chrome/browser/android/offline_pages/offline_page_request_job.cc (right): https://codereview.chromium.org/2245733004/diff/80001/chrome/browser/android/offline_pages/offline_page_request_job.cc#newcode65 chrome/browser/android/offline_pages/offline_page_request_job.cc:65: int kUserDataKey; // Only address is used. On 2016/08/19 ...
4 years, 3 months ago (2016-08-22 15:12:26 UTC) #25
mmenke
On 2016/08/19 20:14:09, jianli wrote: > On Fri, Aug 19, 2016 at 12:43 PM, <mailto:mmenke@chromium.org> ...
4 years, 3 months ago (2016-08-22 15:15:37 UTC) #26
jianli
In addition to new unittests, I am working on adding browser tests. Are you OK ...
4 years, 3 months ago (2016-08-22 23:20:31 UTC) #27
mmenke
On 2016/08/22 23:20:31, jianli wrote: > In addition to new unittests, I am working on ...
4 years, 3 months ago (2016-08-22 23:34:31 UTC) #28
mmenke
https://codereview.chromium.org/2245733004/diff/180001/chrome/browser/android/offline_pages/offline_page_request_job_unittest.cc File chrome/browser/android/offline_pages/offline_page_request_job_unittest.cc (right): https://codereview.chromium.org/2245733004/diff/180001/chrome/browser/android/offline_pages/offline_page_request_job_unittest.cc#newcode406 chrome/browser/android/offline_pages/offline_page_request_job_unittest.cc:406: &profile_, request.get(), &network_delegate_)); I also recommend against this - ...
4 years, 3 months ago (2016-08-22 23:40:05 UTC) #29
jianli
Also adding browser test https://codereview.chromium.org/2245733004/diff/180001/chrome/browser/android/offline_pages/offline_page_request_job_unittest.cc File chrome/browser/android/offline_pages/offline_page_request_job_unittest.cc (right): https://codereview.chromium.org/2245733004/diff/180001/chrome/browser/android/offline_pages/offline_page_request_job_unittest.cc#newcode406 chrome/browser/android/offline_pages/offline_page_request_job_unittest.cc:406: &profile_, request.get(), &network_delegate_)); On 2016/08/22 ...
4 years, 3 months ago (2016-08-23 01:27:34 UTC) #35
jianli
I've added Java integration test.
4 years, 3 months ago (2016-08-23 20:55:39 UTC) #39
Dmitry Titov
lgtm from offline_pages, but it looks like Matt will have final say here.
4 years, 3 months ago (2016-08-24 00:54:02 UTC) #50
Steven Holte
histograms lgtm
4 years, 3 months ago (2016-08-24 01:51:32 UTC) #55
mmenke
Apologies in advance, not sure when I'll get to this, working on figuring out a ...
4 years, 3 months ago (2016-08-24 14:52:11 UTC) #58
fgorski
lgtm with comments. (Renaming of method can happen separately.) https://codereview.chromium.org/2245733004/diff/320001/chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java File chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java (right): https://codereview.chromium.org/2245733004/diff/320001/chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java#newcode300 chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java:300: ...
4 years, 3 months ago (2016-08-24 21:02:37 UTC) #61
jianli
https://codereview.chromium.org/2245733004/diff/320001/chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java File chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java (right): https://codereview.chromium.org/2245733004/diff/320001/chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java#newcode300 chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java:300: * @param profile Profile of the tabthat will show ...
4 years, 3 months ago (2016-08-24 22:30:58 UTC) #65
jianli
sky for chrome/test and chrome/browser
4 years, 3 months ago (2016-08-24 22:40:14 UTC) #70
sky
chrome/browser LGTM chrome/test/data has owners of *, so you don't need more for a data ...
4 years, 3 months ago (2016-08-24 23:37:29 UTC) #73
Ted C
On 2016/08/24 23:37:29, sky wrote: > chrome/browser LGTM > chrome/test/data has owners of *, so ...
4 years, 3 months ago (2016-08-25 00:14:32 UTC) #74
mmenke
With test, LGTM, but I really do think you should have a couple integration tests ...
4 years, 3 months ago (2016-08-25 19:06:09 UTC) #81
jianli
I will start to work on adding some tests with service worker in a separate ...
4 years, 3 months ago (2016-08-25 19:37:35 UTC) #82
jianli
I will start to work on adding some tests with service worker in a separate ...
4 years, 3 months ago (2016-08-25 19:37:40 UTC) #83
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2245733004/380001
4 years, 3 months ago (2016-08-25 19:39:27 UTC) #86
mmenke
https://codereview.chromium.org/2245733004/diff/380001/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java File chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java (right): https://codereview.chromium.org/2245733004/diff/380001/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java#newcode92 chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java:92: assertFalse(isOfflinePage(tab)); On 2016/08/25 19:37:35, jianli wrote: > On 2016/08/25 ...
4 years, 3 months ago (2016-08-25 19:43:49 UTC) #87
jianli
OK. Making change now and will upload a new one. On Thu, Aug 25, 2016 ...
4 years, 3 months ago (2016-08-25 19:45:24 UTC) #89
jianli
mmenke, I've improved java test per your feedback.
4 years, 3 months ago (2016-08-25 20:38:59 UTC) #90
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2245733004/400001
4 years, 3 months ago (2016-08-25 20:40:09 UTC) #94
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2245733004/420001
4 years, 3 months ago (2016-08-25 20:42:35 UTC) #97
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/281414)
4 years, 3 months ago (2016-08-25 22:03:25 UTC) #99
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2245733004/420001
4 years, 3 months ago (2016-08-25 22:08:46 UTC) #101
commit-bot: I haz the power
Committed patchset #21 (id:420001)
4 years, 3 months ago (2016-08-25 23:15:37 UTC) #102
commit-bot: I haz the power
4 years, 3 months ago (2016-08-25 23:17:27 UTC) #104
Message was sent while issue was closed.
Patchset 21 (id:??) landed as
https://crrev.com/7b4c282100e0ff3ef68b7e95b520325c7e94d11b
Cr-Commit-Position: refs/heads/master@{#414577}

Powered by Google App Engine
This is Rietveld 408576698