#include "components/commerce/core/shopping_bookmark_model_observer.h"
#include <memory>
#include <optional>
#include <vector>
#include "base/containers/contains.h"
#include "base/feature_list.h"
#include "base/functional/callback.h"
#include "base/metrics/user_metrics.h"
#include "base/strings/string_number_conversions.h"
#include "build/buildflag.h"
#include "components/bookmarks/browser/bookmark_node.h"
#include "components/bookmarks/browser/bookmark_utils.h"
#include "components/commerce/core/commerce_feature_list.h"
#include "components/commerce/core/price_tracking_utils.h"
#include "components/commerce/core/shopping_service.h"
#include "components/commerce/core/subscriptions/commerce_subscription.h"
#include "components/commerce/core/subscriptions/subscriptions_manager.h"
#include "components/power_bookmarks/core/power_bookmark_utils.h"
#include "components/power_bookmarks/core/proto/power_bookmark_meta.pb.h"
#include "components/power_bookmarks/core/proto/shopping_specifics.pb.h"
namespace commerce {
namespace {
bool IsTrackByDefaultEnabled() { … }
}
ShoppingBookmarkModelObserver::ShoppingBookmarkModelObserver(
bookmarks::BookmarkModel* model,
ShoppingService* shopping_service,
SubscriptionsManager* subscriptions_manager)
: … { … }
ShoppingBookmarkModelObserver::~ShoppingBookmarkModelObserver() = default;
void ShoppingBookmarkModelObserver::BookmarkModelChanged() { … }
void ShoppingBookmarkModelObserver::OnWillChangeBookmarkNode(
const bookmarks::BookmarkNode* node) { … }
void ShoppingBookmarkModelObserver::BookmarkNodeChanged(
const bookmarks::BookmarkNode* node) { … }
void ShoppingBookmarkModelObserver::BookmarkNodeAdded(
const bookmarks::BookmarkNode* parent,
size_t index,
bool added_by_user) { … }
void ShoppingBookmarkModelObserver::BookmarkNodeMoved(
const bookmarks::BookmarkNode* old_parent,
size_t old_index,
const bookmarks::BookmarkNode* new_parent,
size_t new_index) { … }
void ShoppingBookmarkModelObserver::OnWillRemoveBookmarks(
const bookmarks::BookmarkNode* parent,
size_t old_index,
const bookmarks::BookmarkNode* node,
const base::Location& location) { … }
void ShoppingBookmarkModelObserver::HandleFolderDeletion(
const bookmarks::BookmarkNode* node,
std::set<uint64_t>* unsubscribed_ids) { … }
void ShoppingBookmarkModelObserver::HandleNodeDeletion(
const bookmarks::BookmarkNode* node,
const bookmarks::BookmarkNode* folder_being_deleted,
std::set<uint64_t>* unsubscribed_ids) { … }
void ShoppingBookmarkModelObserver::BookmarkMetaInfoChanged(
const bookmarks::BookmarkNode* node) { … }
}