Index: chrome/browser/sessions/session_service.cc |
diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc |
index a9c5364613508a435383424b14f29324f40cb849..28e7ce1b9f0d2f5555176c8b05d4c4f9872ccbbc 100644 |
--- a/chrome/browser/sessions/session_service.cc |
+++ b/chrome/browser/sessions/session_service.cc |
@@ -519,6 +519,9 @@ void SessionService::Init() { |
content::NotificationService::AllSources()); |
registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
content::NotificationService::AllSources()); |
+ registrar_.Add( |
+ this, content::NOTIFICATION_WEB_CONTENTS_USER_AGENT_OVERRIDE_CHANGED, |
+ content::NotificationService::AllSources()); |
// Wait for NOTIFICATION_BROWSER_WINDOW_READY so that is_app() is set. |
registrar_.Add(this, chrome::NOTIFICATION_BROWSER_WINDOW_READY, |
content::NotificationService::AllBrowserContextsAndSources()); |
@@ -700,6 +703,17 @@ void SessionService::Observe(int type, |
break; |
} |
+ case content::NOTIFICATION_WEB_CONTENTS_USER_AGENT_OVERRIDE_CHANGED: { |
+ TabContents* tab = TabContents::FromWebContents( |
+ content::Source<content::WebContents>(source).ptr()); |
+ if (!tab || tab->profile() != profile()) |
+ return; |
+ SetTabUserAgentOverride(tab->restore_tab_helper()->window_id(), |
+ tab->restore_tab_helper()->session_id(), |
+ tab->web_contents()->GetUserAgentOverride()); |
+ break; |
+ } |
+ |
case chrome::NOTIFICATION_TAB_CONTENTS_APPLICATION_EXTENSION_CHANGED: { |
extensions::TabHelper* extension_tab_helper = |
content::Source<extensions::TabHelper>(source).ptr(); |