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

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

Issue 302603012: Zoom Extension API (content changes) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Additions to HostZoomMap API. Created 6 years, 6 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 | Annotate | Revision Log
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 12 matching lines...) Expand all
23 // Maps hostnames to custom zoom levels. Written on the UI thread and read on 23 // Maps hostnames to custom zoom levels. Written on the UI thread and read on
24 // any thread. One instance per browser context. Must be created on the UI 24 // any thread. One instance per browser context. Must be created on the UI
25 // thread, and it'll delete itself on the UI thread as well. 25 // thread, and it'll delete itself on the UI thread as well.
26 // Zoom can be defined at three levels: default zoom, zoom for host, and zoom 26 // Zoom can be defined at three levels: default zoom, zoom for host, and zoom
27 // for host with specific scheme. Setting any of the levels leaves settings 27 // for host with specific scheme. Setting any of the levels leaves settings
28 // for other settings intact. Getting the zoom level starts at the most 28 // for other settings intact. Getting the zoom level starts at the most
29 // specific setting and progresses to the less specific: first the zoom for the 29 // specific setting and progresses to the less specific: first the zoom for the
30 // host and scheme pair is checked, secondly the zoom for the host only and 30 // host and scheme pair is checked, secondly the zoom for the host only and
31 // lastly default zoom. 31 // lastly default zoom.
32 32
33 class HostZoomMap { 33 class HostZoomMap {
Fady Samuel 2014/06/09 15:43:21 I find this name really confusing, especially with
wjmaclean 2014/06/09 17:23:29 I'm OK with that. But, we should then consider the
34 public: 34 public:
35 // Enum that indicates what was the scope of zoom level change. 35 // Enum that indicates what was the scope of zoom level change.
36 enum ZoomLevelChangeMode { 36 enum ZoomLevelChangeMode {
37 ZOOM_CHANGED_FOR_HOST, // Zoom level changed for host. 37 ZOOM_CHANGED_FOR_HOST, // Zoom level changed for host.
38 ZOOM_CHANGED_FOR_SCHEME_AND_HOST, // Zoom level changed for scheme/host 38 ZOOM_CHANGED_FOR_SCHEME_AND_HOST, // Zoom level changed for scheme/host
39 // pair. 39 // pair.
40 ZOOM_CHANGED_TEMPORARY_ZOOM, // Temporary zoom change for specific 40 ZOOM_CHANGED_TEMPORARY_ZOOM, // Temporary zoom change for specific
41 // renderer, no scheme/host is specified. 41 // renderer, no scheme/host is specified.
42 }; 42 };
43 43
(...skipping 27 matching lines...) Expand all
71 // Here |host| is the host portion of URL, or (in the absence of a host) 71 // Here |host| is the host portion of URL, or (in the absence of a host)
72 // the complete spec of the URL. 72 // the complete spec of the URL.
73 // Returns the zoom for the specified |scheme| and |host|. See class 73 // Returns the zoom for the specified |scheme| and |host|. See class
74 // description for details. 74 // description for details.
75 // 75 //
76 // This may be called on any thread. 76 // This may be called on any thread.
77 virtual double GetZoomLevelForHostAndScheme( 77 virtual double GetZoomLevelForHostAndScheme(
78 const std::string& scheme, 78 const std::string& scheme,
79 const std::string& host) const = 0; 79 const std::string& host) const = 0;
80 80
81 // Returns true if the specified |scheme| and/or |host| has a zoom level
82 // currently set.
83 //
84 // This may be called on any thread.
85 virtual bool HasZoomLevelInMap(const std::string& scheme,
Fady Samuel 2014/06/09 15:43:21 I'm not a fan of calling this thing a map at all a
wjmaclean 2014/06/09 17:23:29 Done.
86 const std::string& host) const = 0;
87
81 // Returns all non-temporary zoom levels. Can only be called on any thread. 88 // Returns all non-temporary zoom levels. Can only be called on any thread.
82 virtual ZoomLevelVector GetAllZoomLevels() const = 0; 89 virtual ZoomLevelVector GetAllZoomLevels() const = 0;
83 90
84 // Here |host| is the host portion of URL, or (in the absence of a host) 91 // Here |host| is the host portion of URL, or (in the absence of a host)
85 // the complete spec of the URL. 92 // the complete spec of the URL.
86 // Sets the zoom level for the |host| to |level|. If the level matches the 93 // Sets the zoom level for the |host| to |level|. If the level matches the
87 // current default zoom level, the host is erased from the saved preferences; 94 // current default zoom level, the host is erased from the saved preferences;
88 // otherwise the new value is written out. 95 // otherwise the new value is written out.
89 // Zoom levels specified for both scheme and host are not affected. 96 // Zoom levels specified for both scheme and host are not affected.
90 // 97 //
91 // This should only be called on the UI thread. 98 // This should only be called on the UI thread.
92 virtual void SetZoomLevelForHost(const std::string& host, double level) = 0; 99 virtual void SetZoomLevelForHost(const std::string& host, double level) = 0;
93 100
94 // Here |host| is the host portion of URL, or (in the absence of a host) 101 // Here |host| is the host portion of URL, or (in the absence of a host)
95 // the complete spec of the URL. 102 // the complete spec of the URL.
96 // Sets the zoom level for the |scheme|/|host| pair to |level|. No values 103 // Sets the zoom level for the |scheme|/|host| pair to |level|. No values
97 // will be erased during this operation, and this value will not be stored in 104 // will be erased during this operation, and this value will not be stored in
98 // the preferences. 105 // the preferences.
99 // 106 //
100 // This should only be called on the UI thread. 107 // This should only be called on the UI thread.
101 virtual void SetZoomLevelForHostAndScheme(const std::string& scheme, 108 virtual void SetZoomLevelForHostAndScheme(const std::string& scheme,
102 const std::string& host, 109 const std::string& host,
103 double level) = 0; 110 double level) = 0;
104 111
112 // Sets the temporary zoom level that's only valid for the lifetime of this
113 // WebContents.
114 //
115 // This should only be called on the UI thread.
116 virtual void SetTemporaryZoomLevel(int render_process_id,
117 int render_view_id,
118 const std::string& host,
119 double level,
120 bool send_level_to_view) =0;
Fady Samuel 2014/06/09 15:43:21 This last parameter is really confusing at an API
wjmaclean 2014/06/09 17:23:29 Ok, I can look into separating this. One consider
wjmaclean 2014/06/10 13:20:09 Done.
121
122 // Erases the temporary zoom level stored for this WebContents.
123 //
124 // This should only be called on the UI thread.
125 virtual void EraseTemporaryZoomLevel(int render_process_id,
Fady Samuel 2014/06/09 15:43:21 name: ClearTemporaryZoomLevel
wjmaclean 2014/06/09 17:23:29 Done.
126 int render_view_id) = 0;
127
105 // Get/Set the default zoom level for pages that don't override it. 128 // Get/Set the default zoom level for pages that don't override it.
106 virtual double GetDefaultZoomLevel() const = 0; 129 virtual double GetDefaultZoomLevel() const = 0;
107 virtual void SetDefaultZoomLevel(double level) = 0;; 130 virtual void SetDefaultZoomLevel(double level) = 0;;
108 131
109 typedef base::Callback<void(const ZoomLevelChange&)> ZoomLevelChangedCallback; 132 typedef base::Callback<void(const ZoomLevelChange&)> ZoomLevelChangedCallback;
110 typedef base::CallbackList<void(const ZoomLevelChange&)>::Subscription 133 typedef base::CallbackList<void(const ZoomLevelChange&)>::Subscription
111 Subscription; 134 Subscription;
112 // Add and remove zoom level changed callbacks. 135 // Add and remove zoom level changed callbacks.
113 virtual scoped_ptr<Subscription> AddZoomLevelChangedCallback( 136 virtual scoped_ptr<Subscription> AddZoomLevelChangedCallback(
114 const ZoomLevelChangedCallback& callback) = 0; 137 const ZoomLevelChangedCallback& callback) = 0;
115 138
116 protected: 139 protected:
117 virtual ~HostZoomMap() {} 140 virtual ~HostZoomMap() {}
118 }; 141 };
119 142
120 } // namespace content 143 } // namespace content
121 144
122 #endif // CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_ 145 #endif // CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698