OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/ui/browser.h" | 5 #include "chrome/browser/ui/browser.h" |
6 | 6 |
7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
8 #include <windows.h> | 8 #include <windows.h> |
9 #include <shellapi.h> | 9 #include <shellapi.h> |
10 #endif // OS_WIN | 10 #endif // OS_WIN |
(...skipping 4233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4244 extension->id())) | 4244 extension->id())) |
4245 ShowExtensionDisabledUI(service, profile_, extension); | 4245 ShowExtensionDisabledUI(service, profile_, extension); |
4246 } | 4246 } |
4247 break; | 4247 break; |
4248 } | 4248 } |
4249 | 4249 |
4250 case chrome::NOTIFICATION_EXTENSION_UNLOADED: { | 4250 case chrome::NOTIFICATION_EXTENSION_UNLOADED: { |
4251 if (window()->GetLocationBar()) | 4251 if (window()->GetLocationBar()) |
4252 window()->GetLocationBar()->UpdatePageActions(); | 4252 window()->GetLocationBar()->UpdatePageActions(); |
4253 | 4253 |
4254 // Close any tabs from the unloaded extension. | 4254 // Close any tabs from the unloaded extension, unless it's terminated, |
4255 const Extension* extension = | 4255 // in which case let the sad tabs remain. |
4256 content::Details<UnloadedExtensionInfo>(details)->extension; | 4256 if (content::Details<UnloadedExtensionInfo>(details)->reason != |
4257 TabStripModel* model = tab_handler_->GetTabStripModel(); | 4257 extension_misc::UNLOAD_REASON_TERMINATE) { |
4258 for (int i = model->count() - 1; i >= 0; --i) { | 4258 const Extension* extension = |
4259 TabContents* tc = model->GetTabContentsAt(i)->tab_contents(); | 4259 content::Details<UnloadedExtensionInfo>(details)->extension; |
4260 bool close_tab_contents = | 4260 TabStripModel* model = tab_handler_->GetTabStripModel(); |
4261 tc->GetURL().SchemeIs(chrome::kExtensionScheme) && | 4261 for (int i = model->count() - 1; i >= 0; --i) { |
4262 tc->GetURL().host() == extension->id(); | 4262 TabContents* tc = model->GetTabContentsAt(i)->tab_contents(); |
4263 // We want to close all panels originated by the unloaded extension. | 4263 bool close_tab_contents = |
4264 close_tab_contents = close_tab_contents || (type_ == TYPE_PANEL && | 4264 tc->GetURL().SchemeIs(chrome::kExtensionScheme) && |
4265 (web_app::GetExtensionIdFromApplicationName(app_name_) == | 4265 tc->GetURL().host() == extension->id(); |
| 4266 // We want to close all panels originated by the unloaded extension. |
| 4267 close_tab_contents = close_tab_contents || |
| 4268 (type_ == TYPE_PANEL && |
| 4269 (web_app::GetExtensionIdFromApplicationName(app_name_) == |
4266 extension->id())); | 4270 extension->id())); |
4267 if (close_tab_contents) { | 4271 if (close_tab_contents) { |
4268 CloseTabContents(tc); | 4272 CloseTabContents(tc); |
| 4273 } |
4269 } | 4274 } |
4270 } | 4275 } |
4271 | |
4272 break; | 4276 break; |
4273 } | 4277 } |
4274 | 4278 |
4275 case chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED: { | 4279 case chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED: { |
4276 Profile* profile = content::Source<Profile>(source).ptr(); | 4280 Profile* profile = content::Source<Profile>(source).ptr(); |
4277 if (profile_->IsSameProfile(profile) && window()->GetLocationBar()) | 4281 if (profile_->IsSameProfile(profile) && window()->GetLocationBar()) |
4278 window()->GetLocationBar()->InvalidatePageActions(); | 4282 window()->GetLocationBar()->InvalidatePageActions(); |
4279 break; | 4283 break; |
4280 } | 4284 } |
4281 | 4285 |
(...skipping 1226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5508 } | 5512 } |
5509 | 5513 |
5510 void Browser::UpdateFullscreenExitBubbleContent() { | 5514 void Browser::UpdateFullscreenExitBubbleContent() { |
5511 GURL url; | 5515 GURL url; |
5512 if (fullscreened_tab_) | 5516 if (fullscreened_tab_) |
5513 url = fullscreened_tab_->tab_contents()->GetURL(); | 5517 url = fullscreened_tab_->tab_contents()->GetURL(); |
5514 | 5518 |
5515 window_->UpdateFullscreenExitBubbleContent( | 5519 window_->UpdateFullscreenExitBubbleContent( |
5516 url, GetFullscreenExitBubbleType()); | 5520 url, GetFullscreenExitBubbleType()); |
5517 } | 5521 } |
OLD | NEW |