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 |