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

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

Issue 2850113002: Move WebViewFrameWidget to use WebViewBase rather than WebViewImpl. (Closed)
Patch Set: Fix code review comments. Created 3 years, 7 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
« no previous file with comments | « third_party/WebKit/Source/web/WebViewFrameWidget.cpp ('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 /* 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 26 matching lines...) Expand all
37 #include "core/page/ContextMenuProvider.h" 37 #include "core/page/ContextMenuProvider.h"
38 #include "core/page/EventWithHitTestResults.h" 38 #include "core/page/EventWithHitTestResults.h"
39 #include "platform/animation/CompositorAnimationTimeline.h" 39 #include "platform/animation/CompositorAnimationTimeline.h"
40 #include "platform/geometry/IntPoint.h" 40 #include "platform/geometry/IntPoint.h"
41 #include "platform/geometry/IntRect.h" 41 #include "platform/geometry/IntRect.h"
42 #include "platform/graphics/GraphicsLayer.h" 42 #include "platform/graphics/GraphicsLayer.h"
43 #include "platform/heap/Handle.h" 43 #include "platform/heap/Handle.h"
44 #include "platform/scheduler/child/web_scheduler.h" 44 #include "platform/scheduler/child/web_scheduler.h"
45 #include "platform/wtf/Compiler.h" 45 #include "platform/wtf/Compiler.h"
46 #include "platform/wtf/HashSet.h" 46 #include "platform/wtf/HashSet.h"
47 #include "platform/wtf/RefCounted.h"
48 #include "platform/wtf/Vector.h" 47 #include "platform/wtf/Vector.h"
49 #include "public/platform/WebDisplayMode.h" 48 #include "public/platform/WebDisplayMode.h"
50 #include "public/platform/WebFloatSize.h" 49 #include "public/platform/WebFloatSize.h"
51 #include "public/platform/WebGestureCurveTarget.h" 50 #include "public/platform/WebGestureCurveTarget.h"
52 #include "public/platform/WebGestureEvent.h" 51 #include "public/platform/WebGestureEvent.h"
53 #include "public/platform/WebInputEvent.h" 52 #include "public/platform/WebInputEvent.h"
54 #include "public/platform/WebInputEventResult.h" 53 #include "public/platform/WebInputEventResult.h"
55 #include "public/platform/WebLayer.h" 54 #include "public/platform/WebLayer.h"
56 #include "public/platform/WebPoint.h" 55 #include "public/platform/WebPoint.h"
57 #include "public/platform/WebRect.h" 56 #include "public/platform/WebRect.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 class WebLocalFrame; 90 class WebLocalFrame;
92 class WebLocalFrameImpl; 91 class WebLocalFrameImpl;
93 class CompositorMutatorImpl; 92 class CompositorMutatorImpl;
94 class WebPlugin; 93 class WebPlugin;
95 class WebRemoteFrame; 94 class WebRemoteFrame;
96 class WebSettingsImpl; 95 class WebSettingsImpl;
97 class WebViewScheduler; 96 class WebViewScheduler;
98 97
99 class WEB_EXPORT WebViewImpl final 98 class WEB_EXPORT WebViewImpl final
100 : NON_EXPORTED_BASE(public WebViewBase), 99 : NON_EXPORTED_BASE(public WebViewBase),
101 public RefCounted<WebViewImpl>,
102 NON_EXPORTED_BASE(public WebGestureCurveTarget), 100 NON_EXPORTED_BASE(public WebGestureCurveTarget),
103 public PageWidgetEventHandler, 101 public PageWidgetEventHandler,
104 public WebScheduler::InterventionReporter, 102 public WebScheduler::InterventionReporter,
105 public WebViewScheduler::WebViewSchedulerSettings { 103 public WebViewScheduler::WebViewSchedulerSettings {
106 public: 104 public:
107 static WebViewImpl* Create(WebViewClient*, WebPageVisibilityState); 105 static WebViewImpl* Create(WebViewClient*, WebPageVisibilityState);
108 static HashSet<WebViewImpl*>& AllInstances(); 106 static HashSet<WebViewImpl*>& AllInstances();
109 107
110 // WebWidget methods: 108 // WebWidget methods:
111 void Close() override; 109 void Close() override;
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 258
261 void DidUpdateFullscreenSize() override; 259 void DidUpdateFullscreenSize() override;
262 260
263 float DefaultMinimumPageScaleFactor() const override; 261 float DefaultMinimumPageScaleFactor() const override;
264 float DefaultMaximumPageScaleFactor() const override; 262 float DefaultMaximumPageScaleFactor() const override;
265 float MinimumPageScaleFactor() const override; 263 float MinimumPageScaleFactor() const override;
266 float MaximumPageScaleFactor() const override; 264 float MaximumPageScaleFactor() const override;
267 float ClampPageScaleFactorToLimits(float) const override; 265 float ClampPageScaleFactorToLimits(float) const override;
268 void ResetScaleStateImmediately() override; 266 void ResetScaleStateImmediately() override;
269 267
270 HitTestResult CoreHitTestResultAt(const WebPoint&); 268 HitTestResult CoreHitTestResultAt(const WebPoint&) override;
271 void InvalidateRect(const IntRect&) override; 269 void InvalidateRect(const IntRect&) override;
272 270
273 void SetBaseBackgroundColor(WebColor) override; 271 void SetBaseBackgroundColor(WebColor) override;
274 void SetBaseBackgroundColorOverride(WebColor) override; 272 void SetBaseBackgroundColorOverride(WebColor) override;
275 void ClearBaseBackgroundColorOverride() override; 273 void ClearBaseBackgroundColorOverride() override;
276 void SetBackgroundColorOverride(WebColor) override; 274 void SetBackgroundColorOverride(WebColor) override;
277 void ClearBackgroundColorOverride() override; 275 void ClearBackgroundColorOverride() override;
278 void SetZoomFactorOverride(float) override; 276 void SetZoomFactorOverride(float) override;
279 void SetCompositorDeviceScaleFactorOverride(float) override; 277 void SetCompositorDeviceScaleFactorOverride(float) override;
280 void SetDeviceEmulationTransform(const TransformationMatrix&) override; 278 void SetDeviceEmulationTransform(const TransformationMatrix&) override;
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 LinkHighlightImpl* GetLinkHighlight(int i) { 453 LinkHighlightImpl* GetLinkHighlight(int i) {
456 return link_highlights_[i].get(); 454 return link_highlights_[i].get();
457 } 455 }
458 456
459 WebSettingsImpl* SettingsImpl() override; 457 WebSettingsImpl* SettingsImpl() override;
460 458
461 // Returns the bounding box of the block type node touched by the WebPoint. 459 // Returns the bounding box of the block type node touched by the WebPoint.
462 WebRect ComputeBlockBound(const WebPoint&, bool ignore_clipping); 460 WebRect ComputeBlockBound(const WebPoint&, bool ignore_clipping);
463 461
464 WebLayerTreeView* LayerTreeView() const override { return layer_tree_view_; } 462 WebLayerTreeView* LayerTreeView() const override { return layer_tree_view_; }
465 CompositorAnimationHost* AnimationHost() const { 463 CompositorAnimationHost* AnimationHost() const override {
466 return animation_host_.get(); 464 return animation_host_.get();
467 } 465 }
468 466
469 bool MatchesHeuristicsForGpuRasterizationForTesting() const { 467 bool MatchesHeuristicsForGpuRasterizationForTesting() const {
470 return matches_heuristics_for_gpu_rasterization_; 468 return matches_heuristics_for_gpu_rasterization_;
471 } 469 }
472 470
473 void UpdateBrowserControlsState(WebBrowserControlsState constraint, 471 void UpdateBrowserControlsState(WebBrowserControlsState constraint,
474 WebBrowserControlsState current, 472 WebBrowserControlsState current,
475 bool animate) override; 473 bool animate) override;
476 474
477 BrowserControls& GetBrowserControls(); 475 BrowserControls& GetBrowserControls();
478 // Called anytime browser controls layout height or content offset have 476 // Called anytime browser controls layout height or content offset have
479 // changed. 477 // changed.
480 void DidUpdateBrowserControls() override; 478 void DidUpdateBrowserControls() override;
481 479
482 void ForceNextWebGLContextCreationToFail() override; 480 void ForceNextWebGLContextCreationToFail() override;
483 void ForceNextDrawingBufferCreationToFail() override; 481 void ForceNextDrawingBufferCreationToFail() override;
484 482
485 CompositorWorkerProxyClient* CreateCompositorWorkerProxyClient(); 483 CompositorWorkerProxyClient* CreateCompositorWorkerProxyClient() override;
486 AnimationWorkletProxyClient* CreateAnimationWorkletProxyClient(); 484 AnimationWorkletProxyClient* CreateAnimationWorkletProxyClient() override;
487 485
488 IntSize MainFrameSize() override; 486 IntSize MainFrameSize() override;
489 WebDisplayMode DisplayMode() const override { return display_mode_; } 487 WebDisplayMode DisplayMode() const override { return display_mode_; }
490 488
491 PageScaleConstraintsSet& GetPageScaleConstraintsSet() const override; 489 PageScaleConstraintsSet& GetPageScaleConstraintsSet() const override;
492 490
493 FloatSize ElasticOverscroll() const override { return elastic_overscroll_; } 491 FloatSize ElasticOverscroll() const override { return elastic_overscroll_; }
494 492
495 double LastFrameTimeMonotonic() const override { 493 double LastFrameTimeMonotonic() const override {
496 return last_frame_time_monotonic_; 494 return last_frame_time_monotonic_;
(...skipping 25 matching lines...) Expand all
522 void RefreshPageScaleFactorAfterLayout(); 520 void RefreshPageScaleFactorAfterLayout();
523 IntSize ContentsSize() const; 521 IntSize ContentsSize() const;
524 522
525 void ResizeFrameView(WebLocalFrameImpl* webframe); 523 void ResizeFrameView(WebLocalFrameImpl* webframe);
526 void UpdateICBAndResizeViewport(); 524 void UpdateICBAndResizeViewport();
527 void ResizeViewWhileAnchored(float browser_controls_height, 525 void ResizeViewWhileAnchored(float browser_controls_height,
528 bool browser_controls_shrink_layout); 526 bool browser_controls_shrink_layout);
529 527
530 // Overrides the compositor visibility. See the description of 528 // Overrides the compositor visibility. See the description of
531 // m_overrideCompositorVisibility for more details. 529 // m_overrideCompositorVisibility for more details.
532 void SetCompositorVisibility(bool); 530 void SetCompositorVisibility(bool) override;
533 531
534 // TODO(lfg): Remove once WebViewFrameWidget is deleted. 532 // TODO(lfg): Remove once WebViewFrameWidget is deleted.
535 void ScheduleAnimationForWidget(); 533 void ScheduleAnimationForWidget() override;
536 bool GetCompositionCharacterBounds(WebVector<WebRect>&) override; 534 bool GetCompositionCharacterBounds(WebVector<WebRect>&) override;
537 535
538 void UpdateBaseBackgroundColor(); 536 void UpdateBaseBackgroundColor();
539 537
540 friend class WebView; // So WebView::Create can call our constructor 538 friend class WebView; // So WebView::Create can call our constructor
541 friend class WebViewFrameWidget; 539 friend class WebViewFrameWidget;
542 friend class WTF::RefCounted<WebViewImpl>; 540 friend class WTF::RefCounted<WebViewImpl>;
543 friend void SetCurrentInputEventForTest(const WebInputEvent*); 541 friend void SetCurrentInputEventForTest(const WebInputEvent*);
544 542
545 explicit WebViewImpl(WebViewClient*, WebPageVisibilityState); 543 explicit WebViewImpl(WebViewClient*, WebPageVisibilityState);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 WebGestureDevice) const; 585 WebGestureDevice) const;
588 586
589 void EnablePopupMouseWheelEventListener(WebLocalFrameImpl* local_root); 587 void EnablePopupMouseWheelEventListener(WebLocalFrameImpl* local_root);
590 void DisablePopupMouseWheelEventListener(); 588 void DisablePopupMouseWheelEventListener();
591 589
592 void CancelPagePopup(); 590 void CancelPagePopup();
593 void UpdatePageOverlays(); 591 void UpdatePageOverlays();
594 592
595 float DeviceScaleFactor() const; 593 float DeviceScaleFactor() const;
596 594
597 void SetRootGraphicsLayer(GraphicsLayer*); 595 void SetRootGraphicsLayer(GraphicsLayer*) override;
598 void SetRootLayer(WebLayer*); 596 void SetRootLayer(WebLayer*) override;
599 void AttachCompositorAnimationTimeline(CompositorAnimationTimeline*); 597 void AttachCompositorAnimationTimeline(CompositorAnimationTimeline*);
600 void DetachCompositorAnimationTimeline(CompositorAnimationTimeline*); 598 void DetachCompositorAnimationTimeline(CompositorAnimationTimeline*);
601 599
602 LocalFrame* FocusedLocalFrameInWidget() const; 600 LocalFrame* FocusedLocalFrameInWidget() const;
603 LocalFrame* FocusedLocalFrameAvailableForIme() const; 601 LocalFrame* FocusedLocalFrameAvailableForIme() const;
604 602
605 CompositorMutatorImpl& Mutator(); 603 CompositorMutatorImpl& Mutator();
606 604
607 WebViewClient* client_; // Can be 0 (e.g. unittests, shared workers, etc.) 605 WebViewClient* client_; // Can be 0 (e.g. unittests, shared workers, etc.)
608 WebSpellCheckClient* spell_check_client_; 606 WebSpellCheckClient* spell_check_client_;
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
747 Persistent<ResizeViewportAnchor> resize_viewport_anchor_; 745 Persistent<ResizeViewportAnchor> resize_viewport_anchor_;
748 }; 746 };
749 747
750 // We have no ways to check if the specified WebView is an instance of 748 // We have no ways to check if the specified WebView is an instance of
751 // WebViewImpl because WebViewImpl is the only implementation of WebView. 749 // WebViewImpl because WebViewImpl is the only implementation of WebView.
752 DEFINE_TYPE_CASTS(WebViewImpl, WebView, webView, true, true); 750 DEFINE_TYPE_CASTS(WebViewImpl, WebView, webView, true, true);
753 751
754 } // namespace blink 752 } // namespace blink
755 753
756 #endif 754 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebViewFrameWidget.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698