
Only content/ now has the ability to create BrowserThread objects, with the exception that tests can create the content::TestBrowserThread subclass, and (temporarily) code in chrome/ can create the DeprecatedBrowserThread subclass. A follow-up change will make content/ take care of its own thread creation, remove DeprecatedBrowserThread, and move all state and non-trivial constructors from BrowserThread down to BrowserThreadImpl. Also moved BrowserProcessSubThread into content/ namespace. As part of follow-up cleanup, chrome/ will stop using this class. BUG=98716 TEST=existing Review URL: http://codereview.chromium.org/8392042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107718 0039d316-1c4b-4281-b951-d872f2087c98
52 lines
1.5 KiB
C++
52 lines
1.5 KiB
C++
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "content/browser/font_list_async.h"
|
|
|
|
#include "base/bind.h"
|
|
#include "base/values.h"
|
|
#include "content/common/font_list.h"
|
|
#include "content/public/browser/browser_thread.h"
|
|
|
|
namespace content {
|
|
|
|
namespace {
|
|
|
|
// Just executes the given callback with the parameter.
|
|
void ReturnFontListToOriginalThread(
|
|
const base::Callback<void(scoped_refptr<FontListResult>)>& callback,
|
|
scoped_refptr<FontListResult> result) {
|
|
callback.Run(result);
|
|
}
|
|
|
|
void GetFontListOnFileThread(
|
|
BrowserThread::ID calling_thread_id,
|
|
const base::Callback<void(scoped_refptr<FontListResult>)>& callback) {
|
|
scoped_refptr<FontListResult> result(new FontListResult);
|
|
result->list.reset(GetFontList_SlowBlocking());
|
|
BrowserThread::PostTask(calling_thread_id, FROM_HERE,
|
|
base::Bind(&ReturnFontListToOriginalThread, callback, result));
|
|
}
|
|
|
|
} // namespace
|
|
|
|
FontListResult::FontListResult() {
|
|
}
|
|
|
|
FontListResult::~FontListResult() {
|
|
}
|
|
|
|
void GetFontListAsync(
|
|
const base::Callback<void(scoped_refptr<FontListResult>)>& callback) {
|
|
BrowserThread::ID id;
|
|
bool well_known_thread = BrowserThread::GetCurrentThreadIdentifier(&id);
|
|
DCHECK(well_known_thread)
|
|
<< "Can only call GetFontList from a well-known thread.";
|
|
|
|
BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
|
|
base::Bind(&GetFontListOnFileThread, id, callback));
|
|
}
|
|
|
|
} // namespace content
|