Граф коммитов

17 Коммитов

Автор SHA1 Сообщение Дата
Bobby Holley 8fb4fb3d6c Bug 1393791 - Stop unbinding native-anonymous content off a script runner. r=emilio
The failure mode in the attached crashtest is an inconsistency in the flattened
tree. Specifically, we null out mVideoControls in an nsVideoFrame, but defer
the UnbindFromTree call on that NAC element, which measn that its mParent still
points to the nsVideoFrame's mContent. Because all this stuff runs off of script
runners, and the anonymous content destroyer is not guaranteed to run before
other potential script runners, we end up running arbitrary script while the
tree mismatch exists. This script calls back into ProcessPendingRestyles, which
causes trouble.

We could build a separate deferral mechanism, but it's not clear that we actually
need to defer the unbind anymore. The deferred unbind was added in bug 489008,
which predated a lot of simplifications in layout/dom interaction.

MozReview-Commit-ID: 1JYAhiXKVJC
2017-08-27 15:29:36 -07:00
Nicholas Nethercote f941156987 Bug 1386600 - Change nsIStringBundle methods to return |AString| instead of |wstring|. r=emk,sr=dbaron.
This removes about 2/3 of the occurrences of nsXPIDLString in the tree. The
places where nsXPIDLStrings are null-checked are replaced with |rv| checks.

The patch also removes a couple of unused declarations from
nsIStringBundle.idl.

Note that nsStringBundle::GetStringFromNameHelper() was merged into
GetStringFromName(), because they both would have had the same signature.

--HG--
extra : rebase_source : ac40bc31c2a4997f2db0bd5069cc008757a2df6d
2017-08-04 14:40:52 +10:00
Hiroyuki Ikezoe 1da5513453 Bug 1377648 - Check summary frame instead of summary element on removing the summary. r=heycam
In case of removing summary element, we need to check details *frame* children
instead of details *element* children since the summary element has been
already removed from details element children list.

MozReview-Commit-ID: GEzDId9CYf9

--HG--
extra : rebase_source : 50834606413b916a3c0d6074a7a52e8bdbe845a0
2017-07-05 15:52:37 +09:00
Mats Palmgren a254b64145 Bug 1364805 part 4 - Remove the now unused LayoutFrameType values from the ctors. r=jfkthame
MozReview-Commit-ID: 1RSDoc3pQXf
2017-05-26 12:11:11 +02:00
Mats Palmgren 1242172259 Bug 1364805 part 2 - Add a nsIFrame::mClass field and propagate the concrete class' value up the ctor chain. r=jfkthame
nsIFrame::mClass is of type enum class nsQueryFrame::ClassID which is
a strict subset of the nsQueryFrame::FrameIID values.  For a concrete
frame class, its FrameIID is the same numeric value as its ClassID.

MozReview-Commit-ID: 1N0AkCGo1ol
2017-05-26 12:11:11 +02:00
Emilio Cobos Álvarez 23bce99ae1 Bug 1361051: rename mozilla::FrameType to mozilla::LayoutFrameType. r=xidorn
This avoids conflicts with mozilla::dom::FrameType.

MozReview-Commit-ID: 7aEMbHRaTFk

--HG--
extra : rebase_source : 2d01321f5ce0ec8c0e3f70984674f82678034b3c
2017-05-01 19:32:52 +02:00
Emilio Cobos Álvarez e44543aad4 Bug 1360241: Devirtualize nsIFrame::GetType. r=heycam
MozReview-Commit-ID: 5Nzhyta5Hle

--HG--
extra : rebase_source : c2e9d4bfb9239f5e851d110cd7dff98c1e1a8d8b
2017-04-30 17:30:08 +02:00
Ting-Yu Lin a22cb5f094 Bug 1321166 - Wrap DetailsFrame's definition and implementation in mozilla namespace. r=dholbert
MozReview-Commit-ID: 24cUKrWKRe

--HG--
extra : rebase_source : f9c1c0bc99bf77a1312fc408e4bc5c352efe0f37
2016-12-01 13:18:03 +08:00
Ting-Yu Lin 570d1f0e83 Bug 1304441 Part 3 - Insert main summary's frame construction item at front of the list. r=bz
Change the logic that moves the main summary to the front from operating
on generated frames in DetailsFrame::SetInitialChildList() to operating
on frame construction item list in AddFrameConstructionItemsInternal()
so that it will be correct when cooperating with ::first-line.

The root cause of the bug reported is because when specifying
::first-line on details element, the first frame of summary element,
which is generated due to ib-split, will be wrapped in nsFirstLineFrame.
The original code fails to find the summary frame in the wrapper frame
and triggers assertion because of the second ib-split summary frame. To
fix that, we need to descend into the child list of wrapper frames when
checking the main summary.

Add original test case as a crashtest as well as reftests to clearly
reproduce the issue.

Note that in the reftest, the blue color in ::first-line is applied
incorrectly to the second line in the summary due to bug 520605.

MozReview-Commit-ID: Bv4Vcvxp6pY
2016-10-05 14:43:32 +08:00
Ting-Yu Lin 4dc7ab9b9e Bug 1304441 Part 2 - Extract main summary checking code to a function. r=bz
* Change the assertion to non-fatal to make it easier to debug.
* Change the wording per bug 1304441 comment 11.

MozReview-Commit-ID: 1UJXhC4qkrx
2016-10-05 14:43:31 +08:00
Ting-Yu Lin 13f0d4632f Bug 1299753 Part 2 - Create block formatting context for DetailsFrame if needed. r=bz
nsCSSFrameConstructor::ConstructNonScrollableBlock() has logic to
determine whether to create a block formatting context for a block
frame. I refactor the function to make it reusable by
nsCSSFrameConstructor::ConstructDetailsFrame().

Also, make NS_NewBlockFrame() accept two arguments as other frame
factory functions so that it could be pointed by BlockFrameCreationFunc.
NS_NewBlockFormattingContext is changed accordingly.

The construction for a scrollable DetailsFrame will be further revised
in Part 3.

MozReview-Commit-ID: 8TwG9YMyGva

--HG--
extra : rebase_source : fffdd974df81a809a607491d2534aa8dd2d13ab1
2016-09-07 14:45:42 +08:00
Ting-Yu Lin 727557d79f Bug 1258657 Part 2 - Remove SummaryFrame. r=bz
We can use nsBlockFrame to render summary elements.

This change undoes "Bug 591737 - Add SummaryFrame" and remove
summaryFrame usage in DetailsFrame and nsCSSFrameConstructor.

MozReview-Commit-ID: 4aJvHVPfsBb

--HG--
extra : rebase_source : 8e197fa61cfcbaf066a8a510aef7c92adddd30f2
2016-04-13 13:34:14 +08:00
Ting-Yu Lin 6276d59933 Bug 1245424 Part 1 - Fix assert for a display:none summary on debug build. r=bz
If the main summary element has 'display: none' style, it won't
generates a summary frame as the first child of the details.

However, if a details element have two summaries and the first summary
has 'display: none', the second summary still generates a SummaryFrame
event if it isn't the main summary. So instead of checking on the
SummaryFrame as before, I check the content tree for the main summary by
using the idea in bug 1245424 comment 8. Another reason might be the
potential removal of SummaryFrame in bug 1258657.

MozReview-Commit-ID: H0evZ17zj5k

--HG--
extra : rebase_source : 1aad3ad1d31dc277771013f92eace5cefa7d6112
2016-03-24 15:05:29 +08:00
Ting-Yu Lin d6a5df3abe Bug 1225752 - Localize the description of default summary. r=bz
--HG--
extra : commitid : 1fzJyvyuijQ
extra : rebase_source : ec39cfe4c4a147aaaa455071b9b70f008d5fbfe2
2016-02-04 01:48:00 +08:00
Ting-Yu Lin fd982b69ea Bug 591737 - Provide a default summary element by DetailsFrame. r=bz
If a <details> lacks a direct <summary> child, we need to construct a
default one.

--HG--
extra : commitid : ApnP20Mrr33
extra : rebase_source : 4b059f4e7fa32bac665487aa8a266ba58597b184
2016-01-20 23:20:41 +08:00
Ting-Yu Lin ea65853708 Bug 591737 - Construct details and summary in nsCSSFrameConstructor. r=bz
--HG--
extra : commitid : 7tnA5fqdD6L
extra : rebase_source : 452368859fb99183605edcf47fd48ff026bf3a50
2016-02-02 17:39:49 +08:00
Ting-Yu Lin cff36a1352 Bug 591737 - Add DetailsFrame. r=bz
--HG--
extra : commitid : C6hHNXWpwO8
extra : rebase_source : 47b37776c4f029879bd02c0477e885104b2aaed5
2016-01-20 23:20:41 +08:00