Do not try to look up non-standard URLs in auth cache
Auth cache uses URL's origin as a key, and non-standard URLs don't have
it, so it only results in an attempt to use an invalid key, trigerring a
DCHECK on the way, too.
This can happen if page uses a data URL as a source for an HTML5 video.
Bug: 882842
Change-Id: I0a1861d27152d4d84f3a7692fd94af6222ca027c
Reviewed-on: https://chromium-review.googlesource.com/1219607
Reviewed-by: Min Qin <qinmin@chromium.org>
Commit-Queue: Piotr Kalinowski <pkalinowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#592005}
diff --git a/content/browser/media/android/media_resource_getter_impl.cc b/content/browser/media/android/media_resource_getter_impl.cc
index 74a94dfa..cab2d99 100644
--- a/content/browser/media/android/media_resource_getter_impl.cc
+++ b/content/browser/media/android/media_resource_getter_impl.cc
@@ -141,6 +141,11 @@
net::AuthCredentials MediaResourceGetterTask::RequestAuthCredentials(
const GURL& url) const {
DCHECK(GetTaskRunner()->BelongsToCurrentThread());
+ if (!url.IsStandard()) {
+ // Non-standard URLs, such as data, will not be found in HTTP auth cache
+ // anyway, because they have no valid origin, so don't waste the time.
+ return net::AuthCredentials();
+ }
net::HttpTransactionFactory* factory =
context_getter_->GetURLRequestContext()->http_transaction_factory();
if (!factory)