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

Side by Side Diff: chrome/browser/automation/automation_resource_message_filter.cc

Issue 16295003: Update chrome/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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 | Annotate | Revision Log
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 "chrome/browser/automation/automation_resource_message_filter.h" 5 #include "chrome/browser/automation/automation_resource_message_filter.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 int tab_handle, AutomationResourceMessageFilter* filter, 256 int tab_handle, AutomationResourceMessageFilter* filter,
257 bool pending_view) { 257 bool pending_view) {
258 RendererId renderer_key(renderer_pid, renderer_id); 258 RendererId renderer_key(renderer_pid, renderer_id);
259 259
260 RenderViewMap::iterator automation_details_iter( 260 RenderViewMap::iterator automation_details_iter(
261 filtered_render_views_.Get().find(renderer_key)); 261 filtered_render_views_.Get().find(renderer_key));
262 // We need to match the renderer key and the AutomationResourceMessageFilter 262 // We need to match the renderer key and the AutomationResourceMessageFilter
263 // instances. If the filter instances are different it means that a new 263 // instances. If the filter instances are different it means that a new
264 // automation channel (External host process) was created for this tab. 264 // automation channel (External host process) was created for this tab.
265 if (automation_details_iter != filtered_render_views_.Get().end() && 265 if (automation_details_iter != filtered_render_views_.Get().end() &&
266 automation_details_iter->second.filter == filter) { 266 automation_details_iter->second.filter.get() == filter) {
267 DCHECK_GT(automation_details_iter->second.ref_count, 0); 267 DCHECK_GT(automation_details_iter->second.ref_count, 0);
268 automation_details_iter->second.ref_count++; 268 automation_details_iter->second.ref_count++;
269 // The tab handle and the pending status may have changed:- 269 // The tab handle and the pending status may have changed:-
270 // 1.A external tab container is being destroyed and a new one is being 270 // 1.A external tab container is being destroyed and a new one is being
271 // created. 271 // created.
272 // 2.The external tab container being destroyed receives a RVH created 272 // 2.The external tab container being destroyed receives a RVH created
273 // notification for the new RVH created to host the newly created tab. 273 // notification for the new RVH created to host the newly created tab.
274 // In this case the tab handle in the AutomationDetails structure would 274 // In this case the tab handle in the AutomationDetails structure would
275 // be invalid as it points to a destroyed tab. 275 // be invalid as it points to a destroyed tab.
276 // We need to replace the handle of the external tab being destroyed with 276 // We need to replace the handle of the external tab being destroyed with
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 RenderViewMap::iterator automation_details_iter( 314 RenderViewMap::iterator automation_details_iter(
315 filtered_render_views_.Get().find(renderer_key)); 315 filtered_render_views_.Get().find(renderer_key));
316 316
317 DCHECK(automation_details_iter != filtered_render_views_.Get().end()) 317 DCHECK(automation_details_iter != filtered_render_views_.Get().end())
318 << "Failed to find pending view for renderer pid:" 318 << "Failed to find pending view for renderer pid:"
319 << renderer_pid << ", render view id:" << renderer_id; 319 << renderer_pid << ", render view id:" << renderer_id;
320 320
321 DCHECK(automation_details_iter->second.is_pending_render_view); 321 DCHECK(automation_details_iter->second.is_pending_render_view);
322 322
323 AutomationResourceMessageFilter* old_filter = 323 AutomationResourceMessageFilter* old_filter =
324 automation_details_iter->second.filter; 324 automation_details_iter->second.filter.get();
325 DCHECK(old_filter != NULL); 325 DCHECK(old_filter != NULL);
326 326
327 filtered_render_views_.Get()[renderer_key] = 327 filtered_render_views_.Get()[renderer_key] =
328 AutomationDetails(tab_handle, filter, false); 328 AutomationDetails(tab_handle, filter, false);
329 329
330 ResumeJobsForPendingView(tab_handle, old_filter, filter); 330 ResumeJobsForPendingView(tab_handle, old_filter, filter);
331 } 331 }
332 332
333 bool AutomationResourceMessageFilter::LookupRegisteredRenderView( 333 bool AutomationResourceMessageFilter::LookupRegisteredRenderView(
334 int renderer_pid, int renderer_id, AutomationDetails* details) { 334 int renderer_pid, int renderer_id, AutomationDetails* details) {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 void AutomationResourceMessageFilter::GetCookiesForUrl( 387 void AutomationResourceMessageFilter::GetCookiesForUrl(
388 BrowserMessageFilter* filter, net::URLRequestContext* context, 388 BrowserMessageFilter* filter, net::URLRequestContext* context,
389 int render_process_id, IPC::Message* reply_msg, const GURL& url) { 389 int render_process_id, IPC::Message* reply_msg, const GURL& url) {
390 390
391 RendererId renderer_key(render_process_id, reply_msg->routing_id()); 391 RendererId renderer_key(render_process_id, reply_msg->routing_id());
392 392
393 RenderViewMap::iterator automation_details_iter( 393 RenderViewMap::iterator automation_details_iter(
394 filtered_render_views_.Get().find(renderer_key)); 394 filtered_render_views_.Get().find(renderer_key));
395 395
396 DCHECK(automation_details_iter != filtered_render_views_.Get().end()); 396 DCHECK(automation_details_iter != filtered_render_views_.Get().end());
397 DCHECK(automation_details_iter->second.filter != NULL); 397 DCHECK(automation_details_iter->second.filter.get() != NULL);
398 398
399 int completion_callback_id = GetNextCompletionCallbackId(); 399 int completion_callback_id = GetNextCompletionCallbackId();
400 DCHECK(!ContainsKey(completion_callback_map_.Get(), completion_callback_id)); 400 DCHECK(!ContainsKey(completion_callback_map_.Get(), completion_callback_id));
401 401
402 CookieCompletionInfo cookie_info; 402 CookieCompletionInfo cookie_info;
403 cookie_info.filter = filter; 403 cookie_info.filter = filter;
404 cookie_info.context = context; 404 cookie_info.context = context;
405 cookie_info.render_process_id = render_process_id; 405 cookie_info.render_process_id = render_process_id;
406 cookie_info.reply_msg = reply_msg; 406 cookie_info.reply_msg = reply_msg;
407 cookie_info.automation_message_filter = 407 cookie_info.automation_message_filter =
408 automation_details_iter->second.filter; 408 automation_details_iter->second.filter;
409 409
410 completion_callback_map_.Get()[completion_callback_id] = cookie_info; 410 completion_callback_map_.Get()[completion_callback_id] = cookie_info;
411 411
412 DCHECK(automation_details_iter->second.filter != NULL); 412 DCHECK(automation_details_iter->second.filter.get() != NULL);
413 413
414 if (automation_details_iter->second.filter) { 414 if (automation_details_iter->second.filter.get()) {
415 automation_details_iter->second.filter->Send( 415 automation_details_iter->second.filter
416 new AutomationMsg_GetCookiesFromHost( 416 ->Send(new AutomationMsg_GetCookiesFromHost(
417 automation_details_iter->second.tab_handle, url, 417 automation_details_iter->second.tab_handle,
418 completion_callback_id)); 418 url,
419 completion_callback_id));
419 } 420 }
420 } 421 }
421 422
422 void AutomationResourceMessageFilter::OnGetCookiesHostResponse( 423 void AutomationResourceMessageFilter::OnGetCookiesHostResponse(
423 int tab_handle, bool success, const GURL& url, const std::string& cookies, 424 int tab_handle, bool success, const GURL& url, const std::string& cookies,
424 int cookie_id) { 425 int cookie_id) {
425 CompletionCallbackMap::iterator index = 426 CompletionCallbackMap::iterator index =
426 completion_callback_map_.Get().find(cookie_id); 427 completion_callback_map_.Get().find(cookie_id);
427 if (index == completion_callback_map_.Get().end()) { 428 if (index == completion_callback_map_.Get().end()) {
428 NOTREACHED() << "Received invalid completion callback id:" 429 NOTREACHED() << "Received invalid completion callback id:"
(...skipping 10 matching lines...) Expand all
439 440
440 void AutomationResourceMessageFilter::SetCookiesForUrl( 441 void AutomationResourceMessageFilter::SetCookiesForUrl(
441 int render_process_id, 442 int render_process_id,
442 int render_view_id, 443 int render_view_id,
443 const GURL& url, 444 const GURL& url,
444 const std::string& cookie_line) { 445 const std::string& cookie_line) {
445 RenderViewMap::iterator automation_details_iter( 446 RenderViewMap::iterator automation_details_iter(
446 filtered_render_views_.Get().find(RendererId( 447 filtered_render_views_.Get().find(RendererId(
447 render_process_id, render_view_id))); 448 render_process_id, render_view_id)));
448 DCHECK(automation_details_iter != filtered_render_views_.Get().end()); 449 DCHECK(automation_details_iter != filtered_render_views_.Get().end());
449 DCHECK(automation_details_iter->second.filter != NULL); 450 DCHECK(automation_details_iter->second.filter.get() != NULL);
450 451
451 if (automation_details_iter->second.filter) { 452 if (automation_details_iter->second.filter.get()) {
452 automation_details_iter->second.filter->Send( 453 automation_details_iter->second.filter
453 new AutomationMsg_SetCookieAsync( 454 ->Send(new AutomationMsg_SetCookieAsync(
454 automation_details_iter->second.tab_handle, url, cookie_line)); 455 automation_details_iter->second.tab_handle, url, cookie_line));
455 } 456 }
456 } 457 }
457 458
458 // static 459 // static
459 void AutomationResourceMessageFilter::ResumeJobsForPendingView( 460 void AutomationResourceMessageFilter::ResumeJobsForPendingView(
460 int tab_handle, 461 int tab_handle,
461 AutomationResourceMessageFilter* old_filter, 462 AutomationResourceMessageFilter* old_filter,
462 AutomationResourceMessageFilter* new_filter) { 463 AutomationResourceMessageFilter* new_filter) {
463 DCHECK(old_filter != NULL); 464 DCHECK(old_filter != NULL);
464 DCHECK(new_filter != NULL); 465 DCHECK(new_filter != NULL);
465 466
466 RequestMap pending_requests = old_filter->pending_request_map_; 467 RequestMap pending_requests = old_filter->pending_request_map_;
467 old_filter->pending_request_map_.clear(); 468 old_filter->pending_request_map_.clear();
468 469
469 for (RequestMap::iterator index = pending_requests.begin(); 470 for (RequestMap::iterator index = pending_requests.begin();
470 index != pending_requests.end(); index++) { 471 index != pending_requests.end(); index++) {
471 URLRequestAutomationJob* job = (*index).second; 472 URLRequestAutomationJob* job = (*index).second;
472 DCHECK_EQ(job->message_filter(), old_filter); 473 DCHECK_EQ(job->message_filter(), old_filter);
473 DCHECK(job->is_pending()); 474 DCHECK(job->is_pending());
474 // StartPendingJob will register the job with the new filter. 475 // StartPendingJob will register the job with the new filter.
475 job->StartPendingJob(tab_handle, new_filter); 476 job->StartPendingJob(tab_handle, new_filter);
476 } 477 }
477 } 478 }
OLDNEW
« no previous file with comments | « chrome/browser/automation/automation_provider.cc ('k') | chrome/browser/automation/testing_automation_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698