Commit graph

433 commits

Author SHA1 Message Date
Greg Tatum
ee2694c97d Bug 1719546 - Replace nsBidi with mozilla::intl::Bidi; r=platform-i18n-reviewers,dminor
Differential Revision: https://phabricator.services.mozilla.com/D128793
2021-10-20 14:01:21 +00:00
Butkovits Atila
01c5e2aed8 Backed out 3 changesets (bug 1719546) for causing SM bustages at Bidi.h. CLOSED TREE
Backed out changeset c4d6ffc7e445 (bug 1719546)
Backed out changeset a1f7ed6c4251 (bug 1719546)
Backed out changeset e69fc596f2c3 (bug 1719546)
2021-10-19 21:09:47 +03:00
Greg Tatum
f250d90114 Bug 1719546 - Replace nsBidi with mozilla::intl::Bidi; r=platform-i18n-reviewers,dminor
Differential Revision: https://phabricator.services.mozilla.com/D128793
2021-10-19 16:55:36 +00:00
Kagami Sascha Rosylight
55dbc99e55 Bug 1713491 - Return std::pair from nsIFrame::GetOffsets r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D117520
2021-06-11 23:54:06 +00:00
Butkovits Atila
53cb932555 Backed out changeset aa6c7477c4d2 (bug 1713491) for causing build bustages on nsIFrame.cpp. CLOSED TREE 2021-06-12 00:12:06 +03:00
Kagami Sascha Rosylight
9d0b659349 Bug 1713491 - Return std::pair from nsIFrame::GetOffsets r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D117520
2021-06-11 18:53:28 +00:00
Dorel Luca
e1f4d9bb38 Backed out changeset 17e7b969b830 (bug 1713491) for Linux build bustage in gecko/dom/events/ContentEventHandler.cpp. CLOSED TREE 2021-06-11 17:52:10 +03:00
Kagami Sascha Rosylight
74760a9a0e Bug 1713491 - Return std::pair from nsIFrame::GetOffsets r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D117520
2021-06-11 11:37:11 +00:00
Simon Giesecke
ad01a10a3b Bug 1634281 - Use nsTHashMap instead of nsDataHashtable. r=xpcom-reviewers,necko-reviewers,jgilbert,nika,valentin
Note that this patch only transforms the use of the nsDataHashtable type alias
to a directly equivalent use of nsTHashMap. It does not change the specification
of the hash key type to make use of the key class deduction that nsTHashMap
allows for in some cases. That can be done in a separate step, but requires more
attention.

Differential Revision: https://phabricator.services.mozilla.com/D106008
2021-03-10 10:47:47 +00:00
Simon Giesecke
be7dc83fa6 Bug 1691913 - Mark nsBaseHashtable (and its subclasses') member functions nodiscard where appropriate. r=xpcom-reviewers,necko-reviewers,dragana,nika
Differential Revision: https://phabricator.services.mozilla.com/D105474
2021-02-26 09:22:53 +00:00
Simon Giesecke
9af107a839 Bug 1691913 - Rename nsBaseHashtable::Put to InsertOrUpdate. r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
This makes the naming more consistent with other functions called
Insert and/or Update. Also, it removes the ambiguity whether
Put expects that an entry already exists or not, in particular because
it differed from nsTHashtable::PutEntry in that regard.

Differential Revision: https://phabricator.services.mozilla.com/D105473
2021-02-26 09:11:46 +00:00
tanweerali
8cdf45f9f7 Bug 1688502 - [Core] Remove else if condition after break in layout/base/nsBidiPresUtils.cpp#1338. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D103701
2021-02-02 21:50:42 +00:00
Simon Giesecke
1e02318b49 Bug 1653335 - Replace MakeSpan uses by constructor calls. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D83817
2020-08-07 07:49:47 +00:00
Philipp Zech
3d4be168ae Bug 1648938 - Convert writing-modes #defines to an enum class. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D84016
2020-07-23 21:31:23 +00:00
Jonathan Kew
b56c4b385c Bug 1646639 - Don't recursively apply the line's start-offset and text-indent to children of a first-line frame. r=dholbert
But do apply any adjustment needed for text-align to the first-line frame itself.

Differential Revision: https://phabricator.services.mozilla.com/D82725
2020-07-11 22:52:41 +00:00
Razvan Maries
d80f844cba Backed out 2 changesets (bug 1646639) for perma failures on first-line-bidi-002.html. CLOSED TREE
Backed out changeset e1d587422484 (bug 1646639)
Backed out changeset 5caaf51dac99 (bug 1646639)
2020-07-12 01:34:31 +03:00
Jonathan Kew
953fcef392 Bug 1646639 - Don't recursively apply the line's start-offset and text-indent to children of a first-line frame. r=dholbert
But do apply any adjustment needed for text-align to the first-line frame itself.

Differential Revision: https://phabricator.services.mozilla.com/D82725
2020-07-11 21:26:02 +00:00
Kagami Sascha Rosylight
874fc4b1a7 Bug 1647525 - Use HasAnyStateBits() in nsBidiPresUtils r=emilio
Depends on D81090

Differential Revision: https://phabricator.services.mozilla.com/D81091
2020-06-25 14:07:33 +00:00
Simon Giesecke
82dc9b2271 Bug 1642949 - Replace uses of RemoveElementAt by RemoveLastElement/PopLastElement where possible. r=necko-reviewers,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D78027
2020-06-10 10:46:14 +00:00
Butkovits Atila
e3dce68834 Backed out 3 changesets (bug 1643289, bug 1642949) for causing failure at test_headless_screenshot.html. CLOSED TREE
Backed out changeset 98c420f73380 (bug 1643289)
Backed out changeset 9447ea8910aa (bug 1643289)
Backed out changeset 0c827da9d847 (bug 1642949)
2020-06-10 10:07:23 +03:00
Simon Giesecke
d419f0ff08 Bug 1642949 - Replace uses of RemoveElementAt by RemoveLastElement/PopLastElement where possible. r=necko-reviewers,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D78027
2020-06-10 05:49:28 +00:00
Mirko Brodesser
33bac859bb Bug 1626665: part 3) Declare more methods around nsTextFrame const. r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D69573

--HG--
extra : moz-landing-system : lando
2020-04-06 08:36:30 +00:00
Ting-Yu Lin
afe9123179 Bug 1622008 Part 3 - Remove nsPresContext* and PresShell* from the argument list of some continuing-frame-creation methods. r=dholbert
Both PresShell() and PresContext() are cached in nsIFrame. This
simplifies the setup for the callers to
nsCSSFrameConstructor::CreateContinuingFrame().

Differential Revision: https://phabricator.services.mozilla.com/D66600

--HG--
extra : moz-landing-system : lando
2020-03-12 21:50:23 +00:00
Emilio Cobos Álvarez
a25126cd0d Bug 1611181 - Make direction use an enum class. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D60857

--HG--
extra : moz-landing-system : lando
2020-01-24 11:46:14 +00:00
Xidorn Quan
cee370a4fb Bug 1144465 - Resolve bidi inside ruby. r=jfkthame
This commit changes IsBidiLeaf to mark ruby boxes not a bidi leaf, since
conceptually they are not. I auditted all uses of it, and I believe it
makes more sense this way.

Differential Revision: https://phabricator.services.mozilla.com/D58290

--HG--
extra : moz-landing-system : lando
2020-01-01 00:34:23 +00:00
Xidorn Quan
3bb05cef1c Bug 1606192 - Remove some unused nsresult return value in layout code. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D58342

--HG--
extra : moz-landing-system : lando
2019-12-28 03:27:13 +00:00
jeffin143
0ed9c7c846 Bug 1600483 : convert NS_STYLE_RUBY_ALIGN_* to an enum class in nsStyleConsts.h r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D55380

--HG--
extra : moz-landing-system : lando
2019-12-01 13:08:49 +00:00
jeffin143
e9711f487b Bug 1598528 : convert NS_STYLE_TEXT_ORIENTATION_* to an enum class in nsStyleConsts.h r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D54252

--HG--
extra : moz-landing-system : lando
2019-11-26 04:50:04 +00:00
Alex Henrie
74cc0f4dce Bug 1591490 - Use the NS_IS_SURROGATE_PAIR macro everywhere. r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D50697

--HG--
extra : moz-landing-system : lando
2019-10-27 05:05:51 +00:00
L. David Baron
a08b5323cb Bug 1576972 - Keep lastRealFrame up-to-date even when we skip empty text frames. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D43885

--HG--
extra : moz-landing-system : lando
2019-08-29 10:14:08 +00:00
L. David Baron
868643a218 Bug 1568501 - Invalidate FastLineIterator::mPrevFrame only when lines actually split. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D39267

--HG--
extra : moz-landing-system : lando
2019-07-25 21:31:21 +00:00
L. David Baron
96bd181ea7 Bug 1300293 - Pass the line box from nsBidiPresUtils::ResolveParagraph through SplitInlineAncestors to nsIFrame::InsertFrames. r=jfkthame
This is what fixes the performance problem in bug 1300293.

Differential Revision: https://phabricator.services.mozilla.com/D38799

--HG--
extra : moz-landing-system : lando
2019-07-22 17:50:05 +00:00
L. David Baron
1ac8b69a03 Bug 1300293 - Pass the line box from nsBidiPresUtils::ResolveParagraph through EnsureBidiContinuation to nsIFrame::InsertFrames. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D38798

--HG--
extra : moz-landing-system : lando
2019-07-22 17:50:05 +00:00
L. David Baron
64f57e5d7f Bug 1300293 - Make nsBidiPresUtils track line boxes separately for the progress of TraverseFrames and ResolveParagraph. r=jfkthame
TraverseFrames gathers a bunch of frames into an array, and then at
forced breaks or the end of the block flushes its array by running
ResolveParagraph.  ResolveParagraph can sometimes cause lines to break,
so lines recorded during TraverseFrames may no longer be accurate during
ResolveParagraph.

It may look like the lines are only needed during ResolveParagraph and
we could handle the one issue in TraverseFrames that deals with
preformatted newlines by restructuring the code a tad.  However, in the
next patch, there will be an additional caller that needs the current
line during TraverseFrames to pass to CreateContinuation, which makes
such a structure less plausible.

This will also make it easier to produce a current line for the call to
SplitInlineAncestors within ResolveParagraph, which will be done in the
patch after the next.

Differential Revision: https://phabricator.services.mozilla.com/D38797

--HG--
extra : moz-landing-system : lando
2019-07-22 18:55:56 +00:00
L. David Baron
d81370ebeb Bug 1300293 - Track the block and line list that each frame in BidiParagraphData::mLogicalFrames came from. r=jfkthame
This information is used in the next patch, which will use that information to
maintain a line iterator while iterating over mLogicalFrames (and will remove
the stored mLinePerFrame).

Differential Revision: https://phabricator.services.mozilla.com/D38796

--HG--
extra : moz-landing-system : lando
2019-07-22 17:50:04 +00:00
L. David Baron
9b308e257b Bug 1567036 - Clear BidiParagraphData::mPrevFrame when ResolveParagraphWithinBlock creates a new continuation, which invalidates its relationship to the line iterator. r=jfkthame
This patch adds an assertion that documents the invariant that this code
needs to maintain to manage the line iterator correctly.  Failing to
meet that invariant would also cause additional assertions in my
work-in-progress on bug 1300293.

It then adds two assignments of mPrevFrame to null that make that
assertion hold.

The first assignment to null is tested by a number of tests already in
our test suite, including
layout/reftests/w3c-css/received/css-writing-modes/block-plaintext-004.html
and layout/reftests/bidi/unicode-bidi-plaintext.html , which would hit
the added assertion if that assignment to null were not present.

The second assignment to null was untested in our test suite (though it
showed up when doing view-source: of https://html.spec.whatwg.org/ ), so
I've added a reftest (1567036-1.html) that hits the added assertion if
that second assignment to null is not present.

Differential Revision: https://phabricator.services.mozilla.com/D38438

--HG--
extra : moz-landing-system : lando
2019-07-18 20:09:04 +00:00
L. David Baron
ce547cd6f5 Bug 1566945 - Add a parameter to nsContainerFrame::InsertFrames for aPrevFrame's line box. r=dholbert
For now, always pass null, except when passing it through from one
overload to another.

Differential Revision: https://phabricator.services.mozilla.com/D38389

--HG--
extra : moz-landing-system : lando
2019-07-17 23:34:45 +00:00
Ting-Yu Lin
307ef73912 Bug 1524431 Part 2 - Check IsBidiSplittable() before processing the ancestor frames. r=jfkthame
The idea is to check IsBidiSplittable() in more places to prevent fixed
continuations created by column-span from becoming fluid ones.

Differential Revision: https://phabricator.services.mozilla.com/D34093

--HG--
extra : moz-landing-system : lando
2019-06-11 19:27:57 +00:00
Ting-Yu Lin
6904399bd9 Bug 1524431 Part 1 - Revert Bug 1520722 Part 2. r=jfkthame
This reverts the modification to nsBidiPresUtils.cpp in Bug 1520722 Part
2, but keeps the test added. Next part will fix the problem in a proper
way.

Differential Revision: https://phabricator.services.mozilla.com/D34092

--HG--
extra : moz-landing-system : lando
2019-06-11 16:21:57 +00:00
Cameron McCormack
112bcc43db Bug 1554461 - Use an array to store nsContinuationStates when the number of them is low. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D32617

--HG--
extra : moz-landing-system : lando
2019-05-31 11:42:42 +00:00
Cameron McCormack
e82b3826f9 Bug 1553378 - Devirtualize calls to GetText() / TextLength() when we know we have a Text node. r=smaug,jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D32100
2019-05-22 15:18:48 +10:00
Masayuki Nakano
9165a150a1 Bug 1540930 - Make nsPresContext use mozilla::PresShell directly rather than via nsIPresShell r=emilio
`nsPresContext` should use `mozilla::PresShell` directly instead of
`nsIPresShell`.  This patch makes it.

Unfortunately, `nsPresContext` and `nsIFrame` have `PresShell()`.  Therefore,
we cannot use `PresShell*` in its methods so that this patch uses `mozilla::`
namespace prefix.

It might be better to rename them as `PresShellPtr()` in another bug.

Differential Revision: https://phabricator.services.mozilla.com/D25721

--HG--
extra : moz-landing-system : lando
2019-04-03 12:40:26 +00:00
Ryan Hunt
b936c00a65 Bug 1523969 part 14 - Move method definition inline comments to new line in 'layout/'. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D21115

--HG--
extra : rebase_source : 4d65c07d8822f3a54ac881b5d0f55468ce884554
2019-02-25 16:09:24 -06:00
Ting-Yu Lin
6694012956 Bug 1527519 Part 2 - Replace some nsLayoutUtils::GetAsBlock() with nsIFrame::IsBlockFrameOrSubclass(). r=mats
Depends on D19860

Differential Revision: https://phabricator.services.mozilla.com/D19861

--HG--
extra : moz-landing-system : lando
2019-02-15 01:38:04 +00:00
Ting-Yu Lin
97005f50c2 Bug 1520722 Part 2 - When removing bidi continuations, go no further than the block which needs resolution. r=dbaron
When doing bidi resolution for column-content blocks, we may still
traverse the parent chain up in RemoveBidiContinuation, reach
nsColumnSetFrame, and accidentally convert nsColumnSetFrame's
continuation into fluid ones.

Differential Revision: https://phabricator.services.mozilla.com/D17551

--HG--
extra : moz-landing-system : lando
2019-02-01 06:14:27 +00:00
Ting-Yu Lin
925c1edf69 Bug 1521982 - Adjust callers of nsIFrame::List() in nsBidiPresUtils to stop passing 0 as a const char* argument. r=dholbert
This patch is similar to Bug 1503420 Part 1.

nsIFrame::List()'s second argument should be a const char*, not an
integer. It'll crash if we pass 0 as const char*. Fix the bug by
omitting the argument because the default value of the argument is an
empty string.

Differential Revision: https://phabricator.services.mozilla.com/D17300

--HG--
extra : moz-landing-system : lando
2019-01-23 02:24:46 +00:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Cameron McCormack
1ea7c3efc9 Bug 1511854 - Part 2: Fix some more formatting oddities in layout/ after the clang-format. r=TYLin
Depends on D13686

Differential Revision: https://phabricator.services.mozilla.com/D13775

--HG--
extra : moz-landing-system : lando
2018-12-05 18:44:05 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Daniel Holbert
f7ce2706a7 Bug 1509972 part 1: Remove unnecessary nsAutoPtr includes from files in layout/base. r=TYLin
In each file touched by this commit, there were no mentions of nsAutoPtr
besides the #include.

I verified that the folder layout/base still builds successfully in
non-unified mode after this patch, too. So, none of these files are secretly
using nsAutoPtr and depending on some other .cpp file to provide the header.

Differential Revision: https://phabricator.services.mozilla.com/D12993

--HG--
extra : moz-landing-system : lando
2018-11-26 22:12:20 +00:00