| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_WEB_WEB_STATE_UI_CRW_WEB_VIEW_SCROLL_VIEW_PROXY_INTERNAL_H_ |
| #define IOS_WEB_WEB_STATE_UI_CRW_WEB_VIEW_SCROLL_VIEW_PROXY_INTERNAL_H_ |
| |
| #import "ios/web/public/ui/crw_web_view_scroll_view_proxy.h" |
| |
| @class CRBProtocolObservers; |
| |
| // Declares internal API for this class. This API should only be used in |
| // //ios/web. |
| @interface CRWWebViewScrollViewProxy (Internal) |
| |
| // Observers of this proxy which subscribe to change notifications. |
| @property(nonatomic, readonly) |
| CRBProtocolObservers<CRWWebViewScrollViewProxyObserver>* observers; |
| |
| // The underlying UIScrollView. It can change. |
| // |
| // The property supports assigning nil, but it returns a placeholder scroll view |
| // instead of nil in that case. |
| // |
| // This must be a strong reference to: |
| // - avoid situation when the underlying scroll view is deallocated while |
| // associated with the proxy, which would prevent the proxy to preserve its |
| // properties |
| // - retain the placeholder scroll view |
| @property(nonatomic, readonly) UIScrollView* underlyingScrollView; |
| |
| @end |
| |
| #endif // IOS_WEB_WEB_STATE_UI_CRW_WEB_VIEW_SCROLL_VIEW_PROXY_INTERNAL_H_ |