OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. |
6 * All rights reserved. | 6 * All rights reserved. |
7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
10 * (http://www.torchmobile.com/) | 10 * (http://www.torchmobile.com/) |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
333 if (style.Display() == EDisplay::kContents) | 333 if (style.Display() == EDisplay::kContents) |
334 return; | 334 return; |
335 | 335 |
336 // FIXME: Don't support this mutation for pseudo styles like first-letter or | 336 // FIXME: Don't support this mutation for pseudo styles like first-letter or |
337 // first-line, since it's not completely clear how that should work. | 337 // first-line, since it's not completely clear how that should work. |
338 if (style.Display() == EDisplay::kInline && | 338 if (style.Display() == EDisplay::kInline && |
339 style.StyleType() == kPseudoIdNone && | 339 style.StyleType() == kPseudoIdNone && |
340 style.GetWritingMode() != layout_parent_style.GetWritingMode()) | 340 style.GetWritingMode() != layout_parent_style.GetWritingMode()) |
341 style.SetDisplay(EDisplay::kInlineBlock); | 341 style.SetDisplay(EDisplay::kInlineBlock); |
342 | 342 |
343 // We do not honor position: relative or sticky for table rows, headers, and | 343 // We do not honor position: relative for table rows, headers, and footers. |
344 // footers. This is correct for position: relative in CSS2.1 (and caused a | 344 // This is correct for CSS2.1 (and honoring it caused a crash in |
345 // crash in containingBlock() on some sites) and position: sticky is defined | 345 // containingBlock() on some sites). It is incorrect for CSS3. |
346 // as following position: relative behavior for table elements. It is | |
347 // incorrect for CSS3. | |
348 if ((style.Display() == EDisplay::kTableHeaderGroup || | 346 if ((style.Display() == EDisplay::kTableHeaderGroup || |
349 style.Display() == EDisplay::kTableRowGroup || | 347 style.Display() == EDisplay::kTableRowGroup || |
350 style.Display() == EDisplay::kTableFooterGroup || | 348 style.Display() == EDisplay::kTableFooterGroup || |
351 style.Display() == EDisplay::kTableRow) && | 349 style.Display() == EDisplay::kTableRow) && |
352 style.HasInFlowPosition()) | 350 style.GetPosition() == EPosition::kRelative) |
353 style.SetPosition(EPosition::kStatic); | 351 style.SetPosition(EPosition::kStatic); |
354 | 352 |
355 // Cannot support position: sticky for table columns and column groups because | 353 // Cannot support position: sticky for table columns and column groups because |
356 // current code is only doing background painting through columns / column | 354 // current code is only doing background painting through columns / column |
357 // groups. | 355 // groups. |
358 if ((style.Display() == EDisplay::kTableColumnGroup || | 356 if ((style.Display() == EDisplay::kTableColumnGroup || |
359 style.Display() == EDisplay::kTableColumn) && | 357 style.Display() == EDisplay::kTableColumn) && |
360 style.GetPosition() == EPosition::kSticky) | 358 style.GetPosition() == EPosition::kSticky) |
361 style.SetPosition(EPosition::kStatic); | 359 style.SetPosition(EPosition::kStatic); |
362 | 360 |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 style.SetDisplay(EDisplay::kBlock); | 506 style.SetDisplay(EDisplay::kBlock); |
509 | 507 |
510 // Columns don't apply to svg text elements. | 508 // Columns don't apply to svg text elements. |
511 if (isSVGTextElement(*element)) | 509 if (isSVGTextElement(*element)) |
512 style.ClearMultiCol(); | 510 style.ClearMultiCol(); |
513 } | 511 } |
514 AdjustStyleForAlignment(style, layout_parent_style); | 512 AdjustStyleForAlignment(style, layout_parent_style); |
515 } | 513 } |
516 | 514 |
517 } // namespace blink | 515 } // namespace blink |
OLD | NEW |