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

Side by Side Diff: chrome/browser/worker_host/worker_document_set.cc

Issue 6055002: Create a message filter for message port messages. This allows a nice cleanu... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #include "chrome/browser/worker_host/worker_document_set.h" 5 #include "chrome/browser/worker_host/worker_document_set.h"
6 6
7 #include "base/logging.h"
8
7 WorkerDocumentSet::WorkerDocumentSet() { 9 WorkerDocumentSet::WorkerDocumentSet() {
8 } 10 }
9 11
10 void WorkerDocumentSet::Add(IPC::Message::Sender* parent, 12 void WorkerDocumentSet::Add(WorkerMessageFilter* parent,
11 unsigned long long document_id, 13 unsigned long long document_id,
12 int renderer_id, 14 int render_process_id,
13 int render_view_route_id) { 15 int render_view_id) {
14 DocumentInfo info(parent, document_id, renderer_id, render_view_route_id); 16 DocumentInfo info(parent, document_id, render_process_id, render_view_id);
15 document_set_.insert(info); 17 document_set_.insert(info);
16 } 18 }
17 19
18 bool WorkerDocumentSet::Contains(IPC::Message::Sender* parent, 20 bool WorkerDocumentSet::Contains(WorkerMessageFilter* parent,
19 unsigned long long document_id) const { 21 unsigned long long document_id) const {
20 for (DocumentInfoSet::const_iterator i = document_set_.begin(); 22 for (DocumentInfoSet::const_iterator i = document_set_.begin();
21 i != document_set_.end(); ++i) { 23 i != document_set_.end(); ++i) {
22 if (i->sender() == parent && i->document_id() == document_id) 24 if (i->filter() == parent && i->document_id() == document_id)
23 return true; 25 return true;
24 } 26 }
25 return false; 27 return false;
26 } 28 }
27 29
28 void WorkerDocumentSet::Remove(IPC::Message::Sender* parent, 30 void WorkerDocumentSet::Remove(WorkerMessageFilter* parent,
29 unsigned long long document_id) { 31 unsigned long long document_id) {
30 for (DocumentInfoSet::iterator i = document_set_.begin(); 32 for (DocumentInfoSet::iterator i = document_set_.begin();
31 i != document_set_.end(); i++) { 33 i != document_set_.end(); i++) {
32 if (i->sender() == parent && i->document_id() == document_id) { 34 if (i->filter() == parent && i->document_id() == document_id) {
33 document_set_.erase(i); 35 document_set_.erase(i);
34 break; 36 break;
35 } 37 }
36 } 38 }
37 // Should not be duplicate copies in the document set. 39 // Should not be duplicate copies in the document set.
38 DCHECK(!Contains(parent, document_id)); 40 DCHECK(!Contains(parent, document_id));
39 } 41 }
40 42
41 void WorkerDocumentSet::RemoveAll(IPC::Message::Sender* parent) { 43 void WorkerDocumentSet::RemoveAll(WorkerMessageFilter* parent) {
42 for (DocumentInfoSet::iterator i = document_set_.begin(); 44 for (DocumentInfoSet::iterator i = document_set_.begin();
43 i != document_set_.end();) { 45 i != document_set_.end();) {
44 46
45 // Note this idiom is somewhat tricky - calling document_set_.erase(iter) 47 // Note this idiom is somewhat tricky - calling document_set_.erase(iter)
46 // invalidates any iterators that point to the element being removed, so 48 // invalidates any iterators that point to the element being removed, so
47 // bump the iterator beyond the item being removed before calling erase. 49 // bump the iterator beyond the item being removed before calling erase.
48 if (i->sender() == parent) { 50 if (i->filter() == parent) {
49 DocumentInfoSet::iterator item_to_delete = i++; 51 DocumentInfoSet::iterator item_to_delete = i++;
50 document_set_.erase(item_to_delete); 52 document_set_.erase(item_to_delete);
51 } else { 53 } else {
52 ++i; 54 ++i;
53 } 55 }
54 } 56 }
55 } 57 }
56 58
57 WorkerDocumentSet::DocumentInfo::DocumentInfo( 59 WorkerDocumentSet::DocumentInfo::DocumentInfo(
58 IPC::Message::Sender* sender, unsigned long long document_id, 60 WorkerMessageFilter* filter, unsigned long long document_id,
59 int renderer_id, int render_view_route_id) 61 int render_process_id, int render_view_id)
60 : sender_(sender), 62 : filter_(filter),
61 document_id_(document_id), 63 document_id_(document_id),
62 renderer_id_(renderer_id), 64 render_process_id_(render_process_id),
63 render_view_route_id_(render_view_route_id) { 65 render_view_id_(render_view_id) {
64 } 66 }
65 67
66 WorkerDocumentSet::~WorkerDocumentSet() {} 68 WorkerDocumentSet::~WorkerDocumentSet() {
69 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698