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

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac.mm

Issue 2156333002: Mac: Clean up visibility state tracking (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2785
Patch Set: Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_mac.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/render_widget_host_view_mac.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index b7991fa5e6fafa89632fab2eee1179d1d2457c0f..284f4fdd8e0c73b8ff545fdd98032577603870ba 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -48,7 +48,6 @@
#include "content/browser/renderer_host/render_widget_host_input_event_router.h"
#import "content/browser/renderer_host/render_widget_host_view_mac_dictionary_helper.h"
#import "content/browser/renderer_host/render_widget_host_view_mac_editcommand_helper.h"
-#include "content/browser/renderer_host/resize_lock.h"
#import "content/browser/renderer_host/text_input_client_mac.h"
#include "content/common/accessibility_messages.h"
#include "content/common/edit_command.h"
@@ -403,22 +402,13 @@ float FlipYFromRectToScreen(float y, float rect_height) {
namespace content {
////////////////////////////////////////////////////////////////////////////////
-// DelegatedFrameHost, public:
+// BrowserCompositorMacClient, public:
-int RenderWidgetHostViewMac::DelegatedFrameHostGetGpuMemoryBufferClientId()
- const {
- return render_widget_host_->GetProcess()->GetID();
-}
-
-ui::Layer* RenderWidgetHostViewMac::DelegatedFrameHostGetLayer() const {
- return browser_compositor_->GetRootLayer();
-}
-
-bool RenderWidgetHostViewMac::DelegatedFrameHostIsVisible() const {
- return !render_widget_host_->is_hidden();
+NSView* RenderWidgetHostViewMac::BrowserCompositorMacGetNSView() const {
+ return cocoa_view_;
}
-SkColor RenderWidgetHostViewMac::DelegatedFrameHostGetGutterColor(
+SkColor RenderWidgetHostViewMac::BrowserCompositorMacGetGutterColor(
SkColor color) const {
// When making an element on the page fullscreen the element's background
// may not match the page's, so use black as the gutter color to avoid
@@ -430,92 +420,35 @@ float FlipYFromRectToScreen(float y, float rect_height) {
return color;
}
-gfx::Size RenderWidgetHostViewMac::DelegatedFrameHostDesiredSizeInDIP() const {
- return GetViewBounds().size();
-}
-
-bool RenderWidgetHostViewMac::DelegatedFrameCanCreateResizeLock() const {
- // Mac uses the RenderWidgetResizeHelper instead of a resize lock.
- return false;
-}
-
-std::unique_ptr<ResizeLock>
-RenderWidgetHostViewMac::DelegatedFrameHostCreateResizeLock(
- bool defer_compositor_lock) {
- NOTREACHED();
- return std::unique_ptr<ResizeLock>();
-}
-
-void RenderWidgetHostViewMac::DelegatedFrameHostResizeLockWasReleased() {
- NOTREACHED();
-}
-
-void RenderWidgetHostViewMac::DelegatedFrameHostSendCompositorSwapAck(
+void RenderWidgetHostViewMac::BrowserCompositorMacSendCompositorSwapAck(
int output_surface_id,
const cc::CompositorFrameAck& ack) {
render_widget_host_->Send(new ViewMsg_SwapCompositorFrameAck(
render_widget_host_->GetRoutingID(), output_surface_id, ack));
}
-void RenderWidgetHostViewMac::DelegatedFrameHostSendReclaimCompositorResources(
- int output_surface_id,
- const cc::CompositorFrameAck& ack) {
+void RenderWidgetHostViewMac::
+ BrowserCompositorMacSendReclaimCompositorResources(
+ int output_surface_id,
+ const cc::CompositorFrameAck& ack) {
render_widget_host_->Send(new ViewMsg_ReclaimCompositorResources(
render_widget_host_->GetRoutingID(), output_surface_id, ack));
}
-void RenderWidgetHostViewMac::DelegatedFrameHostOnLostCompositorResources() {
+void RenderWidgetHostViewMac::BrowserCompositorMacOnLostCompositorResources() {
render_widget_host_->ScheduleComposite();
}
-void RenderWidgetHostViewMac::DelegatedFrameHostUpdateVSyncParameters(
+void RenderWidgetHostViewMac::BrowserCompositorMacUpdateVSyncParameters(
const base::TimeTicks& timebase,
const base::TimeDelta& interval) {
render_widget_host_->UpdateVSyncParameters(timebase, interval);
}
-void RenderWidgetHostViewMac::SetBeginFrameSource(
- cc::BeginFrameSource* source) {
- if (begin_frame_source_ && needs_begin_frames_)
- begin_frame_source_->RemoveObserver(this);
- begin_frame_source_ = source;
- if (begin_frame_source_ && needs_begin_frames_)
- begin_frame_source_->AddObserver(this);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// cc::BeginFrameSourceBase, public:
-
-void RenderWidgetHostViewMac::OnSetNeedsBeginFrames(bool needs_begin_frames) {
- if (needs_begin_frames_ == needs_begin_frames)
- return;
-
- needs_begin_frames_ = needs_begin_frames;
- if (begin_frame_source_) {
- if (needs_begin_frames_)
- begin_frame_source_->AddObserver(this);
- else
- begin_frame_source_->RemoveObserver(this);
- }
-}
-
-void RenderWidgetHostViewMac::OnBeginFrame(
+void RenderWidgetHostViewMac::BrowserCompositorMacSendBeginFrame(
const cc::BeginFrameArgs& args) {
- browser_compositor_->GetDelegatedFrameHost()->SetVSyncParameters(
- args.frame_time, args.interval);
render_widget_host_->Send(
new ViewMsg_BeginFrame(render_widget_host_->GetRoutingID(), args));
- last_begin_frame_args_ = args;
-}
-
-const cc::BeginFrameArgs& RenderWidgetHostViewMac::LastUsedBeginFrameArgs()
- const {
- return last_begin_frame_args_;
-}
-
-void RenderWidgetHostViewMac::OnBeginFrameSourcePausedChanged(
- bool paused) {
- // Only used on Android WebView.
}
////////////////////////////////////////////////////////////////////////////////
@@ -561,8 +494,6 @@ float FlipYFromRectToScreen(float y, float rect_height) {
allow_pause_for_resize_or_repaint_(true),
is_guest_view_hack_(is_guest_view_hack),
fullscreen_parent_host_view_(nullptr),
- begin_frame_source_(nullptr),
- needs_begin_frames_(false),
weak_factory_(this) {
// |cocoa_view_| owns us and we will be deleted when |cocoa_view_|
// goes away. Since we autorelease it, our caller must put
@@ -606,8 +537,7 @@ float FlipYFromRectToScreen(float y, float rect_height) {
UnlockMouse();
- // Ensure that the browser compositor is destroyed in a safe order.
- browser_compositor_->Destroy();
+ browser_compositor_.reset();
// We are owned by RenderWidgetHostViewCocoa, so if we go away before the
// RenderWidgetHost does we need to tell it not to hold a stale pointer to
@@ -1017,7 +947,7 @@ float FlipYFromRectToScreen(float y, float rect_height) {
// Delete the delegated frame state, which will reach back into
// render_widget_host_.
- browser_compositor_->Destroy();
+ browser_compositor_.reset();
// Make sure none of our observers send events for us to process after
// we release render_widget_host_.
@@ -1199,6 +1129,10 @@ float FlipYFromRectToScreen(float y, float rect_height) {
}
}
+void RenderWidgetHostViewMac::OnSetNeedsBeginFrames(bool needs_begin_frames) {
+ browser_compositor_->SetNeedsBeginFrames(needs_begin_frames);
+}
+
void RenderWidgetHostViewMac::KillSelf() {
if (!weak_factory_.HasWeakPtrs()) {
[cocoa_view_ setHidden:YES];
@@ -1367,14 +1301,6 @@ float FlipYFromRectToScreen(float y, float rect_height) {
page_at_minimum_scale_ =
frame.metadata.page_scale_factor == frame.metadata.min_page_scale_factor;
if (frame.delegated_frame_data) {
- // TODO(ccameron): This would not be needed if BrowserCompostiorMac were to
- // correctly subscribe to the show and hide notifications for
- // RenderWidgetHostImpl. We do not correctly subscribe to these
- // notifications because we want to set the hide property property only
- // after all notifications (the thumbnailer in particular) have all
- // completed.
- browser_compositor_->SetRenderWidgetHostIsHidden(
- render_widget_host_->is_hidden());
browser_compositor_->SwapCompositorFrame(output_surface_id,
std::move(frame));
SendVSyncParametersToRenderer();
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_mac.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698