| OLD | NEW |
| 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 <memory> | 9 #include <memory> |
| 10 #include <string> | 10 #include <string> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "base/callback.h" | 13 #include "base/callback.h" |
| 14 #include "base/callback_list.h" | 14 #include "base/callback_list.h" |
| 15 #include "content/common/content_export.h" | 15 #include "content/common/content_export.h" |
| 16 #include "url/gurl.h" | 16 #include "url/gurl.h" |
| 17 | 17 |
| 18 namespace content { | 18 namespace content { |
| 19 | 19 |
| 20 class NavigationEntry; | 20 class NavigationEntry; |
| 21 class BrowserContext; | 21 class BrowserContext; |
| 22 class RenderFrameHost; |
| 22 class SiteInstance; | 23 class SiteInstance; |
| 23 class WebContents; | 24 class WebContents; |
| 24 | 25 |
| 25 // Maps hostnames to custom zoom levels. Written on the UI thread and read on | 26 // Maps hostnames to custom zoom levels. Written on the UI thread and read on |
| 26 // any thread. One instance per browser context. Must be created on the UI | 27 // any thread. One instance per browser context. Must be created on the UI |
| 27 // thread, and it'll delete itself on the UI thread as well. | 28 // thread, and it'll delete itself on the UI thread as well. |
| 28 // Zoom can be defined at three levels: default zoom, zoom for host, and zoom | 29 // Zoom can be defined at three levels: default zoom, zoom for host, and zoom |
| 29 // 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 |
| 30 // 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 |
| 31 // 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 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 // Set or clear whether or not the page scale factor for a view is one. | 96 // Set or clear whether or not the page scale factor for a view is one. |
| 96 virtual void SetPageScaleFactorIsOneForView( | 97 virtual void SetPageScaleFactorIsOneForView( |
| 97 int render_process_id, int render_view_id, bool is_one) = 0; | 98 int render_process_id, int render_view_id, bool is_one) = 0; |
| 98 virtual void ClearPageScaleFactorIsOneForView( | 99 virtual void ClearPageScaleFactorIsOneForView( |
| 99 int render_process_id, int render_view_id) = 0; | 100 int render_process_id, int render_view_id) = 0; |
| 100 | 101 |
| 101 // 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 |
| 102 // thread. | 103 // thread. |
| 103 virtual void CopyFrom(HostZoomMap* copy) = 0; | 104 virtual void CopyFrom(HostZoomMap* copy) = 0; |
| 104 | 105 |
| 106 // Copy the temporary zoom level entry of |old_host| from the given map to |
| 107 // this map's entry for |new_host|. |
| 108 virtual void PreserveTemporaryZoomLevelFrom( |
| 109 const HostZoomMap* copy, RenderFrameHost* old_host, |
| 110 RenderFrameHost* new_host) = 0; |
| 111 |
| 105 // Here |host| is the host portion of URL, or (in the absence of a host) | 112 // Here |host| is the host portion of URL, or (in the absence of a host) |
| 106 // the complete spec of the URL. | 113 // the complete spec of the URL. |
| 107 // Returns the zoom for the specified |scheme| and |host|. See class | 114 // Returns the zoom for the specified |scheme| and |host|. See class |
| 108 // description for details. | 115 // description for details. |
| 109 // | 116 // |
| 110 // This may be called on any thread. | 117 // This may be called on any thread. |
| 111 virtual double GetZoomLevelForHostAndScheme( | 118 virtual double GetZoomLevelForHostAndScheme( |
| 112 const std::string& scheme, | 119 const std::string& scheme, |
| 113 const std::string& host) const = 0; | 120 const std::string& host) const = 0; |
| 114 | 121 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 141 // This should only be called on the UI thread. | 148 // This should only be called on the UI thread. |
| 142 virtual void SetZoomLevelForHostAndScheme(const std::string& scheme, | 149 virtual void SetZoomLevelForHostAndScheme(const std::string& scheme, |
| 143 const std::string& host, | 150 const std::string& host, |
| 144 double level) = 0; | 151 double level) = 0; |
| 145 | 152 |
| 146 // Returns whether the view manages its zoom level independently of other | 153 // Returns whether the view manages its zoom level independently of other |
| 147 // views displaying content from the same host. | 154 // views displaying content from the same host. |
| 148 virtual bool UsesTemporaryZoomLevel(int render_process_id, | 155 virtual bool UsesTemporaryZoomLevel(int render_process_id, |
| 149 int render_view_id) const = 0; | 156 int render_view_id) const = 0; |
| 150 | 157 |
| 151 // Sets the temporary zoom level that's only valid for the lifetime of this | 158 // Sets the temporary zoom level that's only valid for the lifetime of the |
| 152 // WebContents. | 159 // given view. |
| 153 // | 160 // |
| 154 // This should only be called on the UI thread. | 161 // This should only be called on the UI thread. |
| 155 virtual void SetTemporaryZoomLevel(int render_process_id, | 162 virtual void SetTemporaryZoomLevel(int render_process_id, |
| 156 int render_view_id, | 163 int render_view_id, |
| 157 double level) = 0; | 164 double level) = 0; |
| 158 | 165 |
| 159 // Clears the temporary zoom level stored for this WebContents. | 166 // Clears the temporary zoom level stored for the given view. |
| 160 // | 167 // |
| 161 // This should only be called on the UI thread. | 168 // This should only be called on the UI thread. |
| 162 virtual void ClearTemporaryZoomLevel(int render_process_id, | 169 virtual void ClearTemporaryZoomLevel(int render_process_id, |
| 163 int render_view_id) = 0; | 170 int render_view_id) = 0; |
| 164 | 171 |
| 165 // Get/Set the default zoom level for pages that don't override it. | 172 // Get/Set the default zoom level for pages that don't override it. |
| 166 virtual double GetDefaultZoomLevel() const = 0; | 173 virtual double GetDefaultZoomLevel() const = 0; |
| 167 virtual void SetDefaultZoomLevel(double level) = 0; | 174 virtual void SetDefaultZoomLevel(double level) = 0; |
| 168 | 175 |
| 169 typedef base::Callback<void(const ZoomLevelChange&)> ZoomLevelChangedCallback; | 176 typedef base::Callback<void(const ZoomLevelChange&)> ZoomLevelChangedCallback; |
| 170 typedef base::CallbackList<void(const ZoomLevelChange&)>::Subscription | 177 typedef base::CallbackList<void(const ZoomLevelChange&)>::Subscription |
| 171 Subscription; | 178 Subscription; |
| 172 // Add and remove zoom level changed callbacks. | 179 // Add and remove zoom level changed callbacks. |
| 173 virtual std::unique_ptr<Subscription> AddZoomLevelChangedCallback( | 180 virtual std::unique_ptr<Subscription> AddZoomLevelChangedCallback( |
| 174 const ZoomLevelChangedCallback& callback) = 0; | 181 const ZoomLevelChangedCallback& callback) = 0; |
| 175 | 182 |
| 176 protected: | 183 protected: |
| 177 virtual ~HostZoomMap() {} | 184 virtual ~HostZoomMap() {} |
| 178 }; | 185 }; |
| 179 | 186 |
| 180 } // namespace content | 187 } // namespace content |
| 181 | 188 |
| 182 #endif // CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_ | 189 #endif // CONTENT_PUBLIC_BROWSER_HOST_ZOOM_MAP_H_ |
| OLD | NEW |