Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(493)

Side by Side Diff: content/public/browser/host_zoom_map.h

Issue 954923005: Make command-zero reset page scale in addition to zoom level (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase again again Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/common/view_messages.h ('k') | content/public/browser/web_contents.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_ 5 #ifndef CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_
6 #define CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_ 6 #define CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 19 matching lines...) Expand all
30 // for host with specific scheme. Setting any of the levels leaves settings 30 // for host with specific scheme. Setting any of the levels leaves settings
31 // for other settings intact. Getting the zoom level starts at the most 31 // for other settings intact. Getting the zoom level starts at the most
32 // specific setting and progresses to the less specific: first the zoom for the 32 // specific setting and progresses to the less specific: first the zoom for the
33 // host and scheme pair is checked, secondly the zoom for the host only and 33 // host and scheme pair is checked, secondly the zoom for the host only and
34 // lastly default zoom. 34 // lastly default zoom.
35 35
36 class HostZoomMap { 36 class HostZoomMap {
37 public: 37 public:
38 // Enum that indicates what was the scope of zoom level change. 38 // Enum that indicates what was the scope of zoom level change.
39 enum ZoomLevelChangeMode { 39 enum ZoomLevelChangeMode {
40 ZOOM_CHANGED_FOR_HOST, // Zoom level changed for host. 40 ZOOM_CHANGED_FOR_HOST, // Zoom level changed for host.
41 ZOOM_CHANGED_FOR_SCHEME_AND_HOST, // Zoom level changed for scheme/host 41 ZOOM_CHANGED_FOR_SCHEME_AND_HOST, // Zoom level changed for scheme/host
42 // pair. 42 // pair.
43 ZOOM_CHANGED_TEMPORARY_ZOOM, // Temporary zoom change for specific 43 ZOOM_CHANGED_TEMPORARY_ZOOM, // Temporary zoom change for specific
44 // renderer, no scheme/host is specified. 44 // renderer, no scheme/host is specified.
45 PAGE_SCALE_IS_ONE_CHANGED, // Page scale factor equal to one changed
46 // for a host.
45 }; 47 };
46 48
47 // Structure used to notify about zoom changes. Host and/or scheme are empty 49 // Structure used to notify about zoom changes. Host and/or scheme are empty
48 // if not applicable to |mode|. 50 // if not applicable to |mode|.
49 struct ZoomLevelChange { 51 struct ZoomLevelChange {
50 ZoomLevelChangeMode mode; 52 ZoomLevelChangeMode mode;
51 std::string host; 53 std::string host;
52 std::string scheme; 54 std::string scheme;
53 double zoom_level; 55 double zoom_level;
54 }; 56 };
(...skipping 15 matching lines...) Expand all
70 // Returns the HostZoomMap associated with this WebContent's main frame. If 72 // Returns the HostZoomMap associated with this WebContent's main frame. If
71 // multiple WebContents share the same SiteInstance, then they share a single 73 // multiple WebContents share the same SiteInstance, then they share a single
72 // HostZoomMap. 74 // HostZoomMap.
73 CONTENT_EXPORT static HostZoomMap* GetForWebContents( 75 CONTENT_EXPORT static HostZoomMap* GetForWebContents(
74 const WebContents* contents); 76 const WebContents* contents);
75 77
76 // Returns the current zoom level for the specified WebContents. May be 78 // Returns the current zoom level for the specified WebContents. May be
77 // temporary or host-specific. 79 // temporary or host-specific.
78 CONTENT_EXPORT static double GetZoomLevel(const WebContents* web_contents); 80 CONTENT_EXPORT static double GetZoomLevel(const WebContents* web_contents);
79 81
82 // Returns true if the page scale factor for the WebContents is one.
83 CONTENT_EXPORT static bool PageScaleFactorIsOne(
84 const WebContents* web_contents);
85
80 // Sets the current zoom level for the specified WebContents. The level may 86 // Sets the current zoom level for the specified WebContents. The level may
81 // be temporary or host-specific depending on the particular WebContents. 87 // be temporary or host-specific depending on the particular WebContents.
82 CONTENT_EXPORT static void SetZoomLevel(const WebContents* web_contents, 88 CONTENT_EXPORT static void SetZoomLevel(const WebContents* web_contents,
83 double level); 89 double level);
84 90
85 // Send an IPC to refresh any displayed error page's zoom levels. Needs to 91 // Send an IPC to refresh any displayed error page's zoom levels. Needs to
86 // be called since error pages don't get loaded via the normal channel. 92 // be called since error pages don't get loaded via the normal channel.
87 CONTENT_EXPORT static void SendErrorPageZoomLevelRefresh( 93 CONTENT_EXPORT static void SendErrorPageZoomLevelRefresh(
88 const WebContents* web_contents); 94 const WebContents* web_contents);
89 95
96 // Set or clear whether or not the page scale factor for a view is one.
97 virtual void SetPageScaleFactorIsOneForView(
98 int render_process_id, int render_view_id, bool is_one) = 0;
99 virtual void ClearPageScaleFactorIsOneForView(
100 int render_process_id, int render_view_id) = 0;
101
90 // Copy the zoom levels from the given map. Can only be called on the UI 102 // Copy the zoom levels from the given map. Can only be called on the UI
91 // thread. 103 // thread.
92 virtual void CopyFrom(HostZoomMap* copy) = 0; 104 virtual void CopyFrom(HostZoomMap* copy) = 0;
93 105
94 // Here |host| is the host portion of URL, or (in the absence of a host) 106 // Here |host| is the host portion of URL, or (in the absence of a host)
95 // the complete spec of the URL. 107 // the complete spec of the URL.
96 // Returns the zoom for the specified |scheme| and |host|. See class 108 // Returns the zoom for the specified |scheme| and |host|. See class
97 // description for details. 109 // description for details.
98 // 110 //
99 // This may be called on any thread. 111 // This may be called on any thread.
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 virtual scoped_ptr<Subscription> AddZoomLevelChangedCallback( 174 virtual scoped_ptr<Subscription> AddZoomLevelChangedCallback(
163 const ZoomLevelChangedCallback& callback) = 0; 175 const ZoomLevelChangedCallback& callback) = 0;
164 176
165 protected: 177 protected:
166 virtual ~HostZoomMap() {} 178 virtual ~HostZoomMap() {}
167 }; 179 };
168 180
169 } // namespace content 181 } // namespace content
170 182
171 #endif // CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_ 183 #endif // CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_
OLDNEW
« no previous file with comments | « content/common/view_messages.h ('k') | content/public/browser/web_contents.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698