blob: 989997d519f4793af6aa165fc8d226d914d33859 [file] [log] [blame]
Avi Drissman4e1b7bc32022-09-15 14:03:501// Copyright 2017 The Chromium Authors
boliu61687ec52017-03-29 20:09:342// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "content/browser/android/launcher_thread.h"
6
Sean Mahere672a662023-01-09 21:42:287#include "base/task/single_thread_task_runner.h"
Andrew Grieveecb885bb2024-05-29 18:14:198
9// Must come after all headers that specialize FromJniType() / ToJniType().
Mohamed Heikalc09e1012019-06-21 14:47:2610#include "content/public/android/content_jni_headers/LauncherThread_jni.h"
boliu61687ec52017-03-29 20:09:3411
12namespace content {
13namespace android {
14
15namespace {
Addison Luh07c0d6c2025-07-17 18:36:4316LauncherThread& GetInstance() {
17 static base::NoDestructor<LauncherThread> launcher_thread;
18 return *launcher_thread;
19}
boliu61687ec52017-03-29 20:09:3420}
21
Alex Clarkee1cc1bb2019-06-06 17:24:2522scoped_refptr<base::SingleThreadTaskRunner> LauncherThread::GetTaskRunner() {
Addison Luh07c0d6c2025-07-17 18:36:4323 return GetInstance().java_handler_thread_.task_runner();
boliu61687ec52017-03-29 20:09:3424}
25
26LauncherThread::LauncherThread()
Victor Miura29bb4ab2018-08-29 19:31:5227 : java_handler_thread_(nullptr,
28 Java_LauncherThread_getHandlerThread(
Sam Maier7fe12c12024-01-26 19:22:4329 jni_zero::AttachCurrentThread())) {
boliu311458d2017-04-13 18:01:3730 java_handler_thread_.Start();
31}
boliu61687ec52017-03-29 20:09:3432
Addison Luh07c0d6c2025-07-17 18:36:4333LauncherThread::~LauncherThread() = default;
boliu61687ec52017-03-29 20:09:3434
35} // namespace android
36} // namespace content