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

Side by Side Diff: chrome/browser/android/offline_pages/prerender_adapter.cc

Issue 2608553002: [OfflinePages] Improve visiblity/handling of "Loading not started" case (Closed)
Patch Set: Addes ! low-end device default to test Setup Created 3 years, 11 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "chrome/browser/android/offline_pages/prerender_adapter.h" 5 #include "chrome/browser/android/offline_pages/prerender_adapter.h"
6 6
7 #include "chrome/browser/prerender/prerender_manager.h" 7 #include "chrome/browser/prerender/prerender_manager.h"
8 #include "chrome/browser/prerender/prerender_manager_factory.h" 8 #include "chrome/browser/prerender/prerender_manager_factory.h"
9 #include "content/public/browser/browser_context.h" 9 #include "content/public/browser/browser_context.h"
10 #include "content/public/browser/web_contents.h" 10 #include "content/public/browser/web_contents.h"
11 #include "ui/gfx/geometry/size.h" 11 #include "ui/gfx/geometry/size.h"
12 12
13 namespace offline_pages { 13 namespace offline_pages {
14 14
15 PrerenderAdapter::Observer::Observer() {} 15 PrerenderAdapter::Observer::Observer() {}
16 PrerenderAdapter::Observer::~Observer() {} 16 PrerenderAdapter::Observer::~Observer() {}
17 17
18 PrerenderAdapter::PrerenderAdapter(PrerenderAdapter::Observer* observer) 18 PrerenderAdapter::PrerenderAdapter(PrerenderAdapter::Observer* observer)
19 : observer_(observer) { 19 : observer_(observer) {
20 DCHECK(observer); 20 DCHECK(observer);
21 } 21 }
22 22
23 PrerenderAdapter::~PrerenderAdapter() { 23 PrerenderAdapter::~PrerenderAdapter() {
24 if (IsActive()) 24 if (IsActive())
25 DestroyActive(); 25 DestroyActive();
26 } 26 }
27 27
28 bool PrerenderAdapter::CanPrerender() const {
29 return prerender::PrerenderManager::IsPrerenderingPossible();
30 }
31
32 bool PrerenderAdapter::StartPrerender( 28 bool PrerenderAdapter::StartPrerender(
33 content::BrowserContext* browser_context, 29 content::BrowserContext* browser_context,
34 const GURL& url, 30 const GURL& url,
35 content::SessionStorageNamespace* session_storage_namespace, 31 content::SessionStorageNamespace* session_storage_namespace,
36 const gfx::Size& size) { 32 const gfx::Size& size) {
37 DCHECK(!IsActive()); 33 DCHECK(!IsActive());
38 DCHECK(CanPrerender());
39 34
40 prerender::PrerenderManager* manager = 35 prerender::PrerenderManager* manager =
41 prerender::PrerenderManagerFactory::GetForBrowserContext(browser_context); 36 prerender::PrerenderManagerFactory::GetForBrowserContext(browser_context);
42 DCHECK(manager); 37 DCHECK(manager);
43 38
44 // AddPrerenderForOffline() triggers the start event, and it is before the 39 // AddPrerenderForOffline() triggers the start event, and it is before the
45 // observer is set. 40 // observer is set.
46 active_handle_ = 41 active_handle_ =
47 manager->AddPrerenderForOffline(url, session_storage_namespace, size); 42 manager->AddPrerenderForOffline(url, session_storage_namespace, size);
48 if (!active_handle_) 43 if (!active_handle_)
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 } 96 }
102 97
103 void PrerenderAdapter::OnPrerenderStop(prerender::PrerenderHandle* handle) { 98 void PrerenderAdapter::OnPrerenderStop(prerender::PrerenderHandle* handle) {
104 if (IsActive()) { 99 if (IsActive()) {
105 DCHECK_EQ(active_handle_.get(), handle); 100 DCHECK_EQ(active_handle_.get(), handle);
106 observer_->OnPrerenderStop(); 101 observer_->OnPrerenderStop();
107 } 102 }
108 } 103 }
109 104
110 } // namespace offline_pages 105 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698