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 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 BindJsMessageHandler( | 164 BindJsMessageHandler( |
165 "getRootNodeDetails", | 165 "getRootNodeDetails", |
166 &SyncManager::SyncInternal::GetRootNodeDetails); | 166 &SyncManager::SyncInternal::GetRootNodeDetails); |
167 BindJsMessageHandler( | 167 BindJsMessageHandler( |
168 "getNodeSummariesById", | 168 "getNodeSummariesById", |
169 &SyncManager::SyncInternal::GetNodeSummariesById); | 169 &SyncManager::SyncInternal::GetNodeSummariesById); |
170 BindJsMessageHandler( | 170 BindJsMessageHandler( |
171 "getNodeDetailsById", | 171 "getNodeDetailsById", |
172 &SyncManager::SyncInternal::GetNodeDetailsById); | 172 &SyncManager::SyncInternal::GetNodeDetailsById); |
173 BindJsMessageHandler( | 173 BindJsMessageHandler( |
| 174 "getAllNodes", |
| 175 &SyncManager::SyncInternal::GetAllNodes); |
| 176 BindJsMessageHandler( |
174 "getChildNodeIds", | 177 "getChildNodeIds", |
175 &SyncManager::SyncInternal::GetChildNodeIds); | 178 &SyncManager::SyncInternal::GetChildNodeIds); |
176 BindJsMessageHandler( | |
177 "findNodesContainingString", | |
178 &SyncManager::SyncInternal::FindNodesContainingString); | |
179 } | 179 } |
180 | 180 |
181 virtual ~SyncInternal() { | 181 virtual ~SyncInternal() { |
182 CHECK(!initialized_); | 182 CHECK(!initialized_); |
183 } | 183 } |
184 | 184 |
185 bool Init(const FilePath& database_location, | 185 bool Init(const FilePath& database_location, |
186 const WeakHandle<JsEventHandler>& event_handler, | 186 const WeakHandle<JsEventHandler>& event_handler, |
187 const std::string& sync_server_and_path, | 187 const std::string& sync_server_and_path, |
188 int port, | 188 int port, |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
509 const std::string& name, UnboundJsMessageHandler unbound_message_handler); | 509 const std::string& name, UnboundJsMessageHandler unbound_message_handler); |
510 | 510 |
511 // Returned pointer is owned by the caller. | 511 // Returned pointer is owned by the caller. |
512 static DictionaryValue* NotificationInfoToValue( | 512 static DictionaryValue* NotificationInfoToValue( |
513 const NotificationInfoMap& notification_info); | 513 const NotificationInfoMap& notification_info); |
514 | 514 |
515 // JS message handlers. | 515 // JS message handlers. |
516 JsArgList GetNotificationState(const JsArgList& args); | 516 JsArgList GetNotificationState(const JsArgList& args); |
517 JsArgList GetNotificationInfo(const JsArgList& args); | 517 JsArgList GetNotificationInfo(const JsArgList& args); |
518 JsArgList GetRootNodeDetails(const JsArgList& args); | 518 JsArgList GetRootNodeDetails(const JsArgList& args); |
| 519 JsArgList GetAllNodes(const JsArgList& args); |
519 JsArgList GetNodeSummariesById(const JsArgList& args); | 520 JsArgList GetNodeSummariesById(const JsArgList& args); |
520 JsArgList GetNodeDetailsById(const JsArgList& args); | 521 JsArgList GetNodeDetailsById(const JsArgList& args); |
521 JsArgList GetChildNodeIds(const JsArgList& args); | 522 JsArgList GetChildNodeIds(const JsArgList& args); |
522 JsArgList FindNodesContainingString(const JsArgList& args); | |
523 | 523 |
524 FilePath database_path_; | 524 FilePath database_path_; |
525 | 525 |
526 const std::string name_; | 526 const std::string name_; |
527 | 527 |
528 base::ThreadChecker thread_checker_; | 528 base::ThreadChecker thread_checker_; |
529 | 529 |
530 base::WeakPtrFactory<SyncInternal> weak_ptr_factory_; | 530 base::WeakPtrFactory<SyncInternal> weak_ptr_factory_; |
531 | 531 |
532 // Thread-safe handle used by | 532 // Thread-safe handle used by |
(...skipping 1719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2252 JsArgList SyncManager::SyncInternal::GetNodeSummariesById( | 2252 JsArgList SyncManager::SyncInternal::GetNodeSummariesById( |
2253 const JsArgList& args) { | 2253 const JsArgList& args) { |
2254 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetSummaryAsValue); | 2254 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetSummaryAsValue); |
2255 } | 2255 } |
2256 | 2256 |
2257 JsArgList SyncManager::SyncInternal::GetNodeDetailsById( | 2257 JsArgList SyncManager::SyncInternal::GetNodeDetailsById( |
2258 const JsArgList& args) { | 2258 const JsArgList& args) { |
2259 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetDetailsAsValue); | 2259 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetDetailsAsValue); |
2260 } | 2260 } |
2261 | 2261 |
| 2262 JsArgList SyncManager::SyncInternal::GetAllNodes( |
| 2263 const JsArgList& args) { |
| 2264 ListValue return_args; |
| 2265 ListValue* result = new ListValue(); |
| 2266 return_args.Append(result); |
| 2267 |
| 2268 ReadTransaction trans(FROM_HERE, GetUserShare()); |
| 2269 std::vector<const syncable::EntryKernel*> entry_kernels; |
| 2270 trans.GetDirectory()->GetAllEntryKernels(trans.GetWrappedTrans(), |
| 2271 &entry_kernels); |
| 2272 |
| 2273 for (std::vector<const syncable::EntryKernel*>::const_iterator it = |
| 2274 entry_kernels.begin(); it != entry_kernels.end(); ++it) { |
| 2275 result->Append((*it)->ToValue()); |
| 2276 } |
| 2277 |
| 2278 return JsArgList(&return_args); |
| 2279 } |
| 2280 |
2262 JsArgList SyncManager::SyncInternal::GetChildNodeIds( | 2281 JsArgList SyncManager::SyncInternal::GetChildNodeIds( |
2263 const JsArgList& args) { | 2282 const JsArgList& args) { |
2264 ListValue return_args; | 2283 ListValue return_args; |
2265 ListValue* child_ids = new ListValue(); | 2284 ListValue* child_ids = new ListValue(); |
2266 return_args.Append(child_ids); | 2285 return_args.Append(child_ids); |
2267 int64 id = GetId(args.Get(), 0); | 2286 int64 id = GetId(args.Get(), 0); |
2268 if (id != kInvalidId) { | 2287 if (id != kInvalidId) { |
2269 ReadTransaction trans(FROM_HERE, GetUserShare()); | 2288 ReadTransaction trans(FROM_HERE, GetUserShare()); |
2270 syncable::Directory::ChildHandles child_handles; | 2289 syncable::Directory::ChildHandles child_handles; |
2271 trans.GetDirectory()->GetChildHandlesByHandle(trans.GetWrappedTrans(), | 2290 trans.GetDirectory()->GetChildHandlesByHandle(trans.GetWrappedTrans(), |
2272 id, &child_handles); | 2291 id, &child_handles); |
2273 for (syncable::Directory::ChildHandles::const_iterator it = | 2292 for (syncable::Directory::ChildHandles::const_iterator it = |
2274 child_handles.begin(); it != child_handles.end(); ++it) { | 2293 child_handles.begin(); it != child_handles.end(); ++it) { |
2275 child_ids->Append(Value::CreateStringValue( | 2294 child_ids->Append(Value::CreateStringValue( |
2276 base::Int64ToString(*it))); | 2295 base::Int64ToString(*it))); |
2277 } | 2296 } |
2278 } | 2297 } |
2279 return JsArgList(&return_args); | 2298 return JsArgList(&return_args); |
2280 } | 2299 } |
2281 | 2300 |
2282 JsArgList SyncManager::SyncInternal::FindNodesContainingString( | |
2283 const JsArgList& args) { | |
2284 std::string query; | |
2285 ListValue return_args; | |
2286 if (!args.Get().GetString(0, &query)) { | |
2287 return_args.Append(new ListValue()); | |
2288 return JsArgList(&return_args); | |
2289 } | |
2290 | |
2291 // Convert the query string to lower case to perform case insensitive | |
2292 // searches. | |
2293 std::string lowercase_query = query; | |
2294 StringToLowerASCII(&lowercase_query); | |
2295 | |
2296 ListValue* result = new ListValue(); | |
2297 return_args.Append(result); | |
2298 | |
2299 ReadTransaction trans(FROM_HERE, GetUserShare()); | |
2300 std::vector<const syncable::EntryKernel*> entry_kernels; | |
2301 trans.GetDirectory()->GetAllEntryKernels(trans.GetWrappedTrans(), | |
2302 &entry_kernels); | |
2303 | |
2304 for (std::vector<const syncable::EntryKernel*>::const_iterator it = | |
2305 entry_kernels.begin(); it != entry_kernels.end(); ++it) { | |
2306 if ((*it)->ContainsString(lowercase_query)) { | |
2307 result->Append(new StringValue(base::Int64ToString( | |
2308 (*it)->ref(syncable::META_HANDLE)))); | |
2309 } | |
2310 } | |
2311 | |
2312 return JsArgList(&return_args); | |
2313 } | |
2314 | |
2315 void SyncManager::SyncInternal::OnEncryptedTypesChanged( | 2301 void SyncManager::SyncInternal::OnEncryptedTypesChanged( |
2316 syncable::ModelTypeSet encrypted_types, | 2302 syncable::ModelTypeSet encrypted_types, |
2317 bool encrypt_everything) { | 2303 bool encrypt_everything) { |
2318 // NOTE: We're in a transaction. | 2304 // NOTE: We're in a transaction. |
2319 FOR_EACH_OBSERVER( | 2305 FOR_EACH_OBSERVER( |
2320 SyncManager::Observer, observers_, | 2306 SyncManager::Observer, observers_, |
2321 OnEncryptedTypesChanged(encrypted_types, encrypt_everything)); | 2307 OnEncryptedTypesChanged(encrypted_types, encrypt_everything)); |
2322 } | 2308 } |
2323 | 2309 |
2324 void SyncManager::SyncInternal::OnNotificationStateChange( | 2310 void SyncManager::SyncInternal::OnNotificationStateChange( |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2543 share->directory->GetDownloadProgress(i.Get(), &marker); | 2529 share->directory->GetDownloadProgress(i.Get(), &marker); |
2544 | 2530 |
2545 if (marker.token().empty()) | 2531 if (marker.token().empty()) |
2546 result.Put(i.Get()); | 2532 result.Put(i.Get()); |
2547 | 2533 |
2548 } | 2534 } |
2549 return result; | 2535 return result; |
2550 } | 2536 } |
2551 | 2537 |
2552 } // namespace sync_api | 2538 } // namespace sync_api |
OLD | NEW |