Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/ui/webui/settings/about_handler.h" | 5 #include "chrome/browser/ui/webui/settings/about_handler.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 185 | 185 |
| 186 // Try the fallback region code if no directory was found. | 186 // Try the fallback region code if no directory was found. |
| 187 if (region_path.empty() && region != kDefaultRegionCode) | 187 if (region_path.empty() && region != kDefaultRegionCode) |
| 188 region_path = GetRegulatoryLabelDirForRegion(kDefaultRegionCode); | 188 region_path = GetRegulatoryLabelDirForRegion(kDefaultRegionCode); |
| 189 | 189 |
| 190 return region_path; | 190 return region_path; |
| 191 } | 191 } |
| 192 | 192 |
| 193 // Reads the file containing the regulatory label text, if found, relative to | 193 // Reads the file containing the regulatory label text, if found, relative to |
| 194 // the asset directory. Must be called from the blocking pool. | 194 // the asset directory. Must be called from the blocking pool. |
| 195 std::string ReadRegulatoryLabelText(const base::FilePath& path) { | 195 std::string ReadRegulatoryLabelText(const base::FilePath& label_dir) { |
| 196 DCHECK(BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread()); | 196 DCHECK(BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread()); |
| 197 base::FilePath text_path(chrome::kChromeOSAssetPath); | 197 base::FilePath text_path(chrome::kChromeOSAssetPath); |
| 198 text_path = text_path.Append(path); | 198 text_path = text_path.Append(label_dir); |
| 199 text_path = text_path.AppendASCII(kRegulatoryLabelTextFilename); | 199 text_path = text_path.AppendASCII(kRegulatoryLabelTextFilename); |
| 200 | 200 |
| 201 std::string contents; | 201 std::string contents; |
| 202 if (base::ReadFileToString(text_path, &contents)) | 202 if (base::ReadFileToString(text_path, &contents)) |
| 203 return contents; | 203 return contents; |
| 204 return std::string(); | 204 return std::string(); |
| 205 } | 205 } |
| 206 | 206 |
| 207 std::unique_ptr<base::DictionaryValue> GetVersionInfo() { | 207 std::unique_ptr<base::DictionaryValue> GetVersionInfo() { |
| 208 std::unique_ptr<base::DictionaryValue> version_info( | 208 std::unique_ptr<base::DictionaryValue> version_info( |
| (...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 613 } | 613 } |
| 614 | 614 |
| 615 CallJavascriptFunction("cr.webUIListenerCallback", | 615 CallJavascriptFunction("cr.webUIListenerCallback", |
| 616 base::StringValue("promotion-state-changed"), | 616 base::StringValue("promotion-state-changed"), |
| 617 base::StringValue(state_str)); | 617 base::StringValue(state_str)); |
| 618 } | 618 } |
| 619 #endif // defined(OS_MACOSX) | 619 #endif // defined(OS_MACOSX) |
| 620 | 620 |
| 621 #if defined(OS_CHROMEOS) | 621 #if defined(OS_CHROMEOS) |
| 622 void AboutHandler::OnRegulatoryLabelDirFound(std::string callback_id, | 622 void AboutHandler::OnRegulatoryLabelDirFound(std::string callback_id, |
| 623 const base::FilePath& path) { | 623 const base::FilePath& label_dir) { |
| 624 if (path.empty()) { | 624 if (label_dir.empty()) { |
|
dpapad
2016/06/24 16:29:19
label_dir.empty() makes it looks as if this is che
michaelpg
2016/06/24 16:37:27
Done.
| |
| 625 ResolveJavascriptCallback(base::StringValue(callback_id), | 625 ResolveJavascriptCallback(base::StringValue(callback_id), |
| 626 *base::Value::CreateNullValue()); | 626 *base::Value::CreateNullValue()); |
| 627 return; | 627 return; |
| 628 } | 628 } |
| 629 | 629 |
| 630 base::PostTaskAndReplyWithResult( | 630 base::PostTaskAndReplyWithResult( |
| 631 content::BrowserThread::GetBlockingPool(), FROM_HERE, | 631 content::BrowserThread::GetBlockingPool(), FROM_HERE, |
| 632 base::Bind(&ReadRegulatoryLabelText, path), | 632 base::Bind(&ReadRegulatoryLabelText, label_dir), |
| 633 base::Bind(&AboutHandler::OnRegulatoryLabelTextRead, | 633 base::Bind(&AboutHandler::OnRegulatoryLabelTextRead, |
| 634 weak_factory_.GetWeakPtr(), callback_id, path)); | 634 weak_factory_.GetWeakPtr(), callback_id, label_dir)); |
| 635 } | 635 } |
| 636 | 636 |
| 637 void AboutHandler::OnRegulatoryLabelTextRead(std::string callback_id, | 637 void AboutHandler::OnRegulatoryLabelTextRead(std::string callback_id, |
| 638 const base::FilePath& path, | 638 const base::FilePath& label_dir, |
| 639 const std::string& text) { | 639 const std::string& text) { |
| 640 std::unique_ptr<base::DictionaryValue> regulatory_info( | 640 std::unique_ptr<base::DictionaryValue> regulatory_info( |
| 641 new base::DictionaryValue); | 641 new base::DictionaryValue); |
| 642 // Remove unnecessary whitespace. | 642 // Remove unnecessary whitespace. |
| 643 regulatory_info->SetString("text", base::CollapseWhitespaceASCII(text, true)); | 643 regulatory_info->SetString("text", base::CollapseWhitespaceASCII(text, true)); |
| 644 std::string url = std::string("chrome://") + chrome::kChromeOSAssetHost + | 644 |
| 645 "/" + path.MaybeAsASCII(); | 645 std::string image_path = |
| 646 label_dir.AppendASCII(kRegulatoryLabelImageFilename).MaybeAsASCII(); | |
|
dpapad
2016/06/24 16:29:19
Ah, thanks for fixing, I understand the bug now.
| |
| 647 std::string url = | |
| 648 std::string("chrome://") + chrome::kChromeOSAssetHost + "/" + image_path; | |
| 646 regulatory_info->SetString("url", url); | 649 regulatory_info->SetString("url", url); |
| 647 | 650 |
| 648 ResolveJavascriptCallback(base::StringValue(callback_id), *regulatory_info); | 651 ResolveJavascriptCallback(base::StringValue(callback_id), *regulatory_info); |
| 649 } | 652 } |
| 650 | 653 |
| 651 #endif // defined(OS_CHROMEOS) | 654 #endif // defined(OS_CHROMEOS) |
| 652 | 655 |
| 653 } // namespace settings | 656 } // namespace settings |
| OLD | NEW |