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, i.e. |
| 463 // extensions aren't supported. |
| 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 |