| Index: third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.h | 
| diff --git a/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.h b/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..1256793311b7bb8fae666cd3f9744660f34acedb | 
| --- /dev/null | 
| +++ b/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.h | 
| @@ -0,0 +1,55 @@ | 
| +// Copyright 2016 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 NGLogicalRect_h | 
| +#define NGLogicalRect_h | 
| + | 
| +#include "core/CoreExport.h" | 
| +#include "core/layout/ng/geometry/ng_logical_offset.h" | 
| +#include "core/layout/ng/geometry/ng_logical_size.h" | 
| +#include "platform/LayoutUnit.h" | 
| + | 
| +namespace blink { | 
| + | 
| +// NGLogicalRect is the position and size of a rect (typically a fragment) | 
| +// relative to its parent rect in the logical coordinate system. | 
| +struct CORE_EXPORT NGLogicalRect { | 
| +  NGLogicalRect() {} | 
| +  NGLogicalRect(const NGLogicalOffset& offset, const NGLogicalSize& size) | 
| +      : offset(offset), size(size) {} | 
| +  NGLogicalRect(LayoutUnit inline_offset, | 
| +                LayoutUnit block_offset, | 
| +                LayoutUnit inline_size, | 
| +                LayoutUnit block_size) | 
| +      : offset(inline_offset, block_offset), size(inline_size, block_size) {} | 
| + | 
| +  bool IsEmpty() const; | 
| + | 
| +  // Whether this rectangle is contained by the provided rectangle. | 
| +  bool IsContained(const NGLogicalRect& other) const; | 
| + | 
| +  LayoutUnit InlineStartOffset() const { return offset.inline_offset; } | 
| +  LayoutUnit InlineEndOffset() const { | 
| +    return offset.inline_offset + size.inline_size; | 
| +  } | 
| +  LayoutUnit BlockStartOffset() const { return offset.block_offset; } | 
| +  LayoutUnit BlockEndOffset() const { | 
| +    return offset.block_offset + size.block_size; | 
| +  } | 
| + | 
| +  LayoutUnit BlockSize() const { return size.block_size; } | 
| +  LayoutUnit InlineSize() const { return size.inline_size; } | 
| + | 
| +  String ToString() const; | 
| +  bool operator==(const NGLogicalRect& other) const; | 
| + | 
| +  NGLogicalOffset offset; | 
| +  NGLogicalSize size; | 
| +}; | 
| + | 
| +CORE_EXPORT std::ostream& operator<<(std::ostream&, const NGLogicalRect&); | 
| + | 
| +}  // namespace blink | 
| + | 
| +#endif  // NGLogicalRect_h | 
|  |