Index: extensions/browser/api/web_contents_capture_client.h |
diff --git a/extensions/browser/api/capture_web_contents_function.h b/extensions/browser/api/web_contents_capture_client.h |
similarity index 54% |
rename from extensions/browser/api/capture_web_contents_function.h |
rename to extensions/browser/api/web_contents_capture_client.h |
index 53f78f7992725e2cd291c38136c70d6e3e947f09..4107ee4eded91be3e51cace8a75ad81a78ed93a4 100644 |
--- a/extensions/browser/api/capture_web_contents_function.h |
+++ b/extensions/browser/api/web_contents_capture_client.h |
@@ -2,8 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef EXTENSIONS_BROWSER_API_CAPTURE_WEB_CONTENTS_FUNCTION_H_ |
-#define EXTENSIONS_BROWSER_API_CAPTURE_WEB_CONTENTS_FUNCTION_H_ |
+#ifndef EXTENSIONS_BROWSER_API_WEB_CONTENTS_CAPTURE_CLIENT_H_ |
+#define EXTENSIONS_BROWSER_API_WEB_CONTENTS_CAPTURE_CLIENT_H_ |
#include "base/macros.h" |
#include "content/public/browser/readback_types.h" |
@@ -18,50 +18,41 @@ class WebContents; |
namespace extensions { |
-// Base class for capturing visibile area of a WebContents. |
+// Base class for capturing visible area of a WebContents. |
// This is used by both webview.captureVisibleRegion and tabs.captureVisibleTab. |
-class CaptureWebContentsFunction : public AsyncExtensionFunction { |
+class WebContentsCaptureClient { |
public: |
- CaptureWebContentsFunction() {} |
+ WebContentsCaptureClient() {} |
protected: |
- ~CaptureWebContentsFunction() override {} |
- |
- // ExtensionFunction implementation. |
- bool HasPermission() override; |
- bool RunAsync() override; |
+ virtual ~WebContentsCaptureClient() {} |
virtual bool IsScreenshotEnabled() = 0; |
- virtual content::WebContents* GetWebContentsForID(int context_id) = 0; |
enum FailureReason { |
FAILURE_REASON_UNKNOWN, |
FAILURE_REASON_ENCODING_FAILED, |
FAILURE_REASON_VIEW_INVISIBLE |
}; |
+ bool CaptureAsync(content::WebContents* web_contents, |
+ const api::extension_types::ImageDetails* image_detail, |
+ const content::ReadbackRequestCallback callback); |
+ bool EncodeBitmap(const SkBitmap& bitmap, std::string* base64_result); |
virtual void OnCaptureFailure(FailureReason reason) = 0; |
- |
- private: |
- |
+ virtual void OnCaptureSuccess(const SkBitmap& bitmap) = 0; |
void CopyFromBackingStoreComplete(const SkBitmap& bitmap, |
content::ReadbackResponse response); |
- void OnCaptureSuccess(const SkBitmap& bitmap); |
- |
- // |context_id_| is the ID used to find the relevant WebContents. In the |
- // |tabs.captureVisibleTab()| api, this represents the window-id, and in the |
- // |webview.captureVisibleRegion()| api, this represents the instance-id of |
- // the guest. |
- int context_id_; |
+ private: |
// The format (JPEG vs PNG) of the resulting image. Set in RunAsync(). |
api::extension_types::ImageFormat image_format_; |
// Quality setting to use when encoding jpegs. Set in RunAsync(). |
int image_quality_; |
- DISALLOW_COPY_AND_ASSIGN(CaptureWebContentsFunction); |
+ DISALLOW_COPY_AND_ASSIGN(WebContentsCaptureClient); |
}; |
} // namespace extensions |
-#endif // EXTENSIONS_BROWSER_API_CAPTURE_WEB_CONTENTS_FUNCTION_H_ |
+#endif // EXTENSIONS_BROWSER_API_WEB_CONTENTS_CAPTURE_CLIENT_H_ |