1
// vim:expandtab:shiftwidth=2:tabstop=2:
2
// Copyright (C) 2013 Canonical Ltd.
4
// This library is free software; you can redistribute it and/or
5
// modify it under the terms of the GNU Lesser General Public
6
// License as published by the Free Software Foundation; either
7
// version 2.1 of the License, or (at your option) any later version.
9
// This library is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
// Lesser General Public License for more details.
14
// You should have received a copy of the GNU Lesser General Public
15
// License along with this library; if not, write to the Free Software
16
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
#ifndef _OXIDE_COMMON_CONTENT_CLIENT_H_
19
#define _OXIDE_COMMON_CONTENT_CLIENT_H_
23
#include "base/basictypes.h"
24
#include "base/compiler_specific.h"
25
#include "content/public/common/content_client.h"
27
template <typename Type> struct DefaultSingletonTraits;
31
class ContentBrowserClient;
33
class ContentClient : public content::ContentClient {
35
static ContentClient* GetInstance();
37
ContentBrowserClient* browser();
39
virtual std::string GetProduct() const OVERRIDE;
40
virtual std::string GetUserAgent() const OVERRIDE;
42
static bool IsBrowser();
45
// Limit default constructor access to derived classes and
46
// our lazy instance initializer
47
friend struct DefaultSingletonTraits<ContentClient>;
50
basic_startup_complete_(false) {}
53
friend class ContentMainDelegate;
54
friend class GlobalSettings;
56
static void MaybeUpdateUserAgent();
57
static void SetIsBrowser(bool is_browser);
58
static void SetBasicStartupComplete(bool complete);
59
static bool IsBasicStartupComplete();
62
bool basic_startup_complete_;
64
DISALLOW_COPY_AND_ASSIGN(ContentClient);
69
#endif // _OXIDE_COMMON_CONTENT_CLIENT_H_