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 8 namespace net { 9 class URLRequest; 10 } 11 class GURL; 12 class 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. 19 namespace 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. 24 void 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. 34 void 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