| Index: chrome/browser/ui/views/extensions/extension_dialog.cc
|
| diff --git a/chrome/browser/ui/views/extensions/extension_dialog.cc b/chrome/browser/ui/views/extensions/extension_dialog.cc
|
| index ba2c1c774a0a0a86dd1c0aad1192e9bab1941c9c..272612976c466d74dc7db3de50be14f8154a907a 100644
|
| --- a/chrome/browser/ui/views/extensions/extension_dialog.cc
|
| +++ b/chrome/browser/ui/views/extensions/extension_dialog.cc
|
| @@ -10,6 +10,7 @@
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/views/constrained_window_views.h"
|
| #include "chrome/browser/ui/views/extensions/extension_dialog_observer.h"
|
| +#include "chrome/browser/ui/views/extensions/extension_view_views.h"
|
| #include "content/public/browser/notification_details.h"
|
| #include "content/public/browser/notification_source.h"
|
| #include "content/public/browser/render_view_host.h"
|
| @@ -24,6 +25,14 @@
|
| using content::BrowserContext;
|
| using content::WebContents;
|
|
|
| +namespace {
|
| +
|
| +ExtensionViewViews* GetExtensionView(extensions::ExtensionViewHost* host) {
|
| + return static_cast<ExtensionViewViews*>(host->view());
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| ExtensionDialog::ExtensionDialog(extensions::ExtensionViewHost* host,
|
| ExtensionDialogObserver* observer)
|
| : host_(host),
|
| @@ -61,8 +70,9 @@ ExtensionDialog* ExtensionDialog::Show(
|
| return NULL;
|
| // Preferred size must be set before views::Widget::CreateWindowWithParent
|
| // is called because CreateWindowWithParent refers the result of CanResize().
|
| - host->view()->SetPreferredSize(gfx::Size(width, height));
|
| - host->view()->set_minimum_size(gfx::Size(min_width, min_height));
|
| + ExtensionViewViews* view = GetExtensionView(host);
|
| + view->SetPreferredSize(gfx::Size(width, height));
|
| + view->set_minimum_size(gfx::Size(min_width, min_height));
|
| host->SetAssociatedWebContents(web_contents);
|
|
|
| DCHECK(parent_window);
|
| @@ -72,9 +82,9 @@ ExtensionDialog* ExtensionDialog::Show(
|
|
|
| // Show a white background while the extension loads. This is prettier than
|
| // flashing a black unfilled window frame.
|
| - host->view()->set_background(
|
| + view->set_background(
|
| views::Background::CreateSolidBackground(0xFF, 0xFF, 0xFF));
|
| - host->view()->SetVisible(true);
|
| + view->SetVisible(true);
|
|
|
| // Ensure the DOM JavaScript can respond immediately to keyboard shortcuts.
|
| host->host_contents()->Focus();
|
| @@ -132,11 +142,11 @@ int ExtensionDialog::GetDialogButtons() const {
|
|
|
| bool ExtensionDialog::CanResize() const {
|
| // Can resize only if minimum contents size set.
|
| - return host_->view()->GetPreferredSize() != gfx::Size();
|
| + return GetExtensionView(host_.get())->GetPreferredSize() != gfx::Size();
|
| }
|
|
|
| void ExtensionDialog::SetMinimumContentsSize(int width, int height) {
|
| - host_->view()->SetPreferredSize(gfx::Size(width, height));
|
| + GetExtensionView(host_.get())->SetPreferredSize(gfx::Size(width, height));
|
| }
|
|
|
| ui::ModalType ExtensionDialog::GetModalType() const {
|
| @@ -162,15 +172,15 @@ void ExtensionDialog::DeleteDelegate() {
|
| }
|
|
|
| views::Widget* ExtensionDialog::GetWidget() {
|
| - return host_->view()->GetWidget();
|
| + return GetExtensionView(host_.get())->GetWidget();
|
| }
|
|
|
| const views::Widget* ExtensionDialog::GetWidget() const {
|
| - return host_->view()->GetWidget();
|
| + return GetExtensionView(host_.get())->GetWidget();
|
| }
|
|
|
| views::View* ExtensionDialog::GetContentsView() {
|
| - return host_->view();
|
| + return GetExtensionView(host_.get());
|
| }
|
|
|
| bool ExtensionDialog::UseNewStyleForThisDialog() const {
|
| @@ -187,7 +197,7 @@ void ExtensionDialog::Observe(int type,
|
| case chrome::NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING:
|
| // Avoid potential overdraw by removing the temporary background after
|
| // the extension finishes loading.
|
| - host_->view()->set_background(NULL);
|
| + GetExtensionView(host_.get())->set_background(NULL);
|
| // The render view is created during the LoadURL(), so we should
|
| // set the focus to the view if nobody else takes the focus.
|
| if (content::Details<extensions::ExtensionHost>(host()) == details)
|
|
|