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 #ifndef CHROME_RENDERER_CHROME_RENDER_PROCESS_OBSERVER_H_ | 5 #ifndef CHROME_RENDERER_CHROME_RENDER_PROCESS_OBSERVER_H_ |
6 #define CHROME_RENDERER_CHROME_RENDER_PROCESS_OBSERVER_H_ | 6 #define CHROME_RENDERER_CHROME_RENDER_PROCESS_OBSERVER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
11 #include "base/files/file_path.h" | 11 #include "base/files/file_path.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 #include "base/metrics/field_trial.h" | |
13 #include "components/content_settings/core/common/content_settings.h" | 14 #include "components/content_settings/core/common/content_settings.h" |
14 #include "content/public/renderer/render_process_observer.h" | 15 #include "content/public/renderer/render_process_observer.h" |
15 | 16 |
16 class ChromeContentRendererClient; | 17 class ChromeContentRendererClient; |
17 class GURL; | 18 class GURL; |
18 struct ContentSettings; | 19 struct ContentSettings; |
19 | 20 |
20 namespace content { | 21 namespace content { |
21 class ResourceDispatcherDelegate; | 22 class ResourceDispatcherDelegate; |
22 } | 23 } |
23 | 24 |
24 // This class filters the incoming control messages (i.e. ones not destined for | 25 // This class filters the incoming control messages (i.e. ones not destined for |
25 // a RenderView) for Chrome specific messages that the content layer doesn't | 26 // a RenderView) for Chrome specific messages that the content layer doesn't |
26 // happen. If a few messages are related, they should probably have their own | 27 // happen. If a few messages are related, they should probably have their own |
27 // observer. | 28 // observer. |
28 class ChromeRenderProcessObserver : public content::RenderProcessObserver { | 29 class ChromeRenderProcessObserver : public content::RenderProcessObserver, |
30 public base::FieldTrialList::Observer { | |
29 public: | 31 public: |
30 explicit ChromeRenderProcessObserver( | 32 explicit ChromeRenderProcessObserver( |
31 ChromeContentRendererClient* client); | 33 ChromeContentRendererClient* client); |
32 ~ChromeRenderProcessObserver() override; | 34 ~ChromeRenderProcessObserver() override; |
33 | 35 |
34 static bool is_incognito_process() { return is_incognito_process_; } | 36 static bool is_incognito_process() { return is_incognito_process_; } |
35 | 37 |
36 // Returns a pointer to the content setting rules owned by | 38 // Returns a pointer to the content setting rules owned by |
37 // |ChromeRenderProcessObserver|. | 39 // |ChromeRenderProcessObserver|. |
38 const RendererContentSettingRules* content_setting_rules() const; | 40 const RendererContentSettingRules* content_setting_rules() const; |
39 | 41 |
40 private: | 42 private: |
41 // RenderProcessObserver implementation. | 43 // RenderProcessObserver implementation. |
42 bool OnControlMessageReceived(const IPC::Message& message) override; | 44 bool OnControlMessageReceived(const IPC::Message& message) override; |
43 void WebKitInitialized() override; | 45 void WebKitInitialized() override; |
44 void OnRenderProcessShutdown() override; | 46 void OnRenderProcessShutdown() override; |
45 | 47 |
48 // base::FieldTrialList::Observer implementation. | |
Alexei Svitkine (slow)
2014/11/10 18:30:43
Nit: New preferred wording for this comment is jus
Georges Khalil
2014/11/10 19:22:29
Done.
| |
49 void OnFieldTrialGroupFinalized(const std::string& trial_name, | |
50 const std::string& group_name) override; | |
51 | |
46 void OnSetIsIncognitoProcess(bool is_incognito_process); | 52 void OnSetIsIncognitoProcess(bool is_incognito_process); |
47 void OnSetContentSettingsForCurrentURL( | 53 void OnSetContentSettingsForCurrentURL( |
48 const GURL& url, const ContentSettings& content_settings); | 54 const GURL& url, const ContentSettings& content_settings); |
49 void OnSetContentSettingRules(const RendererContentSettingRules& rules); | 55 void OnSetContentSettingRules(const RendererContentSettingRules& rules); |
50 void OnGetCacheResourceStats(); | 56 void OnGetCacheResourceStats(); |
51 void OnSetFieldTrialGroup(const std::string& fiel_trial_name, | 57 void OnSetFieldTrialGroup(const std::string& fiel_trial_name, |
52 const std::string& group_name); | 58 const std::string& group_name); |
53 void OnGetV8HeapStats(); | 59 void OnGetV8HeapStats(); |
54 | 60 |
55 static bool is_incognito_process_; | 61 static bool is_incognito_process_; |
56 scoped_ptr<content::ResourceDispatcherDelegate> resource_delegate_; | 62 scoped_ptr<content::ResourceDispatcherDelegate> resource_delegate_; |
57 ChromeContentRendererClient* client_; | 63 ChromeContentRendererClient* client_; |
58 // If true, the web cache shall be cleared before the next navigation event. | 64 // If true, the web cache shall be cleared before the next navigation event. |
59 bool clear_cache_pending_; | 65 bool clear_cache_pending_; |
60 RendererContentSettingRules content_setting_rules_; | 66 RendererContentSettingRules content_setting_rules_; |
61 | 67 |
62 bool webkit_initialized_; | 68 bool webkit_initialized_; |
63 | 69 |
64 DISALLOW_COPY_AND_ASSIGN(ChromeRenderProcessObserver); | 70 DISALLOW_COPY_AND_ASSIGN(ChromeRenderProcessObserver); |
65 }; | 71 }; |
66 | 72 |
67 #endif // CHROME_RENDERER_CHROME_RENDER_PROCESS_OBSERVER_H_ | 73 #endif // CHROME_RENDERER_CHROME_RENDER_PROCESS_OBSERVER_H_ |
OLD | NEW |