summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/automation_provider.cc
diff options
context:
space:
mode:
authordtu@chromium.org <dtu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-10 00:44:34 +0000
committerdtu@chromium.org <dtu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-10 00:44:34 +0000
commit60ae33e3b2d15497bb524c923adbcc8f8087494c (patch)
treeb090bc1ae33002485a8535bbd6bfbf87c9d3f7fd /chrome/browser/automation/automation_provider.cc
parentb10610b1984d46869ac2d8d86dc4f11cd8155bef (diff)
downloadchromium_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.cc26
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());
}