file_reader.cc revision 9ab5563a3196760eb381d102cbb2bc0f7abc6a50
1// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "extensions/browser/file_reader.h" 6 7#include "base/bind.h" 8#include "base/file_util.h" 9#include "base/message_loop/message_loop.h" 10#include "content/public/browser/browser_thread.h" 11 12using content::BrowserThread; 13 14FileReader::FileReader(const extensions::ExtensionResource& resource, 15 const Callback& callback) 16 : resource_(resource), 17 callback_(callback), 18 origin_loop_(base::MessageLoop::current()) {} 19 20void FileReader::Start() { 21 BrowserThread::PostTask( 22 BrowserThread::FILE, FROM_HERE, 23 base::Bind(&FileReader::ReadFileOnBackgroundThread, this)); 24} 25 26FileReader::~FileReader() {} 27 28void FileReader::ReadFileOnBackgroundThread() { 29 std::string data; 30 bool success = file_util::ReadFileToString(resource_.GetFilePath(), &data); 31 origin_loop_->PostTask(FROM_HERE, base::Bind(callback_, success, data)); 32} 33