OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/sidebar/sidebar_manager.h" | 5 #include "chrome/browser/sidebar/sidebar_manager.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 SidebarContainer* was_active_host = | 76 SidebarContainer* was_active_host = |
77 was_active_sidebar_contents == NULL ? NULL : | 77 was_active_sidebar_contents == NULL ? NULL : |
78 FindSidebarContainerFor(was_active_sidebar_contents); | 78 FindSidebarContainerFor(was_active_sidebar_contents); |
79 SidebarContainer* active_host = | 79 SidebarContainer* active_host = |
80 active_sidebar_contents == NULL ? NULL : | 80 active_sidebar_contents == NULL ? NULL : |
81 FindSidebarContainerFor(active_sidebar_contents); | 81 FindSidebarContainerFor(active_sidebar_contents); |
82 | 82 |
83 if (was_active_host != NULL) { | 83 if (was_active_host != NULL) { |
84 ExtensionSidebarEventRouter::OnStateChanged( | 84 ExtensionSidebarEventRouter::OnStateChanged( |
85 was_active_sidebar_contents->profile(), | 85 was_active_sidebar_contents->profile(), |
86 was_active_host->GetTabId(), was_active_host->content_id(), | 86 was_active_host->tab_contents(), was_active_host->content_id(), |
87 extension_sidebar_constants::kShownState); | 87 extension_sidebar_constants::kShownState); |
88 } | 88 } |
89 | 89 |
90 if (active_host != NULL) { | 90 if (active_host != NULL) { |
91 ExtensionSidebarEventRouter::OnStateChanged( | 91 ExtensionSidebarEventRouter::OnStateChanged( |
92 active_sidebar_contents->profile(), | 92 active_sidebar_contents->profile(), |
93 active_host->GetTabId(), active_host->content_id(), | 93 active_host->tab_contents(), active_host->content_id(), |
94 extension_sidebar_constants::kActiveState); | 94 extension_sidebar_constants::kActiveState); |
95 } | 95 } |
96 } | 96 } |
97 | 97 |
98 void SidebarManager::ShowSidebar(TabContents* tab, | 98 void SidebarManager::ShowSidebar(TabContents* tab, |
99 const std::string& content_id) { | 99 const std::string& content_id) { |
100 DCHECK(!content_id.empty()); | 100 DCHECK(!content_id.empty()); |
101 SidebarContainer* host = GetSidebarContainerFor(tab, content_id); | 101 SidebarContainer* host = GetSidebarContainerFor(tab, content_id); |
102 if (!host) { | 102 if (!host) { |
103 host = new SidebarContainer(tab, content_id, this); | 103 host = new SidebarContainer(tab, content_id, this); |
104 RegisterSidebarContainerFor(tab, host); | 104 RegisterSidebarContainerFor(tab, host); |
105 } | 105 } |
106 | 106 |
107 host->Show(); | 107 host->Show(); |
108 | 108 |
109 ExtensionSidebarEventRouter::OnStateChanged( | 109 ExtensionSidebarEventRouter::OnStateChanged( |
110 tab->profile(), host->GetTabId(), content_id, | 110 tab->profile(), tab, content_id, |
111 extension_sidebar_constants::kShownState); | 111 extension_sidebar_constants::kShownState); |
112 } | 112 } |
113 | 113 |
114 void SidebarManager::ExpandSidebar(TabContents* tab, | 114 void SidebarManager::ExpandSidebar(TabContents* tab, |
115 const std::string& content_id) { | 115 const std::string& content_id) { |
116 DCHECK(!content_id.empty()); | 116 DCHECK(!content_id.empty()); |
117 TabToSidebarHostMap::iterator it = tab_to_sidebar_host_.find(tab); | 117 TabToSidebarHostMap::iterator it = tab_to_sidebar_host_.find(tab); |
118 if (it == tab_to_sidebar_host_.end()) | 118 if (it == tab_to_sidebar_host_.end()) |
119 return; | 119 return; |
120 // If it's already active, bail out. | 120 // If it's already active, bail out. |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 const std::string& content_id) { | 153 const std::string& content_id) { |
154 DCHECK(!content_id.empty()); | 154 DCHECK(!content_id.empty()); |
155 TabToSidebarHostMap::iterator it = tab_to_sidebar_host_.find(tab); | 155 TabToSidebarHostMap::iterator it = tab_to_sidebar_host_.find(tab); |
156 if (it == tab_to_sidebar_host_.end()) | 156 if (it == tab_to_sidebar_host_.end()) |
157 return; | 157 return; |
158 if (it->second.active_content_id == content_id) | 158 if (it->second.active_content_id == content_id) |
159 it->second.active_content_id.clear(); | 159 it->second.active_content_id.clear(); |
160 | 160 |
161 SidebarContainer* host = GetSidebarContainerFor(tab, content_id); | 161 SidebarContainer* host = GetSidebarContainerFor(tab, content_id); |
162 DCHECK(host); | 162 DCHECK(host); |
163 int tab_id = host->GetTabId(); | |
164 | 163 |
165 UnregisterSidebarContainerFor(tab, content_id); | 164 UnregisterSidebarContainerFor(tab, content_id); |
166 | 165 |
167 ExtensionSidebarEventRouter::OnStateChanged( | 166 ExtensionSidebarEventRouter::OnStateChanged( |
168 tab->profile(), tab_id, content_id, | 167 tab->profile(), tab, content_id, |
169 extension_sidebar_constants::kHiddenState); | 168 extension_sidebar_constants::kHiddenState); |
170 } | 169 } |
171 | 170 |
172 void SidebarManager::NavigateSidebar(TabContents* tab, | 171 void SidebarManager::NavigateSidebar(TabContents* tab, |
173 const std::string& content_id, | 172 const std::string& content_id, |
174 const GURL& url) { | 173 const GURL& url) { |
175 DCHECK(!content_id.empty()); | 174 DCHECK(!content_id.empty()); |
176 SidebarContainer* host = GetSidebarContainerFor(tab, content_id); | 175 SidebarContainer* host = GetSidebarContainerFor(tab, content_id); |
177 if (!host) | 176 if (!host) |
178 return; | 177 return; |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 | 313 |
315 DCHECK(GetSidebarContainerFor(tab, content_id) == sidebar_host); | 314 DCHECK(GetSidebarContainerFor(tab, content_id) == sidebar_host); |
316 DCHECK(sidebar_host_to_tab_.find(sidebar_host)->second == tab); | 315 DCHECK(sidebar_host_to_tab_.find(sidebar_host)->second == tab); |
317 DCHECK(tab_to_sidebar_host_[tab].active_content_id != content_id); | 316 DCHECK(tab_to_sidebar_host_[tab].active_content_id != content_id); |
318 | 317 |
319 tab_to_sidebar_host_[tab].content_id_to_sidebar_host.erase(content_id); | 318 tab_to_sidebar_host_[tab].content_id_to_sidebar_host.erase(content_id); |
320 if (tab_to_sidebar_host_[tab].content_id_to_sidebar_host.empty()) | 319 if (tab_to_sidebar_host_[tab].content_id_to_sidebar_host.empty()) |
321 tab_to_sidebar_host_.erase(tab); | 320 tab_to_sidebar_host_.erase(tab); |
322 sidebar_host_to_tab_.erase(sidebar_host); | 321 sidebar_host_to_tab_.erase(sidebar_host); |
323 } | 322 } |
OLD | NEW |