| 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
|
|
|