history_notifications.h revision 513209b27ff55e2841eac0e4120199c23acce758
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Structs that hold data used in broadcasting notifications. 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_HISTORY_HISTORY_NOTIFICATIONS_H__ 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_HISTORY_HISTORY_NOTIFICATIONS_H__ 93345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <set> 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <vector> 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "googleurl/src/gurl.h" 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/history/history_types.h" 16513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "chrome/browser/search_engines/template_url_id.h" 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace history { 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Base class for history notifications. This needs only a virtual destructor 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// so that the history service's broadcaster can delete it when the request 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// is complete. 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstruct HistoryDetails { 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual ~HistoryDetails() {} 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Details for HISTORY_URL_VISITED. 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstruct URLVisitedDetails : public HistoryDetails { 30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick URLVisitedDetails(); 31513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch virtual ~URLVisitedDetails(); 32731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch PageTransition::Type transition; 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch URLRow row; 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // A list of redirects leading up to the URL represented by this struct. If 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // we have the redirect chain A -> B -> C and this struct represents visiting 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // C, then redirects[0]=B and redirects[1]=A. If there are no redirects, 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // this will be an empty vector. 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch history::RedirectList redirects; 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Details for NOTIFY_HISTORY_TYPED_URLS_MODIFIED. 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstruct URLsModifiedDetails : public HistoryDetails { 45731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick URLsModifiedDetails(); 46513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch virtual ~URLsModifiedDetails(); 47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Lists the information for each of the URLs affected. 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::vector<URLRow> changed_urls; 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Details for NOTIFY_HISTORY_URLS_DELETED. 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstruct URLsDeletedDetails : public HistoryDetails { 54731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick URLsDeletedDetails(); 55513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch virtual ~URLsDeletedDetails(); 56731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Set when all history was deleted. False means just a subset was deleted. 58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch bool all_history; 59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // The list of unique URLs affected. This is valid only when a subset of 61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // history is deleted. When all of it is deleted, this will be empty, since 62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // we do not bother to list all URLs. 63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::set<GURL> urls; 64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Details for NOTIFY_URLS_STARRED. 67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstruct URLsStarredDetails : public HistoryDetails { 68731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick explicit URLsStarredDetails(bool being_starred); 69513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch virtual ~URLsStarredDetails(); 70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // The new starred state of the list of URLs. True when they are being 72c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // starred, false when they are being unstarred. 73c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch bool starred; 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 75c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // The list of URLs that are changing. 76c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::set<GURL> changed_urls; 77c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 78c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 79c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Details for NOTIFY_FAVICON_CHANGED. 80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstruct FavIconChangeDetails : public HistoryDetails { 81731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick FavIconChangeDetails(); 82513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch virtual ~FavIconChangeDetails(); 83731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 84c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::set<GURL> urls; 85c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 86c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 87513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Details for HISTORY_KEYWORD_SEARCH_TERM_UPDATED. 88513209b27ff55e2841eac0e4120199c23acce758Ben Murdochstruct KeywordSearchTermDetails : public HistoryDetails { 89513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch KeywordSearchTermDetails(); 90513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch ~KeywordSearchTermDetails(); 91513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 92513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch GURL url; 93513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TemplateURLID keyword_id; 94513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch string16 term; 95513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}; 96513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 97c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace history 98c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 99c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // CHROME_BROWSER_HISTORY_HISTORY_NOTIFICATIONS_H__ 100