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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_mac.h

Issue 370513002: Mac ÜC: Make resize smooth (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@enable_uc_for_reals
Patch Set: Created 6 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 unified diff | Download patch
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 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_
6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_
7 7
8 #import <Cocoa/Cocoa.h> 8 #import <Cocoa/Cocoa.h>
9 #include <IOSurface/IOSurfaceAPI.h> 9 #include <IOSurface/IOSurfaceAPI.h>
10 #include <list> 10 #include <list>
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 scoped_refptr<CompositingIOSurfaceMac> compositing_iosurface_; 435 scoped_refptr<CompositingIOSurfaceMac> compositing_iosurface_;
436 scoped_refptr<CompositingIOSurfaceContext> compositing_iosurface_context_; 436 scoped_refptr<CompositingIOSurfaceContext> compositing_iosurface_context_;
437 437
438 // Delegated frame management and compositior. 438 // Delegated frame management and compositior.
439 scoped_ptr<DelegatedFrameHost> delegated_frame_host_; 439 scoped_ptr<DelegatedFrameHost> delegated_frame_host_;
440 scoped_ptr<ui::Layer> root_layer_; 440 scoped_ptr<ui::Layer> root_layer_;
441 441
442 // Container for the NSView drawn by the browser compositor. 442 // Container for the NSView drawn by the browser compositor.
443 scoped_ptr<BrowserCompositorViewMac> browser_compositor_view_; 443 scoped_ptr<BrowserCompositorViewMac> browser_compositor_view_;
444 444
445 // Set when the browser compositor is requested to paint, and unset when the
446 // browser compositor paints in DoBrowserCompositorPendingPaint.
447 bool browser_compositor_has_pending_paint_;
448
445 // Placeholder that is allocated while browser_compositor_view_ is NULL, 449 // Placeholder that is allocated while browser_compositor_view_ is NULL,
446 // indicating that a BrowserCompositorViewMac may be allocated. This is to 450 // indicating that a BrowserCompositorViewMac may be allocated. This is to
447 // help in recycling the internals of BrowserCompositorViewMac. 451 // help in recycling the internals of BrowserCompositorViewMac.
448 scoped_ptr<BrowserCompositorViewPlaceholderMac> 452 scoped_ptr<BrowserCompositorViewPlaceholderMac>
449 browser_compositor_view_placeholder_; 453 browser_compositor_view_placeholder_;
450 454
451 // This holds the current software compositing framebuffer, if any. 455 // This holds the current software compositing framebuffer, if any.
452 scoped_ptr<SoftwareFrameManager> software_frame_manager_; 456 scoped_ptr<SoftwareFrameManager> software_frame_manager_;
453 457
454 // Latency info to send back when the next frame appears on the 458 // Latency info to send back when the next frame appears on the
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 virtual gfx::Size DesiredFrameSize() OVERRIDE; 522 virtual gfx::Size DesiredFrameSize() OVERRIDE;
519 virtual float CurrentDeviceScaleFactor() OVERRIDE; 523 virtual float CurrentDeviceScaleFactor() OVERRIDE;
520 virtual gfx::Size ConvertViewSizeToPixel(const gfx::Size& size) OVERRIDE; 524 virtual gfx::Size ConvertViewSizeToPixel(const gfx::Size& size) OVERRIDE;
521 virtual DelegatedFrameHost* GetDelegatedFrameHost() const OVERRIDE; 525 virtual DelegatedFrameHost* GetDelegatedFrameHost() const OVERRIDE;
522 526
523 // BrowserCompositorViewMacClient implementation. 527 // BrowserCompositorViewMacClient implementation.
524 virtual void BrowserCompositorViewFrameSwapped( 528 virtual void BrowserCompositorViewFrameSwapped(
525 const std::vector<ui::LatencyInfo>& latency_info) OVERRIDE; 529 const std::vector<ui::LatencyInfo>& latency_info) OVERRIDE;
526 virtual NSView* BrowserCompositorSuperview() OVERRIDE; 530 virtual NSView* BrowserCompositorSuperview() OVERRIDE;
527 virtual ui::Layer* BrowserCompositorRootLayer() OVERRIDE; 531 virtual ui::Layer* BrowserCompositorRootLayer() OVERRIDE;
532 virtual bool BrowserCompositorShouldDrawImmediately() OVERRIDE;
528 533
529 private: 534 private:
530 friend class RenderWidgetHostViewMacTest; 535 friend class RenderWidgetHostViewMacTest;
531 536
532 struct PendingSwapAck { 537 struct PendingSwapAck {
533 PendingSwapAck(int32 route_id, int gpu_host_id, int32 renderer_id) 538 PendingSwapAck(int32 route_id, int gpu_host_id, int32 renderer_id)
534 : route_id(route_id), 539 : route_id(route_id),
535 gpu_host_id(gpu_host_id), 540 gpu_host_id(gpu_host_id),
536 renderer_id(renderer_id) {} 541 renderer_id(renderer_id) {}
537 int32 route_id; 542 int32 route_id;
538 int gpu_host_id; 543 int gpu_host_id;
539 int32 renderer_id; 544 int32 renderer_id;
540 }; 545 };
541 scoped_ptr<PendingSwapAck> pending_swap_ack_; 546 scoped_ptr<PendingSwapAck> pending_swap_ack_;
542 void AddPendingSwapAck(int32 route_id, int gpu_host_id, int32 renderer_id); 547 void AddPendingSwapAck(int32 route_id, int gpu_host_id, int32 renderer_id);
543 548
544 // Returns whether this render view is a popup (autocomplete window). 549 // Returns whether this render view is a popup (autocomplete window).
545 bool IsPopup() const; 550 bool IsPopup() const;
546 551
547 // Shuts down the render_widget_host_. This is a separate function so we can 552 // Shuts down the render_widget_host_. This is a separate function so we can
548 // invoke it from the message loop. 553 // invoke it from the message loop.
549 void ShutdownHost(); 554 void ShutdownHost();
550 555
551 void EnsureBrowserCompositorView(); 556 void EnsureBrowserCompositorView();
552 void DestroyBrowserCompositorView(); 557 void DestroyBrowserCompositorView();
558 void DoBrowserCompositorPendingPaint();
553 559
554 void EnsureSoftwareLayer(); 560 void EnsureSoftwareLayer();
555 void DestroySoftwareLayer(); 561 void DestroySoftwareLayer();
556 562
557 bool EnsureCompositedIOSurface() WARN_UNUSED_RESULT; 563 bool EnsureCompositedIOSurface() WARN_UNUSED_RESULT;
558 void EnsureCompositedIOSurfaceLayer(); 564 void EnsureCompositedIOSurfaceLayer();
559 enum DestroyCompositedIOSurfaceLayerBehavior { 565 enum DestroyCompositedIOSurfaceLayerBehavior {
560 kLeaveLayerInHierarchy, 566 kLeaveLayerInHierarchy,
561 kRemoveLayerFromHierarchy, 567 kRemoveLayerFromHierarchy,
562 }; 568 };
(...skipping 21 matching lines...) Expand all
584 void SendVSyncParametersToRenderer(); 590 void SendVSyncParametersToRenderer();
585 591
586 // The associated view. This is weak and is inserted into the view hierarchy 592 // The associated view. This is weak and is inserted into the view hierarchy
587 // to own this RenderWidgetHostViewMac object. Set to nil at the start of the 593 // to own this RenderWidgetHostViewMac object. Set to nil at the start of the
588 // destructor. 594 // destructor.
589 RenderWidgetHostViewCocoa* cocoa_view_; 595 RenderWidgetHostViewCocoa* cocoa_view_;
590 596
591 // Indicates if the page is loading. 597 // Indicates if the page is loading.
592 bool is_loading_; 598 bool is_loading_;
593 599
600 // Indicates if the view is currently stalled waiting for a new frame to come
601 // in.
602 bool is_paused_for_resize_or_repaint_;
603
594 // The text to be shown in the tooltip, supplied by the renderer. 604 // The text to be shown in the tooltip, supplied by the renderer.
595 base::string16 tooltip_text_; 605 base::string16 tooltip_text_;
596 606
597 // Factory used to safely scope delayed calls to ShutdownHost(). 607 // Factory used to safely scope delayed calls to ShutdownHost().
598 base::WeakPtrFactory<RenderWidgetHostViewMac> weak_factory_; 608 base::WeakPtrFactory<RenderWidgetHostViewMac> weak_factory_;
599 609
600 // selected text on the renderer. 610 // selected text on the renderer.
601 std::string selected_text_; 611 std::string selected_text_;
602 612
603 // The window used for popup widgets. 613 // The window used for popup widgets.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 scoped_ptr<RenderWidgetHostViewFrameSubscriber> frame_subscriber_; 647 scoped_ptr<RenderWidgetHostViewFrameSubscriber> frame_subscriber_;
638 648
639 base::WeakPtrFactory<RenderWidgetHostViewMac> 649 base::WeakPtrFactory<RenderWidgetHostViewMac>
640 software_frame_weak_ptr_factory_; 650 software_frame_weak_ptr_factory_;
641 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewMac); 651 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewMac);
642 }; 652 };
643 653
644 } // namespace content 654 } // namespace content
645 655
646 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ 656 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698