| Index: chrome/browser/extensions/extension_web_ui.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_web_ui.cc (revision 117871)
|
| +++ chrome/browser/extensions/extension_web_ui.cc (working copy)
|
| @@ -24,6 +24,7 @@
|
| #include "chrome/common/extensions/extension_icon_set.h"
|
| #include "chrome/common/extensions/extension_resource.h"
|
| #include "chrome/common/url_constants.h"
|
| +#include "content/browser/webui/web_ui.h"
|
| #include "content/public/browser/navigation_controller.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "content/public/common/page_transition_types.h"
|
| @@ -127,48 +128,53 @@
|
| const char ExtensionWebUI::kExtensionURLOverrides[] =
|
| "extensions.chrome_url_overrides";
|
|
|
| -ExtensionWebUI::ExtensionWebUI(WebContents* web_contents, const GURL& url)
|
| - : WebUI(web_contents, this),
|
| +ExtensionWebUI::ExtensionWebUI(WebUI* web_ui, const GURL& url)
|
| + : WebUIController(web_ui),
|
| url_(url) {
|
| Profile* profile =
|
| - Profile::FromBrowserContext(web_contents->GetBrowserContext());
|
| + Profile::FromBrowserContext(web_ui->web_contents()->GetBrowserContext());
|
| ExtensionService* service = profile->GetExtensionService();
|
| const Extension* extension =
|
| service->extensions()->GetExtensionOrAppByURL(ExtensionURLInfo(url));
|
| DCHECK(extension);
|
| // Only hide the url for internal pages (e.g. chrome-extension or packaged
|
| // component apps like bookmark manager.
|
| - should_hide_url_ = !extension->is_hosted_app();
|
| + bool should_hide_url = !extension->is_hosted_app();
|
|
|
| // The base class defaults to enabling WebUI bindings, but we don't need
|
| // those (this is also reflected in ChromeWebUIFactory::
|
| // UseWebUIBindingsForURL).
|
| - bindings_ = 0;
|
| + int bindings = 0;
|
|
|
| // Bind externalHost to Extension WebUI loaded in Chrome Frame.
|
| const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess();
|
| if (browser_command_line.HasSwitch(switches::kChromeFrame))
|
| - bindings_ |= content::BINDINGS_POLICY_EXTERNAL_HOST;
|
| + bindings |= content::BINDINGS_POLICY_EXTERNAL_HOST;
|
| // For chrome:// overrides, some of the defaults are a little different.
|
| - GURL effective_url = web_contents->GetURL();
|
| + GURL effective_url = web_ui->web_contents()->GetURL();
|
| if (effective_url.SchemeIs(chrome::kChromeUIScheme)) {
|
| if (effective_url.host() == chrome::kChromeUINewTabHost) {
|
| - focus_location_bar_by_default_ = true;
|
| + web_ui->FocusLocationBarByDefault();
|
| } else {
|
| // Current behavior of other chrome:// pages is to display the URL.
|
| - should_hide_url_ = false;
|
| + should_hide_url = false;
|
| }
|
| }
|
|
|
| + if (should_hide_url)
|
| + web_ui->HideURL();
|
| +
|
| + web_ui->SetBindings(bindings);
|
| +
|
| // Hack: A few things we specialize just for the bookmark manager.
|
| if (extension->id() == extension_misc::kBookmarkManagerId) {
|
| - TabContentsWrapper* tab =
|
| - TabContentsWrapper::GetCurrentWrapperForContents(web_contents);
|
| + TabContentsWrapper* tab = TabContentsWrapper::GetCurrentWrapperForContents(
|
| + web_ui->web_contents());
|
| DCHECK(tab);
|
| bookmark_manager_extension_event_router_.reset(
|
| new BookmarkManagerExtensionEventRouter(profile, tab));
|
|
|
| - link_transition_type_ = content::PAGE_TRANSITION_AUTO_BOOKMARK;
|
| + web_ui->SetLinkTransitionType(content::PAGE_TRANSITION_AUTO_BOOKMARK);
|
| }
|
| }
|
|
|
|
|