Unwanted line-break opportunities at out-of-flow frames [was: Commas wrapped to beginning of line with text-align: justify]
Categories
(Core :: Layout: Text and Fonts, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox68 | --- | fixed |
People
(Reporter: kscanne, Assigned: jfkthame)
References
(Blocks 1 open bug)
Details
Attachments
(6 files, 4 obsolete files)
Assignee | ||
Comment 1•9 years ago
|
||
Updated•8 years ago
|
Assignee | ||
Comment 2•7 years ago
|
||
Comment 4•7 years ago
|
||
Comment hidden (obsolete) |
Comment 6•7 years ago
|
||
Comment 7•7 years ago
|
||
Assignee | ||
Comment 8•7 years ago
|
||
Assignee | ||
Comment 9•7 years ago
|
||
Comment 10•7 years ago
|
||
Assignee | ||
Comment 11•7 years ago
|
||
Assignee | ||
Comment 12•7 years ago
|
||
Assignee | ||
Comment 13•7 years ago
|
||
Assignee | ||
Updated•7 years ago
|
Updated•7 years ago
|
Comment 14•7 years ago
|
||
Comment 15•7 years ago
|
||
Assignee | ||
Comment 16•7 years ago
|
||
Comment 17•7 years ago
|
||
Comment 18•7 years ago
|
||
Comment 19•7 years ago
|
||
Comment 20•7 years ago
|
||
Comment hidden (mozreview-request) |
Comment 22•7 years ago
|
||
Assignee | ||
Comment 23•7 years ago
|
||
Comment 24•7 years ago
|
||
Comment 25•7 years ago
|
||
Assignee | ||
Comment 26•7 years ago
|
||
Comment hidden (mozreview-request) |
Comment 28•7 years ago
|
||
Comment 29•7 years ago
|
||
Updated•7 years ago
|
Comment 30•7 years ago
|
||
Comment 31•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Comment 32•7 years ago
|
||
Assignee | ||
Comment 33•7 years ago
|
||
Assignee | ||
Comment 34•6 years ago
|
||
Assignee | ||
Comment 35•6 years ago
|
||
Assignee | ||
Comment 36•6 years ago
|
||
Assignee | ||
Comment 37•6 years ago
|
||
We do want to record soft break opportunity after a frame whose content can't
be part of the existing in-flow text run, since this normally should be a text run
boundary. However, though an out-of-flow frame can't be part of the existing
in-flow text run, it also doesn't break it either. In fact, the texts after the
out-of-flow frames are able to continue the existing in-flow text run. So,
introducing a line-break-after opportunity in this case may cause an unexpected
line break for every out-of-flow frame.
In this patch, we add a condition to prevent us from recording soft break
opportunities for out-of-flow frames.
Depends on D28624
Assignee | ||
Comment 38•6 years ago
|
||
(In reply to Jonathan Kew (:jfkthame) from comment #36)
Posted file Bug 1283222 - Add some extra WPT line-breaking testcases.
Just FTR, the line-breaking-015.html testcase here isn't really related to this Gecko bug, but I included it anyhow because it does fail in Blink's version of a similar bug, and AFAICS there's no current test coverage that reveals this. (Reported the Chrome failure as https://bugs.chromium.org/p/chromium/issues/detail?id=955496.)
Testcases 016 and 017 are this bug, and will be fixed by Jeremy's patch above.
Assignee | ||
Comment 39•6 years ago
|
||
(In reply to Jonathan Kew (:jfkthame) from comment #38)
the line-breaking-015.html testcase here isn't really related to this Gecko bug
Turns out it actually fails on tryserver linux64, though, not because of unwanted line-breaking but because the presence of the <b> element may affect the normal line-height of the test div. Trying again with an explicit line-height:2 on that element...
Comment 40•6 years ago
|
||
Comment 41•6 years ago
|
||
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=242291469&repo=autoland&lineNumber=30931
Backout link: https://hg.mozilla.org/integration/autoland/rev/a302746ead451eccadf5bb36553cd5dc8f1ce134
[task 2019-04-24T12:37:34.470Z] 12:37:34 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/gfx/angle/targets/translator'
[task 2019-04-24T12:37:34.491Z] 12:37:34 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/layout/generic'
[task 2019-04-24T12:37:34.495Z] 12:37:34 INFO - /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/gcc/bin/g++ -o Unified_cpp_layout_generic2.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/layout/generic -I/builds/worker/workspace/build/src/obj-firefox/layout/generic -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/dom/plugins/base -I/builds/worker/workspace/build/src/layout/base -I/builds/worker/workspace/build/src/layout/forms -I/builds/worker/workspace/build/src/layout/painting -I/builds/worker/workspace/build/src/layout/style -I/builds/worker/workspace/build/src/layout/svg -I/builds/worker/workspace/build/src/layout/tables -I/builds/worker/workspace/build/src/layout/xul -I/builds/worker/workspace/build/src/docshell/base -I/builds/worker/workspace/build/src/dom/base -I/builds/worker/workspace/build/src/dom/html -I/builds/worker/workspace/build/src/dom/xul -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wduplicated-cond -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=coverage-mismatch -Wno-error=free-nonheap-object -Wformat -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O2 -fno-omit-frame-pointer -funwind-tables -Werror -I/builds/worker/workspace/build/src/obj-firefox/dist/include/cairo -I/builds/worker/workspace/build/src/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gtk-3.0/unix-print -Wno-error=shadow -MD -MP -MF .deps/Unified_cpp_layout_generic2.o.pp /builds/worker/workspace/build/src/obj-firefox/layout/generic/Unified_cpp_layout_generic2.cpp
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - In file included from /builds/worker/workspace/build/src/obj-firefox/layout/generic/Unified_cpp_layout_generic2.cpp:128:0:
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - /builds/worker/workspace/build/src/layout/generic/nsLineLayout.cpp: In member function 'void nsLineLayout::ReflowFrame(nsIFrame*, nsReflowStatus&, nsLineLayout::ReflowOutput*, bool&)':
[task 2019-04-24T12:37:34.496Z] 12:37:34 ERROR - /builds/worker/workspace/build/src/layout/generic/nsLineLayout.cpp:893:8: error: variable 'placedFloat' set but not used [-Werror=unused-but-set-variable]
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - bool placedFloat = false;
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - ^~~~~~~~~~~
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - In file included from /builds/worker/workspace/build/src/obj-firefox/layout/generic/Unified_cpp_layout_generic2.cpp:2:0:
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - /builds/worker/workspace/build/src/layout/generic/nsFrame.cpp: In static member function 'static int32_t nsFrame::GetLineNumber(nsIFrame*, bool, nsIFrame**)':
[task 2019-04-24T12:37:34.496Z] 12:37:34 WARNING - /builds/worker/workspace/build/src/layout/generic/nsFrame.cpp:8675:42: warning: 'thisBlock' may be used uninitialized in this function [-Wmaybe-uninitialized]
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - return it->FindLineContaining(thisBlock);
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - ^
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/nsSize.h:10:0,
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - from /builds/worker/workspace/build/src/layout/base/LayoutConstants.h:12,
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - from /builds/worker/workspace/build/src/layout/generic/nsIFrame.h:54,
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - from /builds/worker/workspace/build/src/layout/xul/nsBox.h:12,
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - from /builds/worker/workspace/build/src/layout/generic/nsFrame.h:15,
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - from /builds/worker/workspace/build/src/layout/generic/nsFrame.cpp:9,
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - from /builds/worker/workspace/build/src/obj-firefox/layout/generic/Unified_cpp_layout_generic2.cpp:2:
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCoord.h: In member function 'mozilla::LogicalSize nsFrame::ComputeSizeWithIntrinsicDimensions(gfxContext*, mozilla::WritingMode, const mozilla::IntrinsicSize&, nsSize, const mozilla::LogicalSize&, const mozilla::LogicalSize&, const mozilla::LogicalSize&, const mozilla::LogicalSize&, nsIFrame::ComputeSizeFlags)':
[task 2019-04-24T12:37:34.496Z] 12:37:34 WARNING - /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCoord.h:70:11: warning: 'bSize' may be used uninitialized in this function [-Wmaybe-uninitialized]
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - return (int64_t(aMult1) * int64_t(aMult2) / int64_t(aDiv));
[task 2019-04-24T12:37:34.496Z] 12:37:34 INFO - ^~~~~~~~~~~~~~~
[task 2019-04-24T12:37:34.497Z] 12:37:34 INFO - In file included from /builds/worker/workspace/build/src/obj-firefox/layout/generic/Unified_cpp_layout_generic2.cpp:2:0:
[task 2019-04-24T12:37:34.497Z] 12:37:34 INFO - /builds/worker/workspace/build/src/layout/generic/nsFrame.cpp:5890:38: note: 'bSize' was declared here
[task 2019-04-24T12:37:34.497Z] 12:37:34 INFO - nscoord iSize, minISize, maxISize, bSize, minBSize, maxBSize;
[task 2019-04-24T12:37:34.497Z] 12:37:34 INFO - ^~~~~
[task 2019-04-24T12:37:34.497Z] 12:37:34 WARNING - /builds/worker/workspace/build/src/layout/generic/nsFrame.cpp:6089:45: warning: 'iSize' may be used uninitialized in this function [-Wmaybe-uninitialized]
[task 2019-04-24T12:37:34.497Z] 12:37:34 INFO - stretchI != eStretch && tentISize > iSize) {
[task 2019-04-24T12:37:34.497Z] 12:37:34 INFO - ^
[task 2019-04-24T12:37:34.497Z] 12:37:34 INFO - In file included from /builds/worker/workspace/build/src/obj-firefox/layout/generic/Unified_cpp_layout_generic2.cpp:47:0:
[task 2019-04-24T12:37:34.498Z] 12:37:34 INFO - /builds/worker/workspace/build/src/layout/generic/nsGfxScrollFrame.cpp: In member function 'void mozilla::ScrollFrameHelper::BuildDisplayList(nsDisplayListBuilder*, const nsDisplayListSet&)':
[task 2019-04-24T12:37:34.499Z] 12:37:34 WARNING - /builds/worker/workspace/build/src/layout/generic/nsGfxScrollFrame.cpp:3265:30: warning: 'extraContentBoxClipForNonCaretContent' may be used uninitialized in this function [-Wmaybe-uninitialized]
[task 2019-04-24T12:37:34.499Z] 12:37:34 INFO - cache);
[task 2019-04-24T12:37:34.499Z] 12:37:34 INFO - ^
[task 2019-04-24T12:37:34.499Z] 12:37:34 INFO - /builds/worker/workspace/build/src/layout/generic/nsGfxScrollFrame.cpp:3430:38: note: 'extraContentBoxClipForNonCaretContent' was declared here
[task 2019-04-24T12:37:34.499Z] 12:37:34 INFO - Maybe<const DisplayItemClipChain*> extraContentBoxClipForNonCaretContent;
[task 2019-04-24T12:37:34.499Z] 12:37:34 INFO - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[task 2019-04-24T12:37:34.499Z] 12:37:34 INFO - cc1plus: all warnings being treated as errors
[task 2019-04-24T12:37:34.499Z] 12:37:34 INFO - /builds/worker/workspace/build/src/config/rules.mk:805: recipe for target 'Unified_cpp_layout_generic2.o' failed
Comment 43•6 years ago
|
||
Comment 44•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/1e92c0bda3d9
https://hg.mozilla.org/mozilla-central/rev/121fd81292cb
Updated•6 years ago
|
Updated•6 years ago
|
Description
•