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

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

Issue 857213003: Refactor sudden termination (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 extra_data = &kEmptyData; 470 extra_data = &kEmptyData;
471 CommonNavigationParams params; 471 CommonNavigationParams params;
472 params.url = request->url(); 472 params.url = request->url();
473 params.referrer = Referrer( 473 params.referrer = Referrer(
474 GURL(request->httpHeaderField(WebString::fromUTF8("Referer")).latin1()), 474 GURL(request->httpHeaderField(WebString::fromUTF8("Referer")).latin1()),
475 request->referrerPolicy()); 475 request->referrerPolicy());
476 params.transition = extra_data->transition_type(); 476 params.transition = extra_data->transition_type();
477 return params; 477 return params;
478 } 478 }
479 479
480 // Returns true if the disablers tracked by counter go from being absent to
Charlie Reis 2015/01/23 06:01:32 nit: |counter|
clamy 2015/01/26 16:38:40 Removed this function which was no longer needed.
481 // present or vice-versa.
482 bool HandleSuddenTerminationDisablerChange(int* counter, int variation) {
483 bool presence_before = *counter;
484 *counter += variation;
485 DCHECK(*counter >= 0);
486 bool presence_after = *counter;
487 return presence_before == presence_after;
488 }
489
480 #if !defined(OS_ANDROID) 490 #if !defined(OS_ANDROID)
481 media::Context3D GetSharedMainThreadContext3D() { 491 media::Context3D GetSharedMainThreadContext3D() {
482 cc::ContextProvider* provider = 492 cc::ContextProvider* provider =
483 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 493 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
484 if (!provider) 494 if (!provider)
485 return media::Context3D(); 495 return media::Context3D();
486 return media::Context3D(provider->ContextGL(), provider->GrContext()); 496 return media::Context3D(provider->ContextGL(), provider->GrContext());
487 } 497 }
488 #endif 498 #endif
489 499
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 #endif 656 #endif
647 #if defined(VIDEO_HOLE) 657 #if defined(VIDEO_HOLE)
648 contains_media_player_(false), 658 contains_media_player_(false),
649 #endif 659 #endif
650 geolocation_dispatcher_(NULL), 660 geolocation_dispatcher_(NULL),
651 push_messaging_dispatcher_(NULL), 661 push_messaging_dispatcher_(NULL),
652 screen_orientation_dispatcher_(NULL), 662 screen_orientation_dispatcher_(NULL),
653 manifest_manager_(NULL), 663 manifest_manager_(NULL),
654 accessibility_mode_(AccessibilityModeOff), 664 accessibility_mode_(AccessibilityModeOff),
655 renderer_accessibility_(NULL), 665 renderer_accessibility_(NULL),
666 beforeunload_handlers_(0),
667 unload_handlers_(0),
656 weak_factory_(this) { 668 weak_factory_(this) {
657 std::pair<RoutingIDFrameMap::iterator, bool> result = 669 std::pair<RoutingIDFrameMap::iterator, bool> result =
658 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this)); 670 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this));
659 CHECK(result.second) << "Inserting a duplicate item."; 671 CHECK(result.second) << "Inserting a duplicate item.";
660 672
661 RenderThread::Get()->AddRoute(routing_id_, this); 673 RenderThread::Get()->AddRoute(routing_id_, this);
662 674
663 render_view_->RegisterRenderFrame(this); 675 render_view_->RegisterRenderFrame(this);
664 676
665 // Everything below subclasses RenderFrameObserver and is automatically 677 // Everything below subclasses RenderFrameObserver and is automatically
(...skipping 2867 matching lines...) Expand 10 before | Expand all | Expand 10 after
3533 bool RenderFrameImpl::enterFullscreen() { 3545 bool RenderFrameImpl::enterFullscreen() {
3534 Send(new FrameHostMsg_ToggleFullscreen(routing_id_, true)); 3546 Send(new FrameHostMsg_ToggleFullscreen(routing_id_, true));
3535 return true; 3547 return true;
3536 } 3548 }
3537 3549
3538 bool RenderFrameImpl::exitFullscreen() { 3550 bool RenderFrameImpl::exitFullscreen() {
3539 Send(new FrameHostMsg_ToggleFullscreen(routing_id_, false)); 3551 Send(new FrameHostMsg_ToggleFullscreen(routing_id_, false));
3540 return true; 3552 return true;
3541 } 3553 }
3542 3554
3555 void RenderFrameImpl::suddenTerminationDisablerChanged(
Charlie Reis 2015/01/23 06:01:32 This seems unnecessarily complex. Why do we need
clamy 2015/01/26 16:38:40 Done.
3556 int variation,
3557 blink::WebFrameClient::SuddenTerminationDisablerType type) {
3558 int* relevant_counter;
3559 switch (type) {
3560 case blink::WebFrameClient::BeforeUnloadHandler:
3561 relevant_counter = &beforeunload_handlers_;
3562 break;
3563 case blink::WebFrameClient::UnloadHandler:
3564 relevant_counter = &unload_handlers_;
3565 break;
3566 default:
3567 NOTREACHED();
3568 }
3569 DCHECK(relevant_counter);
3570
3571 bool presence_changed = HandleSuddenTerminationDisablerChange(
3572 relevant_counter, variation);
3573 if (!presence_changed)
3574 return;
3575
3576 // The presence status of one of the sudden termination disablers changed,
3577 // inform the browser.
3578 switch (type) {
3579 case blink::WebFrameClient::BeforeUnloadHandler:
3580 Send(new FrameHostMsg_BeforeUnloadHandlersPresenceChanged(
3581 routing_id_, beforeunload_handlers_));
Charlie Reis 2015/01/23 06:01:32 This is a count, not a bool. Prefix with !! to ma
clamy 2015/01/26 16:38:40 Switched to booleans.
3582 break;
3583 case blink::WebFrameClient::UnloadHandler:
3584 Send(new FrameHostMsg_UnloadHandlersPresenceChanged(
3585 routing_id_, unload_handlers_));
3586 break;
3587 default:
3588 NOTREACHED();
3589 }
3590 }
3591
3543 void RenderFrameImpl::DidPlay(blink::WebMediaPlayer* player) { 3592 void RenderFrameImpl::DidPlay(blink::WebMediaPlayer* player) {
3544 Send(new FrameHostMsg_MediaPlayingNotification( 3593 Send(new FrameHostMsg_MediaPlayingNotification(
3545 routing_id_, reinterpret_cast<int64>(player), player->hasVideo(), 3594 routing_id_, reinterpret_cast<int64>(player), player->hasVideo(),
3546 player->hasAudio(), player->isRemote())); 3595 player->hasAudio(), player->isRemote()));
3547 } 3596 }
3548 3597
3549 void RenderFrameImpl::DidPause(blink::WebMediaPlayer* player) { 3598 void RenderFrameImpl::DidPause(blink::WebMediaPlayer* player) {
3550 Send(new FrameHostMsg_MediaPausedNotification( 3599 Send(new FrameHostMsg_MediaPausedNotification(
3551 routing_id_, reinterpret_cast<int64>(player))); 3600 routing_id_, reinterpret_cast<int64>(player)));
3552 } 3601 }
(...skipping 850 matching lines...) Expand 10 before | Expand all | Expand 10 after
4403 4452
4404 #if defined(ENABLE_BROWSER_CDMS) 4453 #if defined(ENABLE_BROWSER_CDMS)
4405 RendererCdmManager* RenderFrameImpl::GetCdmManager() { 4454 RendererCdmManager* RenderFrameImpl::GetCdmManager() {
4406 if (!cdm_manager_) 4455 if (!cdm_manager_)
4407 cdm_manager_ = new RendererCdmManager(this); 4456 cdm_manager_ = new RendererCdmManager(this);
4408 return cdm_manager_; 4457 return cdm_manager_;
4409 } 4458 }
4410 #endif // defined(ENABLE_BROWSER_CDMS) 4459 #endif // defined(ENABLE_BROWSER_CDMS)
4411 4460
4412 } // namespace content 4461 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698