Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(569)

Side by Side Diff: chrome/browser/sync/internal_api/sync_manager.cc

Issue 9836100: Add full text regex searching to chrome://sync (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review fixes + unit test Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698