Home | History | Annotate | Download | only in options
      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