| 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 <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 DCHECK(RenderThread::Get()); | 386 DCHECK(RenderThread::Get()); |
| 387 | 387 |
| 388 // In tests there may not be a RenderThreadImpl. | 388 // In tests there may not be a RenderThreadImpl. |
| 389 if (RenderThreadImpl::current()) { | 389 if (RenderThreadImpl::current()) { |
| 390 render_widget_scheduling_state_ = RenderThreadImpl::current() | 390 render_widget_scheduling_state_ = RenderThreadImpl::current() |
| 391 ->GetRendererScheduler() | 391 ->GetRendererScheduler() |
| 392 ->NewRenderWidgetSchedulingState(); | 392 ->NewRenderWidgetSchedulingState(); |
| 393 render_widget_scheduling_state_->SetHidden(is_hidden_); | 393 render_widget_scheduling_state_->SetHidden(is_hidden_); |
| 394 } | 394 } |
| 395 #if defined(USE_AURA) | 395 #if defined(USE_AURA) |
| 396 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( | 396 RendererWindowTreeClient::CreateIfNecessary(routing_id_); |
| 397 switches::kNoUseMusInRenderer)) { | |
| 398 RendererWindowTreeClient::CreateIfNecessary(routing_id_); | |
| 399 } | |
| 400 #endif | 397 #endif |
| 401 } | 398 } |
| 402 | 399 |
| 403 RenderWidget::~RenderWidget() { | 400 RenderWidget::~RenderWidget() { |
| 404 DCHECK(!webwidget_internal_) << "Leaking our WebWidget!"; | 401 DCHECK(!webwidget_internal_) << "Leaking our WebWidget!"; |
| 405 | 402 |
| 406 // If we are swapped out, we have released already. | 403 // If we are swapped out, we have released already. |
| 407 if (!is_swapped_out_ && RenderProcess::current()) | 404 if (!is_swapped_out_ && RenderProcess::current()) |
| 408 RenderProcess::current()->ReleaseProcess(); | 405 RenderProcess::current()->ReleaseProcess(); |
| 409 #if defined(USE_AURA) | 406 #if defined(USE_AURA) |
| 410 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( | 407 // It is possible for a RenderWidget to be destroyed before it was embedded |
| 411 switches::kNoUseMusInRenderer)) { | 408 // in a mus window. The RendererWindowTreeClient will leak in such cases. So |
| 412 // It is possible for a RenderWidget to be destroyed before it was embedded | 409 // explicitly delete it here. |
| 413 // in a mus window. The RendererWindowTreeClient will leak in such cases. So | 410 RendererWindowTreeClient::Destroy(routing_id_); |
| 414 // explicitly delete it here. | |
| 415 RendererWindowTreeClient::Destroy(routing_id_); | |
| 416 } | |
| 417 #endif | 411 #endif |
| 418 } | 412 } |
| 419 | 413 |
| 420 // static | 414 // static |
| 421 void RenderWidget::InstallCreateHook( | 415 void RenderWidget::InstallCreateHook( |
| 422 CreateRenderWidgetFunction create_render_widget, | 416 CreateRenderWidgetFunction create_render_widget, |
| 423 RenderWidgetInitializedCallback render_widget_initialized) { | 417 RenderWidgetInitializedCallback render_widget_initialized) { |
| 424 CHECK(!g_create_render_widget && !g_render_widget_initialized); | 418 CHECK(!g_create_render_widget && !g_render_widget_initialized); |
| 425 g_create_render_widget = create_render_widget; | 419 g_create_render_widget = create_render_widget; |
| 426 g_render_widget_initialized = render_widget_initialized; | 420 g_render_widget_initialized = render_widget_initialized; |
| (...skipping 1897 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2324 // browser side (https://crbug.com/669219). | 2318 // browser side (https://crbug.com/669219). |
| 2325 // If there is no WebFrameWidget, then there will be no | 2319 // If there is no WebFrameWidget, then there will be no |
| 2326 // InputMethodControllers for a WebLocalFrame. | 2320 // InputMethodControllers for a WebLocalFrame. |
| 2327 return nullptr; | 2321 return nullptr; |
| 2328 } | 2322 } |
| 2329 return static_cast<blink::WebFrameWidget*>(GetWebWidget()) | 2323 return static_cast<blink::WebFrameWidget*>(GetWebWidget()) |
| 2330 ->getActiveWebInputMethodController(); | 2324 ->getActiveWebInputMethodController(); |
| 2331 } | 2325 } |
| 2332 | 2326 |
| 2333 } // namespace content | 2327 } // namespace content |
| OLD | NEW |