1// Copyright (c) 2012 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_CHROMEOS_LOGIN_PROFILE_AUTH_DATA_H_ 6#define CHROME_BROWSER_CHROMEOS_LOGIN_PROFILE_AUTH_DATA_H_ 7 8#include "base/callback_forward.h" 9#include "base/macros.h" 10 11namespace content { 12class BrowserContext; 13} 14 15namespace chromeos { 16 17// Helper class that transfers authentication-related data from a BrowserContext 18// used for authentication to the user's actual BrowserContext. 19class ProfileAuthData { 20 public: 21 // Transfers authentication-related data from |from_context| to |to_context| 22 // and invokes |completion_callback| on the UI thread when the operation has 23 // completed. The following data is transferred: 24 // * The proxy authentication state. 25 // * All authentication cookies and channel IDs, if 26 // |transfer_auth_cookies_and_channel_ids_on_first_login| is true and 27 // |to_context|'s cookie jar is empty. If the cookie jar is not empty, the 28 // authentication states in |from_context| and |to_context| should be merged 29 // using /MergeSession instead. 30 // * The authentication cookies set by a SAML IdP, if 31 // |transfer_saml_auth_cookies_on_subsequent_login| is true and 32 // |to_context|'s cookie jar is not empty. 33 static void Transfer( 34 content::BrowserContext* from_context, 35 content::BrowserContext* to_context, 36 bool transfer_auth_cookies_and_channel_ids_on_first_login, 37 bool transfer_saml_auth_cookies_on_subsequent_login, 38 const base::Closure& completion_callback); 39 40 private: 41 DISALLOW_IMPLICIT_CONSTRUCTORS(ProfileAuthData); 42}; 43 44} // namespace chromeos 45 46#endif // CHROME_BROWSER_CHROMEOS_LOGIN_PROFILE_AUTH_DATA_H_ 47