#include "base/command_line.h"
#include "chrome/renderer/printing/print_web_view_helper.h"
#include "content/public/renderer/render_frame.h"
-#include "content/public/renderer/render_frame_observer.h"
#include "content/public/renderer/render_view.h"
#include "content/public/renderer/render_view_observer.h"
#include "ipc/ipc_message_macros.h"
b.SetMethod("crash", AtomBindings::Crash);
}
-class AtomSandboxedRenderFrameObserver : public content::RenderFrameObserver {
- public:
- AtomSandboxedRenderFrameObserver(content::RenderFrame* frame,
- AtomSandboxedRendererClient* renderer_client)
- : content::RenderFrameObserver(frame),
- render_frame_(frame),
- world_id_(-1),
- renderer_client_(renderer_client) {}
-
- // content::RenderFrameObserver:
- void DidClearWindowObject() override {
- renderer_client_->DidClearWindowObject(render_frame_);
- }
-
- void DidCreateScriptContext(v8::Handle<v8::Context> context,
- int extension_group,
- int world_id) override {
- if (world_id_ != -1 && world_id_ != world_id)
- return;
- world_id_ = world_id;
- renderer_client_->DidCreateScriptContext(context, render_frame_);
- }
-
- void WillReleaseScriptContext(v8::Local<v8::Context> context,
- int world_id) override {
- if (world_id_ != world_id)
- return;
- renderer_client_->WillReleaseScriptContext(context, render_frame_);
- }
-
- void OnDestruct() override {
- delete this;
- }
-
- private:
- content::RenderFrame* render_frame_;
- int world_id_;
- AtomSandboxedRendererClient* renderer_client_;
-
- DISALLOW_COPY_AND_ASSIGN(AtomSandboxedRenderFrameObserver);
-};
-
class AtomSandboxedRenderViewObserver : public AtomRenderViewObserver {
public:
AtomSandboxedRenderViewObserver(content::RenderView* render_view,
void AtomSandboxedRendererClient::RenderFrameCreated(
content::RenderFrame* render_frame) {
- new AtomSandboxedRenderFrameObserver(render_frame, this);
RendererClientBase::RenderFrameCreated(render_frame);
}
#include "atom/common/color_util.h"
#include "atom/common/native_mate_converters/value_converter.h"
#include "atom/common/options_switches.h"
+#include "atom/renderer/atom_render_frame_observer.h"
#include "atom/renderer/content_settings_observer.h"
#include "atom/renderer/guest_view_container.h"
#include "atom/renderer/preferences_manager.h"
void RendererClientBase::RenderFrameCreated(
content::RenderFrame* render_frame) {
+ new AtomRenderFrameObserver(render_frame, this);
new PepperHelper(render_frame);
new ContentSettingsObserver(render_frame);
new printing::PrintWebViewHelper(render_frame);