Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "content/renderer/render_widget.h" | 5 #include "content/renderer/render_widget.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 441 DCHECK(opener_id != MSG_ROUTING_NONE); | 441 DCHECK(opener_id != MSG_ROUTING_NONE); |
| 442 scoped_refptr<RenderWidget> widget( | 442 scoped_refptr<RenderWidget> widget( |
| 443 new RenderWidget(popup_type, screen_info, false, false, false)); | 443 new RenderWidget(popup_type, screen_info, false, false, false)); |
| 444 if (widget->Init(opener_id)) { // adds reference on success. | 444 if (widget->Init(opener_id)) { // adds reference on success. |
| 445 return widget.get(); | 445 return widget.get(); |
| 446 } | 446 } |
| 447 return NULL; | 447 return NULL; |
| 448 } | 448 } |
| 449 | 449 |
| 450 // static | 450 // static |
| 451 RenderWidget* RenderWidget::CreateForFrame( | |
| 452 int routing_id, bool hidden, const blink::WebScreenInfo& screen_info) { | |
|
nasko
2014/10/01 16:37:14
style: params need to be on separate lines each
kenrb
2014/10/01 19:27:51
Done.
| |
| 453 DCHECK(routing_id != MSG_ROUTING_NONE); | |
| 454 scoped_refptr<RenderWidget> widget( | |
| 455 new RenderWidget(blink::WebPopupTypeNone, | |
| 456 screen_info, | |
| 457 false, | |
| 458 hidden, | |
| 459 false)); | |
| 460 widget->routing_id_ = routing_id; | |
| 461 //TODO(kenrb): Change CreateWebWidget to CreateWebFrameWidget before landing! | |
| 462 if (widget->DoInit(MSG_ROUTING_NONE, | |
| 463 RenderWidget::CreateWebWidget(widget.get()), | |
| 464 0)) | |
|
nasko
2014/10/01 16:37:14
nit: s/0/nullptr/
kenrb
2014/10/01 19:27:51
Done.
| |
| 465 return widget.get(); | |
|
nasko
2014/10/01 16:37:14
style: {} needed because the if clause spans multi
kenrb
2014/10/01 19:27:51
Done.
| |
| 466 return NULL; | |
| 467 } | |
| 468 | |
| 469 // static | |
| 451 WebWidget* RenderWidget::CreateWebWidget(RenderWidget* render_widget) { | 470 WebWidget* RenderWidget::CreateWebWidget(RenderWidget* render_widget) { |
| 452 switch (render_widget->popup_type_) { | 471 switch (render_widget->popup_type_) { |
| 453 case blink::WebPopupTypeNone: // Nothing to create. | 472 case blink::WebPopupTypeNone: // Nothing to create. |
| 454 break; | 473 break; |
| 455 case blink::WebPopupTypeSelect: | 474 case blink::WebPopupTypeSelect: |
| 456 case blink::WebPopupTypeSuggestion: | 475 case blink::WebPopupTypeSuggestion: |
| 457 return WebPopupMenu::create(render_widget); | 476 return WebPopupMenu::create(render_widget); |
| 458 case blink::WebPopupTypePage: | 477 case blink::WebPopupTypePage: |
| 459 return WebPagePopup::create(render_widget); | 478 return WebPagePopup::create(render_widget); |
| 460 default: | 479 default: |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 473 bool RenderWidget::DoInit(int32 opener_id, | 492 bool RenderWidget::DoInit(int32 opener_id, |
| 474 WebWidget* web_widget, | 493 WebWidget* web_widget, |
| 475 IPC::SyncMessage* create_widget_message) { | 494 IPC::SyncMessage* create_widget_message) { |
| 476 DCHECK(!webwidget_); | 495 DCHECK(!webwidget_); |
| 477 | 496 |
| 478 if (opener_id != MSG_ROUTING_NONE) | 497 if (opener_id != MSG_ROUTING_NONE) |
| 479 opener_id_ = opener_id; | 498 opener_id_ = opener_id; |
| 480 | 499 |
| 481 webwidget_ = web_widget; | 500 webwidget_ = web_widget; |
| 482 | 501 |
| 483 bool result = RenderThread::Get()->Send(create_widget_message); | 502 bool result = true; |
| 503 if (create_widget_message) | |
| 504 result = RenderThread::Get()->Send(create_widget_message); | |
| 505 | |
| 484 if (result) { | 506 if (result) { |
| 485 RenderThread::Get()->AddRoute(routing_id_, this); | 507 RenderThread::Get()->AddRoute(routing_id_, this); |
| 486 // Take a reference on behalf of the RenderThread. This will be balanced | 508 // Take a reference on behalf of the RenderThread. This will be balanced |
| 487 // when we receive ViewMsg_Close. | 509 // when we receive ViewMsg_Close. |
| 488 AddRef(); | 510 AddRef(); |
| 489 if (RenderThreadImpl::current()) { | 511 if (RenderThreadImpl::current()) { |
| 490 RenderThreadImpl::current()->WidgetCreated(); | 512 RenderThreadImpl::current()->WidgetCreated(); |
| 491 if (is_hidden_) | 513 if (is_hidden_) |
| 492 RenderThreadImpl::current()->WidgetHidden(); | 514 RenderThreadImpl::current()->WidgetHidden(); |
| 493 } | 515 } |
| (...skipping 1687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2181 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { | 2203 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { |
| 2182 video_hole_frames_.AddObserver(frame); | 2204 video_hole_frames_.AddObserver(frame); |
| 2183 } | 2205 } |
| 2184 | 2206 |
| 2185 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { | 2207 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { |
| 2186 video_hole_frames_.RemoveObserver(frame); | 2208 video_hole_frames_.RemoveObserver(frame); |
| 2187 } | 2209 } |
| 2188 #endif // defined(VIDEO_HOLE) | 2210 #endif // defined(VIDEO_HOLE) |
| 2189 | 2211 |
| 2190 } // namespace content | 2212 } // namespace content |
| OLD | NEW |