| 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) {
|
|
|