diff options
Diffstat (limited to 'chromium/content/browser/devtools/protocol/page_handler.h')
-rw-r--r-- | chromium/content/browser/devtools/protocol/page_handler.h | 88 |
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); |