Fix a crashing call to GURL::spec() in downloads_api.cc:DownloadItemToJSON()

The actual bug is DownloadItemImpl::GetOriginalUrl(): the front() of an empty vector is not a good GURL reference!

The sprinkling of GURL::is_valid() is just to make me feel better.

There is still the open question of what happened to the downloads_url_chain records, but that is less urgent than stopping the crashes.

BUG=190096

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188602 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc
index b24bd0a..c9fe58c 100644
--- a/content/browser/download/download_manager_impl.cc
+++ b/content/browser/download/download_manager_impl.cc
@@ -57,7 +57,8 @@
   scoped_ptr<net::URLRequest> request(
       params->resource_context()->GetRequestContext()->CreateRequest(
           params->url(), NULL));
-  request->set_referrer(params->referrer().url.spec());
+  if (params->referrer().url.is_valid())
+    request->set_referrer(params->referrer().url.spec());
   webkit_glue::ConfigureURLRequestForReferrerPolicy(
       request.get(), params->referrer().policy);
   request->set_load_flags(request->load_flags() | params->load_flags());