summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-17 21:40:38 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-17 21:40:38 +0000
commit9a68a6d01cd68fe844be2bdbb05ec415fa574b3c (patch)
treebb751e0c4144c1585d3e6ce63909b9ce10fbd6eb /chrome/browser/sync
parent72042ea571a06d578738f231961b33b0f81e42ac (diff)
downloadchromium_src-9a68a6d01cd68fe844be2bdbb05ec415fa574b3c.zip
chromium_src-9a68a6d01cd68fe844be2bdbb05ec415fa574b3c.tar.gz
chromium_src-9a68a6d01cd68fe844be2bdbb05ec415fa574b3c.tar.bz2
[Sync] Add Location parameter to Read/WriteTransactions
Also add to SyncChangeProcessor and SyncableService. BUG= TEST= Review URL: http://codereview.chromium.org/7189004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89556 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync')
-rw-r--r--chrome/browser/sync/abstract_profile_sync_service_test.cc2
-rw-r--r--chrome/browser/sync/api/sync_change_processor.h7
-rw-r--r--chrome/browser/sync/api/syncable_service.h5
-rw-r--r--chrome/browser/sync/api/syncable_service_mock.h11
-rw-r--r--chrome/browser/sync/engine/apply_updates_command.cc2
-rw-r--r--chrome/browser/sync/engine/apply_updates_command_unittest.cc24
-rw-r--r--chrome/browser/sync/engine/build_and_process_conflict_sets_command.cc2
-rw-r--r--chrome/browser/sync/engine/conflict_resolver.cc4
-rw-r--r--chrome/browser/sync/engine/post_commit_message_command.cc2
-rw-r--r--chrome/browser/sync/engine/process_commit_response_command.cc2
-rw-r--r--chrome/browser/sync/engine/process_commit_response_command_unittest.cc10
-rw-r--r--chrome/browser/sync/engine/process_updates_command.cc2
-rw-r--r--chrome/browser/sync/engine/syncapi.cc38
-rw-r--r--chrome/browser/sync/engine/syncapi.h10
-rw-r--r--chrome/browser/sync/engine/syncapi_mock.h7
-rw-r--r--chrome/browser/sync/engine/syncapi_unittest.cc84
-rw-r--r--chrome/browser/sync/engine/syncer.cc2
-rw-r--r--chrome/browser/sync/engine/syncer_unittest.cc348
-rw-r--r--chrome/browser/sync/engine/syncer_util.cc4
-rw-r--r--chrome/browser/sync/engine/verify_updates_command.cc2
-rw-r--r--chrome/browser/sync/engine/verify_updates_command_unittest.cc2
-rw-r--r--chrome/browser/sync/glue/app_model_associator.cc3
-rw-r--r--chrome/browser/sync/glue/autofill_change_processor.cc3
-rw-r--r--chrome/browser/sync/glue/autofill_model_associator.cc9
-rw-r--r--chrome/browser/sync/glue/autofill_profile_change_processor.cc3
-rw-r--r--chrome/browser/sync/glue/autofill_profile_model_associator.cc9
-rw-r--r--chrome/browser/sync/glue/autofill_profile_model_associator_unittest.cc7
-rw-r--r--chrome/browser/sync/glue/bookmark_change_processor.cc12
-rw-r--r--chrome/browser/sync/glue/bookmark_model_associator.cc13
-rw-r--r--chrome/browser/sync/glue/extension_model_associator.cc3
-rw-r--r--chrome/browser/sync/glue/extension_sync.cc11
-rw-r--r--chrome/browser/sync/glue/generic_change_processor.cc12
-rw-r--r--chrome/browser/sync/glue/generic_change_processor.h3
-rw-r--r--chrome/browser/sync/glue/password_change_processor.cc3
-rw-r--r--chrome/browser/sync/glue/password_model_associator.cc9
-rw-r--r--chrome/browser/sync/glue/session_model_associator.cc19
-rw-r--r--chrome/browser/sync/glue/sync_backend_host.cc3
-rw-r--r--chrome/browser/sync/glue/theme_change_processor.cc3
-rw-r--r--chrome/browser/sync/glue/theme_model_associator.cc7
-rw-r--r--chrome/browser/sync/glue/typed_url_change_processor.cc7
-rw-r--r--chrome/browser/sync/glue/typed_url_model_associator.cc9
-rw-r--r--chrome/browser/sync/js_sync_manager_observer_unittest.cc9
-rw-r--r--chrome/browser/sync/profile_sync_service_autofill_unittest.cc16
-rw-r--r--chrome/browser/sync/profile_sync_service_bookmark_unittest.cc19
-rw-r--r--chrome/browser/sync/profile_sync_service_password_unittest.cc8
-rw-r--r--chrome/browser/sync/profile_sync_service_preference_unittest.cc15
-rw-r--r--chrome/browser/sync/profile_sync_service_session_unittest.cc9
-rw-r--r--chrome/browser/sync/profile_sync_service_typed_url_unittest.cc5
-rw-r--r--chrome/browser/sync/sessions/sync_session_unittest.cc2
-rw-r--r--chrome/browser/sync/syncable/syncable.cc45
-rw-r--r--chrome/browser/sync/syncable/syncable.h29
-rw-r--r--chrome/browser/sync/syncable/syncable_mock.cc4
-rw-r--r--chrome/browser/sync/syncable/syncable_mock.h3
-rw-r--r--chrome/browser/sync/syncable/syncable_unittest.cc134
54 files changed, 532 insertions, 484 deletions
diff --git a/chrome/browser/sync/abstract_profile_sync_service_test.cc b/chrome/browser/sync/abstract_profile_sync_service_test.cc
index f7c5f66..2dcace3 100644
--- a/chrome/browser/sync/abstract_profile_sync_service_test.cc
+++ b/chrome/browser/sync/abstract_profile_sync_service_test.cc
@@ -48,7 +48,7 @@ bool ProfileSyncServiceTestHelper::CreateRoot(
std::string tag_name = GetTagForType(model_type);
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry node(&wtrans,
CREATE,
wtrans.root_id(),
diff --git a/chrome/browser/sync/api/sync_change_processor.h b/chrome/browser/sync/api/sync_change_processor.h
index e16d313..80be610 100644
--- a/chrome/browser/sync/api/sync_change_processor.h
+++ b/chrome/browser/sync/api/sync_change_processor.h
@@ -10,13 +10,18 @@
class SyncChange;
+namespace tracked_objects {
+class Location;
+} // namespace tracked_objects
+
typedef std::vector<SyncChange> SyncChangeList;
// An interface for services that handle receiving SyncChanges.
class SyncChangeProcessor {
public:
// Process a list of SyncChanges.
- virtual void ProcessSyncChanges(const SyncChangeList& change_list) = 0;
+ virtual void ProcessSyncChanges(const tracked_objects::Location& from_here,
+ const SyncChangeList& change_list) = 0;
protected:
virtual ~SyncChangeProcessor();
};
diff --git a/chrome/browser/sync/api/syncable_service.h b/chrome/browser/sync/api/syncable_service.h
index 7f4de39..3c40975 100644
--- a/chrome/browser/sync/api/syncable_service.h
+++ b/chrome/browser/sync/api/syncable_service.h
@@ -8,6 +8,7 @@
#include <vector>
+#include "base/compiler_specific.h"
#include "chrome/browser/sync/syncable/model_type.h"
#include "chrome/browser/sync/api/sync_change_processor.h"
#include "chrome/browser/sync/api/sync_data.h"
@@ -39,7 +40,9 @@ class SyncableService : public SyncChangeProcessor {
// SyncChangeProcessor interface.
// Process a list of new SyncChanges and update the local data as necessary.
- virtual void ProcessSyncChanges(const SyncChangeList& change_list) = 0;
+ virtual void ProcessSyncChanges(
+ const tracked_objects::Location& from_here,
+ const SyncChangeList& change_list) OVERRIDE = 0;
protected:
virtual ~SyncableService();
diff --git a/chrome/browser/sync/api/syncable_service_mock.h b/chrome/browser/sync/api/syncable_service_mock.h
index 5390e4a..29c5e9b 100644
--- a/chrome/browser/sync/api/syncable_service_mock.h
+++ b/chrome/browser/sync/api/syncable_service_mock.h
@@ -6,6 +6,7 @@
#define CHROME_BROWSER_SYNC_API_SYNCABLE_SERVICE_MOCK_H_
#pragma once
+#include "base/tracked.h"
#include "chrome/browser/sync/api/syncable_service.h"
#include "chrome/browser/sync/api/sync_change.h"
#include "testing/gmock/include/gmock/gmock.h"
@@ -16,12 +17,12 @@ class SyncableServiceMock : public SyncableService {
virtual ~SyncableServiceMock();
MOCK_METHOD3(MergeDataAndStartSyncing, bool(
- syncable::ModelType type,
- const SyncDataList& initial_sync_data,
+ syncable::ModelType, const SyncDataList&,
SyncChangeProcessor* sync_processor));
- MOCK_METHOD1(StopSyncing, void(syncable::ModelType type));
- MOCK_CONST_METHOD1(GetAllSyncData, SyncDataList(syncable::ModelType type));
- MOCK_METHOD1(ProcessSyncChanges, void(const SyncChangeList& change_list));
+ MOCK_METHOD1(StopSyncing, void(syncable::ModelType));
+ MOCK_CONST_METHOD1(GetAllSyncData, SyncDataList(syncable::ModelType));
+ MOCK_METHOD2(ProcessSyncChanges,
+ void(const tracked_objects::Location&, const SyncChangeList&));
};
#endif // CHROME_BROWSER_SYNC_API_SYNCABLE_SERVICE_MOCK_H_
diff --git a/chrome/browser/sync/engine/apply_updates_command.cc b/chrome/browser/sync/engine/apply_updates_command.cc
index 670e171..40ce3ec 100644
--- a/chrome/browser/sync/engine/apply_updates_command.cc
+++ b/chrome/browser/sync/engine/apply_updates_command.cc
@@ -24,7 +24,7 @@ void ApplyUpdatesCommand::ModelChangingExecuteImpl(SyncSession* session) {
LOG(ERROR) << "Scoped dir lookup failed!";
return;
}
- syncable::WriteTransaction trans(dir, syncable::SYNCER, FROM_HERE);
+ syncable::WriteTransaction trans(FROM_HERE, syncable::SYNCER, dir);
syncable::Directory::UnappliedUpdateMetaHandles handles;
dir->GetUnappliedUpdateMetaHandles(&trans, &handles);
diff --git a/chrome/browser/sync/engine/apply_updates_command_unittest.cc b/chrome/browser/sync/engine/apply_updates_command_unittest.cc
index 1e091b1..368cf15 100644
--- a/chrome/browser/sync/engine/apply_updates_command_unittest.cc
+++ b/chrome/browser/sync/engine/apply_updates_command_unittest.cc
@@ -56,7 +56,7 @@ class ApplyUpdatesCommandTest : public SyncerCommandTest {
const string& parent_id) {
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, syncable::CREATE_NEW_UPDATE_ITEM,
Id::CreateFromServerId(item_id));
ASSERT_TRUE(entry.good());
@@ -77,7 +77,7 @@ class ApplyUpdatesCommandTest : public SyncerCommandTest {
bool is_unique) {
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, syncable::CREATE_NEW_UPDATE_ITEM,
Id::CreateFromServerId(item_id));
ASSERT_TRUE(entry.good());
@@ -103,7 +103,7 @@ class ApplyUpdatesCommandTest : public SyncerCommandTest {
int64* metahandle_out) {
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
Id predecessor_id = dir->GetLastChildId(&trans, parent_id);
MutableEntry entry(&trans, syncable::CREATE, parent_id, name);
ASSERT_TRUE(entry.good());
@@ -222,7 +222,7 @@ TEST_F(ApplyUpdatesCommandTest, DecryptablePassword) {
// know it's safe.
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
cryptographer =
session()->context()->directory_manager()->GetCryptographer(&trans);
}
@@ -286,7 +286,7 @@ TEST_F(ApplyUpdatesCommandTest, SomeUndecryptablePassword) {
{
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Cryptographer* cryptographer =
session()->context()->directory_manager()->GetCryptographer(&trans);
@@ -343,7 +343,7 @@ TEST_F(ApplyUpdatesCommandTest, NigoriUpdate) {
{
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
cryptographer =
session()->context()->directory_manager()->GetCryptographer(&trans);
EXPECT_EQ(encrypted_types, cryptographer->GetEncryptedTypes());
@@ -388,7 +388,7 @@ TEST_F(ApplyUpdatesCommandTest, EncryptUnsyncedChanges) {
{
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
cryptographer =
session()->context()->directory_manager()->GetCryptographer(&trans);
EXPECT_EQ(encrypted_types, cryptographer->GetEncryptedTypes());
@@ -439,7 +439,7 @@ TEST_F(ApplyUpdatesCommandTest, EncryptUnsyncedChanges) {
// Ensure we have unsynced nodes that aren't properly encrypted.
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
EXPECT_FALSE(VerifyUnsyncedChangesAreEncrypted(&trans, encrypted_types));
Syncer::UnsyncedMetaHandles handles;
@@ -464,7 +464,7 @@ TEST_F(ApplyUpdatesCommandTest, EncryptUnsyncedChanges) {
{
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
// If ProcessUnsyncedChangesForEncryption worked, all our unsynced changes
// should be encrypted now.
@@ -486,7 +486,7 @@ TEST_F(ApplyUpdatesCommandTest, CannotEncryptUnsyncedChanges) {
{
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
cryptographer =
session()->context()->directory_manager()->GetCryptographer(&trans);
EXPECT_EQ(encrypted_types, cryptographer->GetEncryptedTypes());
@@ -539,7 +539,7 @@ TEST_F(ApplyUpdatesCommandTest, CannotEncryptUnsyncedChanges) {
// Ensure we have unsynced nodes that aren't properly encrypted.
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
EXPECT_FALSE(VerifyUnsyncedChangesAreEncrypted(&trans, encrypted_types));
Syncer::UnsyncedMetaHandles handles;
SyncerUtil::GetUnsyncedEntries(&trans, &handles);
@@ -566,7 +566,7 @@ TEST_F(ApplyUpdatesCommandTest, CannotEncryptUnsyncedChanges) {
// Ensure the unsynced nodes are still not encrypted.
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
// Since we're in conflict, the specifics don't reflect the unapplied
// changes.
diff --git a/chrome/browser/sync/engine/build_and_process_conflict_sets_command.cc b/chrome/browser/sync/engine/build_and_process_conflict_sets_command.cc
index 933dfee..09147d4 100644
--- a/chrome/browser/sync/engine/build_and_process_conflict_sets_command.cc
+++ b/chrome/browser/sync/engine/build_and_process_conflict_sets_command.cc
@@ -44,7 +44,7 @@ bool BuildAndProcessConflictSetsCommand::BuildAndProcessConflictSets(
return false;
bool had_single_direction_sets = false;
{ // Scope for transaction.
- syncable::WriteTransaction trans(dir, syncable::SYNCER, FROM_HERE);
+ syncable::WriteTransaction trans(FROM_HERE, syncable::SYNCER, dir);
BuildConflictSets(&trans,
session->status_controller()->mutable_conflict_progress());
had_single_direction_sets = ProcessSingleDirectionConflictSets(&trans,
diff --git a/chrome/browser/sync/engine/conflict_resolver.cc b/chrome/browser/sync/engine/conflict_resolver.cc
index 0e1b9d7..3df973c 100644
--- a/chrome/browser/sync/engine/conflict_resolver.cc
+++ b/chrome/browser/sync/engine/conflict_resolver.cc
@@ -433,7 +433,7 @@ bool ConflictResolver::LogAndSignalIfConflictStuck(
bool ConflictResolver::ResolveSimpleConflicts(const ScopedDirLookup& dir,
StatusController* status) {
- WriteTransaction trans(dir, syncable::SYNCER, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, syncable::SYNCER, dir);
bool forward_progress = false;
const ConflictProgress& progress = status->conflict_progress();
// First iterate over simple conflict items (those that belong to no set).
@@ -478,7 +478,7 @@ bool ConflictResolver::ResolveConflicts(const ScopedDirLookup& dir,
bool rv = false;
if (ResolveSimpleConflicts(dir, status))
rv = true;
- WriteTransaction trans(dir, syncable::SYNCER, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, syncable::SYNCER, dir);
set<ConflictSet*>::const_iterator set_it;
for (set_it = progress.ConflictSetsBegin();
set_it != progress.ConflictSetsEnd();
diff --git a/chrome/browser/sync/engine/post_commit_message_command.cc b/chrome/browser/sync/engine/post_commit_message_command.cc
index babfd36..abc4ee1 100644
--- a/chrome/browser/sync/engine/post_commit_message_command.cc
+++ b/chrome/browser/sync/engine/post_commit_message_command.cc
@@ -35,7 +35,7 @@ void PostCommitMessageCommand::ExecuteImpl(sessions::SyncSession* session) {
// Not to be confused with IS_UNSYNCED, this bit is used to detect local
// changes to items that happen during the server Commit operation.
status->increment_num_consecutive_errors();
- syncable::WriteTransaction trans(dir, syncable::SYNCER, FROM_HERE);
+ syncable::WriteTransaction trans(FROM_HERE, syncable::SYNCER, dir);
const vector<syncable::Id>& commit_ids = status->commit_ids();
for (size_t i = 0; i < commit_ids.size(); i++) {
syncable::MutableEntry entry(&trans, syncable::GET_BY_ID, commit_ids[i]);
diff --git a/chrome/browser/sync/engine/process_commit_response_command.cc b/chrome/browser/sync/engine/process_commit_response_command.cc
index 6e7293d..e5c73a7 100644
--- a/chrome/browser/sync/engine/process_commit_response_command.cc
+++ b/chrome/browser/sync/engine/process_commit_response_command.cc
@@ -137,7 +137,7 @@ void ProcessCommitResponseCommand::ProcessCommitResponse(
ConflictProgress* conflict_progress = status->mutable_conflict_progress();
OrderedCommitSet::Projection proj = status->commit_id_projection();
if (!proj.empty()) { // Scope for WriteTransaction.
- WriteTransaction trans(dir, SYNCER, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, SYNCER, dir);
for (size_t i = 0; i < proj.size(); i++) {
CommitResponse::ResponseType response_type =
ProcessSingleCommitResponse(&trans, cr.entryresponse(proj[i]),
diff --git a/chrome/browser/sync/engine/process_commit_response_command_unittest.cc b/chrome/browser/sync/engine/process_commit_response_command_unittest.cc
index 4c8c796..bfa97f2 100644
--- a/chrome/browser/sync/engine/process_commit_response_command_unittest.cc
+++ b/chrome/browser/sync/engine/process_commit_response_command_unittest.cc
@@ -91,7 +91,7 @@ class ProcessCommitResponseCommandTestWithParam
int64* metahandle_out) {
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
Id predecessor_id = dir->GetLastChildId(&trans, parent_id);
MutableEntry entry(&trans, syncable::CREATE, parent_id, name);
ASSERT_TRUE(entry.good());
@@ -137,7 +137,7 @@ class ProcessCommitResponseCommandTestWithParam
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, syncable::GET_BY_ID, item_id);
ASSERT_TRUE(entry.good());
entry.Put(syncable::SYNCING, true);
@@ -233,7 +233,7 @@ TEST_F(ProcessCommitResponseCommandTest, MultipleCommitIdProjections) {
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Id new_fid = dir->GetFirstChildId(&trans, id_factory_.root());
ASSERT_FALSE(new_fid.IsRoot());
EXPECT_TRUE(new_fid.ServerKnows());
@@ -287,7 +287,7 @@ TEST_F(ProcessCommitResponseCommandTest, NewFolderCommitKeepsChildOrder) {
{
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
ASSERT_EQ(folder_id, dir->GetFirstChildId(&trans, id_factory_.root()));
}
@@ -320,7 +320,7 @@ TEST_F(ProcessCommitResponseCommandTest, NewFolderCommitKeepsChildOrder) {
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
// Lookup the parent folder by finding a child of the root. We can't use
// folder_id here, because it changed during the commit.
Id new_fid = dir->GetFirstChildId(&trans, id_factory_.root());
diff --git a/chrome/browser/sync/engine/process_updates_command.cc b/chrome/browser/sync/engine/process_updates_command.cc
index f11db79..85accd3 100644
--- a/chrome/browser/sync/engine/process_updates_command.cc
+++ b/chrome/browser/sync/engine/process_updates_command.cc
@@ -98,7 +98,7 @@ ServerUpdateProcessingResult ProcessUpdatesCommand::ProcessUpdate(
syncable::Id server_id = update.id();
const std::string name = SyncerProtoUtil::NameFromSyncEntity(update);
- syncable::WriteTransaction trans(dir, syncable::SYNCER, FROM_HERE);
+ syncable::WriteTransaction trans(FROM_HERE, syncable::SYNCER, dir);
// Look to see if there's a local item that should recieve this update,
// maybe due to a duplicate client tag or a lost commit response.
diff --git a/chrome/browser/sync/engine/syncapi.cc b/chrome/browser/sync/engine/syncapi.cc
index 690905d..bcc19fa 100644
--- a/chrome/browser/sync/engine/syncapi.cc
+++ b/chrome/browser/sync/engine/syncapi.cc
@@ -964,11 +964,12 @@ bool ReadNode::InitByTagLookup(const std::string& tag) {
//////////////////////////////////////////////////////////////////////////
// ReadTransaction member definitions
-ReadTransaction::ReadTransaction(UserShare* share)
+ReadTransaction::ReadTransaction(const tracked_objects::Location& from_here,
+ UserShare* share)
: BaseTransaction(share),
transaction_(NULL),
close_transaction_(true) {
- transaction_ = new syncable::ReadTransaction(GetLookup(), FROM_HERE);
+ transaction_ = new syncable::ReadTransaction(from_here, GetLookup());
}
ReadTransaction::ReadTransaction(UserShare* share,
@@ -989,11 +990,12 @@ syncable::BaseTransaction* ReadTransaction::GetWrappedTrans() const {
//////////////////////////////////////////////////////////////////////////
// WriteTransaction member definitions
-WriteTransaction::WriteTransaction(UserShare* share)
+WriteTransaction::WriteTransaction(const tracked_objects::Location& from_here,
+ UserShare* share)
: BaseTransaction(share),
transaction_(NULL) {
- transaction_ = new syncable::WriteTransaction(GetLookup(), syncable::SYNCAPI,
- FROM_HERE);
+ transaction_ = new syncable::WriteTransaction(from_here, syncable::SYNCAPI,
+ GetLookup());
}
WriteTransaction::~WriteTransaction() {
@@ -1798,7 +1800,7 @@ bool SyncManager::SyncInternal::Init(
void SyncManager::SyncInternal::BootstrapEncryption(
const std::string& restored_key_for_bootstrapping) {
// Cryptographer should only be accessed while holding a transaction.
- ReadTransaction trans(GetUserShare());
+ ReadTransaction trans(FROM_HERE, GetUserShare());
Cryptographer* cryptographer = trans.GetCryptographer();
// Set the bootstrap token before bailing out if nigori node is not there.
@@ -1816,7 +1818,7 @@ bool SyncManager::SyncInternal::UpdateCryptographerFromNigori() {
if (!lookup->initial_sync_ended_for_type(syncable::NIGORI))
return false; // Should only happen during first time sync.
- ReadTransaction trans(GetUserShare());
+ ReadTransaction trans(FROM_HERE, GetUserShare());
Cryptographer* cryptographer = trans.GetCryptographer();
ReadNode node(&trans);
@@ -1965,7 +1967,7 @@ void SyncManager::SyncInternal::SetPassphrase(
}
// All accesses to the cryptographer are protected by a transaction.
- WriteTransaction trans(GetUserShare());
+ WriteTransaction trans(FROM_HERE, GetUserShare());
Cryptographer* cryptographer = trans.GetCryptographer();
KeyParams params = {"localhost", "dummy", passphrase};
@@ -2027,7 +2029,7 @@ void SyncManager::SyncInternal::SetPassphrase(
}
bool SyncManager::SyncInternal::IsUsingExplicitPassphrase() {
- ReadTransaction trans(&share_);
+ ReadTransaction trans(FROM_HERE, &share_);
ReadNode node(&trans);
if (!node.InitByTagLookup(kNigoriTag)) {
// TODO(albertb): Plumb an UnrecoverableError all the way back to the PSS.
@@ -2044,7 +2046,7 @@ void SyncManager::SyncInternal::EncryptDataTypes(
VLOG(1) << "Attempting to encrypt datatypes "
<< syncable::ModelTypeSetToString(encrypted_types);
- WriteTransaction trans(GetUserShare());
+ WriteTransaction trans(FROM_HERE, GetUserShare());
WriteNode node(&trans);
if (!node.InitByTagLookup(kNigoriTag)) {
NOTREACHED() << "Unable to set encrypted datatypes because Nigori node not "
@@ -2473,7 +2475,7 @@ void SyncManager::SyncInternal::OnSyncEngineEvent(
{
// Check to see if we need to notify the frontend that we have newly
// encrypted types or that we require a passphrase.
- sync_api::ReadTransaction trans(GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, GetUserShare());
syncable::ModelTypeSet encrypted_types = GetEncryptedTypes(&trans);
syncable::ModelTypeSet encrypted_and_enabled_types;
for (syncable::ModelTypeSet::iterator iter = encrypted_types.begin();
@@ -2691,7 +2693,7 @@ browser_sync::JsArgList
browser_sync::JsArgList
SyncManager::SyncInternal::GetRootNodeDetails(
const browser_sync::JsArgList& args) {
- ReadTransaction trans(GetUserShare());
+ ReadTransaction trans(FROM_HERE, GetUserShare());
ReadNode root(&trans);
root.InitByRootLookup();
ListValue return_args;
@@ -2722,7 +2724,7 @@ browser_sync::JsArgList GetNodeInfoById(
ListValue* node_summaries = new ListValue();
return_args.Append(node_summaries);
ListValue* id_list = NULL;
- ReadTransaction trans(user_share);
+ ReadTransaction trans(FROM_HERE, user_share);
if (args.Get().GetList(0, &id_list)) {
CHECK(id_list);
for (size_t i = 0; i < id_list->GetSize(); ++i) {
@@ -2762,7 +2764,7 @@ browser_sync::JsArgList SyncManager::SyncInternal::
return_args.Append(child_ids);
int64 id = GetId(args.Get(), 0);
if (id != kInvalidId) {
- ReadTransaction trans(GetUserShare());
+ ReadTransaction trans(FROM_HERE, GetUserShare());
syncable::Directory::ChildHandles child_handles;
trans.GetLookup()->GetChildHandlesByHandle(trans.GetWrappedTrans(),
id, &child_handles);
@@ -2793,7 +2795,7 @@ browser_sync::JsArgList SyncManager::SyncInternal::
ListValue* result = new ListValue();
return_args.Append(result);
- ReadTransaction trans(GetUserShare());
+ ReadTransaction trans(FROM_HERE, GetUserShare());
std::vector<const syncable::EntryKernel*> entry_kernels;
trans.GetLookup()->GetAllEntryKernels(trans.GetWrappedTrans(),
&entry_kernels);
@@ -2967,18 +2969,18 @@ void SyncManager::RefreshEncryption() {
}
syncable::ModelTypeSet SyncManager::GetEncryptedDataTypes() const {
- sync_api::ReadTransaction trans(GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, GetUserShare());
return GetEncryptedTypes(&trans);
}
bool SyncManager::HasUnsyncedItems() const {
- sync_api::ReadTransaction trans(GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, GetUserShare());
return (trans.GetWrappedTrans()->directory()->unsynced_entity_count() != 0);
}
void SyncManager::LogUnsyncedItems(int level) const {
std::vector<int64> unsynced_handles;
- sync_api::ReadTransaction trans(GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, GetUserShare());
trans.GetWrappedTrans()->directory()->GetUnsyncedMetaHandles(
trans.GetWrappedTrans(), &unsynced_handles);
diff --git a/chrome/browser/sync/engine/syncapi.h b/chrome/browser/sync/engine/syncapi.h
index 8264f41..94d7e36 100644
--- a/chrome/browser/sync/engine/syncapi.h
+++ b/chrome/browser/sync/engine/syncapi.h
@@ -101,6 +101,10 @@ class ThemeSpecifics;
class TypedUrlSpecifics;
}
+namespace tracked_objects {
+class Location;
+} // namespace tracked_objects
+
namespace sync_api {
class BaseTransaction;
@@ -552,7 +556,8 @@ class BaseTransaction {
class ReadTransaction : public BaseTransaction {
public:
// Start a new read-only transaction on the specified repository.
- explicit ReadTransaction(UserShare* share);
+ ReadTransaction(const tracked_objects::Location& from_here,
+ UserShare* share);
// Resume the middle of a transaction. Will not close transaction.
ReadTransaction(UserShare* share, syncable::BaseTransaction* trans);
@@ -576,7 +581,8 @@ class ReadTransaction : public BaseTransaction {
class WriteTransaction : public BaseTransaction {
public:
// Start a new read/write transaction.
- explicit WriteTransaction(UserShare* share);
+ explicit WriteTransaction(const tracked_objects::Location& from_here,
+ UserShare* share);
virtual ~WriteTransaction();
// Provide access to the syncable.h transaction from the API WriteNode.
diff --git a/chrome/browser/sync/engine/syncapi_mock.h b/chrome/browser/sync/engine/syncapi_mock.h
index ada0a56..8e71aa8 100644
--- a/chrome/browser/sync/engine/syncapi_mock.h
+++ b/chrome/browser/sync/engine/syncapi_mock.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// 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.
@@ -16,9 +16,10 @@ using sync_api::WriteTransaction;
class MockWriteTransaction : public sync_api::WriteTransaction {
public:
- explicit MockWriteTransaction(Directory* directory)
+ MockWriteTransaction(const tracked_objects::Location& from_here,
+ Directory* directory)
: sync_api::WriteTransaction() {
- this->SetTransaction(new MockSyncableWriteTransaction(directory));
+ SetTransaction(new MockSyncableWriteTransaction(from_here, directory));
}
};
diff --git a/chrome/browser/sync/engine/syncapi_unittest.cc b/chrome/browser/sync/engine/syncapi_unittest.cc
index 532e020..90ffe3f 100644
--- a/chrome/browser/sync/engine/syncapi_unittest.cc
+++ b/chrome/browser/sync/engine/syncapi_unittest.cc
@@ -87,7 +87,7 @@ void ExpectInt64Value(int64 expected_value,
int64 MakeNode(UserShare* share,
ModelType model_type,
const std::string& client_tag) {
- WriteTransaction trans(share);
+ WriteTransaction trans(FROM_HERE, share);
ReadNode root_node(&trans);
root_node.InitByRootLookup();
WriteNode node(&trans);
@@ -102,7 +102,7 @@ int64 MakeNodeWithParent(UserShare* share,
ModelType model_type,
const std::string& client_tag,
int64 parent_id) {
- WriteTransaction trans(share);
+ WriteTransaction trans(FROM_HERE, share);
ReadNode parent_node(&trans);
EXPECT_TRUE(parent_node.InitByIdLookup(parent_id));
WriteNode node(&trans);
@@ -117,7 +117,7 @@ int64 MakeFolderWithParent(UserShare* share,
ModelType model_type,
int64 parent_id,
BaseNode* predecessor) {
- WriteTransaction trans(share);
+ WriteTransaction trans(FROM_HERE, share);
ReadNode parent_node(&trans);
EXPECT_TRUE(parent_node.InitByIdLookup(parent_id));
WriteNode node(&trans);
@@ -135,7 +135,7 @@ int64 MakeServerNodeForType(UserShare* share,
syncable::AddDefaultExtensionValue(model_type, &specifics);
syncable::ScopedDirLookup dir(share->dir_manager.get(), share->name);
EXPECT_TRUE(dir.good());
- syncable::WriteTransaction trans(dir, syncable::UNITTEST, FROM_HERE);
+ syncable::WriteTransaction trans(FROM_HERE, syncable::UNITTEST, dir);
// Attempt to lookup by nigori tag.
std::string type_tag = syncable::ModelTypeToRootTag(model_type);
syncable::Id node_id = syncable::Id::CreateFromServerId(type_tag);
@@ -174,16 +174,16 @@ class SyncApiTest : public testing::Test {
TEST_F(SyncApiTest, SanityCheckTest) {
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
EXPECT_TRUE(trans.GetWrappedTrans() != NULL);
}
{
- WriteTransaction trans(test_user_share_.user_share());
+ WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
EXPECT_TRUE(trans.GetWrappedTrans() != NULL);
}
{
// No entries but root should exist
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode node(&trans);
// Metahandle 1 can be root, sanity check 2
EXPECT_FALSE(node.InitByIdLookup(2));
@@ -192,7 +192,7 @@ TEST_F(SyncApiTest, SanityCheckTest) {
TEST_F(SyncApiTest, BasicTagWrite) {
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
EXPECT_EQ(root_node.GetFirstChildId(), 0);
@@ -202,7 +202,7 @@ TEST_F(SyncApiTest, BasicTagWrite) {
syncable::BOOKMARKS, "testtag"));
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode node(&trans);
EXPECT_TRUE(node.InitByClientTagLookup(syncable::BOOKMARKS,
"testtag"));
@@ -232,7 +232,7 @@ TEST_F(SyncApiTest, GenerateSyncableHash) {
TEST_F(SyncApiTest, ModelTypesSiloed) {
{
- WriteTransaction trans(test_user_share_.user_share());
+ WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
EXPECT_EQ(root_node.GetFirstChildId(), 0);
@@ -246,7 +246,7 @@ TEST_F(SyncApiTest, ModelTypesSiloed) {
syncable::AUTOFILL, "collideme"));
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode bookmarknode(&trans);
EXPECT_TRUE(bookmarknode.InitByClientTagLookup(syncable::BOOKMARKS,
@@ -268,13 +268,13 @@ TEST_F(SyncApiTest, ModelTypesSiloed) {
TEST_F(SyncApiTest, ReadMissingTagsFails) {
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode node(&trans);
EXPECT_FALSE(node.InitByClientTagLookup(syncable::BOOKMARKS,
"testtag"));
}
{
- WriteTransaction trans(test_user_share_.user_share());
+ WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
WriteNode node(&trans);
EXPECT_FALSE(node.InitByClientTagLookup(syncable::BOOKMARKS,
"testtag"));
@@ -289,7 +289,7 @@ TEST_F(SyncApiTest, TestDeleteBehavior) {
std::wstring test_title(L"test1");
{
- WriteTransaction trans(test_user_share_.user_share());
+ WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
@@ -310,7 +310,7 @@ TEST_F(SyncApiTest, TestDeleteBehavior) {
// Ensure we can delete something with a tag.
{
- WriteTransaction trans(test_user_share_.user_share());
+ WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
WriteNode wnode(&trans);
EXPECT_TRUE(wnode.InitByClientTagLookup(syncable::BOOKMARKS,
"testtag"));
@@ -323,7 +323,7 @@ TEST_F(SyncApiTest, TestDeleteBehavior) {
// Lookup of a node which was deleted should return failure,
// but have found some data about the node.
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode node(&trans);
EXPECT_FALSE(node.InitByClientTagLookup(syncable::BOOKMARKS,
"testtag"));
@@ -333,7 +333,7 @@ TEST_F(SyncApiTest, TestDeleteBehavior) {
}
{
- WriteTransaction trans(test_user_share_.user_share());
+ WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode folder_node(&trans);
EXPECT_TRUE(folder_node.InitByIdLookup(folder_id));
@@ -350,7 +350,7 @@ TEST_F(SyncApiTest, TestDeleteBehavior) {
// Now look up should work.
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode node(&trans);
EXPECT_TRUE(node.InitByClientTagLookup(syncable::BOOKMARKS,
"testtag"));
@@ -362,11 +362,11 @@ TEST_F(SyncApiTest, TestDeleteBehavior) {
TEST_F(SyncApiTest, WriteAndReadPassword) {
KeyParams params = {"localhost", "username", "passphrase"};
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
trans.GetCryptographer()->AddKey(params);
}
{
- WriteTransaction trans(test_user_share_.user_share());
+ WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
@@ -378,7 +378,7 @@ TEST_F(SyncApiTest, WriteAndReadPassword) {
password_node.SetPasswordSpecifics(data);
}
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
@@ -394,7 +394,7 @@ TEST_F(SyncApiTest, WriteAndReadPassword) {
TEST_F(SyncApiTest, BaseNodeSetSpecifics) {
int64 child_id = MakeNode(test_user_share_.user_share(),
syncable::BOOKMARKS, "testtag");
- WriteTransaction trans(test_user_share_.user_share());
+ WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
WriteNode node(&trans);
EXPECT_TRUE(node.InitByIdLookup(child_id));
@@ -412,7 +412,7 @@ TEST_F(SyncApiTest, BaseNodeSetSpecifics) {
TEST_F(SyncApiTest, BaseNodeSetSpecificsPreservesUnknownFields) {
int64 child_id = MakeNode(test_user_share_.user_share(),
syncable::BOOKMARKS, "testtag");
- WriteTransaction trans(test_user_share_.user_share());
+ WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
WriteNode node(&trans);
EXPECT_TRUE(node.InitByIdLookup(child_id));
EXPECT_TRUE(node.GetEntitySpecifics().unknown_fields().empty());
@@ -478,7 +478,7 @@ void CheckNodeValue(const BaseNode& node, const DictionaryValue& value,
} // namespace
TEST_F(SyncApiTest, BaseNodeGetSummaryAsValue) {
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode node(&trans);
node.InitByRootLookup();
scoped_ptr<DictionaryValue> details(node.GetSummaryAsValue());
@@ -490,7 +490,7 @@ TEST_F(SyncApiTest, BaseNodeGetSummaryAsValue) {
}
TEST_F(SyncApiTest, BaseNodeGetDetailsAsValue) {
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode node(&trans);
node.InitByRootLookup();
scoped_ptr<DictionaryValue> details(node.GetDetailsAsValue());
@@ -574,7 +574,7 @@ TEST_F(SyncApiTest, ChangeRecordToValue) {
syncable::BOOKMARKS, "testtag");
sync_pb::EntitySpecifics child_specifics;
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ReadNode node(&trans);
EXPECT_TRUE(node.InitByIdLookup(child_id));
child_specifics = node.GetEntry()->Get(syncable::SPECIFICS);
@@ -582,7 +582,7 @@ TEST_F(SyncApiTest, ChangeRecordToValue) {
// Add
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
SyncManager::ChangeRecord record;
record.action = SyncManager::ChangeRecord::ACTION_ADD;
record.id = 1;
@@ -594,7 +594,7 @@ TEST_F(SyncApiTest, ChangeRecordToValue) {
// Update
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
SyncManager::ChangeRecord record;
record.action = SyncManager::ChangeRecord::ACTION_UPDATE;
record.id = child_id;
@@ -606,7 +606,7 @@ TEST_F(SyncApiTest, ChangeRecordToValue) {
// Delete (no extra)
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
SyncManager::ChangeRecord record;
record.action = SyncManager::ChangeRecord::ACTION_DELETE;
record.id = child_id + 1;
@@ -617,7 +617,7 @@ TEST_F(SyncApiTest, ChangeRecordToValue) {
// Delete (with extra)
{
- ReadTransaction trans(test_user_share_.user_share());
+ ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
SyncManager::ChangeRecord record;
record.action = SyncManager::ChangeRecord::ACTION_DELETE;
record.id = child_id + 1;
@@ -773,7 +773,7 @@ class SyncManagerTest : public testing::Test,
return false;
// Set the nigori cryptographer information.
- WriteTransaction trans(share);
+ WriteTransaction trans(FROM_HERE, share);
Cryptographer* cryptographer = trans.GetCryptographer();
if (!cryptographer)
return false;
@@ -926,7 +926,7 @@ TEST_F(SyncManagerTest, ProcessMessageGetRootNodeDetails) {
DictionaryValue* node_info = NULL;
EXPECT_TRUE(return_args.Get().GetDictionary(0, &node_info));
if (node_info) {
- ReadTransaction trans(sync_manager_.GetUserShare());
+ ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
ReadNode node(&trans);
node.InitByRootLookup();
CheckNodeValue(node, *node_info, true);
@@ -949,7 +949,7 @@ void CheckGetNodesByIdReturnArgs(const SyncManager& sync_manager,
DictionaryValue* node_info = NULL;
EXPECT_TRUE(nodes->GetDictionary(0, &node_info));
ASSERT_TRUE(node_info);
- ReadTransaction trans(sync_manager.GetUserShare());
+ ReadTransaction trans(FROM_HERE, sync_manager.GetUserShare());
ReadNode node(&trans);
EXPECT_TRUE(node.InitByIdLookup(id));
CheckNodeValue(node, *node_info, is_detailed);
@@ -962,7 +962,7 @@ class SyncManagerGetNodesByIdTest : public SyncManagerTest {
void RunGetNodesByIdTest(const char* message_name, bool is_detailed) {
int64 root_id = kInvalidId;
{
- ReadTransaction trans(sync_manager_.GetUserShare());
+ ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
root_id = root_node.GetId();
@@ -1275,7 +1275,7 @@ TEST_F(SyncManagerTest, EncryptDataTypesWithNoData) {
EXPECT_CALL(observer_, OnEncryptionComplete(expected_types));
sync_manager_.EncryptDataTypes(encrypted_types);
{
- ReadTransaction trans(sync_manager_.GetUserShare());
+ ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
EXPECT_EQ(expected_types,
GetEncryptedTypes(&trans));
}
@@ -1310,7 +1310,7 @@ TEST_F(SyncManagerTest, EncryptDataTypesWithData) {
}
{
- ReadTransaction trans(sync_manager_.GetUserShare());
+ ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
EXPECT_TRUE(syncable::VerifyDataTypeEncryption(trans.GetWrappedTrans(),
syncable::BOOKMARKS,
false /* not encrypted */));
@@ -1330,7 +1330,7 @@ TEST_F(SyncManagerTest, EncryptDataTypesWithData) {
sync_manager_.EncryptDataTypes(encrypted_types);
{
- ReadTransaction trans(sync_manager_.GetUserShare());
+ ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
EXPECT_EQ(encrypted_types,
GetEncryptedTypes(&trans));
EXPECT_TRUE(syncable::VerifyDataTypeEncryption(trans.GetWrappedTrans(),
@@ -1348,7 +1348,7 @@ TEST_F(SyncManagerTest, EncryptDataTypesWithData) {
TEST_F(SyncManagerTest, SetPassphraseWithPassword) {
EXPECT_TRUE(SetUpEncryption());
{
- WriteTransaction trans(sync_manager_.GetUserShare());
+ WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
@@ -1363,7 +1363,7 @@ TEST_F(SyncManagerTest, SetPassphraseWithPassword) {
EXPECT_CALL(observer_, OnEncryptionComplete(_));
sync_manager_.SetPassphrase("new_passphrase", true);
{
- ReadTransaction trans(sync_manager_.GetUserShare());
+ ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
@@ -1381,7 +1381,7 @@ TEST_F(SyncManagerTest, SetPassphraseWithEmptyPasswordNode) {
int64 node_id = 0;
std::string tag = "foo";
{
- WriteTransaction trans(sync_manager_.GetUserShare());
+ WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
@@ -1394,7 +1394,7 @@ TEST_F(SyncManagerTest, SetPassphraseWithEmptyPasswordNode) {
EXPECT_CALL(observer_, OnEncryptionComplete(_));
sync_manager_.SetPassphrase("new_passphrase", true);
{
- ReadTransaction trans(sync_manager_.GetUserShare());
+ ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
@@ -1403,7 +1403,7 @@ TEST_F(SyncManagerTest, SetPassphraseWithEmptyPasswordNode) {
tag));
}
{
- ReadTransaction trans(sync_manager_.GetUserShare());
+ ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
ReadNode root_node(&trans);
root_node.InitByRootLookup();
diff --git a/chrome/browser/sync/engine/syncer.cc b/chrome/browser/sync/engine/syncer.cc
index d6a580d..abcf5f0 100644
--- a/chrome/browser/sync/engine/syncer.cc
+++ b/chrome/browser/sync/engine/syncer.cc
@@ -168,7 +168,7 @@ void Syncer::SyncShare(sessions::SyncSession* session,
LOG(ERROR) << "Scoped dir lookup failed!";
return;
}
- WriteTransaction trans(dir, SYNCER, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, SYNCER, dir);
sessions::ScopedSetSessionWriteTransaction set_trans(session, &trans);
VLOG(1) << "Getting the Commit IDs";
diff --git a/chrome/browser/sync/engine/syncer_unittest.cc b/chrome/browser/sync/engine/syncer_unittest.cc
index 5fceff0..16c4783 100644
--- a/chrome/browser/sync/engine/syncer_unittest.cc
+++ b/chrome/browser/sync/engine/syncer_unittest.cc
@@ -197,7 +197,7 @@ class SyncerTest : public testing::Test,
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
CHECK(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
syncable::Directory::ChildHandles children;
dir->GetChildHandlesById(&trans, trans.root_id(), &children);
ASSERT_TRUE(0 == children.size());
@@ -282,7 +282,7 @@ class SyncerTest : public testing::Test,
map<int, syncable::Id> expected_positions;
{ // Transaction scope.
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
while (!test->id.IsRoot()) {
if (test->commit_index >= 0) {
map<int, syncable::Id>::value_type entry(test->commit_index,
@@ -348,7 +348,7 @@ class SyncerTest : public testing::Test,
// The expected order is "x", "b", "c", "e", truncated appropriately.
for (size_t limit = expected_id_order.size() + 2; limit > 0; --limit) {
StatusController* status = session_->status_controller();
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
ScopedSetSessionWriteTransaction set_trans(session_.get(), &wtrans);
status->set_unsynced_handles(unsynced_handle_view);
@@ -389,7 +389,7 @@ class SyncerTest : public testing::Test,
const syncable::Id& id) {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
EXPECT_TRUE(dir.good());
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&wtrans, syncable::CREATE, wtrans.root_id(),
entry_name);
EXPECT_TRUE(entry.good());
@@ -416,7 +416,7 @@ class SyncerTest : public testing::Test,
ValueType default_value) const {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
EXPECT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_HANDLE, metahandle);
EXPECT_TRUE(entry.good());
if (!entry.good()) {
@@ -489,7 +489,7 @@ TEST_F(SyncerTest, TestCallGatherUnsyncedEntries) {
{
Syncer::UnsyncedMetaHandles handles;
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
SyncerUtil::GetUnsyncedEntries(&trans, &handles);
}
ASSERT_TRUE(0 == handles.size());
@@ -508,7 +508,7 @@ TEST_F(SyncerTest, GetCommitIdsCommandTruncates) {
int64 handle_d = CreateUnsyncedDirectory("D", ids_.MakeLocal("d"));
int64 handle_e = CreateUnsyncedDirectory("E", ids_.MakeLocal("e"));
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry entry_x(&wtrans, GET_BY_HANDLE, handle_x);
MutableEntry entry_b(&wtrans, GET_BY_HANDLE, handle_b);
MutableEntry entry_c(&wtrans, GET_BY_HANDLE, handle_c);
@@ -546,7 +546,7 @@ TEST_F(SyncerTest, TestCommitMetahandleIterator) {
const vector<int64>& unsynced(status->unsynced_handles());
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
ScopedSetSessionWriteTransaction set_trans(session_.get(), &wtrans);
sessions::OrderedCommitSet commit_set(session_->routing_info());
@@ -563,7 +563,7 @@ TEST_F(SyncerTest, TestCommitMetahandleIterator) {
session_metahandles.push_back(CreateUnsyncedDirectory("test3", "testid3"));
status->set_unsynced_handles(session_metahandles);
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
ScopedSetSessionWriteTransaction set_trans(session_.get(), &wtrans);
sessions::OrderedCommitSet commit_set(session_->routing_info());
GetCommitIdsCommand::CommitMetahandleIterator iterator(unsynced, &wtrans,
@@ -589,7 +589,7 @@ TEST_F(SyncerTest, TestGetUnsyncedAndSimpleCommit) {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
ASSERT_TRUE(dir.good());
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(),
"Pete");
ASSERT_TRUE(parent.good());
@@ -613,7 +613,7 @@ TEST_F(SyncerTest, TestGetUnsyncedAndSimpleCommit) {
EXPECT_TRUE(parent_id_ == mock_server_->committed_ids()[0]);
EXPECT_TRUE(child_id_ == mock_server_->committed_ids()[1]);
{
- ReadTransaction rt(dir, FROM_HERE);
+ ReadTransaction rt(FROM_HERE, dir);
Entry entry(&rt, syncable::GET_BY_ID, child_id_);
ASSERT_TRUE(entry.good());
VerifyTestDataInEntry(&rt, &entry);
@@ -626,7 +626,7 @@ TEST_F(SyncerTest, TestPurgeWhileUnsynced) {
ASSERT_TRUE(dir.good());
syncable::Id pref_node_id = TestIdFactory::MakeServer("Tim");
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(), "Pete");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
@@ -661,14 +661,14 @@ TEST_F(SyncerTest, TestPurgeWhileUnsynced) {
EXPECT_TRUE(parent_id_ == mock_server_->committed_ids()[0]);
EXPECT_TRUE(child_id_ == mock_server_->committed_ids()[1]);
{
- ReadTransaction rt(dir, FROM_HERE);
+ ReadTransaction rt(FROM_HERE, dir);
Entry entry(&rt, syncable::GET_BY_ID, child_id_);
ASSERT_TRUE(entry.good());
VerifyTestDataInEntry(&rt, &entry);
}
dir->SaveChanges();
{
- ReadTransaction rt(dir, FROM_HERE);
+ ReadTransaction rt(FROM_HERE, dir);
Entry entry(&rt, syncable::GET_BY_ID, pref_node_id);
ASSERT_FALSE(entry.good());
}
@@ -679,7 +679,7 @@ TEST_F(SyncerTest, TestPurgeWhileUnapplied) {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
ASSERT_TRUE(dir.good());
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(), "Pete");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNAPPLIED_UPDATE, true);
@@ -696,7 +696,7 @@ TEST_F(SyncerTest, TestPurgeWhileUnapplied) {
syncer_->SyncShare(session_.get(), SYNCER_BEGIN, SYNCER_END);
dir->SaveChanges();
{
- ReadTransaction rt(dir, FROM_HERE);
+ ReadTransaction rt(FROM_HERE, dir);
Entry entry(&rt, syncable::GET_BY_ID, parent_id_);
ASSERT_FALSE(entry.good());
}
@@ -837,7 +837,7 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNesting) {
int64 now_minus_2h = ServerTimeToClientTime(now_server_time - 7200000);
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
{
MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(),
"Bob");
@@ -920,7 +920,7 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNewItems) {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
ASSERT_TRUE(dir.good());
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(), "1");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
@@ -937,7 +937,7 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNewItems) {
child.Put(syncable::BASE_VERSION, 1);
}
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, syncable::CREATE, parent_id_, "A");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
@@ -953,7 +953,7 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNewItems) {
parent.Put(syncable::BASE_VERSION, 1);
}
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, syncable::CREATE, child_id_, "A");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
@@ -988,7 +988,7 @@ TEST_F(SyncerTest, TestCommitListOrderingCounterexample) {
syncable::Id child2_id = ids_.NewServerId();
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(), "P");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
@@ -1029,7 +1029,7 @@ TEST_F(SyncerTest, TestCommitListOrderingAndNewParent) {
string child_name = "B";
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(),
parent1_name);
ASSERT_TRUE(parent.good());
@@ -1043,7 +1043,7 @@ TEST_F(SyncerTest, TestCommitListOrderingAndNewParent) {
syncable::Id parent2_id = ids_.NewLocalId();
syncable::Id child_id = ids_.NewServerId();
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent2(&wtrans, syncable::CREATE, parent_id_, parent2_name);
ASSERT_TRUE(parent2.good());
parent2.Put(syncable::IS_UNSYNCED, true);
@@ -1068,7 +1068,7 @@ TEST_F(SyncerTest, TestCommitListOrderingAndNewParent) {
EXPECT_TRUE(parent2_id == mock_server_->committed_ids()[1]);
EXPECT_TRUE(child_id == mock_server_->committed_ids()[2]);
{
- ReadTransaction rtrans(dir, FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, dir);
// Check that things committed correctly.
Entry entry_1(&rtrans, syncable::GET_BY_ID, parent_id_);
EXPECT_EQ(entry_1.Get(NON_UNIQUE_NAME), parent1_name);
@@ -1100,7 +1100,7 @@ TEST_F(SyncerTest, TestCommitListOrderingAndNewParentAndChild) {
string child_name = "B";
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans,
syncable::CREATE,
wtrans.root_id(),
@@ -1117,7 +1117,7 @@ TEST_F(SyncerTest, TestCommitListOrderingAndNewParentAndChild) {
const Id parent2_local_id = ids_.NewLocalId();
const Id child_local_id = ids_.NewLocalId();
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent2(&wtrans, syncable::CREATE, parent_id_, parent2_name);
ASSERT_TRUE(parent2.good());
parent2.Put(syncable::IS_UNSYNCED, true);
@@ -1143,7 +1143,7 @@ TEST_F(SyncerTest, TestCommitListOrderingAndNewParentAndChild) {
EXPECT_TRUE(parent2_local_id == mock_server_->committed_ids()[1]);
EXPECT_TRUE(child_local_id == mock_server_->committed_ids()[2]);
{
- ReadTransaction rtrans(dir, FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, dir);
Entry parent(&rtrans, syncable::GET_BY_ID,
GetOnlyEntryWithName(&rtrans, rtrans.root_id(), parent_name));
@@ -1206,7 +1206,7 @@ TEST_F(SyncerTest, TestBasicUpdate) {
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
Entry entry(&trans, GET_BY_ID,
syncable::Id::CreateFromServerId("some_id"));
ASSERT_TRUE(entry.good());
@@ -1265,7 +1265,7 @@ TEST_F(SyncerTest, IllegalAndLegalUpdates) {
}
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
// Even though it has the same name, it should work.
Entry name_clash(&trans, GET_BY_ID, ids_.FromNumber(2));
ASSERT_TRUE(name_clash.good());
@@ -1302,7 +1302,7 @@ TEST_F(SyncerTest, IllegalAndLegalUpdates) {
mock_server_->AddUpdateDirectory(4, 0, "old_version", 10, 10);
syncer_->SyncShare(session_.get(), SYNCER_BEGIN, SYNCER_END);
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry still_a_dir(&trans, GET_BY_ID, ids_.FromNumber(10));
ASSERT_TRUE(still_a_dir.good());
@@ -1366,7 +1366,7 @@ TEST_F(SyncerTest, CommitTimeRename) {
// Create a folder and an entry.
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&trans, CREATE, root_id_, "Folder");
ASSERT_TRUE(parent.good());
parent.Put(IS_DIR, true);
@@ -1387,7 +1387,7 @@ TEST_F(SyncerTest, CommitTimeRename) {
// Verify it was correctly renamed.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry_folder(&trans, GET_BY_HANDLE, metahandle_folder);
ASSERT_TRUE(entry_folder.good());
EXPECT_EQ("renamed_Folder", entry_folder.Get(NON_UNIQUE_NAME));
@@ -1416,7 +1416,7 @@ TEST_F(SyncerTest, CommitTimeRenameI18N) {
int64 metahandle;
// Create a folder, expect a commit time rename.
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&trans, CREATE, root_id_, "Folder");
ASSERT_TRUE(parent.good());
parent.Put(IS_DIR, true);
@@ -1430,7 +1430,7 @@ TEST_F(SyncerTest, CommitTimeRenameI18N) {
// Verify it was correctly renamed.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
string expected_folder_name(i18nString);
expected_folder_name.append("Folder");
@@ -1450,7 +1450,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateAdjustsChildren) {
// Create a folder in the root.
int64 metahandle_folder;
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, CREATE, trans.root_id(), "new_folder");
ASSERT_TRUE(entry.good());
entry.Put(IS_DIR, true);
@@ -1463,7 +1463,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateAdjustsChildren) {
syncable::Id folder_id;
int64 metahandle_entry;
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_HANDLE, metahandle_folder);
ASSERT_TRUE(entry.good());
folder_id = entry.Get(ID);
@@ -1472,7 +1472,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateAdjustsChildren) {
// Create an entry in the newly created folder.
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, CREATE, folder_id, "new_entry");
ASSERT_TRUE(entry.good());
metahandle_entry = entry.Get(META_HANDLE);
@@ -1482,7 +1482,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateAdjustsChildren) {
// Verify it and pull the ID out of the entry.
syncable::Id entry_id;
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, syncable::GET_BY_HANDLE, metahandle_entry);
ASSERT_TRUE(entry.good());
EXPECT_EQ(folder_id, entry.Get(PARENT_ID));
@@ -1512,7 +1512,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateAdjustsChildren) {
SyncShareAsDelegate();
{
// The folder's ID should have been updated.
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry folder(&trans, GET_BY_HANDLE, metahandle_folder);
ASSERT_TRUE(folder.good());
EXPECT_EQ("new_folder", folder.Get(NON_UNIQUE_NAME));
@@ -1544,7 +1544,7 @@ TEST_F(SyncerTest, CommitReuniteUpdate) {
// Create an entry in the root.
int64 entry_metahandle;
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, CREATE, trans.root_id(), "new_entry");
ASSERT_TRUE(entry.good());
entry_metahandle = entry.Get(META_HANDLE);
@@ -1554,7 +1554,7 @@ TEST_F(SyncerTest, CommitReuniteUpdate) {
// Verify it and pull the ID out.
syncable::Id entry_id;
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_HANDLE, entry_metahandle);
ASSERT_TRUE(entry.good());
@@ -1580,7 +1580,7 @@ TEST_F(SyncerTest, CommitReuniteUpdate) {
// Alright! Apply that update!
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_HANDLE, entry_metahandle);
ASSERT_TRUE(entry.good());
EXPECT_TRUE(new_version == entry.Get(BASE_VERSION));
@@ -1601,7 +1601,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateDoesNotChokeOnDeletedLocalEntry) {
// Create a entry in the root.
int64 entry_metahandle;
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, CREATE, trans.root_id(), "new_entry");
ASSERT_TRUE(entry.good());
entry_metahandle = entry.Get(META_HANDLE);
@@ -1610,7 +1610,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateDoesNotChokeOnDeletedLocalEntry) {
// Verify it and pull the ID out.
syncable::Id entry_id;
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_HANDLE, entry_metahandle);
ASSERT_TRUE(entry.good());
entry_id = entry.Get(ID);
@@ -1635,7 +1635,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateDoesNotChokeOnDeletedLocalEntry) {
// Purposefully delete the entry now before the update application finishes.
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
Id new_entry_id = GetOnlyEntryWithName(
&trans, trans.root_id(), "new_entry");
MutableEntry entry(&trans, GET_BY_ID, new_entry_id);
@@ -1646,7 +1646,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateDoesNotChokeOnDeletedLocalEntry) {
// Just don't CHECK fail in sync, have the update split.
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Id new_entry_id = GetOnlyEntryWithName(
&trans, trans.root_id(), "new_entry");
Entry entry(&trans, GET_BY_ID, new_entry_id);
@@ -1668,7 +1668,7 @@ TEST_F(SyncerTest, ConflictMatchingEntryHandlesUnsanitizedNames) {
mock_server_->set_conflict_all_commits(true);
SyncShareAsDelegate();
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry A(&wtrans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(A.good());
@@ -1686,7 +1686,7 @@ TEST_F(SyncerTest, ConflictMatchingEntryHandlesUnsanitizedNames) {
mock_server_->set_conflict_all_commits(false);
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry A(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(A.good());
@@ -1710,7 +1710,7 @@ TEST_F(SyncerTest, ConflictMatchingEntryHandlesNormalNames) {
mock_server_->set_conflict_all_commits(true);
SyncShareAsDelegate();
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry A(&wtrans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(A.good());
@@ -1728,7 +1728,7 @@ TEST_F(SyncerTest, ConflictMatchingEntryHandlesNormalNames) {
mock_server_->set_conflict_all_commits(false);
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry A(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(A.good());
@@ -1753,7 +1753,7 @@ TEST_F(SyncerTest, ReverseFolderOrderingTest) {
mock_server_->AddUpdateDirectory(2, 1, "child", 10, 10);
mock_server_->AddUpdateDirectory(1, 0, "parent", 10, 10);
LoopSyncShare();
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Id child_id = GetOnlyEntryWithName(
&trans, ids_.FromNumber(4), "gggchild");
@@ -1767,7 +1767,7 @@ class EntryCreatedInNewFolderTest : public SyncerTest {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
CHECK(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans,
syncable::GET_BY_ID,
GetOnlyEntryWithName(&trans,
@@ -1789,7 +1789,7 @@ TEST_F(EntryCreatedInNewFolderTest, EntryCreatedInNewFolderMidSync) {
ASSERT_TRUE(dir.good());
dir->set_store_birthday(mock_server_->store_birthday());
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, syncable::CREATE, trans.root_id(),
"bob");
ASSERT_TRUE(entry.good());
@@ -1804,7 +1804,7 @@ TEST_F(EntryCreatedInNewFolderTest, EntryCreatedInNewFolderMidSync) {
syncer_->SyncShare(session_.get(), BUILD_COMMIT_REQUEST, SYNCER_END);
EXPECT_TRUE(1 == mock_server_->committed_ids().size());
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry parent_entry(&trans, syncable::GET_BY_ID,
GetOnlyEntryWithName(&trans, TestIdFactory::root(), "bob"));
ASSERT_TRUE(parent_entry.good());
@@ -1832,7 +1832,7 @@ TEST_F(SyncerTest, UnappliedUpdateOnCreatedItemItemDoesNotCrash) {
int64 metahandle_fred;
{
// Create an item.
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry fred_match(&trans, CREATE, trans.root_id(),
"fred_match");
ASSERT_TRUE(fred_match.good());
@@ -1846,7 +1846,7 @@ TEST_F(SyncerTest, UnappliedUpdateOnCreatedItemItemDoesNotCrash) {
syncable::Id fred_match_id;
{
// Now receive a change from outside.
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry fred_match(&trans, GET_BY_HANDLE, metahandle_fred);
ASSERT_TRUE(fred_match.good());
EXPECT_TRUE(fred_match.Get(ID).ServerKnows());
@@ -1870,7 +1870,7 @@ TEST_F(SyncerTest, DoublyChangedWithResolver) {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
CHECK(dir.good());
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, syncable::CREATE, root_id_, "Folder");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_DIR, true);
@@ -1888,7 +1888,7 @@ TEST_F(SyncerTest, DoublyChangedWithResolver) {
LoopSyncShare();
syncable::Directory::ChildHandles children;
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
dir->GetChildHandlesById(&trans, parent_id_, &children);
// We expect the conflict resolver to preserve the local entry.
Entry child(&trans, syncable::GET_BY_ID, child_id_);
@@ -1913,7 +1913,7 @@ TEST_F(SyncerTest, CommitsUpdateDoesntAlterEntry) {
int64 test_time = 123456;
int64 entry_metahandle;
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&wtrans, syncable::CREATE, root_id_, "Pete");
ASSERT_TRUE(entry.good());
EXPECT_FALSE(entry.Get(ID).ServerKnows());
@@ -1928,7 +1928,7 @@ TEST_F(SyncerTest, CommitsUpdateDoesntAlterEntry) {
int64 version;
int64 server_position_in_parent;
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, syncable::GET_BY_HANDLE, entry_metahandle);
ASSERT_TRUE(entry.good());
id = entry.Get(ID);
@@ -1944,7 +1944,7 @@ TEST_F(SyncerTest, CommitsUpdateDoesntAlterEntry) {
EXPECT_EQ(server_position_in_parent, update->position_in_parent());
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, syncable::GET_BY_ID, id);
ASSERT_TRUE(entry.good());
EXPECT_TRUE(entry.Get(MTIME) == test_time);
@@ -1958,7 +1958,7 @@ TEST_F(SyncerTest, ParentAndChildBothMatch) {
syncable::Id child_id = ids_.NewServerId();
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, CREATE, root_id_, "Folder");
ASSERT_TRUE(parent.good());
parent.Put(IS_DIR, true);
@@ -1981,7 +1981,7 @@ TEST_F(SyncerTest, ParentAndChildBothMatch) {
SyncShareAsDelegate();
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Directory::ChildHandles children;
dir->GetChildHandlesById(&trans, root_id_, &children);
EXPECT_TRUE(1 == children.size());
@@ -2001,7 +2001,7 @@ TEST_F(SyncerTest, CommittingNewDeleted) {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
CHECK(dir.good());
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, CREATE, trans.root_id(), "bob");
entry.Put(IS_UNSYNCED, true);
entry.Put(IS_DEL, true);
@@ -2024,7 +2024,7 @@ TEST_F(SyncerTest, UnappliedUpdateDuringCommit) {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
CHECK(dir.good());
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, CREATE, trans.root_id(), "bob");
entry.Put(ID, ids_.FromNumber(20));
entry.Put(BASE_VERSION, 1);
@@ -2059,7 +2059,7 @@ TEST_F(SyncerTest, DeletingEntryInFolder) {
int64 existing_metahandle;
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, CREATE, trans.root_id(), "existing");
ASSERT_TRUE(entry.good());
entry.Put(IS_DIR, true);
@@ -2069,7 +2069,7 @@ TEST_F(SyncerTest, DeletingEntryInFolder) {
}
syncer_->SyncShare(session_.get(), SYNCER_BEGIN, SYNCER_END);
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry newfolder(&trans, CREATE, trans.root_id(), "new");
ASSERT_TRUE(newfolder.good());
newfolder.Put(IS_DIR, true);
@@ -2098,7 +2098,7 @@ TEST_F(SyncerTest, DeletingEntryWithLocalEdits) {
mock_server_->AddUpdateDirectory(1, 0, "bob", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry newfolder(&trans, CREATE, ids_.FromNumber(1), "local");
ASSERT_TRUE(newfolder.good());
newfolder.Put(IS_UNSYNCED, true);
@@ -2110,7 +2110,7 @@ TEST_F(SyncerTest, DeletingEntryWithLocalEdits) {
mock_server_->SetLastUpdateDeleted();
syncer_->SyncShare(session_.get(), SYNCER_BEGIN, APPLY_UPDATES);
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, syncable::GET_BY_HANDLE, newfolder_metahandle);
ASSERT_TRUE(entry.good());
}
@@ -2126,7 +2126,7 @@ TEST_F(SyncerTest, FolderSwapUpdate) {
mock_server_->AddUpdateDirectory(7801, 0, "fred", 2, 20);
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry id1(&trans, GET_BY_ID, ids_.FromNumber(7801));
ASSERT_TRUE(id1.good());
EXPECT_TRUE("fred" == id1.Get(NON_UNIQUE_NAME));
@@ -2147,7 +2147,7 @@ TEST_F(SyncerTest, NameCollidingFolderSwapWorksFine) {
mock_server_->AddUpdateDirectory(4096, 0, "alice", 1, 10);
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry id1(&trans, GET_BY_ID, ids_.FromNumber(7801));
ASSERT_TRUE(id1.good());
EXPECT_TRUE("bob" == id1.Get(NON_UNIQUE_NAME));
@@ -2166,7 +2166,7 @@ TEST_F(SyncerTest, NameCollidingFolderSwapWorksFine) {
mock_server_->AddUpdateDirectory(4096, 0, "bob", 2, 20);
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry id1(&trans, GET_BY_ID, ids_.FromNumber(7801));
ASSERT_TRUE(id1.good());
EXPECT_TRUE("fred" == id1.Get(NON_UNIQUE_NAME));
@@ -2189,7 +2189,7 @@ TEST_F(SyncerTest, CommitManyItemsInOneGo) {
uint32 items_to_commit = kDefaultMaxCommitBatchSize * max_batches;
CHECK(dir.good());
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
for (uint32 i = 0; i < items_to_commit; i++) {
string nameutf8 = base::StringPrintf("%d", i);
string name(nameutf8.begin(), nameutf8.end());
@@ -2219,7 +2219,7 @@ TEST_F(SyncerTest, HugeConflict) {
// Create a lot of updates for which the parent does not exist yet.
// Generate a huge deep tree which should all fail to apply at first.
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
for (int i = 0; i < item_count ; i++) {
syncable::Id next_id = ids_.NewServerId();
tree_ids.push_back(next_id);
@@ -2231,7 +2231,7 @@ TEST_F(SyncerTest, HugeConflict) {
// Check they're in the expected conflict state.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
for (int i = 0; i < item_count; i++) {
Entry e(&trans, GET_BY_ID, tree_ids[i]);
// They should all exist but none should be applied.
@@ -2248,7 +2248,7 @@ TEST_F(SyncerTest, HugeConflict) {
// Now they should all be OK.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
for (int i = 0; i < item_count; i++) {
Entry e(&trans, GET_BY_ID, tree_ids[i]);
ASSERT_TRUE(e.good());
@@ -2264,7 +2264,7 @@ TEST_F(SyncerTest, DontCrashOnCaseChange) {
mock_server_->AddUpdateDirectory(1, 0, "bob", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry e(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(e.good());
e.Put(IS_UNSYNCED, true);
@@ -2294,7 +2294,7 @@ TEST_F(SyncerTest, NewEntryAndAlteredServerEntrySharePath) {
int64 local_folder_handle;
syncable::Id local_folder_id;
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry new_entry(&wtrans, CREATE, wtrans.root_id(), "Bar.htm");
ASSERT_TRUE(new_entry.good());
local_folder_id = new_entry.Get(ID);
@@ -2311,7 +2311,7 @@ TEST_F(SyncerTest, NewEntryAndAlteredServerEntrySharePath) {
saw_syncer_event_ = false;
{
// Update #20 should have been dropped in favor of the local version.
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry server(&wtrans, GET_BY_ID, ids_.FromNumber(1));
MutableEntry local(&wtrans, GET_BY_HANDLE, local_folder_handle);
ASSERT_TRUE(server.good());
@@ -2335,7 +2335,7 @@ TEST_F(SyncerTest, NewEntryAndAlteredServerEntrySharePath) {
SyncShareAsDelegate();
saw_syncer_event_ = false;
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry server(&wtrans, GET_BY_ID, ids_.FromNumber(1));
MutableEntry local(&wtrans, GET_BY_HANDLE, local_folder_handle);
ASSERT_TRUE(server.good());
@@ -2362,7 +2362,7 @@ TEST_F(SyncerTest, NewEntryAndAlteredServerEntrySharePath_OldBookmarksProto) {
int64 local_folder_handle;
syncable::Id local_folder_id;
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry new_entry(&wtrans, CREATE, wtrans.root_id(), "Bar.htm");
ASSERT_TRUE(new_entry.good());
local_folder_id = new_entry.Get(ID);
@@ -2379,7 +2379,7 @@ TEST_F(SyncerTest, NewEntryAndAlteredServerEntrySharePath_OldBookmarksProto) {
saw_syncer_event_ = false;
{
// Update #20 should have been dropped in favor of the local version.
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry server(&wtrans, GET_BY_ID, ids_.FromNumber(1));
MutableEntry local(&wtrans, GET_BY_HANDLE, local_folder_handle);
ASSERT_TRUE(server.good());
@@ -2403,7 +2403,7 @@ TEST_F(SyncerTest, NewEntryAndAlteredServerEntrySharePath_OldBookmarksProto) {
SyncShareAsDelegate();
saw_syncer_event_ = false;
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry server(&wtrans, GET_BY_ID, ids_.FromNumber(1));
MutableEntry local(&wtrans, GET_BY_HANDLE, local_folder_handle);
ASSERT_TRUE(server.good());
@@ -2430,7 +2430,7 @@ TEST_F(SyncerTest, SiblingDirectoriesBecomeCircular) {
mock_server_->AddUpdateDirectory(2, 0, "B", 10, 10);
SyncShareAsDelegate();
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry A(&wtrans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(A.good());
A.Put(IS_UNSYNCED, true);
@@ -2442,7 +2442,7 @@ TEST_F(SyncerTest, SiblingDirectoriesBecomeCircular) {
SyncShareAsDelegate();
saw_syncer_event_ = false;
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry A(&wtrans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(A.good());
MutableEntry B(&wtrans, GET_BY_ID, ids_.FromNumber(2));
@@ -2462,7 +2462,7 @@ TEST_F(SyncerTest, ConflictSetClassificationError) {
mock_server_->set_conflict_all_commits(true);
SyncShareAsDelegate();
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry A(&wtrans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(A.good());
A.Put(IS_UNSYNCED, true);
@@ -2486,7 +2486,7 @@ TEST_F(SyncerTest, SwapEntryNames) {
mock_server_->set_conflict_all_commits(true);
SyncShareAsDelegate();
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry A(&wtrans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(A.good());
A.Put(IS_UNSYNCED, true);
@@ -2509,7 +2509,7 @@ TEST_F(SyncerTest, DualDeletionWithNewItemNameClash) {
mock_server_->set_conflict_all_commits(true);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry B(&trans, GET_BY_ID, ids_.FromNumber(2));
ASSERT_TRUE(B.good());
WriteTestDataToEntry(&trans, &B);
@@ -2519,7 +2519,7 @@ TEST_F(SyncerTest, DualDeletionWithNewItemNameClash) {
mock_server_->SetLastUpdateDeleted();
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry B(&trans, GET_BY_ID, ids_.FromNumber(2));
ASSERT_TRUE(B.good());
EXPECT_FALSE(B.Get(IS_UNSYNCED));
@@ -2535,7 +2535,7 @@ TEST_F(SyncerTest, FixDirectoryLoopConflict) {
mock_server_->AddUpdateDirectory(2, 0, "fred", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -2546,7 +2546,7 @@ TEST_F(SyncerTest, FixDirectoryLoopConflict) {
SyncShareAsDelegate();
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
Entry fred(&trans, GET_BY_ID, ids_.FromNumber(2));
@@ -2568,7 +2568,7 @@ TEST_F(SyncerTest, ResolveWeWroteTheyDeleted) {
mock_server_->AddUpdateBookmark(1, 0, "bob", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
bob_metahandle = bob.Get(META_HANDLE);
@@ -2580,7 +2580,7 @@ TEST_F(SyncerTest, ResolveWeWroteTheyDeleted) {
SyncShareAsDelegate();
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_HANDLE, bob_metahandle);
ASSERT_TRUE(bob.good());
EXPECT_TRUE(bob.Get(IS_UNSYNCED));
@@ -2604,7 +2604,7 @@ TEST_F(SyncerTest, ServerDeletingFolderWeHaveMovedSomethingInto) {
"fred", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -2617,7 +2617,7 @@ TEST_F(SyncerTest, ServerDeletingFolderWeHaveMovedSomethingInto) {
SyncShareAsDelegate();
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
@@ -2653,7 +2653,7 @@ TEST_F(SyncerTest, DISABLED_ServerDeletingFolderWeHaveAnOpenEntryIn) {
mock_server_->AddUpdateDirectory(2, 0, "fred", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -2661,7 +2661,7 @@ TEST_F(SyncerTest, DISABLED_ServerDeletingFolderWeHaveAnOpenEntryIn) {
}
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
EXPECT_FALSE(bob.Get(IS_UNSYNCED));
@@ -2683,7 +2683,7 @@ TEST_F(SyncerTest, DISABLED_ServerDeletingFolderWeHaveAnOpenEntryIn) {
SyncShareAsDelegate();
EXPECT_FALSE(saw_syncer_event_);
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
Id fred_id =
@@ -2711,7 +2711,7 @@ TEST_F(SyncerTest, WeMovedSomethingIntoAFolderServerHasDeleted) {
"fred", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
Entry fred(&trans, GET_BY_ID, fred_id);
ASSERT_TRUE(fred.good());
@@ -2727,7 +2727,7 @@ TEST_F(SyncerTest, WeMovedSomethingIntoAFolderServerHasDeleted) {
SyncShareAsDelegate();
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
@@ -2771,7 +2771,7 @@ class FolderMoveDeleteRenameTest : public SyncerTest {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
CHECK(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
Entry alice(&trans, GET_BY_ID,
TestIdFactory::FromNumber(fred_id_number));
CHECK(alice.good());
@@ -2805,7 +2805,7 @@ TEST_F(FolderMoveDeleteRenameTest,
"fred", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry fred(&trans, GET_BY_ID, fred_id);
ASSERT_TRUE(fred.good());
fred.Put(IS_UNSYNCED, true);
@@ -2826,7 +2826,7 @@ TEST_F(FolderMoveDeleteRenameTest,
SyncShareAsDelegate();
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
@@ -2865,7 +2865,7 @@ TEST_F(SyncerTest,
SyncShareAsDelegate();
syncable::Id new_item_id;
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -2881,7 +2881,7 @@ TEST_F(SyncerTest,
SyncShareAsDelegate();
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
@@ -2915,7 +2915,7 @@ TEST_F(SyncerTest, ServerMovedSomethingIntoAFolderWeHaveDeleted) {
mock_server_->AddUpdateDirectory(2, 0, "fred", 1, 10);
LoopSyncShare();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -2926,7 +2926,7 @@ TEST_F(SyncerTest, ServerMovedSomethingIntoAFolderWeHaveDeleted) {
LoopSyncShare();
LoopSyncShare();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
Entry fred(&trans, GET_BY_ID, ids_.FromNumber(2));
@@ -2949,7 +2949,7 @@ TEST_F(SyncerTest, ServerMovedAFolderIntoAFolderWeHaveDeletedAndMovedIntoIt) {
mock_server_->AddUpdateDirectory(2, 0, "fred", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -2961,7 +2961,7 @@ TEST_F(SyncerTest, ServerMovedAFolderIntoAFolderWeHaveDeletedAndMovedIntoIt) {
SyncShareAsDelegate();
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
Entry fred(&trans, GET_BY_ID, ids_.FromNumber(2));
@@ -2983,7 +2983,7 @@ TEST_F(SyncerTest, NewServerItemInAFolderWeHaveDeleted) {
mock_server_->AddUpdateDirectory(1, 0, "bob", 1, 10);
LoopSyncShare();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -2994,7 +2994,7 @@ TEST_F(SyncerTest, NewServerItemInAFolderWeHaveDeleted) {
LoopSyncShare();
LoopSyncShare();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
Entry fred(&trans, GET_BY_ID, ids_.FromNumber(2));
@@ -3016,7 +3016,7 @@ TEST_F(SyncerTest, NewServerItemInAFolderHierarchyWeHaveDeleted) {
mock_server_->AddUpdateDirectory(2, 1, "joe", 1, 10);
LoopSyncShare();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -3031,7 +3031,7 @@ TEST_F(SyncerTest, NewServerItemInAFolderHierarchyWeHaveDeleted) {
LoopSyncShare();
LoopSyncShare();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
Entry joe(&trans, GET_BY_ID, ids_.FromNumber(2));
@@ -3061,7 +3061,7 @@ TEST_F(SyncerTest, NewServerItemInAFolderHierarchyWeHaveDeleted2) {
mock_server_->AddUpdateDirectory(2, 1, "joe", 1, 10);
LoopSyncShare();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -3076,7 +3076,7 @@ TEST_F(SyncerTest, NewServerItemInAFolderHierarchyWeHaveDeleted2) {
LoopSyncShare();
LoopSyncShare();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
Entry joe(&trans, GET_BY_ID, ids_.FromNumber(2));
@@ -3116,7 +3116,7 @@ class SusanDeletingTest : public SyncerTest {
ASSERT_GT(countdown_till_delete_, 0);
if (0 != --countdown_till_delete_)
return;
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry susan(&trans, GET_BY_ID, susan_id);
Directory::ChildHandles children;
dir->GetChildHandlesById(&trans, susan.Get(ID), &children);
@@ -3147,7 +3147,7 @@ TEST_F(SusanDeletingTest,
mock_server_->AddUpdateDirectory(joe_id, bob_id, "joe", 1, 10);
LoopSyncShare();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -3167,7 +3167,7 @@ TEST_F(SusanDeletingTest,
SyncShareAsDelegate();
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
Entry joe(&trans, GET_BY_ID, joe_id);
@@ -3191,7 +3191,7 @@ TEST_F(SusanDeletingTest,
LoopSyncShare();
LoopSyncShare();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
Entry joe(&trans, GET_BY_ID, joe_id);
@@ -3231,7 +3231,7 @@ TEST_F(SyncerTest, WeMovedSomethingIntoAFolderHierarchyServerHasDeleted) {
mock_server_->AddUpdateDirectory(alice_id, fred_id, "alice", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -3249,7 +3249,7 @@ TEST_F(SyncerTest, WeMovedSomethingIntoAFolderHierarchyServerHasDeleted) {
{
// Bob is the entry at the bottom of the tree.
// The tree should be regenerated and old IDs removed.
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
EXPECT_FALSE(bob.Get(IS_UNAPPLIED_UPDATE));
@@ -3303,7 +3303,7 @@ TEST_F(SyncerTest, WeMovedSomethingIntoAFolderHierarchyServerHasDeleted2) {
mock_server_->AddUpdateDirectory(alice_id, fred_id, "alice", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
bob.Put(IS_UNSYNCED, true);
@@ -3325,7 +3325,7 @@ TEST_F(SyncerTest, WeMovedSomethingIntoAFolderHierarchyServerHasDeleted2) {
// |- Alice
// |- Bob
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry bob(&trans, GET_BY_ID, bob_id);
ASSERT_TRUE(bob.good());
EXPECT_FALSE(bob.Get(IS_UNAPPLIED_UPDATE));
@@ -3370,7 +3370,7 @@ TEST_F(SyncerTest, DuplicateIDReturn) {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
ASSERT_TRUE(dir.good());
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry folder(&trans, CREATE, trans.root_id(), "bob");
ASSERT_TRUE(folder.good());
folder.Put(IS_UNSYNCED, true);
@@ -3400,7 +3400,7 @@ TEST_F(SyncerTest, DeletedEntryWithBadParentInLoopCalculation) {
mock_server_->AddUpdateDirectory(1, 0, "bob", 1, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry bob(&trans, GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(bob.good());
// This is valid, because the parent could have gone away a long time ago.
@@ -3421,7 +3421,7 @@ TEST_F(SyncerTest, ConflictResolverMergeOverwritesLocalEntry) {
ConflictSet conflict_set;
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry local_deleted(&trans, CREATE, trans.root_id(), "name");
local_deleted.Put(ID, ids_.FromNumber(1));
@@ -3443,7 +3443,7 @@ TEST_F(SyncerTest, ConflictResolverMergeOverwritesLocalEntry) {
conflict_set.push_back(ids_.FromNumber(3));
}
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
context_->resolver()->ProcessConflictSet(&trans, &conflict_set, 50);
}
}
@@ -3453,7 +3453,7 @@ TEST_F(SyncerTest, ConflictResolverMergesLocalDeleteAndServerUpdate) {
CHECK(dir.good());
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry local_deleted(&trans, CREATE, trans.root_id(), "name");
local_deleted.Put(ID, ids_.FromNumber(1));
@@ -3471,7 +3471,7 @@ TEST_F(SyncerTest, ConflictResolverMergesLocalDeleteAndServerUpdate) {
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry local_deleted(&trans, GET_BY_ID, ids_.FromNumber(1));
EXPECT_TRUE(local_deleted.Get(BASE_VERSION) == 10);
EXPECT_TRUE(local_deleted.Get(IS_UNAPPLIED_UPDATE) == false);
@@ -3489,7 +3489,7 @@ TEST_F(SyncerTest, UpdateFlipsTheFolderBit) {
// Local object: a deleted directory (container), revision 1, unsynced.
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry local_deleted(&trans, CREATE, trans.root_id(), "name");
local_deleted.Put(ID, ids_.FromNumber(1));
@@ -3510,7 +3510,7 @@ TEST_F(SyncerTest, UpdateFlipsTheFolderBit) {
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry local_deleted(&trans, GET_BY_ID, ids_.FromNumber(1));
EXPECT_TRUE(local_deleted.Get(BASE_VERSION) == 1);
EXPECT_TRUE(local_deleted.Get(IS_UNAPPLIED_UPDATE) == false);
@@ -3563,7 +3563,7 @@ TEST_F(SyncerTest, MergingExistingItems) {
mock_server_->AddUpdateBookmark(1, 0, "base", 10, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, CREATE, trans.root_id(), "Copy of base");
WriteTestDataToEntry(&trans, &entry);
}
@@ -3619,7 +3619,7 @@ TEST_F(SyncerTest, LongChangelistWithApplicationConflict) {
// Ensure our folder hasn't somehow applied.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry child(&trans, GET_BY_ID, stuck_entry_id);
EXPECT_TRUE(child.good());
EXPECT_TRUE(child.Get(IS_UNAPPLIED_UPDATE));
@@ -3635,7 +3635,7 @@ TEST_F(SyncerTest, LongChangelistWithApplicationConflict) {
LoopSyncShare();
// Check that everything is as expected after the commit.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_ID, folder_id);
ASSERT_TRUE(entry.good());
Entry child(&trans, GET_BY_ID, stuck_entry_id);
@@ -3653,7 +3653,7 @@ TEST_F(SyncerTest, DontMergeTwoExistingItems) {
mock_server_->AddUpdateBookmark(2, 0, "base2", 10, 10);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, GET_BY_ID, ids_.FromNumber(2));
ASSERT_TRUE(entry.good());
EXPECT_TRUE(entry.Put(NON_UNIQUE_NAME, "Copy of base"));
@@ -3662,7 +3662,7 @@ TEST_F(SyncerTest, DontMergeTwoExistingItems) {
mock_server_->AddUpdateBookmark(1, 0, "Copy of base", 50, 50);
SyncRepeatedlyToTriggerConflictResolution(session_.get());
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry1(&trans, GET_BY_ID, ids_.FromNumber(1));
EXPECT_FALSE(entry1.Get(IS_UNAPPLIED_UPDATE));
EXPECT_FALSE(entry1.Get(IS_UNSYNCED));
@@ -3688,7 +3688,7 @@ TEST_F(SyncerTest, TestUndeleteUpdate) {
int64 metahandle;
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_ID, ids_.FromNumber(2));
ASSERT_TRUE(entry.good());
EXPECT_TRUE(entry.Get(IS_DEL));
@@ -3702,7 +3702,7 @@ TEST_F(SyncerTest, TestUndeleteUpdate) {
mock_server_->AddUpdateDirectory(2, 1, "bar", 3, 5);
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_ID, ids_.FromNumber(2));
ASSERT_TRUE(entry.good());
EXPECT_TRUE(entry.Get(IS_DEL));
@@ -3719,7 +3719,7 @@ TEST_F(SyncerTest, TestMoveSanitizedNamedFolder) {
mock_server_->AddUpdateDirectory(2, 0, ":::", 1, 2);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, GET_BY_ID, ids_.FromNumber(2));
ASSERT_TRUE(entry.good());
EXPECT_TRUE(entry.Put(PARENT_ID, ids_.FromNumber(1)));
@@ -3740,7 +3740,7 @@ TEST_F(SyncerTest, UpdateWhereParentIsNotAFolder) {
// Used to cause a CHECK
SyncShareAsDelegate();
{
- ReadTransaction rtrans(dir, FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, dir);
Entry good_entry(&rtrans, syncable::GET_BY_ID, ids_.FromNumber(1));
ASSERT_TRUE(good_entry.good());
EXPECT_FALSE(good_entry.Get(IS_UNAPPLIED_UPDATE));
@@ -3765,7 +3765,7 @@ TEST_F(SyncerTest, DirectoryUpdateTest) {
"in_in_root_name", 3, 3);
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry in_root(&trans, GET_BY_ID, in_root_id);
ASSERT_TRUE(in_root.good());
EXPECT_EQ("in_root_name", in_root.Get(NON_UNIQUE_NAME));
@@ -3787,7 +3787,7 @@ TEST_F(SyncerTest, DirectoryCommitTest) {
int64 bar_metahandle;
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry parent(&wtrans, syncable::CREATE, root_id_, "foo");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
@@ -3806,7 +3806,7 @@ TEST_F(SyncerTest, DirectoryCommitTest) {
}
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry fail_by_old_id_entry(&trans, GET_BY_ID, in_root_id);
ASSERT_FALSE(fail_by_old_id_entry.good());
@@ -3833,7 +3833,7 @@ TEST_F(SyncerTest, ConflictSetSizeReducedToOne) {
"in_root", 1, 1);
SyncShareAsDelegate();
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry oentry(&trans, GET_BY_ID, in_root_id);
ASSERT_TRUE(oentry.good());
oentry.Put(NON_UNIQUE_NAME, "old_in_root");
@@ -3890,7 +3890,7 @@ TEST_F(SyncerTest, EnsureWeSendUpOldParent) {
SyncShareAsDelegate();
{
// A moved entry should send an "old parent."
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, GET_BY_ID, folder_one_id);
ASSERT_TRUE(entry.good());
entry.Put(PARENT_ID, folder_two_id);
@@ -3917,7 +3917,7 @@ TEST_F(SyncerTest, Test64BitVersionSupport) {
// Try writing max int64 to the version fields of a meta entry.
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&wtrans, syncable::CREATE, wtrans.root_id(), name);
ASSERT_TRUE(entry.good());
entry.Put(syncable::BASE_VERSION, really_big_int);
@@ -3926,7 +3926,7 @@ TEST_F(SyncerTest, Test64BitVersionSupport) {
item_metahandle = entry.Get(META_HANDLE);
}
// Now read it back out and make sure the value is max int64.
- ReadTransaction rtrans(dir, FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, dir);
Entry entry(&rtrans, syncable::GET_BY_HANDLE, item_metahandle);
ASSERT_TRUE(entry.good());
EXPECT_TRUE(really_big_int == entry.Get(syncable::BASE_VERSION));
@@ -3942,7 +3942,7 @@ TEST_F(SyncerTest, TestSimpleUndelete) {
SyncShareAsDelegate();
// Check it out and delete it.
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&wtrans, GET_BY_ID, id);
ASSERT_TRUE(entry.good());
EXPECT_FALSE(entry.Get(IS_UNAPPLIED_UPDATE));
@@ -3954,7 +3954,7 @@ TEST_F(SyncerTest, TestSimpleUndelete) {
SyncShareAsDelegate();
// Confirm we see IS_DEL and not SERVER_IS_DEL.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_ID, id);
ASSERT_TRUE(entry.good());
EXPECT_FALSE(entry.Get(IS_UNAPPLIED_UPDATE));
@@ -3969,7 +3969,7 @@ TEST_F(SyncerTest, TestSimpleUndelete) {
SyncShareAsDelegate();
// IS_DEL AND SERVER_IS_DEL now both true.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_ID, id);
ASSERT_TRUE(entry.good());
EXPECT_FALSE(entry.Get(IS_UNAPPLIED_UPDATE));
@@ -3982,7 +3982,7 @@ TEST_F(SyncerTest, TestSimpleUndelete) {
SyncShareAsDelegate();
// IS_DEL and SERVER_IS_DEL now both false.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_ID, id);
ASSERT_TRUE(entry.good());
EXPECT_FALSE(entry.Get(IS_UNAPPLIED_UPDATE));
@@ -4002,7 +4002,7 @@ TEST_F(SyncerTest, TestUndeleteWithMissingDeleteUpdate) {
SyncShareAsDelegate();
// Check it out and delete it.
{
- WriteTransaction wtrans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&wtrans, GET_BY_ID, id);
ASSERT_TRUE(entry.good());
EXPECT_FALSE(entry.Get(IS_UNAPPLIED_UPDATE));
@@ -4014,7 +4014,7 @@ TEST_F(SyncerTest, TestUndeleteWithMissingDeleteUpdate) {
SyncShareAsDelegate();
// Confirm we see IS_DEL and not SERVER_IS_DEL.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_ID, id);
ASSERT_TRUE(entry.good());
EXPECT_FALSE(entry.Get(IS_UNAPPLIED_UPDATE));
@@ -4029,7 +4029,7 @@ TEST_F(SyncerTest, TestUndeleteWithMissingDeleteUpdate) {
SyncShareAsDelegate();
// IS_DEL and SERVER_IS_DEL now both false.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_ID, id);
ASSERT_TRUE(entry.good());
EXPECT_FALSE(entry.Get(IS_UNAPPLIED_UPDATE));
@@ -4063,7 +4063,7 @@ TEST_F(SyncerTest, ClientTagServerCreatedUpdatesWork) {
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry perm_folder(&trans, GET_BY_CLIENT_TAG, "permfolder");
ASSERT_TRUE(perm_folder.good());
EXPECT_FALSE(perm_folder.Get(IS_DEL));
@@ -4078,7 +4078,7 @@ TEST_F(SyncerTest, ClientTagServerCreatedUpdatesWork) {
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry perm_folder(&trans, GET_BY_CLIENT_TAG, "permfolder");
ASSERT_TRUE(perm_folder.good());
@@ -4100,7 +4100,7 @@ TEST_F(SyncerTest, ClientTagIllegalUpdateIgnored) {
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry perm_folder(&trans, GET_BY_CLIENT_TAG, "permfolder");
ASSERT_TRUE(perm_folder.good());
EXPECT_FALSE(perm_folder.Get(IS_UNAPPLIED_UPDATE));
@@ -4115,7 +4115,7 @@ TEST_F(SyncerTest, ClientTagIllegalUpdateIgnored) {
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
// This update is rejected because it has the same ID, but a
// different tag than one that is already on the client.
@@ -4144,7 +4144,7 @@ TEST_F(SyncerTest, ClientTagUncommittedTagMatchesUpdate) {
set_url("http://bar/serversite");
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry perm_folder(&trans, CREATE, ids_.root(), "clientname");
ASSERT_TRUE(perm_folder.good());
perm_folder.Put(UNIQUE_CLIENT_TAG, "clientperm");
@@ -4164,7 +4164,7 @@ TEST_F(SyncerTest, ClientTagUncommittedTagMatchesUpdate) {
SyncShareAsDelegate();
// This should cause client tag reunion, preserving the metahandle.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry perm_folder(&trans, GET_BY_CLIENT_TAG, "clientperm");
ASSERT_TRUE(perm_folder.good());
@@ -4187,7 +4187,7 @@ TEST_F(SyncerTest, ClientTagUncommittedTagMatchesUpdate) {
// The resolved entry ought to commit cleanly.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry perm_folder(&trans, GET_BY_CLIENT_TAG, "clientperm");
ASSERT_TRUE(perm_folder.good());
@@ -4211,7 +4211,7 @@ TEST_F(SyncerTest, ClientTagConflictWithDeletedLocalEntry) {
EXPECT_TRUE(dir.good());
{
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry perm_folder(&trans, CREATE, ids_.root(), "clientname");
ASSERT_TRUE(perm_folder.good());
ASSERT_FALSE(perm_folder.Get(ID).ServerKnows());
@@ -4228,7 +4228,7 @@ TEST_F(SyncerTest, ClientTagConflictWithDeletedLocalEntry) {
SyncShareAsDelegate();
// This should cause client tag overwrite.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry perm_folder(&trans, GET_BY_CLIENT_TAG, "clientperm");
ASSERT_TRUE(perm_folder.good());
@@ -4262,7 +4262,7 @@ TEST_F(SyncerTest, ClientTagUpdateClashesWithLocalEntry) {
int64 tag2_metahandle = syncable::kInvalidMetaHandle;
// This should cause client tag overwrite.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry tag1(&trans, GET_BY_CLIENT_TAG, "tag1");
ASSERT_TRUE(tag1.good());
@@ -4300,7 +4300,7 @@ TEST_F(SyncerTest, ClientTagUpdateClashesWithLocalEntry) {
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry tag1(&trans, GET_BY_CLIENT_TAG, "tag1");
ASSERT_TRUE(tag1.good());
@@ -4375,7 +4375,7 @@ TEST_F(SyncerTest, ClientTagClashWithinBatchOfUpdates) {
SyncShareAsDelegate();
// This should cause client tag overwrite.
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry tag_a(&trans, GET_BY_CLIENT_TAG, "tag a");
ASSERT_TRUE(tag_a.good());
@@ -4423,7 +4423,7 @@ TEST_F(SyncerTest, UniqueServerTagUpdates) {
// we'll use later.
int64 hurdle_handle = CreateUnsyncedDirectory("bob", "id_bob");
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry hurdle(&trans, GET_BY_HANDLE, hurdle_handle);
ASSERT_TRUE(hurdle.good());
ASSERT_TRUE(!hurdle.Get(IS_DEL));
@@ -4445,7 +4445,7 @@ TEST_F(SyncerTest, UniqueServerTagUpdates) {
SyncShareAsDelegate();
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
// The new items should be applied as new entries, and we should be able
// to look them up by their tag values.
@@ -4527,7 +4527,7 @@ class SyncerUndeletionTest : public SyncerTest {
void Create() {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
EXPECT_TRUE(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry perm_folder(&trans, CREATE, ids_.root(), "clientname");
ASSERT_TRUE(perm_folder.good());
perm_folder.Put(UNIQUE_CLIENT_TAG, client_tag_);
@@ -4542,7 +4542,7 @@ class SyncerUndeletionTest : public SyncerTest {
void Delete() {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
EXPECT_TRUE(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, GET_BY_CLIENT_TAG, client_tag_);
ASSERT_TRUE(entry.good());
EXPECT_EQ(metahandle_, entry.Get(META_HANDLE));
@@ -4554,7 +4554,7 @@ class SyncerUndeletionTest : public SyncerTest {
void Undelete() {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
EXPECT_TRUE(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, GET_BY_CLIENT_TAG, client_tag_);
ASSERT_TRUE(entry.good());
EXPECT_EQ(metahandle_, entry.Get(META_HANDLE));
@@ -4567,7 +4567,7 @@ class SyncerUndeletionTest : public SyncerTest {
int64 GetMetahandleOfTag() {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
EXPECT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry entry(&trans, GET_BY_CLIENT_TAG, client_tag_);
EXPECT_TRUE(entry.good());
if (!entry.good()) {
@@ -4976,7 +4976,7 @@ class SyncerPositionUpdateTest : public SyncerTest {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
EXPECT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Id prev_id;
DCHECK(prev_id.IsRoot());
@@ -5104,7 +5104,7 @@ class SyncerPositionTiebreakingTest : public SyncerTest {
void ExpectLocalOrderIsByServerId() {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
EXPECT_TRUE(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Id null_id;
Entry low(&trans, GET_BY_ID, low_id_);
Entry mid(&trans, GET_BY_ID, mid_id_);
diff --git a/chrome/browser/sync/engine/syncer_util.cc b/chrome/browser/sync/engine/syncer_util.cc
index d61059c..090b07f 100644
--- a/chrome/browser/sync/engine/syncer_util.cc
+++ b/chrome/browser/sync/engine/syncer_util.cc
@@ -660,7 +660,7 @@ void SyncerUtil::MarkDeletedChildrenSynced(
return;
Directory::UnsyncedMetaHandles handles;
{
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
dir->GetUnsyncedMetaHandles(&trans, &handles);
}
if (handles.empty())
@@ -668,7 +668,7 @@ void SyncerUtil::MarkDeletedChildrenSynced(
Directory::UnsyncedMetaHandles::iterator it;
for (it = handles.begin() ; it != handles.end() ; ++it) {
// Single transaction / entry we deal with.
- WriteTransaction trans(dir, SYNCER, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, SYNCER, dir);
MutableEntry entry(&trans, GET_BY_HANDLE, *it);
if (!entry.Get(IS_UNSYNCED) || !entry.Get(IS_DEL))
continue;
diff --git a/chrome/browser/sync/engine/verify_updates_command.cc b/chrome/browser/sync/engine/verify_updates_command.cc
index cec103b..fe83446 100644
--- a/chrome/browser/sync/engine/verify_updates_command.cc
+++ b/chrome/browser/sync/engine/verify_updates_command.cc
@@ -35,7 +35,7 @@ void VerifyUpdatesCommand::ModelChangingExecuteImpl(
LOG(ERROR) << "Scoped dir lookup failed!";
return;
}
- WriteTransaction trans(dir, SYNCER, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, SYNCER, dir);
sessions::StatusController* status = session->status_controller();
const GetUpdatesResponse& updates = status->updates_response().get_updates();
int update_count = updates.entries().size();
diff --git a/chrome/browser/sync/engine/verify_updates_command_unittest.cc b/chrome/browser/sync/engine/verify_updates_command_unittest.cc
index 6273d55..9713d63 100644
--- a/chrome/browser/sync/engine/verify_updates_command_unittest.cc
+++ b/chrome/browser/sync/engine/verify_updates_command_unittest.cc
@@ -44,7 +44,7 @@ class VerifyUpdatesCommandTest : public SyncerCommandTest {
const syncable::ModelType& type) {
ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
ASSERT_TRUE(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry entry(&trans, syncable::CREATE_NEW_UPDATE_ITEM,
Id::CreateFromServerId(item_id));
ASSERT_TRUE(entry.good());
diff --git a/chrome/browser/sync/glue/app_model_associator.cc b/chrome/browser/sync/glue/app_model_associator.cc
index b2bb54c..fd6dd24 100644
--- a/chrome/browser/sync/glue/app_model_associator.cc
+++ b/chrome/browser/sync/glue/app_model_associator.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/sync/glue/app_model_associator.h"
#include "base/logging.h"
+#include "base/tracked.h"
#include "chrome/browser/extensions/extension_sync_data.h"
#include "chrome/browser/sync/engine/syncapi.h"
#include "chrome/browser/sync/glue/extension_sync_traits.h"
@@ -63,7 +64,7 @@ void AppModelAssociator::AbortAssociation() {
bool AppModelAssociator::CryptoReadyIfNecessary() {
// We only access the cryptographer while holding a transaction.
- sync_api::ReadTransaction trans(user_share_);
+ sync_api::ReadTransaction trans(FROM_HERE, user_share_);
const syncable::ModelTypeSet& encrypted_types =
sync_api::GetEncryptedTypes(&trans);
return encrypted_types.count(traits_.model_type) == 0 ||
diff --git a/chrome/browser/sync/glue/autofill_change_processor.cc b/chrome/browser/sync/glue/autofill_change_processor.cc
index 00be75c..b37830d 100644
--- a/chrome/browser/sync/glue/autofill_change_processor.cc
+++ b/chrome/browser/sync/glue/autofill_change_processor.cc
@@ -8,6 +8,7 @@
#include <vector>
#include "base/string_util.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/autofill/personal_data_manager.h"
#include "chrome/browser/profiles/profile.h"
@@ -67,7 +68,7 @@ void AutofillChangeProcessor::Observe(NotificationType type,
if (!observing_)
return;
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
sync_api::ReadNode autofill_root(&trans);
if (!autofill_root.InitByTagLookup(kAutofillTag)) {
error_handler()->OnUnrecoverableError(FROM_HERE,
diff --git a/chrome/browser/sync/glue/autofill_model_associator.cc b/chrome/browser/sync/glue/autofill_model_associator.cc
index d783f19..72951b6 100644
--- a/chrome/browser/sync/glue/autofill_model_associator.cc
+++ b/chrome/browser/sync/glue/autofill_model_associator.cc
@@ -10,6 +10,7 @@
#include "base/string_number_conversions.h"
#include "base/task.h"
#include "base/time.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/autofill/autofill_profile.h"
#include "chrome/browser/profiles/profile.h"
@@ -156,7 +157,7 @@ bool AutofillModelAssociator::AssociateModels() {
DataBundle bundle;
{
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode autofill_root(&trans);
if (!autofill_root.InitByTagLookup(kAutofillTag)) {
@@ -394,7 +395,7 @@ bool AutofillModelAssociator::SyncModelHasUserCreatedNodes(bool* has_nodes) {
<< "might be running against an out-of-date server.";
return false;
}
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode autofill_node(&trans);
if (!autofill_node.InitByIdLookup(autofill_sync_id)) {
@@ -454,7 +455,7 @@ void AutofillModelAssociator::Disassociate(int64 sync_id) {
bool AutofillModelAssociator::GetSyncIdForTaggedNode(const std::string& tag,
int64* sync_id) {
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode sync_node(&trans);
if (!sync_node.InitByTagLookup(tag.c_str()))
return false;
@@ -585,7 +586,7 @@ bool AutofillModelAssociator::HasNotMigratedYet(
bool AutofillModelAssociator::CryptoReadyIfNecessary() {
// We only access the cryptographer while holding a transaction.
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
syncable::ModelTypeSet encrypted_types;
encrypted_types = sync_api::GetEncryptedTypes(&trans);
return encrypted_types.count(syncable::AUTOFILL) == 0 ||
diff --git a/chrome/browser/sync/glue/autofill_profile_change_processor.cc b/chrome/browser/sync/glue/autofill_profile_change_processor.cc
index 36b1372..ac6099c 100644
--- a/chrome/browser/sync/glue/autofill_profile_change_processor.cc
+++ b/chrome/browser/sync/glue/autofill_profile_change_processor.cc
@@ -8,6 +8,7 @@
#include <vector>
#include "base/string_util.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/autofill/autofill_profile.h"
#include "chrome/browser/autofill/personal_data_manager.h"
@@ -100,7 +101,7 @@ void AutofillProfileChangeProcessor::Observe(NotificationType type,
if (!wds || wds->GetDatabase() != web_database_)
return;
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
sync_api::ReadNode autofill_root(&trans);
if (!autofill_root.InitByTagLookup(kAutofillProfileTag)) {
error_handler()->OnUnrecoverableError(FROM_HERE,
diff --git a/chrome/browser/sync/glue/autofill_profile_model_associator.cc b/chrome/browser/sync/glue/autofill_profile_model_associator.cc
index 4b45880..3fe51aa 100644
--- a/chrome/browser/sync/glue/autofill_profile_model_associator.cc
+++ b/chrome/browser/sync/glue/autofill_profile_model_associator.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/sync/glue/autofill_profile_model_associator.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/sync/glue/autofill_profile_change_processor.h"
#include "chrome/browser/sync/glue/do_optimistic_refresh_task.h"
@@ -116,7 +117,7 @@ bool AutofillProfileModelAssociator::TraverseAndAssociateChromeAutofillProfiles(
bool AutofillProfileModelAssociator::GetSyncIdForTaggedNode(
const std::string& tag,
int64* sync_id) {
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode sync_node(&trans);
if (!sync_node.InitByTagLookup(tag.c_str()))
return false;
@@ -157,7 +158,7 @@ bool AutofillProfileModelAssociator::AssociateModels() {
{
// The write transaction lock is held inside this block.
// We do all the web db operations outside this block.
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode autofill_root(&trans);
if (!autofill_root.InitByTagLookup(kAutofillProfileTag)) {
@@ -218,7 +219,7 @@ bool AutofillProfileModelAssociator::MergeField(FormGroup* f,
bool AutofillProfileModelAssociator::SyncModelHasUserCreatedNodes(
bool *has_nodes) {
CHECK_NE(has_nodes, reinterpret_cast<bool*>(NULL));
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode node(&trans);
@@ -506,7 +507,7 @@ AutofillProfileModelAssociator::DataBundle::~DataBundle() {
bool AutofillProfileModelAssociator::CryptoReadyIfNecessary() {
// We only access the cryptographer while holding a transaction.
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
syncable::ModelTypeSet encrypted_types;
encrypted_types = sync_api::GetEncryptedTypes(&trans);
return encrypted_types.count(syncable::AUTOFILL_PROFILE) == 0 ||
diff --git a/chrome/browser/sync/glue/autofill_profile_model_associator_unittest.cc b/chrome/browser/sync/glue/autofill_profile_model_associator_unittest.cc
index e1792a6..909b895 100644
--- a/chrome/browser/sync/glue/autofill_profile_model_associator_unittest.cc
+++ b/chrome/browser/sync/glue/autofill_profile_model_associator_unittest.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/sync/engine/read_node_mock.h"
#include "chrome/browser/sync/engine/syncapi_mock.h"
@@ -115,7 +116,7 @@ TEST_F(AutofillProfileModelAssociatorTest,
kernel.put(syncable::SPECIFICS, specifics);
kernel.put(syncable::META_HANDLE, 1);
- MockWriteTransaction write_trans(&mock_directory);
+ MockWriteTransaction write_trans(FROM_HERE, &mock_directory);
EXPECT_CALL(mock_directory, GetEntryByClientTag(_))
.WillOnce(Return(&kernel));
@@ -140,7 +141,7 @@ TEST_F(AutofillProfileModelAssociatorTest, TestAssociatingMissingWebDBProfile) {
ScopedVector<AutofillProfile> profiles_from_web_db;
MockDirectory mock_directory;
- MockWriteTransaction write_trans(&mock_directory);
+ MockWriteTransaction write_trans(FROM_HERE, &mock_directory);
EXPECT_CALL(mock_directory,
GetEntryByClientTag(_))
.WillOnce(Return(reinterpret_cast<EntryKernel*>(NULL)));
@@ -191,7 +192,7 @@ TEST_F(AutofillProfileModelAssociatorTest,
kernel.put(syncable::META_HANDLE, 1);
kernel.put(syncable::ID, root_id);
- MockWriteTransaction write_trans(&mock_directory);
+ MockWriteTransaction write_trans(FROM_HERE, &mock_directory);
browser_sync::AutofillProfileModelAssociator::DataBundle bundle;
diff --git a/chrome/browser/sync/glue/bookmark_change_processor.cc b/chrome/browser/sync/glue/bookmark_change_processor.cc
index da0605c..495753d 100644
--- a/chrome/browser/sync/glue/bookmark_change_processor.cc
+++ b/chrome/browser/sync/glue/bookmark_change_processor.cc
@@ -8,7 +8,7 @@
#include "base/string16.h"
#include "base/string_util.h"
-
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/bookmarks/bookmark_utils.h"
#include "chrome/browser/favicon/favicon_service.h"
@@ -92,7 +92,7 @@ void BookmarkChangeProcessor::RemoveOneSyncNode(
void BookmarkChangeProcessor::RemoveSyncNodeHierarchy(
const BookmarkNode* topmost) {
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
// Later logic assumes that |topmost| has been unlinked.
DCHECK(topmost->is_root());
@@ -145,7 +145,7 @@ void BookmarkChangeProcessor::BookmarkNodeAdded(BookmarkModel* model,
DCHECK(share_handle());
// Acquire a scoped write lock via a transaction.
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
CreateSyncNode(parent, model, index, &trans, model_associator_,
error_handler());
@@ -197,7 +197,7 @@ void BookmarkChangeProcessor::BookmarkNodeChanged(BookmarkModel* model,
}
// Acquire a scoped write lock via a transaction.
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
// Lookup the sync node that's associated with |node|.
sync_api::WriteNode sync_node(&trans);
@@ -231,7 +231,7 @@ void BookmarkChangeProcessor::BookmarkNodeMoved(BookmarkModel* model,
}
// Acquire a scoped write lock via a transaction.
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
// Lookup the sync node that's associated with |child|.
sync_api::WriteNode sync_node(&trans);
@@ -258,7 +258,7 @@ void BookmarkChangeProcessor::BookmarkNodeChildrenReordered(
BookmarkModel* model, const BookmarkNode* node) {
// Acquire a scoped write lock via a transaction.
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
// The given node's children got reordered. We need to reorder all the
// children of the corresponding sync node.
diff --git a/chrome/browser/sync/glue/bookmark_model_associator.cc b/chrome/browser/sync/glue/bookmark_model_associator.cc
index 9aff7ad..5b46604 100644
--- a/chrome/browser/sync/glue/bookmark_model_associator.cc
+++ b/chrome/browser/sync/glue/bookmark_model_associator.cc
@@ -10,6 +10,7 @@
#include "base/hash_tables.h"
#include "base/message_loop.h"
#include "base/task.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/bookmarks/bookmark_model.h"
#include "chrome/browser/profiles/profile.h"
@@ -249,7 +250,7 @@ bool BookmarkModelAssociator::SyncModelHasUserCreatedNodes(bool* has_nodes) {
has_synced_folder = false;
}
- sync_api::ReadTransaction trans(user_share_);
+ sync_api::ReadTransaction trans(FROM_HERE, user_share_);
sync_api::ReadNode bookmark_bar_node(&trans);
if (!bookmark_bar_node.InitByIdLookup(bookmark_bar_sync_id)) {
@@ -307,7 +308,7 @@ bool BookmarkModelAssociator::AssociateTaggedPermanentNode(
bool BookmarkModelAssociator::GetSyncIdForTaggedNode(const std::string& tag,
int64* sync_id) {
- sync_api::ReadTransaction trans(user_share_);
+ sync_api::ReadTransaction trans(FROM_HERE, user_share_);
sync_api::ReadNode sync_node(&trans);
if (!sync_node.InitByTagLookup(tag.c_str()))
return false;
@@ -391,7 +392,7 @@ bool BookmarkModelAssociator::BuildAssociations() {
dfs_stack.push(other_bookmarks_sync_id);
dfs_stack.push(bookmark_bar_sync_id);
- sync_api::WriteTransaction trans(user_share_);
+ sync_api::WriteTransaction trans(FROM_HERE, user_share_);
while (!dfs_stack.empty()) {
int64 sync_parent_id = dfs_stack.top();
@@ -478,7 +479,7 @@ void BookmarkModelAssociator::PersistAssociations() {
return;
}
- sync_api::WriteTransaction trans(user_share_);
+ sync_api::WriteTransaction trans(FROM_HERE, user_share_);
DirtyAssociationsSyncIds::iterator iter;
for (iter = dirty_associations_sync_ids_.begin();
iter != dirty_associations_sync_ids_.end();
@@ -542,7 +543,7 @@ bool BookmarkModelAssociator::LoadAssociations() {
dfs_stack.push(other_bookmarks_id);
dfs_stack.push(bookmark_bar_id);
- sync_api::ReadTransaction trans(user_share_);
+ sync_api::ReadTransaction trans(FROM_HERE, user_share_);
// Count total number of nodes in sync model so that we can compare that
// with the total number of nodes in the bookmark model.
@@ -597,7 +598,7 @@ bool BookmarkModelAssociator::LoadAssociations() {
bool BookmarkModelAssociator::CryptoReadyIfNecessary() {
// We only access the cryptographer while holding a transaction.
- sync_api::ReadTransaction trans(user_share_);
+ sync_api::ReadTransaction trans(FROM_HERE, user_share_);
const syncable::ModelTypeSet& encrypted_types =
sync_api::GetEncryptedTypes(&trans);
return encrypted_types.count(syncable::BOOKMARKS) == 0 ||
diff --git a/chrome/browser/sync/glue/extension_model_associator.cc b/chrome/browser/sync/glue/extension_model_associator.cc
index 6bfbece..46594b6 100644
--- a/chrome/browser/sync/glue/extension_model_associator.cc
+++ b/chrome/browser/sync/glue/extension_model_associator.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/sync/glue/extension_model_associator.h"
#include "base/logging.h"
+#include "base/tracked.h"
#include "chrome/browser/extensions/extension_sync_data.h"
#include "chrome/browser/sync/engine/syncapi.h"
#include "chrome/browser/sync/glue/extension_sync_traits.h"
@@ -64,7 +65,7 @@ void ExtensionModelAssociator::AbortAssociation() {
bool ExtensionModelAssociator::CryptoReadyIfNecessary() {
// We only access the cryptographer while holding a transaction.
- sync_api::ReadTransaction trans(user_share_);
+ sync_api::ReadTransaction trans(FROM_HERE, user_share_);
const syncable::ModelTypeSet& encrypted_types =
sync_api::GetEncryptedTypes(&trans);
return encrypted_types.count(traits_.model_type) == 0 ||
diff --git a/chrome/browser/sync/glue/extension_sync.cc b/chrome/browser/sync/glue/extension_sync.cc
index 1b3b587..c6c19ec 100644
--- a/chrome/browser/sync/glue/extension_sync.cc
+++ b/chrome/browser/sync/glue/extension_sync.cc
@@ -7,6 +7,7 @@
#include <utility>
#include "base/logging.h"
+#include "base/tracked.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_sync_data.h"
#include "chrome/browser/sync/engine/syncapi.h"
@@ -21,7 +22,7 @@ bool RootNodeHasChildren(const char* tag,
bool* has_children) {
CHECK(has_children);
*has_children = false;
- sync_api::ReadTransaction trans(user_share);
+ sync_api::ReadTransaction trans(FROM_HERE, user_share);
sync_api::ReadNode node(&trans);
if (!node.InitByTagLookup(tag)) {
LOG(ERROR) << "Root node with tag " << tag << " does not exist";
@@ -71,7 +72,7 @@ bool SlurpServerData(
const ExtensionSpecificsGetter extension_specifics_getter,
sync_api::UserShare* user_share,
ExtensionDataMap* extension_data_map) {
- sync_api::WriteTransaction trans(user_share);
+ sync_api::WriteTransaction trans(FROM_HERE, user_share);
sync_api::ReadNode root(&trans);
if (!root.InitByTagLookup(root_node_tag)) {
LOG(ERROR) << GetRootNodeDoesNotExistError(root_node_tag);
@@ -154,7 +155,7 @@ bool FlushExtensionData(const ExtensionSyncTraits& traits,
const ExtensionDataMap& extension_data_map,
ExtensionServiceInterface* extension_service,
sync_api::UserShare* user_share) {
- sync_api::WriteTransaction trans(user_share);
+ sync_api::WriteTransaction trans(FROM_HERE, user_share);
sync_api::ReadNode root(&trans);
if (!root.InitByTagLookup(traits.root_node_tag)) {
LOG(ERROR) << GetRootNodeDoesNotExistError(traits.root_node_tag);
@@ -192,7 +193,7 @@ bool UpdateServerData(const ExtensionSyncTraits& traits,
return false;
}
- sync_api::WriteTransaction trans(user_share);
+ sync_api::WriteTransaction trans(FROM_HERE, user_share);
if (!UpdateServer(traits, data, &trans)) {
*error =
std::string("Could not update server data for extension ") + id;
@@ -205,7 +206,7 @@ bool UpdateServerData(const ExtensionSyncTraits& traits,
void RemoveServerData(const ExtensionSyncTraits& traits,
const std::string& id,
sync_api::UserShare* user_share) {
- sync_api::WriteTransaction trans(user_share);
+ sync_api::WriteTransaction trans(FROM_HERE, user_share);
sync_api::WriteNode write_node(&trans);
if (write_node.InitByClientTagLookup(traits.model_type, id)) {
write_node.Remove();
diff --git a/chrome/browser/sync/glue/generic_change_processor.cc b/chrome/browser/sync/glue/generic_change_processor.cc
index 83c1736..976955e 100644
--- a/chrome/browser/sync/glue/generic_change_processor.cc
+++ b/chrome/browser/sync/glue/generic_change_processor.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/sync/glue/generic_change_processor.h"
+#include "base/tracked.h"
#include "chrome/browser/sync/api/syncable_service.h"
#include "chrome/browser/sync/api/sync_change.h"
#include "chrome/browser/sync/engine/syncapi.h"
@@ -68,7 +69,7 @@ void GenericChangeProcessor::CommitChangesFromSyncModel() {
return;
if (syncer_changes_.empty())
return;
- local_service_->ProcessSyncChanges(syncer_changes_);
+ local_service_->ProcessSyncChanges(FROM_HERE, syncer_changes_);
syncer_changes_.clear();
}
@@ -76,7 +77,7 @@ bool GenericChangeProcessor::GetSyncDataForType(
syncable::ModelType type,
SyncDataList* current_sync_data) {
std::string type_name = syncable::ModelTypeToString(type);
- sync_api::ReadTransaction trans(share_handle());
+ sync_api::ReadTransaction trans(FROM_HERE, share_handle());
sync_api::ReadNode root(&trans);
if (!root.InitByTagLookup(syncable::ModelTypeToRootTag(type))) {
LOG(ERROR) << "Server did not create the top-level " + type_name + " node."
@@ -99,8 +100,9 @@ bool GenericChangeProcessor::GetSyncDataForType(
}
void GenericChangeProcessor::ProcessSyncChanges(
+ const tracked_objects::Location& from_here,
const SyncChangeList& list_of_changes) {
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(from_here, share_handle());
for (SyncChangeList::const_iterator iter = list_of_changes.begin();
iter != list_of_changes.end();
@@ -171,7 +173,7 @@ bool GenericChangeProcessor::SyncModelHasUserCreatedNodes(
std::string err_str = "Server did not create the top-level " + type_name +
" node. We might be running against an out-of-date server.";
*has_nodes = false;
- sync_api::ReadTransaction trans(share_handle());
+ sync_api::ReadTransaction trans(FROM_HERE, share_handle());
sync_api::ReadNode type_root_node(&trans);
if (!type_root_node.InitByTagLookup(syncable::ModelTypeToRootTag(type))) {
LOG(ERROR) << err_str;
@@ -187,7 +189,7 @@ bool GenericChangeProcessor::SyncModelHasUserCreatedNodes(
bool GenericChangeProcessor::CryptoReadyIfNecessary(syncable::ModelType type) {
DCHECK_NE(type, syncable::UNSPECIFIED);
// We only access the cryptographer while holding a transaction.
- sync_api::ReadTransaction trans(share_handle());
+ sync_api::ReadTransaction trans(FROM_HERE, share_handle());
const syncable::ModelTypeSet& encrypted_types =
GetEncryptedTypes(&trans);
return encrypted_types.count(type) == 0 ||
diff --git a/chrome/browser/sync/glue/generic_change_processor.h b/chrome/browser/sync/glue/generic_change_processor.h
index 0a7121f..d3176e5 100644
--- a/chrome/browser/sync/glue/generic_change_processor.h
+++ b/chrome/browser/sync/glue/generic_change_processor.h
@@ -45,7 +45,8 @@ class GenericChangeProcessor : public ChangeProcessor,
virtual void CommitChangesFromSyncModel() OVERRIDE;
// SyncChangeProcessor implementation.
- virtual void ProcessSyncChanges(const SyncChangeList& change_list) OVERRIDE;
+ virtual void ProcessSyncChanges(const tracked_objects::Location& from_here,
+ const SyncChangeList& change_list) OVERRIDE;
// Fills |current_sync_data| with all the syncer data for the specified type.
virtual bool GetSyncDataForType(syncable::ModelType type,
diff --git a/chrome/browser/sync/glue/password_change_processor.cc b/chrome/browser/sync/glue/password_change_processor.cc
index a19b47e..67d9187 100644
--- a/chrome/browser/sync/glue/password_change_processor.cc
+++ b/chrome/browser/sync/glue/password_change_processor.cc
@@ -7,6 +7,7 @@
#include <string>
#include "base/string_util.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/password_manager/password_store.h"
#include "chrome/browser/password_manager/password_store_change.h"
@@ -54,7 +55,7 @@ void PasswordChangeProcessor::Observe(NotificationType type,
DCHECK(running());
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
sync_api::ReadNode password_root(&trans);
if (!password_root.InitByTagLookup(kPasswordTag)) {
diff --git a/chrome/browser/sync/glue/password_model_associator.cc b/chrome/browser/sync/glue/password_model_associator.cc
index baaffde..2931e94 100644
--- a/chrome/browser/sync/glue/password_model_associator.cc
+++ b/chrome/browser/sync/glue/password_model_associator.cc
@@ -7,6 +7,7 @@
#include <set>
#include "base/stl_util-inl.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/password_manager/password_store.h"
#include "chrome/browser/sync/engine/syncapi.h"
@@ -60,7 +61,7 @@ bool PasswordModelAssociator::AssociateModels() {
PasswordVector new_passwords;
PasswordVector updated_passwords;
{
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode password_root(&trans);
if (!password_root.InitByTagLookup(kPasswordTag)) {
LOG(ERROR) << "Server did not create the top-level password node. We "
@@ -183,7 +184,7 @@ bool PasswordModelAssociator::SyncModelHasUserCreatedNodes(bool* has_nodes) {
<< "might be running against an out-of-date server.";
return false;
}
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode password_node(&trans);
if (!password_node.InitByIdLookup(password_sync_id)) {
@@ -206,7 +207,7 @@ void PasswordModelAssociator::AbortAssociation() {
bool PasswordModelAssociator::CryptoReadyIfNecessary() {
// We only access the cryptographer while holding a transaction.
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
// We always encrypt passwords, so no need to check if encryption is enabled.
return sync_service_->IsCryptographerReady(&trans);
}
@@ -254,7 +255,7 @@ void PasswordModelAssociator::Disassociate(int64 sync_id) {
bool PasswordModelAssociator::GetSyncIdForTaggedNode(const std::string& tag,
int64* sync_id) {
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode sync_node(&trans);
if (!sync_node.InitByTagLookup(tag.c_str()))
return false;
diff --git a/chrome/browser/sync/glue/session_model_associator.cc b/chrome/browser/sync/glue/session_model_associator.cc
index 4f2812c..7d4eeb0 100644
--- a/chrome/browser/sync/glue/session_model_associator.cc
+++ b/chrome/browser/sync/glue/session_model_associator.cc
@@ -8,6 +8,7 @@
#include <utility>
#include "base/logging.h"
+#include "base/tracked.h"
#include "chrome/browser/extensions/extension_tab_helper.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sessions/restore_tab_helper.h"
@@ -70,7 +71,7 @@ bool SessionModelAssociator::SyncModelHasUserCreatedNodes(bool* has_nodes) {
DCHECK(CalledOnValidThread());
CHECK(has_nodes);
*has_nodes = false;
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode root(&trans);
if (!root.InitByTagLookup(kSessionsTag)) {
LOG(ERROR) << kNoSessionsFolderError;
@@ -89,7 +90,7 @@ int64 SessionModelAssociator::GetSyncIdFromChromeId(const size_t& id) {
int64 SessionModelAssociator::GetSyncIdFromSessionTag(const std::string& tag) {
DCHECK(CalledOnValidThread());
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode node(&trans);
if (!node.InitByClientTagLookup(syncable::SESSIONS, tag))
return sync_api::kInvalidId;
@@ -160,7 +161,7 @@ void SessionModelAssociator::ReassociateWindows(bool reload_tabs) {
}
}
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::WriteNode header_node(&trans);
if (!header_node.InitByIdLookup(local_session_syncid_)) {
LOG(ERROR) << "Failed to load local session header node.";
@@ -228,7 +229,7 @@ void SessionModelAssociator::Associate(const TabContentsWrapper* tab,
TabLinks t(sync_id, tab);
tab_map_[session_id] = t;
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
WriteTabContentsToSyncModel(*browser, *tab, sync_id, &trans);
}
@@ -380,7 +381,7 @@ bool SessionModelAssociator::AssociateModels() {
// Read any available foreign sessions and load any session data we may have.
// If we don't have any local session data in the db, create a header node.
{
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode root(&trans);
if (!root.InitByTagLookup(kSessionsTag)) {
@@ -723,7 +724,7 @@ int64 SessionModelAssociator::TabNodePool::GetFreeTabNode() {
DCHECK_GT(machine_tag_.length(), 0U);
if (tab_pool_fp_ == -1) {
// Tab pool has no free nodes, allocate new one.
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode root(&trans);
if (!root.InitByTagLookup(kSessionsTag)) {
LOG(ERROR) << kNoSessionsFolderError;
@@ -855,7 +856,7 @@ void SessionModelAssociator::OnGotSession(
sync_pb::SessionHeader* header_s = specifics.mutable_header();
PopulateSessionSpecificsHeader(*windows, header_s);
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode root(&trans);
if (!root.InitByTagLookup(kSessionsTag)) {
LOG(ERROR) << kNoSessionsFolderError;
@@ -929,7 +930,7 @@ bool SessionModelAssociator::SyncLocalWindowToSyncModel(
return false;
}
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
if (!WriteSessionTabToSyncModel(*tab, id, &trans)) {
return false;
}
@@ -982,7 +983,7 @@ void SessionModelAssociator::PopulateSessionSpecificsTab(
bool SessionModelAssociator::CryptoReadyIfNecessary() {
// We only access the cryptographer while holding a transaction.
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
syncable::ModelTypeSet encrypted_types;
encrypted_types = sync_api::GetEncryptedTypes(&trans);
return encrypted_types.count(syncable::SESSIONS) == 0 ||
diff --git a/chrome/browser/sync/glue/sync_backend_host.cc b/chrome/browser/sync/glue/sync_backend_host.cc
index 0576711..837077a 100644
--- a/chrome/browser/sync/glue/sync_backend_host.cc
+++ b/chrome/browser/sync/glue/sync_backend_host.cc
@@ -11,6 +11,7 @@
#include "base/file_util.h"
#include "base/task.h"
#include "base/threading/thread_restrictions.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/net/gaia/token_service.h"
#include "chrome/browser/prefs/pref_service.h"
@@ -312,7 +313,7 @@ void SyncBackendHost::SetAutofillMigrationDebugInfo(
void SyncBackendHost::ConfigureAutofillMigration() {
if (GetAutofillMigrationState() == syncable::NOT_DETERMINED) {
- sync_api::ReadTransaction trans(GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, GetUserShare());
sync_api::ReadNode autofil_root_node(&trans);
// Check for the presence of autofill node.
diff --git a/chrome/browser/sync/glue/theme_change_processor.cc b/chrome/browser/sync/glue/theme_change_processor.cc
index a75b7eb..ace9931 100644
--- a/chrome/browser/sync/glue/theme_change_processor.cc
+++ b/chrome/browser/sync/glue/theme_change_processor.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/sync/glue/theme_change_processor.h"
#include "base/logging.h"
+#include "base/tracked.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sync/engine/syncapi.h"
#include "chrome/browser/sync/glue/theme_util.h"
@@ -33,7 +34,7 @@ void ThemeChangeProcessor::Observe(NotificationType type,
DCHECK(profile_);
DCHECK(type == NotificationType::BROWSER_THEME_CHANGED);
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
sync_api::WriteNode node(&trans);
if (!node.InitByClientTagLookup(syncable::THEMES,
kCurrentThemeClientTag)) {
diff --git a/chrome/browser/sync/glue/theme_model_associator.cc b/chrome/browser/sync/glue/theme_model_associator.cc
index 5c70068..e53b021 100644
--- a/chrome/browser/sync/glue/theme_model_associator.cc
+++ b/chrome/browser/sync/glue/theme_model_associator.cc
@@ -6,6 +6,7 @@
#include "base/basictypes.h"
#include "base/logging.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/sync/engine/syncapi.h"
#include "chrome/browser/sync/glue/sync_backend_host.h"
@@ -35,7 +36,7 @@ ThemeModelAssociator::ThemeModelAssociator(
ThemeModelAssociator::~ThemeModelAssociator() {}
bool ThemeModelAssociator::AssociateModels() {
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode root(&trans);
if (!root.InitByTagLookup(kThemesTag)) {
LOG(ERROR) << kNoThemesFolderError;
@@ -81,7 +82,7 @@ bool ThemeModelAssociator::DisassociateModels() {
bool ThemeModelAssociator::SyncModelHasUserCreatedNodes(bool* has_nodes) {
DCHECK(has_nodes);
*has_nodes = false;
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode root(&trans);
if (!root.InitByTagLookup(kThemesTag)) {
LOG(ERROR) << kNoThemesFolderError;
@@ -95,7 +96,7 @@ bool ThemeModelAssociator::SyncModelHasUserCreatedNodes(bool* has_nodes) {
bool ThemeModelAssociator::CryptoReadyIfNecessary() {
// We only access the cryptographer while holding a transaction.
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
syncable::ModelTypeSet encrypted_types;
encrypted_types = sync_api::GetEncryptedTypes(&trans);
return encrypted_types.count(syncable::THEMES) == 0 ||
diff --git a/chrome/browser/sync/glue/typed_url_change_processor.cc b/chrome/browser/sync/glue/typed_url_change_processor.cc
index 13a202d..e269814 100644
--- a/chrome/browser/sync/glue/typed_url_change_processor.cc
+++ b/chrome/browser/sync/glue/typed_url_change_processor.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/sync/glue/typed_url_change_processor.h"
#include "base/string_util.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/history/history_backend.h"
#include "chrome/browser/history/history_notifications.h"
@@ -84,7 +85,7 @@ void TypedUrlChangeProcessor::HandleURLsModified(
}
}
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
sync_api::ReadNode typed_url_root(&trans);
if (!typed_url_root.InitByTagLookup(kTypedUrlTag)) {
@@ -125,7 +126,7 @@ void TypedUrlChangeProcessor::HandleURLsModified(
void TypedUrlChangeProcessor::HandleURLsDeleted(
history::URLsDeletedDetails* details) {
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
if (details->all_history) {
if (!model_associator_->DeleteAllNodes(&trans)) {
@@ -164,7 +165,7 @@ void TypedUrlChangeProcessor::HandleURLsVisited(
return;
}
- sync_api::WriteTransaction trans(share_handle());
+ sync_api::WriteTransaction trans(FROM_HERE, share_handle());
std::string tag = details->row.url().spec();
sync_api::WriteNode update_node(&trans);
if (!update_node.InitByClientTagLookup(syncable::TYPED_URLS, tag)) {
diff --git a/chrome/browser/sync/glue/typed_url_model_associator.cc b/chrome/browser/sync/glue/typed_url_model_associator.cc
index 50758a7..337a7c4 100644
--- a/chrome/browser/sync/glue/typed_url_model_associator.cc
+++ b/chrome/browser/sync/glue/typed_url_model_associator.cc
@@ -7,6 +7,7 @@
#include <algorithm>
#include <set>
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/history/history_backend.h"
#include "chrome/browser/sync/engine/syncapi.h"
@@ -68,7 +69,7 @@ bool TypedUrlModelAssociator::AssociateModels() {
TypedUrlUpdateVector updated_urls;
{
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode typed_url_root(&trans);
if (!typed_url_root.InitByTagLookup(kTypedUrlTag)) {
LOG(ERROR) << "Server did not create the top-level typed_url node. We "
@@ -265,7 +266,7 @@ bool TypedUrlModelAssociator::SyncModelHasUserCreatedNodes(bool* has_nodes) {
<< "might be running against an out-of-date server.";
return false;
}
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode typed_url_node(&trans);
if (!typed_url_node.InitByIdLookup(typed_url_sync_id)) {
@@ -327,7 +328,7 @@ void TypedUrlModelAssociator::Disassociate(int64 sync_id) {
bool TypedUrlModelAssociator::GetSyncIdForTaggedNode(const std::string& tag,
int64* sync_id) {
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode sync_node(&trans);
if (!sync_node.InitByTagLookup(tag.c_str()))
return false;
@@ -577,7 +578,7 @@ void TypedUrlModelAssociator::UpdateURLRowFromTypedUrlSpecifics(
bool TypedUrlModelAssociator::CryptoReadyIfNecessary() {
// We only access the cryptographer while holding a transaction.
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
syncable::ModelTypeSet encrypted_types;
encrypted_types = sync_api::GetEncryptedTypes(&trans);
return encrypted_types.count(syncable::TYPED_URLS) == 0 ||
diff --git a/chrome/browser/sync/js_sync_manager_observer_unittest.cc b/chrome/browser/sync/js_sync_manager_observer_unittest.cc
index 08d38f4..e71c059 100644
--- a/chrome/browser/sync/js_sync_manager_observer_unittest.cc
+++ b/chrome/browser/sync/js_sync_manager_observer_unittest.cc
@@ -7,6 +7,7 @@
#include <cstddef>
#include "base/basictypes.h"
+#include "base/tracked.h"
#include "base/values.h"
#include "chrome/browser/sync/engine/syncapi.h"
#include "chrome/browser/sync/js_arg_list.h"
@@ -222,7 +223,7 @@ namespace {
// Makes a node of the given model type. Returns the id of the
// newly-created node.
int64 MakeNode(sync_api::UserShare* share, syncable::ModelType model_type) {
- sync_api::WriteTransaction trans(share);
+ sync_api::WriteTransaction trans(FROM_HERE, share);
sync_api::ReadNode root_node(&trans);
root_node.InitByRootLookup();
sync_api::WriteNode node(&trans);
@@ -264,7 +265,7 @@ TEST_F(JsSyncManagerObserverTest, OnChangesApplied) {
break;
}
{
- sync_api::ReadTransaction trans(test_user_share.user_share());
+ sync_api::ReadTransaction trans(FROM_HERE, test_user_share.user_share());
sync_api::ReadNode node(&trans);
EXPECT_TRUE(node.InitByIdLookup(changes[i].id));
changes[i].specifics = node.GetEntry()->Get(syncable::SPECIFICS);
@@ -285,7 +286,7 @@ TEST_F(JsSyncManagerObserverTest, OnChangesApplied) {
ListValue* expected_changes = new ListValue();
expected_details.Set("changes", expected_changes);
for (int j = i; j < syncable::MODEL_TYPE_COUNT; ++j) {
- sync_api::ReadTransaction trans(test_user_share.user_share());
+ sync_api::ReadTransaction trans(FROM_HERE, test_user_share.user_share());
expected_changes->Append(changes[j].ToValue(&trans));
}
EXPECT_CALL(mock_router_,
@@ -296,7 +297,7 @@ TEST_F(JsSyncManagerObserverTest, OnChangesApplied) {
// Fire OnChangesApplied() for each data type.
for (int i = syncable::AUTOFILL_PROFILE;
i < syncable::MODEL_TYPE_COUNT; ++i) {
- sync_api::ReadTransaction trans(test_user_share.user_share());
+ sync_api::ReadTransaction trans(FROM_HERE, test_user_share.user_share());
sync_manager_observer_.OnChangesApplied(syncable::ModelTypeFromInt(i),
&trans, &changes[i],
syncable::MODEL_TYPE_COUNT - i);
diff --git a/chrome/browser/sync/profile_sync_service_autofill_unittest.cc b/chrome/browser/sync/profile_sync_service_autofill_unittest.cc
index b6d966d..4e13929 100644
--- a/chrome/browser/sync/profile_sync_service_autofill_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_autofill_unittest.cc
@@ -333,7 +333,7 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
}
bool AddAutofillSyncNode(const AutofillEntry& entry) {
- sync_api::WriteTransaction trans(service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
sync_api::ReadNode autofill_root(&trans);
if (!autofill_root.InitByTagLookup(browser_sync::kAutofillTag))
return false;
@@ -349,7 +349,7 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
}
bool AddAutofillSyncNode(const AutofillProfile& profile) {
- sync_api::WriteTransaction trans(service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
sync_api::ReadNode autofill_root(&trans);
if (!autofill_root.InitByTagLookup(browser_sync::kAutofillProfileTag))
return false;
@@ -364,7 +364,7 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
bool GetAutofillEntriesFromSyncDB(std::vector<AutofillEntry>* entries,
std::vector<AutofillProfile>* profiles) {
- sync_api::ReadTransaction trans(service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, service_->GetUserShare());
sync_api::ReadNode autofill_root(&trans);
if (!autofill_root.InitByTagLookup(browser_sync::kAutofillTag))
return false;
@@ -401,7 +401,7 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
bool GetAutofillProfilesFromSyncDBUnderProfileNode(
std::vector<AutofillProfile>* profiles) {
- sync_api::ReadTransaction trans(service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, service_->GetUserShare());
sync_api::ReadNode autofill_root(&trans);
if (!autofill_root.InitByTagLookup(browser_sync::kAutofillProfileTag))
return false;
@@ -491,11 +491,11 @@ class AddAutofillTask : public Task {
static const bool kLoggingInfo = true;
class WriteTransactionTest: public WriteTransaction {
public:
- WriteTransactionTest(const syncable::ScopedDirLookup& directory,
+ WriteTransactionTest(const tracked_objects::Location& from_here,
WriterTag writer,
- const tracked_objects::Location& from_here,
+ const syncable::ScopedDirLookup& directory,
scoped_ptr<WaitableEvent> *wait_for_syncapi)
- : WriteTransaction(directory, writer, from_here),
+ : WriteTransaction(from_here, writer, directory),
wait_for_syncapi_(wait_for_syncapi) { }
virtual void NotifyTransactionComplete(syncable::ModelTypeBitSet types) {
@@ -553,7 +553,7 @@ class FakeServerUpdater: public base::RefCountedThreadSafe<FakeServerUpdater> {
(*wait_for_start_)->Signal();
// Create write transaction.
- WriteTransactionTest trans(dir, UNITTEST, FROM_HERE,
+ WriteTransactionTest trans(FROM_HERE, UNITTEST, dir,
wait_for_syncapi_);
// Create actual entry based on autofill protobuf information.
diff --git a/chrome/browser/sync/profile_sync_service_bookmark_unittest.cc b/chrome/browser/sync/profile_sync_service_bookmark_unittest.cc
index 39e6d74..3bdae6e 100644
--- a/chrome/browser/sync/profile_sync_service_bookmark_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_bookmark_unittest.cc
@@ -17,6 +17,7 @@
#include "base/string16.h"
#include "base/string_number_conversions.h"
#include "base/string_util.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/bookmarks/bookmark_model.h"
#include "chrome/browser/sync/abstract_profile_sync_service_test.h"
@@ -64,7 +65,7 @@ class TestBookmarkModelAssociator : public BookmarkModelAssociator {
bool root_exists = false;
syncable::ModelType type = model_type();
{
- sync_api::WriteTransaction trans(user_share_);
+ sync_api::WriteTransaction trans(FROM_HERE, user_share_);
sync_api::ReadNode uber_root(&trans);
uber_root.InitByRootLookup();
@@ -82,7 +83,7 @@ class TestBookmarkModelAssociator : public BookmarkModelAssociator {
return false;
}
- sync_api::WriteTransaction trans(user_share_);
+ sync_api::WriteTransaction trans(FROM_HERE, user_share_);
sync_api::ReadNode root(&trans);
EXPECT_TRUE(root.InitByTagLookup(
ProfileSyncServiceTestHelper::GetTagForType(type)));
@@ -403,7 +404,7 @@ class ProfileSyncServiceBookmarkTest : public testing::Test {
}
void ExpectSyncerNodeMatching(const BookmarkNode* bnode) {
- sync_api::ReadTransaction trans(test_user_share_.user_share());
+ sync_api::ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ExpectSyncerNodeMatching(&trans, bnode);
}
@@ -483,7 +484,7 @@ class ProfileSyncServiceBookmarkTest : public testing::Test {
}
void ExpectModelMatch() {
- sync_api::ReadTransaction trans(test_user_share_.user_share());
+ sync_api::ReadTransaction trans(FROM_HERE, test_user_share_.user_share());
ExpectModelMatch(&trans);
}
@@ -593,7 +594,7 @@ TEST_F(ProfileSyncServiceBookmarkTest, ServerChangeProcessing) {
LoadBookmarkModel(DELETE_EXISTING_STORAGE, DONT_SAVE_TO_STORAGE);
StartSync();
- sync_api::WriteTransaction trans(test_user_share_.user_share());
+ sync_api::WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
FakeServerChange adds(&trans);
int64 f1 = adds.AddFolder(L"Server Folder B", bookmark_bar_id(), 0);
@@ -690,7 +691,7 @@ TEST_F(ProfileSyncServiceBookmarkTest, ServerChangeRequiringFosterParent) {
LoadBookmarkModel(DELETE_EXISTING_STORAGE, DONT_SAVE_TO_STORAGE);
StartSync();
- sync_api::WriteTransaction trans(test_user_share_.user_share());
+ sync_api::WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
// Stress the immediate children of other_node because that's where
// ApplyModelChanges puts a temporary foster parent node.
@@ -739,7 +740,7 @@ TEST_F(ProfileSyncServiceBookmarkTest, ServerChangeWithNonCanonicalURL) {
StartSync();
{
- sync_api::WriteTransaction trans(test_user_share_.user_share());
+ sync_api::WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
FakeServerChange adds(&trans);
std::string url("http://dev.chromium.org");
@@ -770,7 +771,7 @@ TEST_F(ProfileSyncServiceBookmarkTest, DISABLED_ServerChangeWithInvalidURL) {
int child_count = 0;
{
- sync_api::WriteTransaction trans(test_user_share_.user_share());
+ sync_api::WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
FakeServerChange adds(&trans);
std::string url("x");
@@ -887,7 +888,7 @@ TEST_F(ProfileSyncServiceBookmarkTest, UnrecoverableErrorSuspendsService) {
// updating the ProfileSyncService state. This should introduce
// inconsistency between the two models.
{
- sync_api::WriteTransaction trans(test_user_share_.user_share());
+ sync_api::WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
sync_api::WriteNode sync_node(&trans);
ASSERT_TRUE(InitSyncNodeFromChromeNode(node, &sync_node));
sync_node.Remove();
diff --git a/chrome/browser/sync/profile_sync_service_password_unittest.cc b/chrome/browser/sync/profile_sync_service_password_unittest.cc
index 072bb36..0433b67 100644
--- a/chrome/browser/sync/profile_sync_service_password_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_password_unittest.cc
@@ -10,6 +10,7 @@
#include "base/task.h"
#include "base/test/test_timeouts.h"
#include "base/time.h"
+#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/password_manager/password_store.h"
#include "chrome/browser/prefs/pref_service.h"
@@ -86,7 +87,8 @@ ACTION_P3(MakePasswordSyncComponents, service, ps, dtc) {
ACTION_P(AcquireSyncTransaction, password_test_service) {
// Check to make sure we can aquire a transaction (will crash if a transaction
// is already held by this thread, deadlock if held by another thread).
- sync_api::WriteTransaction trans(password_test_service->GetUserShare());
+ sync_api::WriteTransaction trans(
+ FROM_HERE, password_test_service->GetUserShare());
VLOG(1) << "Sync transaction acquired.";
}
@@ -238,7 +240,7 @@ class ProfileSyncServicePasswordTest : public AbstractProfileSyncServiceTest {
}
void AddPasswordSyncNode(const PasswordForm& entry) {
- sync_api::WriteTransaction trans(service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
sync_api::ReadNode password_root(&trans);
ASSERT_TRUE(password_root.InitByTagLookup(browser_sync::kPasswordTag));
@@ -251,7 +253,7 @@ class ProfileSyncServicePasswordTest : public AbstractProfileSyncServiceTest {
}
void GetPasswordEntriesFromSyncDB(std::vector<PasswordForm>* entries) {
- sync_api::ReadTransaction trans(service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, service_->GetUserShare());
sync_api::ReadNode password_root(&trans);
ASSERT_TRUE(password_root.InitByTagLookup(browser_sync::kPasswordTag));
diff --git a/chrome/browser/sync/profile_sync_service_preference_unittest.cc b/chrome/browser/sync/profile_sync_service_preference_unittest.cc
index b6cfd53..436f213 100644
--- a/chrome/browser/sync/profile_sync_service_preference_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_preference_unittest.cc
@@ -9,6 +9,7 @@
#include "base/stl_util-inl.h"
#include "base/string_piece.h"
#include "base/task.h"
+#include "base/tracked.h"
#include "chrome/browser/prefs/pref_model_associator.h"
#include "chrome/browser/prefs/scoped_user_pref_update.h"
#include "chrome/browser/sync/abstract_profile_sync_service_test.h"
@@ -124,7 +125,7 @@ class ProfileSyncServicePreferenceTest
// Caller gets ownership of the returned value.
const Value* GetSyncedValue(const std::string& name) {
- sync_api::ReadTransaction trans(service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, service_->GetUserShare());
sync_api::ReadNode node(&trans);
if (!node.InitByClientTagLookup(syncable::PREFERENCES, name))
@@ -151,7 +152,7 @@ class ProfileSyncServicePreferenceTest
}
int64 SetSyncedValue(const std::string& name, const Value& value) {
- sync_api::WriteTransaction trans(service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
sync_api::ReadNode root(&trans);
if (!root.InitByTagLookup(
syncable::ModelTypeToRootTag(syncable::PREFERENCES))) {
@@ -385,7 +386,7 @@ TEST_F(ProfileSyncServicePreferenceTest, UpdatedSyncNodeActionUpdate) {
scoped_ptr<SyncManager::ChangeRecord> record(MakeChangeRecord(
node_id, SyncManager::ChangeRecord::ACTION_UPDATE));
{
- sync_api::WriteTransaction trans(service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
change_processor_->ApplyChangesFromSyncModel(&trans, record.get(), 1);
}
change_processor_->CommitChangesFromSyncModel();
@@ -405,7 +406,7 @@ TEST_F(ProfileSyncServicePreferenceTest, UpdatedSyncNodeActionAdd) {
scoped_ptr<SyncManager::ChangeRecord> record(MakeChangeRecord(
node_id, SyncManager::ChangeRecord::ACTION_ADD));
{
- sync_api::WriteTransaction trans(service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
change_processor_->ApplyChangesFromSyncModel(&trans, record.get(), 1);
}
change_processor_->CommitChangesFromSyncModel();
@@ -427,7 +428,7 @@ TEST_F(ProfileSyncServicePreferenceTest, UpdatedSyncNodeUnknownPreference) {
scoped_ptr<SyncManager::ChangeRecord> record(MakeChangeRecord(
node_id, SyncManager::ChangeRecord::ACTION_UPDATE));
{
- sync_api::WriteTransaction trans(service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
change_processor_->ApplyChangesFromSyncModel(&trans, record.get(), 1);
}
change_processor_->CommitChangesFromSyncModel();
@@ -460,7 +461,7 @@ TEST_F(ProfileSyncServicePreferenceTest, ManagedPreferences) {
scoped_ptr<SyncManager::ChangeRecord> record(MakeChangeRecord(
node_id, SyncManager::ChangeRecord::ACTION_UPDATE));
{
- sync_api::WriteTransaction trans(service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
change_processor_->ApplyChangesFromSyncModel(&trans, record.get(), 1);
}
change_processor_->CommitChangesFromSyncModel();
@@ -500,7 +501,7 @@ TEST_F(ProfileSyncServicePreferenceTest, DynamicManagedPreferences) {
scoped_ptr<SyncManager::ChangeRecord> record(MakeChangeRecord(
node_id, SyncManager::ChangeRecord::ACTION_ADD));
{
- sync_api::WriteTransaction trans(service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
change_processor_->ApplyChangesFromSyncModel(&trans, record.get(), 1);
}
change_processor_->CommitChangesFromSyncModel();
diff --git a/chrome/browser/sync/profile_sync_service_session_unittest.cc b/chrome/browser/sync/profile_sync_service_session_unittest.cc
index dac1129..590b2ad 100644
--- a/chrome/browser/sync/profile_sync_service_session_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_session_unittest.cc
@@ -10,6 +10,7 @@
#include "base/scoped_temp_dir.h"
#include "base/stl_util-inl.h"
#include "base/task.h"
+#include "base/tracked.h"
#include "chrome/browser/sessions/session_service.h"
#include "chrome/browser/sessions/session_service_factory.h"
#include "chrome/browser/sessions/session_service_test_helper.h"
@@ -191,7 +192,7 @@ TEST_F(ProfileSyncServiceSessionTest, WriteSessionToNode) {
ASSERT_NE(sync_api::kInvalidId, sync_id);
// Check that we can get the correct session specifics back from the node.
- sync_api::ReadTransaction trans(sync_service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare());
sync_api::ReadNode node(&trans);
ASSERT_TRUE(node.InitByClientTagLookup(syncable::SESSIONS,
machine_tag));
@@ -343,7 +344,7 @@ TEST_F(ProfileSyncServiceSessionTest, UpdatedSyncNodeActionUpdate) {
record->id = node_id;
ASSERT_FALSE(notified_of_update_);
{
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
change_processor_->ApplyChangesFromSyncModel(&trans, record.get(), 1);
}
ASSERT_TRUE(notified_of_update_);
@@ -362,7 +363,7 @@ TEST_F(ProfileSyncServiceSessionTest, UpdatedSyncNodeActionAdd) {
record->id = node_id;
ASSERT_FALSE(notified_of_update_);
{
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
change_processor_->ApplyChangesFromSyncModel(&trans, record.get(), 1);
}
ASSERT_TRUE(notified_of_update_);
@@ -381,7 +382,7 @@ TEST_F(ProfileSyncServiceSessionTest, UpdatedSyncNodeActionDelete) {
record->id = node_id;
ASSERT_FALSE(notified_of_update_);
{
- sync_api::WriteTransaction trans(sync_service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
change_processor_->ApplyChangesFromSyncModel(&trans, record.get(), 1);
}
ASSERT_TRUE(notified_of_update_);
diff --git a/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc b/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc
index 417036c..13b7bc5 100644
--- a/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc
@@ -10,6 +10,7 @@
#include "base/string16.h"
#include "base/threading/thread.h"
#include "base/time.h"
+#include "base/tracked.h"
#include "chrome/browser/history/history_backend.h"
#include "chrome/browser/history/history_notifications.h"
#include "chrome/browser/history/history_types.h"
@@ -196,7 +197,7 @@ class ProfileSyncServiceTypedUrlTest : public AbstractProfileSyncServiceTest {
void AddTypedUrlSyncNode(const history::URLRow& url,
const history::VisitVector& visits) {
- sync_api::WriteTransaction trans(service_->GetUserShare());
+ sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
sync_api::ReadNode typed_url_root(&trans);
ASSERT_TRUE(typed_url_root.InitByTagLookup(browser_sync::kTypedUrlTag));
@@ -209,7 +210,7 @@ class ProfileSyncServiceTypedUrlTest : public AbstractProfileSyncServiceTest {
}
void GetTypedUrlsFromSyncDB(std::vector<history::URLRow>* urls) {
- sync_api::ReadTransaction trans(service_->GetUserShare());
+ sync_api::ReadTransaction trans(FROM_HERE, service_->GetUserShare());
sync_api::ReadNode typed_url_root(&trans);
if (!typed_url_root.InitByTagLookup(browser_sync::kTypedUrlTag))
return;
diff --git a/chrome/browser/sync/sessions/sync_session_unittest.cc b/chrome/browser/sync/sessions/sync_session_unittest.cc
index dc9ad8a..b6cbe81 100644
--- a/chrome/browser/sync/sessions/sync_session_unittest.cc
+++ b/chrome/browser/sync/sessions/sync_session_unittest.cc
@@ -124,7 +124,7 @@ TEST_F(SyncSessionTest, SetWriteTransaction) {
scoped_ptr<SyncSession> session(MakeSession());
EXPECT_TRUE(NULL == session->write_transaction());
{
- WriteTransaction trans(dir, syncable::UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, syncable::UNITTEST, dir);
sessions::ScopedSetSessionWriteTransaction set_trans(session.get(), &trans);
EXPECT_TRUE(&trans == session->write_transaction());
}
diff --git a/chrome/browser/sync/syncable/syncable.cc b/chrome/browser/sync/syncable/syncable.cc
index 039ad41..43fbec6 100644
--- a/chrome/browser/sync/syncable/syncable.cc
+++ b/chrome/browser/sync/syncable/syncable.cc
@@ -654,7 +654,7 @@ bool Directory::SafeToPurgeFromMemory(const EntryKernel* const entry) const {
}
void Directory::TakeSnapshotForSaveChanges(SaveChangesSnapshot* snapshot) {
- ReadTransaction trans(this, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, this);
ScopedKernelLock lock(this);
// Deep copy dirty entries from kernel_->metahandles_index into snapshot and
// clear dirty flags.
@@ -712,7 +712,7 @@ bool Directory::SaveChanges() {
void Directory::VacuumAfterSaveChanges(const SaveChangesSnapshot& snapshot) {
// Need a write transaction as we are about to permanently purge entries.
- WriteTransaction trans(this, VACUUM_AFTER_SAVE, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, VACUUM_AFTER_SAVE, this);
ScopedKernelLock lock(this);
kernel_->flushed_metahandles.Push(0); // Begin flush marker
// Now drop everything we can out of memory.
@@ -753,7 +753,7 @@ void Directory::PurgeEntriesWithTypeIn(const std::set<ModelType>& types) {
return;
{
- WriteTransaction trans(this, PURGE_ENTRIES, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, PURGE_ENTRIES, this);
{
ScopedKernelLock lock(this);
MetahandlesIndex::iterator it = kernel_->metahandles_index->begin();
@@ -1199,11 +1199,12 @@ void BaseTransaction::Lock() {
<< elapsed.InSecondsF() << " seconds.";
}
-BaseTransaction::BaseTransaction(
- Directory* directory, const char* name,
- const tracked_objects::Location& from_here, WriterTag writer)
- : directory_(directory), dirkernel_(directory->kernel_), name_(name),
- from_here_(from_here), writer_(writer) {
+BaseTransaction::BaseTransaction(const tracked_objects::Location& from_here,
+ const char* name,
+ WriterTag writer,
+ Directory* directory)
+ : from_here_(from_here), name_(name), writer_(writer),
+ directory_(directory), dirkernel_(directory->kernel_) {
dirkernel_->observers->Notify(
&TransactionObserver::OnTransactionStart, from_here_, writer_);
Lock();
@@ -1272,31 +1273,31 @@ void BaseTransaction::NotifyTransactionComplete(
#undef VLOG_LOC_STREAM
-ReadTransaction::ReadTransaction(Directory* directory,
- const tracked_objects::Location& location)
- : BaseTransaction(directory, "Read", location, INVALID) {
+ReadTransaction::ReadTransaction(const tracked_objects::Location& location,
+ Directory* directory)
+ : BaseTransaction(location, "Read", INVALID, directory) {
}
-ReadTransaction::ReadTransaction(const ScopedDirLookup& scoped_dir,
- const tracked_objects::Location& location)
- : BaseTransaction(scoped_dir.operator -> (), "Read", location, INVALID) {
+ReadTransaction::ReadTransaction(const tracked_objects::Location& location,
+ const ScopedDirLookup& scoped_dir)
+ : BaseTransaction(location, "Read", INVALID, scoped_dir.operator->()) {
}
ReadTransaction::~ReadTransaction() {
UnlockAndLog(NULL);
}
-WriteTransaction::WriteTransaction(Directory* directory, WriterTag writer,
- const tracked_objects::Location& location)
- : BaseTransaction(directory, "Write", location, writer),
- originals_(new OriginalEntries) {
+WriteTransaction::WriteTransaction(const tracked_objects::Location& location,
+ WriterTag writer, Directory* directory)
+ : BaseTransaction(location, "Write", writer, directory),
+ originals_(new OriginalEntries) {
}
-WriteTransaction::WriteTransaction(const ScopedDirLookup& scoped_dir,
+WriteTransaction::WriteTransaction(const tracked_objects::Location& location,
WriterTag writer,
- const tracked_objects::Location& location)
- : BaseTransaction(scoped_dir.operator -> (), "Write", location, writer),
- originals_(new OriginalEntries) {
+ const ScopedDirLookup& scoped_dir)
+ : BaseTransaction(location, "Write", writer, scoped_dir.operator->()),
+ originals_(new OriginalEntries) {
}
void WriteTransaction::SaveOriginal(EntryKernel* entry) {
diff --git a/chrome/browser/sync/syncable/syncable.h b/chrome/browser/sync/syncable/syncable.h
index f58cf1c..1f8914b 100644
--- a/chrome/browser/sync/syncable/syncable.h
+++ b/chrome/browser/sync/syncable/syncable.h
@@ -1132,10 +1132,10 @@ class BaseTransaction {
virtual ~BaseTransaction();
protected:
- BaseTransaction(Directory* directory,
+ BaseTransaction(const tracked_objects::Location& from_here,
const char* name,
- const tracked_objects::Location& from_here,
- WriterTag writer);
+ WriterTag writer,
+ Directory* directory);
void UnlockAndLog(OriginalEntries* entries);
virtual bool NotifyTransactionChangingAndEnding(
@@ -1143,12 +1143,12 @@ class BaseTransaction {
ModelTypeBitSet* models_with_changes);
virtual void NotifyTransactionComplete(ModelTypeBitSet models_with_changes);
+ const tracked_objects::Location from_here_;
+ const char* const name_;
+ WriterTag writer_;
Directory* const directory_;
Directory::Kernel* const dirkernel_; // for brevity
- const char* const name_;
base::TimeTicks time_acquired_;
- const tracked_objects::Location from_here_;
- WriterTag writer_;
private:
void Lock();
@@ -1159,10 +1159,10 @@ class BaseTransaction {
// Locks db in constructor, unlocks in destructor.
class ReadTransaction : public BaseTransaction {
public:
- ReadTransaction(Directory* directory,
- const tracked_objects::Location& from_here);
- ReadTransaction(const ScopedDirLookup& scoped_dir,
- const tracked_objects::Location& from_here);
+ ReadTransaction(const tracked_objects::Location& from_here,
+ Directory* directory);
+ ReadTransaction(const tracked_objects::Location& from_here,
+ const ScopedDirLookup& scoped_dir);
virtual ~ReadTransaction();
@@ -1177,10 +1177,11 @@ class ReadTransaction : public BaseTransaction {
class WriteTransaction : public BaseTransaction {
friend class MutableEntry;
public:
- WriteTransaction(Directory* directory, WriterTag writer,
- const tracked_objects::Location& from_here);
- WriteTransaction(const ScopedDirLookup& directory, WriterTag writer,
- const tracked_objects::Location& from_here);
+ WriteTransaction(const tracked_objects::Location& from_here,
+ WriterTag writer, Directory* directory);
+ WriteTransaction(const tracked_objects::Location& from_here,
+ WriterTag writer, const ScopedDirLookup& directory);
+
virtual ~WriteTransaction();
void SaveOriginal(EntryKernel* entry);
diff --git a/chrome/browser/sync/syncable/syncable_mock.cc b/chrome/browser/sync/syncable/syncable_mock.cc
index 5617f48..da5e891 100644
--- a/chrome/browser/sync/syncable/syncable_mock.cc
+++ b/chrome/browser/sync/syncable/syncable_mock.cc
@@ -13,6 +13,6 @@ MockDirectory::MockDirectory() {
MockDirectory::~MockDirectory() {}
MockSyncableWriteTransaction::MockSyncableWriteTransaction(
- Directory *directory)
- : WriteTransaction(directory, syncable::UNITTEST, FROM_HERE) {
+ const tracked_objects::Location& from_here, Directory *directory)
+ : WriteTransaction(from_here, syncable::UNITTEST, directory) {
}
diff --git a/chrome/browser/sync/syncable/syncable_mock.h b/chrome/browser/sync/syncable/syncable_mock.h
index c20a79b..51692a7 100644
--- a/chrome/browser/sync/syncable/syncable_mock.h
+++ b/chrome/browser/sync/syncable/syncable_mock.h
@@ -34,7 +34,8 @@ class MockDirectory : public Directory {
class MockSyncableWriteTransaction : public syncable::WriteTransaction {
public:
- explicit MockSyncableWriteTransaction(Directory *directory);
+ MockSyncableWriteTransaction(
+ const tracked_objects::Location& from_here, Directory *directory);
};
diff --git a/chrome/browser/sync/syncable/syncable_unittest.cc b/chrome/browser/sync/syncable/syncable_unittest.cc
index ba801c4..a4b5e43 100644
--- a/chrome/browser/sync/syncable/syncable_unittest.cc
+++ b/chrome/browser/sync/syncable/syncable_unittest.cc
@@ -114,7 +114,7 @@ TEST_F(SyncableGeneralTest, General) {
int64 root_metahandle;
{
- ReadTransaction rtrans(&dir, FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, &dir);
Entry e(&rtrans, GET_BY_ID, rtrans.root_id());
ASSERT_TRUE(e.good());
root_metahandle = e.Get(META_HANDLE);
@@ -125,7 +125,7 @@ TEST_F(SyncableGeneralTest, General) {
std::string name = "Jeff";
// Test simple read operations on an empty DB.
{
- ReadTransaction rtrans(&dir, FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, &dir);
Entry e(&rtrans, GET_BY_ID, id);
ASSERT_FALSE(e.good()); // Hasn't been written yet.
@@ -139,7 +139,7 @@ TEST_F(SyncableGeneralTest, General) {
// Test creating a new meta entry.
{
- WriteTransaction wtrans(&dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir);
MutableEntry me(&wtrans, CREATE, wtrans.root_id(), name);
ASSERT_TRUE(me.good());
me.Put(ID, id);
@@ -150,7 +150,7 @@ TEST_F(SyncableGeneralTest, General) {
// Test GetChildHandles* after something is now in the DB.
// Also check that GET_BY_ID works.
{
- ReadTransaction rtrans(&dir, FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, &dir);
Entry e(&rtrans, GET_BY_ID, id);
ASSERT_TRUE(e.good());
@@ -175,7 +175,7 @@ TEST_F(SyncableGeneralTest, General) {
// Test writing data to an entity. Also check that GET_BY_HANDLE works.
static const char s[] = "Hello World.";
{
- WriteTransaction trans(&dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, &dir);
MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle);
ASSERT_TRUE(e.good());
PutDataAsBookmarkFavicon(&trans, &e, s, sizeof(s));
@@ -183,7 +183,7 @@ TEST_F(SyncableGeneralTest, General) {
// Test reading back the contents that we just wrote.
{
- WriteTransaction trans(&dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, &dir);
MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle);
ASSERT_TRUE(e.good());
ExpectDataFromBookmarkFaviconEquals(&trans, &e, s, sizeof(s));
@@ -191,13 +191,13 @@ TEST_F(SyncableGeneralTest, General) {
// Verify it exists in the folder.
{
- ReadTransaction rtrans(&dir, FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, &dir);
EXPECT_EQ(1, CountEntriesWithName(&rtrans, rtrans.root_id(), name));
}
// Now delete it.
{
- WriteTransaction trans(&dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, &dir);
MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle);
e.Put(IS_DEL, true);
@@ -219,7 +219,7 @@ TEST_F(SyncableGeneralTest, ClientIndexRebuildsProperly) {
Directory dir;
dir.Open(db_path_, "IndexTest", &delegate_);
{
- WriteTransaction wtrans(&dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir);
MutableEntry me(&wtrans, CREATE, wtrans.root_id(), name);
ASSERT_TRUE(me.good());
me.Put(ID, id);
@@ -235,7 +235,7 @@ TEST_F(SyncableGeneralTest, ClientIndexRebuildsProperly) {
Directory dir;
dir.Open(db_path_, "IndexTest", &delegate_);
- ReadTransaction trans(&dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, &dir);
Entry me(&trans, GET_BY_CLIENT_TAG, tag);
ASSERT_TRUE(me.good());
EXPECT_EQ(me.Get(ID), id);
@@ -255,7 +255,7 @@ TEST_F(SyncableGeneralTest, ClientIndexRebuildsDeletedProperly) {
Directory dir;
dir.Open(db_path_, "IndexTest", &delegate_);
{
- WriteTransaction wtrans(&dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir);
MutableEntry me(&wtrans, CREATE, wtrans.root_id(), "deleted");
ASSERT_TRUE(me.good());
me.Put(ID, id);
@@ -273,7 +273,7 @@ TEST_F(SyncableGeneralTest, ClientIndexRebuildsDeletedProperly) {
Directory dir;
dir.Open(db_path_, "IndexTest", &delegate_);
- ReadTransaction trans(&dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, &dir);
Entry me(&trans, GET_BY_CLIENT_TAG, tag);
ASSERT_TRUE(me.good());
EXPECT_EQ(me.Get(ID), id);
@@ -289,7 +289,7 @@ TEST_F(SyncableGeneralTest, ToValue) {
const Id id = TestIdFactory::FromNumber(99);
{
- ReadTransaction rtrans(&dir, FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, &dir);
Entry e(&rtrans, GET_BY_ID, id);
EXPECT_FALSE(e.good()); // Hasn't been written yet.
@@ -300,7 +300,7 @@ TEST_F(SyncableGeneralTest, ToValue) {
// Test creating a new meta entry.
{
- WriteTransaction wtrans(&dir, UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir);
MutableEntry me(&wtrans, CREATE, wtrans.root_id(), "new");
ASSERT_TRUE(me.good());
me.Put(ID, id);
@@ -388,7 +388,7 @@ class SyncableDirectoryTest : public testing::Test {
bool before_reload) {
SCOPED_TRACE(testing::Message("Before reload: ") << before_reload);
{
- ReadTransaction trans(dir_.get(), FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir_.get());
MetahandleSet all_set;
dir_->GetAllMetaHandles(&trans, &all_set);
EXPECT_EQ(3U, all_set.size());
@@ -423,7 +423,7 @@ class SyncableDirectoryTest : public testing::Test {
CreateEntry(entryname, TestIdFactory::FromNumber(id));
}
void CreateEntry(const std::string& entryname, Id id) {
- WriteTransaction wtrans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry me(&wtrans, CREATE, wtrans.root_id(), entryname);
ASSERT_TRUE(me.good());
me.Put(ID, id);
@@ -444,7 +444,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsMetahandlesToPurge) {
MetahandleSet expected_purges;
MetahandleSet all_handles;
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
for (int i = 0; i < metas_to_create; i++) {
MutableEntry e(&trans, CREATE, trans.root_id(), "foo");
e.Put(IS_UNSYNCED, true);
@@ -486,7 +486,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsAllDirtyHandlesTest) {
const int metahandles_to_create = 100;
std::vector<int64> expected_dirty_metahandles;
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
for (int i = 0; i < metahandles_to_create; i++) {
MutableEntry e(&trans, CREATE, trans.root_id(), "foo");
expected_dirty_metahandles.push_back(e.Get(META_HANDLE));
@@ -509,7 +509,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsAllDirtyHandlesTest) {
}
// Put a new value with existing transactions as well as adding new ones.
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
std::vector<int64> new_dirty_metahandles;
for (std::vector<int64>::const_iterator i =
expected_dirty_metahandles.begin();
@@ -560,7 +560,7 @@ TEST_F(SyncableDirectoryTest, TestPurgeEntriesWithTypeIn) {
TestIdFactory id_factory;
// Create some items for each type.
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry item1(&trans, CREATE, trans.root_id(), "Item");
ASSERT_TRUE(item1.good());
item1.Put(SPECIFICS, bookmark_specs);
@@ -600,7 +600,7 @@ TEST_F(SyncableDirectoryTest, TestPurgeEntriesWithTypeIn) {
dir_->SaveChanges();
{
- ReadTransaction trans(dir_.get(), FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir_.get());
MetahandleSet all_set;
dir_->GetAllMetaHandles(&trans, &all_set);
ASSERT_EQ(7U, all_set.size());
@@ -622,7 +622,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsOnlyDirtyHandlesTest) {
const unsigned int number_changed = 100u;
std::vector<int64> expected_dirty_metahandles;
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
for (int i = 0; i < metahandles_to_create; i++) {
MutableEntry e(&trans, CREATE, trans.root_id(), "foo");
expected_dirty_metahandles.push_back(e.Get(META_HANDLE));
@@ -632,7 +632,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsOnlyDirtyHandlesTest) {
dir_->SaveChanges();
// Put a new value with existing transactions as well as adding new ones.
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
std::vector<int64> new_dirty_metahandles;
for (std::vector<int64>::const_iterator i =
expected_dirty_metahandles.begin();
@@ -653,7 +653,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsOnlyDirtyHandlesTest) {
dir_->SaveChanges();
// Don't make any changes whatsoever and ensure nothing comes back.
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
for (std::vector<int64>::const_iterator i =
expected_dirty_metahandles.begin();
i != expected_dirty_metahandles.end(); ++i) {
@@ -672,7 +672,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsOnlyDirtyHandlesTest) {
dir_->VacuumAfterSaveChanges(snapshot);
}
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
bool should_change = false;
for (std::vector<int64>::const_iterator i =
expected_dirty_metahandles.begin();
@@ -709,21 +709,21 @@ const Id SyncableDirectoryTest::kId(TestIdFactory::FromNumber(-99));
namespace {
TEST_F(SyncableDirectoryTest, TestBasicLookupNonExistantID) {
- ReadTransaction rtrans(dir_.get(), FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, dir_.get());
Entry e(&rtrans, GET_BY_ID, kId);
ASSERT_FALSE(e.good());
}
TEST_F(SyncableDirectoryTest, TestBasicLookupValidID) {
CreateEntry("rtc");
- ReadTransaction rtrans(dir_.get(), FROM_HERE);
+ ReadTransaction rtrans(FROM_HERE, dir_.get());
Entry e(&rtrans, GET_BY_ID, kId);
ASSERT_TRUE(e.good());
}
TEST_F(SyncableDirectoryTest, TestDelete) {
std::string name = "peanut butter jelly time";
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry e1(&trans, CREATE, trans.root_id(), name);
ASSERT_TRUE(e1.good());
ASSERT_TRUE(e1.Put(IS_DEL, true));
@@ -747,7 +747,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnsynced) {
Directory::UnsyncedMetaHandles handles;
int64 handle1, handle2;
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
dir_->GetUnsyncedMetaHandles(&trans, &handles);
ASSERT_TRUE(0 == handles.size());
@@ -767,7 +767,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnsynced) {
}
dir_->SaveChanges();
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
dir_->GetUnsyncedMetaHandles(&trans, &handles);
ASSERT_TRUE(0 == handles.size());
@@ -778,7 +778,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnsynced) {
}
dir_->SaveChanges();
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
dir_->GetUnsyncedMetaHandles(&trans, &handles);
ASSERT_TRUE(1 == handles.size());
ASSERT_TRUE(handle1 == handles[0]);
@@ -789,7 +789,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnsynced) {
}
dir_->SaveChanges();
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
dir_->GetUnsyncedMetaHandles(&trans, &handles);
ASSERT_TRUE(2 == handles.size());
if (handle1 == handles[0]) {
@@ -807,7 +807,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnsynced) {
}
dir_->SaveChanges();
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
dir_->GetUnsyncedMetaHandles(&trans, &handles);
ASSERT_TRUE(1 == handles.size());
ASSERT_TRUE(handle2 == handles[0]);
@@ -818,7 +818,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnappliedUpdates) {
Directory::UnappliedUpdateMetaHandles handles;
int64 handle1, handle2;
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
dir_->GetUnappliedUpdateMetaHandles(&trans, &handles);
ASSERT_TRUE(0 == handles.size());
@@ -840,7 +840,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnappliedUpdates) {
}
dir_->SaveChanges();
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
dir_->GetUnappliedUpdateMetaHandles(&trans, &handles);
ASSERT_TRUE(0 == handles.size());
@@ -851,7 +851,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnappliedUpdates) {
}
dir_->SaveChanges();
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
dir_->GetUnappliedUpdateMetaHandles(&trans, &handles);
ASSERT_TRUE(1 == handles.size());
ASSERT_TRUE(handle1 == handles[0]);
@@ -862,7 +862,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnappliedUpdates) {
}
dir_->SaveChanges();
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
dir_->GetUnappliedUpdateMetaHandles(&trans, &handles);
ASSERT_TRUE(2 == handles.size());
if (handle1 == handles[0]) {
@@ -878,7 +878,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnappliedUpdates) {
}
dir_->SaveChanges();
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
dir_->GetUnappliedUpdateMetaHandles(&trans, &handles);
ASSERT_TRUE(1 == handles.size());
ASSERT_TRUE(handle2 == handles[0]);
@@ -891,7 +891,7 @@ TEST_F(SyncableDirectoryTest, DeleteBug_531383) {
TestIdFactory id_factory;
int64 grandchild_handle, twin_handle;
{
- WriteTransaction wtrans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry parent(&wtrans, CREATE, id_factory.root(), "Bob");
ASSERT_TRUE(parent.good());
parent.Put(IS_DIR, true);
@@ -917,7 +917,7 @@ TEST_F(SyncableDirectoryTest, DeleteBug_531383) {
}
dir_->SaveChanges();
{
- WriteTransaction wtrans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry grandchild(&wtrans, GET_BY_HANDLE, grandchild_handle);
grandchild.Put(IS_DEL, true); // Used to CHECK fail here.
}
@@ -929,7 +929,7 @@ static inline bool IsLegalNewParent(const Entry& a, const Entry& b) {
TEST_F(SyncableDirectoryTest, TestIsLegalNewParent) {
TestIdFactory id_factory;
- WriteTransaction wtrans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir_.get());
Entry root(&wtrans, GET_BY_ID, id_factory.root());
ASSERT_TRUE(root.good());
MutableEntry parent(&wtrans, CREATE, root.Get(ID), "Bob");
@@ -988,7 +988,7 @@ TEST_F(SyncableDirectoryTest, TestEntryIsInFolder) {
std::string entry_name = "entry";
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry folder(&trans, CREATE, trans.root_id(), "folder");
ASSERT_TRUE(folder.good());
EXPECT_TRUE(folder.Put(IS_DIR, true));
@@ -1004,7 +1004,7 @@ TEST_F(SyncableDirectoryTest, TestEntryIsInFolder) {
// Make sure we can find the entry in the folder.
{
- ReadTransaction trans(dir_.get(), FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir_.get());
EXPECT_EQ(0, CountEntriesWithName(&trans, trans.root_id(), entry_name));
EXPECT_EQ(1, CountEntriesWithName(&trans, folder_id, entry_name));
@@ -1019,7 +1019,7 @@ TEST_F(SyncableDirectoryTest, TestEntryIsInFolder) {
TEST_F(SyncableDirectoryTest, TestParentIdIndexUpdate) {
std::string child_name = "child";
- WriteTransaction wt(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction wt(FROM_HERE, UNITTEST, dir_.get());
MutableEntry parent_folder(&wt, CREATE, wt.root_id(), "folder1");
parent_folder.Put(IS_UNSYNCED, true);
EXPECT_TRUE(parent_folder.Put(IS_DIR, true));
@@ -1048,7 +1048,7 @@ TEST_F(SyncableDirectoryTest, TestNoReindexDeletedItems) {
std::string folder_name = "folder";
std::string new_name = "new_name";
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry folder(&trans, CREATE, trans.root_id(), folder_name);
ASSERT_TRUE(folder.good());
ASSERT_TRUE(folder.Put(IS_DIR, true));
@@ -1066,7 +1066,7 @@ TEST_F(SyncableDirectoryTest, TestNoReindexDeletedItems) {
}
TEST_F(SyncableDirectoryTest, TestCaseChangeRename) {
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry folder(&trans, CREATE, trans.root_id(), "CaseChange");
ASSERT_TRUE(folder.good());
EXPECT_TRUE(folder.Put(PARENT_ID, trans.root_id()));
@@ -1079,7 +1079,7 @@ TEST_F(SyncableDirectoryTest, TestShareInfo) {
dir_->set_store_birthday("Jan 31st");
dir_->SetNotificationState("notification_state");
{
- ReadTransaction trans(dir_.get(), FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir_.get());
EXPECT_TRUE(dir_->initial_sync_ended_for_type(AUTOFILL));
EXPECT_FALSE(dir_->initial_sync_ended_for_type(BOOKMARKS));
EXPECT_EQ("Jan 31st", dir_->store_birthday());
@@ -1090,7 +1090,7 @@ TEST_F(SyncableDirectoryTest, TestShareInfo) {
dir_->SetNotificationState("notification_state2");
dir_->SaveChanges();
{
- ReadTransaction trans(dir_.get(), FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir_.get());
EXPECT_TRUE(dir_->initial_sync_ended_for_type(AUTOFILL));
EXPECT_FALSE(dir_->initial_sync_ended_for_type(BOOKMARKS));
EXPECT_EQ("April 10th", dir_->store_birthday());
@@ -1101,7 +1101,7 @@ TEST_F(SyncableDirectoryTest, TestShareInfo) {
// Restore the directory from disk. Make sure that nothing's changed.
SaveAndReloadDir();
{
- ReadTransaction trans(dir_.get(), FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir_.get());
EXPECT_TRUE(dir_->initial_sync_ended_for_type(AUTOFILL));
EXPECT_FALSE(dir_->initial_sync_ended_for_type(BOOKMARKS));
EXPECT_EQ("April 10th", dir_->store_birthday());
@@ -1118,7 +1118,7 @@ TEST_F(SyncableDirectoryTest, TestSimpleFieldsPreservedDuringSaveChanges) {
std::string create_name = "Create";
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry create(&trans, CREATE, trans.root_id(), create_name);
MutableEntry update(&trans, CREATE_NEW_UPDATE_ITEM, update_id);
create.Put(IS_UNSYNCED, true);
@@ -1139,7 +1139,7 @@ TEST_F(SyncableDirectoryTest, TestSimpleFieldsPreservedDuringSaveChanges) {
ASSERT_TRUE(dir_->good());
{
- ReadTransaction trans(dir_.get(), FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir_.get());
Entry create(&trans, GET_BY_ID, create_id);
EXPECT_EQ(1, CountEntriesWithName(&trans, trans.root_id(), create_name));
Entry update(&trans, GET_BY_ID, update_id);
@@ -1193,7 +1193,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailure) {
int64 handle1 = 0;
// Set up an item using a regular, saveable directory.
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry e1(&trans, CREATE, trans.root_id(), "aguilera");
ASSERT_TRUE(e1.good());
@@ -1210,7 +1210,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailure) {
// Make sure the item is no longer dirty after saving,
// and make a modification.
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry aguilera(&trans, GET_BY_HANDLE, handle1);
ASSERT_TRUE(aguilera.good());
@@ -1230,7 +1230,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailure) {
ASSERT_TRUE(dir_->good());
int64 handle2 = 0;
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry aguilera(&trans, GET_BY_HANDLE, handle1);
ASSERT_TRUE(aguilera.good());
@@ -1259,7 +1259,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailure) {
// Make sure things were rolled back and the world is as it was before call.
{
- ReadTransaction trans(dir_.get(), FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir_.get());
Entry e1(&trans, GET_BY_HANDLE, handle1);
ASSERT_TRUE(e1.good());
EntryKernel aguilera = e1.GetKernelCopy();
@@ -1276,7 +1276,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailureWithPurge) {
int64 handle1 = 0;
// Set up an item using a regular, saveable directory.
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry e1(&trans, CREATE, trans.root_id(), "aguilera");
ASSERT_TRUE(e1.good());
@@ -1327,7 +1327,7 @@ TEST_F(SyncableDirectoryTest, GetModelType) {
sync_pb::EntitySpecifics specifics;
AddDefaultExtensionValue(datatype, &specifics);
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry folder(&trans, CREATE, trans.root_id(), "Folder");
ASSERT_TRUE(folder.good());
@@ -1506,7 +1506,7 @@ class ThreadBugDelegate : public base::PlatformThread::Delegate {
directory_manager_->Open(dirname, &delegate_);
ScopedDirLookup dir(directory_manager_, dirname);
CHECK(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry me(&trans, CREATE, trans.root_id(), "Jeff");
step_->metahandle = me.Get(META_HANDLE);
me.Put(IS_UNSYNCED, true);
@@ -1516,7 +1516,7 @@ class ThreadBugDelegate : public base::PlatformThread::Delegate {
{
ScopedDirLookup dir(directory_manager_, dirname);
CHECK(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry e(&trans, GET_BY_HANDLE, step_->metahandle);
CHECK(e.good()); // Failed due to ThreadBug1
}
@@ -1580,7 +1580,7 @@ class DirectoryKernelStalenessBugDelegate : public ThreadBugDelegate {
directory_manager_->Open(dirname, &delegate_);
ScopedDirLookup dir(directory_manager_, dirname);
CHECK(dir.good());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry me(&trans, CREATE, trans.root_id(), "Jeff");
me.Put(BASE_VERSION, 1);
me.Put(ID, jeff_id);
@@ -1611,7 +1611,7 @@ class DirectoryKernelStalenessBugDelegate : public ThreadBugDelegate {
{
ScopedDirLookup dir(directory_manager_, dirname);
CHECK(dir.good());
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
Entry e(&trans, GET_BY_ID, jeff_id);
ExpectDataFromBookmarkFaviconEquals(&trans, &e, test_bytes,
sizeof(test_bytes));
@@ -1671,14 +1671,14 @@ class StressTransactionsDelegate : public base::PlatformThread::Delegate {
for (int i = 0; i < 20; ++i) {
const int rand_action = rand() % 10;
if (rand_action < 4 && !path_name.empty()) {
- ReadTransaction trans(dir, FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir);
CHECK(1 == CountEntriesWithName(&trans, trans.root_id(), path_name));
base::PlatformThread::Sleep(rand() % 10);
} else {
std::string unique_name =
base::StringPrintf("%d.%d", thread_number_, entry_count++);
path_name.assign(unique_name.begin(), unique_name.end());
- WriteTransaction trans(dir, UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir);
MutableEntry e(&trans, CREATE, trans.root_id(), path_name);
CHECK(e.good());
base::PlatformThread::Sleep(rand() % 20);
@@ -1736,7 +1736,7 @@ class SyncableClientTagTest : public SyncableDirectoryTest {
// Attempt to create an entry with a default tag.
bool CreateWithTag(const char* tag, Id id, bool deleted) {
- WriteTransaction wtrans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry me(&wtrans, CREATE, wtrans.root_id(), test_name_);
CHECK(me.good());
me.Put(ID, id);
@@ -1752,7 +1752,7 @@ class SyncableClientTagTest : public SyncableDirectoryTest {
// Verify an entry exists with the default tag.
void VerifyTag(Id id, bool deleted) {
// Should still be present and valid in the client tag index.
- ReadTransaction trans(dir_.get(), FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir_.get());
Entry me(&trans, GET_BY_CLIENT_TAG, test_tag_);
CHECK(me.good());
EXPECT_EQ(me.Get(ID), id);
@@ -1769,13 +1769,13 @@ TEST_F(SyncableClientTagTest, TestClientTagClear) {
Id server_id = factory_.NewServerId();
EXPECT_TRUE(CreateWithDefaultTag(server_id, false));
{
- WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
+ WriteTransaction trans(FROM_HERE, UNITTEST, dir_.get());
MutableEntry me(&trans, GET_BY_CLIENT_TAG, test_tag_);
EXPECT_TRUE(me.good());
me.Put(UNIQUE_CLIENT_TAG, "");
}
{
- ReadTransaction trans(dir_.get(), FROM_HERE);
+ ReadTransaction trans(FROM_HERE, dir_.get());
Entry by_tag(&trans, GET_BY_CLIENT_TAG, test_tag_);
EXPECT_FALSE(by_tag.good());