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

Side by Side Diff: chrome/browser/android/precache/precache_launcher.cc

Issue 1266243003: Tweaks to the precache triggering code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/precache/precache_launcher.h" 5 #include "chrome/browser/android/precache/precache_launcher.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_weak_ref.h" 10 #include "base/android/jni_weak_ref.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 } 58 }
59 59
60 void PrecacheLauncher::Start(JNIEnv* env, jobject obj) { 60 void PrecacheLauncher::Start(JNIEnv* env, jobject obj) {
61 // TODO(bengr): Add integration tests for the whole feature. 61 // TODO(bengr): Add integration tests for the whole feature.
62 Profile* profile = GetProfile(); 62 Profile* profile = GetProfile();
63 63
64 PrecacheManager* precache_manager = GetPrecacheManager(profile); 64 PrecacheManager* precache_manager = GetPrecacheManager(profile);
65 history::HistoryService* hs = HistoryServiceFactory::GetForProfile( 65 history::HistoryService* hs = HistoryServiceFactory::GetForProfile(
66 profile, ServiceAccessType::IMPLICIT_ACCESS); 66 profile, ServiceAccessType::IMPLICIT_ACCESS);
67 67
68 if (precache_manager == nullptr || hs == nullptr || 68 if (precache_manager == nullptr || hs == nullptr) {
69 !precache_manager->IsPrecachingAllowed()) { 69 OnPrecacheCompleted();
70 Java_PrecacheLauncher_onPrecacheCompletedCallback(
71 env, weak_java_precache_launcher_.get(env).obj());
72 return; 70 return;
73 } 71 }
74 72
75 precache_manager->StartPrecaching( 73 precache_manager->StartPrecaching(
76 base::Bind(&PrecacheLauncher::OnPrecacheCompleted, 74 base::Bind(&PrecacheLauncher::OnPrecacheCompleted,
77 weak_factory_.GetWeakPtr()), 75 weak_factory_.GetWeakPtr()),
78 *hs); 76 *hs);
79 } 77 }
80 78
81 void PrecacheLauncher::Cancel(JNIEnv* env, jobject obj) { 79 void PrecacheLauncher::Cancel(JNIEnv* env, jobject obj) {
82 Profile* profile = GetProfile(); 80 Profile* profile = GetProfile();
83 PrecacheManager* precache_manager = GetPrecacheManager(profile); 81 PrecacheManager* precache_manager = GetPrecacheManager(profile);
84 82
85 precache_manager->CancelPrecaching(); 83 precache_manager->CancelPrecaching();
86 } 84 }
87 85
88 void PrecacheLauncher::OnPrecacheCompleted() { 86 void PrecacheLauncher::OnPrecacheCompleted() {
89 JNIEnv* env = AttachCurrentThread(); 87 JNIEnv* env = AttachCurrentThread();
90 Java_PrecacheLauncher_onPrecacheCompletedCallback( 88 Java_PrecacheLauncher_onPrecacheCompletedCallback(
91 env, weak_java_precache_launcher_.get(env).obj()); 89 env, weak_java_precache_launcher_.get(env).obj());
92 } 90 }
93 91
94 static jlong Init(JNIEnv* env, jobject obj) { 92 static jlong Init(JNIEnv* env, jobject obj) {
95 return reinterpret_cast<intptr_t>(new PrecacheLauncher(env, obj)); 93 return reinterpret_cast<intptr_t>(new PrecacheLauncher(env, obj));
96 } 94 }
97 95
98 static jboolean IsPrecachingEnabled(JNIEnv* env, jclass clazz) { 96 // Must be run on the UI thread.
99 return PrecacheManager::IsPrecachingEnabled(); 97 static jboolean ShouldRun(JNIEnv* env, jobject obj) {
98 Profile* profile = GetProfile();
99 PrecacheManager* precache_manager = GetPrecacheManager(profile);
100 return precache_manager && precache_manager->ShouldRun();
100 } 101 }
101 102
102 bool RegisterPrecacheLauncher(JNIEnv* env) { 103 bool RegisterPrecacheLauncher(JNIEnv* env) {
103 return RegisterNativesImpl(env); 104 return RegisterNativesImpl(env);
104 } 105 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698