1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h"
6 
7 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
8 
9 namespace blink {
10 
Trace(Visitor * visitor)11 void ScrollStateCallbackV8Impl::Trace(Visitor* visitor) {
12   visitor->Trace(callback_);
13   ScrollStateCallback::Trace(visitor);
14 }
15 
Invoke(ScrollState * scroll_state)16 void ScrollStateCallbackV8Impl::Invoke(ScrollState* scroll_state) {
17   callback_->InvokeAndReportException(nullptr, scroll_state);
18 }
19 
ParseNativeScrollBehavior(const String & native_scroll_behavior)20 NativeScrollBehavior ScrollStateCallbackV8Impl::ParseNativeScrollBehavior(
21     const String& native_scroll_behavior) {
22   static const char kDisable[] = "disable-native-scroll";
23   static const char kBefore[] = "perform-before-native-scroll";
24   static const char kAfter[] = "perform-after-native-scroll";
25 
26   if (native_scroll_behavior == kDisable)
27     return NativeScrollBehavior::kDisableNativeScroll;
28   if (native_scroll_behavior == kBefore)
29     return NativeScrollBehavior::kPerformBeforeNativeScroll;
30   if (native_scroll_behavior == kAfter)
31     return NativeScrollBehavior::kPerformAfterNativeScroll;
32 
33   NOTREACHED();
34   return NativeScrollBehavior::kDisableNativeScroll;
35 }
36 
37 }  // namespace blink
38