| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/webui/chrome_url_data_manager.h" | 5 #include "chrome/browser/webui/chrome_url_data_manager.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 | 41 |
| 42 ChromeURLDataManager::ChromeURLDataManager(Profile* profile) | 42 ChromeURLDataManager::ChromeURLDataManager(Profile* profile) |
| 43 : profile_(profile) { | 43 : profile_(profile) { |
| 44 } | 44 } |
| 45 | 45 |
| 46 ChromeURLDataManager::~ChromeURLDataManager() { | 46 ChromeURLDataManager::~ChromeURLDataManager() { |
| 47 } | 47 } |
| 48 | 48 |
| 49 void ChromeURLDataManager::AddDataSource(DataSource* source) { | 49 void ChromeURLDataManager::AddDataSource(DataSource* source) { |
| 50 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 50 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 51 registered_source_names_.insert(source->source_name()); | |
| 52 BrowserThread::PostTask( | 51 BrowserThread::PostTask( |
| 53 BrowserThread::IO, FROM_HERE, | 52 BrowserThread::IO, FROM_HERE, |
| 54 NewRunnableFunction(AddDataSourceOnIOThread, | 53 NewRunnableFunction(AddDataSourceOnIOThread, |
| 55 make_scoped_refptr(profile_->GetRequestContext()), | 54 make_scoped_refptr(profile_->GetRequestContext()), |
| 56 make_scoped_refptr(source))); | 55 make_scoped_refptr(source))); |
| 57 } | 56 } |
| 58 | 57 |
| 59 bool ChromeURLDataManager::IsRegistered(const std::string& name) { | |
| 60 return registered_source_names_.find(name) != registered_source_names_.end(); | |
| 61 } | |
| 62 | |
| 63 // static | 58 // static |
| 64 void ChromeURLDataManager::DeleteDataSources() { | 59 void ChromeURLDataManager::DeleteDataSources() { |
| 65 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 60 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 66 DataSources sources; | 61 DataSources sources; |
| 67 { | 62 { |
| 68 base::AutoLock lock(delete_lock_); | 63 base::AutoLock lock(delete_lock_); |
| 69 if (!data_sources_) | 64 if (!data_sources_) |
| 70 return; | 65 return; |
| 71 data_sources_->swap(sources); | 66 data_sources_->swap(sources); |
| 72 } | 67 } |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 BrowserThread::IO, FROM_HERE, | 137 BrowserThread::IO, FROM_HERE, |
| 143 NewRunnableMethod(this, &DataSource::SendResponseOnIOThread, | 138 NewRunnableMethod(this, &DataSource::SendResponseOnIOThread, |
| 144 request_id, make_scoped_refptr(bytes))); | 139 request_id, make_scoped_refptr(bytes))); |
| 145 } | 140 } |
| 146 | 141 |
| 147 MessageLoop* ChromeURLDataManager::DataSource::MessageLoopForRequestPath( | 142 MessageLoop* ChromeURLDataManager::DataSource::MessageLoopForRequestPath( |
| 148 const std::string& path) const { | 143 const std::string& path) const { |
| 149 return message_loop_; | 144 return message_loop_; |
| 150 } | 145 } |
| 151 | 146 |
| 147 bool ChromeURLDataManager::DataSource::ShouldReplaceExistingSource() const { |
| 148 return true; |
| 149 } |
| 150 |
| 152 // static | 151 // static |
| 153 void ChromeURLDataManager::DataSource::SetFontAndTextDirection( | 152 void ChromeURLDataManager::DataSource::SetFontAndTextDirection( |
| 154 DictionaryValue* localized_strings) { | 153 DictionaryValue* localized_strings) { |
| 155 localized_strings->SetString("fontfamily", | 154 localized_strings->SetString("fontfamily", |
| 156 l10n_util::GetStringUTF16(IDS_WEB_FONT_FAMILY)); | 155 l10n_util::GetStringUTF16(IDS_WEB_FONT_FAMILY)); |
| 157 | 156 |
| 158 int web_font_size_id = IDS_WEB_FONT_SIZE; | 157 int web_font_size_id = IDS_WEB_FONT_SIZE; |
| 159 #if defined(OS_WIN) | 158 #if defined(OS_WIN) |
| 160 // Some fonts used for some languages changed a lot in terms of the font | 159 // Some fonts used for some languages changed a lot in terms of the font |
| 161 // metric in Vista. So, we need to use different size before Vista. | 160 // metric in Vista. So, we need to use different size before Vista. |
| 162 if (base::win::GetVersion() < base::win::VERSION_VISTA) | 161 if (base::win::GetVersion() < base::win::VERSION_VISTA) |
| 163 web_font_size_id = IDS_WEB_FONT_SIZE_XP; | 162 web_font_size_id = IDS_WEB_FONT_SIZE_XP; |
| 164 #endif | 163 #endif |
| 165 localized_strings->SetString("fontsize", | 164 localized_strings->SetString("fontsize", |
| 166 l10n_util::GetStringUTF16(web_font_size_id)); | 165 l10n_util::GetStringUTF16(web_font_size_id)); |
| 167 | 166 |
| 168 localized_strings->SetString("textdirection", | 167 localized_strings->SetString("textdirection", |
| 169 base::i18n::IsRTL() ? "rtl" : "ltr"); | 168 base::i18n::IsRTL() ? "rtl" : "ltr"); |
| 170 } | 169 } |
| 171 | 170 |
| 172 void ChromeURLDataManager::DataSource::SendResponseOnIOThread( | 171 void ChromeURLDataManager::DataSource::SendResponseOnIOThread( |
| 173 int request_id, | 172 int request_id, |
| 174 scoped_refptr<RefCountedMemory> bytes) { | 173 scoped_refptr<RefCountedMemory> bytes) { |
| 175 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 174 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 176 if (backend_) | 175 if (backend_) |
| 177 backend_->DataAvailable(request_id, bytes); | 176 backend_->DataAvailable(request_id, bytes); |
| 178 } | 177 } |
| OLD | NEW |