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

Unified Diff: content/browser/host_zoom_map_impl.cc

Issue 678963003: Allow zooming error pages. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/host_zoom_map_impl.h ('k') | content/public/browser/host_zoom_map.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 9c595ef0f24f17687add77b175740d964cc626d0..81f8182924d58d4d7700b3e072a914cd3c572d4d 100644
--- a/content/browser/host_zoom_map_impl.cc
+++ b/content/browser/host_zoom_map_impl.cc
@@ -21,6 +21,7 @@
#include "content/public/browser/notification_types.h"
#include "content/public/browser/resource_context.h"
#include "content/public/common/page_zoom.h"
+#include "content/public/common/url_constants.h"
#include "net/base/net_util.h"
namespace content {
@@ -43,11 +44,22 @@ std::string GetHostFromProcessView(int render_process_id, int render_view_id) {
if (!entry)
return std::string();
- return net::GetHostOrSpecFromURL(entry->GetURL());
+ return net::GetHostOrSpecFromURL(HostZoomMap::GetURLFromEntry(entry));
}
} // namespace
+GURL HostZoomMap::GetURLFromEntry(const NavigationEntry* entry) {
+ switch (entry->GetPageType()) {
+ case PAGE_TYPE_ERROR:
+ return GURL(kUnreachableWebDataURL);
+ // TODO(wjmaclean): In future, give interstitial pages special treatment as
+ // well.
+ default:
+ return entry->GetURL();
+ }
+}
+
HostZoomMap* HostZoomMap::GetDefaultForBrowserContext(BrowserContext* context) {
HostZoomMapImpl* rv = static_cast<HostZoomMapImpl*>(
context->GetUserData(kHostZoomMapKeyName));
@@ -76,6 +88,14 @@ void HostZoomMap::SetZoomLevel(const WebContents* web_contents, double level) {
*static_cast<const WebContentsImpl*>(web_contents), level);
}
+void HostZoomMap::SendErrorPageZoomLevelRefresh(
+ const WebContents* web_contents) {
+ HostZoomMapImpl* host_zoom_map =
+ static_cast<HostZoomMapImpl*>(HostZoomMap::GetDefaultForBrowserContext(
+ web_contents->GetBrowserContext()));
+ host_zoom_map->SendErrorPageZoomLevelRefresh();
+}
+
HostZoomMapImpl::HostZoomMapImpl()
: default_zoom_level_(0.0) {
registrar_.Add(
@@ -253,7 +273,7 @@ double HostZoomMapImpl::GetZoomLevelForWebContents(
// It is possible for a WebContent's zoom level to be queried before
// a navigation has occurred.
if (entry)
- url = entry->GetURL();
+ url = GetURLFromEntry(entry);
return GetZoomLevelForHostAndScheme(url.scheme(),
net::GetHostOrSpecFromURL(url));
}
@@ -277,7 +297,7 @@ void HostZoomMapImpl::SetZoomLevelForWebContents(
if (!entry)
return;
- GURL url = entry->GetURL();
+ GURL url = GetURLFromEntry(entry);
SetZoomLevelForHost(net::GetHostOrSpecFromURL(url), level);
}
}
@@ -384,6 +404,14 @@ void HostZoomMapImpl::SendZoomLevelChange(const std::string& scheme,
}
}
+void HostZoomMapImpl::SendErrorPageZoomLevelRefresh() {
+ GURL error_url(kUnreachableWebDataURL);
+ std::string host = net::GetHostOrSpecFromURL(error_url);
+ double error_page_zoom_level = GetZoomLevelForHost(host);
+
+ SendZoomLevelChange(std::string(), host, error_page_zoom_level);
+}
+
HostZoomMapImpl::~HostZoomMapImpl() {
}
« no previous file with comments | « content/browser/host_zoom_map_impl.h ('k') | content/public/browser/host_zoom_map.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698