1 // Copyright (c) 2011 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. 4 5 #include "chrome/browser/ui/webui/options/font_settings_fonts_list_loader.h" 6 7 #include "chrome/browser/ui/webui/options/font_settings_utils.h" 8 #include "content/browser/browser_thread.h" 9 10 FontSettingsFontsListLoader::FontSettingsFontsListLoader(Observer* observer) 11 : observer_(observer) { 12 } 13 14 FontSettingsFontsListLoader::~FontSettingsFontsListLoader() { 15 } 16 17 ListValue* FontSettingsFontsListLoader::GetFontsList() { 18 return fonts_list_.get(); 19 } 20 21 void FontSettingsFontsListLoader::StartLoadFontsList() { 22 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 23 24 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, 25 NewRunnableMethod(this, 26 &FontSettingsFontsListLoader::GetFontsListOnFileThread)); 27 } 28 29 void FontSettingsFontsListLoader::SetObserver(Observer* observer) { 30 observer_ = observer; 31 } 32 33 void FontSettingsFontsListLoader::GetFontsListOnFileThread() { 34 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 35 36 fonts_list_.reset(FontSettingsUtilities::GetFontsList()); 37 38 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 39 NewRunnableMethod(this, 40 &FontSettingsFontsListLoader::FinishFontsListOnUIThread)); 41 } 42 43 void FontSettingsFontsListLoader::FinishFontsListOnUIThread() { 44 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 45 if (observer_) 46 observer_->FontsListHasLoaded(); 47 } 48 49