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..5d16d7119bc60d9ce1b2b55672a086ddb955099a 100644 |
--- a/chrome/browser/ui/zoom/zoom_controller.cc |
+++ b/chrome/browser/ui/zoom/zoom_controller.cc |
@@ -24,7 +24,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 +80,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 +241,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) { |