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

Side by Side Diff: third_party/WebKit/Source/core/dom/Element.h

Issue 2650343008: Implement Element.scrollIntoView for scroll-behavior: smooth. (Closed)
Patch Set: Revised according to the comments. We are still missing tests. Created 3 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Peter Kelly (pmk@post.com) 4 * (C) 2001 Peter Kelly (pmk@post.com)
5 * (C) 2001 Dirk Mueller (mueller@kde.org) 5 * (C) 2001 Dirk Mueller (mueller@kde.org)
6 * Copyright (C) 2003-2011, 2013, 2014 Apple Inc. All rights reserved. 6 * Copyright (C) 2003-2011, 2013, 2014 Apple Inc. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 class ExceptionState; 58 class ExceptionState;
59 class Image; 59 class Image;
60 class InputDeviceCapabilities; 60 class InputDeviceCapabilities;
61 class Locale; 61 class Locale;
62 class MutableStylePropertySet; 62 class MutableStylePropertySet;
63 class NamedNodeMap; 63 class NamedNodeMap;
64 class ElementIntersectionObserverData; 64 class ElementIntersectionObserverData;
65 class PseudoElement; 65 class PseudoElement;
66 class ResizeObservation; 66 class ResizeObservation;
67 class ResizeObserver; 67 class ResizeObserver;
68 class ScrollIntoViewOptions;
69 class ScrollIntoViewOptionsOrBoolean;
68 class ScrollState; 70 class ScrollState;
69 class ScrollStateCallback; 71 class ScrollStateCallback;
70 class ScrollToOptions; 72 class ScrollToOptions;
71 class ShadowRoot; 73 class ShadowRoot;
72 class ShadowRootInit; 74 class ShadowRootInit;
73 class StylePropertySet; 75 class StylePropertySet;
74 class StylePropertyMap; 76 class StylePropertyMap;
75 class V0CustomElementDefinition; 77 class V0CustomElementDefinition;
76 78
77 enum SpellcheckAttributeState { 79 enum SpellcheckAttributeState {
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 // This getter takes care of synchronizing all attributes before returning the 212 // This getter takes care of synchronizing all attributes before returning the
211 // AttributeCollection. If the Element has no attributes, an empty 213 // AttributeCollection. If the Element has no attributes, an empty
212 // AttributeCollection will be returned. This is not a trivial getter and its 214 // AttributeCollection will be returned. This is not a trivial getter and its
213 // return value should be cached for performance. 215 // return value should be cached for performance.
214 AttributeCollection attributes() const; 216 AttributeCollection attributes() const;
215 // This variant will not update the potentially invalid attributes. To be used 217 // This variant will not update the potentially invalid attributes. To be used
216 // when not interested in style attribute or one of the SVG animation 218 // when not interested in style attribute or one of the SVG animation
217 // attributes. 219 // attributes.
218 AttributeCollection attributesWithoutUpdate() const; 220 AttributeCollection attributesWithoutUpdate() const;
219 221
220 void scrollIntoView(bool alignToTop = true); 222 void scrollIntoView(ExceptionState&);
223 void scrollIntoView(ScrollIntoViewOptionsOrBoolean, ExceptionState&);
224 void scrollIntoViewWithOptions(const ScrollIntoViewOptions&);
221 void scrollIntoViewIfNeeded(bool centerIfNeeded = true); 225 void scrollIntoViewIfNeeded(bool centerIfNeeded = true);
222 226
223 int offsetLeft(); 227 int offsetLeft();
224 int offsetTop(); 228 int offsetTop();
225 int offsetWidth(); 229 int offsetWidth();
226 int offsetHeight(); 230 int offsetHeight();
227 231
228 Element* offsetParent(); 232 Element* offsetParent();
229 int clientLeft(); 233 int clientLeft();
230 int clientTop(); 234 int clientTop();
(...skipping 960 matching lines...) Expand 10 before | Expand all | Expand 10 after
1191 #define DECLARE_ELEMENT_FACTORY_WITH_TAGNAME(T) \ 1195 #define DECLARE_ELEMENT_FACTORY_WITH_TAGNAME(T) \
1192 static T* create(const QualifiedName&, Document&) 1196 static T* create(const QualifiedName&, Document&)
1193 #define DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(T) \ 1197 #define DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(T) \
1194 T* T::create(const QualifiedName& tagName, Document& document) { \ 1198 T* T::create(const QualifiedName& tagName, Document& document) { \
1195 return new T(tagName, document); \ 1199 return new T(tagName, document); \
1196 } 1200 }
1197 1201
1198 } // namespace blink 1202 } // namespace blink
1199 1203
1200 #endif // Element_h 1204 #endif // Element_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698