diff options
author | adamk@chromium.org <adamk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-03 21:59:09 +0000 |
---|---|---|
committer | adamk@chromium.org <adamk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-03 21:59:09 +0000 |
commit | 1ec27eb5b20f25e423b05d457c47115c296ce13d (patch) | |
tree | 9cf770570738227f8634e638619a5284d9820d03 /chrome/browser | |
parent | 74861f3026520c2ca132e61df77e3daf94e37106 (diff) | |
download | chromium_src-1ec27eb5b20f25e423b05d457c47115c296ce13d.zip chromium_src-1ec27eb5b20f25e423b05d457c47115c296ce13d.tar.gz chromium_src-1ec27eb5b20f25e423b05d457c47115c296ce13d.tar.bz2 |
base::Bind conversion for chrome/browser/extensions/file_reader.
Review URL: http://codereview.chromium.org/8343008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108553 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/chromeos/accessibility_util.cc | 7 | ||||
-rw-r--r-- | chrome/browser/extensions/execute_code_in_tab_function.cc | 20 | ||||
-rw-r--r-- | chrome/browser/extensions/file_reader.cc | 15 | ||||
-rw-r--r-- | chrome/browser/extensions/file_reader.h | 9 | ||||
-rw-r--r-- | chrome/browser/extensions/file_reader_unittest.cc | 7 |
5 files changed, 26 insertions, 32 deletions
diff --git a/chrome/browser/chromeos/accessibility_util.cc b/chrome/browser/chromeos/accessibility_util.cc index cee420c..b43b7f4 100644 --- a/chrome/browser/chromeos/accessibility_util.cc +++ b/chrome/browser/chromeos/accessibility_util.cc @@ -4,7 +4,8 @@ #include "chrome/browser/chromeos/accessibility_util.h" -#include "base/callback.h" +#include "base/bind.h" +#include "base/bind_helpers.h" #include "base/logging.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/dbus/dbus_thread_manager.h" @@ -56,8 +57,8 @@ class ContentScriptLoader { ExtensionResource resource = resources_.front(); resources_.pop(); - scoped_refptr<FileReader> reader(new FileReader(resource, NewCallback( - this, &ContentScriptLoader::OnFileLoaded))); + scoped_refptr<FileReader> reader(new FileReader(resource, base::Bind( + &ContentScriptLoader::OnFileLoaded, base::Unretained(this)))); reader->Start(); } diff --git a/chrome/browser/extensions/execute_code_in_tab_function.cc b/chrome/browser/extensions/execute_code_in_tab_function.cc index b58ac5c..2d27d1d 100644 --- a/chrome/browser/extensions/execute_code_in_tab_function.cc +++ b/chrome/browser/extensions/execute_code_in_tab_function.cc @@ -4,6 +4,7 @@ #include "chrome/browser/extensions/execute_code_in_tab_function.h" +#include "base/bind.h" #include "base/string_util.h" #include "base/utf_string_conversions.h" #include "chrome/browser/extensions/extension_service.h" @@ -119,9 +120,8 @@ bool ExecuteCodeInTabFunction::RunImpl() { } scoped_refptr<FileReader> file_reader(new FileReader( - resource_, NewCallback(this, &ExecuteCodeInTabFunction::DidLoadFile))); + resource_, base::Bind(&ExecuteCodeInTabFunction::DidLoadFile, this))); file_reader->Start(); - AddRef(); // Keep us alive until DidLoadAndLocalizeFile is called. return true; } @@ -138,11 +138,11 @@ void ExecuteCodeInTabFunction::DidLoadFile(bool success, data.find(ExtensionMessageBundle::kMessageBegin) != std::string::npos) { BrowserThread::PostTask( BrowserThread::FILE, FROM_HERE, - NewRunnableMethod(this, &ExecuteCodeInTabFunction::LocalizeCSS, - data, - extension->id(), - extension->path(), - extension->default_locale())); + base::Bind(&ExecuteCodeInTabFunction::LocalizeCSS, this, + data, + extension->id(), + extension->path(), + extension->default_locale())); } else { DidLoadAndLocalizeFile(success, data); } @@ -168,9 +168,8 @@ void ExecuteCodeInTabFunction::LocalizeCSS( // anything to localize. BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, - NewRunnableMethod(this, - &ExecuteCodeInTabFunction::DidLoadAndLocalizeFile, - true, css_data)); + base::Bind(&ExecuteCodeInTabFunction::DidLoadAndLocalizeFile, this, + true, css_data)); } void ExecuteCodeInTabFunction::DidLoadAndLocalizeFile(bool success, @@ -189,7 +188,6 @@ void ExecuteCodeInTabFunction::DidLoadAndLocalizeFile(bool success, #endif // OS_WIN SendResponse(false); } - Release(); // Balance the AddRef taken in RunImpl } bool ExecuteCodeInTabFunction::Execute(const std::string& code_string) { diff --git a/chrome/browser/extensions/file_reader.cc b/chrome/browser/extensions/file_reader.cc index b2cbc77..a71643d 100644 --- a/chrome/browser/extensions/file_reader.cc +++ b/chrome/browser/extensions/file_reader.cc @@ -4,6 +4,7 @@ #include "chrome/browser/extensions/file_reader.h" +#include "base/bind.h" #include "base/file_util.h" #include "base/message_loop.h" #include "chrome/common/extensions/extension_resource.h" @@ -11,17 +12,17 @@ using content::BrowserThread; -FileReader::FileReader(const ExtensionResource& resource, Callback* callback) +FileReader::FileReader(const ExtensionResource& resource, + const Callback& callback) : resource_(resource), callback_(callback), origin_loop_(MessageLoop::current()) { - DCHECK(callback_); } void FileReader::Start() { BrowserThread::PostTask( BrowserThread::FILE, FROM_HERE, - NewRunnableMethod(this, &FileReader::ReadFileOnBackgroundThread)); + base::Bind(&FileReader::ReadFileOnBackgroundThread, this)); } FileReader::~FileReader() {} @@ -29,11 +30,5 @@ FileReader::~FileReader() {} void FileReader::ReadFileOnBackgroundThread() { std::string data; bool success = file_util::ReadFileToString(resource_.GetFilePath(), &data); - origin_loop_->PostTask(FROM_HERE, NewRunnableMethod( - this, &FileReader::RunCallback, success, data)); -} - -void FileReader::RunCallback(bool success, const std::string& data) { - callback_->Run(success, data); - delete callback_; + origin_loop_->PostTask(FROM_HERE, base::Bind(callback_, success, data)); } diff --git a/chrome/browser/extensions/file_reader.h b/chrome/browser/extensions/file_reader.h index 4651260..63f2afa 100644 --- a/chrome/browser/extensions/file_reader.h +++ b/chrome/browser/extensions/file_reader.h @@ -8,7 +8,7 @@ #include <string> -#include "base/callback_old.h" +#include "base/callback.h" #include "base/memory/ref_counted.h" #include "chrome/common/extensions/extension_resource.h" @@ -21,9 +21,9 @@ class MessageLoop; class FileReader : public base::RefCountedThreadSafe<FileReader> { public: // Reports success or failure and the data of the file upon success. - typedef Callback2<bool, const std::string&>::Type Callback; + typedef base::Callback<void(bool, const std::string&)> Callback; - FileReader(const ExtensionResource& resource, Callback* callback); + FileReader(const ExtensionResource& resource, const Callback& callback); // Called to start reading the file on a background thread. Upon completion, // the callback will be notified of the results. @@ -35,10 +35,9 @@ class FileReader : public base::RefCountedThreadSafe<FileReader> { virtual ~FileReader(); void ReadFileOnBackgroundThread(); - void RunCallback(bool success, const std::string& data); ExtensionResource resource_; - Callback* callback_; + Callback callback_; MessageLoop* origin_loop_; }; diff --git a/chrome/browser/extensions/file_reader_unittest.cc b/chrome/browser/extensions/file_reader_unittest.cc index d9ef15e..cfbc670 100644 --- a/chrome/browser/extensions/file_reader_unittest.cc +++ b/chrome/browser/extensions/file_reader_unittest.cc @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/callback.h" +#include "base/bind.h" +#include "base/bind_helpers.h" #include "base/file_path.h" #include "base/file_util.h" #include "base/message_loop.h" @@ -34,8 +35,8 @@ class Receiver { Receiver() : succeeded_(false) { } - FileReader::Callback* NewCallback() { - return ::NewCallback(this, &Receiver::DidReadFile); + FileReader::Callback NewCallback() { + return base::Bind(&Receiver::DidReadFile, base::Unretained(this)); } bool succeeded() const { return succeeded_; } |