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

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

Issue 594043002: Change ScriptInjection to work with WebLocalFrames. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « extensions/renderer/script_injection.cc ('k') | extensions/renderer/user_script_set.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/script_injection_manager.h" 5 #include "extensions/renderer/script_injection_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/weak_ptr.h" 8 #include "base/memory/weak_ptr.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "content/public/renderer/render_view.h" 10 #include "content/public/renderer/render_view.h"
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 pending_injections_.push_back(injection.release()); 314 pending_injections_.push_back(injection.release());
315 } 315 }
316 } 316 }
317 317
318 scripts_run_info.LogRun(frame, run_location); 318 scripts_run_info.LogRun(frame, run_location);
319 } 319 }
320 320
321 void ScriptInjectionManager::HandleExecuteCode( 321 void ScriptInjectionManager::HandleExecuteCode(
322 const ExtensionMsg_ExecuteCode_Params& params, 322 const ExtensionMsg_ExecuteCode_Params& params,
323 content::RenderView* render_view) { 323 content::RenderView* render_view) {
324 blink::WebFrame* main_frame = render_view->GetWebView()->mainFrame(); 324 // TODO(dcheng): Not sure how this can happen today. In an OOPI world, it
325 // would indicate a logic error--the browser must direct this request to the
326 // right renderer process to begin with.
327 blink::WebLocalFrame* main_frame =
328 render_view->GetWebView()->mainFrame()->toWebLocalFrame();
325 if (!main_frame) { 329 if (!main_frame) {
326 render_view->Send( 330 render_view->Send(
327 new ExtensionHostMsg_ExecuteCodeFinished(render_view->GetRoutingID(), 331 new ExtensionHostMsg_ExecuteCodeFinished(render_view->GetRoutingID(),
328 params.request_id, 332 params.request_id,
329 "No main frame", 333 "No main frame",
330 GURL(std::string()), 334 GURL(std::string()),
331 base::ListValue())); 335 base::ListValue()));
332 return; 336 return;
333 } 337 }
334 338
(...skipping 15 matching lines...) Expand all
350 } 354 }
351 } 355 }
352 356
353 void ScriptInjectionManager::HandleExecuteDeclarativeScript( 357 void ScriptInjectionManager::HandleExecuteDeclarativeScript(
354 blink::WebFrame* web_frame, 358 blink::WebFrame* web_frame,
355 int tab_id, 359 int tab_id,
356 const ExtensionId& extension_id, 360 const ExtensionId& extension_id,
357 int script_id, 361 int script_id,
358 const GURL& url) { 362 const GURL& url) {
359 const Extension* extension = extensions_->GetByID(extension_id); 363 const Extension* extension = extensions_->GetByID(extension_id);
364 // TODO(dcheng): This function signature should really be a WebLocalFrame,
365 // rather than trying to coerce it here.
360 scoped_ptr<ScriptInjection> injection = 366 scoped_ptr<ScriptInjection> injection =
361 user_script_set_manager_->GetInjectionForDeclarativeScript( 367 user_script_set_manager_->GetInjectionForDeclarativeScript(
362 script_id, 368 script_id,
363 web_frame, 369 web_frame->toWebLocalFrame(),
364 tab_id, 370 tab_id,
365 url, 371 url,
366 extension); 372 extension);
367 if (injection.get()) { 373 if (injection.get()) {
368 ScriptsRunInfo scripts_run_info; 374 ScriptsRunInfo scripts_run_info;
369 // TODO(markdittmer): Use return value of TryToInject for error handling. 375 // TODO(markdittmer): Use return value of TryToInject for error handling.
370 injection->TryToInject(UserScript::BROWSER_DRIVEN, 376 injection->TryToInject(UserScript::BROWSER_DRIVEN,
371 extension, 377 extension,
372 &scripts_run_info); 378 &scripts_run_info);
373 scripts_run_info.LogRun(web_frame, UserScript::BROWSER_DRIVEN); 379 scripts_run_info.LogRun(web_frame, UserScript::BROWSER_DRIVEN);
(...skipping 20 matching lines...) Expand all
394 400
395 ScriptsRunInfo scripts_run_info; 401 ScriptsRunInfo scripts_run_info;
396 if (injection->OnPermissionGranted(extensions_->GetByID( 402 if (injection->OnPermissionGranted(extensions_->GetByID(
397 injection->extension_id()), 403 injection->extension_id()),
398 &scripts_run_info)) { 404 &scripts_run_info)) {
399 scripts_run_info.LogRun(injection->web_frame(), UserScript::RUN_DEFERRED); 405 scripts_run_info.LogRun(injection->web_frame(), UserScript::RUN_DEFERRED);
400 } 406 }
401 } 407 }
402 408
403 } // namespace extensions 409 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/script_injection.cc ('k') | extensions/renderer/user_script_set.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698