summaryrefslogtreecommitdiff
path: root/chromium/content/browser/devtools/protocol/page_handler.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/devtools/protocol/page_handler.h')
-rw-r--r--chromium/content/browser/devtools/protocol/page_handler.h88
1 files changed, 45 insertions, 43 deletions
diff --git a/chromium/content/browser/devtools/protocol/page_handler.h b/chromium/content/browser/devtools/protocol/page_handler.h
index 913655d7b06..fff0cda58ec 100644
--- a/chromium/content/browser/devtools/protocol/page_handler.h
+++ b/chromium/content/browser/devtools/protocol/page_handler.h
@@ -10,104 +10,101 @@
#include "base/memory/weak_ptr.h"
#include "base/time/time.h"
#include "cc/output/compositor_frame_metadata.h"
-#include "content/browser/devtools/protocol/devtools_protocol_handler_impl.h"
+#include "content/browser/devtools/protocol/devtools_protocol_handler.h"
+#include "content/public/browser/notification_observer.h"
+#include "content/public/browser/notification_registrar.h"
+#include "content/public/browser/readback_types.h"
class SkBitmap;
namespace content {
-class RenderViewHostImpl;
+class RenderFrameHostImpl;
+class WebContentsImpl;
namespace devtools {
namespace page {
class ColorPicker;
-class PageHandler {
+class PageHandler : public NotificationObserver {
public:
typedef DevToolsProtocolClient::Response Response;
+ class ScreencastListener {
+ public:
+ virtual ~ScreencastListener() { }
+ virtual void ScreencastEnabledChanged() = 0;
+ };
+
PageHandler();
- virtual ~PageHandler();
+ ~PageHandler() override;
- void SetRenderViewHost(RenderViewHostImpl* host);
+ void SetRenderFrameHost(RenderFrameHostImpl* host);
void SetClient(scoped_ptr<Client> client);
void Detached();
void OnSwapCompositorFrame(const cc::CompositorFrameMetadata& frame_metadata);
- void OnVisibilityChanged(bool visible);
void DidAttachInterstitialPage();
void DidDetachInterstitialPage();
+ void SetScreencastListener(ScreencastListener* listener);
+ bool screencast_enabled() const { return enabled_ && screencast_enabled_; }
Response Enable();
Response Disable();
Response Reload(const bool* ignoreCache,
const std::string* script_to_evaluate_on_load,
- const std::string* script_preprocessor);
+ const std::string* script_preprocessor = NULL);
Response Navigate(const std::string& url, FrameId* frame_id);
+ using NavigationEntries = std::vector<scoped_refptr<NavigationEntry>>;
Response GetNavigationHistory(int* current_index,
- std::vector<NavigationEntry>* entries);
+ NavigationEntries* entries);
Response NavigateToHistoryEntry(int entry_id);
- Response SetGeolocationOverride(double* latitude,
- double* longitude,
- double* accuracy);
-
- Response ClearGeolocationOverride();
-
- Response SetTouchEmulationEnabled(bool enabled);
- Response SetTouchEmulationEnabled(bool enabled,
- const std::string* configuration);
-
- scoped_refptr<DevToolsProtocol::Response> CaptureScreenshot(
- scoped_refptr<DevToolsProtocol::Command> command);
+ Response CaptureScreenshot(DevToolsCommandId command_id);
Response CanScreencast(bool* result);
- Response CanEmulate(bool* result);
-
Response StartScreencast(const std::string* format,
const int* quality,
const int* max_width,
const int* max_height);
-
Response StopScreencast();
+ Response ScreencastFrameAck(int frame_number);
+
Response HandleJavaScriptDialog(bool accept, const std::string* prompt_text);
- scoped_refptr<DevToolsProtocol::Response> QueryUsageAndQuota(
- const std::string& security_origin,
- scoped_refptr<DevToolsProtocol::Command> command);
+ Response QueryUsageAndQuota(DevToolsCommandId command_id,
+ const std::string& security_origin);
Response SetColorPickerEnabled(bool enabled);
private:
- void UpdateTouchEventEmulationState();
-
+ WebContentsImpl* GetWebContents();
void NotifyScreencastVisibility(bool visible);
void InnerSwapCompositorFrame();
- void ScreencastFrameCaptured(
- const std::string& format,
- int quality,
- const cc::CompositorFrameMetadata& metadata,
- bool success,
- const SkBitmap& bitmap);
+ void ScreencastFrameCaptured(const cc::CompositorFrameMetadata& metadata,
+ const SkBitmap& bitmap,
+ ReadbackResponse response);
+ void ScreencastFrameEncoded(const cc::CompositorFrameMetadata& metadata,
+ const base::Time& timestamp,
+ const std::string& data);
void ScreenshotCaptured(
- scoped_refptr<DevToolsProtocol::Command> command,
+ DevToolsCommandId command_id,
const unsigned char* png_data,
size_t png_size);
void OnColorPicked(int r, int g, int b, int a);
- void QueryUsageAndQuotaCompleted(
- scoped_refptr<DevToolsProtocol::Command> command,
- scoped_ptr<QueryUsageAndQuotaResponse> response);
+ // NotificationObserver overrides.
+ void Observe(int type,
+ const NotificationSource& source,
+ const NotificationDetails& details) override;
bool enabled_;
- bool touch_emulation_enabled_;
- std::string touch_emulation_configuration_;
bool screencast_enabled_;
std::string screencast_format_;
@@ -115,14 +112,19 @@ class PageHandler {
int screencast_max_width_;
int screencast_max_height_;
int capture_retry_count_;
- bool has_last_compositor_frame_metadata_;
+ bool has_compositor_frame_metadata_;
+ cc::CompositorFrameMetadata next_compositor_frame_metadata_;
cc::CompositorFrameMetadata last_compositor_frame_metadata_;
- base::TimeTicks last_frame_time_;
+ int screencast_frame_sent_;
+ int screencast_frame_acked_;
+ bool processing_screencast_frame_;
scoped_ptr<ColorPicker> color_picker_;
- RenderViewHostImpl* host_;
+ RenderFrameHostImpl* host_;
scoped_ptr<Client> client_;
+ ScreencastListener* screencast_listener_;
+ NotificationRegistrar registrar_;
base::WeakPtrFactory<PageHandler> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(PageHandler);