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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 518583003: Don't take a fake UGI every time we execute Javascript. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 2013 The Chromium Authors. All rights reserved. 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 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 "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 1206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1217 frame_->replaceMisspelledRange(text); 1217 frame_->replaceMisspelledRange(text);
1218 } 1218 }
1219 1219
1220 void RenderFrameImpl::OnCSSInsertRequest(const std::string& css) { 1220 void RenderFrameImpl::OnCSSInsertRequest(const std::string& css) {
1221 frame_->document().insertStyleSheet(WebString::fromUTF8(css)); 1221 frame_->document().insertStyleSheet(WebString::fromUTF8(css));
1222 } 1222 }
1223 1223
1224 void RenderFrameImpl::OnJavaScriptExecuteRequest( 1224 void RenderFrameImpl::OnJavaScriptExecuteRequest(
1225 const base::string16& jscript, 1225 const base::string16& jscript,
1226 int id, 1226 int id,
1227 bool notify_result) { 1227 bool notify_result,
1228 bool set_ugi_for_tests) {
Rick Byers 2014/08/29 13:38:38 I'm a little nervous that it would be too easy for
Zeeshan Qureshi 2014/08/29 16:16:37 This is the method that gets called when a Javascr
Rick Byers 2014/08/29 16:21:44 Ah, of course - sorry, that makes sense. I was th
1228 TRACE_EVENT_INSTANT0("test_tracing", "OnJavaScriptExecuteRequest", 1229 TRACE_EVENT_INSTANT0("test_tracing", "OnJavaScriptExecuteRequest",
1229 TRACE_EVENT_SCOPE_THREAD); 1230 TRACE_EVENT_SCOPE_THREAD);
1230 1231
1231 v8::HandleScope handle_scope(v8::Isolate::GetCurrent()); 1232 v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
1232 v8::Handle<v8::Value> result = 1233 v8::Handle<v8::Value> result = set_ugi_for_tests ?
1233 frame_->executeScriptAndReturnValue(WebScriptSource(jscript)); 1234 frame_->executeScriptAndReturnValueForTests(WebScriptSource(jscript)) :
1235 frame_->executeScriptAndReturnValue(WebScriptSource(jscript));
1236
1234 if (notify_result) { 1237 if (notify_result) {
1235 base::ListValue list; 1238 base::ListValue list;
1236 if (!result.IsEmpty()) { 1239 if (!result.IsEmpty()) {
1237 v8::Local<v8::Context> context = frame_->mainWorldScriptContext(); 1240 v8::Local<v8::Context> context = frame_->mainWorldScriptContext();
1238 v8::Context::Scope context_scope(context); 1241 v8::Context::Scope context_scope(context);
1239 V8ValueConverterImpl converter; 1242 V8ValueConverterImpl converter;
1240 converter.SetDateAllowed(true); 1243 converter.SetDateAllowed(true);
1241 converter.SetRegExpAllowed(true); 1244 converter.SetRegExpAllowed(true);
1242 base::Value* result_value = converter.FromV8Value(result, context); 1245 base::Value* result_value = converter.FromV8Value(result, context);
1243 list.Set(0, result_value ? result_value : base::Value::CreateNullValue()); 1246 list.Set(0, result_value ? result_value : base::Value::CreateNullValue());
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
1487 } 1490 }
1488 1491
1489 void RenderFrameImpl::LoadURLExternally(blink::WebLocalFrame* frame, 1492 void RenderFrameImpl::LoadURLExternally(blink::WebLocalFrame* frame,
1490 const blink::WebURLRequest& request, 1493 const blink::WebURLRequest& request,
1491 blink::WebNavigationPolicy policy) { 1494 blink::WebNavigationPolicy policy) {
1492 DCHECK(!frame_ || frame_ == frame); 1495 DCHECK(!frame_ || frame_ == frame);
1493 loadURLExternally(frame, request, policy, WebString()); 1496 loadURLExternally(frame, request, policy, WebString());
1494 } 1497 }
1495 1498
1496 void RenderFrameImpl::ExecuteJavaScript(const base::string16& javascript) { 1499 void RenderFrameImpl::ExecuteJavaScript(const base::string16& javascript) {
1497 OnJavaScriptExecuteRequest(javascript, 0, false); 1500 OnJavaScriptExecuteRequest(javascript, 0, false, false);
1498 } 1501 }
1499 1502
1500 ServiceRegistry* RenderFrameImpl::GetServiceRegistry() { 1503 ServiceRegistry* RenderFrameImpl::GetServiceRegistry() {
1501 return &service_registry_; 1504 return &service_registry_;
1502 } 1505 }
1503 1506
1504 bool RenderFrameImpl::IsFTPDirectoryListing() { 1507 bool RenderFrameImpl::IsFTPDirectoryListing() {
1505 WebURLResponseExtraDataImpl* extra_data = 1508 WebURLResponseExtraDataImpl* extra_data =
1506 GetExtraDataFromResponse(frame_->dataSource()->response()); 1509 GetExtraDataFromResponse(frame_->dataSource()->response());
1507 return extra_data ? extra_data->is_ftp_directory_listing() : false; 1510 return extra_data ? extra_data->is_ftp_directory_listing() : false;
(...skipping 2328 matching lines...) Expand 10 before | Expand all | Expand 10 after
3836 3839
3837 #if defined(ENABLE_BROWSER_CDMS) 3840 #if defined(ENABLE_BROWSER_CDMS)
3838 RendererCdmManager* RenderFrameImpl::GetCdmManager() { 3841 RendererCdmManager* RenderFrameImpl::GetCdmManager() {
3839 if (!cdm_manager_) 3842 if (!cdm_manager_)
3840 cdm_manager_ = new RendererCdmManager(this); 3843 cdm_manager_ = new RendererCdmManager(this);
3841 return cdm_manager_; 3844 return cdm_manager_;
3842 } 3845 }
3843 #endif // defined(ENABLE_BROWSER_CDMS) 3846 #endif // defined(ENABLE_BROWSER_CDMS)
3844 3847
3845 } // namespace content 3848 } // namespace content
OLDNEW
« content/public/browser/render_frame_host.h ('K') | « content/renderer/render_frame_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698