| 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 66ba5ee0c28367a78c80820e7291dc9978347163..a706ae94747f1c6e27d4e2f83da598f93885d0f8 100644
|
| --- a/chrome/browser/ui/zoom/zoom_controller.cc
|
| +++ b/chrome/browser/ui/zoom/zoom_controller.cc
|
| @@ -11,6 +11,7 @@
|
| #include "chrome/common/chrome_notification_types.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "content/public/browser/host_zoom_map.h"
|
| +#include "content/public/browser/navigation_entry.h"
|
| #include "content/public/browser/notification_types.h"
|
| #include "content/public/browser/notification_details.h"
|
| #include "content/public/browser/notification_service.h"
|
| @@ -80,8 +81,15 @@ void ZoomController::Observe(int type,
|
| }
|
|
|
| void ZoomController::UpdateState(const std::string& host) {
|
| - if (!host.empty() &&
|
| - host != net::GetHostOrSpecFromURL(web_contents()->GetURL())) {
|
| + if (host.empty())
|
| + return;
|
| +
|
| + // Use the active navigation entry's URL instead of the WebContents' so
|
| + // virtual URLs work (e.g. chrome://settings). http://crbug.com/153950
|
| + content::NavigationEntry* active_entry =
|
| + web_contents()->GetController().GetActiveEntry();
|
| + if (!active_entry ||
|
| + host != net::GetHostOrSpecFromURL(active_entry->GetURL())) {
|
| return;
|
| }
|
|
|
|
|