Index: chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
diff --git a/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc b/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
index 966a5db668236dcb7f6c87d9264b57d141b21a37..63ec19899e25b425cf9fb32fac70a5a78150903e 100644 |
--- a/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
+++ b/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
@@ -9,6 +9,7 @@ |
#include "base/memory/linked_ptr.h" |
#include "base/prefs/pref_service.h" |
#include "base/strings/string_number_conversions.h" |
+#include "base/strings/utf_string_conversions.h" |
#include "base/values.h" |
#include "chrome/browser/bookmarks/bookmark_model.h" |
#include "chrome/browser/bookmarks/bookmark_model_factory.h" |
@@ -55,10 +56,12 @@ namespace GetSubtree = api::bookmark_manager_private::GetSubtree; |
namespace manager_keys = bookmark_manager_api_constants; |
namespace GetMetaInfo = api::bookmark_manager_private::GetMetaInfo; |
namespace Paste = api::bookmark_manager_private::Paste; |
+namespace RedoInfo = api::bookmark_manager_private::GetRedoInfo; |
namespace RemoveTrees = api::bookmark_manager_private::RemoveTrees; |
namespace SetMetaInfo = api::bookmark_manager_private::SetMetaInfo; |
namespace SortChildren = api::bookmark_manager_private::SortChildren; |
namespace StartDrag = api::bookmark_manager_private::StartDrag; |
+namespace UndoInfo = api::bookmark_manager_private::GetUndoInfo; |
using content::WebContents; |
@@ -581,4 +584,52 @@ bool BookmarkManagerPrivateRemoveTreesFunction::RunImpl() { |
return true; |
} |
+bool BookmarkManagerPrivateUndoFunction::RunImpl() { |
+#if !defined(OS_ANDROID) |
+ BookmarkUndoServiceFactory::GetForProfile(GetProfile())->undo_manager()-> |
+ Undo(); |
+#endif |
+ |
+ return true; |
+} |
+ |
+bool BookmarkManagerPrivateRedoFunction::RunImpl() { |
+#if !defined(OS_ANDROID) |
+ BookmarkUndoServiceFactory::GetForProfile(GetProfile())->undo_manager()-> |
+ Redo(); |
+#endif |
+ |
+ return true; |
+} |
+ |
+bool BookmarkManagerPrivateGetUndoInfoFunction::RunImpl() { |
+#if !defined(OS_ANDROID) |
+ UndoManager* undo_manager = |
+ BookmarkUndoServiceFactory::GetForProfile(GetProfile())->undo_manager(); |
+ |
+ UndoInfo::Results::Result result; |
+ result.enabled = undo_manager->undo_count() > 0; |
+ result.label = base::UTF16ToUTF8(undo_manager->GetUndoLabel()); |
+ |
+ results_ = UndoInfo::Results::Create(result); |
+#endif // !defined(OS_ANDROID) |
+ |
+ return true; |
+} |
+ |
+bool BookmarkManagerPrivateGetRedoInfoFunction::RunImpl() { |
+#if !defined(OS_ANDROID) |
+ UndoManager* undo_manager = |
+ BookmarkUndoServiceFactory::GetForProfile(GetProfile())->undo_manager(); |
+ |
+ RedoInfo::Results::Result result; |
+ result.enabled = undo_manager->redo_count() > 0; |
+ result.label = base::UTF16ToUTF8(undo_manager->GetRedoLabel()); |
+ |
+ results_ = RedoInfo::Results::Create(result); |
+#endif // !defined(OS_ANDROID) |
+ |
+ return true; |
+} |
+ |
} // namespace extensions |