[cros] Postpone call to GetNativeWindow() in NetworkDropdown till it's really needed.

Workaround for a crash.

BUG=106485
TEST=VMTests, no seg fault.


Review URL: http://codereview.chromium.org/8834011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113394 0039d316-1c4b-4281-b951-d872f2087c98
parent c3fd8fe6
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "base/values.h" #include "base/values.h"
#include "chrome/browser/chromeos/cros/cros_library.h" #include "chrome/browser/chromeos/cros/cros_library.h"
#include "chrome/browser/chromeos/login/base_login_display_host.h"
#include "chrome/browser/chromeos/login/proxy_settings_dialog.h" #include "chrome/browser/chromeos/login/proxy_settings_dialog.h"
#include "chrome/browser/ui/webui/web_ui_util.h" #include "chrome/browser/ui/webui/web_ui_util.h"
#include "content/browser/webui/web_ui.h" #include "content/browser/webui/web_ui.h"
...@@ -93,10 +94,8 @@ base::ListValue* NetworkMenuWebUI::ConvertMenuModel(ui::MenuModel* model) { ...@@ -93,10 +94,8 @@ base::ListValue* NetworkMenuWebUI::ConvertMenuModel(ui::MenuModel* model) {
// NetworkDropdown ------------------------------------------------------------- // NetworkDropdown -------------------------------------------------------------
NetworkDropdown::NetworkDropdown(WebUI* web_ui, NetworkDropdown::NetworkDropdown(WebUI* web_ui,
gfx::NativeWindow parent_window,
bool oobe) bool oobe)
: parent_window_(parent_window), : web_ui_(web_ui),
web_ui_(web_ui),
oobe_(oobe) { oobe_(oobe) {
network_menu_.reset(new NetworkMenuWebUI(this, web_ui)); network_menu_.reset(new NetworkMenuWebUI(this, web_ui));
network_icon_.reset( network_icon_.reset(
...@@ -123,7 +122,7 @@ views::MenuButton* NetworkDropdown::GetMenuButton() { ...@@ -123,7 +122,7 @@ views::MenuButton* NetworkDropdown::GetMenuButton() {
} }
gfx::NativeWindow NetworkDropdown::GetNativeWindow() const { gfx::NativeWindow NetworkDropdown::GetNativeWindow() const {
return parent_window_; return BaseLoginDisplayHost::default_host()->GetNativeWindow();
} }
void NetworkDropdown::OpenButtonOptions() { void NetworkDropdown::OpenButtonOptions() {
......
...@@ -22,7 +22,7 @@ class NetworkDropdown : public NetworkMenu::Delegate, ...@@ -22,7 +22,7 @@ class NetworkDropdown : public NetworkMenu::Delegate,
NetworkLibrary::NetworkManagerObserver, NetworkLibrary::NetworkManagerObserver,
public LoginHtmlDialog::Delegate { public LoginHtmlDialog::Delegate {
public: public:
NetworkDropdown(WebUI* web_ui, gfx::NativeWindow parent_window, bool oobe); NetworkDropdown(WebUI* web_ui, bool oobe);
virtual ~NetworkDropdown(); virtual ~NetworkDropdown();
// Sets last active network type. Used to show correct disconnected icon. // Sets last active network type. Used to show correct disconnected icon.
...@@ -55,8 +55,6 @@ class NetworkDropdown : public NetworkMenu::Delegate, ...@@ -55,8 +55,6 @@ class NetworkDropdown : public NetworkMenu::Delegate,
private: private:
void SetNetworkIconAndText(); void SetNetworkIconAndText();
gfx::NativeWindow parent_window_;
// The Network menu. // The Network menu.
scoped_ptr<NetworkMenuWebUI> network_menu_; scoped_ptr<NetworkMenuWebUI> network_menu_;
// The Network menu icon. // The Network menu icon.
......
...@@ -81,7 +81,7 @@ void NetworkDropdownHandler::HandleNetworkDropdownShow( ...@@ -81,7 +81,7 @@ void NetworkDropdownHandler::HandleNetworkDropdownShow(
if (!args->GetDouble(2, &last_network_type)) if (!args->GetDouble(2, &last_network_type))
NOTREACHED(); NOTREACHED();
dropdown_.reset(new NetworkDropdown(web_ui_, GetNativeWindow(), oobe)); dropdown_.reset(new NetworkDropdown(web_ui_, oobe));
if (last_network_type >= 0) { if (last_network_type >= 0) {
dropdown_->SetLastNetworkType( dropdown_->SetLastNetworkType(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment