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

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

Issue 133483002: Fix idle handlers not being called. The problem was that RenderThread::AddRoute was assuming that e… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 6 years, 11 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
« no previous file with comments | « content/renderer/render_view_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "content/renderer/render_widget.h" 5 #include "content/renderer/render_widget.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/debug/trace_event_synthetic_delay.h" 10 #include "base/debug/trace_event_synthetic_delay.h"
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 opener_id_ = opener_id; 458 opener_id_ = opener_id;
459 459
460 webwidget_ = web_widget; 460 webwidget_ = web_widget;
461 461
462 bool result = RenderThread::Get()->Send(create_widget_message); 462 bool result = RenderThread::Get()->Send(create_widget_message);
463 if (result) { 463 if (result) {
464 RenderThread::Get()->AddRoute(routing_id_, this); 464 RenderThread::Get()->AddRoute(routing_id_, this);
465 // Take a reference on behalf of the RenderThread. This will be balanced 465 // Take a reference on behalf of the RenderThread. This will be balanced
466 // when we receive ViewMsg_Close. 466 // when we receive ViewMsg_Close.
467 AddRef(); 467 AddRef();
468 if (is_hidden_) 468 if (RenderThreadImpl::current()) {
469 RenderThread::Get()->WidgetHidden(); 469 RenderThreadImpl::current()->WidgetCreated();
470 if (is_hidden_)
471 RenderThreadImpl::current()->WidgetHidden();
472 }
470 return true; 473 return true;
471 } else { 474 } else {
472 // The above Send can fail when the tab is closing. 475 // The above Send can fail when the tab is closing.
473 return false; 476 return false;
474 } 477 }
475 } 478 }
476 479
477 // This is used to complete pending inits and non-pending inits. 480 // This is used to complete pending inits and non-pending inits.
478 void RenderWidget::CompleteInit() { 481 void RenderWidget::CompleteInit() {
479 DCHECK(routing_id_ != MSG_ROUTING_NONE); 482 DCHECK(routing_id_ != MSG_ROUTING_NONE);
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 initial_pos_ = new_position; 718 initial_pos_ = new_position;
716 } 719 }
717 720
718 void RenderWidget::OnClose() { 721 void RenderWidget::OnClose() {
719 if (closing_) 722 if (closing_)
720 return; 723 return;
721 closing_ = true; 724 closing_ = true;
722 725
723 // Browser correspondence is no longer needed at this point. 726 // Browser correspondence is no longer needed at this point.
724 if (routing_id_ != MSG_ROUTING_NONE) { 727 if (routing_id_ != MSG_ROUTING_NONE) {
728 if (RenderThreadImpl::current())
729 RenderThreadImpl::current()->WidgetDestroyed();
725 RenderThread::Get()->RemoveRoute(routing_id_); 730 RenderThread::Get()->RemoveRoute(routing_id_);
726 SetHidden(false); 731 SetHidden(false);
727 } 732 }
728 733
729 // If there is a Send call on the stack, then it could be dangerous to close 734 // If there is a Send call on the stack, then it could be dangerous to close
730 // now. Post a task that only gets invoked when there are no nested message 735 // now. Post a task that only gets invoked when there are no nested message
731 // loops. 736 // loops.
732 base::MessageLoop::current()->PostNonNestableTask( 737 base::MessageLoop::current()->PostNonNestableTask(
733 FROM_HERE, base::Bind(&RenderWidget::Close, this)); 738 FROM_HERE, base::Bind(&RenderWidget::Close, this));
734 739
(...skipping 1641 matching lines...) Expand 10 before | Expand all | Expand 10 after
2376 return gfx::Vector2d(); 2381 return gfx::Vector2d();
2377 } 2382 }
2378 2383
2379 void RenderWidget::SetHidden(bool hidden) { 2384 void RenderWidget::SetHidden(bool hidden) {
2380 if (is_hidden_ == hidden) 2385 if (is_hidden_ == hidden)
2381 return; 2386 return;
2382 2387
2383 // The status has changed. Tell the RenderThread about it. 2388 // The status has changed. Tell the RenderThread about it.
2384 is_hidden_ = hidden; 2389 is_hidden_ = hidden;
2385 if (is_hidden_) 2390 if (is_hidden_)
2386 RenderThread::Get()->WidgetHidden(); 2391 RenderThreadImpl::current()->WidgetHidden();
2387 else 2392 else
2388 RenderThread::Get()->WidgetRestored(); 2393 RenderThreadImpl::current()->WidgetRestored();
2389 } 2394 }
2390 2395
2391 void RenderWidget::WillToggleFullscreen() { 2396 void RenderWidget::WillToggleFullscreen() {
2392 if (!webwidget_) 2397 if (!webwidget_)
2393 return; 2398 return;
2394 2399
2395 if (is_fullscreen_) { 2400 if (is_fullscreen_) {
2396 webwidget_->willExitFullScreen(); 2401 webwidget_->willExitFullScreen();
2397 } else { 2402 } else {
2398 webwidget_->willEnterFullScreen(); 2403 webwidget_->willEnterFullScreen();
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
2870 surface_id(), 2875 surface_id(),
2871 GetURLForGraphicsContext3D(), 2876 GetURLForGraphicsContext3D(),
2872 gpu_channel_host.get(), 2877 gpu_channel_host.get(),
2873 attributes, 2878 attributes,
2874 false /* bind generates resources */, 2879 false /* bind generates resources */,
2875 limits)); 2880 limits));
2876 return context.Pass(); 2881 return context.Pass();
2877 } 2882 }
2878 2883
2879 } // namespace content 2884 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_view_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698