| 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.customtabs; | 5 package org.chromium.chrome.browser.customtabs; |
| 6 | 6 |
| 7 import android.annotation.SuppressLint; | 7 import android.annotation.SuppressLint; |
| 8 import android.content.Context; | 8 import android.content.Context; |
| 9 import android.content.SharedPreferences; | 9 import android.content.SharedPreferences; |
| 10 import android.os.AsyncTask; | 10 import android.os.AsyncTask; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 private static final float MAX_SCORE = 10; | 39 private static final float MAX_SCORE = 10; |
| 40 // TODO(lizeb): Control this value using Finch. | 40 // TODO(lizeb): Control this value using Finch. |
| 41 private static final long BAN_DURATION_MS = TimeUnit.DAYS.toMillis(7); | 41 private static final long BAN_DURATION_MS = TimeUnit.DAYS.toMillis(7); |
| 42 private static final long FORGET_AFTER_MS = TimeUnit.DAYS.toMillis(14); | 42 private static final long FORGET_AFTER_MS = TimeUnit.DAYS.toMillis(14); |
| 43 private static final float ALPHA = MAX_SCORE / BAN_DURATION_MS; | 43 private static final float ALPHA = MAX_SCORE / BAN_DURATION_MS; |
| 44 private static final String PREFERENCES_NAME = "customtabs_client_bans"; | 44 private static final String PREFERENCES_NAME = "customtabs_client_bans"; |
| 45 private static final String SCORE = "score_"; | 45 private static final String SCORE = "score_"; |
| 46 private static final String LAST_REQUEST = "last_request_"; | 46 private static final String LAST_REQUEST = "last_request_"; |
| 47 private static final String BANNED_UNTIL = "banned_until_"; | 47 private static final String BANNED_UNTIL = "banned_until_"; |
| 48 | 48 |
| 49 private static SparseArray<RequestThrottler> sUidToThrottler = null; | 49 private static SparseArray<RequestThrottler> sUidToThrottler; |
| 50 | 50 |
| 51 private final SharedPreferences mSharedPreferences; | 51 private final SharedPreferences mSharedPreferences; |
| 52 private final int mUid; | 52 private final int mUid; |
| 53 private float mScore; | 53 private float mScore; |
| 54 private long mLastPrerenderRequestMs; | 54 private long mLastPrerenderRequestMs; |
| 55 private long mBannedUntilMs; | 55 private long mBannedUntilMs; |
| 56 private String mUrl = null; | 56 private String mUrl; |
| 57 | 57 |
| 58 /** | 58 /** |
| 59 * Updates the prediction stats and returns whether prediction is allowed. | 59 * Updates the prediction stats and returns whether prediction is allowed. |
| 60 * | 60 * |
| 61 * The policy is: | 61 * The policy is: |
| 62 * 1. If the client does not wait more than mDelayMs, decline the request. | 62 * 1. If the client does not wait more than mDelayMs, decline the request. |
| 63 * 2. If the client waits for more than mDelayMs but less than 2*mDelayMs, a
ccept the request | 63 * 2. If the client waits for more than mDelayMs but less than 2*mDelayMs, a
ccept the request |
| 64 * and double mDelayMs. | 64 * and double mDelayMs. |
| 65 * 3. If the client waits for more than 2*mDelayMs, accept the request and r
eset mDelayMs. | 65 * 3. If the client waits for more than 2*mDelayMs, accept the request and r
eset mDelayMs. |
| 66 * | 66 * |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 editor.apply(); | 232 editor.apply(); |
| 233 } | 233 } |
| 234 | 234 |
| 235 @VisibleForTesting | 235 @VisibleForTesting |
| 236 static void purgeAllEntriesForTesting(Context context) { | 236 static void purgeAllEntriesForTesting(Context context) { |
| 237 SharedPreferences sharedPreferences = context.getSharedPreferences(PREFE
RENCES_NAME, 0); | 237 SharedPreferences sharedPreferences = context.getSharedPreferences(PREFE
RENCES_NAME, 0); |
| 238 sharedPreferences.edit().clear().apply(); | 238 sharedPreferences.edit().clear().apply(); |
| 239 if (sUidToThrottler != null) sUidToThrottler.clear(); | 239 if (sUidToThrottler != null) sUidToThrottler.clear(); |
| 240 } | 240 } |
| 241 } | 241 } |
| OLD | NEW |