Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/webui/chrome_web_ui_controller_factory.h" | 5 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| 11 #include "base/location.h" | 11 #include "base/location.h" |
| 12 #include "base/message_loop/message_loop_proxy.h" | 12 #include "base/message_loop/message_loop_proxy.h" |
| 13 #include "base/prefs/pref_service.h" | 13 #include "base/prefs/pref_service.h" |
| 14 #include "chrome/browser/about_flags.h" | 14 #include "chrome/browser/about_flags.h" |
| 15 #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h" | 15 #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h" |
| 16 #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h" | 16 #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h" |
| 17 #include "chrome/browser/favicon/favicon_service.h" | 17 #include "chrome/browser/favicon/favicon_service.h" |
| 18 #include "chrome/browser/profiles/profile.h" | 18 #include "chrome/browser/profiles/profile.h" |
| 19 #include "chrome/browser/profiles/profile_manager.h" | 19 #include "chrome/browser/profiles/profile_manager.h" |
| 20 #include "chrome/browser/ui/webui/about_ui.h" | 20 #include "chrome/browser/ui/webui/about_ui.h" |
| 21 #include "chrome/browser/ui/webui/app_launcher_page_ui.h" | 21 #include "chrome/browser/ui/webui/app_launcher_page_ui.h" |
| 22 #include "chrome/browser/ui/webui/bookmarks_ui.h" | 22 #include "chrome/browser/ui/webui/bookmarks_ui.h" |
| 23 #include "chrome/browser/ui/webui/components_ui.h" | 23 #include "chrome/browser/ui/webui/components_ui.h" |
| 24 #include "chrome/browser/ui/webui/constrained_web_dialog_ui.h" | 24 #include "chrome/browser/ui/webui/constrained_web_dialog_ui.h" |
| 25 #include "chrome/browser/ui/webui/crashes_ui.h" | 25 #include "chrome/browser/ui/webui/crashes_ui.h" |
| 26 #include "chrome/browser/ui/webui/devtools_ui.h" | |
| 27 #include "chrome/browser/ui/webui/domain_reliability_internals_ui.h" | 26 #include "chrome/browser/ui/webui/domain_reliability_internals_ui.h" |
| 28 #include "chrome/browser/ui/webui/downloads_ui.h" | 27 #include "chrome/browser/ui/webui/downloads_ui.h" |
| 29 #include "chrome/browser/ui/webui/flags_ui.h" | 28 #include "chrome/browser/ui/webui/flags_ui.h" |
| 30 #include "chrome/browser/ui/webui/flash_ui.h" | 29 #include "chrome/browser/ui/webui/flash_ui.h" |
| 31 #include "chrome/browser/ui/webui/gcm_internals_ui.h" | 30 #include "chrome/browser/ui/webui/gcm_internals_ui.h" |
| 32 #include "chrome/browser/ui/webui/help/help_ui.h" | 31 #include "chrome/browser/ui/webui/help/help_ui.h" |
| 33 #include "chrome/browser/ui/webui/history_ui.h" | 32 #include "chrome/browser/ui/webui/history_ui.h" |
| 34 #include "chrome/browser/ui/webui/identity_internals_ui.h" | 33 #include "chrome/browser/ui/webui/identity_internals_ui.h" |
| 35 #include "chrome/browser/ui/webui/inspect_ui.h" | |
| 36 #include "chrome/browser/ui/webui/instant_ui.h" | 34 #include "chrome/browser/ui/webui/instant_ui.h" |
| 37 #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h" | 35 #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h" |
| 38 #include "chrome/browser/ui/webui/invalidations_ui.h" | 36 #include "chrome/browser/ui/webui/invalidations_ui.h" |
| 39 #include "chrome/browser/ui/webui/memory_internals/memory_internals_ui.h" | 37 #include "chrome/browser/ui/webui/memory_internals/memory_internals_ui.h" |
| 40 #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h" | 38 #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h" |
| 41 #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" | 39 #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" |
| 42 #include "chrome/browser/ui/webui/options/options_ui.h" | 40 #include "chrome/browser/ui/webui/options/options_ui.h" |
| 43 #include "chrome/browser/ui/webui/password_manager_internals/password_manager_in ternals_ui.h" | 41 #include "chrome/browser/ui/webui/password_manager_internals/password_manager_in ternals_ui.h" |
| 44 #include "chrome/browser/ui/webui/plugins_ui.h" | 42 #include "chrome/browser/ui/webui/plugins_ui.h" |
| 45 #include "chrome/browser/ui/webui/predictors/predictors_ui.h" | 43 #include "chrome/browser/ui/webui/predictors/predictors_ui.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 92 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" | 90 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" |
| 93 #include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h" | 91 #include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h" |
| 94 #include "chrome/browser/ui/webui/suggestions_internals/suggestions_internals_ui .h" | 92 #include "chrome/browser/ui/webui/suggestions_internals/suggestions_internals_ui .h" |
| 95 #include "chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_in ternals_ui.h" | 93 #include "chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_in ternals_ui.h" |
| 96 #include "chrome/browser/ui/webui/system_info_ui.h" | 94 #include "chrome/browser/ui/webui/system_info_ui.h" |
| 97 #include "chrome/browser/ui/webui/uber/uber_ui.h" | 95 #include "chrome/browser/ui/webui/uber/uber_ui.h" |
| 98 #endif | 96 #endif |
| 99 | 97 |
| 100 #if defined(OS_ANDROID) || defined(OS_IOS) | 98 #if defined(OS_ANDROID) || defined(OS_IOS) |
| 101 #include "chrome/browser/ui/webui/net_export_ui.h" | 99 #include "chrome/browser/ui/webui/net_export_ui.h" |
| 100 #else | |
| 101 #include "chrome/browser/ui/webui/devtools_ui.h" | |
| 102 #include "chrome/browser/ui/webui/inspect_ui.h" | |
| 102 #endif | 103 #endif |
| 103 | 104 |
| 104 #if defined(OS_CHROMEOS) | 105 #if defined(OS_CHROMEOS) |
| 105 #include "chrome/browser/ui/webui/chromeos/bluetooth_pairing_ui.h" | 106 #include "chrome/browser/ui/webui/chromeos/bluetooth_pairing_ui.h" |
| 106 #include "chrome/browser/ui/webui/chromeos/certificate_manager_dialog_ui.h" | 107 #include "chrome/browser/ui/webui/chromeos/certificate_manager_dialog_ui.h" |
| 107 #include "chrome/browser/ui/webui/chromeos/charger_replacement_ui.h" | 108 #include "chrome/browser/ui/webui/chromeos/charger_replacement_ui.h" |
| 108 #include "chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.h" | 109 #include "chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.h" |
| 109 #include "chrome/browser/ui/webui/chromeos/cryptohome_ui.h" | 110 #include "chrome/browser/ui/webui/chromeos/cryptohome_ui.h" |
| 110 #include "chrome/browser/ui/webui/chromeos/drive_internals_ui.h" | 111 #include "chrome/browser/ui/webui/chromeos/drive_internals_ui.h" |
| 111 #include "chrome/browser/ui/webui/chromeos/first_run/first_run_ui.h" | 112 #include "chrome/browser/ui/webui/chromeos/first_run/first_run_ui.h" |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 347 #if !defined(OS_ANDROID) | 348 #if !defined(OS_ANDROID) |
| 348 // AppLauncherPage is not needed on Android. | 349 // AppLauncherPage is not needed on Android. |
| 349 if (url.host() == chrome::kChromeUIAppLauncherPageHost && | 350 if (url.host() == chrome::kChromeUIAppLauncherPageHost && |
| 350 profile && extensions::ExtensionSystem::Get(profile)-> | 351 profile && extensions::ExtensionSystem::Get(profile)-> |
| 351 extension_service()) { | 352 extension_service()) { |
| 352 return &NewWebUI<AppLauncherPageUI>; | 353 return &NewWebUI<AppLauncherPageUI>; |
| 353 } | 354 } |
| 354 // Bookmarks are part of NTP on Android. | 355 // Bookmarks are part of NTP on Android. |
| 355 if (url.host() == chrome::kChromeUIBookmarksHost) | 356 if (url.host() == chrome::kChromeUIBookmarksHost) |
| 356 return &NewWebUI<BookmarksUI>; | 357 return &NewWebUI<BookmarksUI>; |
| 357 if (url.SchemeIs(content::kChromeDevToolsScheme)) | |
| 358 return &NewWebUI<DevToolsUI>; | |
| 359 // Downloads list on Android uses the built-in download manager. | 358 // Downloads list on Android uses the built-in download manager. |
| 360 if (url.host() == chrome::kChromeUIDownloadsHost) | 359 if (url.host() == chrome::kChromeUIDownloadsHost) |
| 361 return &NewWebUI<DownloadsUI>; | 360 return &NewWebUI<DownloadsUI>; |
| 362 // Flash is not available on android. | 361 // Flash is not available on android. |
| 363 if (url.host() == chrome::kChromeUIFlashHost) | 362 if (url.host() == chrome::kChromeUIFlashHost) |
| 364 return &NewWebUI<FlashUI>; | 363 return &NewWebUI<FlashUI>; |
| 365 if (url.host() == chrome::kChromeUIGCMInternalsHost) | 364 if (url.host() == chrome::kChromeUIGCMInternalsHost) |
| 366 return &NewWebUI<GCMInternalsUI>; | 365 return &NewWebUI<GCMInternalsUI>; |
| 367 // Help is implemented with native UI elements on Android. | 366 // Help is implemented with native UI elements on Android. |
| 368 if (url.host() == chrome::kChromeUIHelpFrameHost) | 367 if (url.host() == chrome::kChromeUIHelpFrameHost) |
| 369 return &NewWebUI<HelpUI>; | 368 return &NewWebUI<HelpUI>; |
| 370 // Identity API is not available on Android. | 369 // Identity API is not available on Android. |
| 371 if (url.host() == chrome::kChromeUIIdentityInternalsHost) | 370 if (url.host() == chrome::kChromeUIIdentityInternalsHost) |
| 372 return &NewWebUI<IdentityInternalsUI>; | 371 return &NewWebUI<IdentityInternalsUI>; |
| 373 // chrome://inspect isn't supported on Android. Page debugging is handled by a | |
| 374 // remote devtools on the host machine, and other elements (Shared Workers, | |
| 375 // extensions, etc) aren't supported. | |
| 376 if (url.host() == chrome::kChromeUIInspectHost) | |
| 377 return &NewWebUI<InspectUI>; | |
| 378 // Android does not support plugins for now. | 372 // Android does not support plugins for now. |
| 379 if (url.host() == chrome::kChromeUIPluginsHost) | 373 if (url.host() == chrome::kChromeUIPluginsHost) |
| 380 return &NewWebUI<PluginsUI>; | 374 return &NewWebUI<PluginsUI>; |
| 381 if (url.host() == chrome::kChromeUIQuotaInternalsHost) | 375 if (url.host() == chrome::kChromeUIQuotaInternalsHost) |
| 382 return &NewWebUI<QuotaInternalsUI>; | 376 return &NewWebUI<QuotaInternalsUI>; |
| 383 // Settings are implemented with native UI elements on Android. | 377 // Settings are implemented with native UI elements on Android. |
| 384 // Handle chrome://settings if settings in a window and about in settings | 378 // Handle chrome://settings if settings in a window and about in settings |
| 385 // are enabled. | 379 // are enabled. |
| 386 if (url.host() == chrome::kChromeUISettingsFrameHost || | 380 if (url.host() == chrome::kChromeUISettingsFrameHost || |
| 387 (url.host() == chrome::kChromeUISettingsHost && | 381 (url.host() == chrome::kChromeUISettingsHost && |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 455 if (url.host() == chrome::kChromeUISlowTraceHost) | 449 if (url.host() == chrome::kChromeUISlowTraceHost) |
| 456 return &NewWebUI<chromeos::SlowTraceController>; | 450 return &NewWebUI<chromeos::SlowTraceController>; |
| 457 if (url.host() == chrome::kChromeUINetworkHost) | 451 if (url.host() == chrome::kChromeUINetworkHost) |
| 458 return &NewWebUI<chromeos::NetworkUI>; | 452 return &NewWebUI<chromeos::NetworkUI>; |
| 459 if (url.host() == chrome::kChromeUIPowerHost) | 453 if (url.host() == chrome::kChromeUIPowerHost) |
| 460 return &NewWebUI<chromeos::PowerUI>; | 454 return &NewWebUI<chromeos::PowerUI>; |
| 461 #endif // defined(OS_CHROMEOS) | 455 #endif // defined(OS_CHROMEOS) |
| 462 #if !defined(OS_ANDROID) && !defined(OS_IOS) | 456 #if !defined(OS_ANDROID) && !defined(OS_IOS) |
| 463 if (url.host() == chrome::kChromeUIChromeSigninHost) | 457 if (url.host() == chrome::kChromeUIChromeSigninHost) |
| 464 return &NewWebUI<InlineLoginUI>; | 458 return &NewWebUI<InlineLoginUI>; |
| 459 if (url.SchemeIs(content::kChromeDevToolsScheme)) | |
| 460 return &NewWebUI<DevToolsUI>; | |
| 461 // chrome://inspect isn't supported on Android nor iOS. Page debugging is | |
| 462 // handled by a remote devtools on the host machine, and other elements | |
| 463 // (Shared Workers, extensions, etc) aren't supported. | |
|
dgozman
2014/10/28 05:27:07
This is not true: we support remote Shared/Service
Lei Zhang
2014/10/28 05:52:43
I simply cut + pasted the comment from above, but
| |
| 464 if (url.host() == chrome::kChromeUIInspectHost) | |
| 465 return &NewWebUI<InspectUI>; | |
| 465 #endif | 466 #endif |
| 466 | 467 |
| 467 /**************************************************************************** | 468 /**************************************************************************** |
| 468 * Other #defines and special logics. | 469 * Other #defines and special logics. |
| 469 ***************************************************************************/ | 470 ***************************************************************************/ |
| 470 #if defined(ENABLE_CONFIGURATION_POLICY) | 471 #if defined(ENABLE_CONFIGURATION_POLICY) |
| 471 if (url.host() == chrome::kChromeUIPolicyHost) | 472 if (url.host() == chrome::kChromeUIPolicyHost) |
| 472 return &NewWebUI<PolicyUI>; | 473 return &NewWebUI<PolicyUI>; |
| 473 | 474 |
| 474 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) | 475 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 720 #endif | 721 #endif |
| 721 | 722 |
| 722 // Android doesn't use the plugins pages. | 723 // Android doesn't use the plugins pages. |
| 723 if (page_url.host() == chrome::kChromeUIPluginsHost) | 724 if (page_url.host() == chrome::kChromeUIPluginsHost) |
| 724 return PluginsUI::GetFaviconResourceBytes(scale_factor); | 725 return PluginsUI::GetFaviconResourceBytes(scale_factor); |
| 725 | 726 |
| 726 #endif | 727 #endif |
| 727 | 728 |
| 728 return NULL; | 729 return NULL; |
| 729 } | 730 } |
| OLD | NEW |