customtabs: Add throttling to mayLaunchUrl.
commitda510f4184d5879d34138e239ba080f7159e3ebd
authorlizeb <lizeb@chromium.org>
Fri, 7 Aug 2015 10:19:30 +0000 (7 03:19 -0700)
committerCommit bot <commit-bot@chromium.org>
Fri, 7 Aug 2015 10:20:00 +0000 (7 10:20 +0000)
tree60d09635ca8994364add76cef3759499689d5736
parent18831714d344d489908705d374cf8c416afa603d
customtabs: Add throttling to mayLaunchUrl.

This adds a simple throttling policy for mayLaunchUrl(). Each
accepted mayLaunchUrl() request increases the delay before accepting the
next one. Initial delay is 100ms, and the maximum delay is 10s. Waiting
at least 2*current_interval resets the interval to 100ms, as well as
correctly predicting the destination URL.

Note that the tracking is done by UID (~app) instead of session, as a
misbehaving application can open a large number of sessions.

BUG=514825

Review URL: https://codereview.chromium.org/1264013005

Cr-Commit-Position: refs/heads/master@{#342329}
chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionTest.java