Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(282)

Side by Side Diff: chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc

Issue 10544195: Show an extension info bubble when a script badge is clicked. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: estade Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "base/command_line.h" 7 #include "base/command_line.h"
8 #include "chrome/browser/about_flags.h" 8 #include "chrome/browser/about_flags.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/extensions/extension_service.h" 10 #include "chrome/browser/extensions/extension_service.h"
11 #include "chrome/browser/extensions/extension_web_ui.h" 11 #include "chrome/browser/extensions/extension_web_ui.h"
12 #include "chrome/browser/history/history_types.h" 12 #include "chrome/browser/history/history_types.h"
13 #include "chrome/browser/prefs/pref_service.h" 13 #include "chrome/browser/prefs/pref_service.h"
14 #include "chrome/browser/printing/print_preview_tab_controller.h" 14 #include "chrome/browser/printing/print_preview_tab_controller.h"
15 #include "chrome/browser/profiles/profile.h" 15 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/profiles/profile_manager.h" 16 #include "chrome/browser/profiles/profile_manager.h"
17 #include "chrome/browser/ui/tab_contents/tab_contents.h" 17 #include "chrome/browser/ui/tab_contents/tab_contents.h"
18 #include "chrome/browser/ui/webui/about_ui.h" 18 #include "chrome/browser/ui/webui/about_ui.h"
19 #include "chrome/browser/ui/webui/bookmarks_ui.h" 19 #include "chrome/browser/ui/webui/bookmarks_ui.h"
20 #include "chrome/browser/ui/webui/crashes_ui.h" 20 #include "chrome/browser/ui/webui/crashes_ui.h"
21 #include "chrome/browser/ui/webui/devtools_ui.h" 21 #include "chrome/browser/ui/webui/devtools_ui.h"
22 #include "chrome/browser/ui/webui/downloads_ui.h" 22 #include "chrome/browser/ui/webui/downloads_ui.h"
23 #include "chrome/browser/ui/webui/extensions/extension_activity_ui.h" 23 #include "chrome/browser/ui/webui/extensions/extension_activity_ui.h"
24 #include "chrome/browser/ui/webui/extensions/extension_info_ui.h"
24 #include "chrome/browser/ui/webui/extensions/extensions_ui.h" 25 #include "chrome/browser/ui/webui/extensions/extensions_ui.h"
25 #include "chrome/browser/ui/webui/feedback_ui.h" 26 #include "chrome/browser/ui/webui/feedback_ui.h"
26 #include "chrome/browser/ui/webui/flags_ui.h" 27 #include "chrome/browser/ui/webui/flags_ui.h"
27 #include "chrome/browser/ui/webui/flash_ui.h" 28 #include "chrome/browser/ui/webui/flash_ui.h"
28 #include "chrome/browser/ui/webui/generic_handler.h" 29 #include "chrome/browser/ui/webui/generic_handler.h"
29 #include "chrome/browser/ui/webui/gpu_internals_ui.h" 30 #include "chrome/browser/ui/webui/gpu_internals_ui.h"
30 #include "chrome/browser/ui/webui/help/help_ui.h" 31 #include "chrome/browser/ui/webui/help/help_ui.h"
31 #include "chrome/browser/ui/webui/history_ui.h" 32 #include "chrome/browser/ui/webui/history_ui.h"
32 #include "chrome/browser/ui/webui/inspect_ui.h" 33 #include "chrome/browser/ui/webui/inspect_ui.h"
33 #include "chrome/browser/ui/webui/media/media_internals_ui.h" 34 #include "chrome/browser/ui/webui/media/media_internals_ui.h"
34 #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h" 35 #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h"
35 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" 36 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
36 #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" 37 #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
37 #include "chrome/browser/ui/webui/options2/options_ui2.h" 38 #include "chrome/browser/ui/webui/options2/options_ui2.h"
38 #include "chrome/browser/ui/webui/plugins_ui.h" 39 #include "chrome/browser/ui/webui/plugins_ui.h"
39 #include "chrome/browser/ui/webui/policy_ui.h" 40 #include "chrome/browser/ui/webui/policy_ui.h"
40 #include "chrome/browser/ui/webui/predictors/predictors_ui.h" 41 #include "chrome/browser/ui/webui/predictors/predictors_ui.h"
41 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" 42 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h"
42 #include "chrome/browser/ui/webui/profiler_ui.h" 43 #include "chrome/browser/ui/webui/profiler_ui.h"
43 #include "chrome/browser/ui/webui/quota_internals_ui.h" 44 #include "chrome/browser/ui/webui/quota_internals_ui.h"
44 #include "chrome/browser/ui/webui/suggestions_internals/suggestions_internals_ui .h" 45 #include "chrome/browser/ui/webui/suggestions_internals/suggestions_internals_ui .h"
45 #include "chrome/browser/ui/webui/sync_internals_ui.h" 46 #include "chrome/browser/ui/webui/sync_internals_ui.h"
46 #include "chrome/browser/ui/webui/task_manager/task_manager_ui.h" 47 #include "chrome/browser/ui/webui/task_manager/task_manager_ui.h"
47 #include "chrome/browser/ui/webui/test_chrome_web_ui_controller_factory.h" 48 #include "chrome/browser/ui/webui/test_chrome_web_ui_controller_factory.h"
48 #include "chrome/browser/ui/webui/tracing_ui.h" 49 #include "chrome/browser/ui/webui/tracing_ui.h"
49 #include "chrome/browser/ui/webui/uber/uber_ui.h" 50 #include "chrome/browser/ui/webui/uber/uber_ui.h"
50 #include "chrome/common/chrome_switches.h" 51 #include "chrome/common/chrome_switches.h"
51 #include "chrome/common/extensions/extension_constants.h" 52 #include "chrome/common/extensions/extension_constants.h"
53 #include "chrome/common/extensions/extension_switch_utils.h"
52 #include "chrome/common/pref_names.h" 54 #include "chrome/common/pref_names.h"
53 #include "chrome/common/url_constants.h" 55 #include "chrome/common/url_constants.h"
54 #include "content/public/browser/web_contents.h" 56 #include "content/public/browser/web_contents.h"
55 #include "content/public/browser/web_ui.h" 57 #include "content/public/browser/web_ui.h"
56 #include "content/public/common/content_client.h" 58 #include "content/public/common/content_client.h"
57 #include "googleurl/src/gurl.h" 59 #include "googleurl/src/gurl.h"
58 #include "ui/web_dialogs/constrained_web_dialog_ui.h" 60 #include "ui/web_dialogs/constrained_web_dialog_ui.h"
59 #include "ui/web_dialogs/web_dialog_ui.h" 61 #include "ui/web_dialogs/web_dialog_ui.h"
60 62
61 #if defined(OS_CHROMEOS) 63 #if defined(OS_CHROMEOS)
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 // may be NULL (for example, if the URL refers to an non-existent extension). 100 // may be NULL (for example, if the URL refers to an non-existent extension).
99 typedef WebUIController* (*WebUIFactoryFunction)(WebUI* web_ui, 101 typedef WebUIController* (*WebUIFactoryFunction)(WebUI* web_ui,
100 const GURL& url); 102 const GURL& url);
101 103
102 // Template for defining WebUIFactoryFunction. 104 // Template for defining WebUIFactoryFunction.
103 template<class T> 105 template<class T>
104 WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) { 106 WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) {
105 return new T(web_ui); 107 return new T(web_ui);
106 } 108 }
107 109
108 // Special case for extensions. 110 // Special cases for extensions.
109 template<> 111 template<>
110 WebUIController* NewWebUI<ExtensionWebUI>(WebUI* web_ui, 112 WebUIController* NewWebUI<ExtensionWebUI>(WebUI* web_ui,
111 const GURL& url) { 113 const GURL& url) {
112 return new ExtensionWebUI(web_ui, url); 114 return new ExtensionWebUI(web_ui, url);
113 } 115 }
114 116
117 template<>
118 WebUIController* NewWebUI<ExtensionInfoUI>(WebUI* web_ui,
119 const GURL& url) {
120 return new ExtensionInfoUI(web_ui, url);
121 }
122
115 // Special case for older about: handlers. 123 // Special case for older about: handlers.
116 template<> 124 template<>
117 WebUIController* NewWebUI<AboutUI>(WebUI* web_ui, const GURL& url) { 125 WebUIController* NewWebUI<AboutUI>(WebUI* web_ui, const GURL& url) {
118 return new AboutUI(web_ui, url.host()); 126 return new AboutUI(web_ui, url.host());
119 } 127 }
120 128
121 // Only create ExtensionWebUI for URLs that are allowed extension bindings, 129 // Only create ExtensionWebUI for URLs that are allowed extension bindings,
122 // hosted by actual tabs. If there is no TabContents, it likely refers 130 // hosted by actual tabs. If there is no TabContents, it likely refers
123 // to another container type, like an extension background page. If there is 131 // to another container type, like an extension background page. If there is
124 // no WebUI (it's not accessible when calling GetWebUIType and related 132 // no WebUI (it's not accessible when calling GetWebUIType and related
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 #endif 345 #endif
338 ) { 346 ) {
339 return &NewWebUI<AboutUI>; 347 return &NewWebUI<AboutUI>;
340 } 348 }
341 349
342 if (url.host() == chrome::kChromeUIExtensionActivityHost && 350 if (url.host() == chrome::kChromeUIExtensionActivityHost &&
343 CommandLine::ForCurrentProcess()->HasSwitch( 351 CommandLine::ForCurrentProcess()->HasSwitch(
344 switches::kEnableExtensionActivityUI)) { 352 switches::kEnableExtensionActivityUI)) {
345 return &NewWebUI<ExtensionActivityUI>; 353 return &NewWebUI<ExtensionActivityUI>;
346 } 354 }
355 if (url.host() == chrome::kChromeUIExtensionInfoHost &&
356 extensions::switch_utils::IsActionBoxEnabled()) {
Yoyo Zhou 2012/06/22 19:20:53 Since we stopped using this for all the new extens
357 return &NewWebUI<ExtensionInfoUI>;
358 }
347 359
348 DLOG(WARNING) << "Unknown WebUI:" << url; 360 DLOG(WARNING) << "Unknown WebUI:" << url;
349 return NULL; 361 return NULL;
350 } 362 }
351 363
352 // When the test-type switch is set, return a TestType object, which should be a 364 // When the test-type switch is set, return a TestType object, which should be a
353 // subclass of Type. The logic is provided here in the traits class, rather than 365 // subclass of Type. The logic is provided here in the traits class, rather than
354 // in GetInstance() so that the choice is made only once, when the Singleton is 366 // in GetInstance() so that the choice is made only once, when the Singleton is
355 // first instantiated, rather than every time GetInstance() is called. 367 // first instantiated, rather than every time GetInstance() is called.
356 template<typename Type, typename TestType> 368 template<typename Type, typename TestType>
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 if (page_url.host() == chrome::kChromeUISettingsFrameHost) 515 if (page_url.host() == chrome::kChromeUISettingsFrameHost)
504 return options2::OptionsUI::GetFaviconResourceBytes(); 516 return options2::OptionsUI::GetFaviconResourceBytes();
505 517
506 // Android doesn't use the plugins pages. 518 // Android doesn't use the plugins pages.
507 if (page_url.host() == chrome::kChromeUIPluginsHost) 519 if (page_url.host() == chrome::kChromeUIPluginsHost)
508 return PluginsUI::GetFaviconResourceBytes(); 520 return PluginsUI::GetFaviconResourceBytes();
509 #endif 521 #endif
510 522
511 return NULL; 523 return NULL;
512 } 524 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/location_bar/page_action_image_view.cc ('k') | chrome/browser/ui/webui/extensions/extension_info_ui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698