[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 @@
#include "base/values.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/ui/webui/web_ui_util.h"
#include "content/browser/webui/web_ui.h"
......@@ -93,10 +94,8 @@ base::ListValue* NetworkMenuWebUI::ConvertMenuModel(ui::MenuModel* model) {
// NetworkDropdown -------------------------------------------------------------
NetworkDropdown::NetworkDropdown(WebUI* web_ui,
gfx::NativeWindow parent_window,
bool oobe)
: parent_window_(parent_window),
web_ui_(web_ui),
: web_ui_(web_ui),
oobe_(oobe) {
network_menu_.reset(new NetworkMenuWebUI(this, web_ui));
network_icon_.reset(
......@@ -123,7 +122,7 @@ views::MenuButton* NetworkDropdown::GetMenuButton() {
}
gfx::NativeWindow NetworkDropdown::GetNativeWindow() const {
return parent_window_;
return BaseLoginDisplayHost::default_host()->GetNativeWindow();
}
void NetworkDropdown::OpenButtonOptions() {
......
......@@ -22,7 +22,7 @@ class NetworkDropdown : public NetworkMenu::Delegate,
NetworkLibrary::NetworkManagerObserver,
public LoginHtmlDialog::Delegate {
public:
NetworkDropdown(WebUI* web_ui, gfx::NativeWindow parent_window, bool oobe);
NetworkDropdown(WebUI* web_ui, bool oobe);
virtual ~NetworkDropdown();
// Sets last active network type. Used to show correct disconnected icon.
......@@ -55,8 +55,6 @@ class NetworkDropdown : public NetworkMenu::Delegate,
private:
void SetNetworkIconAndText();
gfx::NativeWindow parent_window_;
// The Network menu.
scoped_ptr<NetworkMenuWebUI> network_menu_;
// The Network menu icon.
......
......@@ -81,7 +81,7 @@ void NetworkDropdownHandler::HandleNetworkDropdownShow(
if (!args->GetDouble(2, &last_network_type))
NOTREACHED();
dropdown_.reset(new NetworkDropdown(web_ui_, GetNativeWindow(), oobe));
dropdown_.reset(new NetworkDropdown(web_ui_, oobe));
if (last_network_type >= 0) {
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