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) |