Fix PDF viewer label substitutions (fixes issue #3081)

This commit is contained in:
Marshall Greenblatt 2021-02-04 18:04:02 -05:00
parent 0b18d0bc60
commit be147ed683
2 changed files with 21 additions and 1 deletions

View File

@ -6,14 +6,28 @@
#include "base/logging.h"
#include "base/path_service.h"
#include "base/values.h"
#include "chrome/browser/pdf/pdf_extension_util.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/grit/component_extension_resources_map.h"
#include "extensions/common/constants.h"
namespace extensions {
CefComponentExtensionResourceManager::CefComponentExtensionResourceManager() {
AddComponentResourceEntries(kComponentExtensionResources,
kComponentExtensionResourcesSize);
base::Value dict(base::Value::Type::DICTIONARY);
pdf_extension_util::AddStrings(
pdf_extension_util::PdfViewerContext::kPdfViewer, &dict);
pdf_extension_util::AddAdditionalData(&dict);
ui::TemplateReplacements pdf_viewer_replacements;
ui::TemplateReplacementsFromDictionaryValue(
base::Value::AsDictionaryValue(dict), &pdf_viewer_replacements);
template_replacements_[extension_misc::kPdfExtensionId] =
std::move(pdf_viewer_replacements);
}
CefComponentExtensionResourceManager::~CefComponentExtensionResourceManager() {}
@ -44,7 +58,8 @@ bool CefComponentExtensionResourceManager::IsComponentExtensionResource(
const ui::TemplateReplacements*
CefComponentExtensionResourceManager::GetTemplateReplacementsForExtension(
const std::string& extension_id) const {
return nullptr;
auto it = template_replacements_.find(extension_id);
return it != template_replacements_.end() ? &it->second : nullptr;
}
void CefComponentExtensionResourceManager::AddComponentResourceEntries(

View File

@ -35,6 +35,11 @@ class CefComponentExtensionResourceManager
// IsComponentExtensionResource.
std::map<base::FilePath, int> path_to_resource_info_;
// A map from an extension ID to its i18n template replacements.
using TemplateReplacementMap =
std::map<std::string, ui::TemplateReplacements>;
TemplateReplacementMap template_replacements_;
DISALLOW_COPY_AND_ASSIGN(CefComponentExtensionResourceManager);
};