1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_SIGNIN_SIGNIN_HEADER_HELPER_H_ 6#define CHROME_BROWSER_SIGNIN_SIGNIN_HEADER_HELPER_H_ 7 8namespace net { 9class URLRequest; 10} 11class GURL; 12class ProfileIOData; 13 14// Utility functions for handling Chrome/Gaia headers during signin process. 15// In the Mirror world, Chrome identity should always stay in sync with Gaia 16// identity. Therefore Chrome needs to send Gaia special header for requests 17// from a connected profile, so that Gaia can modify its response accordingly 18// and let Chrome handles signin with native UI. 19namespace signin { 20 21// Add X-Chrome-Connected header to all Gaia requests from a connected profile, 22// with the exception of requests from gaia webview. Must be called on IO 23// thread. 24void AppendMirrorRequestHeaderIfPossible( 25 net::URLRequest* request, 26 const GURL& redirect_url, 27 ProfileIOData* io_data, 28 int child_id, 29 int route_id); 30 31// Looks for the X-Chrome-Manage-Accounts response header, and if found, 32// tries to show the avatar bubble in the browser identified by the 33// child/route id. Must be called on IO thread. 34void ProcessMirrorResponseHeaderIfExists( 35 net::URLRequest* request, 36 ProfileIOData* io_data, 37 int child_id, 38 int route_id); 39 40}; // namespace signin 41 42#endif // CHROME_BROWSER_SIGNIN_SIGNIN_HEADER_HELPER_H_ 43