Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(281)

Side by Side Diff: extensions/renderer/app_window_custom_bindings.cc

Issue 1685003002: Plumb the correct owner document through DocumentInit::m_owner. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make initSecurityContext private. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/renderer/app_window_custom_bindings.h" 5 #include "extensions/renderer/app_window_custom_bindings.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "content/public/child/v8_value_converter.h" 8 #include "content/public/child/v8_value_converter.h"
9 #include "content/public/renderer/render_frame.h" 9 #include "content/public/renderer/render_frame.h"
10 #include "content/public/renderer/render_thread.h" 10 #include "content/public/renderer/render_thread.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 int frame_id = args[0]->Int32Value(); 43 int frame_id = args[0]->Int32Value();
44 44
45 if (frame_id == MSG_ROUTING_NONE) 45 if (frame_id == MSG_ROUTING_NONE)
46 return; 46 return;
47 47
48 content::RenderFrame* app_frame = 48 content::RenderFrame* app_frame =
49 content::RenderFrame::FromRoutingID(frame_id); 49 content::RenderFrame::FromRoutingID(frame_id);
50 if (!app_frame) 50 if (!app_frame)
51 return; 51 return;
52 52
53 // TODO(jeremya): it doesn't really make sense to set the opener here, but we
54 // need to make sure the security origin is set up before returning the DOM
55 // reference. A better way to do this would be to have the browser pass the
56 // opener through so opener_id is set in RenderViewImpl's constructor.
57 content::RenderFrame* context_render_frame = context()->GetRenderFrame();
58 if (!context_render_frame)
59 return;
60
61 blink::WebFrame* opener = context_render_frame->GetWebFrame();
62 blink::WebLocalFrame* app_web_frame = app_frame->GetWebFrame();
63 app_web_frame->setOpener(opener);
64
65 content::RenderThread::Get()->Send(new ExtensionHostMsg_AppWindowReady( 53 content::RenderThread::Get()->Send(new ExtensionHostMsg_AppWindowReady(
66 app_frame->GetRenderView()->GetRoutingID())); 54 app_frame->GetRenderView()->GetRoutingID()));
67 55
68 v8::Local<v8::Value> window = 56 v8::Local<v8::Value> window =
69 app_web_frame->mainWorldScriptContext()->Global(); 57 app_frame->GetWebFrame()->mainWorldScriptContext()->Global();
70 args.GetReturnValue().Set(window); 58 args.GetReturnValue().Set(window);
71 } 59 }
72 60
73 void AppWindowCustomBindings::GetWindowControlsHtmlTemplate( 61 void AppWindowCustomBindings::GetWindowControlsHtmlTemplate(
74 const v8::FunctionCallbackInfo<v8::Value>& args) { 62 const v8::FunctionCallbackInfo<v8::Value>& args) {
75 CHECK_EQ(args.Length(), 0); 63 CHECK_EQ(args.Length(), 0);
76 64
77 v8::Local<v8::Value> result = v8::String::Empty(args.GetIsolate()); 65 v8::Local<v8::Value> result = v8::String::Empty(args.GetIsolate());
78 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 66 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
79 switches::kEnableAppWindowControls)) { 67 switches::kEnableAppWindowControls)) {
80 base::StringValue value( 68 base::StringValue value(
81 ResourceBundle::GetSharedInstance() 69 ResourceBundle::GetSharedInstance()
82 .GetRawDataResource(IDR_WINDOW_CONTROLS_TEMPLATE_HTML) 70 .GetRawDataResource(IDR_WINDOW_CONTROLS_TEMPLATE_HTML)
83 .as_string()); 71 .as_string());
84 scoped_ptr<content::V8ValueConverter> converter( 72 scoped_ptr<content::V8ValueConverter> converter(
85 content::V8ValueConverter::create()); 73 content::V8ValueConverter::create());
86 result = converter->ToV8Value(&value, context()->v8_context()); 74 result = converter->ToV8Value(&value, context()->v8_context());
87 } 75 }
88 args.GetReturnValue().Set(result); 76 args.GetReturnValue().Set(result);
89 } 77 }
90 78
91 } // namespace extensions 79 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698