| Index: third_party/WebKit/Source/core/dom/Document.cpp
 | 
| diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
 | 
| index 4695fdeb8e093a17162267aa562e2a5f3ed7ef10..6717d6cf5333d621c08b1a7a090429bd96e676b3 100644
 | 
| --- a/third_party/WebKit/Source/core/dom/Document.cpp
 | 
| +++ b/third_party/WebKit/Source/core/dom/Document.cpp
 | 
| @@ -204,6 +204,7 @@
 | 
|  #include "core/page/FrameTree.h"
 | 
|  #include "core/page/Page.h"
 | 
|  #include "core/page/PointerLockController.h"
 | 
| +#include "core/page/scrolling/OverscrollController.h"
 | 
|  #include "core/page/scrolling/RootScrollerController.h"
 | 
|  #include "core/page/scrolling/ScrollStateCallback.h"
 | 
|  #include "core/page/scrolling/ScrollingCoordinator.h"
 | 
| @@ -2018,6 +2019,21 @@ void Document::PropagateStyleToViewport(StyleRecalcChange change) {
 | 
|    ScrollSnapType snap_type = overflow_style->GetScrollSnapType();
 | 
|    ScrollBehavior scroll_behavior = document_element_style->GetScrollBehavior();
 | 
|  
 | 
| +  EScrollBoundaryBehavior scroll_boundary_behavior_x =
 | 
| +      overflow_style->ScrollBoundaryBehaviorX();
 | 
| +  EScrollBoundaryBehavior scroll_boundary_behavior_y =
 | 
| +      overflow_style->ScrollBoundaryBehaviorY();
 | 
| +  using ScrollBoundaryBehaviorType =
 | 
| +      WebScrollBoundaryBehavior::ScrollBoundaryBehaviorType;
 | 
| +  if (RuntimeEnabledFeatures::CSSScrollBoundaryBehaviorEnabled() &&
 | 
| +      IsInMainFrame()) {
 | 
| +    GetPage()->GetOverscrollController().SetScrollBoundaryBehavior(
 | 
| +        WebScrollBoundaryBehavior(
 | 
| +            static_cast<ScrollBoundaryBehaviorType>(scroll_boundary_behavior_x),
 | 
| +            static_cast<ScrollBoundaryBehaviorType>(
 | 
| +                scroll_boundary_behavior_y)));
 | 
| +  }
 | 
| +
 | 
|    RefPtr<ComputedStyle> viewport_style;
 | 
|    if (change == kForce || !GetLayoutViewItem().Style()) {
 | 
|      viewport_style = StyleResolver::StyleForViewport(*this);
 | 
| @@ -2035,7 +2051,9 @@ void Document::PropagateStyleToViewport(StyleRecalcChange change) {
 | 
|          old_style.HasNormalColumnGap() == column_gap_normal &&
 | 
|          old_style.ColumnGap() == column_gap &&
 | 
|          old_style.GetScrollSnapType() == snap_type &&
 | 
| -        old_style.GetScrollBehavior() == scroll_behavior) {
 | 
| +        old_style.GetScrollBehavior() == scroll_behavior &&
 | 
| +        old_style.ScrollBoundaryBehaviorX() == scroll_boundary_behavior_x &&
 | 
| +        old_style.ScrollBoundaryBehaviorY() == scroll_boundary_behavior_y) {
 | 
|        return;
 | 
|      }
 | 
|      viewport_style = ComputedStyle::Clone(old_style);
 | 
| @@ -2054,6 +2072,8 @@ void Document::PropagateStyleToViewport(StyleRecalcChange change) {
 | 
|      viewport_style->SetColumnGap(column_gap);
 | 
|    viewport_style->SetScrollSnapType(snap_type);
 | 
|    viewport_style->SetScrollBehavior(scroll_behavior);
 | 
| +  viewport_style->SetScrollBoundaryBehaviorX(scroll_boundary_behavior_x);
 | 
| +  viewport_style->SetScrollBoundaryBehaviorY(scroll_boundary_behavior_y);
 | 
|    GetLayoutViewItem().SetStyle(viewport_style);
 | 
|    SetupFontBuilder(*viewport_style);
 | 
|  }
 | 
| 
 |