OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_OBSERVERS_H_ | 5 #ifndef CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_OBSERVERS_H_ |
6 #define CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_OBSERVERS_H_ | 6 #define CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_OBSERVERS_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <deque> | 9 #include <deque> |
10 #include <map> | 10 #include <map> |
(...skipping 1318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1329 const NotificationDetails& details); | 1329 const NotificationDetails& details); |
1330 | 1330 |
1331 private: | 1331 private: |
1332 NotificationRegistrar registrar_; | 1332 NotificationRegistrar registrar_; |
1333 base::WeakPtr<AutomationProvider> automation_; | 1333 base::WeakPtr<AutomationProvider> automation_; |
1334 scoped_ptr<IPC::Message> reply_message_; | 1334 scoped_ptr<IPC::Message> reply_message_; |
1335 | 1335 |
1336 DISALLOW_COPY_AND_ASSIGN(SavePackageNotificationObserver); | 1336 DISALLOW_COPY_AND_ASSIGN(SavePackageNotificationObserver); |
1337 }; | 1337 }; |
1338 | 1338 |
1339 // This class manages taking a snapshot of a page. This requires waiting on | 1339 // This class manages taking a snapshot of a page. |
1340 // asynchronous callbacks and notifications. | 1340 class PageSnapshotTaker : public TabEventObserver, public NotificationObserver { |
1341 class PageSnapshotTaker : public DomOperationObserver { | |
1342 public: | 1341 public: |
1343 PageSnapshotTaker(AutomationProvider* automation, | 1342 PageSnapshotTaker(AutomationProvider* automation, |
1344 IPC::Message* reply_message, | 1343 IPC::Message* reply_message, |
1345 RenderViewHost* render_view, | 1344 TabContentsWrapper* tab_contents, |
1346 const FilePath& path); | 1345 const FilePath& path); |
1347 virtual ~PageSnapshotTaker(); | 1346 virtual ~PageSnapshotTaker(); |
1348 | 1347 |
1349 // Start the process of taking a snapshot of the entire page. | 1348 // Start the process of taking a snapshot of the entire page. |
1350 void Start(); | 1349 void Start(); |
1351 | 1350 |
1352 private: | 1351 private: |
1353 // Overriden from DomOperationObserver. | 1352 // TabEventObserver overrides. |
1354 virtual void OnDomOperationCompleted(const std::string& json) OVERRIDE; | 1353 virtual void OnSnapshotEntirePageACK( |
1355 virtual void OnModalDialogShown() OVERRIDE; | 1354 bool success, |
1356 | 1355 const std::vector<unsigned char>& png_data, |
1357 // Called by the ThumbnailGenerator when the requested snapshot has been | 1356 const std::string& error_msg) OVERRIDE; |
1358 // generated. | 1357 // NotificationObserver overrides. |
1359 void OnSnapshotTaken(const SkBitmap& bitmap); | 1358 virtual void Observe(int type, |
1360 | 1359 const NotificationSource& source, |
1361 // Helper method to send arbitrary javascript to the renderer for evaluation. | 1360 const NotificationDetails& details); |
1362 void ExecuteScript(const std::wstring& javascript); | |
1363 | 1361 |
1364 // Helper method to send a response back to the client. Deletes this. | 1362 // Helper method to send a response back to the client. Deletes this. |
1365 void SendMessage(bool success, const std::string& error_msg); | 1363 void SendMessage(bool success, const std::string& error_msg); |
1366 | 1364 |
1367 base::WeakPtr<AutomationProvider> automation_; | 1365 base::WeakPtr<AutomationProvider> automation_; |
1368 scoped_ptr<IPC::Message> reply_message_; | 1366 scoped_ptr<IPC::Message> reply_message_; |
1369 RenderViewHost* render_view_; | 1367 TabContentsWrapper* tab_contents_; |
1370 FilePath image_path_; | 1368 FilePath image_path_; |
1371 bool received_width_; | 1369 NotificationRegistrar registrar_; |
1372 gfx::Size entire_page_size_; | |
1373 | 1370 |
1374 DISALLOW_COPY_AND_ASSIGN(PageSnapshotTaker); | 1371 DISALLOW_COPY_AND_ASSIGN(PageSnapshotTaker); |
1375 }; | 1372 }; |
1376 | 1373 |
1377 class NTPInfoObserver : public NotificationObserver { | 1374 class NTPInfoObserver : public NotificationObserver { |
1378 public: | 1375 public: |
1379 NTPInfoObserver(AutomationProvider* automation, | 1376 NTPInfoObserver(AutomationProvider* automation, |
1380 IPC::Message* reply_message, | 1377 IPC::Message* reply_message, |
1381 CancelableRequestConsumer* consumer); | 1378 CancelableRequestConsumer* consumer); |
1382 virtual ~NTPInfoObserver(); | 1379 virtual ~NTPInfoObserver(); |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1774 private: | 1771 private: |
1775 NotificationRegistrar registrar_; | 1772 NotificationRegistrar registrar_; |
1776 base::WeakPtr<AutomationProvider> automation_; | 1773 base::WeakPtr<AutomationProvider> automation_; |
1777 scoped_ptr<IPC::Message> reply_message_; | 1774 scoped_ptr<IPC::Message> reply_message_; |
1778 int new_window_id_; | 1775 int new_window_id_; |
1779 | 1776 |
1780 DISALLOW_COPY_AND_ASSIGN(BrowserOpenedWithNewProfileNotificationObserver); | 1777 DISALLOW_COPY_AND_ASSIGN(BrowserOpenedWithNewProfileNotificationObserver); |
1781 }; | 1778 }; |
1782 | 1779 |
1783 #endif // CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_OBSERVERS_H_ | 1780 #endif // CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_OBSERVERS_H_ |
OLD | NEW |