| 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..4925a147b4ed42146d20c5779e7a8db6e214c985 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"
|
| @@ -78,10 +79,14 @@ bool ZoomController::SetZoomLevel(double zoom_level) {
|
| bool ZoomController::SetZoomLevelByExtension(
|
| double zoom_level,
|
| const scoped_refptr<const extensions::Extension>& extension) {
|
| + bool is_normal_page =
|
| + web_contents()->GetController().GetLastCommittedEntry()->GetPageType() ==
|
| + content::PAGE_TYPE_NORMAL;
|
| // Cannot zoom in disabled mode. Also, don't allow changing zoom level on
|
| - // a crashed tab.
|
| + // a crashed tab, an error page or an interstitial page.
|
| if (zoom_mode_ == ZOOM_MODE_DISABLED ||
|
| - !web_contents()->GetRenderViewHost()->IsRenderViewLive())
|
| + !web_contents()->GetRenderViewHost()->IsRenderViewLive() ||
|
| + !is_normal_page)
|
| return false;
|
|
|
| // Store extension data so that |extension| can be attributed when the zoom
|
|
|