Index: chrome/browser/automation/automation_provider_observers.cc |
diff --git a/chrome/browser/automation/automation_provider_observers.cc b/chrome/browser/automation/automation_provider_observers.cc |
index 366cfeb21f3fd55debcae9775b83ed43c3808065..374202234f52b254ab4d891646717b1a50e573e5 100644 |
--- a/chrome/browser/automation/automation_provider_observers.cc |
+++ b/chrome/browser/automation/automation_provider_observers.cc |
@@ -1742,130 +1742,6 @@ void SavePackageNotificationObserver::ManagerGoingDown( |
delete this; |
} |
-PageSnapshotTaker::PageSnapshotTaker(AutomationProvider* automation, |
- IPC::Message* reply_message, |
- WebContents* web_contents, |
- const base::FilePath& path) |
- : automation_(automation->AsWeakPtr()), |
- reply_message_(reply_message), |
- web_contents_(web_contents), |
- image_path_(path) { |
- registrar_.Add(this, chrome::NOTIFICATION_APP_MODAL_DIALOG_SHOWN, |
- content::NotificationService::AllSources()); |
-} |
- |
-PageSnapshotTaker::~PageSnapshotTaker() {} |
- |
-void PageSnapshotTaker::Start() { |
- AutomationTabHelper* automation_tab_helper = |
- AutomationTabHelper::FromWebContents(web_contents_); |
- StartObserving(automation_tab_helper); |
- automation_tab_helper->SnapshotEntirePage(); |
-} |
- |
-void PageSnapshotTaker::OnSnapshotEntirePageACK( |
- bool success, |
- const std::vector<unsigned char>& png_data, |
- const std::string& error_msg) { |
- bool overall_success = success; |
- std::string overall_error_msg = error_msg; |
- if (success) { |
- base::ThreadRestrictions::ScopedAllowIO allow_io; |
- int bytes_written = file_util::WriteFile(image_path_, |
- reinterpret_cast<const char*>(&png_data[0]), png_data.size()); |
- overall_success = (bytes_written == static_cast<int>(png_data.size())); |
- if (!overall_success) |
- overall_error_msg = "could not write snapshot to disk"; |
- } |
- SendMessage(overall_success, overall_error_msg); |
-} |
- |
-void PageSnapshotTaker::Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- SendMessage(false, "a modal dialog is active"); |
-} |
- |
-void PageSnapshotTaker::SendMessage(bool success, |
- const std::string& error_msg) { |
- if (automation_) { |
- if (success) { |
- AutomationJSONReply(automation_, reply_message_.release()) |
- .SendSuccess(NULL); |
- } else { |
- AutomationJSONReply(automation_, reply_message_.release()) |
- .SendError("Failed to take snapshot of page: " + error_msg); |
- } |
- } |
- delete this; |
-} |
- |
-AutomationMouseEventProcessor::AutomationMouseEventProcessor( |
- RenderViewHost* render_view_host, |
- const AutomationMouseEvent& event, |
- const CompletionCallback& completion_callback, |
- const ErrorCallback& error_callback) |
- : RenderViewHostObserver(render_view_host), |
- completion_callback_(completion_callback), |
- error_callback_(error_callback), |
- has_point_(false) { |
- registrar_.Add(this, chrome::NOTIFICATION_APP_MODAL_DIALOG_SHOWN, |
- content::NotificationService::AllSources()); |
- Send(new AutomationMsg_ProcessMouseEvent(routing_id(), event)); |
-} |
- |
-AutomationMouseEventProcessor::~AutomationMouseEventProcessor() {} |
- |
-void AutomationMouseEventProcessor::OnWillProcessMouseEventAt( |
- const gfx::Point& point) { |
- has_point_ = true; |
- point_ = point; |
-} |
- |
-void AutomationMouseEventProcessor::OnProcessMouseEventACK( |
- bool success, |
- const std::string& error_msg) { |
- InvokeCallback(automation::Error(error_msg)); |
-} |
- |
-void AutomationMouseEventProcessor::RenderViewHostDestroyed( |
- RenderViewHost* host) { |
- InvokeCallback(automation::Error("The render view host was destroyed")); |
-} |
- |
-bool AutomationMouseEventProcessor::OnMessageReceived( |
- const IPC::Message& message) { |
- bool handled = true; |
- bool msg_is_good = true; |
- IPC_BEGIN_MESSAGE_MAP_EX(AutomationMouseEventProcessor, message, msg_is_good) |
- IPC_MESSAGE_HANDLER(AutomationMsg_WillProcessMouseEventAt, |
- OnWillProcessMouseEventAt) |
- IPC_MESSAGE_HANDLER(AutomationMsg_ProcessMouseEventACK, |
- OnProcessMouseEventACK) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP_EX() |
- if (!msg_is_good) { |
- LOG(ERROR) << "Failed to deserialize an IPC message"; |
- } |
- return handled; |
-} |
- |
-void AutomationMouseEventProcessor::Observe( |
- int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- InvokeCallback(automation::Error(automation::kBlockedByModalDialog)); |
-} |
- |
-void AutomationMouseEventProcessor::InvokeCallback( |
- const automation::Error& error) { |
- if (has_point_) |
- completion_callback_.Run(point_); |
- else |
- error_callback_.Run(error); |
- delete this; |
-} |
- |
namespace { |
// Returns a vector of dictionaries containing information about installed apps, |
@@ -2315,90 +2191,6 @@ void InputEventAckNotificationObserver::Observe( |
} |
} |
-AllViewsStoppedLoadingObserver::AllViewsStoppedLoadingObserver( |
- AutomationProvider* automation, |
- IPC::Message* reply_message, |
- ExtensionProcessManager* extension_process_manager) |
- : automation_(automation->AsWeakPtr()), |
- reply_message_(reply_message), |
- extension_process_manager_(extension_process_manager) { |
- registrar_.Add(this, |
- chrome::NOTIFICATION_APP_MODAL_DIALOG_SHOWN, |
- content::NotificationService::AllSources()); |
- registrar_.Add(this, |
- content::NOTIFICATION_LOAD_STOP, |
- content::NotificationService::AllSources()); |
- for (chrome::BrowserIterator it; !it.done(); it.Next()) { |
- Browser* browser = *it; |
- for (int i = 0; i < browser->tab_strip_model()->count(); ++i) { |
- WebContents* web_contents = |
- browser->tab_strip_model()->GetWebContentsAt(i); |
- AutomationTabHelper* automation_tab_helper = |
- AutomationTabHelper::FromWebContents(web_contents); |
- StartObserving(automation_tab_helper); |
- if (automation_tab_helper->has_pending_loads()) |
- pending_tabs_.insert(web_contents); |
- } |
- } |
- CheckIfNoMorePendingLoads(); |
-} |
- |
-AllViewsStoppedLoadingObserver::~AllViewsStoppedLoadingObserver() { |
-} |
- |
-void AllViewsStoppedLoadingObserver::OnFirstPendingLoad( |
- content::WebContents* web_contents) { |
- pending_tabs_.insert(web_contents); |
-} |
- |
-void AllViewsStoppedLoadingObserver::OnNoMorePendingLoads( |
- content::WebContents* web_contents) { |
- if (!automation_) { |
- delete this; |
- return; |
- } |
- |
- TabSet::iterator iter = pending_tabs_.find(web_contents); |
- if (iter == pending_tabs_.end()) { |
- LOG(ERROR) << "Received OnNoMorePendingLoads for tab without " |
- << "OnFirstPendingLoad."; |
- return; |
- } |
- pending_tabs_.erase(iter); |
- CheckIfNoMorePendingLoads(); |
-} |
- |
-void AllViewsStoppedLoadingObserver::Observe( |
- int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- if (!automation_) { |
- delete this; |
- return; |
- } |
- if (type == content::NOTIFICATION_LOAD_STOP) { |
- CheckIfNoMorePendingLoads(); |
- } else if (type == chrome::NOTIFICATION_APP_MODAL_DIALOG_SHOWN) { |
- AutomationJSONReply(automation_, |
- reply_message_.release()).SendSuccess(NULL); |
- delete this; |
- } |
-} |
- |
-void AllViewsStoppedLoadingObserver::CheckIfNoMorePendingLoads() { |
- if (!automation_) { |
- delete this; |
- return; |
- } |
- |
- if (pending_tabs_.empty() && |
- DidExtensionViewsStopLoading(extension_process_manager_)) { |
- AutomationJSONReply(automation_, |
- reply_message_.release()).SendSuccess(NULL); |
- delete this; |
- } |
-} |
- |
NewTabObserver::NewTabObserver(AutomationProvider* automation, |
IPC::Message* reply_message, |
bool use_json_interface) |