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

Unified Diff: chrome/browser/extensions/api/document_scan/document_scan_api.cc

Issue 899523004: Move chrome.documentScan API to extensions/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated DEPS Created 5 years, 10 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
Index: chrome/browser/extensions/api/document_scan/document_scan_api.cc
diff --git a/chrome/browser/extensions/api/document_scan/document_scan_api.cc b/chrome/browser/extensions/api/document_scan/document_scan_api.cc
deleted file mode 100644
index af3f7da950921bc15226684eab7bd9a75ce224ec..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/api/document_scan/document_scan_api.cc
+++ /dev/null
@@ -1,125 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// 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/document_scan/document_scan_api.h"
-
-#include <algorithm>
-
-#include "content/public/browser/browser_thread.h"
-#include "extensions/browser/extension_system.h"
-
-using content::BrowserThread;
-
-namespace {
-
-const char kScannerNotAvailable[] = "Scanner not available";
-const char kUserGestureRequiredError[] =
- "User gesture required to perform scan";
-
-} // namespace
-
-namespace extensions {
-
-namespace api {
-
-DocumentScanScanFunction::DocumentScanScanFunction()
- : document_scan_interface_(DocumentScanInterface::CreateInstance()) {}
-
-DocumentScanScanFunction::~DocumentScanScanFunction() {}
-
-bool DocumentScanScanFunction::Prepare() {
- set_work_thread_id(BrowserThread::FILE);
- params_ = document_scan::Scan::Params::Create(*args_);
- EXTENSION_FUNCTION_VALIDATE(params_.get());
- return true;
-}
-
-void DocumentScanScanFunction::AsyncWorkStart() {
- if (!user_gesture()) {
- error_ = kUserGestureRequiredError;
- AsyncWorkCompleted();
- return;
- }
-
- // Add a reference, which is balanced in OnScannerListReceived to keep the
- // object around and allow the callback to be invoked.
- AddRef();
-
- document_scan_interface_->ListScanners(
- base::Bind(&DocumentScanScanFunction::OnScannerListReceived,
- base::Unretained(this)));
-}
-
-void DocumentScanScanFunction::OnScannerListReceived(
- const std::vector<DocumentScanInterface::ScannerDescription>&
- scanner_descriptions,
- const std::string& error) {
- std::vector<DocumentScanInterface::ScannerDescription>::const_iterator
- scanner_i = scanner_descriptions.begin();
-
- // If no |scanner_descriptions| is empty, this is an error. If no
- // MIME types are specified, the first scanner is chosen. If MIME
- // types are specified, the first scanner that supports one of these
- // MIME types is selected.
- if (params_->options.mime_types) {
- std::vector<std::string>& mime_types = *params_->options.mime_types.get();
- for (; scanner_i != scanner_descriptions.end(); ++scanner_i) {
- if (std::find(mime_types.begin(), mime_types.end(),
- scanner_i->image_mime_type) != mime_types.end()) {
- break;
- }
- }
- }
-
- if (scanner_i == scanner_descriptions.end()) {
- error_ = kScannerNotAvailable;
- AsyncWorkCompleted();
-
- // Balance the AddRef in AsyncWorkStart().
- Release();
- return;
- }
-
- // TODO(pstew): Call a delegate method here to select a scanner and options.
-
- document_scan_interface_->Scan(
- scanner_i->name,
- DocumentScanInterface::kScanModeColor,
- 0,
- base::Bind(&DocumentScanScanFunction::OnResultsReceived,
- base::Unretained(this)));
-}
-
-void DocumentScanScanFunction::OnResultsReceived(
- const std::string& scanned_image,
- const std::string& mime_type,
- const std::string& error) {
-
- // TODO(pstew): Enlist a delegate to display received scan in the UI
- // and confirm that this scan should be sent to the caller. If this
- // is a multi-page scan, provide a means for adding additional scanned
- // images up to the requested limit.
-
- if (error.empty()) {
- document_scan::ScanResults scan_results;
- if (!scanned_image.empty()) {
- scan_results.data_urls.push_back(scanned_image);
- }
- scan_results.mime_type = mime_type;
- results_ = document_scan::Scan::Results::Create(scan_results);
- }
- error_ = error;
- AsyncWorkCompleted();
-
- // Balance the AddRef in AsyncWorkStart().
- Release();
-}
-
-bool DocumentScanScanFunction::Respond() {
- return error_.empty();
-}
-
-} // namespace api
-
-} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698