Home | History | Annotate | Download | only in renderer
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_RENDERER_CHROME_RENDER_PROCESS_OBSERVER_H_
      6 #define CHROME_RENDERER_CHROME_RENDER_PROCESS_OBSERVER_H_
      7 
      8 #include <string>
      9 
     10 #include "base/compiler_specific.h"
     11 #include "base/files/file_path.h"
     12 #include "base/memory/scoped_ptr.h"
     13 #include "components/content_settings/core/common/content_settings.h"
     14 #include "content/public/renderer/render_process_observer.h"
     15 
     16 class ChromeContentRendererClient;
     17 class GURL;
     18 struct ContentSettings;
     19 
     20 namespace content {
     21 class ResourceDispatcherDelegate;
     22 }
     23 
     24 // 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 // happen.  If a few messages are related, they should probably have their own
     27 // observer.
     28 class ChromeRenderProcessObserver : public content::RenderProcessObserver {
     29  public:
     30   explicit ChromeRenderProcessObserver(
     31       ChromeContentRendererClient* client);
     32   virtual ~ChromeRenderProcessObserver();
     33 
     34   static bool is_incognito_process() { return is_incognito_process_; }
     35 
     36   // Returns a pointer to the content setting rules owned by
     37   // |ChromeRenderProcessObserver|.
     38   const RendererContentSettingRules* content_setting_rules() const;
     39 
     40  private:
     41   // RenderProcessObserver implementation.
     42   virtual bool OnControlMessageReceived(const IPC::Message& message) OVERRIDE;
     43   virtual void WebKitInitialized() OVERRIDE;
     44   virtual void OnRenderProcessShutdown() OVERRIDE;
     45 
     46   void OnSetIsIncognitoProcess(bool is_incognito_process);
     47   void OnSetContentSettingsForCurrentURL(
     48       const GURL& url, const ContentSettings& content_settings);
     49   void OnSetContentSettingRules(const RendererContentSettingRules& rules);
     50   void OnGetCacheResourceStats();
     51   void OnSetFieldTrialGroup(const std::string& fiel_trial_name,
     52                             const std::string& group_name);
     53   void OnGetV8HeapStats();
     54 
     55   static bool is_incognito_process_;
     56   scoped_ptr<content::ResourceDispatcherDelegate> resource_delegate_;
     57   ChromeContentRendererClient* client_;
     58   // If true, the web cache shall be cleared before the next navigation event.
     59   bool clear_cache_pending_;
     60   RendererContentSettingRules content_setting_rules_;
     61 
     62   bool webkit_initialized_;
     63 
     64   DISALLOW_COPY_AND_ASSIGN(ChromeRenderProcessObserver);
     65 };
     66 
     67 #endif  // CHROME_RENDERER_CHROME_RENDER_PROCESS_OBSERVER_H_
     68