// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_ #define CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_ #include <map> #include <memory> #include <string> #include <vector> #include "base/callback_list.h" #include "base/functional/callback.h" #include "base/time/time.h" #include "content/common/content_export.h" #include "url/gurl.h" namespace base { class Clock; } namespace content { class NavigationEntry; class BrowserContext; class SiteInstance; class StoragePartition; class WebContents; struct GlobalRenderFrameHostId; // Maps hostnames to custom zoom levels. Written on the UI thread and read on // any thread. One instance per browser context. Must be created on the UI // thread, and it'll delete itself on the UI thread as well. // Zoom can be defined at three levels: default zoom, zoom for host, and zoom // for host with specific scheme. Setting any of the levels leaves settings // for other settings intact. Getting the zoom level starts at the most // specific setting and progresses to the less specific: first the zoom for the // host and scheme pair is checked, secondly the zoom for the host only and // lastly default zoom. class HostZoomMap { … }; } // namespace content #endif // CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_