| 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 |