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

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: rebase eh 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/instant_ui.h" 34 #include "chrome/browser/ui/webui/instant_ui.h"
34 #include "chrome/browser/ui/webui/media/media_internals_ui.h" 35 #include "chrome/browser/ui/webui/media/media_internals_ui.h"
35 #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h" 36 #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h"
36 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" 37 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
37 #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" 38 #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
38 #include "chrome/browser/ui/webui/options2/options_ui2.h" 39 #include "chrome/browser/ui/webui/options2/options_ui2.h"
39 #include "chrome/browser/ui/webui/plugins_ui.h" 40 #include "chrome/browser/ui/webui/plugins_ui.h"
40 #include "chrome/browser/ui/webui/policy_ui.h" 41 #include "chrome/browser/ui/webui/policy_ui.h"
41 #include "chrome/browser/ui/webui/predictors/predictors_ui.h" 42 #include "chrome/browser/ui/webui/predictors/predictors_ui.h"
42 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" 43 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h"
43 #include "chrome/browser/ui/webui/profiler_ui.h" 44 #include "chrome/browser/ui/webui/profiler_ui.h"
44 #include "chrome/browser/ui/webui/quota_internals_ui.h" 45 #include "chrome/browser/ui/webui/quota_internals_ui.h"
45 #include "chrome/browser/ui/webui/suggestions_internals/suggestions_internals_ui .h" 46 #include "chrome/browser/ui/webui/suggestions_internals/suggestions_internals_ui .h"
46 #include "chrome/browser/ui/webui/sync_internals_ui.h" 47 #include "chrome/browser/ui/webui/sync_internals_ui.h"
47 #include "chrome/browser/ui/webui/task_manager/task_manager_ui.h" 48 #include "chrome/browser/ui/webui/task_manager/task_manager_ui.h"
48 #include "chrome/browser/ui/webui/test_chrome_web_ui_controller_factory.h" 49 #include "chrome/browser/ui/webui/test_chrome_web_ui_controller_factory.h"
49 #include "chrome/browser/ui/webui/tracing_ui.h" 50 #include "chrome/browser/ui/webui/tracing_ui.h"
50 #include "chrome/browser/ui/webui/uber/uber_ui.h" 51 #include "chrome/browser/ui/webui/uber/uber_ui.h"
51 #include "chrome/common/chrome_switches.h" 52 #include "chrome/common/chrome_switches.h"
52 #include "chrome/common/extensions/extension_constants.h" 53 #include "chrome/common/extensions/extension_constants.h"
54 #include "chrome/common/extensions/extension_switch_utils.h"
53 #include "chrome/common/pref_names.h" 55 #include "chrome/common/pref_names.h"
54 #include "chrome/common/url_constants.h" 56 #include "chrome/common/url_constants.h"
55 #include "content/public/browser/web_contents.h" 57 #include "content/public/browser/web_contents.h"
56 #include "content/public/browser/web_ui.h" 58 #include "content/public/browser/web_ui.h"
57 #include "content/public/common/content_client.h" 59 #include "content/public/common/content_client.h"
58 #include "googleurl/src/gurl.h" 60 #include "googleurl/src/gurl.h"
59 #include "ui/web_dialogs/constrained_web_dialog_ui.h" 61 #include "ui/web_dialogs/constrained_web_dialog_ui.h"
60 #include "ui/web_dialogs/web_dialog_ui.h" 62 #include "ui/web_dialogs/web_dialog_ui.h"
61 63
62 #if defined(OS_CHROMEOS) 64 #if defined(OS_CHROMEOS)
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 // may be NULL (for example, if the URL refers to an non-existent extension). 101 // may be NULL (for example, if the URL refers to an non-existent extension).
100 typedef WebUIController* (*WebUIFactoryFunction)(WebUI* web_ui, 102 typedef WebUIController* (*WebUIFactoryFunction)(WebUI* web_ui,
101 const GURL& url); 103 const GURL& url);
102 104
103 // Template for defining WebUIFactoryFunction. 105 // Template for defining WebUIFactoryFunction.
104 template<class T> 106 template<class T>
105 WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) { 107 WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) {
106 return new T(web_ui); 108 return new T(web_ui);
107 } 109 }
108 110
109 // Special case for extensions. 111 // Special cases for extensions.
110 template<> 112 template<>
111 WebUIController* NewWebUI<ExtensionWebUI>(WebUI* web_ui, 113 WebUIController* NewWebUI<ExtensionWebUI>(WebUI* web_ui,
112 const GURL& url) { 114 const GURL& url) {
113 return new ExtensionWebUI(web_ui, url); 115 return new ExtensionWebUI(web_ui, url);
114 } 116 }
115 117
118 template<>
119 WebUIController* NewWebUI<ExtensionInfoUI>(WebUI* web_ui,
120 const GURL& url) {
121 return new ExtensionInfoUI(web_ui, url);
122 }
123
116 // Special case for older about: handlers. 124 // Special case for older about: handlers.
117 template<> 125 template<>
118 WebUIController* NewWebUI<AboutUI>(WebUI* web_ui, const GURL& url) { 126 WebUIController* NewWebUI<AboutUI>(WebUI* web_ui, const GURL& url) {
119 return new AboutUI(web_ui, url.host()); 127 return new AboutUI(web_ui, url.host());
120 } 128 }
121 129
122 // Only create ExtensionWebUI for URLs that are allowed extension bindings, 130 // Only create ExtensionWebUI for URLs that are allowed extension bindings,
123 // hosted by actual tabs. If there is no TabContents, it likely refers 131 // hosted by actual tabs. If there is no TabContents, it likely refers
124 // to another container type, like an extension background page. If there is 132 // to another container type, like an extension background page. If there is
125 // no WebUI (it's not accessible when calling GetWebUIType and related 133 // no WebUI (it's not accessible when calling GetWebUIType and related
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 #endif 348 #endif
341 ) { 349 ) {
342 return &NewWebUI<AboutUI>; 350 return &NewWebUI<AboutUI>;
343 } 351 }
344 352
345 if (url.host() == chrome::kChromeUIExtensionActivityHost && 353 if (url.host() == chrome::kChromeUIExtensionActivityHost &&
346 CommandLine::ForCurrentProcess()->HasSwitch( 354 CommandLine::ForCurrentProcess()->HasSwitch(
347 switches::kEnableExtensionActivityUI)) { 355 switches::kEnableExtensionActivityUI)) {
348 return &NewWebUI<ExtensionActivityUI>; 356 return &NewWebUI<ExtensionActivityUI>;
349 } 357 }
358 if (url.host() == chrome::kChromeUIExtensionInfoHost &&
359 extensions::switch_utils::AreScriptBadgesEnabled()) {
360 return &NewWebUI<ExtensionInfoUI>;
361 }
350 362
351 DLOG(WARNING) << "Unknown WebUI:" << url; 363 DLOG(WARNING) << "Unknown WebUI:" << url;
352 return NULL; 364 return NULL;
353 } 365 }
354 366
355 // When the test-type switch is set, return a TestType object, which should be a 367 // When the test-type switch is set, return a TestType object, which should be a
356 // subclass of Type. The logic is provided here in the traits class, rather than 368 // subclass of Type. The logic is provided here in the traits class, rather than
357 // in GetInstance() so that the choice is made only once, when the Singleton is 369 // in GetInstance() so that the choice is made only once, when the Singleton is
358 // first instantiated, rather than every time GetInstance() is called. 370 // first instantiated, rather than every time GetInstance() is called.
359 template<typename Type, typename TestType> 371 template<typename Type, typename TestType>
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 if (page_url.host() == chrome::kChromeUISettingsFrameHost) 518 if (page_url.host() == chrome::kChromeUISettingsFrameHost)
507 return options2::OptionsUI::GetFaviconResourceBytes(); 519 return options2::OptionsUI::GetFaviconResourceBytes();
508 520
509 // Android doesn't use the plugins pages. 521 // Android doesn't use the plugins pages.
510 if (page_url.host() == chrome::kChromeUIPluginsHost) 522 if (page_url.host() == chrome::kChromeUIPluginsHost)
511 return PluginsUI::GetFaviconResourceBytes(); 523 return PluginsUI::GetFaviconResourceBytes();
512 #endif 524 #endif
513 525
514 return NULL; 526 return NULL;
515 } 527 }
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