summaryrefslogtreecommitdiff
path: root/layout
Commit message (Collapse)AuthorAge
* WIP: basic scroll-anchoring attempt.scroll-anchoring-wipMoonchild2022-09-30
| | | | This is incomplete and won't build due to prerequisites.
* Revert "Issue #1986 - Use logical coordinates in flex containers."Moonchild2022-09-27
| | | | This reverts commit 2a57b39dbc1cc8b2bb32dedd87707680a1025430.
* Revert "Issue #1986 - Part 2: Add IsItemInlineAxisMainAxis() and rework some ↵Moonchild2022-09-27
| | | | | | nsFrame code." This reverts commit ef4eb3f926821fe87bf9a64be29d859ab5e0a6f5.
* Revert "Issue #1986 - Add in reftests for new behavior."Moonchild2022-09-27
| | | | This reverts commit 2fc5e3ad7d2b09a32e79cb201e405f57329c297e.
* Issue #1992 - Part 1: Un-prefix -moz-{min|max}-content keywords.Moonchild2022-09-20
|
* Issue #80 - Re-unify most of the layout engineMoonchild2022-09-08
|
* Issue #80 - reinstated unified building for some large chunks of our code.Moonchild2022-09-04
| | | | This should reduce compile complexity saving time and reducing linker stress.
* Merge branch 'master' of https://repo.palemoon.org/MoonchildProductions/UXPMoonchild2022-08-24
|\
| * Issue #1986 - Add in reftests for new behavior.Jeremy Andrews2022-08-18
| | | | | | | | | | | | Almost forgot to do this. This is in case we need to revisit this for regressions in the future and the tests are not available online. Never know when they might come in handy again.
| * Issue #1986 - Part 2: Add IsItemInlineAxisMainAxis() and rework some nsFrame ↵Jeremy Andrews2022-08-16
| | | | | | | | | | | | | | | | code. It turns out part 10 was actually needed, but Bug 1449838 had a significantly better version of what that code does that was easy enough to backport to what we have. As far as I can tell, this passes the relevant reftests now.
| * Issue #1986 - Use logical coordinates in flex containers.Jeremy Andrews2022-08-16
| | | | | | | | | | This mostly reworks the way nsFlexContainerFrame handles things so that it can deal with more than just height.
* | Issue #1994 - Align CSS.supports with the current spec.Moonchild2022-08-24
|/ | | | | | The current spec makes "implicit" parentheses a thing for feeding css strings to CSS.supports() The current spec also implies CSS is a namespace, not an interface
* Issue #1970 - Follow-up: Better fix for Unix that works on newer GCC.Jeremy Andrews2022-08-13
| | | | | | | | | | My previous fix apparently only worked with GCC 7. Having that return at the end doesn't seem to hurt anything on Windows, so I see no reason to ifdef it. I don't remember where I heard this, but I vaguely remember hearing that ending a function without a return statement may be undefined behavior that differs between compilers and operating systems. If so, that would explain why this has behaved so differently across platforms and compilers.
* Issue #1970 - Follow-up: Fix GTK3 build for SunOS and CentOS.Jeremy Andrews2022-08-13
| | | | This seems to work for me, but I haven't tested anything else yet. Still, seems better to have a fix in the tree than to leave it as-is.
* Issue #1970 - Part 7: Restore proper spacing in select for CJK/asian1970-form-focusring-stylingMoonchild2022-07-24
| | | | | | | | | | | | | | | | | | | | | | | The issue is that select elements may contain some non-Latin characters that need extra block-size to display than the one line-height calculated by using a Latin font spec in the style. Before this patch, when a control has an unconstrained block-size, we set the element's block-size to one line-height in Reflow(), which is intended to properly initialize `BlockReflowInput::mMinLineHeight` since it uses `line-height:-moz-block-height`. However, this simply prevents the display from choosing a larger block-size after the reflow occurs. Previously, this discrepancy was absorbed by the extra padding present to make select elements the same intrinsic size as buttons, but since we did away with that, we're losing the extra space and the font glyphs get clipped. This patch fixes the issue by carrying the computed line height over to the element's display so that its computed block-size is still unconstrained. This way it can accommodate taller characters in the display text. After this patch, a <select><option> containing non-Latin characters should have the same block-size as <button>, and no characters should be clipped.
* Issue #1970 - Part 6: Rename CalcLineHeight(), and cache used line heightMoonchild2022-07-23
| | | | | | | | To better distinguish the calculation of line height (still present with args) and simply getting the line height without args, it's now called GetLineHeight() This also introduces `mLineHeight` to cache specifically calculated line heights that aren't "auto" (which is a magic value), and it opens up the possibility to override it in Part 7.
* Issue #1970 - Part 5: Move combobox/select padding to the select rule.Moonchild2022-07-23
| | | | | This doesn't change behavior by default but allows authors to remove the padding previously enforced to align with focus ring padding, if they wish to.
* Issue #1970 - Part 4: Don't overflow -moz-focus-inner border.Moonchild2022-07-22
|
* Issue #1970 - Part 3: Update reftests.Moonchild2022-07-22
|
* Issue #1970 - Part 2: Remove the extra padding on buttonsMoonchild2022-07-22
| | | | | | Extra padding was created for a prospective -moz-focus-inner ring. We now just size that ring the same as the content frame, inflated by its CSS padding.
* Issue #1970 - Part 1: Remove unused moz-focus-outer code for buttons.Moonchild2022-07-22
|
* Issue #1805 - Improve stack size limits for all targets.Moonchild2022-07-15
| | | | | | | | | | | | | This allows us to use a greater rendering depth for exceedingly-deep DOM trees in layout, better matching what mainstream browsers are capable of. Note that for 32-bit Windows the stack size MUST be set to larger than the default or Bad Things Will Happen™ - we use 1.5 MB for this as a carefully-tuned value. This needs to be capped specifically for JS use because some JavaScript obfuscators deliberately trigger stack overflows and would lock up the browser otherwise as long as there's still stack space to abuse. For web compatibility we therefore limit this to 2MB in JS only (3x for ASAN) while still allowing a greater depth for the layout engine.
* Issue #1916 - Part 3: Sticky/relative position fixes in nsTableWrapperFrame.Job Bautista2022-06-17
| | | | | | Backported from Mozilla bug 1472602. Didn't include the change in StickyScrollContainer.cpp because it breaks linking to libxul.so in the end. It's not important anyway.
* Issue #1916 - Part 2: Add a flag to allow FinishReflowChild to handle ↵Job Bautista2022-06-17
| | | | | | relative positioning, and convert the caller for which this makes sense. Backported from Mozilla bug 1547759.
* Issue #1916 - Part 1: Convert flags passed to ReflowChild, ↵Job Bautista2022-06-17
| | | | | | FinishReflowChild, etc into an enum class. Backported from Mozilla bug 1571250.
* Issue #1914 - Implement white-space: break-spacesMoonchild2022-06-10
| | | | | This also simplifies GetCSSWhitespaceToCompressionMode (FFS with the function names, Mozilla!) to be less fragile.
* Issue #457 - Remove the constructor from gfxShapedText::CompressedGlyph and ↵trav902022-05-28
| | | | | | make it a trivial class Also provide a couple of convenience "factory" methods to create simple and complex glyph values.
* Issue #1860 - Back out the change to vector for DisplayListsMoonchild2022-05-03
| | | | | A safe implementation means significant performance loss, making this change undesirable.
* Issue #1860 - Follow-up: Prevent duplicate display items by checking for its ↵FranklinDM2022-05-03
| | | | | | existence in the vector first before adding items Performance impact unknown, resolves crashes on some sites that encounter this scenario.
* Fix property alias indentationFranklinDM2022-05-03
|
* Issue #1853 - Follow-up: Add missing end of array marker to scrollbar width ↵FranklinDM2022-05-03
| | | | | | keyword table This prevents the parser from accepting values outside the keyword table.
* Merge branch 'master' into 1829Brian Smith2022-04-28
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master: No issue - Update README and SECURITY Issue #1885 - Follow-up: Update error message if invalid rootMargin specified. Issue #1879 - Follow-up: Update config/external/nss/target to security/target. Issue #1885 - Allow unitless rootMargin entries for IntersectionObserver. Issue #1879 - Revert changes to cryptox.h Revert "Issue #1879 - spot-fix typo in cryptox.h" Issue #1879 - spot-fix typo in cryptox.h Issue #21 - Change MappedAttrParser to store its nsIPrincipal instead of nsSVGElement Issue #21 - Remove use counters telemetry Issue #1881 - Interpret empty or whitespace root margin string as zero length Issue #1877 - Resolve NIGHTLY_BUILD conditionals. Issue #1880 - Boot Comic Sans out of the font configuration.
| * Merge pull request 'Remove use counters telemetry' (#1883) from ↵Moonchild2022-04-26
| |\ | | | | | | | | | | | | | | | FranklinDM/UXP-contrib:work_telemetry-use-counters-removal into master Reviewed-on: https://repo.palemoon.org/MoonchildProductions/UXP/pulls/1883
| | * Issue #21 - Remove use counters telemetryFranklinDM2022-04-24
| | | | | | | | | | | | | | | | | | This reverts Bug 968923 - Implement some equivalent of Chrome's use counters (on top of telemetry?) For reference: https://bugzilla.mozilla.org/show_bug.cgi?id=968923
| * | Issue #1885 - Allow unitless rootMargin entries for IntersectionObserver.Moonchild2022-04-24
| | | | | | | | | | | | | | | | | | | | | I could have done this through a CSSLoader to allow all CSS unit quirks but I wasn't planning to start passing around document and element references everywhere, so instead just did it manually by accepting numbers/floats in addition to pixel and percent.
| * | Issue #1881 - Interpret empty or whitespace root margin string as zero lengthFranklinDM2022-04-23
| |/ | | | | | | | | | | | | | | This attempts to get the first non-whitespace token, which if exists, continues with previous behavior of parsing the margin string. Otherwise, if the specified margin string is empty or consists only of whitespace characters, is interpreted as zero length. IntersectionObserver is the only consumer of the `ParseMarginString` method, as far as I can tell, so this should not affect anything else. Note: For some reason, Firefox and Chrome treat the unitless zero length as invalid, while with this change, we do not change existing behavior in that regard and continue to accept that value.
| * Issue #1877 - Resolve NIGHTLY_BUILD conditionals.Moonchild2022-04-22
| |
* | Issue #1829 - Readd code cleanup that is not Mac related that got clobbered ↵Brian Smith2022-04-26
| | | | | | | | by reverting Issue #1751
* | Issue #1829 - Revert "Issue #1751 -- Remove XP_MACOSX conditionals from /layout"Brian Smith2022-04-26
| | | | | | | | This reverts commit aa0fd3d68c856504646e1d7eb499bc890ef44101.
* | Issue #1829 - Revert “Issue #1751 - Remove Mac code behind ↵Brian Smith2022-04-26
|/ | | | | | MOZ_WIDGET_TOOLKIT == 'cocoa’” This reverts commit 1fe9c19305dadf2d5bcaa0e589fcd250389dfa8a.
* Issue #1593 - Part 4: Make :host pass DOM parsing test and basic specificity ↵Jeremy Andrews2022-04-19
| | | | tests.
* Issue #1593 - Part 3: Add selector logic for :host and :host-context.Jeremy Andrews2022-04-19
|
* Issue #1593 - Part 1: Import William Chen's patches w/o selector implementation,Jeremy Andrews2022-04-19
| | | | fixed up.
* Issue #1873 - Part 3: Fix indentationFranklinDM2022-04-18
|
* Issue #1873 - Part 2: Ensure normalized parent is used for UndisplayedMap ↵FranklinDM2022-04-18
| | | | | | | | | | | | | | | | | | handling code We have four entry points that deal with the parents of display:none/ display:contents content. These are the functions for setting, changing, getting and removing a style context. Or more specifically: GetStyleContextInMap called by GetDisplay[None|Contents]StyleFor SetStyleContextInMap called by RegisterDisplay[None|Contents]StyleFor ChangeStyleContextInMap called by ChangeRegisteredDisplay[None|Contents]StyleFor UnregisterDisplay[None|Contents]StyleFor okay, this is actually two functions, but they act as a pair This change makes all these functions call GetApplicableParent up front and act on and pass around the parent that it returns. This is so that throughout the code we are always handling the parent that will be used as the key in the UndisplayedMap entry. This is necessary so that all the code that sets/gets the 'MayHaveChildrenWithLayoutBoxesDisabled' bit on/from an nsIContent object is using the same object, otherwise everything breaks down. Partially based on part 2 of https://bugzilla.mozilla.org/show_bug.cgi?id=1367214
* Issue #1873 - Part 1: Introduce ParentForUndisplayedMap helper methodFranklinDM2022-04-18
| | | | | | This introduces the `ParentForUndisplayedMap` helper method to reduce duplication in terms of getting the parent and asserting parent existence. Partially based on parts of https://bugzilla.mozilla.org/show_bug.cgi?id=1341083
* Issue #1860 - Follow-up: Fix indentation.Moonchild2022-04-18
|
* Issue #1860 - Follow-up: Make sure we don't add duplicate framesMoonchild2022-04-18
| | | | | | Changing to vector makes manipulating display list items more risky. This is to make sure we don't inadvertently end up with duplicates in the list of display items avoiding double-free scenarios.
* Merge branch 'master' into pr-1860win7-72022-04-18
|\
| * Issue #1838 - Follow-up: Prevent grid shorthand from resetting gutter propertiesFranklinDM2022-04-18
| | | | | | | | This also fixes crashing when using the grid shorthand property.