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

Side by Side Diff: chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc

Issue 12089062: Move API functions registrations out of ExtensionFunctionRegistry. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 7 years, 10 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/extensions/api/bookmark_manager_private/bookmark_manage r_private_api.h" 5 #include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manage r_private_api.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/prefs/public/pref_service_base.h" 10 #include "base/prefs/public/pref_service_base.h"
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 233
234 bool ClipboardBookmarkManagerFunction::CopyOrCut(bool cut) { 234 bool ClipboardBookmarkManagerFunction::CopyOrCut(bool cut) {
235 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); 235 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
236 std::vector<const BookmarkNode*> nodes; 236 std::vector<const BookmarkNode*> nodes;
237 EXTENSION_FUNCTION_VALIDATE(GetNodesFromArguments(model, args_.get(), 237 EXTENSION_FUNCTION_VALIDATE(GetNodesFromArguments(model, args_.get(),
238 0, &nodes)); 238 0, &nodes));
239 bookmark_utils::CopyToClipboard(model, nodes, cut); 239 bookmark_utils::CopyToClipboard(model, nodes, cut);
240 return true; 240 return true;
241 } 241 }
242 242
243 bool CopyBookmarkManagerFunction::RunImpl() { 243 bool BookmarkManagerPrivateCopyFunction::RunImpl() {
244 return CopyOrCut(false); 244 return CopyOrCut(false);
245 } 245 }
246 246
247 bool CutBookmarkManagerFunction::RunImpl() { 247 bool BookmarkManagerPrivateCutFunction::RunImpl() {
248 if (!EditBookmarksEnabled()) 248 if (!EditBookmarksEnabled())
249 return false; 249 return false;
250 return CopyOrCut(true); 250 return CopyOrCut(true);
251 } 251 }
252 252
253 bool PasteBookmarkManagerFunction::RunImpl() { 253 bool BookmarkManagerPrivatePasteFunction::RunImpl() {
254 if (!EditBookmarksEnabled()) 254 if (!EditBookmarksEnabled())
255 return false; 255 return false;
256 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); 256 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
257 const BookmarkNode* parent_node = GetNodeFromArguments(model, args_.get()); 257 const BookmarkNode* parent_node = GetNodeFromArguments(model, args_.get());
258 if (!parent_node) { 258 if (!parent_node) {
259 error_ = bookmark_keys::kNoParentError; 259 error_ = bookmark_keys::kNoParentError;
260 return false; 260 return false;
261 } 261 }
262 bool can_paste = bookmark_utils::CanPasteFromClipboard(parent_node); 262 bool can_paste = bookmark_utils::CanPasteFromClipboard(parent_node);
263 if (!can_paste) 263 if (!can_paste)
264 return false; 264 return false;
265 265
266 // We want to use the highest index of the selected nodes as a destination. 266 // We want to use the highest index of the selected nodes as a destination.
267 std::vector<const BookmarkNode*> nodes; 267 std::vector<const BookmarkNode*> nodes;
268 // No need to test return value, if we got an empty list, we insert at end. 268 // No need to test return value, if we got an empty list, we insert at end.
269 GetNodesFromArguments(model, args_.get(), 1, &nodes); 269 GetNodesFromArguments(model, args_.get(), 1, &nodes);
270 int highest_index = -1; // -1 means insert at end of list. 270 int highest_index = -1; // -1 means insert at end of list.
271 for (size_t node = 0; node < nodes.size(); ++node) { 271 for (size_t node = 0; node < nodes.size(); ++node) {
272 // + 1 so that we insert after the selection. 272 // + 1 so that we insert after the selection.
273 int this_node_index = parent_node->GetIndexOf(nodes[node]) + 1; 273 int this_node_index = parent_node->GetIndexOf(nodes[node]) + 1;
274 if (this_node_index > highest_index) 274 if (this_node_index > highest_index)
275 highest_index = this_node_index; 275 highest_index = this_node_index;
276 } 276 }
277 277
278 bookmark_utils::PasteFromClipboard(model, parent_node, highest_index); 278 bookmark_utils::PasteFromClipboard(model, parent_node, highest_index);
279 return true; 279 return true;
280 } 280 }
281 281
282 bool CanPasteBookmarkManagerFunction::RunImpl() { 282 bool BookmarkManagerPrivateCanPasteFunction::RunImpl() {
283 if (!EditBookmarksEnabled()) 283 if (!EditBookmarksEnabled())
284 return false; 284 return false;
285 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); 285 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
286 const BookmarkNode* parent_node = GetNodeFromArguments(model, args_.get()); 286 const BookmarkNode* parent_node = GetNodeFromArguments(model, args_.get());
287 if (!parent_node) { 287 if (!parent_node) {
288 error_ = bookmark_keys::kNoParentError; 288 error_ = bookmark_keys::kNoParentError;
289 return false; 289 return false;
290 } 290 }
291 bool can_paste = bookmark_utils::CanPasteFromClipboard(parent_node); 291 bool can_paste = bookmark_utils::CanPasteFromClipboard(parent_node);
292 SetResult(new base::FundamentalValue(can_paste)); 292 SetResult(new base::FundamentalValue(can_paste));
293 return true; 293 return true;
294 } 294 }
295 295
296 bool SortChildrenBookmarkManagerFunction::RunImpl() { 296 bool BookmarkManagerPrivateSortChildrenFunction::RunImpl() {
297 if (!EditBookmarksEnabled()) 297 if (!EditBookmarksEnabled())
298 return false; 298 return false;
299 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); 299 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
300 const BookmarkNode* parent_node = GetNodeFromArguments(model, args_.get()); 300 const BookmarkNode* parent_node = GetNodeFromArguments(model, args_.get());
301 if (!parent_node) { 301 if (!parent_node) {
302 error_ = bookmark_keys::kNoParentError; 302 error_ = bookmark_keys::kNoParentError;
303 return false; 303 return false;
304 } 304 }
305 model->SortChildren(parent_node); 305 model->SortChildren(parent_node);
306 return true; 306 return true;
307 } 307 }
308 308
309 bool BookmarkManagerGetStringsFunction::RunImpl() { 309 bool BookmarkManagerPrivateGetStringsFunction::RunImpl() {
310 DictionaryValue* localized_strings = new DictionaryValue(); 310 DictionaryValue* localized_strings = new DictionaryValue();
311 311
312 localized_strings->SetString("title", 312 localized_strings->SetString("title",
313 l10n_util::GetStringUTF16(IDS_BOOKMARK_MANAGER_TITLE)); 313 l10n_util::GetStringUTF16(IDS_BOOKMARK_MANAGER_TITLE));
314 localized_strings->SetString("search_button", 314 localized_strings->SetString("search_button",
315 l10n_util::GetStringUTF16(IDS_BOOKMARK_MANAGER_SEARCH_BUTTON)); 315 l10n_util::GetStringUTF16(IDS_BOOKMARK_MANAGER_SEARCH_BUTTON));
316 localized_strings->SetString("show_in_folder", 316 localized_strings->SetString("show_in_folder",
317 l10n_util::GetStringUTF16(IDS_BOOKMARK_MANAGER_SHOW_IN_FOLDER)); 317 l10n_util::GetStringUTF16(IDS_BOOKMARK_MANAGER_SHOW_IN_FOLDER));
318 localized_strings->SetString("sort", 318 localized_strings->SetString("sort",
319 l10n_util::GetStringUTF16(IDS_BOOKMARK_MANAGER_SORT)); 319 l10n_util::GetStringUTF16(IDS_BOOKMARK_MANAGER_SORT));
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 382
383 SetResult(localized_strings); 383 SetResult(localized_strings);
384 384
385 // This is needed because unlike the rest of these functions, this class 385 // This is needed because unlike the rest of these functions, this class
386 // inherits from AsyncFunction directly, rather than BookmarkFunction. 386 // inherits from AsyncFunction directly, rather than BookmarkFunction.
387 SendResponse(true); 387 SendResponse(true);
388 388
389 return true; 389 return true;
390 } 390 }
391 391
392 bool StartDragBookmarkManagerFunction::RunImpl() { 392 bool BookmarkManagerPrivateStartDragFunction::RunImpl() {
393 if (!EditBookmarksEnabled()) 393 if (!EditBookmarksEnabled())
394 return false; 394 return false;
395 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); 395 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
396 std::vector<const BookmarkNode*> nodes; 396 std::vector<const BookmarkNode*> nodes;
397 EXTENSION_FUNCTION_VALIDATE( 397 EXTENSION_FUNCTION_VALIDATE(
398 GetNodesFromArguments(model, args_.get(), 0, &nodes)); 398 GetNodesFromArguments(model, args_.get(), 0, &nodes));
399 399
400 WebContents* web_contents = 400 WebContents* web_contents =
401 WebContents::FromRenderViewHost(render_view_host_); 401 WebContents::FromRenderViewHost(render_view_host_);
402 if (chrome::GetViewType(web_contents) == chrome::VIEW_TYPE_TAB_CONTENTS) { 402 if (chrome::GetViewType(web_contents) == chrome::VIEW_TYPE_TAB_CONTENTS) {
403 WebContents* web_contents = 403 WebContents* web_contents =
404 dispatcher()->delegate()->GetAssociatedWebContents(); 404 dispatcher()->delegate()->GetAssociatedWebContents();
405 CHECK(web_contents); 405 CHECK(web_contents);
406 bookmark_utils::DragBookmarks(profile(), nodes, 406 bookmark_utils::DragBookmarks(profile(), nodes,
407 web_contents->GetNativeView()); 407 web_contents->GetNativeView());
408 408
409 return true; 409 return true;
410 } else { 410 } else {
411 NOTREACHED(); 411 NOTREACHED();
412 return false; 412 return false;
413 } 413 }
414 } 414 }
415 415
416 bool DropBookmarkManagerFunction::RunImpl() { 416 bool BookmarkManagerPrivateDropFunction::RunImpl() {
417 if (!EditBookmarksEnabled()) 417 if (!EditBookmarksEnabled())
418 return false; 418 return false;
419 419
420 BookmarkModel* model =BookmarkModelFactory::GetForProfile(profile()); 420 BookmarkModel* model =BookmarkModelFactory::GetForProfile(profile());
421 421
422 int64 id; 422 int64 id;
423 std::string id_string; 423 std::string id_string;
424 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &id_string)); 424 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &id_string));
425 425
426 if (!base::StringToInt64(id_string, &id)) { 426 if (!base::StringToInt64(id_string, &id)) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 drop_parent, drop_index); 463 drop_parent, drop_index);
464 464
465 router->ClearBookmarkNodeData(); 465 router->ClearBookmarkNodeData();
466 return true; 466 return true;
467 } else { 467 } else {
468 NOTREACHED(); 468 NOTREACHED();
469 return false; 469 return false;
470 } 470 }
471 } 471 }
472 472
473 bool GetSubtreeBookmarkManagerFunction::RunImpl() { 473 bool BookmarkManagerPrivateGetSubtreeFunction::RunImpl() {
474 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); 474 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
475 const BookmarkNode* node; 475 const BookmarkNode* node;
476 int64 id; 476 int64 id;
477 std::string id_string; 477 std::string id_string;
478 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &id_string)); 478 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &id_string));
479 bool folders_only; 479 bool folders_only;
480 EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(1, &folders_only)); 480 EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(1, &folders_only));
481 if (id_string == "") { 481 if (id_string == "") {
482 node = model->root_node(); 482 node = model->root_node();
483 } else { 483 } else {
484 if (!base::StringToInt64(id_string, &id)) { 484 if (!base::StringToInt64(id_string, &id)) {
485 error_ = bookmark_keys::kInvalidIdError; 485 error_ = bookmark_keys::kInvalidIdError;
486 return false; 486 return false;
487 } 487 }
488 node = model->GetNodeByID(id); 488 node = model->GetNodeByID(id);
489 } 489 }
490 if (!node) { 490 if (!node) {
491 error_ = bookmark_keys::kNoNodeError; 491 error_ = bookmark_keys::kNoNodeError;
492 return false; 492 return false;
493 } 493 }
494 scoped_ptr<ListValue> json(new ListValue()); 494 scoped_ptr<ListValue> json(new ListValue());
495 if (folders_only) 495 if (folders_only)
496 bookmark_api_helpers::AddNodeFoldersOnly(node, json.get(), true); 496 bookmark_api_helpers::AddNodeFoldersOnly(node, json.get(), true);
497 else 497 else
498 bookmark_api_helpers::AddNode(node, json.get(), true); 498 bookmark_api_helpers::AddNode(node, json.get(), true);
499 SetResult(json.release()); 499 SetResult(json.release());
500 return true; 500 return true;
501 } 501 }
502 502
503 bool CanEditBookmarkManagerFunction::RunImpl() { 503 bool BookmarkManagerPrivateCanEditFunction::RunImpl() {
504 PrefServiceBase* prefs = PrefServiceBase::FromBrowserContext(profile_); 504 PrefServiceBase* prefs = PrefServiceBase::FromBrowserContext(profile_);
505 SetResult(new base::FundamentalValue( 505 SetResult(new base::FundamentalValue(
506 prefs->GetBoolean(prefs::kEditBookmarksEnabled))); 506 prefs->GetBoolean(prefs::kEditBookmarksEnabled)));
507 return true; 507 return true;
508 } 508 }
509 509
510 bool RecordLaunchBookmarkFunction::RunImpl() { 510 bool RecordLaunchBookmarkFunction::RunImpl() {
511 bookmark_utils::RecordBookmarkLaunch(bookmark_utils::LAUNCH_MANAGER); 511 bookmark_utils::RecordBookmarkLaunch(bookmark_utils::LAUNCH_MANAGER);
512 return true; 512 return true;
513 } 513 }
514 514
515 bool CanOpenNewWindowsBookmarkFunction::RunImpl() { 515 bool BookmarkManagerPrivateCanOpenNewWindowsFunction::RunImpl() {
516 bool can_open_new_windows = true; 516 bool can_open_new_windows = true;
517 517
518 #if defined(OS_WIN) 518 #if defined(OS_WIN)
519 if (win8::IsSingleWindowMetroMode()) 519 if (win8::IsSingleWindowMetroMode())
520 can_open_new_windows = false; 520 can_open_new_windows = false;
521 #endif // OS_WIN 521 #endif // OS_WIN
522 522
523 SetResult(new base::FundamentalValue(can_open_new_windows)); 523 SetResult(new base::FundamentalValue(can_open_new_windows));
524 return true; 524 return true;
525 } 525 }
526 526
527 } // namespace extensions 527 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698