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 <shellapi.h> | 8 #include <shellapi.h> |
9 #include <windows.h> | 9 #include <windows.h> |
10 #endif // OS_WIN | 10 #endif // OS_WIN |
(...skipping 1785 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1796 NavigationEntry* entry = current_tab->controller().GetLastCommittedEntry(); | 1796 NavigationEntry* entry = current_tab->controller().GetLastCommittedEntry(); |
1797 if (!entry) | 1797 if (!entry) |
1798 return; | 1798 return; |
1799 | 1799 |
1800 // RVH's GetApplicationInfo should not be called before it returns. | 1800 // RVH's GetApplicationInfo should not be called before it returns. |
1801 DCHECK(pending_web_app_action_ == NONE); | 1801 DCHECK(pending_web_app_action_ == NONE); |
1802 pending_web_app_action_ = CREATE_SHORTCUT; | 1802 pending_web_app_action_ = CREATE_SHORTCUT; |
1803 | 1803 |
1804 // Start fetching web app info for CreateApplicationShortcut dialog and show | 1804 // Start fetching web app info for CreateApplicationShortcut dialog and show |
1805 // the dialog when the data is available in OnDidGetApplicationInfo. | 1805 // the dialog when the data is available in OnDidGetApplicationInfo. |
1806 current_tab->render_view_host()->GetApplicationInfo(entry->page_id()); | 1806 current_tab->extension_tab_helper()->GetApplicationInfo(entry->page_id()); |
1807 #else | 1807 #else |
1808 NOTIMPLEMENTED(); | 1808 NOTIMPLEMENTED(); |
1809 #endif | 1809 #endif |
1810 } | 1810 } |
1811 | 1811 |
1812 void Browser::ToggleDevToolsWindow(DevToolsToggleAction action) { | 1812 void Browser::ToggleDevToolsWindow(DevToolsToggleAction action) { |
1813 std::string uma_string; | 1813 std::string uma_string; |
1814 switch (action) { | 1814 switch (action) { |
1815 case DEVTOOLS_TOGGLE_ACTION_SHOW_CONSOLE: | 1815 case DEVTOOLS_TOGGLE_ACTION_SHOW_CONSOLE: |
1816 uma_string = "DevTools_ToggleConsole"; | 1816 uma_string = "DevTools_ToggleConsole"; |
(...skipping 1111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2928 } | 2928 } |
2929 | 2929 |
2930 if (!source->is_loading() && | 2930 if (!source->is_loading() && |
2931 pending_web_app_action_ == UPDATE_SHORTCUT) { | 2931 pending_web_app_action_ == UPDATE_SHORTCUT) { |
2932 // Schedule a shortcut update when web application info is available if | 2932 // Schedule a shortcut update when web application info is available if |
2933 // last committed entry is not NULL. Last committed entry could be NULL | 2933 // last committed entry is not NULL. Last committed entry could be NULL |
2934 // when an interstitial page is injected (e.g. bad https certificate, | 2934 // when an interstitial page is injected (e.g. bad https certificate, |
2935 // malware site etc). When this happens, we abort the shortcut update. | 2935 // malware site etc). When this happens, we abort the shortcut update. |
2936 NavigationEntry* entry = source->controller().GetLastCommittedEntry(); | 2936 NavigationEntry* entry = source->controller().GetLastCommittedEntry(); |
2937 if (entry) { | 2937 if (entry) { |
2938 source->render_view_host()->GetApplicationInfo(entry->page_id()); | 2938 TabContentsWrapper::GetCurrentWrapperForContents(source)-> |
| 2939 extension_tab_helper()->GetApplicationInfo(entry->page_id()); |
2939 } else { | 2940 } else { |
2940 pending_web_app_action_ = NONE; | 2941 pending_web_app_action_ = NONE; |
2941 } | 2942 } |
2942 } | 2943 } |
2943 } | 2944 } |
2944 } | 2945 } |
2945 | 2946 |
2946 void Browser::CloseContents(TabContents* source) { | 2947 void Browser::CloseContents(TabContents* source) { |
2947 if (is_attempting_to_close_browser_) { | 2948 if (is_attempting_to_close_browser_) { |
2948 // If we're trying to close the browser, just clear the state related to | 2949 // If we're trying to close the browser, just clear the state related to |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3229 window()->ShowCollectedCookiesDialog(tab_contents); | 3230 window()->ShowCollectedCookiesDialog(tab_contents); |
3230 } | 3231 } |
3231 | 3232 |
3232 bool Browser::ShouldAddNavigationToHistory( | 3233 bool Browser::ShouldAddNavigationToHistory( |
3233 const history::HistoryAddPageArgs& add_page_args, | 3234 const history::HistoryAddPageArgs& add_page_args, |
3234 NavigationType::Type navigation_type) { | 3235 NavigationType::Type navigation_type) { |
3235 // Don't update history if running as app. | 3236 // Don't update history if running as app. |
3236 return !IsApplication(); | 3237 return !IsApplication(); |
3237 } | 3238 } |
3238 | 3239 |
3239 void Browser::OnDidGetApplicationInfo(TabContents* tab_contents, | 3240 void Browser::ContentRestrictionsChanged(TabContents* source) { |
| 3241 UpdateCommandsForContentRestrictionState(); |
| 3242 } |
| 3243 |
| 3244 void Browser::WorkerCrashed() { |
| 3245 TabContents* tab_contents = GetSelectedTabContents(); |
| 3246 if (!tab_contents) |
| 3247 return; |
| 3248 tab_contents->AddInfoBar(new SimpleAlertInfoBarDelegate(tab_contents, NULL, |
| 3249 l10n_util::GetStringUTF16(IDS_WEBWORKER_CRASHED_PROMPT), true)); |
| 3250 } |
| 3251 |
| 3252 /////////////////////////////////////////////////////////////////////////////// |
| 3253 // Browser, TabContentsWrapperDelegate implementation: |
| 3254 |
| 3255 void Browser::URLStarredChanged(TabContentsWrapper* source, bool starred) { |
| 3256 if (source == GetSelectedTabContentsWrapper()) |
| 3257 window_->SetStarredState(starred); |
| 3258 } |
| 3259 |
| 3260 void Browser::OnDidGetApplicationInfo(TabContentsWrapper* source, |
3240 int32 page_id) { | 3261 int32 page_id) { |
3241 TabContentsWrapper* current_tab = GetSelectedTabContentsWrapper(); | 3262 if (GetSelectedTabContentsWrapper() != source) |
3242 if (current_tab->tab_contents() != tab_contents) | |
3243 return; | 3263 return; |
3244 | 3264 |
3245 NavigationEntry* entry = current_tab->controller().GetLastCommittedEntry(); | 3265 NavigationEntry* entry = source->controller().GetLastCommittedEntry(); |
3246 if (!entry || (entry->page_id() != page_id)) | 3266 if (!entry || (entry->page_id() != page_id)) |
3247 return; | 3267 return; |
3248 | 3268 |
3249 switch (pending_web_app_action_) { | 3269 switch (pending_web_app_action_) { |
3250 case CREATE_SHORTCUT: { | 3270 case CREATE_SHORTCUT: { |
3251 window()->ShowCreateWebAppShortcutsDialog(current_tab); | 3271 window()->ShowCreateWebAppShortcutsDialog(source); |
3252 break; | 3272 break; |
3253 } | 3273 } |
3254 case UPDATE_SHORTCUT: { | 3274 case UPDATE_SHORTCUT: { |
3255 web_app::UpdateShortcutForTabContents(current_tab); | 3275 web_app::UpdateShortcutForTabContents(source); |
3256 break; | 3276 break; |
3257 } | 3277 } |
3258 default: | 3278 default: |
3259 NOTREACHED(); | 3279 NOTREACHED(); |
3260 break; | 3280 break; |
3261 } | 3281 } |
3262 | 3282 |
3263 pending_web_app_action_ = NONE; | 3283 pending_web_app_action_ = NONE; |
3264 } | 3284 } |
3265 | 3285 |
3266 void Browser::OnInstallApplication(TabContents* source, | 3286 void Browser::OnInstallApplication(TabContentsWrapper* source, |
3267 const WebApplicationInfo& web_app) { | 3287 const WebApplicationInfo& web_app) { |
3268 ExtensionService* extensions_service = profile()->GetExtensionService(); | 3288 ExtensionService* extensions_service = profile()->GetExtensionService(); |
3269 if (!extensions_service) | 3289 if (!extensions_service) |
3270 return; | 3290 return; |
3271 | 3291 |
3272 scoped_refptr<CrxInstaller> installer( | 3292 scoped_refptr<CrxInstaller> installer( |
3273 new CrxInstaller(extensions_service, | 3293 new CrxInstaller(extensions_service, |
3274 extensions_service->show_extensions_prompts() ? | 3294 extensions_service->show_extensions_prompts() ? |
3275 new ExtensionInstallUI(profile()) : NULL)); | 3295 new ExtensionInstallUI(profile()) : NULL)); |
3276 installer->InstallWebApp(web_app); | 3296 installer->InstallWebApp(web_app); |
3277 } | 3297 } |
3278 | 3298 |
3279 void Browser::ContentRestrictionsChanged(TabContents* source) { | |
3280 UpdateCommandsForContentRestrictionState(); | |
3281 } | |
3282 | |
3283 void Browser::WorkerCrashed() { | |
3284 TabContents* tab_contents = GetSelectedTabContents(); | |
3285 if (!tab_contents) | |
3286 return; | |
3287 tab_contents->AddInfoBar(new SimpleAlertInfoBarDelegate(tab_contents, NULL, | |
3288 l10n_util::GetStringUTF16(IDS_WEBWORKER_CRASHED_PROMPT), true)); | |
3289 } | |
3290 | |
3291 /////////////////////////////////////////////////////////////////////////////// | |
3292 // Browser, TabContentsWrapperDelegate implementation: | |
3293 | |
3294 void Browser::URLStarredChanged(TabContentsWrapper* source, bool starred) { | |
3295 if (source == GetSelectedTabContentsWrapper()) | |
3296 window_->SetStarredState(starred); | |
3297 } | |
3298 | |
3299 /////////////////////////////////////////////////////////////////////////////// | 3299 /////////////////////////////////////////////////////////////////////////////// |
3300 // Browser, SearchEngineTabHelperDelegate implementation: | 3300 // Browser, SearchEngineTabHelperDelegate implementation: |
3301 | 3301 |
3302 void Browser::ConfirmSetDefaultSearchProvider( | 3302 void Browser::ConfirmSetDefaultSearchProvider( |
3303 TabContents* tab_contents, | 3303 TabContents* tab_contents, |
3304 TemplateURL* template_url, | 3304 TemplateURL* template_url, |
3305 TemplateURLModel* template_url_model) { | 3305 TemplateURLModel* template_url_model) { |
3306 window()->ConfirmSetDefaultSearchProvider(tab_contents, template_url, | 3306 window()->ConfirmSetDefaultSearchProvider(tab_contents, template_url, |
3307 template_url_model); | 3307 template_url_model); |
3308 } | 3308 } |
(...skipping 1105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4414 // The page transition below is only for the purpose of inserting the tab. | 4414 // The page transition below is only for the purpose of inserting the tab. |
4415 browser->AddTab(view_source_contents, PageTransition::LINK); | 4415 browser->AddTab(view_source_contents, PageTransition::LINK); |
4416 } | 4416 } |
4417 | 4417 |
4418 if (profile_->HasSessionService()) { | 4418 if (profile_->HasSessionService()) { |
4419 SessionService* session_service = profile_->GetSessionService(); | 4419 SessionService* session_service = profile_->GetSessionService(); |
4420 if (session_service) | 4420 if (session_service) |
4421 session_service->TabRestored(&view_source_contents->controller(), false); | 4421 session_service->TabRestored(&view_source_contents->controller(), false); |
4422 } | 4422 } |
4423 } | 4423 } |
OLD | NEW |