// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "third_party/blink/public/common/page/page_zoom.h" #include <cmath> #include "build/build_config.h" namespace blink { static constexpr double kPresetBrowserZoomFactorsArray[] = …; const base::span<const double> kPresetBrowserZoomFactors( kPresetBrowserZoomFactorsArray); #if !BUILDFLAG(IS_ANDROID) // The minimum and maximum amount of page zoom that is possible, independent // of other factors such as device scale and page scale (pinch). Historically, // these values came from WebKitLegacy/mac/WebView/WebView.mm where they are // named MinimumZoomMultiplier and MaximumZoomMultiplier. But chromium has // changed to use different limits. const double kMinimumBrowserZoomFactor = …; const double kMaximumBrowserZoomFactor = …; #else // On Android, the OS-level font size is considered when calculating zoom // factor. At the OS-level, we support a range of 85% - 200%, and at the // browser-level we support 50% - 300%. The max we support is therefore: 3.0 * 2 // = 6.0, and the min is 0.5 * .85 = .425 (depending on settings). const double kMinimumBrowserZoomFactor = 0.425; const double kMaximumBrowserZoomFactor = 6.0; #endif // Change the zoom factor by 20% for each zoom level increase from the user. // Historically, this value came from WebKit in // WebKitLegacy/mac/WebView/WebView.mm (named as ZoomMultiplierRatio there). static const double kTextSizeMultiplierRatio = …; double ZoomLevelToZoomFactor(double zoom_level) { … } double ZoomFactorToZoomLevel(double zoom_factor) { … } bool ZoomValuesEqual(double value_a, double value_b) { … } } // namespace blink