summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-05-20 16:56:57 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-05-25 14:18:00 +0000
commit281dcb0ee985ad7d019b9abc90c7c93cd20f4d27 (patch)
tree755d821e3aa6b9df2a827419727a666ec292f606 /src/core
parent4f6da986bf6aa929670e6bbf1630d51d886aa3d8 (diff)
Fix resource look-up for pdf viewer in Chromium 80
We need to be able to recognize generated resources as well. Task-number: QTBUG-84340 Change-Id: Ib0a783a681c349c05972c0c67e2f0cf20d1c99c4 Reviewed-by: Szabolcs David <davidsz@inf.u-szeged.hu> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'src/core')
-rw-r--r--src/core/extensions/component_extension_resource_manager_qt.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/core/extensions/component_extension_resource_manager_qt.cpp b/src/core/extensions/component_extension_resource_manager_qt.cpp
index bb1dd045c..1f58de151 100644
--- a/src/core/extensions/component_extension_resource_manager_qt.cpp
+++ b/src/core/extensions/component_extension_resource_manager_qt.cpp
@@ -92,12 +92,27 @@ const ui::TemplateReplacements *ComponentExtensionResourceManagerQt::GetTemplate
void ComponentExtensionResourceManagerQt::AddComponentResourceEntries(const GritResourceMap *entries, size_t size)
{
+ base::FilePath gen_folder_path = base::FilePath().AppendASCII("@out_folder@/gen/chrome/browser/resources/");
+ gen_folder_path = gen_folder_path.NormalizePathSeparators();
+
for (size_t i = 0; i < size; ++i) {
base::FilePath resource_path = base::FilePath().AppendASCII(entries[i].name);
resource_path = resource_path.NormalizePathSeparators();
- DCHECK(!base::Contains(path_to_resource_id_, resource_path));
- path_to_resource_id_[resource_path] = entries[i].value;
+
+ if (!gen_folder_path.IsParent(resource_path)) {
+ DCHECK(!base::Contains(path_to_resource_id_, resource_path));
+ path_to_resource_id_[resource_path] = entries[i].value;
+ } else {
+ // If the resource is a generated file, strip the generated folder's path,
+ // so that it can be served from a normal URL (as if it were not
+ // generated).
+ base::FilePath effective_path =
+ base::FilePath().AppendASCII(resource_path.AsUTF8Unsafe().substr(
+ gen_folder_path.value().length()));
+ DCHECK(!base::Contains(path_to_resource_id_, effective_path));
+ path_to_resource_id_[effective_path] = entries[i].value;
+ }
}
}