| 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 #import "chrome/browser/ui/cocoa/hung_renderer_controller.h" | 5 #import "chrome/browser/ui/cocoa/hung_renderer_controller.h" |
| 6 | 6 |
| 7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
| 8 | 8 |
| 9 #include "base/mac/mac_util.h" | 9 #include "base/mac/mac_util.h" |
| 10 #include "base/process_util.h" | 10 #include "base/process_util.h" |
| 11 #include "base/sys_string_conversions.h" | 11 #include "base/sys_string_conversions.h" |
| 12 #include "chrome/browser/browser_list.h" | 12 #include "chrome/browser/browser_list.h" |
| 13 #include "chrome/browser/hung_renderer_dialog.h" | 13 #include "chrome/browser/hung_renderer_dialog.h" |
| 14 #include "chrome/browser/renderer_host/render_process_host.h" | 14 #include "chrome/browser/renderer_host/render_process_host.h" |
| 15 #include "chrome/browser/renderer_host/render_view_host.h" | 15 #include "chrome/browser/renderer_host/render_view_host.h" |
| 16 #include "chrome/browser/tab_contents/tab_contents.h" | 16 #include "chrome/browser/tab_contents/tab_contents.h" |
| 17 #import "chrome/browser/ui/cocoa/multi_key_equivalent_button.h" | 17 #import "chrome/browser/ui/cocoa/multi_key_equivalent_button.h" |
| 18 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| 18 #include "chrome/common/logging_chrome.h" | 19 #include "chrome/common/logging_chrome.h" |
| 19 #include "chrome/common/result_codes.h" | 20 #include "chrome/common/result_codes.h" |
| 20 #include "grit/chromium_strings.h" | 21 #include "grit/chromium_strings.h" |
| 21 #include "grit/app_resources.h" | 22 #include "grit/app_resources.h" |
| 22 #include "grit/generated_resources.h" | 23 #include "grit/generated_resources.h" |
| 23 #include "grit/theme_resources.h" | 24 #include "grit/theme_resources.h" |
| 24 #include "skia/ext/skia_utils_mac.h" | 25 #include "skia/ext/skia_utils_mac.h" |
| 25 #include "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h" | 26 #include "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h" |
| 26 #include "ui/base/l10n/l10n_util_mac.h" | 27 #include "ui/base/l10n/l10n_util_mac.h" |
| 27 #include "ui/base/resource/resource_bundle.h" | 28 #include "ui/base/resource/resource_bundle.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 | 133 |
| 133 - (void)showForTabContents:(TabContents*)contents { | 134 - (void)showForTabContents:(TabContents*)contents { |
| 134 DCHECK(contents); | 135 DCHECK(contents); |
| 135 hungContents_ = contents; | 136 hungContents_ = contents; |
| 136 scoped_nsobject<NSMutableArray> titles([[NSMutableArray alloc] init]); | 137 scoped_nsobject<NSMutableArray> titles([[NSMutableArray alloc] init]); |
| 137 scoped_nsobject<NSMutableArray> favicons([[NSMutableArray alloc] init]); | 138 scoped_nsobject<NSMutableArray> favicons([[NSMutableArray alloc] init]); |
| 138 for (TabContentsIterator it; !it.done(); ++it) { | 139 for (TabContentsIterator it; !it.done(); ++it) { |
| 139 if (it->GetRenderProcessHost() == hungContents_->GetRenderProcessHost()) { | 140 if (it->GetRenderProcessHost() == hungContents_->GetRenderProcessHost()) { |
| 140 string16 title = (*it)->GetTitle(); | 141 string16 title = (*it)->GetTitle(); |
| 141 if (title.empty()) | 142 if (title.empty()) |
| 142 title = TabContents::GetDefaultTitle(); | 143 title = TabContentsWrapper::GetDefaultTitle(); |
| 143 [titles addObject:base::SysUTF16ToNSString(title)]; | 144 [titles addObject:base::SysUTF16ToNSString(title)]; |
| 144 | 145 |
| 145 // TabContents can return a null SkBitmap if it has no favicon. If this | 146 // TabContents can return a null SkBitmap if it has no favicon. If this |
| 146 // happens, use the default favicon. | 147 // happens, use the default favicon. |
| 147 const SkBitmap& bitmap = it->GetFavIcon(); | 148 const SkBitmap& bitmap = it->GetFavIcon(); |
| 148 if (!bitmap.isNull()) { | 149 if (!bitmap.isNull()) { |
| 149 [favicons addObject:gfx::SkBitmapToNSImage(bitmap)]; | 150 [favicons addObject:gfx::SkBitmapToNSImage(bitmap)]; |
| 150 } else { | 151 } else { |
| 151 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 152 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 152 [favicons addObject:rb.GetNativeImageNamed(IDR_DEFAULT_FAVICON)]; | 153 [favicons addObject:rb.GetNativeImageNamed(IDR_DEFAULT_FAVICON)]; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 } | 195 } |
| 195 } | 196 } |
| 196 | 197 |
| 197 // static | 198 // static |
| 198 void HideForTabContents(TabContents* contents) { | 199 void HideForTabContents(TabContents* contents) { |
| 199 if (!logging::DialogsAreSuppressed() && g_instance) | 200 if (!logging::DialogsAreSuppressed() && g_instance) |
| 200 [g_instance endForTabContents:contents]; | 201 [g_instance endForTabContents:contents]; |
| 201 } | 202 } |
| 202 | 203 |
| 203 } // namespace hung_renderer_dialog | 204 } // namespace hung_renderer_dialog |
| OLD | NEW |