blob: 25f6bb2734f29d9b86f6af4471fc8542b5772b41 [file] [log] [blame]
[email protected]679facce2012-07-25 16:13:121// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]0f38ceae2009-05-08 19:01:022// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/icon_loader.h"
6
avif4d431c2017-06-22 23:30:537#include <utility>
8
[email protected]a27a2bc2011-11-15 21:25:519#include "base/bind.h"
Gabriel Charette44db1422018-08-06 11:19:3310#include "base/task/post_task.h"
11#include "base/task/task_traits.h"
gabb15e19072016-05-11 20:45:4112#include "base/threading/thread_task_runner_handle.h"
[email protected]c38831a12011-10-28 12:44:4913#include "content/public/browser/browser_thread.h"
[email protected]0f38ceae2009-05-08 19:01:0214
[email protected]631bb742011-11-02 11:29:3915using content::BrowserThread;
16
avif0a7b5b812016-12-17 19:01:3117// static
18IconLoader* IconLoader::Create(const base::FilePath& file_path,
19 IconSize size,
20 IconLoadedCallback callback) {
Avi Drissmanefe4dc82018-02-23 17:55:3921 return new IconLoader(file_path, size, std::move(callback));
[email protected]0f38ceae2009-05-08 19:01:0222}
23
24void IconLoader::Start() {
pranay.kumar4b8db4d2015-04-29 11:12:0425 target_task_runner_ = base::ThreadTaskRunnerHandle::Get();
[email protected]0f38ceae2009-05-08 19:01:0226
avif4d431c2017-06-22 23:30:5327 base::PostTaskWithTraits(
28 FROM_HERE, traits(),
29 base::BindOnce(&IconLoader::ReadGroup, base::Unretained(this)));
[email protected]bc0147b2013-04-03 20:50:5930}
31
avif0a7b5b812016-12-17 19:01:3132IconLoader::IconLoader(const base::FilePath& file_path,
33 IconSize size,
34 IconLoadedCallback callback)
Daniel Bratell71e143702017-10-11 11:18:2635 : file_path_(file_path),
36#if !defined(OS_ANDROID)
37 icon_size_(size),
38#endif // defined(OS_ANDROID)
Avi Drissmanefe4dc82018-02-23 17:55:3939 callback_(std::move(callback)) {
Daniel Bratell71e143702017-10-11 11:18:2640}
avif0a7b5b812016-12-17 19:01:3141
42IconLoader::~IconLoader() {}
43
[email protected]bc0147b2013-04-03 20:50:5944void IconLoader::ReadGroup() {
avi381f719f2016-12-16 00:05:0245 group_ = GroupForFilepath(file_path_);
[email protected]bc0147b2013-04-03 20:50:5946
avif4d431c2017-06-22 23:30:5347 GetReadIconTaskRunner()->PostTask(
48 FROM_HERE, base::BindOnce(&IconLoader::ReadIcon, base::Unretained(this)));
[email protected]0f38ceae2009-05-08 19:01:0249}