Files
electron/shell/browser/extensions/api/resources_private/resources_private_api.cc
electron-roller[bot] cfd9825bc2 chore: bump chromium to 102.0.4989.0 (19-x-y) (#33556)
* chore: bump chromium in DEPS to 102.0.4975.0

* chore: bump chromium in DEPS to 102.0.4977.0

* chore: bump chromium in DEPS to 102.0.4979.0

* chore: bump chromium in DEPS to 102.0.4981.0

* chore: bump chromium in DEPS to 102.0.4983.0

* chore: bump chromium in DEPS to 102.0.4985.0

* chore: bump chromium in DEPS to 102.0.4987.0

* chore: bump chromium in DEPS to 102.0.4989.0

* chore: bump chromium in DEPS to 102.0.4991.0

* chore: bump chromium in DEPS to 102.0.4993.0

* chore: bump chromium in DEPS to 102.0.4995.0

* chore: bump chromium in DEPS to 102.0.4997.0

* chore: bump chromium in DEPS to 102.0.4999.0

* chore: bump chromium in DEPS to 102.0.5001.0

* chore: bump chromium in DEPS to 102.0.5003.0

* chore: bump chromium in DEPS to 102.0.5005.0

* chore: bump chromium in DEPS to 102.0.5005.3

* chore: bump chromium to 102.0.4989.0 (main) (#33557)

* chore: bump chromium in DEPS to 102.0.4975.0

* chore: bump chromium in DEPS to 102.0.4977.0

* chore: update patches

* Remove parameter of OnGpuProcessCrashed()

https://chromium-review.googlesource.com/c/chromium/src/+/3543396

* hid: Add exclusionFilters option to requestDevice

https://chromium-review.googlesource.com/c/chromium/src/+/3478175

* chore: bump chromium in DEPS to 102.0.4979.0

* chore: bump chromium in DEPS to 102.0.4981.0

* chore: update patches

* Deny notification/push permission for documents in non-standard StoragePartitions

https://chromium-review.googlesource.com/c/chromium/src/+/3257305

* Improve FrameTreeNode tracking in URLLoaderNetworkContext

https://chromium-review.googlesource.com/c/chromium/src/+/3341866

* fixup! Remove parameter of OnGpuProcessCrashed()

* chore: fix lint

* Reland "Use gfx::Insets[F]::TLBR() and gfx::Insets[F]::VH() in the rest of Chrome"

https://chromium-review.googlesource.com/c/chromium/src/+/3554236

* chore: bump chromium in DEPS to 102.0.4983.0

* Ensure EyeDropperView does not access a destroyed window

https://chromium-review.googlesource.com/c/chromium/src/+/3561542

* ci: don't delete dawn .git directory

83901: Adds a generated file with the dawn git hash encoded at build time. | https://dawn-review.googlesource.com/c/dawn/+/83901

* ci: update Windows toolchain

3550827: New toolchain for Windows 10 20348 SDK | https://chromium-review.googlesource.com/c/chromium/src/+/3550827

* chore: bump chromium in DEPS to 102.0.4985.0

* chore: update patches

* chore: bump chromium in DEPS to 102.0.4987.0

* chore: update patches

* 3563432: codehealth: remove uses of DictionaryValue in cbui/webui

https://chromium-review.googlesource.com/c/chromium/src/+/3563432

* chore: update patches after rebase

* Use gfx::Insets[F]::TLBR() and gfx::Insets[F]::VH() in the rest of Chrome

https://chromium-review.googlesource.com/c/chromium/src/+/3554236

* 3565724: Preserve "proper method names" as-is in error.stack.

https://chromium-review.googlesource.com/c/v8/v8/+/3565724

* chore: bump chromium in DEPS to 102.0.4989.0

* chore: update patches

* fixup ci: don't delete dawn .git directory for Windows

* 3560843: Remove multi-parameter version of gfx::Rect[F]::Inset()

https://chromium-review.googlesource.com/c/chromium/src/+/3560843

* 3572711: Remove unused IDS_PDF_TOOLTIP_ROTATE_CW resource.

https://chromium-review.googlesource.com/c/chromium/src/+/3572711

* 3572926: Reland "[Sysroot] Switch to Debian Bullseye stable"

https://chromium-review.googlesource.com/c/chromium/src/+/3572926

* build: fixup sysroots with electron specific dependencies

* fixup Remove multi-parameter version of gfx::Rect[F]::Inset()

* fixup 3565724: Preserve "proper method names" as-is in error.stack.

* fixup Remove multi-parameter version of gfx::Rect[F]::Inset()

* test: add spec for navigator.hid.requestDevice({ exclusionFilters: [...] }

* fixup 3565724: Preserve "proper method names" as-is in error.stack.

* ci: use python3 to get the windows toolchain profile

3525960: Explicitly run everything with python3 | https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3525960

* chore: add diagnostic logging

* fix: try calling process.crash()

* chore: remove logging

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
(cherry picked from commit 59dd17f2cf)

* chore: update patches after rebase

* chore: bump chromium in DEPS to 102.0.5005.3

* Revert "chore: bump chromium in DEPS to 102.0.5005.3"

This reverts commit 958cfb2aff.

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-04-19 15:15:36 -04:00

109 lines
3.7 KiB
C++

// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "shell/browser/extensions/api/resources_private/resources_private_api.h"
#include <memory>
#include <string>
#include <utility>
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/common/extensions/api/resources_private.h"
#include "chrome/grit/generated_resources.h"
#include "components/strings/grit/components_strings.h"
#include "components/zoom/page_zoom_constants.h"
#include "pdf/buildflags.h"
#include "printing/buildflags/buildflags.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/webui/web_ui_util.h"
#if BUILDFLAG(ENABLE_PDF)
#include "pdf/pdf_features.h"
#endif // BUILDFLAG(ENABLE_PDF)
// To add a new component to this API, simply:
// 1. Add your component to the Component enum in
// chrome/common/extensions/api/resources_private.idl
// 2. Create an AddStringsForMyComponent(base::DictionaryValue * dict) method.
// 3. Tie in that method to the switch statement in Run()
namespace extensions {
namespace {
void AddStringsForPdf(base::DictionaryValue* dict) {
#if BUILDFLAG(ENABLE_PDF)
static constexpr webui::LocalizedString kPdfResources[] = {
{"passwordDialogTitle", IDS_PDF_PASSWORD_DIALOG_TITLE},
{"passwordPrompt", IDS_PDF_NEED_PASSWORD},
{"passwordSubmit", IDS_PDF_PASSWORD_SUBMIT},
{"thumbnailPageAriaLabel", IDS_PDF_THUMBNAIL_PAGE_ARIA_LABEL},
{"passwordInvalid", IDS_PDF_PASSWORD_INVALID},
{"pageLoading", IDS_PDF_PAGE_LOADING},
{"pageLoadFailed", IDS_PDF_PAGE_LOAD_FAILED},
{"errorDialogTitle", IDS_PDF_ERROR_DIALOG_TITLE},
{"pageReload", IDS_PDF_PAGE_RELOAD_BUTTON},
{"bookmarks", IDS_PDF_BOOKMARKS},
{"labelPageNumber", IDS_PDF_LABEL_PAGE_NUMBER},
{"tooltipDownload", IDS_PDF_TOOLTIP_DOWNLOAD},
{"tooltipPrint", IDS_PDF_TOOLTIP_PRINT},
{"tooltipFitToPage", IDS_PDF_TOOLTIP_FIT_PAGE},
{"tooltipFitToWidth", IDS_PDF_TOOLTIP_FIT_WIDTH},
{"tooltipZoomIn", IDS_PDF_TOOLTIP_ZOOM_IN},
{"tooltipZoomOut", IDS_PDF_TOOLTIP_ZOOM_OUT},
};
for (const auto& resource : kPdfResources)
dict->SetString(resource.name, l10n_util::GetStringUTF16(resource.id));
dict->SetString("presetZoomFactors", zoom::GetPresetZoomFactorsAsJSON());
#endif // BUILDFLAG(ENABLE_PDF)
}
void AddAdditionalDataForPdf(base::DictionaryValue* dict) {
#if BUILDFLAG(ENABLE_PDF)
dict->SetKey("pdfAnnotationsEnabled", base::Value(false));
dict->SetKey("printingEnabled", base::Value(true));
#endif // BUILDFLAG(ENABLE_PDF)
}
} // namespace
namespace get_strings = api::resources_private::GetStrings;
ResourcesPrivateGetStringsFunction::ResourcesPrivateGetStringsFunction() =
default;
ResourcesPrivateGetStringsFunction::~ResourcesPrivateGetStringsFunction() =
default;
ExtensionFunction::ResponseAction ResourcesPrivateGetStringsFunction::Run() {
std::unique_ptr<get_strings::Params> params(
get_strings::Params::Create(args()));
auto dict = std::make_unique<base::DictionaryValue>();
api::resources_private::Component component = params->component;
switch (component) {
case api::resources_private::COMPONENT_PDF:
AddStringsForPdf(dict.get());
AddAdditionalDataForPdf(dict.get());
break;
case api::resources_private::COMPONENT_IDENTITY:
NOTREACHED();
break;
case api::resources_private::COMPONENT_NONE:
NOTREACHED();
break;
}
const std::string& app_locale = g_browser_process->GetApplicationLocale();
webui::SetLoadTimeDataDefaults(app_locale, dict.get());
return RespondNow(
OneArgument(base::Value::FromUniquePtrValue(std::move(dict))));
}
} // namespace extensions