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

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: Created 8 years, 9 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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698