Fix decoding of resources (fixes issue #2966)

Use LoadDataResourceString instead of GetDataResource. It will perform
decoding if necessary.
This commit is contained in:
Marshall Greenblatt
2020-07-02 14:45:16 -04:00
parent 08c49aa624
commit f7c90a6bb2
3 changed files with 18 additions and 14 deletions

View File

@@ -158,13 +158,15 @@ class InternalHandlerFactory : public CefSchemeHandlerFactory {
action.mime_type = GetMimeType(url.path());
if (!action.bytes && action.resource_id >= 0) {
action.bytes =
CefContentClient::Get()->GetDataResourceBytes(action.resource_id);
if (!action.bytes) {
std::string str =
ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(
action.resource_id);
if (str.empty()) {
NOTREACHED() << "Failed to load internal resource for id: "
<< action.resource_id << " URL: " << url.spec().c_str();
return nullptr;
}
action.bytes = base::RefCountedString::TakeString(&str);
}
if (action.bytes) {