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 |