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

Side by Side Diff: Source/web/WebViewImpl.h

Issue 517043003: Move Frame to the Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase past r181245 conflict Created 6 years, 3 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 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 17 matching lines...) Expand all
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef WebViewImpl_h 31 #ifndef WebViewImpl_h
32 #define WebViewImpl_h 32 #define WebViewImpl_h
33 33
34 #include "core/page/PagePopupDriver.h" 34 #include "core/page/PagePopupDriver.h"
35 #include "platform/geometry/IntPoint.h" 35 #include "platform/geometry/IntPoint.h"
36 #include "platform/geometry/IntRect.h" 36 #include "platform/geometry/IntRect.h"
37 #include "platform/graphics/GraphicsLayer.h" 37 #include "platform/graphics/GraphicsLayer.h"
38 #include "platform/heap/Handle.h"
38 #include "public/platform/WebGestureCurveTarget.h" 39 #include "public/platform/WebGestureCurveTarget.h"
39 #include "public/platform/WebLayer.h" 40 #include "public/platform/WebLayer.h"
40 #include "public/platform/WebPoint.h" 41 #include "public/platform/WebPoint.h"
41 #include "public/platform/WebRect.h" 42 #include "public/platform/WebRect.h"
42 #include "public/platform/WebSize.h" 43 #include "public/platform/WebSize.h"
43 #include "public/platform/WebString.h" 44 #include "public/platform/WebString.h"
44 #include "public/web/WebInputEvent.h" 45 #include "public/web/WebInputEvent.h"
45 #include "public/web/WebNavigationPolicy.h" 46 #include "public/web/WebNavigationPolicy.h"
46 #include "public/web/WebView.h" 47 #include "public/web/WebView.h"
47 #include "web/BackForwardClientImpl.h" 48 #include "web/BackForwardClientImpl.h"
(...skipping 17 matching lines...) Expand all
65 class DataObject; 66 class DataObject;
66 class Frame; 67 class Frame;
67 class FullscreenController; 68 class FullscreenController;
68 class LinkHighlight; 69 class LinkHighlight;
69 class PopupContainer; 70 class PopupContainer;
70 class RenderLayerCompositor; 71 class RenderLayerCompositor;
71 class UserGestureToken; 72 class UserGestureToken;
72 class WebActiveGestureAnimation; 73 class WebActiveGestureAnimation;
73 class WebDevToolsAgentPrivate; 74 class WebDevToolsAgentPrivate;
74 class WebLocalFrameImpl; 75 class WebLocalFrameImpl;
76 class WebRemoteFrameImpl;
75 class WebImage; 77 class WebImage;
76 class WebPagePopupImpl; 78 class WebPagePopupImpl;
77 class WebPlugin; 79 class WebPlugin;
78 class WebSettingsImpl; 80 class WebSettingsImpl;
79 81
80 class WebViewImpl FINAL : public WebView 82 class WebViewImpl FINAL : public WebView
81 , public RefCounted<WebViewImpl> 83 , public RefCounted<WebViewImpl>
82 , public WebGestureCurveTarget 84 , public WebGestureCurveTarget
83 , public PagePopupDriver 85 , public PagePopupDriver
84 , public PageWidgetEventHandler { 86 , public PageWidgetEventHandler {
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 bool m_fixedLayoutSizeLock; 590 bool m_fixedLayoutSizeLock;
589 // If true, automatically resize the render view around its content. 591 // If true, automatically resize the render view around its content.
590 bool m_shouldAutoResize; 592 bool m_shouldAutoResize;
591 // The lower bound on the size when auto-resizing. 593 // The lower bound on the size when auto-resizing.
592 IntSize m_minAutoSize; 594 IntSize m_minAutoSize;
593 // The upper bound on the size when auto-resizing. 595 // The upper bound on the size when auto-resizing.
594 IntSize m_maxAutoSize; 596 IntSize m_maxAutoSize;
595 597
596 OwnPtrWillBePersistent<Page> m_page; 598 OwnPtrWillBePersistent<Page> m_page;
597 599
600 #if ENABLE(OILPAN)
601 // With Oilpan, the WebViewImpl object keeps a strong reference to one kind of main
602 // frame, so as to keep it alive until the view lets it go.
603 //
604 // In the non-Oilpan case, the ref-counted frame is instead created and retu rned with
605 // a ref count that must be balanced by eventually calling close() on the
606 // Web*FrameImpl object. That close() call is also assumed for Oilpan, but w e need
607 // to keep the object alive until that time. Hence these mutually-exclusive Persistent<>s.
608 Persistent<WebLocalFrameImpl> m_localMainFrame;
609 Persistent<WebRemoteFrameImpl> m_remoteMainFrame;
610 #endif
611
598 // An object that can be used to manipulate m_page->settings() without linki ng 612 // An object that can be used to manipulate m_page->settings() without linki ng
599 // against WebCore. This is lazily allocated the first time GetWebSettings() 613 // against WebCore. This is lazily allocated the first time GetWebSettings()
600 // is called. 614 // is called.
601 OwnPtr<WebSettingsImpl> m_webSettings; 615 OwnPtr<WebSettingsImpl> m_webSettings;
602 616
603 // A copy of the web drop data object we received from the browser. 617 // A copy of the web drop data object we received from the browser.
604 RefPtrWillBePersistent<DataObject> m_currentDragData; 618 RefPtrWillBePersistent<DataObject> m_currentDragData;
605 619
606 // The point relative to the client area where the mouse was last pressed 620 // The point relative to the client area where the mouse was last pressed
607 // down. This is used by the drag client to determine what was under the 621 // down. This is used by the drag client to determine what was under the
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 bool m_recreatingGraphicsContext; 707 bool m_recreatingGraphicsContext;
694 static const WebInputEvent* m_currentInputEvent; 708 static const WebInputEvent* m_currentInputEvent;
695 709
696 MediaKeysClientImpl m_mediaKeysClientImpl; 710 MediaKeysClientImpl m_mediaKeysClientImpl;
697 OwnPtr<WebActiveGestureAnimation> m_gestureAnimation; 711 OwnPtr<WebActiveGestureAnimation> m_gestureAnimation;
698 WebPoint m_positionOnFlingStart; 712 WebPoint m_positionOnFlingStart;
699 WebPoint m_globalPositionOnFlingStart; 713 WebPoint m_globalPositionOnFlingStart;
700 int m_flingModifier; 714 int m_flingModifier;
701 bool m_flingSourceDevice; 715 bool m_flingSourceDevice;
702 Vector<OwnPtr<LinkHighlight> > m_linkHighlights; 716 Vector<OwnPtr<LinkHighlight> > m_linkHighlights;
703 OwnPtr<FullscreenController> m_fullscreenController; 717 OwnPtrWillBePersistent<FullscreenController> m_fullscreenController;
704 718
705 bool m_showFPSCounter; 719 bool m_showFPSCounter;
706 bool m_showPaintRects; 720 bool m_showPaintRects;
707 bool m_showDebugBorders; 721 bool m_showDebugBorders;
708 bool m_continuousPaintingEnabled; 722 bool m_continuousPaintingEnabled;
709 bool m_showScrollBottleneckRects; 723 bool m_showScrollBottleneckRects;
710 WebColor m_baseBackgroundColor; 724 WebColor m_baseBackgroundColor;
711 WebColor m_backgroundColorOverride; 725 WebColor m_backgroundColorOverride;
712 float m_zoomFactorOverride; 726 float m_zoomFactorOverride;
713 727
714 bool m_userGestureObserved; 728 bool m_userGestureObserved;
715 }; 729 };
716 730
717 // We have no ways to check if the specified WebView is an instance of 731 // We have no ways to check if the specified WebView is an instance of
718 // WebViewImpl because WebViewImpl is the only implementation of WebView. 732 // WebViewImpl because WebViewImpl is the only implementation of WebView.
719 DEFINE_TYPE_CASTS(WebViewImpl, WebView, webView, true, true); 733 DEFINE_TYPE_CASTS(WebViewImpl, WebView, webView, true, true);
720 734
721 } // namespace blink 735 } // namespace blink
722 736
723 #endif 737 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698