1a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// found in the LICENSE file.
4a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
5a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#ifndef EXTENSIONS_BROWSER_EXTENSION_PROTOCOLS_H_
6a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#define EXTENSIONS_BROWSER_EXTENSION_PROTOCOLS_H_
7a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
8a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include <string>
9a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
10a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "net/url_request/url_request_job_factory.h"
11a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
12a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace base {
13a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass Time;
14a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch}
15a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
16a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace net {
17a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass HttpResponseHeaders;
18a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch}
19a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
20a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace extensions {
21a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
22a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass InfoMap;
23a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
24a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Builds HTTP headers for an extension request. Hashes the time to avoid
25a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// exposing the exact user installation time of the extension.
26a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnet::HttpResponseHeaders* BuildHttpHeaders(
27a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    const std::string& content_security_policy,
28a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    bool send_cors_header,
29a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    const base::Time& last_modified_time);
30a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
31a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Creates the handlers for the chrome-extension:// scheme. Pass true for
32a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// |is_incognito| only for incognito profiles and not for Chrome OS guest mode
33a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// profiles.
34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnet::URLRequestJobFactory::ProtocolHandler* CreateExtensionProtocolHandler(
35a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    bool is_incognito,
36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    InfoMap* extension_info_map);
37a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
38a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch}  // namespace extensions
39a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
40a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#endif  // EXTENSIONS_BROWSER_EXTENSION_PROTOCOLS_H_
41