1 // Copyright (c) 2012 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.
5 #include "chrome/browser/icon_loader.h"
10 #include "base/task/thread_pool.h"
11 #include "base/threading/thread_task_runner_handle.h"
12 #include "content/public/browser/browser_thread.h"
14 using content::BrowserThread;
17 IconLoader* IconLoader::Create(const base::FilePath& file_path,
19 IconLoadedCallback callback) {
20 return new IconLoader(file_path, size, std::move(callback));
23 void IconLoader::Start() {
24 target_task_runner_ = base::ThreadTaskRunnerHandle::Get();
26 base::ThreadPool::PostTask(
28 base::BindOnce(&IconLoader::ReadGroup, base::Unretained(this)));
31 IconLoader::IconLoader(const base::FilePath& file_path,
33 IconLoadedCallback callback)
34 : file_path_(file_path),
35 #if !defined(OS_ANDROID)
37 #endif // defined(OS_ANDROID)
38 callback_(std::move(callback)) {
41 IconLoader::~IconLoader() {}
44 void IconLoader::ReadGroup() {
45 group_ = GroupForFilepath(file_path_);
47 GetReadIconTaskRunner()->PostTask(
48 FROM_HERE, base::BindOnce(&IconLoader::ReadIcon, base::Unretained(this)));
50 #endif // !defined(OS_WIN)