diff options
author | dtu@chromium.org <dtu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-10 00:44:34 +0000 |
---|---|---|
committer | dtu@chromium.org <dtu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-10 00:44:34 +0000 |
commit | 60ae33e3b2d15497bb524c923adbcc8f8087494c (patch) | |
tree | b090bc1ae33002485a8535bbd6bfbf87c9d3f7fd /chrome/browser/automation/automation_provider.cc | |
parent | b10610b1984d46869ac2d8d86dc4f11cd8155bef (diff) | |
download | chromium_src-60ae33e3b2d15497bb524c923adbcc8f8087494c.zip chromium_src-60ae33e3b2d15497bb524c923adbcc8f8087494c.tar.gz chromium_src-60ae33e3b2d15497bb524c923adbcc8f8087494c.tar.bz2 |
Add network testing automation hooks GetNetworkInfo() and ConnectToWifiNetwork().
Make all tests wait for network library to be ready. This is a prerequisite for the above hooks and also will make more PyAuto CONTINUOUS suite tests pass.
BUG=chromium-os:12727,chromium-os:12851
TEST=Run PyAuto test chromeos_basic.py
Review URL: http://codereview.chromium.org/6639014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77567 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation/automation_provider.cc')
-rw-r--r-- | chrome/browser/automation/automation_provider.cc | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc index 86fae50..730e484 100644 --- a/chrome/browser/automation/automation_provider.cc +++ b/chrome/browser/automation/automation_provider.cc @@ -112,7 +112,8 @@ AutomationProvider::AutomationProvider(Profile* profile) reply_message_(NULL), reinitialize_on_channel_error_(false), is_connected_(false), - initial_loads_complete_(false) { + initial_tab_loads_complete_(false), + network_library_initialized_(true) { TRACE_EVENT_BEGIN("AutomationProvider::AutomationProvider", 0, ""); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); @@ -176,6 +177,13 @@ bool AutomationProvider::InitializeChannel(const std::string& channel_id) { true, g_browser_process->shutdown_event())); channel_->AddFilter(automation_resource_message_filter_); +#if defined(OS_CHROMEOS) + // Wait for the network manager to initialize. + // The observer will delete itself when done. + network_library_initialized_ = false; + new NetworkManagerInitObserver(this); +#endif + TRACE_EVENT_END("AutomationProvider::InitializeChannel", 0, ""); return true; @@ -188,14 +196,20 @@ std::string AutomationProvider::GetProtocolVersion() { void AutomationProvider::SetExpectedTabCount(size_t expected_tabs) { if (expected_tabs == 0) - OnInitialLoadsComplete(); + OnInitialTabLoadsComplete(); else initial_load_observer_.reset(new InitialLoadObserver(expected_tabs, this)); } -void AutomationProvider::OnInitialLoadsComplete() { - initial_loads_complete_ = true; - if (is_connected_) +void AutomationProvider::OnInitialTabLoadsComplete() { + initial_tab_loads_complete_ = true; + if (is_connected_ && network_library_initialized_) + Send(new AutomationMsg_InitialLoadsComplete()); +} + +void AutomationProvider::OnNetworkLibraryInit() { + network_library_initialized_ = true; + if (is_connected_ && initial_tab_loads_complete_) Send(new AutomationMsg_InitialLoadsComplete()); } @@ -320,7 +334,7 @@ void AutomationProvider::OnChannelConnected(int pid) { // Send a hello message with our current automation protocol version. channel_->Send(new AutomationMsg_Hello(GetProtocolVersion())); - if (initial_loads_complete_) + if (initial_tab_loads_complete_ && network_library_initialized_) Send(new AutomationMsg_InitialLoadsComplete()); } |