Index: content/browser/host_zoom_map_impl.cc |
diff --git a/content/browser/host_zoom_map_impl.cc b/content/browser/host_zoom_map_impl.cc |
index b6595b97bd1de766c53569d57591f1bef0d728e2..4260bbf2397444f1a79a2e64e840adaef273a6d3 100644 |
--- a/content/browser/host_zoom_map_impl.cc |
+++ b/content/browser/host_zoom_map_impl.cc |
@@ -136,6 +136,11 @@ void HostZoomMapImpl::CopyFrom(HostZoomMap* copy_interface) { |
double HostZoomMapImpl::GetZoomLevelForHost(const std::string& host) const { |
base::AutoLock auto_lock(lock_); |
+ return GetZoomLevelForHostInternal(host); |
+} |
+ |
+double HostZoomMapImpl::GetZoomLevelForHostInternal( |
+ const std::string& host) const { |
HostZoomLevels::const_iterator i(host_zoom_levels_.find(host)); |
return (i == host_zoom_levels_.end()) ? default_zoom_level_ : i->second; |
} |
@@ -156,20 +161,25 @@ bool HostZoomMapImpl::HasZoomLevel(const std::string& scheme, |
return i != zoom_levels.end(); |
} |
-double HostZoomMapImpl::GetZoomLevelForHostAndScheme( |
+double HostZoomMapImpl::GetZoomLevelForHostAndSchemeInternal( |
const std::string& scheme, |
const std::string& host) const { |
- { |
- base::AutoLock auto_lock(lock_); |
- SchemeHostZoomLevels::const_iterator scheme_iterator( |
- scheme_host_zoom_levels_.find(scheme)); |
- if (scheme_iterator != scheme_host_zoom_levels_.end()) { |
- HostZoomLevels::const_iterator i(scheme_iterator->second.find(host)); |
- if (i != scheme_iterator->second.end()) |
- return i->second; |
- } |
+ SchemeHostZoomLevels::const_iterator scheme_iterator( |
+ scheme_host_zoom_levels_.find(scheme)); |
+ if (scheme_iterator != scheme_host_zoom_levels_.end()) { |
+ HostZoomLevels::const_iterator i(scheme_iterator->second.find(host)); |
+ if (i != scheme_iterator->second.end()) |
+ return i->second; |
} |
- return GetZoomLevelForHost(host); |
+ |
+ return GetZoomLevelForHostInternal(host); |
+} |
+ |
+double HostZoomMapImpl::GetZoomLevelForHostAndScheme( |
+ const std::string& scheme, |
+ const std::string& host) const { |
+ base::AutoLock auto_lock(lock_); |
+ return GetZoomLevelForHostAndSchemeInternal(scheme, host); |
} |
HostZoomMap::ZoomLevelVector HostZoomMapImpl::GetAllZoomLevels() const { |
@@ -365,6 +375,19 @@ void HostZoomMapImpl::SetTemporaryZoomLevel(int render_process_id, |
zoom_level_changed_callbacks_.Notify(change); |
} |
+double HostZoomMapImpl::GetZoomLevelForView(const GURL& url, |
+ int render_process_id, |
+ int render_view_id) const { |
+ RenderViewKey key(render_process_id, render_view_id); |
+ base::AutoLock auto_lock(lock_); |
+ |
+ if (ContainsKey(temporary_zoom_levels_, key)) |
+ return temporary_zoom_levels_.find(key)->second; |
+ |
+ return GetZoomLevelForHostAndSchemeInternal(url.scheme(), |
+ net::GetHostOrSpecFromURL(url)); |
+} |
+ |
void HostZoomMapImpl::Observe(int type, |
const NotificationSource& source, |
const NotificationDetails& details) { |