1 // Copyright 2014 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.
5 #ifndef IOS_CHROME_BROWSER_APPLICATION_CONTEXT_H_
6 #define IOS_CHROME_BROWSER_APPLICATION_CONTEXT_H_
10 #include "base/macros.h"
13 class URLRequestContextGetter
;
16 class ApplicationContext
;
19 // Gets the global application context. Cannot return null.
20 ApplicationContext
* GetApplicationContext();
22 class ApplicationContext
{
25 virtual ~ApplicationContext();
27 // Gets the local state associated with this application.
28 virtual PrefService
* GetLocalState() = 0;
30 // Gets the URL request context associated with this application.
31 virtual net::URLRequestContextGetter
* GetSystemURLRequestContext() = 0;
33 // Gets the locale used by the application.
34 virtual const std::string
& GetApplicationLocale() = 0;
37 // Sets the global ApplicationContext instance.
38 static void SetApplicationContext(ApplicationContext
* context
);
41 DISALLOW_COPY_AND_ASSIGN(ApplicationContext
);
44 #endif // IOS_CHROME_BROWSER_APPLICATION_CONTEXT_H_