OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_RENDERER_SEARCHBOX_SEARCH_BOUNCER_H_ | 5 #ifndef CHROME_RENDERER_SEARCHBOX_SEARCH_BOUNCER_H_ |
6 #define CHROME_RENDERER_SEARCHBOX_SEARCH_BOUNCER_H_ | 6 #define CHROME_RENDERER_SEARCHBOX_SEARCH_BOUNCER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/gtest_prod_util.h" | 11 #include "base/gtest_prod_util.h" |
12 #include "content/public/renderer/render_process_observer.h" | 12 #include "content/public/renderer/render_process_observer.h" |
13 #include "url/gurl.h" | 13 #include "url/gurl.h" |
14 | 14 |
15 namespace IPC { | 15 namespace IPC { |
16 class Message; | 16 class Message; |
17 } | 17 } |
18 | 18 |
19 // SearchBouncer tracks a set of URLs which should be transferred back to the | 19 // SearchBouncer tracks a set of URLs which should be transferred back to the |
20 // browser process for potential reassignment to an Instant renderer process. | 20 // browser process for potential reassignment to an Instant renderer process. |
21 class SearchBouncer : public content::RenderProcessObserver { | 21 class SearchBouncer : public content::RenderProcessObserver { |
22 public: | 22 public: |
23 SearchBouncer(); | 23 SearchBouncer(); |
24 virtual ~SearchBouncer(); | 24 ~SearchBouncer() override; |
25 | 25 |
26 // Returns whether a navigation to |url| should bounce back to the browser as | 26 // Returns whether a navigation to |url| should bounce back to the browser as |
27 // a potential Instant url. See chrome::ShouldAssignURLToInstantRenderer(). | 27 // a potential Instant url. See chrome::ShouldAssignURLToInstantRenderer(). |
28 bool ShouldFork(const GURL& url) const; | 28 bool ShouldFork(const GURL& url) const; |
29 | 29 |
30 // Returns whether |url| is a valid Instant new tab page URL. | 30 // Returns whether |url| is a valid Instant new tab page URL. |
31 bool IsNewTabPage(const GURL& url) const; | 31 bool IsNewTabPage(const GURL& url) const; |
32 | 32 |
33 // Exposed for testing. | 33 // Exposed for testing. |
34 void OnSetSearchURLs(std::vector<GURL> search_urls, GURL new_tab_page_url); | 34 void OnSetSearchURLs(std::vector<GURL> search_urls, GURL new_tab_page_url); |
35 | 35 |
36 private: | 36 private: |
37 FRIEND_TEST_ALL_PREFIXES(SearchBouncerTest, SetSearchURLs); | 37 FRIEND_TEST_ALL_PREFIXES(SearchBouncerTest, SetSearchURLs); |
38 | 38 |
39 // From RenderProcessObserver: | 39 // From RenderProcessObserver: |
40 virtual bool OnControlMessageReceived(const IPC::Message& message) override; | 40 bool OnControlMessageReceived(const IPC::Message& message) override; |
41 | 41 |
42 // URLs to bounce back to the browser. | 42 // URLs to bounce back to the browser. |
43 std::vector<GURL> search_urls_; | 43 std::vector<GURL> search_urls_; |
44 GURL new_tab_page_url_; | 44 GURL new_tab_page_url_; |
45 | 45 |
46 DISALLOW_COPY_AND_ASSIGN(SearchBouncer); | 46 DISALLOW_COPY_AND_ASSIGN(SearchBouncer); |
47 }; | 47 }; |
48 | 48 |
49 #endif // CHROME_RENDERER_SEARCHBOX_SEARCH_BOUNCER_H_ | 49 #endif // CHROME_RENDERER_SEARCHBOX_SEARCH_BOUNCER_H_ |
OLD | NEW |