diff options
author | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-16 00:35:23 +0000 |
---|---|---|
committer | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-16 00:35:23 +0000 |
commit | 5ed096ed908b8a1d0e93adfb0a527502f5ef5122 (patch) | |
tree | bb3a9eeed26c10148d3c649a36088e4be20635fc | |
parent | df13a7e7e3231bffa81a1e94c4e91d3c69bb3389 (diff) | |
download | chromium_src-5ed096ed908b8a1d0e93adfb0a527502f5ef5122.zip chromium_src-5ed096ed908b8a1d0e93adfb0a527502f5ef5122.tar.gz chromium_src-5ed096ed908b8a1d0e93adfb0a527502f5ef5122.tar.bz2 |
Revert 49862 - Measure loading time of several tabs.
This is a new set of ui tests to load several tabs, and look at how long it takes for a subset to finish loading.
BUG=44129
TEST=none
Review URL: http://codereview.chromium.org/2559001
TBR=pathorn@chromium.org
Review URL: http://codereview.chromium.org/2813010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49870 0039d316-1c4b-4281-b951-d872f2087c98
4 files changed, 5 insertions, 93 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc index 0e224f8..21a7614 100644 --- a/chrome/browser/automation/automation_provider.cc +++ b/chrome/browser/automation/automation_provider.cc @@ -2077,22 +2077,6 @@ void AutomationProvider::OmniboxAcceptInput(Browser* browser, browser->window()->GetLocationBar()->AcceptInput(); } -// Sample json input: { "command": "GetInitialLoadTimes" } -// Refer to InitialLoadObserver::GetTimingInformation() for sample output. -void AutomationProvider::GetInitialLoadTimes( - Browser*, - DictionaryValue*, - IPC::Message* reply_message) { - scoped_ptr<DictionaryValue> return_value( - initial_load_observer_->GetTimingInformation()); - - std::string json_return; - base::JSONWriter::Write(return_value.get(), false, &json_return); - AutomationMsg_SendJSONRequest::WriteReplyParams( - reply_message, json_return, true); - Send(reply_message); -} - // Sample json input: { "command": "GetPluginsInfo" } // Refer chrome/test/pyautolib/plugins_info.py for sample json output. void AutomationProvider::GetPluginsInfo(Browser* browser, @@ -2255,8 +2239,6 @@ void AutomationProvider::SendJSONRequest(int handle, handler_map["WaitForAllDownloadsToComplete"] = &AutomationProvider::WaitForDownloadsToComplete; - handler_map["GetInitialLoadTimes"] = &AutomationProvider::GetInitialLoadTimes; - if (error_string.empty()) { if (handler_map.find(std::string(command)) != handler_map.end()) { (this->*handler_map[command])(browser, dict_value, reply_message); diff --git a/chrome/browser/automation/automation_provider.h b/chrome/browser/automation/automation_provider.h index b644dd4..bd37a4b 100644 --- a/chrome/browser/automation/automation_provider.h +++ b/chrome/browser/automation/automation_provider.h @@ -50,7 +50,6 @@ class ExtensionTestResultNotificationObserver; class ExternalTabContainer; class LoginHandler; class MetricEventDurationObserver; -class InitialLoadObserver; class NavigationControllerRestoredObserver; struct AutocompleteMatchData; @@ -377,15 +376,6 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>, DictionaryValue* args, IPC::Message* reply_message); - // Return load times of initial tabs. - // Uses the JSON interface for input/output. - // Only includes tabs from command line arguments or session restore. - // See declaration of InitialLoadObserver in automation_provider_observers.h - // for example response. - void GetInitialLoadTimes(Browser* browser, - DictionaryValue* args, - IPC::Message* reply_message); - // Get info about plugins. // Uses the JSON interface for input/output. void GetPluginsInfo(Browser* browser, @@ -780,7 +770,7 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>, typedef std::map<int, ExtensionPortContainer*> PortContainerMap; scoped_ptr<IPC::ChannelProxy> channel_; - scoped_ptr<InitialLoadObserver> initial_load_observer_; + scoped_ptr<NotificationObserver> initial_load_observer_; scoped_ptr<NotificationObserver> new_tab_ui_load_observer_; scoped_ptr<NotificationObserver> find_in_page_observer_; scoped_ptr<NotificationObserver> dom_operation_observer_; diff --git a/chrome/browser/automation/automation_provider_observers.cc b/chrome/browser/automation/automation_provider_observers.cc index 8b09fe5..cdb5de8 100644 --- a/chrome/browser/automation/automation_provider_observers.cc +++ b/chrome/browser/automation/automation_provider_observers.cc @@ -28,31 +28,10 @@ #include "chrome/browser/chromeos/login/authentication_notification_details.h" #endif -// Holds onto start and stop timestamps for a particular tab -class InitialLoadObserver::TabTime { - public: - explicit TabTime(base::TimeTicks started) - : load_start_time_(started) { - } - void set_stop_time(base::TimeTicks stopped) { - load_stop_time_ = stopped; - } - base::TimeTicks stop_time() const { - return load_stop_time_; - } - base::TimeTicks start_time() const { - return load_start_time_; - } - private: - base::TimeTicks load_start_time_; - base::TimeTicks load_stop_time_; -}; - InitialLoadObserver::InitialLoadObserver(size_t tab_count, AutomationProvider* automation) : automation_(automation), - outstanding_tab_count_(tab_count), - init_time_(base::TimeTicks::Now()) { + outstanding_tab_count_(tab_count) { if (outstanding_tab_count_ > 0) { registrar_.Add(this, NotificationType::LOAD_START, NotificationService::AllSources()); @@ -69,16 +48,11 @@ void InitialLoadObserver::Observe(NotificationType type, const NotificationDetails& details) { if (type == NotificationType::LOAD_START) { if (outstanding_tab_count_ > loading_tabs_.size()) - loading_tabs_.insert(TabTimeMap::value_type( - source.map_key(), - TabTime(base::TimeTicks::Now()))); + loading_tabs_.insert(source.map_key()); } else if (type == NotificationType::LOAD_STOP) { if (outstanding_tab_count_ > finished_tabs_.size()) { - TabTimeMap::iterator iter = loading_tabs_.find(source.map_key()); - if (iter != loading_tabs_.end()) { + if (loading_tabs_.find(source.map_key()) != loading_tabs_.end()) finished_tabs_.insert(source.map_key()); - iter->second.set_stop_time(base::TimeTicks::Now()); - } if (outstanding_tab_count_ == finished_tabs_.size()) ConditionMet(); } @@ -87,28 +61,6 @@ void InitialLoadObserver::Observe(NotificationType type, } } -DictionaryValue* InitialLoadObserver::GetTimingInformation() const { - ListValue* items = new ListValue; - for (TabTimeMap::const_iterator it = loading_tabs_.begin(); - it != loading_tabs_.end(); - ++it) { - DictionaryValue* item = new DictionaryValue; - base::TimeDelta delta_start = it->second.start_time() - init_time_; - - item->SetReal(L"load_start_ms", delta_start.InMillisecondsF()); - if (it->second.stop_time().is_null()) { - item->Set(L"load_stop_ms", Value::CreateNullValue()); - } else { - base::TimeDelta delta_stop = it->second.stop_time() - init_time_; - item->SetReal(L"load_stop_ms", delta_stop.InMillisecondsF()); - } - items->Append(item); - } - DictionaryValue* return_value = new DictionaryValue; - return_value->Set(L"tabs", items); - return return_value; -} - void InitialLoadObserver::ConditionMet() { registrar_.RemoveAll(); automation_->Send(new AutomationMsg_InitialLoadsComplete(0)); diff --git a/chrome/browser/automation/automation_provider_observers.h b/chrome/browser/automation/automation_provider_observers.h index 6bf6a26..6481005 100644 --- a/chrome/browser/automation/automation_provider_observers.h +++ b/chrome/browser/automation/automation_provider_observers.h @@ -36,18 +36,7 @@ class InitialLoadObserver : public NotificationObserver { const NotificationSource& source, const NotificationDetails& details); - // Caller owns the return value and is responsible for deleting it. - // Example return value: - // {'tabs': [{'start_time_ms': 1, 'stop_time_ms': 2.5}, - // {'start_time_ms': 0.5, 'stop_time_ms': 3}]} - // stop_time_ms values may be null if WaitForInitialLoads has not finished. - // Only includes entries for the |tab_count| tabs we are monitoring. - // There is no defined ordering of the return value. - DictionaryValue* GetTimingInformation() const; - private: - class TabTime; - typedef std::map<uintptr_t, TabTime> TabTimeMap; typedef std::set<uintptr_t> TabSet; void ConditionMet(); @@ -56,8 +45,7 @@ class InitialLoadObserver : public NotificationObserver { AutomationProvider* automation_; size_t outstanding_tab_count_; - base::TimeTicks init_time_; - TabTimeMap loading_tabs_; + TabSet loading_tabs_; TabSet finished_tabs_; DISALLOW_COPY_AND_ASSIGN(InitialLoadObserver); |