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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/precache/PrecacheController.java

Issue 2047573007: Record precache periodic task interval (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed alexei comments Created 4 years, 6 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.precache; 5 package org.chromium.chrome.browser.precache;
6 6
7 import android.content.BroadcastReceiver; 7 import android.content.BroadcastReceiver;
8 import android.content.Context; 8 import android.content.Context;
9 import android.content.Intent; 9 import android.content.Intent;
10 import android.content.IntentFilter; 10 import android.content.IntentFilter;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 public static final String CONTINUATION_TASK_TAG = "precache-continuation"; 69 public static final String CONTINUATION_TASK_TAG = "precache-continuation";
70 70
71 static final int WAIT_UNTIL_NEXT_PRECACHE_SECONDS = 6 * 60 * 60; // 6 hours . 71 static final int WAIT_UNTIL_NEXT_PRECACHE_SECONDS = 6 * 60 * 60; // 6 hours .
72 static final int COMPLETION_TASK_MIN_DELAY_SECONDS = 5 * 60; // 5 minutes. 72 static final int COMPLETION_TASK_MIN_DELAY_SECONDS = 5 * 60; // 5 minutes.
73 static final int COMPLETION_TASK_MAX_DELAY_SECONDS = 60 * 60; // 1 hour. 73 static final int COMPLETION_TASK_MAX_DELAY_SECONDS = 60 * 60; // 1 hour.
74 static final int MAX_SYNC_SERVICE_INIT_TIMOUT_MS = 5 * 60 * 1000; // 5 minut es 74 static final int MAX_SYNC_SERVICE_INIT_TIMOUT_MS = 5 * 60 * 1000; // 5 minut es
75 static final int MAX_PRECACHE_DURATION_SECONDS = 30 * 60; // 30 minutes. 75 static final int MAX_PRECACHE_DURATION_SECONDS = 30 * 60; // 30 minutes.
76 static final Set<Integer> SYNC_SERVICE_CONFIGURED_DATATYPES = 76 static final Set<Integer> SYNC_SERVICE_CONFIGURED_DATATYPES =
77 Collections.unmodifiableSet(new HashSet<Integer>(Arrays.asList(Model Type.SESSIONS))); 77 Collections.unmodifiableSet(new HashSet<Integer>(Arrays.asList(Model Type.SESSIONS)));
78 78
79 private static final String PREF_PRECACHE_PERIODIC_TASK_START_TIME_MS =
80 "precache.periodic_task_start_time_ms";
81
79 /** 82 /**
80 * Singleton instance of the PrecacheController. PrecacheController is a 83 * Singleton instance of the PrecacheController. PrecacheController is a
81 * singleton so that there is a single handle by which to determine if 84 * singleton so that there is a single handle by which to determine if
82 * precaching is underway, and to cancel it if necessary. 85 * precaching is underway, and to cancel it if necessary.
83 */ 86 */
84 private static PrecacheController sInstance; 87 private static PrecacheController sInstance;
85 88
86 /** 89 /**
87 * The default task scheduler. Overridden for tests. 90 * The default task scheduler. Overridden for tests.
88 */ 91 */
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 assert mNonThreadSafe.calledOnValidThread(); 351 assert mNonThreadSafe.calledOnValidThread();
349 Log.v(TAG, "precache task (%s) started", tag); 352 Log.v(TAG, "precache task (%s) started", tag);
350 if (!isPrecachingEnabled()) { 353 if (!isPrecachingEnabled()) {
351 Log.v(TAG, "precaching isn't enabled"); 354 Log.v(TAG, "precaching isn't enabled");
352 cancelPeriodicPrecacheTask(mAppContext); 355 cancelPeriodicPrecacheTask(mAppContext);
353 cancelPrecacheCompletionTask(mAppContext); 356 cancelPrecacheCompletionTask(mAppContext);
354 return GcmNetworkManager.RESULT_SUCCESS; 357 return GcmNetworkManager.RESULT_SUCCESS;
355 } 358 }
356 if (setIsPrecaching(true)) { 359 if (setIsPrecaching(true)) {
357 if (PERIODIC_TASK_TAG.equals(tag)) { 360 if (PERIODIC_TASK_TAG.equals(tag)) {
361 recordPeriodicTaskIntervalHistogram();
358 cancelPrecacheCompletionTask(mAppContext); 362 cancelPrecacheCompletionTask(mAppContext);
359 } 363 }
360 startPrecachingAfterSyncInit(); 364 startPrecachingAfterSyncInit();
361 return GcmNetworkManager.RESULT_SUCCESS; 365 return GcmNetworkManager.RESULT_SUCCESS;
362 } 366 }
363 Log.v(TAG, "precache session was already running"); 367 Log.v(TAG, "precache session was already running");
364 return GcmNetworkManager.RESULT_FAILURE; 368 return GcmNetworkManager.RESULT_FAILURE;
365 } 369 }
366 370
367 @VisibleForTesting 371 @VisibleForTesting
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 @VisibleForTesting 501 @VisibleForTesting
498 void setPrecacheLauncher(PrecacheLauncher precacheLauncher) { 502 void setPrecacheLauncher(PrecacheLauncher precacheLauncher) {
499 assert mNonThreadSafe.calledOnValidThread(); 503 assert mNonThreadSafe.calledOnValidThread();
500 mPrecacheLauncher = precacheLauncher; 504 mPrecacheLauncher = precacheLauncher;
501 } 505 }
502 506
503 @VisibleForTesting 507 @VisibleForTesting
504 static void setTaskScheduler(PrecacheTaskScheduler taskScheduler) { 508 static void setTaskScheduler(PrecacheTaskScheduler taskScheduler) {
505 PrecacheController.sTaskScheduler = taskScheduler; 509 PrecacheController.sTaskScheduler = taskScheduler;
506 } 510 }
511
512 private static void recordPeriodicTaskIntervalHistogram() {
513 SharedPreferences prefs = ContextUtils.getAppSharedPreferences();
514 long previous_start_time_ms = prefs.getLong(PREF_PRECACHE_PERIODIC_TASK_ START_TIME_MS, 0);
515 long current_start_time_ms = System.currentTimeMillis();
516 if (previous_start_time_ms > 0 && current_start_time_ms > previous_start _time_ms) {
517 int interval_mins =
518 (int) ((current_start_time_ms - previous_start_time_ms) / (1 000 * 60));
519 RecordHistogram.recordCustomCountHistogram(
520 "Precache.PeriodicTaskInterval", interval_mins, 1, 10000, 50 );
521 }
522 prefs.edit()
523 .putLong(PREF_PRECACHE_PERIODIC_TASK_START_TIME_MS, current_star t_time_ms)
524 .apply();
525 }
507 } 526 }
OLDNEW
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | tools/metrics/histograms/histograms.xml » ('J')

Powered by Google App Engine
This is Rietveld 408576698