Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / sync / sessions2 / notification_service_sessions_router.cc
index 12688f7..449a1d2 100644 (file)
@@ -11,6 +11,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/sync/glue/sync_start_util.h"
 #include "chrome/browser/sync/glue/synced_tab_delegate.h"
+#include "chrome/browser/sync/sessions2/sessions_util.h"
 #include "chrome/browser/ui/browser.h"
 #include "content/public/browser/navigation_controller.h"
 #include "content/public/browser/navigation_entry.h"
@@ -89,6 +90,8 @@ void NotificationServiceSessionsRouter::Observe(
         return;
       if (handler_)
         handler_->OnLocalTabModified(tab);
+      if (!sessions_util::ShouldSyncTab(*tab))
+        return;
       break;
     }
     // Source<NavigationController>.
@@ -102,6 +105,8 @@ void NotificationServiceSessionsRouter::Observe(
         return;
       if (handler_)
         handler_->OnLocalTabModified(tab);
+      if (!sessions_util::ShouldSyncTab(*tab))
+        return;
       break;
     }
     case chrome::NOTIFICATION_TAB_CONTENTS_APPLICATION_EXTENSION_CHANGED: {
@@ -114,6 +119,8 @@ void NotificationServiceSessionsRouter::Observe(
       if (extension_tab_helper->extension_app()) {
         SyncedTabDelegate* tab = SyncedTabDelegate::ImplFromWebContents(
             extension_tab_helper->web_contents());
+        if (!tab || tab->profile() != profile_)
+          return;
         if (handler_)
           handler_->OnLocalTabModified(tab);
         break;