| OLD | NEW |
| 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 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 cancelPeriodicPrecacheTask(mAppContext); | 362 cancelPeriodicPrecacheTask(mAppContext); |
| 363 cancelPrecacheCompletionTask(mAppContext); | 363 cancelPrecacheCompletionTask(mAppContext); |
| 364 PrecacheUMA.record(PrecacheUMA.Event.DISABLED_IN_PRECACHE_PREF); | 364 PrecacheUMA.record(PrecacheUMA.Event.DISABLED_IN_PRECACHE_PREF); |
| 365 return GcmNetworkManager.RESULT_SUCCESS; | 365 return GcmNetworkManager.RESULT_SUCCESS; |
| 366 } | 366 } |
| 367 if (setIsPrecaching(true)) { | 367 if (setIsPrecaching(true)) { |
| 368 if (PERIODIC_TASK_TAG.equals(tag)) { | 368 if (PERIODIC_TASK_TAG.equals(tag)) { |
| 369 recordPeriodicTaskIntervalHistogram(); | 369 recordPeriodicTaskIntervalHistogram(); |
| 370 cancelPrecacheCompletionTask(mAppContext); | 370 cancelPrecacheCompletionTask(mAppContext); |
| 371 } | 371 } |
| 372 recordBatteryLevelAtStart(); |
| 372 registerDeviceStateReceiver(); | 373 registerDeviceStateReceiver(); |
| 373 acquirePrecachingWakeLock(); | 374 acquirePrecachingWakeLock(); |
| 374 startPrecachingAfterSyncInit(); | 375 startPrecachingAfterSyncInit(); |
| 375 return GcmNetworkManager.RESULT_SUCCESS; | 376 return GcmNetworkManager.RESULT_SUCCESS; |
| 376 } | 377 } |
| 377 Log.v(TAG, "precache session was already running"); | 378 Log.v(TAG, "precache session was already running"); |
| 378 PrecacheUMA.record(PrecacheUMA.Event.PRECACHE_TASK_STARTED_DUPLICATE); | 379 PrecacheUMA.record(PrecacheUMA.Event.PRECACHE_TASK_STARTED_DUPLICATE); |
| 379 return GcmNetworkManager.RESULT_FAILURE; | 380 return GcmNetworkManager.RESULT_FAILURE; |
| 380 } | 381 } |
| 381 | 382 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 | 433 |
| 433 /** | 434 /** |
| 434 * Updates state to indicate that the precache session is no longer in | 435 * Updates state to indicate that the precache session is no longer in |
| 435 * progress, and stops the service. | 436 * progress, and stops the service. |
| 436 */ | 437 */ |
| 437 private void shutdownPrecaching(boolean precachingIncomplete) { | 438 private void shutdownPrecaching(boolean precachingIncomplete) { |
| 438 Log.v(TAG, "shutting down precache session"); | 439 Log.v(TAG, "shutting down precache session"); |
| 439 if (precachingIncomplete) { | 440 if (precachingIncomplete) { |
| 440 schedulePrecacheCompletionTask(mAppContext); | 441 schedulePrecacheCompletionTask(mAppContext); |
| 441 } | 442 } |
| 443 recordBatteryLevelAtEnd(); |
| 442 mHandler.removeCallbacks(mTimeoutRunnable); | 444 mHandler.removeCallbacks(mTimeoutRunnable); |
| 443 mAppContext.unregisterReceiver(mDeviceStateReceiver); | 445 mAppContext.unregisterReceiver(mDeviceStateReceiver); |
| 444 releasePrecachingWakeLock(); | 446 releasePrecachingWakeLock(); |
| 445 } | 447 } |
| 446 | 448 |
| 447 /** | 449 /** |
| 448 * Registers a BroadcastReceiver to detect when conditions become wrong | 450 * Registers a BroadcastReceiver to detect when conditions become wrong |
| 449 * for precaching. | 451 * for precaching. |
| 450 */ | 452 */ |
| 451 private void registerDeviceStateReceiver() { | 453 private void registerDeviceStateReceiver() { |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 if (previous_start_time_ms > 0 && current_start_time_ms > previous_start
_time_ms) { | 538 if (previous_start_time_ms > 0 && current_start_time_ms > previous_start
_time_ms) { |
| 537 int interval_mins = | 539 int interval_mins = |
| 538 (int) ((current_start_time_ms - previous_start_time_ms) / (1
000 * 60)); | 540 (int) ((current_start_time_ms - previous_start_time_ms) / (1
000 * 60)); |
| 539 RecordHistogram.recordCustomCountHistogram( | 541 RecordHistogram.recordCustomCountHistogram( |
| 540 "Precache.PeriodicTaskInterval", interval_mins, 1, 10000, 50
); | 542 "Precache.PeriodicTaskInterval", interval_mins, 1, 10000, 50
); |
| 541 } | 543 } |
| 542 prefs.edit() | 544 prefs.edit() |
| 543 .putLong(PREF_PRECACHE_PERIODIC_TASK_START_TIME_MS, current_star
t_time_ms) | 545 .putLong(PREF_PRECACHE_PERIODIC_TASK_START_TIME_MS, current_star
t_time_ms) |
| 544 .apply(); | 546 .apply(); |
| 545 } | 547 } |
| 548 |
| 549 private void recordBatteryLevelAtStart() { |
| 550 mDeviceState.saveCurrentBatteryPercentage(mAppContext); |
| 551 |
| 552 // Report battery percentage. |
| 553 RecordHistogram.recordPercentageHistogram( |
| 554 "Precache.BatteryPercentage.Start", mDeviceState.getSavedBattery
Percentage()); |
| 555 } |
| 556 |
| 557 private void recordBatteryLevelAtEnd() { |
| 558 int delta_percentage = mDeviceState.getCurrentBatteryPercentage(mAppCont
ext) |
| 559 - mDeviceState.getSavedBatteryPercentage(); |
| 560 if (delta_percentage >= 0) { |
| 561 RecordHistogram.recordPercentageHistogram( |
| 562 "Precache.BatteryPercentageDiff.End", delta_percentage); |
| 563 } |
| 564 } |
| 546 } | 565 } |
| OLD | NEW |