Index: chrome/browser/sessions/session_service.cc |
diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc |
index 1c570ac88b87ac2ecf5d90cc2b44e9e4dd8996a0..a86adb8c19eaa0eaaba0fb2bfa144e70231480e0 100644 |
--- a/chrome/browser/sessions/session_service.cc |
+++ b/chrome/browser/sessions/session_service.cc |
@@ -9,6 +9,7 @@ |
#include <set> |
#include <vector> |
+#include "base/bind.h" |
csilv
2011/11/24 00:01:04
add bind/bind_helpers.h
James Hawkins
2011/11/24 00:15:36
Done.
|
#include "base/file_util.h" |
#include "base/memory/scoped_vector.h" |
#include "base/message_loop.h" |
@@ -76,7 +77,7 @@ class InternalSessionRequest |
: public BaseSessionService::InternalGetCommandsRequest { |
public: |
InternalSessionRequest( |
- CallbackType* callback, |
+ const CallbackType& callback, |
SessionService::SessionCallback* real_callback) |
: BaseSessionService::InternalGetCommandsRequest(callback), |
real_callback(real_callback) { |
@@ -183,8 +184,9 @@ void SessionService::MoveCurrentSessionToLastSession() { |
if (!backend_thread()) { |
backend()->MoveCurrentSessionToLastSession(); |
} else { |
- backend_thread()->message_loop()->PostTask(FROM_HERE, NewRunnableMethod( |
- backend(), &SessionBackend::MoveCurrentSessionToLastSession)); |
+ backend_thread()->message_loop()->PostTask( |
+ FROM_HERE, base::Bind(&SessionBackend::MoveCurrentSessionToLastSession, |
+ backend())); |
} |
} |
@@ -419,8 +421,10 @@ SessionService::Handle SessionService::GetLastSession( |
SessionCallback* callback) { |
return ScheduleGetLastSessionCommands( |
new InternalSessionRequest( |
- NewCallback(this, &SessionService::OnGotSessionCommands), |
- callback), consumer); |
+ base::Bind(&SessionService::OnGotSessionCommands, |
+ base::Unretained(this)), |
+ callback), |
+ consumer); |
} |
SessionService::Handle SessionService::GetCurrentSession( |
@@ -430,7 +434,8 @@ SessionService::Handle SessionService::GetCurrentSession( |
// If there are no pending window closes, we can get the current session |
// from memory. |
scoped_refptr<InternalSessionRequest> request(new InternalSessionRequest( |
- NewCallback(this, &SessionService::OnGotSessionCommands), |
+ base::Bind(&SessionService::OnGotSessionCommands, |
+ base::Unretained(this)), |
callback)); |
AddRequest(request, consumer); |
IdToRange tab_to_available_range; |
@@ -438,16 +443,16 @@ SessionService::Handle SessionService::GetCurrentSession( |
BuildCommandsFromBrowsers(&(request->commands), |
&tab_to_available_range, |
&windows_to_track); |
- request->ForwardResult( |
- BaseSessionService::InternalGetCommandsRequest::TupleType( |
- request->handle(), request)); |
+ request->ForwardResult(request->handle(), request); |
return request->handle(); |
} else { |
// If there are pending window closes, read the current session from disk. |
return ScheduleGetCurrentSessionCommands( |
new InternalSessionRequest( |
- NewCallback(this, &SessionService::OnGotSessionCommands), |
- callback), consumer); |
+ base::Bind(&SessionService::OnGotSessionCommands, |
+ base::Unretained(this)), |
+ callback), |
+ consumer); |
} |
} |