| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/sync/internal_api/sync_manager.h" | 5 #include "chrome/browser/sync/internal_api/sync_manager.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/base64.h" | 9 #include "base/base64.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 BindJsMessageHandler( | 169 BindJsMessageHandler( |
| 170 "getRootNodeDetails", | 170 "getRootNodeDetails", |
| 171 &SyncManager::SyncInternal::GetRootNodeDetails); | 171 &SyncManager::SyncInternal::GetRootNodeDetails); |
| 172 BindJsMessageHandler( | 172 BindJsMessageHandler( |
| 173 "getNodeSummariesById", | 173 "getNodeSummariesById", |
| 174 &SyncManager::SyncInternal::GetNodeSummariesById); | 174 &SyncManager::SyncInternal::GetNodeSummariesById); |
| 175 BindJsMessageHandler( | 175 BindJsMessageHandler( |
| 176 "getNodeDetailsById", | 176 "getNodeDetailsById", |
| 177 &SyncManager::SyncInternal::GetNodeDetailsById); | 177 &SyncManager::SyncInternal::GetNodeDetailsById); |
| 178 BindJsMessageHandler( | 178 BindJsMessageHandler( |
| 179 "getAllNodes", |
| 180 &SyncManager::SyncInternal::GetAllNodes); |
| 181 BindJsMessageHandler( |
| 179 "getChildNodeIds", | 182 "getChildNodeIds", |
| 180 &SyncManager::SyncInternal::GetChildNodeIds); | 183 &SyncManager::SyncInternal::GetChildNodeIds); |
| 181 BindJsMessageHandler( | 184 BindJsMessageHandler( |
| 182 "findNodesContainingString", | |
| 183 &SyncManager::SyncInternal::FindNodesContainingString); | |
| 184 BindJsMessageHandler( | |
| 185 "getClientServerTraffic", | 185 "getClientServerTraffic", |
| 186 &SyncManager::SyncInternal::GetClientServerTraffic); | 186 &SyncManager::SyncInternal::GetClientServerTraffic); |
| 187 } | 187 } |
| 188 | 188 |
| 189 virtual ~SyncInternal() { | 189 virtual ~SyncInternal() { |
| 190 CHECK(!initialized_); | 190 CHECK(!initialized_); |
| 191 } | 191 } |
| 192 | 192 |
| 193 bool Init(const FilePath& database_location, | 193 bool Init(const FilePath& database_location, |
| 194 const WeakHandle<JsEventHandler>& event_handler, | 194 const WeakHandle<JsEventHandler>& event_handler, |
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 519 const std::string& name, UnboundJsMessageHandler unbound_message_handler); | 519 const std::string& name, UnboundJsMessageHandler unbound_message_handler); |
| 520 | 520 |
| 521 // Returned pointer is owned by the caller. | 521 // Returned pointer is owned by the caller. |
| 522 static DictionaryValue* NotificationInfoToValue( | 522 static DictionaryValue* NotificationInfoToValue( |
| 523 const NotificationInfoMap& notification_info); | 523 const NotificationInfoMap& notification_info); |
| 524 | 524 |
| 525 // JS message handlers. | 525 // JS message handlers. |
| 526 JsArgList GetNotificationState(const JsArgList& args); | 526 JsArgList GetNotificationState(const JsArgList& args); |
| 527 JsArgList GetNotificationInfo(const JsArgList& args); | 527 JsArgList GetNotificationInfo(const JsArgList& args); |
| 528 JsArgList GetRootNodeDetails(const JsArgList& args); | 528 JsArgList GetRootNodeDetails(const JsArgList& args); |
| 529 JsArgList GetAllNodes(const JsArgList& args); |
| 529 JsArgList GetNodeSummariesById(const JsArgList& args); | 530 JsArgList GetNodeSummariesById(const JsArgList& args); |
| 530 JsArgList GetNodeDetailsById(const JsArgList& args); | 531 JsArgList GetNodeDetailsById(const JsArgList& args); |
| 531 JsArgList GetChildNodeIds(const JsArgList& args); | 532 JsArgList GetChildNodeIds(const JsArgList& args); |
| 532 JsArgList FindNodesContainingString(const JsArgList& args); | |
| 533 JsArgList GetClientServerTraffic(const JsArgList& args); | 533 JsArgList GetClientServerTraffic(const JsArgList& args); |
| 534 | 534 |
| 535 FilePath database_path_; | 535 FilePath database_path_; |
| 536 | 536 |
| 537 const std::string name_; | 537 const std::string name_; |
| 538 | 538 |
| 539 base::ThreadChecker thread_checker_; | 539 base::ThreadChecker thread_checker_; |
| 540 | 540 |
| 541 base::WeakPtrFactory<SyncInternal> weak_ptr_factory_; | 541 base::WeakPtrFactory<SyncInternal> weak_ptr_factory_; |
| 542 | 542 |
| (...skipping 1741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2284 JsArgList SyncManager::SyncInternal::GetNodeSummariesById( | 2284 JsArgList SyncManager::SyncInternal::GetNodeSummariesById( |
| 2285 const JsArgList& args) { | 2285 const JsArgList& args) { |
| 2286 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetSummaryAsValue); | 2286 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetSummaryAsValue); |
| 2287 } | 2287 } |
| 2288 | 2288 |
| 2289 JsArgList SyncManager::SyncInternal::GetNodeDetailsById( | 2289 JsArgList SyncManager::SyncInternal::GetNodeDetailsById( |
| 2290 const JsArgList& args) { | 2290 const JsArgList& args) { |
| 2291 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetDetailsAsValue); | 2291 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetDetailsAsValue); |
| 2292 } | 2292 } |
| 2293 | 2293 |
| 2294 JsArgList SyncManager::SyncInternal::GetAllNodes( |
| 2295 const JsArgList& args) { |
| 2296 ListValue return_args; |
| 2297 ListValue* result = new ListValue(); |
| 2298 return_args.Append(result); |
| 2299 |
| 2300 ReadTransaction trans(FROM_HERE, GetUserShare()); |
| 2301 std::vector<const syncable::EntryKernel*> entry_kernels; |
| 2302 trans.GetDirectory()->GetAllEntryKernels(trans.GetWrappedTrans(), |
| 2303 &entry_kernels); |
| 2304 |
| 2305 for (std::vector<const syncable::EntryKernel*>::const_iterator it = |
| 2306 entry_kernels.begin(); it != entry_kernels.end(); ++it) { |
| 2307 result->Append((*it)->ToValue()); |
| 2308 } |
| 2309 |
| 2310 return JsArgList(&return_args); |
| 2311 } |
| 2312 |
| 2294 JsArgList SyncManager::SyncInternal::GetChildNodeIds( | 2313 JsArgList SyncManager::SyncInternal::GetChildNodeIds( |
| 2295 const JsArgList& args) { | 2314 const JsArgList& args) { |
| 2296 ListValue return_args; | 2315 ListValue return_args; |
| 2297 ListValue* child_ids = new ListValue(); | 2316 ListValue* child_ids = new ListValue(); |
| 2298 return_args.Append(child_ids); | 2317 return_args.Append(child_ids); |
| 2299 int64 id = GetId(args.Get(), 0); | 2318 int64 id = GetId(args.Get(), 0); |
| 2300 if (id != kInvalidId) { | 2319 if (id != kInvalidId) { |
| 2301 ReadTransaction trans(FROM_HERE, GetUserShare()); | 2320 ReadTransaction trans(FROM_HERE, GetUserShare()); |
| 2302 syncable::Directory::ChildHandles child_handles; | 2321 syncable::Directory::ChildHandles child_handles; |
| 2303 trans.GetDirectory()->GetChildHandlesByHandle(trans.GetWrappedTrans(), | 2322 trans.GetDirectory()->GetChildHandlesByHandle(trans.GetWrappedTrans(), |
| 2304 id, &child_handles); | 2323 id, &child_handles); |
| 2305 for (syncable::Directory::ChildHandles::const_iterator it = | 2324 for (syncable::Directory::ChildHandles::const_iterator it = |
| 2306 child_handles.begin(); it != child_handles.end(); ++it) { | 2325 child_handles.begin(); it != child_handles.end(); ++it) { |
| 2307 child_ids->Append(Value::CreateStringValue( | 2326 child_ids->Append(Value::CreateStringValue( |
| 2308 base::Int64ToString(*it))); | 2327 base::Int64ToString(*it))); |
| 2309 } | 2328 } |
| 2310 } | 2329 } |
| 2311 return JsArgList(&return_args); | 2330 return JsArgList(&return_args); |
| 2312 } | 2331 } |
| 2313 | 2332 |
| 2314 JsArgList SyncManager::SyncInternal::FindNodesContainingString( | |
| 2315 const JsArgList& args) { | |
| 2316 std::string query; | |
| 2317 ListValue return_args; | |
| 2318 if (!args.Get().GetString(0, &query)) { | |
| 2319 return_args.Append(new ListValue()); | |
| 2320 return JsArgList(&return_args); | |
| 2321 } | |
| 2322 | |
| 2323 // Convert the query string to lower case to perform case insensitive | |
| 2324 // searches. | |
| 2325 std::string lowercase_query = query; | |
| 2326 StringToLowerASCII(&lowercase_query); | |
| 2327 | |
| 2328 ListValue* result = new ListValue(); | |
| 2329 return_args.Append(result); | |
| 2330 | |
| 2331 ReadTransaction trans(FROM_HERE, GetUserShare()); | |
| 2332 std::vector<const syncable::EntryKernel*> entry_kernels; | |
| 2333 trans.GetDirectory()->GetAllEntryKernels(trans.GetWrappedTrans(), | |
| 2334 &entry_kernels); | |
| 2335 | |
| 2336 for (std::vector<const syncable::EntryKernel*>::const_iterator it = | |
| 2337 entry_kernels.begin(); it != entry_kernels.end(); ++it) { | |
| 2338 if ((*it)->ContainsString(lowercase_query)) { | |
| 2339 result->Append(new StringValue(base::Int64ToString( | |
| 2340 (*it)->ref(syncable::META_HANDLE)))); | |
| 2341 } | |
| 2342 } | |
| 2343 | |
| 2344 return JsArgList(&return_args); | |
| 2345 } | |
| 2346 | |
| 2347 void SyncManager::SyncInternal::OnEncryptedTypesChanged( | 2333 void SyncManager::SyncInternal::OnEncryptedTypesChanged( |
| 2348 syncable::ModelTypeSet encrypted_types, | 2334 syncable::ModelTypeSet encrypted_types, |
| 2349 bool encrypt_everything) { | 2335 bool encrypt_everything) { |
| 2350 // NOTE: We're in a transaction. | 2336 // NOTE: We're in a transaction. |
| 2351 FOR_EACH_OBSERVER( | 2337 FOR_EACH_OBSERVER( |
| 2352 SyncManager::Observer, observers_, | 2338 SyncManager::Observer, observers_, |
| 2353 OnEncryptedTypesChanged(encrypted_types, encrypt_everything)); | 2339 OnEncryptedTypesChanged(encrypted_types, encrypt_everything)); |
| 2354 } | 2340 } |
| 2355 | 2341 |
| 2356 void SyncManager::SyncInternal::OnNotificationStateChange( | 2342 void SyncManager::SyncInternal::OnNotificationStateChange( |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2575 share->directory->GetDownloadProgress(i.Get(), &marker); | 2561 share->directory->GetDownloadProgress(i.Get(), &marker); |
| 2576 | 2562 |
| 2577 if (marker.token().empty()) | 2563 if (marker.token().empty()) |
| 2578 result.Put(i.Get()); | 2564 result.Put(i.Get()); |
| 2579 | 2565 |
| 2580 } | 2566 } |
| 2581 return result; | 2567 return result; |
| 2582 } | 2568 } |
| 2583 | 2569 |
| 2584 } // namespace sync_api | 2570 } // namespace sync_api |
| OLD | NEW |