blob: 6746f18b255fe61fe03839acfa59a7d992fd530e [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_WEB_JS_FEATURES_SCROLL_HELPER_SCROLL_HELPER_JAVA_SCRIPT_FEATURE_H_
#define IOS_WEB_JS_FEATURES_SCROLL_HELPER_SCROLL_HELPER_JAVA_SCRIPT_FEATURE_H_
#include "base/values.h"
#include "ios/web/public/js_messaging/java_script_feature.h"
@class WKScriptMessage;
namespace web {
class WebState;
// A feature which includes helpers to workaround scroll problems in WKWebView.
class ScrollHelperJavaScriptFeature : public JavaScriptFeature {
public:
~ScrollHelperJavaScriptFeature() override;
ScrollHelperJavaScriptFeature();
ScrollHelperJavaScriptFeature(const ScrollHelperJavaScriptFeature&) = delete;
ScrollHelperJavaScriptFeature& operator=(
const ScrollHelperJavaScriptFeature&) = delete;
// Sets the scroll dragging state of the page to |dragging|. window.scrollTo
// is overridden to be suppressed as long as the |dragging| is true.
void SetWebViewScrollViewIsDragging(WebState* web_state, bool dragging);
};
} // namespace web
#endif // IOS_WEB_JS_FEATURES_SCROLL_HELPER_SCROLL_HELPER_JAVA_SCRIPT_FEATURE_H_