Chromium Code Reviews| 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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 158 BindJsMessageHandler( | 158 BindJsMessageHandler( |
| 159 "getRootNodeDetails", | 159 "getRootNodeDetails", |
| 160 &SyncManager::SyncInternal::GetRootNodeDetails); | 160 &SyncManager::SyncInternal::GetRootNodeDetails); |
| 161 BindJsMessageHandler( | 161 BindJsMessageHandler( |
| 162 "getNodeSummariesById", | 162 "getNodeSummariesById", |
| 163 &SyncManager::SyncInternal::GetNodeSummariesById); | 163 &SyncManager::SyncInternal::GetNodeSummariesById); |
| 164 BindJsMessageHandler( | 164 BindJsMessageHandler( |
| 165 "getNodeDetailsById", | 165 "getNodeDetailsById", |
| 166 &SyncManager::SyncInternal::GetNodeDetailsById); | 166 &SyncManager::SyncInternal::GetNodeDetailsById); |
| 167 BindJsMessageHandler( | 167 BindJsMessageHandler( |
| 168 "getAllNodes", | |
|
akalin
2012/03/29 18:41:43
i think adding a getAllNodes message won't work, b
rlarocque
2012/03/29 20:51:32
I understand your concern. I didn't expect this t
| |
| 169 &SyncManager::SyncInternal::GetAllNodes); | |
| 170 BindJsMessageHandler( | |
| 168 "getChildNodeIds", | 171 "getChildNodeIds", |
| 169 &SyncManager::SyncInternal::GetChildNodeIds); | 172 &SyncManager::SyncInternal::GetChildNodeIds); |
| 170 BindJsMessageHandler( | |
| 171 "findNodesContainingString", | |
| 172 &SyncManager::SyncInternal::FindNodesContainingString); | |
| 173 } | 173 } |
| 174 | 174 |
| 175 virtual ~SyncInternal() { | 175 virtual ~SyncInternal() { |
| 176 CHECK(!initialized_); | 176 CHECK(!initialized_); |
| 177 } | 177 } |
| 178 | 178 |
| 179 bool Init(const FilePath& database_location, | 179 bool Init(const FilePath& database_location, |
| 180 const WeakHandle<JsEventHandler>& event_handler, | 180 const WeakHandle<JsEventHandler>& event_handler, |
| 181 const std::string& sync_server_and_path, | 181 const std::string& sync_server_and_path, |
| 182 int port, | 182 int port, |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 503 const std::string& name, UnboundJsMessageHandler unbound_message_handler); | 503 const std::string& name, UnboundJsMessageHandler unbound_message_handler); |
| 504 | 504 |
| 505 // Returned pointer is owned by the caller. | 505 // Returned pointer is owned by the caller. |
| 506 static DictionaryValue* NotificationInfoToValue( | 506 static DictionaryValue* NotificationInfoToValue( |
| 507 const NotificationInfoMap& notification_info); | 507 const NotificationInfoMap& notification_info); |
| 508 | 508 |
| 509 // JS message handlers. | 509 // JS message handlers. |
| 510 JsArgList GetNotificationState(const JsArgList& args); | 510 JsArgList GetNotificationState(const JsArgList& args); |
| 511 JsArgList GetNotificationInfo(const JsArgList& args); | 511 JsArgList GetNotificationInfo(const JsArgList& args); |
| 512 JsArgList GetRootNodeDetails(const JsArgList& args); | 512 JsArgList GetRootNodeDetails(const JsArgList& args); |
| 513 JsArgList GetAllNodes(const JsArgList& args); | |
| 513 JsArgList GetNodeSummariesById(const JsArgList& args); | 514 JsArgList GetNodeSummariesById(const JsArgList& args); |
| 514 JsArgList GetNodeDetailsById(const JsArgList& args); | 515 JsArgList GetNodeDetailsById(const JsArgList& args); |
| 515 JsArgList GetChildNodeIds(const JsArgList& args); | 516 JsArgList GetChildNodeIds(const JsArgList& args); |
| 516 JsArgList FindNodesContainingString(const JsArgList& args); | |
| 517 | 517 |
| 518 FilePath database_path_; | 518 FilePath database_path_; |
| 519 | 519 |
| 520 const std::string name_; | 520 const std::string name_; |
| 521 | 521 |
| 522 base::ThreadChecker thread_checker_; | 522 base::ThreadChecker thread_checker_; |
| 523 | 523 |
| 524 base::WeakPtrFactory<SyncInternal> weak_ptr_factory_; | 524 base::WeakPtrFactory<SyncInternal> weak_ptr_factory_; |
| 525 | 525 |
| 526 // Thread-safe handle used by | 526 // Thread-safe handle used by |
| (...skipping 1701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2228 JsArgList SyncManager::SyncInternal::GetNodeSummariesById( | 2228 JsArgList SyncManager::SyncInternal::GetNodeSummariesById( |
| 2229 const JsArgList& args) { | 2229 const JsArgList& args) { |
| 2230 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetSummaryAsValue); | 2230 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetSummaryAsValue); |
| 2231 } | 2231 } |
| 2232 | 2232 |
| 2233 JsArgList SyncManager::SyncInternal::GetNodeDetailsById( | 2233 JsArgList SyncManager::SyncInternal::GetNodeDetailsById( |
| 2234 const JsArgList& args) { | 2234 const JsArgList& args) { |
| 2235 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetDetailsAsValue); | 2235 return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetDetailsAsValue); |
| 2236 } | 2236 } |
| 2237 | 2237 |
| 2238 JsArgList SyncManager::SyncInternal::GetAllNodes( | |
| 2239 const JsArgList& args) { | |
| 2240 ListValue return_args; | |
| 2241 ListValue* result = new ListValue(); | |
| 2242 return_args.Append(result); | |
| 2243 | |
| 2244 ReadTransaction trans(FROM_HERE, GetUserShare()); | |
| 2245 std::vector<const syncable::EntryKernel*> entry_kernels; | |
| 2246 trans.GetDirectory()->GetAllEntryKernels(trans.GetWrappedTrans(), | |
| 2247 &entry_kernels); | |
| 2248 | |
| 2249 for (std::vector<const syncable::EntryKernel*>::const_iterator it = | |
| 2250 entry_kernels.begin(); it != entry_kernels.end(); ++it) { | |
| 2251 result->Append((*it)->ToValue()); | |
|
rlarocque
2012/03/27 01:49:05
This returns the JSON-ified node to the JavaScript
| |
| 2252 } | |
| 2253 | |
| 2254 return JsArgList(&return_args); | |
| 2255 } | |
| 2256 | |
| 2238 JsArgList SyncManager::SyncInternal::GetChildNodeIds( | 2257 JsArgList SyncManager::SyncInternal::GetChildNodeIds( |
| 2239 const JsArgList& args) { | 2258 const JsArgList& args) { |
| 2240 ListValue return_args; | 2259 ListValue return_args; |
| 2241 ListValue* child_ids = new ListValue(); | 2260 ListValue* child_ids = new ListValue(); |
| 2242 return_args.Append(child_ids); | 2261 return_args.Append(child_ids); |
| 2243 int64 id = GetId(args.Get(), 0); | 2262 int64 id = GetId(args.Get(), 0); |
| 2244 if (id != kInvalidId) { | 2263 if (id != kInvalidId) { |
| 2245 ReadTransaction trans(FROM_HERE, GetUserShare()); | 2264 ReadTransaction trans(FROM_HERE, GetUserShare()); |
| 2246 syncable::Directory::ChildHandles child_handles; | 2265 syncable::Directory::ChildHandles child_handles; |
| 2247 trans.GetDirectory()->GetChildHandlesByHandle(trans.GetWrappedTrans(), | 2266 trans.GetDirectory()->GetChildHandlesByHandle(trans.GetWrappedTrans(), |
| 2248 id, &child_handles); | 2267 id, &child_handles); |
| 2249 for (syncable::Directory::ChildHandles::const_iterator it = | 2268 for (syncable::Directory::ChildHandles::const_iterator it = |
| 2250 child_handles.begin(); it != child_handles.end(); ++it) { | 2269 child_handles.begin(); it != child_handles.end(); ++it) { |
| 2251 child_ids->Append(Value::CreateStringValue( | 2270 child_ids->Append(Value::CreateStringValue( |
| 2252 base::Int64ToString(*it))); | 2271 base::Int64ToString(*it))); |
| 2253 } | 2272 } |
| 2254 } | 2273 } |
| 2255 return JsArgList(&return_args); | 2274 return JsArgList(&return_args); |
| 2256 } | 2275 } |
| 2257 | 2276 |
| 2258 JsArgList SyncManager::SyncInternal::FindNodesContainingString( | |
| 2259 const JsArgList& args) { | |
| 2260 std::string query; | |
| 2261 ListValue return_args; | |
| 2262 if (!args.Get().GetString(0, &query)) { | |
| 2263 return_args.Append(new ListValue()); | |
| 2264 return JsArgList(&return_args); | |
| 2265 } | |
| 2266 | |
| 2267 // Convert the query string to lower case to perform case insensitive | |
| 2268 // searches. | |
| 2269 std::string lowercase_query = query; | |
| 2270 StringToLowerASCII(&lowercase_query); | |
| 2271 | |
| 2272 ListValue* result = new ListValue(); | |
| 2273 return_args.Append(result); | |
| 2274 | |
| 2275 ReadTransaction trans(FROM_HERE, GetUserShare()); | |
| 2276 std::vector<const syncable::EntryKernel*> entry_kernels; | |
| 2277 trans.GetDirectory()->GetAllEntryKernels(trans.GetWrappedTrans(), | |
| 2278 &entry_kernels); | |
| 2279 | |
| 2280 for (std::vector<const syncable::EntryKernel*>::const_iterator it = | |
| 2281 entry_kernels.begin(); it != entry_kernels.end(); ++it) { | |
| 2282 if ((*it)->ContainsString(lowercase_query)) { | |
| 2283 result->Append(new StringValue(base::Int64ToString( | |
| 2284 (*it)->ref(syncable::META_HANDLE)))); | |
| 2285 } | |
| 2286 } | |
| 2287 | |
| 2288 return JsArgList(&return_args); | |
| 2289 } | |
| 2290 | |
| 2291 void SyncManager::SyncInternal::OnEncryptedTypesChanged( | 2277 void SyncManager::SyncInternal::OnEncryptedTypesChanged( |
| 2292 syncable::ModelTypeSet encrypted_types, | 2278 syncable::ModelTypeSet encrypted_types, |
| 2293 bool encrypt_everything) { | 2279 bool encrypt_everything) { |
| 2294 // NOTE: We're in a transaction. | 2280 // NOTE: We're in a transaction. |
| 2295 FOR_EACH_OBSERVER( | 2281 FOR_EACH_OBSERVER( |
| 2296 SyncManager::Observer, observers_, | 2282 SyncManager::Observer, observers_, |
| 2297 OnEncryptedTypesChanged(encrypted_types, encrypt_everything)); | 2283 OnEncryptedTypesChanged(encrypted_types, encrypt_everything)); |
| 2298 } | 2284 } |
| 2299 | 2285 |
| 2300 void SyncManager::SyncInternal::OnNotificationStateChange( | 2286 void SyncManager::SyncInternal::OnNotificationStateChange( |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2519 share->directory->GetDownloadProgress(i.Get(), &marker); | 2505 share->directory->GetDownloadProgress(i.Get(), &marker); |
| 2520 | 2506 |
| 2521 if (marker.token().empty()) | 2507 if (marker.token().empty()) |
| 2522 result.Put(i.Get()); | 2508 result.Put(i.Get()); |
| 2523 | 2509 |
| 2524 } | 2510 } |
| 2525 return result; | 2511 return result; |
| 2526 } | 2512 } |
| 2527 | 2513 |
| 2528 } // namespace sync_api | 2514 } // namespace sync_api |
| OLD | NEW |