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

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

Issue 893683003: Implement top controls show/hide functionality for main thread scrolling (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Address nitp Created 5 years, 10 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 66
67 namespace blink { 67 namespace blink {
68 68
69 class DataObject; 69 class DataObject;
70 class Frame; 70 class Frame;
71 class FullscreenController; 71 class FullscreenController;
72 class InputMethodContext; 72 class InputMethodContext;
73 class LinkHighlight; 73 class LinkHighlight;
74 class PopupContainer; 74 class PopupContainer;
75 class LayerCompositor; 75 class LayerCompositor;
76 class TopControls;
76 class UserGestureToken; 77 class UserGestureToken;
77 class WebActiveGestureAnimation; 78 class WebActiveGestureAnimation;
78 class WebDevToolsAgentImpl; 79 class WebDevToolsAgentImpl;
79 class WebLayerTreeView; 80 class WebLayerTreeView;
80 class WebLocalFrameImpl; 81 class WebLocalFrameImpl;
81 class WebImage; 82 class WebImage;
82 class WebPagePopupImpl; 83 class WebPagePopupImpl;
83 class WebPlugin; 84 class WebPlugin;
84 class WebSettingsImpl; 85 class WebSettingsImpl;
85 86
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 // Exposed for tests. 511 // Exposed for tests.
511 WebVector<WebCompositionUnderline> compositionUnderlines() const; 512 WebVector<WebCompositionUnderline> compositionUnderlines() const;
512 513
513 WebLayerTreeView* layerTreeView() const { return m_layerTreeView; } 514 WebLayerTreeView* layerTreeView() const { return m_layerTreeView; }
514 515
515 bool pinchVirtualViewportEnabled() const; 516 bool pinchVirtualViewportEnabled() const;
516 517
517 bool matchesHeuristicsForGpuRasterizationForTesting() const { return m_match esHeuristicsForGpuRasterization; } 518 bool matchesHeuristicsForGpuRasterizationForTesting() const { return m_match esHeuristicsForGpuRasterization; }
518 519
519 virtual void setTopControlsHeight(float height, bool topControlsShrinkLayout Size) override; 520 virtual void setTopControlsHeight(float height, bool topControlsShrinkLayout Size) override;
521 virtual void updateTopControlsState(WebTopControlsState constraint, WebTopCo ntrolsState current, bool animate) override;
522
523 TopControls& topControls();
524 // Called anytime top controls layout height or content offset have changed.
525 void didUpdateTopControls();
520 526
521 virtual void forceNextWebGLContextCreationToFail() override; 527 virtual void forceNextWebGLContextCreationToFail() override;
522 528
523 IntSize mainFrameSize(); 529 IntSize mainFrameSize();
524 530
525 private: 531 private:
526 void didUpdateTopControls();
527 void setTopControlsShownRatio(float); 532 void setTopControlsShownRatio(float);
528
529 // TODO(bokan): Remains for legacy pinch. Remove once it's gone. Made privat e to 533 // TODO(bokan): Remains for legacy pinch. Remove once it's gone. Made privat e to
530 // prevent external usage 534 // prevent external usage
531 virtual void setPageScaleFactor(float scaleFactor, const WebPoint& origin) o verride; 535 virtual void setPageScaleFactor(float scaleFactor, const WebPoint& origin) o verride;
532 void setPageScaleFactorAndLocation(float, const FloatPoint&); 536 void setPageScaleFactorAndLocation(float, const FloatPoint&);
533 537
534 void scrollAndRescaleViewports(float scaleFactor, const IntPoint& mainFrameO rigin, const FloatPoint& pinchViewportOrigin); 538 void scrollAndRescaleViewports(float scaleFactor, const IntPoint& mainFrameO rigin, const FloatPoint& pinchViewportOrigin);
535 539
536 IntRect visibleRectInDocument() const; 540 IntRect visibleRectInDocument() const;
537 541
538 float legibleScale() const; 542 float legibleScale() const;
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 bool m_showFPSCounter; 753 bool m_showFPSCounter;
750 bool m_showPaintRects; 754 bool m_showPaintRects;
751 bool m_showDebugBorders; 755 bool m_showDebugBorders;
752 bool m_continuousPaintingEnabled; 756 bool m_continuousPaintingEnabled;
753 bool m_showScrollBottleneckRects; 757 bool m_showScrollBottleneckRects;
754 WebColor m_baseBackgroundColor; 758 WebColor m_baseBackgroundColor;
755 WebColor m_backgroundColorOverride; 759 WebColor m_backgroundColorOverride;
756 float m_zoomFactorOverride; 760 float m_zoomFactorOverride;
757 761
758 bool m_userGestureObserved; 762 bool m_userGestureObserved;
759
760 // The top controls shown amount (normalized from 0 to 1) since the last
761 // compositor commit.
762 float m_topControlsShownRatio;
763
764 float m_topControlsHeight;
765 // If this is true, then the embedder shrunk the WebView size by the top
766 // controls height.
767 bool m_topControlsShrinkLayoutSize;
768 }; 763 };
769 764
770 DEFINE_TYPE_CASTS(WebViewImpl, WebWidget, widget, widget->isWebView(), widget.is WebView()); 765 DEFINE_TYPE_CASTS(WebViewImpl, WebWidget, widget, widget->isWebView(), widget.is WebView());
771 // We have no ways to check if the specified WebView is an instance of 766 // We have no ways to check if the specified WebView is an instance of
772 // WebViewImpl because WebViewImpl is the only implementation of WebView. 767 // WebViewImpl because WebViewImpl is the only implementation of WebView.
773 DEFINE_TYPE_CASTS(WebViewImpl, WebView, webView, true, true); 768 DEFINE_TYPE_CASTS(WebViewImpl, WebView, webView, true, true);
774 769
775 } // namespace blink 770 } // namespace blink
776 771
777 #endif 772 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698