OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <cstdio> | 5 #include <cstdio> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
10 #include "base/memory/shared_memory.h" | 10 #include "base/memory/shared_memory.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 // Returns a test URL for index |i| | 48 // Returns a test URL for index |i| |
49 GURL TestURL(int i) { | 49 GURL TestURL(int i) { |
50 return GURL(base::StringPrintf("%s%d", g_test_prefix, i)); | 50 return GURL(base::StringPrintf("%s%d", g_test_prefix, i)); |
51 } | 51 } |
52 | 52 |
53 std::vector<VisitedLinkSlave*> g_slaves; | 53 std::vector<VisitedLinkSlave*> g_slaves; |
54 | 54 |
55 class TestVisitedLinkDelegate : public VisitedLinkDelegate { | 55 class TestVisitedLinkDelegate : public VisitedLinkDelegate { |
56 public: | 56 public: |
57 virtual void RebuildTable( | 57 virtual void RebuildTable( |
58 const scoped_refptr<URLEnumerator>& enumerator) OVERRIDE; | 58 const scoped_refptr<URLEnumerator>& enumerator) override; |
59 | 59 |
60 void AddURLForRebuild(const GURL& url); | 60 void AddURLForRebuild(const GURL& url); |
61 | 61 |
62 private: | 62 private: |
63 URLs rebuild_urls_; | 63 URLs rebuild_urls_; |
64 }; | 64 }; |
65 | 65 |
66 void TestVisitedLinkDelegate::RebuildTable( | 66 void TestVisitedLinkDelegate::RebuildTable( |
67 const scoped_refptr<URLEnumerator>& enumerator) { | 67 const scoped_refptr<URLEnumerator>& enumerator) { |
68 for (URLs::const_iterator itr = rebuild_urls_.begin(); | 68 for (URLs::const_iterator itr = rebuild_urls_.begin(); |
69 itr != rebuild_urls_.end(); | 69 itr != rebuild_urls_.end(); |
70 ++itr) | 70 ++itr) |
71 enumerator->OnURL(*itr); | 71 enumerator->OnURL(*itr); |
72 enumerator->OnComplete(true); | 72 enumerator->OnComplete(true); |
73 } | 73 } |
74 | 74 |
75 void TestVisitedLinkDelegate::AddURLForRebuild(const GURL& url) { | 75 void TestVisitedLinkDelegate::AddURLForRebuild(const GURL& url) { |
76 rebuild_urls_.push_back(url); | 76 rebuild_urls_.push_back(url); |
77 } | 77 } |
78 | 78 |
79 class TestURLIterator : public VisitedLinkMaster::URLIterator { | 79 class TestURLIterator : public VisitedLinkMaster::URLIterator { |
80 public: | 80 public: |
81 explicit TestURLIterator(const URLs& urls); | 81 explicit TestURLIterator(const URLs& urls); |
82 | 82 |
83 virtual const GURL& NextURL() OVERRIDE; | 83 virtual const GURL& NextURL() override; |
84 virtual bool HasNextURL() const OVERRIDE; | 84 virtual bool HasNextURL() const override; |
85 | 85 |
86 private: | 86 private: |
87 URLs::const_iterator iterator_; | 87 URLs::const_iterator iterator_; |
88 URLs::const_iterator end_; | 88 URLs::const_iterator end_; |
89 }; | 89 }; |
90 | 90 |
91 TestURLIterator::TestURLIterator(const URLs& urls) | 91 TestURLIterator::TestURLIterator(const URLs& urls) |
92 : iterator_(urls.begin()), | 92 : iterator_(urls.begin()), |
93 end_(urls.end()) { | 93 end_(urls.end()) { |
94 } | 94 } |
95 | 95 |
96 const GURL& TestURLIterator::NextURL() { | 96 const GURL& TestURLIterator::NextURL() { |
97 return *(iterator_++); | 97 return *(iterator_++); |
98 } | 98 } |
99 | 99 |
100 bool TestURLIterator::HasNextURL() const { | 100 bool TestURLIterator::HasNextURL() const { |
101 return iterator_ != end_; | 101 return iterator_ != end_; |
102 } | 102 } |
103 | 103 |
104 } // namespace | 104 } // namespace |
105 | 105 |
106 class TrackingVisitedLinkEventListener : public VisitedLinkMaster::Listener { | 106 class TrackingVisitedLinkEventListener : public VisitedLinkMaster::Listener { |
107 public: | 107 public: |
108 TrackingVisitedLinkEventListener() | 108 TrackingVisitedLinkEventListener() |
109 : reset_count_(0), | 109 : reset_count_(0), |
110 add_count_(0) {} | 110 add_count_(0) {} |
111 | 111 |
112 virtual void NewTable(base::SharedMemory* table) OVERRIDE { | 112 virtual void NewTable(base::SharedMemory* table) override { |
113 if (table) { | 113 if (table) { |
114 for (std::vector<VisitedLinkSlave>::size_type i = 0; | 114 for (std::vector<VisitedLinkSlave>::size_type i = 0; |
115 i < g_slaves.size(); i++) { | 115 i < g_slaves.size(); i++) { |
116 base::SharedMemoryHandle new_handle = base::SharedMemory::NULLHandle(); | 116 base::SharedMemoryHandle new_handle = base::SharedMemory::NULLHandle(); |
117 table->ShareToProcess(base::GetCurrentProcessHandle(), &new_handle); | 117 table->ShareToProcess(base::GetCurrentProcessHandle(), &new_handle); |
118 g_slaves[i]->OnUpdateVisitedLinks(new_handle); | 118 g_slaves[i]->OnUpdateVisitedLinks(new_handle); |
119 } | 119 } |
120 } | 120 } |
121 } | 121 } |
122 virtual void Add(VisitedLinkCommon::Fingerprint) OVERRIDE { add_count_++; } | 122 virtual void Add(VisitedLinkCommon::Fingerprint) override { add_count_++; } |
123 virtual void Reset() OVERRIDE { reset_count_++; } | 123 virtual void Reset() override { reset_count_++; } |
124 | 124 |
125 void SetUp() { | 125 void SetUp() { |
126 reset_count_ = 0; | 126 reset_count_ = 0; |
127 add_count_ = 0; | 127 add_count_ = 0; |
128 } | 128 } |
129 | 129 |
130 int reset_count() const { return reset_count_; } | 130 int reset_count() const { return reset_count_; } |
131 int add_count() const { return add_count_; } | 131 int add_count() const { return add_count_; } |
132 | 132 |
133 private: | 133 private: |
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
536 content::Source<RenderProcessHost>(this), | 536 content::Source<RenderProcessHost>(this), |
537 content::NotificationService::NoDetails()); | 537 content::NotificationService::NoDetails()); |
538 } | 538 } |
539 virtual ~VisitRelayingRenderProcessHost() { | 539 virtual ~VisitRelayingRenderProcessHost() { |
540 content::NotificationService::current()->Notify( | 540 content::NotificationService::current()->Notify( |
541 content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, | 541 content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, |
542 content::Source<content::RenderProcessHost>(this), | 542 content::Source<content::RenderProcessHost>(this), |
543 content::NotificationService::NoDetails()); | 543 content::NotificationService::NoDetails()); |
544 } | 544 } |
545 | 545 |
546 virtual void WidgetRestored() OVERRIDE { widgets_++; } | 546 virtual void WidgetRestored() override { widgets_++; } |
547 virtual void WidgetHidden() OVERRIDE { widgets_--; } | 547 virtual void WidgetHidden() override { widgets_--; } |
548 virtual int VisibleWidgetCount() const OVERRIDE { return widgets_; } | 548 virtual int VisibleWidgetCount() const override { return widgets_; } |
549 | 549 |
550 virtual bool Send(IPC::Message* msg) OVERRIDE { | 550 virtual bool Send(IPC::Message* msg) override { |
551 VisitCountingContext* counting_context = | 551 VisitCountingContext* counting_context = |
552 static_cast<VisitCountingContext*>( | 552 static_cast<VisitCountingContext*>( |
553 GetBrowserContext()); | 553 GetBrowserContext()); |
554 | 554 |
555 if (msg->type() == ChromeViewMsg_VisitedLink_Add::ID) { | 555 if (msg->type() == ChromeViewMsg_VisitedLink_Add::ID) { |
556 PickleIterator iter(*msg); | 556 PickleIterator iter(*msg); |
557 std::vector<uint64> fingerprints; | 557 std::vector<uint64> fingerprints; |
558 CHECK(IPC::ReadParam(msg, &iter, &fingerprints)); | 558 CHECK(IPC::ReadParam(msg, &iter, &fingerprints)); |
559 counting_context->CountAddEvent(fingerprints.size()); | 559 counting_context->CountAddEvent(fingerprints.size()); |
560 } else if (msg->type() == ChromeViewMsg_VisitedLink_Reset::ID) { | 560 } else if (msg->type() == ChromeViewMsg_VisitedLink_Reset::ID) { |
(...skipping 12 matching lines...) Expand all Loading... |
573 DISALLOW_COPY_AND_ASSIGN(VisitRelayingRenderProcessHost); | 573 DISALLOW_COPY_AND_ASSIGN(VisitRelayingRenderProcessHost); |
574 }; | 574 }; |
575 | 575 |
576 class VisitedLinkRenderProcessHostFactory | 576 class VisitedLinkRenderProcessHostFactory |
577 : public content::RenderProcessHostFactory { | 577 : public content::RenderProcessHostFactory { |
578 public: | 578 public: |
579 VisitedLinkRenderProcessHostFactory() | 579 VisitedLinkRenderProcessHostFactory() |
580 : content::RenderProcessHostFactory() {} | 580 : content::RenderProcessHostFactory() {} |
581 virtual content::RenderProcessHost* CreateRenderProcessHost( | 581 virtual content::RenderProcessHost* CreateRenderProcessHost( |
582 content::BrowserContext* browser_context, | 582 content::BrowserContext* browser_context, |
583 content::SiteInstance* site_instance) const OVERRIDE { | 583 content::SiteInstance* site_instance) const override { |
584 return new VisitRelayingRenderProcessHost(browser_context); | 584 return new VisitRelayingRenderProcessHost(browser_context); |
585 } | 585 } |
586 | 586 |
587 private: | 587 private: |
588 DISALLOW_COPY_AND_ASSIGN(VisitedLinkRenderProcessHostFactory); | 588 DISALLOW_COPY_AND_ASSIGN(VisitedLinkRenderProcessHostFactory); |
589 }; | 589 }; |
590 | 590 |
591 class VisitedLinkEventsTest : public content::RenderViewHostTestHarness { | 591 class VisitedLinkEventsTest : public content::RenderViewHostTestHarness { |
592 public: | 592 public: |
593 virtual void SetUp() { | 593 virtual void SetUp() { |
594 SetRenderProcessHostFactory(&vc_rph_factory_); | 594 SetRenderProcessHostFactory(&vc_rph_factory_); |
595 content::RenderViewHostTestHarness::SetUp(); | 595 content::RenderViewHostTestHarness::SetUp(); |
596 } | 596 } |
597 | 597 |
598 virtual content::BrowserContext* CreateBrowserContext() OVERRIDE { | 598 virtual content::BrowserContext* CreateBrowserContext() override { |
599 VisitCountingContext* context = new VisitCountingContext(); | 599 VisitCountingContext* context = new VisitCountingContext(); |
600 master_.reset(new VisitedLinkMaster(context, &delegate_, true)); | 600 master_.reset(new VisitedLinkMaster(context, &delegate_, true)); |
601 master_->Init(); | 601 master_->Init(); |
602 return context; | 602 return context; |
603 } | 603 } |
604 | 604 |
605 VisitCountingContext* context() { | 605 VisitCountingContext* context() { |
606 return static_cast<VisitCountingContext*>(browser_context()); | 606 return static_cast<VisitCountingContext*>(browser_context()); |
607 } | 607 } |
608 | 608 |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
761 content::NotificationService::current()->Notify( | 761 content::NotificationService::current()->Notify( |
762 content::NOTIFICATION_RENDERER_PROCESS_CREATED, | 762 content::NOTIFICATION_RENDERER_PROCESS_CREATED, |
763 content::Source<content::RenderProcessHost>(&different_process_host), | 763 content::Source<content::RenderProcessHost>(&different_process_host), |
764 content::NotificationService::NoDetails()); | 764 content::NotificationService::NoDetails()); |
765 WaitForCoalescense(); | 765 WaitForCoalescense(); |
766 | 766 |
767 EXPECT_EQ(0, different_context.new_table_count()); | 767 EXPECT_EQ(0, different_context.new_table_count()); |
768 } | 768 } |
769 | 769 |
770 } // namespace visitedlink | 770 } // namespace visitedlink |
OLD | NEW |