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

Unified Diff: third_party/WebKit/Source/core/frame/VisualViewport.h

Issue 1814013002: Visual viewport API initial implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
Index: third_party/WebKit/Source/core/frame/VisualViewport.h
diff --git a/third_party/WebKit/Source/core/frame/VisualViewport.h b/third_party/WebKit/Source/core/frame/VisualViewport.h
index 749c3a291e86c3044f03183cfc632d2aa459fd2f..54c6e763637e03e004b44118e1923dbb89fb7ba8 100644
--- a/third_party/WebKit/Source/core/frame/VisualViewport.h
+++ b/third_party/WebKit/Source/core/frame/VisualViewport.h
@@ -32,6 +32,7 @@
#define VisualViewport_h
#include "core/CoreExport.h"
+#include "core/events/Event.h"
#include "platform/geometry/FloatPoint.h"
#include "platform/geometry/FloatRect.h"
#include "platform/geometry/IntSize.h"
@@ -61,8 +62,13 @@ class LocalFrame;
// offset is set through the GraphicsLayer <-> CC sync mechanisms. Its contents is the page's
// main FrameView, which corresponds to the outer viewport. The inner viewport is always contained
// in the outer viewport and can pan within it.
-class CORE_EXPORT VisualViewport final : public GarbageCollectedFinalized<VisualViewport>, public GraphicsLayerClient, public ScrollableArea {
+class CORE_EXPORT VisualViewport final
+ : public GarbageCollectedFinalized<VisualViewport>
+ , public GraphicsLayerClient
+ , public ScriptWrappable
+ , public ScrollableArea {
USING_GARBAGE_COLLECTED_MIXIN(VisualViewport);
+ DEFINE_WRAPPERTYPEINFO();
public:
static RawPtr<VisualViewport> create(FrameHost& host)
{
@@ -197,6 +203,15 @@ public:
Widget* getWidget() override;
CompositorAnimationTimeline* compositorAnimationTimeline() const override;
+ // Visual Viewport API implementation.
+ double scrollLeft();
+ double scrollTop();
+ void setScrollLeft(double x);
+ void setScrollTop(double y);
+ double clientWidth();
+ double clientHeight();
+ double pageScale();
+
// Used for gathering data on user pinch-zoom statistics.
void userDidChangeScale();
void sendUMAMetrics();
@@ -211,6 +226,10 @@ private:
bool visualViewportSuppliesScrollbars() const;
+ void updateLayoutIgnorePendingStylesheets();
+
+ void enqueueChangedEvent();
+
// GraphicsLayerClient implementation.
bool needsRepaint(const GraphicsLayer&) const { ASSERT_NOT_REACHED(); return true; }
IntRect computeInterestRect(const GraphicsLayer*, const IntRect&) const;
« no previous file with comments | « third_party/WebKit/Source/core/events/EventTypeNames.in ('k') | third_party/WebKit/Source/core/frame/VisualViewport.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698