1ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// found in the LICENSE file.
4ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
5ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "base/basictypes.h"
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/logging.h"
7ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "extensions/common/extensions_client.h"
8ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
9ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochnamespace extensions {
10ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
11ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochnamespace {
12ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
13ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochExtensionsClient* g_client = NULL;
14ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
15ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}  // namespace
16ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
17ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochExtensionsClient* ExtensionsClient::Get() {
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DCHECK(g_client);
19ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  return g_client;
20ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
21ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
22ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochvoid ExtensionsClient::Set(ExtensionsClient* client) {
23ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  // This can happen in unit tests, where the utility thread runs in-process.
24ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  if (g_client)
25ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch    return;
26ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  g_client = client;
278bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  g_client->Initialize();
28ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
29ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
30ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}  // namespace extensions
31