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