Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBox.h

Issue 2695963005: WIP: redirect some LayoutBox methods to ng fragments
Patch Set: tot Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutBox.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved. 4 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
11 * This library is distributed in the hope that it will be useful, 11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details. 14 * Library General Public License for more details.
15 * 15 *
16 * You should have received a copy of the GNU Library General Public License 16 * You should have received a copy of the GNU Library General Public License
17 * along with this library; see the file COPYING.LIB. If not, write to 17 * along with this library; see the file COPYING.LIB. If not, write to
18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA. 19 * Boston, MA 02110-1301, USA.
20 * 20 *
21 */ 21 */
22 22
23 #ifndef LayoutBox_h 23 #ifndef LayoutBox_h
24 #define LayoutBox_h 24 #define LayoutBox_h
25 25
26 #include "core/CoreExport.h" 26 #include "core/CoreExport.h"
27 #include "core/layout/ng/ng_physical_box_fragment.h"
27 #include "core/layout/LayoutBoxModelObject.h" 28 #include "core/layout/LayoutBoxModelObject.h"
28 #include "core/layout/OverflowModel.h" 29 #include "core/layout/OverflowModel.h"
29 #include "platform/scroll/ScrollTypes.h" 30 #include "platform/scroll/ScrollTypes.h"
30 #include "wtf/Compiler.h" 31 #include "wtf/Compiler.h"
31 #include "wtf/PtrUtil.h" 32 #include "wtf/PtrUtil.h"
32 #include <memory> 33 #include <memory>
33 34
34 namespace blink { 35 namespace blink {
35 36
36 class LayoutBlockFlow; 37 class LayoutBlockFlow;
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 bool backgroundIsKnownToBeOpaqueInRect( 208 bool backgroundIsKnownToBeOpaqueInRect(
208 const LayoutRect& localRect) const override; 209 const LayoutRect& localRect) const override;
209 210
210 virtual bool backgroundShouldAlwaysBeClipped() const { return false; } 211 virtual bool backgroundShouldAlwaysBeClipped() const { return false; }
211 212
212 // Use this with caution! No type checking is done! 213 // Use this with caution! No type checking is done!
213 LayoutBox* firstChildBox() const; 214 LayoutBox* firstChildBox() const;
214 LayoutBox* firstInFlowChildBox() const; 215 LayoutBox* firstInFlowChildBox() const;
215 LayoutBox* lastChildBox() const; 216 LayoutBox* lastChildBox() const;
216 217
217 int pixelSnappedWidth() const { return m_frameRect.pixelSnappedWidth(); } 218 int pixelSnappedWidth() const {
218 int pixelSnappedHeight() const { return m_frameRect.pixelSnappedHeight(); } 219 return m_ngPhysicalBoxFragment->pixelSnappedWidth();
220 }
221 int pixelSnappedHeight() const {
222 return m_ngPhysicalBoxFragment->pixelSnappedHeight();
223 }
219 224
220 void setX(LayoutUnit x) { 225 void setX(LayoutUnit x) {
221 if (x == m_frameRect.x()) 226 if (x == m_ngPhysicalBoxFragment->x())
222 return; 227 return;
223 m_frameRect.setX(x); 228 m_ngPhysicalBoxFragment->setX(x);
224 locationChanged(); 229 locationChanged();
225 } 230 }
226 void setY(LayoutUnit y) { 231 void setY(LayoutUnit y) {
227 if (y == m_frameRect.y()) 232 if (y == m_ngPhysicalBoxFragment->y())
228 return; 233 return;
229 m_frameRect.setY(y); 234 m_ngPhysicalBoxFragment->setY(y);
230 locationChanged(); 235 locationChanged();
231 } 236 }
232 void setWidth(LayoutUnit width) { 237 void setWidth(LayoutUnit width) {
233 if (width == m_frameRect.width()) 238 if (width == m_ngPhysicalBoxFragment->Width())
234 return; 239 return;
235 m_frameRect.setWidth(width); 240 m_ngPhysicalBoxFragment->setWidth(width);
236 sizeChanged(); 241 sizeChanged();
237 } 242 }
238 void setHeight(LayoutUnit height) { 243 void setHeight(LayoutUnit height) {
239 if (height == m_frameRect.height()) 244 if (height == m_ngPhysicalBoxFragment->Height())
240 return; 245 return;
241 m_frameRect.setHeight(height); 246 m_ngPhysicalBoxFragment->setHeight(height);
242 sizeChanged(); 247 sizeChanged();
243 } 248 }
244 249
245 LayoutUnit logicalLeft() const { 250 LayoutUnit logicalLeft() const {
246 return style()->isHorizontalWritingMode() ? m_frameRect.x() 251 return style()->isHorizontalWritingMode() ? m_ngPhysicalBoxFragment->x()
247 : m_frameRect.y(); 252 : m_ngPhysicalBoxFragment->y();
248 } 253 }
249 LayoutUnit logicalRight() const { return logicalLeft() + logicalWidth(); } 254 LayoutUnit logicalRight() const { return logicalLeft() + logicalWidth(); }
250 LayoutUnit logicalTop() const { 255 LayoutUnit logicalTop() const {
251 return style()->isHorizontalWritingMode() ? m_frameRect.y() 256 return style()->isHorizontalWritingMode() ? m_ngPhysicalBoxFragment->y()
252 : m_frameRect.x(); 257 : m_ngPhysicalBoxFragment->x();
253 } 258 }
254 LayoutUnit logicalBottom() const { return logicalTop() + logicalHeight(); } 259 LayoutUnit logicalBottom() const { return logicalTop() + logicalHeight(); }
255 LayoutUnit logicalWidth() const { 260 LayoutUnit logicalWidth() const {
256 return style()->isHorizontalWritingMode() ? m_frameRect.width() 261 return style()->isHorizontalWritingMode()
257 : m_frameRect.height(); 262 ? m_ngPhysicalBoxFragment->Width()
263 : m_ngPhysicalBoxFragment->Height();
258 } 264 }
259 LayoutUnit logicalHeight() const { 265 LayoutUnit logicalHeight() const {
260 return style()->isHorizontalWritingMode() ? m_frameRect.height() 266 return style()->isHorizontalWritingMode()
261 : m_frameRect.width(); 267 ? m_ngPhysicalBoxFragment->Height()
268 : m_ngPhysicalBoxFragment->Width();
262 } 269 }
263 270
264 // Logical height of the object, including content overflowing the 271 // Logical height of the object, including content overflowing the
265 // border-after edge. 272 // border-after edge.
266 virtual LayoutUnit logicalHeightWithVisibleOverflow() const; 273 virtual LayoutUnit logicalHeightWithVisibleOverflow() const;
267 274
268 LayoutUnit constrainLogicalWidthByMinMax(LayoutUnit, 275 LayoutUnit constrainLogicalWidthByMinMax(LayoutUnit,
269 LayoutUnit, 276 LayoutUnit,
270 LayoutBlock*) const; 277 LayoutBlock*) const;
271 LayoutUnit constrainLogicalHeightByMinMax( 278 LayoutUnit constrainLogicalHeightByMinMax(
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 else 322 else
316 setHeight(size); 323 setHeight(size);
317 } 324 }
318 void setLogicalHeight(LayoutUnit size) { 325 void setLogicalHeight(LayoutUnit size) {
319 if (style()->isHorizontalWritingMode()) 326 if (style()->isHorizontalWritingMode())
320 setHeight(size); 327 setHeight(size);
321 else 328 else
322 setWidth(size); 329 setWidth(size);
323 } 330 }
324 331
325 LayoutPoint location() const { return m_frameRect.location(); } 332 LayoutPoint location() const {
333 return m_ngPhysicalBoxFragment->Location();
334 }
335
326 LayoutSize locationOffset() const { 336 LayoutSize locationOffset() const {
327 return LayoutSize(m_frameRect.x(), m_frameRect.y()); 337 return LayoutSize(m_ngPhysicalBoxFragment->x(),
338 m_ngPhysicalBoxFragment->y());
328 } 339 }
329 LayoutSize size() const { return m_frameRect.size(); } 340 LayoutSize size() const {
330 IntSize pixelSnappedSize() const { return m_frameRect.pixelSnappedSize(); } 341 return m_ngPhysicalBoxFragment->LegacySize();
342 }
343 IntSize pixelSnappedSize() const {
344 return m_ngPhysicalBoxFragment->pixelSnappedSize();
345 }
331 346
332 void setLocation(const LayoutPoint& location) { 347 void setLocation(const LayoutPoint& location) {
333 if (location == m_frameRect.location()) 348 if (location == m_ngPhysicalBoxFragment->Location())
334 return; 349 return;
335 m_frameRect.setLocation(location); 350 m_ngPhysicalBoxFragment->setLocation(location);
336 locationChanged(); 351 locationChanged();
337 } 352 }
338 353
339 // The ancestor box that this object's location and physicalLocation are 354 // The ancestor box that this object's location and physicalLocation are
340 // relative to. 355 // relative to.
341 virtual LayoutBox* locationContainer() const; 356 virtual LayoutBox* locationContainer() const;
342 357
343 // FIXME: Currently scrollbars are using int geometry and positioned based on 358 // FIXME: Currently scrollbars are using int geometry and positioned based on
344 // pixelSnappedBorderBoxRect whose size may change when location changes 359 // pixelSnappedBorderBoxRect whose size may change when location changes
345 // because of pixel snapping. This function is used to change location of the 360 // because of pixel snapping. This function is used to change location of the
346 // LayoutBox outside of LayoutBox::layout(). Will remove when we use 361 // LayoutBox outside of LayoutBox::layout(). Will remove when we use
347 // LayoutUnits for scrollbars. 362 // LayoutUnits for scrollbars.
348 void setLocationAndUpdateOverflowControlsIfNeeded(const LayoutPoint&); 363 void setLocationAndUpdateOverflowControlsIfNeeded(const LayoutPoint&);
349 364
350 void setSize(const LayoutSize& size) { 365 void setSize(const LayoutSize& size) {
351 if (size == m_frameRect.size()) 366 if (size == m_ngPhysicalBoxFragment->LegacySize())
352 return; 367 return;
353 m_frameRect.setSize(size); 368 m_ngPhysicalBoxFragment->setSize(size);
354 sizeChanged(); 369 sizeChanged();
355 } 370 }
356 void move(LayoutUnit dx, LayoutUnit dy) { 371 void move(LayoutUnit dx, LayoutUnit dy) {
357 if (!dx && !dy) 372 if (!dx && !dy)
358 return; 373 return;
359 m_frameRect.move(dx, dy); 374 m_ngPhysicalBoxFragment->move(dx, dy);
360 locationChanged(); 375 locationChanged();
361 } 376 }
362 377
363 // This function is in the container's coordinate system, meaning 378 // This function is in the container's coordinate system, meaning
364 // that it includes the logical top/left offset and the 379 // that it includes the logical top/left offset and the
365 // inline-start/block-start margins. 380 // inline-start/block-start margins.
366 LayoutRect frameRect() const { return m_frameRect; } 381 LayoutRect frameRect() const {
382 return m_ngPhysicalBoxFragment->getLayoutRect();
383 }
367 void setFrameRect(const LayoutRect& rect) { 384 void setFrameRect(const LayoutRect& rect) {
368 setLocation(rect.location()); 385 setLocation(rect.location());
369 setSize(rect.size()); 386 setSize(rect.size());
370 } 387 }
371 388
372 // Note that those functions have their origin at this box's CSS border box. 389 // Note that those functions have their origin at this box's CSS border box.
373 // As such their location doesn't account for 'top'/'left'. 390 // As such their location doesn't account for 'top'/'left'.
374 LayoutRect borderBoxRect() const { return LayoutRect(LayoutPoint(), size()); } 391 LayoutRect borderBoxRect() const { return LayoutRect(LayoutPoint(), size()); }
375 LayoutRect paddingBoxRect() const { 392 LayoutRect paddingBoxRect() const {
376 return LayoutRect(borderLeft(), borderTop(), clientWidth(), clientHeight()); 393 return LayoutRect(borderLeft(), borderTop(), clientWidth(), clientHeight());
377 } 394 }
378 IntRect pixelSnappedBorderBoxRect() const { 395 IntRect pixelSnappedBorderBoxRect() const {
379 return IntRect(IntPoint(), m_frameRect.pixelSnappedSize()); 396 return IntRect(IntPoint(), m_ngPhysicalBoxFragment->pixelSnappedSize());
380 } 397 }
381 IntRect borderBoundingBox() const final { 398 IntRect borderBoundingBox() const final {
382 return pixelSnappedBorderBoxRect(); 399 return pixelSnappedBorderBoxRect();
383 } 400 }
384 401
385 // The content area of the box (excludes padding - and intrinsic padding for 402 // The content area of the box (excludes padding - and intrinsic padding for
386 // table cells, etc... - and border). 403 // table cells, etc... - and border).
387 DISABLE_CFI_PERF LayoutRect contentBoxRect() const { 404 DISABLE_CFI_PERF LayoutRect contentBoxRect() const {
388 return LayoutRect(borderLeft() + paddingLeft(), borderTop() + paddingTop(), 405 return LayoutRect(borderLeft() + paddingLeft(), borderTop() + paddingTop(),
389 contentWidth(), contentHeight()); 406 contentWidth(), contentHeight());
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 : contentHeight(); 543 : contentHeight();
527 } 544 }
528 LayoutUnit contentLogicalHeight() const { 545 LayoutUnit contentLogicalHeight() const {
529 return style()->isHorizontalWritingMode() ? contentHeight() 546 return style()->isHorizontalWritingMode() ? contentHeight()
530 : contentWidth(); 547 : contentWidth();
531 } 548 }
532 549
533 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlines 550 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlines
534 // (LayoutFlow) to return the remaining width on a given line (and the height 551 // (LayoutFlow) to return the remaining width on a given line (and the height
535 // of a single line). 552 // of a single line).
536 LayoutUnit offsetWidth() const override { return m_frameRect.width(); } 553 LayoutUnit offsetWidth() const override {
537 LayoutUnit offsetHeight() const override { return m_frameRect.height(); } 554 return m_ngPhysicalBoxFragment->Width();
555 }
556 LayoutUnit offsetHeight() const override {
557 return m_ngPhysicalBoxFragment->Height();
558 }
538 559
539 int pixelSnappedOffsetWidth(const Element*) const final; 560 int pixelSnappedOffsetWidth(const Element*) const final;
540 int pixelSnappedOffsetHeight(const Element*) const final; 561 int pixelSnappedOffsetHeight(const Element*) const final;
541 562
542 // More IE extensions. clientWidth and clientHeight represent the interior of 563 // More IE extensions. clientWidth and clientHeight represent the interior of
543 // an object excluding border and scrollbar. clientLeft/Top are just the 564 // an object excluding border and scrollbar. clientLeft/Top are just the
544 // borderLeftWidth and borderTopWidth. 565 // borderLeftWidth and borderTopWidth.
545 DISABLE_CFI_PERF LayoutUnit clientLeft() const { 566 DISABLE_CFI_PERF LayoutUnit clientLeft() const {
546 return LayoutUnit(borderLeft() + 567 return LayoutUnit(borderLeft() +
547 (shouldPlaceBlockDirectionScrollbarOnLogicalLeft() 568 (shouldPlaceBlockDirectionScrollbarOnLogicalLeft()
(...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after
1172 // for vertical writing modes). 1193 // for vertical writing modes).
1173 if (!UNLIKELY(hasFlippedBlocksWritingMode())) 1194 if (!UNLIKELY(hasFlippedBlocksWritingMode()))
1174 return position; 1195 return position;
1175 return logicalHeight() - position; 1196 return logicalHeight() - position;
1176 } 1197 }
1177 WARN_UNUSED_RESULT LayoutPoint 1198 WARN_UNUSED_RESULT LayoutPoint
1178 flipForWritingMode(const LayoutPoint& position) const { 1199 flipForWritingMode(const LayoutPoint& position) const {
1179 if (!UNLIKELY(hasFlippedBlocksWritingMode())) 1200 if (!UNLIKELY(hasFlippedBlocksWritingMode()))
1180 return position; 1201 return position;
1181 return isHorizontalWritingMode() 1202 return isHorizontalWritingMode()
1182 ? LayoutPoint(position.x(), m_frameRect.height() - position.y()) 1203 ? LayoutPoint(position.x(),
1183 : LayoutPoint(m_frameRect.width() - position.x(), position.y()); 1204 m_ngPhysicalBoxFragment->Height() - position.y())
1205 : LayoutPoint(m_ngPhysicalBoxFragment->Width() - position.x(),
1206 position.y());
1184 } 1207 }
1185 WARN_UNUSED_RESULT LayoutSize 1208 WARN_UNUSED_RESULT LayoutSize
1186 flipForWritingMode(const LayoutSize& offset) const { 1209 flipForWritingMode(const LayoutSize& offset) const {
1187 if (!UNLIKELY(hasFlippedBlocksWritingMode())) 1210 if (!UNLIKELY(hasFlippedBlocksWritingMode()))
1188 return offset; 1211 return offset;
1189 return LayoutSize(m_frameRect.width() - offset.width(), offset.height()); 1212 return LayoutSize(m_ngPhysicalBoxFragment->Width() - offset.width(),
1213 offset.height());
1190 } 1214 }
1191 void flipForWritingMode(LayoutRect& rect) const { 1215 void flipForWritingMode(LayoutRect& rect) const {
1192 if (!UNLIKELY(hasFlippedBlocksWritingMode())) 1216 if (!UNLIKELY(hasFlippedBlocksWritingMode()))
1193 return; 1217 return;
1194 rect.setX(m_frameRect.width() - rect.maxX()); 1218 rect.setX(m_ngPhysicalBoxFragment->Width() - rect.maxX());
1195 } 1219 }
1196 WARN_UNUSED_RESULT FloatPoint 1220 WARN_UNUSED_RESULT FloatPoint
1197 flipForWritingMode(const FloatPoint& position) const { 1221 flipForWritingMode(const FloatPoint& position) const {
1198 if (!UNLIKELY(hasFlippedBlocksWritingMode())) 1222 if (!UNLIKELY(hasFlippedBlocksWritingMode()))
1199 return position; 1223 return position;
1200 return FloatPoint(m_frameRect.width() - position.x(), position.y()); 1224 return FloatPoint(m_ngPhysicalBoxFragment->Width() - position.x(),
1225 position.y());
1201 } 1226 }
1202 void flipForWritingMode(FloatRect& rect) const { 1227 void flipForWritingMode(FloatRect& rect) const {
1203 if (!UNLIKELY(hasFlippedBlocksWritingMode())) 1228 if (!UNLIKELY(hasFlippedBlocksWritingMode()))
1204 return; 1229 return;
1205 rect.setX(m_frameRect.width() - rect.maxX()); 1230 rect.setX(m_ngPhysicalBoxFragment->Width() - rect.maxX());
1206 } 1231 }
1207 1232
1208 // Passing |container| causes flipped-block flipping w.r.t. that container, 1233 // Passing |container| causes flipped-block flipping w.r.t. that container,
1209 // or containingBlock() otherwise. 1234 // or containingBlock() otherwise.
1210 LayoutPoint physicalLocation( 1235 LayoutPoint physicalLocation(
1211 const LayoutBox* flippedBlocksContainer = nullptr) const; 1236 const LayoutBox* flippedBlocksContainer = nullptr) const;
1212 LayoutSize physicalLocationOffset() const { 1237 LayoutSize physicalLocationOffset() const {
1213 return toLayoutSize(physicalLocation()); 1238 return toLayoutSize(physicalLocation());
1214 } 1239 }
1215 1240
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
1582 LayoutRect debugRect() const override; 1607 LayoutRect debugRect() const override;
1583 1608
1584 // The CSS border box rect for this box. 1609 // The CSS border box rect for this box.
1585 // 1610 //
1586 // The rectangle is in this box's physical coordinates but with a 1611 // The rectangle is in this box's physical coordinates but with a
1587 // flipped block-flow direction (see the COORDINATE SYSTEMS section 1612 // flipped block-flow direction (see the COORDINATE SYSTEMS section
1588 // in LayoutBoxModelObject). The location is the distance from this 1613 // in LayoutBoxModelObject). The location is the distance from this
1589 // object's border edge to the container's border edge (which is not 1614 // object's border edge to the container's border edge (which is not
1590 // always the parent). Thus it includes any logical top/left along 1615 // always the parent). Thus it includes any logical top/left along
1591 // with this box's margins. 1616 // with this box's margins.
1592 LayoutRect m_frameRect; 1617 RefPtr<NGPhysicalBoxFragment> m_ngPhysicalBoxFragment;
1593 1618
1594 // Previous size of m_frameRect, updated after paint invalidation. 1619 // Previous size of m_frameRect, updated after paint invalidation.
1595 LayoutSize m_previousSize; 1620 LayoutSize m_previousSize;
1596 1621
1597 // Our intrinsic height, used for min-height: min-content etc. Maintained by 1622 // Our intrinsic height, used for min-height: min-content etc. Maintained by
1598 // updateLogicalHeight. This is logicalHeight() before it is clamped to 1623 // updateLogicalHeight. This is logicalHeight() before it is clamped to
1599 // min/max. 1624 // min/max.
1600 mutable LayoutUnit m_intrinsicContentLogicalHeight; 1625 mutable LayoutUnit m_intrinsicContentLogicalHeight;
1601 1626
1602 protected: 1627 protected:
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1698 breakValue == EBreakBetween::kLeft || 1723 breakValue == EBreakBetween::kLeft ||
1699 breakValue == EBreakBetween::kPage || 1724 breakValue == EBreakBetween::kPage ||
1700 breakValue == EBreakBetween::kRecto || 1725 breakValue == EBreakBetween::kRecto ||
1701 breakValue == EBreakBetween::kRight || 1726 breakValue == EBreakBetween::kRight ||
1702 breakValue == EBreakBetween::kVerso; 1727 breakValue == EBreakBetween::kVerso;
1703 } 1728 }
1704 1729
1705 } // namespace blink 1730 } // namespace blink
1706 1731
1707 #endif // LayoutBox_h 1732 #endif // LayoutBox_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutBox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698