1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/undo/bookmark_undo_utils.h" 6 7#include "chrome/browser/undo/bookmark_undo_service.h" 8#include "chrome/browser/undo/bookmark_undo_service_factory.h" 9#include "chrome/browser/undo/undo_manager.h" 10 11namespace { 12 13// Utility funciton to safely return an UndoManager if available. 14UndoManager* GetUndoManager(Profile* profile) { 15 BookmarkUndoService* undo_service = profile ? 16 BookmarkUndoServiceFactory::GetForProfile(profile) : NULL; 17 return undo_service ? undo_service->undo_manager() : NULL; 18} 19 20} // namespace 21 22// ScopedSuspendBookmarkUndo -------------------------------------------------- 23 24ScopedSuspendBookmarkUndo::ScopedSuspendBookmarkUndo(Profile* profile) 25 : profile_(profile) { 26 UndoManager* undo_manager = GetUndoManager(profile_); 27 if (undo_manager) 28 undo_manager->SuspendUndoTracking(); 29} 30 31ScopedSuspendBookmarkUndo::~ScopedSuspendBookmarkUndo() { 32 UndoManager *undo_manager = GetUndoManager(profile_); 33 if (undo_manager) 34 undo_manager->ResumeUndoTracking(); 35} 36