| Index: content/renderer/render_frame_impl.cc
|
| ===================================================================
|
| --- content/renderer/render_frame_impl.cc (revision 244810)
|
| +++ content/renderer/render_frame_impl.cc (working copy)
|
| @@ -115,13 +115,15 @@
|
| return new RenderFrameImpl(render_view, routing_id);
|
| }
|
|
|
| -RenderFrameImpl* RenderFrameImpl::FindByWebFrame(blink::WebFrame* web_frame) {
|
| - if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess)) {
|
| - FrameMap::iterator iter = g_frame_map.Get().find(web_frame);
|
| - if (iter != g_frame_map.Get().end())
|
| - return iter->second;
|
| - }
|
| +// static
|
| +RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) {
|
| + return RenderFrameImpl::FromWebFrame(web_frame);
|
| +}
|
|
|
| +RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) {
|
| + FrameMap::iterator iter = g_frame_map.Get().find(web_frame);
|
| + if (iter != g_frame_map.Get().end())
|
| + return iter->second;
|
| return NULL;
|
| }
|
|
|
| @@ -141,12 +143,6 @@
|
| is_detaching_(false),
|
| cookie_jar_(this) {
|
| RenderThread::Get()->AddRoute(routing_id_, this);
|
| -#if defined(ENABLE_PLUGINS)
|
| - new PepperBrowserConnection(this);
|
| -#endif
|
| - new SharedWorkerRepository(this);
|
| -
|
| - GetContentClient()->renderer()->RenderFrameCreated(this);
|
| }
|
|
|
| RenderFrameImpl::~RenderFrameImpl() {
|
| @@ -162,19 +158,23 @@
|
| memset(ptr, 0xAF, sizeof(RenderFrameImpl));
|
| }
|
|
|
| -void RenderFrameImpl::MainWebFrameCreated(blink::WebFrame* frame) {
|
| +void RenderFrameImpl::SetWebFrame(blink::WebFrame* web_frame) {
|
| + DCHECK(!frame_);
|
| +
|
| std::pair<FrameMap::iterator, bool> result = g_frame_map.Get().insert(
|
| - std::make_pair(frame, this));
|
| + std::make_pair(web_frame, this));
|
| CHECK(result.second) << "Inserting a duplicate item.";
|
|
|
| - FOR_EACH_OBSERVER(RenderFrameObserver, observers_,
|
| - WebFrameCreated(frame));
|
| -}
|
| + frame_ = web_frame;
|
| +
|
| +#if defined(ENABLE_PLUGINS)
|
| + new PepperBrowserConnection(this);
|
| +#endif
|
| + new SharedWorkerRepository(this);
|
|
|
| -void RenderFrameImpl::SetWebFrame(blink::WebFrame* web_frame) {
|
| - DCHECK(!frame_);
|
| - if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess))
|
| - frame_ = web_frame;
|
| + // We delay calling this until we have the WebFrame so that any observer or
|
| + // embedder can call GetWebFrame on any RenderFrame.
|
| + GetContentClient()->renderer()->RenderFrameCreated(this);
|
| }
|
|
|
| RenderWidget* RenderFrameImpl::GetRenderWidget() {
|
| @@ -440,6 +440,11 @@
|
| return routing_id_;
|
| }
|
|
|
| +blink::WebFrame* RenderFrameImpl::GetWebFrame() {
|
| + DCHECK(frame_);
|
| + return frame_;
|
| +}
|
| +
|
| WebPreferences& RenderFrameImpl::GetWebkitPreferences() {
|
| return render_view_->GetWebkitPreferences();
|
| }
|
| @@ -587,12 +592,6 @@
|
| CHECK(web_frame);
|
| child_render_frame->SetWebFrame(web_frame);
|
|
|
| - std::pair<FrameMap::iterator, bool> result = g_frame_map.Get().insert(
|
| - std::make_pair(web_frame, child_render_frame));
|
| - CHECK(result.second) << "Inserting a duplicate item.";
|
| -
|
| - FOR_EACH_OBSERVER(RenderFrameObserver, observers_,
|
| - WebFrameCreated(web_frame));
|
| return web_frame;
|
| }
|
|
|
|
|