15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NET_URL_REQUEST_URL_REQUEST_DATA_JOB_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NET_URL_REQUEST_URL_REQUEST_DATA_JOB_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/url_request/url_request.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/url_request/url_request_simple_job.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass GURL; 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass HttpResponseHeaders; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class URLRequest; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass NET_EXPORT URLRequestDataJob : public URLRequestSimpleJob { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Extracts info from a data scheme URL. Returns OK if successful. Returns 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // ERR_INVALID_URL otherwise. 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static int BuildResponse(const GURL& url, 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::string* mime_type, 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::string* charset, 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::string* data, 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci HttpResponseHeaders* headers); 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) URLRequestDataJob(URLRequest* request, NetworkDelegate* network_delegate); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // URLRequestSimpleJob 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetData(std::string* mime_type, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* charset, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* data, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const CompletionCallback& callback) const OVERRIDE; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~URLRequestDataJob(); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(URLRequestDataJob); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace net 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // NET_URL_REQUEST_URL_REQUEST_DATA_JOB_H_ 47