0

Simplify chrome_pdf::ScopedSdkInitializer

ScopedSdkInitializer has an IsSDKInitializedViaPlugin() call that
assumes the call can return true, and skip SDK initialization. This may
have been possible about a decade ago, but modern //pdf code separates
the two types of use cases, as enforced by `public` headers in
//pdf/BUILD.gn:

1) Blink plugin code only run in PDF renderer processes, via
   //pdf/pdf_view_web_plugin.h.
2) Various utilities only run in service processes and tests, via
   //pdf/pdf.h.

As such, ScopedSdkInitializer is only used in //pdf/pdf.cc, so it only
has to deal with uses cases of type (2). Without any type (1) overlap,
IsSDKInitializedViaPlugin() should always return false.

Change-Id: Idff67d6283d8f6229c5d3e84c7c72f4cd799cce7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5395192
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Andy Phan <andyphan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1278456}
This commit is contained in:
Lei Zhang
2024-03-26 17:57:55 +00:00
committed by Chromium LUCI CQ
parent a74c30d38e
commit 5fc5aeb38f

@ -9,6 +9,7 @@
#include <optional>
#include <utility>
#include "base/check.h"
#include "base/feature_list.h"
#include "build/build_config.h"
#include "pdf/pdf_engine.h"
@ -26,21 +27,20 @@ std::optional<bool> g_use_skia_renderer_enabled_by_policy;
class ScopedSdkInitializer {
public:
explicit ScopedSdkInitializer(bool enable_v8) {
if (!IsSDKInitializedViaPlugin()) {
InitializeSDK(
enable_v8,
g_use_skia_renderer_enabled_by_policy.value_or(
base::FeatureList::IsEnabled(features::kPdfUseSkiaRenderer)),
FontMappingMode::kNoMapping);
}
CHECK(!IsSDKInitializedViaPlugin());
InitializeSDK(
enable_v8,
g_use_skia_renderer_enabled_by_policy.value_or(
base::FeatureList::IsEnabled(features::kPdfUseSkiaRenderer)),
FontMappingMode::kNoMapping);
}
ScopedSdkInitializer(const ScopedSdkInitializer&) = delete;
ScopedSdkInitializer& operator=(const ScopedSdkInitializer&) = delete;
~ScopedSdkInitializer() {
if (!IsSDKInitializedViaPlugin())
ShutdownSDK();
CHECK(!IsSDKInitializedViaPlugin());
ShutdownSDK();
}
};