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

Side by Side Diff: chrome/browser/history/visit_tracker.h

Issue 322983003: Rename HistoryService::NotifyRenderProcessHostDestruction (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 6 years, 6 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef CHROME_BROWSER_HISTORY_VISIT_TRACKER_H__ 5 #ifndef CHROME_BROWSER_HISTORY_VISIT_TRACKER_H__
6 #define CHROME_BROWSER_HISTORY_VISIT_TRACKER_H__ 6 #define CHROME_BROWSER_HISTORY_VISIT_TRACKER_H__
7 7
8 #include <map> 8 #include <map>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "chrome/browser/history/history_types.h" 12 #include "chrome/browser/history/history_types.h"
13 13
14 namespace history { 14 namespace history {
15 15
16 // Tracks history transitions between pages. The history backend uses this to 16 // Tracks history transitions between pages. The history backend uses this to
17 // link up page transitions to form a chain of page visits, and to set the 17 // link up page transitions to form a chain of page visits, and to set the
18 // transition type properly. 18 // transition type properly.
19 // 19 //
20 // This class is not thread safe. 20 // This class is not thread safe.
21 class VisitTracker { 21 class VisitTracker {
22 public: 22 public:
23 VisitTracker(); 23 VisitTracker();
24 ~VisitTracker(); 24 ~VisitTracker();
25 25
26 // Notifications ------------------------------------------------------------- 26 // Notifications -------------------------------------------------------------
27 27
28 void AddVisit(const void* host, 28 void AddVisit(ContextID context_id,
29 int32 page_id, 29 int32 page_id,
30 const GURL& url, 30 const GURL& url,
31 VisitID visit_id); 31 VisitID visit_id);
32 32
33 // When a RenderProcessHost is destroyed, we want to clear out our saved 33 // When a RenderProcessHost is destroyed, we want to clear out our saved
34 // transitions/visit IDs for it. 34 // transitions/visit IDs for it.
35 void NotifyRenderProcessHostDestruction(const void* host); 35 void ClearCachedDataForContextID(ContextID context_id);
36 36
37 // Querying ------------------------------------------------------------------ 37 // Querying ------------------------------------------------------------------
38 38
39 // Returns the visit ID for the transition given information about the visit 39 // Returns the visit ID for the transition given information about the visit
40 // supplied by the renderer. We will return 0 if there is no appropriate 40 // supplied by the renderer. We will return 0 if there is no appropriate
41 // referring visit. 41 // referring visit.
42 VisitID GetLastVisit(const void* host, int32 page_id, const GURL& url); 42 VisitID GetLastVisit(ContextID context_id, int32 page_id, const GURL& url);
43 43
44 private: 44 private:
45 struct Transition { 45 struct Transition {
46 GURL url; // URL that the event happened to. 46 GURL url; // URL that the event happened to.
47 int32 page_id; // ID generated by the render process host. 47 int32 page_id; // ID generated by the render process host.
48 VisitID visit_id; // Visit ID generated by history. 48 VisitID visit_id; // Visit ID generated by history.
49 }; 49 };
50 typedef std::vector<Transition> TransitionList; 50 typedef std::vector<Transition> TransitionList;
51 typedef std::map<const void*, TransitionList*> HostList; 51 typedef std::map<ContextID, TransitionList*> ContextList;
52 52
53 // Expires oldish items in the given transition list. This keeps the list 53 // Expires oldish items in the given transition list. This keeps the list
54 // size small by removing items that are unlikely to be needed, which is 54 // size small by removing items that are unlikely to be needed, which is
55 // important for GetReferrer which does brute-force searches of this list. 55 // important for GetReferrer which does brute-force searches of this list.
56 void CleanupTransitionList(TransitionList* transitions); 56 void CleanupTransitionList(TransitionList* transitions);
57 57
58 // Maps render view hosts to lists of recent transitions. 58 // Maps render view hosts to lists of recent transitions.
59 HostList hosts_; 59 ContextList contexts_;
60 60
61 DISALLOW_COPY_AND_ASSIGN(VisitTracker); 61 DISALLOW_COPY_AND_ASSIGN(VisitTracker);
62 }; 62 };
63 63
64 } // namespace history 64 } // namespace history
65 65
66 #endif // CHROME_BROWSER_HISTORY_VISIT_TRACKER_H__ 66 #endif // CHROME_BROWSER_HISTORY_VISIT_TRACKER_H__
OLDNEW
« no previous file with comments | « chrome/browser/history/top_sites_impl_unittest.cc ('k') | chrome/browser/history/visit_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698