blob: 47377b2c0291247f09de5cde6db3a7a94dcc4e39 [file] [log] [blame]
// Copyright 2013 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/recovery_private/recovery_operation_manager.h"
#include "chrome/browser/extensions/api/recovery_private/recovery_private_api.h"
namespace recovery_api = extensions::api::recovery_private;
namespace extensions {
const char kInvalidUrl[] = "Invalid URL provided.";
RecoveryPrivateWriteFromUrlFunction::RecoveryPrivateWriteFromUrlFunction() {
}
RecoveryPrivateWriteFromUrlFunction::~RecoveryPrivateWriteFromUrlFunction() {
}
bool RecoveryPrivateWriteFromUrlFunction::RunImpl() {
scoped_ptr<recovery_api::WriteFromUrl::Params> params(
recovery_api::WriteFromUrl::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params.get());
bool save_image_as_download = false;
if (params->options->save_as_download.get()) {
save_image_as_download = true;
}
GURL url(params->image_url);
if (!url.is_valid()) {
error_ = kInvalidUrl;
return false;
}
recovery::RecoveryOperationManager::Get(profile())->StartWriteFromUrl(
extension_id(),
url,
params->options->image_hash.Pass(),
save_image_as_download,
params->storage_unit_id,
base::Bind(&RecoveryPrivateWriteFromUrlFunction::OnWriteStarted, this));
return true;
}
void RecoveryPrivateWriteFromUrlFunction::OnWriteStarted(bool success) {
SendResponse(success);
}
RecoveryPrivateWriteFromFileFunction::RecoveryPrivateWriteFromFileFunction() {
}
RecoveryPrivateWriteFromFileFunction::~RecoveryPrivateWriteFromFileFunction() {
}
bool RecoveryPrivateWriteFromFileFunction::RunImpl() {
scoped_ptr<recovery_api::WriteFromFile::Params> params(
recovery_api::WriteFromFile::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params.get());
recovery::RecoveryOperationManager::Get(profile())->StartWriteFromFile(
extension_id(),
params->storage_unit_id,
base::Bind(&RecoveryPrivateWriteFromFileFunction::OnWriteStarted, this));
return true;
}
void RecoveryPrivateWriteFromFileFunction::OnWriteStarted(bool success) {
SendResponse(success);
}
RecoveryPrivateCancelWriteFunction::RecoveryPrivateCancelWriteFunction() {
}
RecoveryPrivateCancelWriteFunction::~RecoveryPrivateCancelWriteFunction() {
}
bool RecoveryPrivateCancelWriteFunction::RunImpl() {
recovery::RecoveryOperationManager::Get(profile())->CancelWrite(
extension_id(),
base::Bind(&RecoveryPrivateCancelWriteFunction::OnWriteCancelled, this));
return true;
}
void RecoveryPrivateCancelWriteFunction::OnWriteCancelled(bool success) {
SendResponse(success);
}
RecoveryPrivateDestroyPartitionsFunction::
RecoveryPrivateDestroyPartitionsFunction() {
}
RecoveryPrivateDestroyPartitionsFunction::
~RecoveryPrivateDestroyPartitionsFunction() {
}
bool RecoveryPrivateDestroyPartitionsFunction::RunImpl() {
scoped_ptr<recovery_api::DestroyPartitions::Params> params(
recovery_api::DestroyPartitions::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params.get());
SendResponse(true);
return true;
}
} // namespace extensions