| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 // defined(OS_WIN) | 10 #endif // defined(OS_WIN) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 #include "chrome/browser/download/download_shelf.h" | 51 #include "chrome/browser/download/download_shelf.h" |
| 52 #include "chrome/browser/extensions/browser_extension_window_controller.h" | 52 #include "chrome/browser/extensions/browser_extension_window_controller.h" |
| 53 #include "chrome/browser/extensions/extension_prefs.h" | 53 #include "chrome/browser/extensions/extension_prefs.h" |
| 54 #include "chrome/browser/extensions/extension_service.h" | 54 #include "chrome/browser/extensions/extension_service.h" |
| 55 #include "chrome/browser/extensions/extension_system.h" | 55 #include "chrome/browser/extensions/extension_system.h" |
| 56 #include "chrome/browser/extensions/tab_helper.h" | 56 #include "chrome/browser/extensions/tab_helper.h" |
| 57 #include "chrome/browser/favicon/favicon_tab_helper.h" | 57 #include "chrome/browser/favicon/favicon_tab_helper.h" |
| 58 #include "chrome/browser/file_select_helper.h" | 58 #include "chrome/browser/file_select_helper.h" |
| 59 #include "chrome/browser/first_run/first_run.h" | 59 #include "chrome/browser/first_run/first_run.h" |
| 60 #include "chrome/browser/google/google_url_tracker.h" | 60 #include "chrome/browser/google/google_url_tracker.h" |
| 61 #include "chrome/browser/intents/register_intent_handler_infobar_delegate.h" | |
| 62 #include "chrome/browser/intents/web_intents_reporting.h" | |
| 63 #include "chrome/browser/intents/web_intents_util.h" | |
| 64 #include "chrome/browser/lifetime/application_lifetime.h" | 61 #include "chrome/browser/lifetime/application_lifetime.h" |
| 65 #include "chrome/browser/net/url_fixer_upper.h" | 62 #include "chrome/browser/net/url_fixer_upper.h" |
| 66 #include "chrome/browser/notifications/notification_ui_manager.h" | 63 #include "chrome/browser/notifications/notification_ui_manager.h" |
| 67 #include "chrome/browser/pepper_broker_infobar_delegate.h" | 64 #include "chrome/browser/pepper_broker_infobar_delegate.h" |
| 68 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 65 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| 69 #include "chrome/browser/prefs/pref_service.h" | 66 #include "chrome/browser/prefs/pref_service.h" |
| 70 #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" | 67 #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" |
| 71 #include "chrome/browser/profiles/profile.h" | 68 #include "chrome/browser/profiles/profile.h" |
| 72 #include "chrome/browser/profiles/profile_destroyer.h" | 69 #include "chrome/browser/profiles/profile_destroyer.h" |
| 73 #include "chrome/browser/profiles/profile_manager.h" | 70 #include "chrome/browser/profiles/profile_manager.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 #include "chrome/browser/ui/chrome_pages.h" | 106 #include "chrome/browser/ui/chrome_pages.h" |
| 110 #include "chrome/browser/ui/chrome_select_file_policy.h" | 107 #include "chrome/browser/ui/chrome_select_file_policy.h" |
| 111 #include "chrome/browser/ui/extensions/shell_window.h" | 108 #include "chrome/browser/ui/extensions/shell_window.h" |
| 112 #include "chrome/browser/ui/find_bar/find_bar.h" | 109 #include "chrome/browser/ui/find_bar/find_bar.h" |
| 113 #include "chrome/browser/ui/find_bar/find_bar_controller.h" | 110 #include "chrome/browser/ui/find_bar/find_bar_controller.h" |
| 114 #include "chrome/browser/ui/find_bar/find_tab_helper.h" | 111 #include "chrome/browser/ui/find_bar/find_tab_helper.h" |
| 115 #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" | 112 #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" |
| 116 #include "chrome/browser/ui/global_error/global_error.h" | 113 #include "chrome/browser/ui/global_error/global_error.h" |
| 117 #include "chrome/browser/ui/global_error/global_error_service.h" | 114 #include "chrome/browser/ui/global_error/global_error_service.h" |
| 118 #include "chrome/browser/ui/global_error/global_error_service_factory.h" | 115 #include "chrome/browser/ui/global_error/global_error_service_factory.h" |
| 119 #include "chrome/browser/ui/intents/web_intent_picker_controller.h" | |
| 120 #include "chrome/browser/ui/media_stream_infobar_delegate.h" | 116 #include "chrome/browser/ui/media_stream_infobar_delegate.h" |
| 121 #include "chrome/browser/ui/omnibox/location_bar.h" | 117 #include "chrome/browser/ui/omnibox/location_bar.h" |
| 122 #include "chrome/browser/ui/screen_capture_infobar_delegate.h" | 118 #include "chrome/browser/ui/screen_capture_infobar_delegate.h" |
| 123 #include "chrome/browser/ui/search/search.h" | 119 #include "chrome/browser/ui/search/search.h" |
| 124 #include "chrome/browser/ui/search/search_delegate.h" | 120 #include "chrome/browser/ui/search/search_delegate.h" |
| 125 #include "chrome/browser/ui/search/search_model.h" | 121 #include "chrome/browser/ui/search/search_model.h" |
| 126 #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" | 122 #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" |
| 127 #include "chrome/browser/ui/singleton_tabs.h" | 123 #include "chrome/browser/ui/singleton_tabs.h" |
| 128 #include "chrome/browser/ui/status_bubble.h" | 124 #include "chrome/browser/ui/status_bubble.h" |
| 129 #include "chrome/browser/ui/sync/browser_synced_window_delegate.h" | 125 #include "chrome/browser/ui/sync/browser_synced_window_delegate.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 #include "content/public/browser/navigation_entry.h" | 160 #include "content/public/browser/navigation_entry.h" |
| 165 #include "content/public/browser/notification_details.h" | 161 #include "content/public/browser/notification_details.h" |
| 166 #include "content/public/browser/notification_service.h" | 162 #include "content/public/browser/notification_service.h" |
| 167 #include "content/public/browser/plugin_service.h" | 163 #include "content/public/browser/plugin_service.h" |
| 168 #include "content/public/browser/render_process_host.h" | 164 #include "content/public/browser/render_process_host.h" |
| 169 #include "content/public/browser/render_view_host.h" | 165 #include "content/public/browser/render_view_host.h" |
| 170 #include "content/public/browser/site_instance.h" | 166 #include "content/public/browser/site_instance.h" |
| 171 #include "content/public/browser/user_metrics.h" | 167 #include "content/public/browser/user_metrics.h" |
| 172 #include "content/public/browser/web_contents.h" | 168 #include "content/public/browser/web_contents.h" |
| 173 #include "content/public/browser/web_contents_view.h" | 169 #include "content/public/browser/web_contents_view.h" |
| 174 #include "content/public/browser/web_intents_dispatcher.h" | |
| 175 #include "content/public/common/content_restriction.h" | 170 #include "content/public/common/content_restriction.h" |
| 176 #include "content/public/common/content_switches.h" | 171 #include "content/public/common/content_switches.h" |
| 177 #include "content/public/common/page_zoom.h" | 172 #include "content/public/common/page_zoom.h" |
| 178 #include "content/public/common/renderer_preferences.h" | 173 #include "content/public/common/renderer_preferences.h" |
| 179 #include "extensions/common/constants.h" | 174 #include "extensions/common/constants.h" |
| 180 #include "grit/chromium_strings.h" | 175 #include "grit/chromium_strings.h" |
| 181 #include "grit/generated_resources.h" | 176 #include "grit/generated_resources.h" |
| 182 #include "grit/locale_settings.h" | 177 #include "grit/locale_settings.h" |
| 183 #include "grit/theme_resources.h" | 178 #include "grit/theme_resources.h" |
| 184 #include "net/base/net_util.h" | 179 #include "net/base/net_util.h" |
| 185 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 180 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
| 186 #include "net/cookies/cookie_monster.h" | 181 #include "net/cookies/cookie_monster.h" |
| 187 #include "net/url_request/url_request_context.h" | 182 #include "net/url_request/url_request_context.h" |
| 188 #include "ui/base/l10n/l10n_util.h" | 183 #include "ui/base/l10n/l10n_util.h" |
| 189 #include "ui/base/window_open_disposition.h" | 184 #include "ui/base/window_open_disposition.h" |
| 190 #include "ui/gfx/point.h" | 185 #include "ui/gfx/point.h" |
| 191 #include "ui/shell_dialogs/selected_file_info.h" | 186 #include "ui/shell_dialogs/selected_file_info.h" |
| 192 #include "webkit/glue/web_intent_data.h" | |
| 193 #include "webkit/glue/web_intent_service_data.h" | |
| 194 #include "webkit/glue/webkit_glue.h" | 187 #include "webkit/glue/webkit_glue.h" |
| 195 #include "webkit/plugins/webplugininfo.h" | 188 #include "webkit/plugins/webplugininfo.h" |
| 196 | 189 |
| 197 #if defined(OS_WIN) | 190 #if defined(OS_WIN) |
| 198 #include "base/win/metro.h" | 191 #include "base/win/metro.h" |
| 199 #include "chrome/browser/autofill/autofill_ie_toolbar_import_win.h" | 192 #include "chrome/browser/autofill/autofill_ie_toolbar_import_win.h" |
| 200 #include "chrome/browser/shell_integration.h" | 193 #include "chrome/browser/shell_integration.h" |
| 201 #include "chrome/browser/ssl/ssl_error_info.h" | 194 #include "chrome/browser/ssl/ssl_error_info.h" |
| 202 #include "chrome/browser/task_manager/task_manager.h" | 195 #include "chrome/browser/task_manager/task_manager.h" |
| 203 #include "chrome/browser/ui/view_ids.h" | 196 #include "chrome/browser/ui/view_ids.h" |
| (...skipping 1385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1589 | 1582 |
| 1590 void Browser::RegisterProtocolHandler(WebContents* web_contents, | 1583 void Browser::RegisterProtocolHandler(WebContents* web_contents, |
| 1591 const std::string& protocol, | 1584 const std::string& protocol, |
| 1592 const GURL& url, | 1585 const GURL& url, |
| 1593 const string16& title, | 1586 const string16& title, |
| 1594 bool user_gesture) { | 1587 bool user_gesture) { |
| 1595 RegisterProtocolHandlerHelper( | 1588 RegisterProtocolHandlerHelper( |
| 1596 web_contents, protocol, url, title, user_gesture, window()); | 1589 web_contents, protocol, url, title, user_gesture, window()); |
| 1597 } | 1590 } |
| 1598 | 1591 |
| 1599 #if defined(ENABLE_WEB_INTENTS) | |
| 1600 void Browser::RegisterIntentHandler( | |
| 1601 WebContents* web_contents, | |
| 1602 const webkit_glue::WebIntentServiceData& data, | |
| 1603 bool user_gesture) { | |
| 1604 RegisterIntentHandlerInfoBarDelegate::Create(web_contents, data); | |
| 1605 } | |
| 1606 | |
| 1607 void Browser::WebIntentDispatch( | |
| 1608 WebContents* web_contents, | |
| 1609 content::WebIntentsDispatcher* intents_dispatcher) { | |
| 1610 if (!web_intents::IsWebIntentsEnabledForProfile(profile_)) { | |
| 1611 web_intents::RecordIntentsDispatchDisabled(); | |
| 1612 delete intents_dispatcher; | |
| 1613 return; | |
| 1614 } | |
| 1615 | |
| 1616 // Make sure the requester is coming from an extension/app page. | |
| 1617 // Internal dispatches set |web_contents| to NULL. | |
| 1618 #if !defined(OS_CHROMEOS) | |
| 1619 if (web_contents && | |
| 1620 !CommandLine::ForCurrentProcess()->HasSwitch( | |
| 1621 switches::kWebIntentsInvocationEnabled)) { | |
| 1622 ExtensionService* extensions_service = | |
| 1623 extensions::ExtensionSystem::Get(profile_)->extension_service(); | |
| 1624 if (!extensions_service || | |
| 1625 extensions_service->extensions()->GetExtensionOrAppByURL( | |
| 1626 ExtensionURLInfo(web_contents->GetURL())) == NULL) { | |
| 1627 web_intents::RecordIntentsDispatchDisabled(); | |
| 1628 intents_dispatcher->SendReply(webkit_glue::WebIntentReply( | |
| 1629 webkit_glue::WEB_INTENT_REPLY_FAILURE, | |
| 1630 ASCIIToUTF16("Intents may only be invoked from extensions/apps."))); | |
| 1631 return; | |
| 1632 } | |
| 1633 } | |
| 1634 #else | |
| 1635 // ChromeOS currently uses a couple specific intent actions. | |
| 1636 // TODO(gbillock): delete this when we find good alternatives for those uses. | |
| 1637 if (intents_dispatcher->GetIntent().action != | |
| 1638 ASCIIToUTF16(web_intents::kActionCrosEcho) && | |
| 1639 intents_dispatcher->GetIntent().action != | |
| 1640 ASCIIToUTF16(web_intents::kActionView)) { | |
| 1641 web_intents::RecordIntentsDispatchDisabled(); | |
| 1642 intents_dispatcher->SendReply(webkit_glue::WebIntentReply( | |
| 1643 webkit_glue::WEB_INTENT_REPLY_FAILURE, | |
| 1644 ASCIIToUTF16("Intents may only be invoked from extensions/apps."))); | |
| 1645 return; | |
| 1646 } | |
| 1647 #endif | |
| 1648 | |
| 1649 web_intents::RecordIntentDispatchRequested(); | |
| 1650 | |
| 1651 if (!web_contents) { | |
| 1652 // Intent is system-caused and the picker will show over the currently | |
| 1653 // active web contents. | |
| 1654 web_contents = tab_strip_model_->GetActiveWebContents(); | |
| 1655 } | |
| 1656 WebIntentPickerController* web_intent_picker_controller = | |
| 1657 WebIntentPickerController::FromWebContents(web_contents); | |
| 1658 web_intent_picker_controller->SetIntentsDispatcher(intents_dispatcher); | |
| 1659 web_intent_picker_controller->ShowDialog( | |
| 1660 intents_dispatcher->GetIntent().action, | |
| 1661 intents_dispatcher->GetIntent().type); | |
| 1662 } | |
| 1663 #endif | |
| 1664 | |
| 1665 void Browser::UpdatePreferredSize(WebContents* source, | 1592 void Browser::UpdatePreferredSize(WebContents* source, |
| 1666 const gfx::Size& pref_size) { | 1593 const gfx::Size& pref_size) { |
| 1667 window_->UpdatePreferredSize(source, pref_size); | 1594 window_->UpdatePreferredSize(source, pref_size); |
| 1668 } | 1595 } |
| 1669 | 1596 |
| 1670 void Browser::ResizeDueToAutoResize(WebContents* source, | 1597 void Browser::ResizeDueToAutoResize(WebContents* source, |
| 1671 const gfx::Size& new_size) { | 1598 const gfx::Size& new_size) { |
| 1672 window_->ResizeDueToAutoResize(source, new_size); | 1599 window_->ResizeDueToAutoResize(source, new_size); |
| 1673 } | 1600 } |
| 1674 | 1601 |
| (...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2344 if (contents && !allow_js_access) { | 2271 if (contents && !allow_js_access) { |
| 2345 contents->web_contents()->GetController().LoadURL( | 2272 contents->web_contents()->GetController().LoadURL( |
| 2346 target_url, | 2273 target_url, |
| 2347 content::Referrer(), | 2274 content::Referrer(), |
| 2348 content::PAGE_TRANSITION_LINK, | 2275 content::PAGE_TRANSITION_LINK, |
| 2349 std::string()); // No extra headers. | 2276 std::string()); // No extra headers. |
| 2350 } | 2277 } |
| 2351 | 2278 |
| 2352 return contents != NULL; | 2279 return contents != NULL; |
| 2353 } | 2280 } |
| OLD | NEW |