OLD | NEW |
---|---|
(Empty) | |
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. | |
4 | |
5 #include "base/lazy_instance.h" | |
6 #include "components/translate/content/renderer/renderer_cld_data_provider.h" | |
7 | |
8 namespace { | |
9 translate::RendererCldDataProvider* g_instance = NULL; | |
Takashi Toyoshima
2014/10/15 08:45:07
empty line between line 8 and 9.
Andrew Hayden (chromium.org)
2014/10/30 16:56:32
Done.
| |
10 | |
11 // The default is a no-op implementation used to avoid a hard-crash if code | |
12 // fails to set a more functional version. | |
13 struct WrappedDefault { | |
14 WrappedDefault() { | |
15 value = new translate::RendererCldDataProvider(); | |
16 } | |
17 translate::RendererCldDataProvider* value; | |
18 }; | |
19 base::LazyInstance<WrappedDefault>::Leaky g_wrapped_default = | |
20 LAZY_INSTANCE_INITIALIZER; | |
21 | |
22 } // namespace | |
23 | |
24 | |
25 namespace translate { | |
26 | |
27 RendererCldDataProvider::RendererCldDataProvider() { | |
28 } | |
29 | |
30 bool RendererCldDataProvider::OnMessageReceived(const IPC::Message&) { | |
31 return false; // Message not handled | |
32 } | |
33 | |
34 void RendererCldDataProvider::SendCldDataRequest() { | |
35 } | |
36 | |
37 bool RendererCldDataProvider::IsCldDataAvailable() { | |
38 return true; // Vacuously true | |
39 } | |
40 | |
41 void RendererCldDataProvider::SetCldAvailableCallback( | |
42 base::Callback<void(void)> callback) { | |
43 callback.Run(); | |
44 } | |
45 | |
46 void RendererCldDataProvider::Set( | |
47 RendererCldDataProvider* instance, bool overwrite) { | |
48 if (overwrite || g_instance == NULL) { | |
49 g_instance = instance; | |
50 } | |
51 } | |
52 | |
53 bool RendererCldDataProvider::IsInitialized() { | |
54 return g_instance != NULL; | |
55 } | |
56 | |
57 RendererCldDataProvider* RendererCldDataProvider::Get() { | |
58 if (g_instance == NULL) { | |
59 // No provider set. OK for test code and narrow use cases, but bad if it is | |
60 // a real renderer. Since there's no good way to differentiate these use | |
61 // cases at runtime, don't log a warning here. | |
62 return g_wrapped_default.Get().value; | |
63 } | |
64 return g_instance; | |
65 } | |
66 | |
67 } // namespace translate | |
OLD | NEW |