Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(696)

Unified Diff: extensions/browser/api/capture_web_contents_function_impl.h

Issue 522763002: Moving capture_web_contents_function to extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Documenting the inheritance of CaptureWebContentsFunction Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/browser/api/capture_web_contents_function.h ('k') | extensions/browser/extension_function.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/api/capture_web_contents_function_impl.h
diff --git a/chrome/browser/extensions/api/capture_web_contents_function.cc b/extensions/browser/api/capture_web_contents_function_impl.h
similarity index 72%
rename from chrome/browser/extensions/api/capture_web_contents_function.cc
rename to extensions/browser/api/capture_web_contents_function_impl.h
index 5b01e828b27a239ea2d486e6986938727ded2bb2..99511d3bd32fddaf3b86dd5e55ce2f02648c3b5e 100644
--- a/chrome/browser/extensions/api/capture_web_contents_function.cc
+++ b/extensions/browser/api/capture_web_contents_function_impl.h
@@ -2,11 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/extensions/api/capture_web_contents_function.h"
+#include "extensions/browser/api/capture_web_contents_function.h"
#include "base/base64.h"
#include "base/strings/stringprintf.h"
-#include "chrome/browser/extensions/api/tabs/tabs_constants.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/render_widget_host_view.h"
#include "content/public/browser/web_contents.h"
@@ -22,26 +21,22 @@ using content::WebContents;
namespace extensions {
-CaptureWebContentsFunction::CaptureWebContentsFunction() {
-}
-
-CaptureWebContentsFunction::~CaptureWebContentsFunction() {
-}
-
-bool CaptureWebContentsFunction::HasPermission() {
+template <typename T>
+bool CaptureWebContentsFunction<T>::HasPermission() {
return true;
}
-bool CaptureWebContentsFunction::RunAsync() {
- EXTENSION_FUNCTION_VALIDATE(args_);
+template <typename T>
+bool CaptureWebContentsFunction<T>::RunAsync() {
+ EXTENSION_FUNCTION_VALIDATE(T::args_);
context_id_ = extension_misc::kCurrentWindowId;
- args_->GetInteger(0, &context_id_);
+ T::args_->GetInteger(0, &context_id_);
scoped_ptr<ImageDetails> image_details;
- if (args_->GetSize() > 1) {
+ if (T::args_->GetSize() > 1) {
base::Value* spec = NULL;
- EXTENSION_FUNCTION_VALIDATE(args_->Get(1, &spec) && spec);
+ EXTENSION_FUNCTION_VALIDATE(T::args_->Get(1, &spec) && spec);
image_details = ImageDetails::FromValue(*spec);
}
@@ -81,7 +76,8 @@ bool CaptureWebContentsFunction::RunAsync() {
return true;
}
-void CaptureWebContentsFunction::CopyFromBackingStoreComplete(
+template <typename T>
+void CaptureWebContentsFunction<T>::CopyFromBackingStoreComplete(
bool succeeded,
const SkBitmap& bitmap) {
if (succeeded) {
@@ -91,7 +87,8 @@ void CaptureWebContentsFunction::CopyFromBackingStoreComplete(
OnCaptureFailure(FAILURE_REASON_UNKNOWN);
}
-void CaptureWebContentsFunction::OnCaptureSuccess(const SkBitmap& bitmap) {
+template <typename T>
+void CaptureWebContentsFunction<T>::OnCaptureSuccess(const SkBitmap& bitmap) {
std::vector<unsigned char> data;
SkAutoLockPixels screen_capture_lock(bitmap);
bool encoded = false;
@@ -106,14 +103,14 @@ void CaptureWebContentsFunction::OnCaptureSuccess(const SkBitmap& bitmap) {
static_cast<int>(bitmap.rowBytes()),
image_quality_,
&data);
- mime_type = tabs_constants::kMimeTypeJpeg;
+ mime_type = kMimeTypeJpeg;
break;
case ImageDetails::FORMAT_PNG:
- encoded = gfx::PNGCodec::EncodeBGRASkBitmap(
- bitmap,
- true, // Discard transparency.
- &data);
- mime_type = tabs_constants::kMimeTypePng;
+ encoded =
+ gfx::PNGCodec::EncodeBGRASkBitmap(bitmap,
+ true, // Discard transparency.
+ &data);
+ mime_type = kMimeTypePng;
break;
default:
NOTREACHED() << "Invalid image format.";
@@ -129,10 +126,17 @@ void CaptureWebContentsFunction::OnCaptureSuccess(const SkBitmap& bitmap) {
reinterpret_cast<const char*>(vector_as_array(&data)), data.size());
base::Base64Encode(stream_as_string, &base64_result);
- base64_result.insert(0, base::StringPrintf("data:%s;base64,",
- mime_type.c_str()));
- SetResult(new base::StringValue(base64_result));
- SendResponse(true);
+ base64_result.insert(
+ 0, base::StringPrintf("data:%s;base64,", mime_type.c_str()));
+ T::SetResult(new base::StringValue(base64_result));
+ T::SendResponse(true);
+}
+
+template <typename T>
+bool CaptureWebContentsFunction<T>::ValidationFailure(
+ CaptureWebContentsFunction<T>* function) {
+ return T::ValidationFailure(function);
}
} // namespace extensions
+
« no previous file with comments | « extensions/browser/api/capture_web_contents_function.h ('k') | extensions/browser/extension_function.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698