| // Copyright 2015 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "content/browser/android/java/java_bridge_thread.h" |
| |
| #include "base/lazy_instance.h" |
| #include "base/task/single_thread_task_runner.h" |
| #include "build/build_config.h" |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| #error "JavaBridge only supports OS_ANDROID" |
| #endif |
| |
| namespace content { |
| |
| namespace { |
| |
| base::LazyInstance<JavaBridgeThread>::DestructorAtExit g_background_thread = |
| LAZY_INSTANCE_INITIALIZER; |
| |
| } // namespace |
| |
| JavaBridgeThread::JavaBridgeThread() |
| : base::android::JavaHandlerThread("JavaBridge") { |
| Start(); |
| } |
| |
| JavaBridgeThread::~JavaBridgeThread() { |
| Stop(); |
| } |
| |
| // static |
| bool JavaBridgeThread::CurrentlyOn() { |
| return g_background_thread.Get().task_runner()->BelongsToCurrentThread(); |
| } |
| |
| // static |
| scoped_refptr<base::SingleThreadTaskRunner> JavaBridgeThread::GetTaskRunner() { |
| return g_background_thread.Get().task_runner(); |
| } |
| |
| } // namespace content |