// Copyright (c) 2011 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 "extensions/browser/file_reader.h"
#include "base/bind.h"
#include "base/file_util.h"
#include "base/message_loop/message_loop.h"
#include "content/public/browser/browser_thread.h"
using content::BrowserThread;
FileReader::FileReader(const extensions::ExtensionResource& resource,
const Callback& callback)
: resource_(resource),
callback_(callback),
origin_loop_(base::MessageLoop::current()) {}
void FileReader::Start() {
BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
base::Bind(&FileReader::ReadFileOnBackgroundThread, this));
}
FileReader::~FileReader() {}
void FileReader::ReadFileOnBackgroundThread() {
std::string data;
bool success = base::ReadFileToString(resource_.GetFilePath(), &data);
origin_loop_->PostTask(FROM_HERE, base::Bind(callback_, success, data));
}