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