Index: chrome/browser/ui/zoom/zoom_controller.cc |
diff --git a/chrome/browser/ui/zoom/zoom_controller.cc b/chrome/browser/ui/zoom/zoom_controller.cc |
index 95ab757f3f7d5bf75cc7c3956e7045ae7fb3afae..e09b9023a4444cb647e48f47df9080b2a1b6e380 100644 |
--- a/chrome/browser/ui/zoom/zoom_controller.cc |
+++ b/chrome/browser/ui/zoom/zoom_controller.cc |
@@ -12,6 +12,7 @@ |
#include "content/public/browser/render_process_host.h" |
#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/web_contents.h" |
+#include "content/public/common/page_type.h" |
#include "content/public/common/page_zoom.h" |
#include "extensions/common/extension.h" |
#include "grit/theme_resources.h" |
@@ -24,7 +25,8 @@ ZoomController::ZoomController(content::WebContents* web_contents) |
can_show_bubble_(true), |
zoom_mode_(ZOOM_MODE_DEFAULT), |
zoom_level_(1.0), |
- browser_context_(web_contents->GetBrowserContext()) { |
+ browser_context_(web_contents->GetBrowserContext()), |
+ is_error_page_(false) { |
// TODO(wjmaclean) Make calls to HostZoomMap::GetDefaultForBrowserContext() |
// refer to the webcontents-specific HostZoomMap when that becomes available. |
content::HostZoomMap* host_zoom_map = |
@@ -79,9 +81,10 @@ bool ZoomController::SetZoomLevelByExtension( |
double zoom_level, |
const scoped_refptr<const extensions::Extension>& extension) { |
// Cannot zoom in disabled mode. Also, don't allow changing zoom level on |
- // a crashed tab. |
+ // a crashed tab or an error page. |
if (zoom_mode_ == ZOOM_MODE_DISABLED || |
- !web_contents()->GetRenderViewHost()->IsRenderViewLive()) |
+ !web_contents()->GetRenderViewHost()->IsRenderViewLive() || |
+ is_error_page_) |
return false; |
// Store extension data so that |extension| can be attributed when the zoom |
@@ -239,6 +242,14 @@ void ZoomController::SetZoomMode(ZoomMode new_mode) { |
zoom_mode_ = new_mode; |
} |
+void ZoomController::DidCommitProvisionalLoadForFrame( |
+ content::RenderFrameHost* render_frame_host, |
+ const GURL& url, |
+ bool url_is_unreachable, |
+ ui::PageTransition transition_type) { |
+ is_error_page_ = url_is_unreachable; |
+} |
+ |
void ZoomController::DidNavigateMainFrame( |
const content::LoadCommittedDetails& details, |
const content::FrameNavigateParams& params) { |