Home | History | Annotate | Download | only in extensions
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_FRAME_HELPER_H_
      6 #define CHROME_RENDERER_EXTENSIONS_EXTENSION_FRAME_HELPER_H_
      7 
      8 #include "content/public/common/console_message_level.h"
      9 #include "content/public/renderer/render_frame_observer.h"
     10 #include "content/public/renderer/render_frame_observer_tracker.h"
     11 
     12 namespace extensions {
     13 
     14 class Dispatcher;
     15 
     16 // RenderFrame-level plumbing for extension features.
     17 class ExtensionFrameHelper
     18     : public content::RenderFrameObserver,
     19       public content::RenderFrameObserverTracker<ExtensionFrameHelper> {
     20  public:
     21   ExtensionFrameHelper(content::RenderFrame* render_frame,
     22                        Dispatcher* extension_dispatcher);
     23   virtual ~ExtensionFrameHelper();
     24 
     25  private:
     26   // RenderFrameObserver implementation.
     27   virtual void WillReleaseScriptContext(v8::Handle<v8::Context>,
     28                                         int world_id) OVERRIDE;
     29   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
     30 
     31   // IPC handlers.
     32   void OnAddMessageToConsole(content::ConsoleMessageLevel level,
     33                              const std::string& message);
     34 
     35   Dispatcher* extension_dispatcher_;
     36 
     37   DISALLOW_COPY_AND_ASSIGN(ExtensionFrameHelper);
     38 };
     39 
     40 }  // namespace extensions
     41 
     42 #endif  // CHROME_RENDERER_EXTENSIONS_EXTENSION_FRAME_HELPER_H_
     43