blob: f421bc3a3c7dc18f2eacf04752ad3d3a0b34eeaf [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/public/browser/render_view_host_observer.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
namespace content {
RenderViewHostObserver::RenderViewHostObserver(RenderViewHost* render_view_host)
: render_view_host_(static_cast<RenderViewHostImpl*>(render_view_host)),
routing_id_(render_view_host_->GetRoutingID()) {
render_view_host_->AddObserver(this);
}
RenderViewHostObserver::~RenderViewHostObserver() {
if (render_view_host_)
render_view_host_->RemoveObserver(this);
}
void RenderViewHostObserver::RenderViewHostInitialized() {
}
void RenderViewHostObserver::RenderViewHostDestroyed(RenderViewHost* rvh) {
delete this;
}
void RenderViewHostObserver::Navigate(const GURL& url) {
}
bool RenderViewHostObserver::OnMessageReceived(const IPC::Message& message) {
return false;
}
bool RenderViewHostObserver::Send(IPC::Message* message) {
if (!render_view_host_) {
delete message;
return false;
}
return render_view_host_->Send(message);
}
RenderViewHost* RenderViewHostObserver::render_view_host() const {
return render_view_host_;
}
void RenderViewHostObserver::RenderViewHostDestruction() {
render_view_host_->RemoveObserver(this);
RenderViewHost* rvh = render_view_host_;
render_view_host_ = NULL;
RenderViewHostDestroyed(rvh);
}
} // namespace content