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

456 Коммитов

Автор SHA1 Сообщение Дата
Ting-Yu Lin 8cd9090bc6 Bug 1674863 Part 2 - Use strong types to define fallback intrinsic width, height, and size. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D95578
2020-11-03 19:54:44 +00:00
Ting-Yu Lin 6ef06ff583 Bug 1660122 Part 7 - Implement GetAspectRatio(). r=emilio
This patch moves the preferred aspect-ratio calculation from each
replaced elements' GetIntrinicRatio() into GetAspectRatio(), because
they share the same logic.

For nsImageFrame, the cached mIntrinsicRatio now stores only the image's
intrinsic ratio, not considering the aspect-ratio property.

This patch fixed "object-fit:contain" for canvas, image because
GetIntrinicRatio() no longer considers aspect-ratio. This also fixed
replaced elements' size when both "aspect-ratio:<ratio>" and
"contain:size" is specified.

This also makes us pass some of the aspect-ratio tests because we change
GetIntrinicRatio() into GetAspectRatio() in
nsLayoutUtils::IntrinsicForAxis() in Part5, which is used by nsBlockFrame
(via nsLayoutUtils::IntrinsicForContainer) to implement GetMinISize().

Differential Revision: https://phabricator.services.mozilla.com/D91229
2020-09-29 22:33:05 +00:00
Ting-Yu Lin e0c2b95d53 Bug 1660122 Part 5 - Add nsIFrame::GetAspectRatio() skeleton, and adapt existing callers. r=emilio
For now, GetAspectRatio() is just an alias for GetIntrinicRatio(). In
Part 7, we're going to have GetAspectRatio() consider aspect-ratio
property so that each replaced elements only need to report their
intrinsic ratio via GetIntrinicRatio(). Non-replaced element can also
call GetAspectRatio() to get the ratio suitable to calculate layout
size.

As of this patch, all the replaced elements'
GetIntrinsicRatio() (including nsImageFrame::mIntrinsicRatio) consider
aspect-ratio properties (added in bug 1639963). This is wrong, because
it affects replaced element's content ratio. So we adapt only callers
[1] involving the computation of the frame's external sizes to retain
the behavior after Part 7.

This change shouldn't change behavior.

[1] Exceptions include 1) a caller in nsIFrame::ComputeSize() checking
the frame has no intrinsic ratio; 2) other frame classes implementing
nsIFrame::GetIntrinsicRatio() by calling their parent's
GetIntrinicRatio(). nsSubDocumentFrame::GetIntrinicRatio() is an
example.

Differential Revision: https://phabricator.services.mozilla.com/D91227
2020-09-29 22:32:50 +00:00
Ting-Yu Lin cd2eb87c21 Bug 1660122 Part 3 - Make nsIFrame::GetIntrinsicRatio() a const method. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D91225
2020-09-29 22:32:40 +00:00
Ting-Yu Lin 09ed243e29 Bug 1660122 Part 2 - Mark more methods in nsHTMLCanvasFrame and nsSubDocumentFrame 'const'. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D91224
2020-09-29 22:32:33 +00:00
Emilio Cobos Álvarez a4e300194a Bug 1557645 - Clone OOP iframes in the right process. r=nika
This works, though probably we want to do some follow-up tweaks, like
the adding of the onload blocker and so on, so that we can avoid the
UpdateDimensions hack.

We may also want a PrintObject in the nsPrintJob tree, perhaps...

Differential Revision: https://phabricator.services.mozilla.com/D90310
2020-09-22 09:57:27 +00:00
Cameron McCormack a9b6211496 Bug 1658343 - Propagate intrinsic sizes from SVG documents in embed/object to parent using IPC. r=kmag,dholbert
Differential Revision: https://phabricator.services.mozilla.com/D90055
2020-09-21 02:09:57 +00:00
Ting-Yu Lin ecca275fc4 Bug 1168478 Part 2 - Combine the border and padding arguments for nsIFrame::ComputeSize(). r=dholbert
Also combine the border and padding arguments for
nsContainerFrame::ComputeSizeWithIntrinsicDimensions(), too. This method
is used as a helper to implement ComputeSize() for various replaced
elements. Its callers are all within nsIFrame's derived classes'
overridden methods, so I'm not bothering to convert them in a separate
patch.

This change shouldn't change behavior.

Differential Revision: https://phabricator.services.mozilla.com/D90064
2020-09-14 20:42:22 +00:00
Ting-Yu Lin ff5d92f454 Bug 1168478 Part 1 - Combine the border and padding argument for nsIFrame::ComputeAutoSize(). r=dholbert
Also, revise the nsIFrame::ComputeAutoSize()'s documentation.

This change shouldn't change behavior.

Differential Revision: https://phabricator.services.mozilla.com/D90063
2020-09-14 20:39:17 +00:00
Boris Chiou 0b7ae2d7e9 Bug 1639963 - Support aspect-ratio for svg object and iframe (i.e. nsSubDocumentFrame). r=emilio
When <object> targets to a svg image, we use nsSubDocumentFrame. The
intrinsic ratio should be overridden by aspect-ratio while computing
its size on this frame.

This update in nsSubDocumentFrame also works in iframe.

Differential Revision: https://phabricator.services.mozilla.com/D79362
2020-08-17 07:07:38 +00:00
Boris Chiou 5b6832c5f3 Bug 1639963 - Define the default size for replaced elements. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D81006
2020-08-17 07:10:39 +00:00
Boris Chiou dd3c20ccd8 Bug 1639963 - Update the API of nsIFrame::ComputeSize for aspect-ratio. r=emilio
In order to apply Automatic content-based minimum sizes, we have to know
the content size on the block axis. We cannot get the content size until
we finish the reflow of the child frames. So we have to keep a flag
which indicates the size of the ratio-dependent axis is overrideen by
aspect-ratio in ReflowInput.

We will set the correct return value in the next patch, For now, we
always return AspectRatioUsage::None.

Differential Revision: https://phabricator.services.mozilla.com/D79335
2020-08-17 06:57:56 +00:00
Emilio Cobos Álvarez 6f85f8c453 Bug 1656081 - Cleanup iframe sizing so that it does the same as every other replaced element. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D85386
2020-08-16 18:45:39 +00:00
Glenn Watson ffd4969093 Bug 1655376 - Fix early rounding of iframe origin for WR. r=kats,aosmond
WR handles snapping of primitives and clips, and prefers the input
data to be exact floats. This fixes an inconsistency between the
clip and bounds of iframes in WR when there is a fractional
device-pixel ratio set.

Differential Revision: https://phabricator.services.mozilla.com/D85219
2020-07-29 13:09:53 +00:00
Kagami Sascha Rosylight 1afcf4d621 Bug 1630704 - Part 27: Remove nsFrame from inheritance chain r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81864
2020-07-06 22:29:42 +00:00
Simon Giesecke cd8b8939b9 Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Kagami Sascha Rosylight fdd4c54d63 Bug 1647525 - Use HasAnyStateBits() in nsSubDocumentFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81208
2020-06-27 13:17:36 +00:00
Kartikaya Gupta b0ee5dd871 Bug 1641246 - Remove nsDisplayResolution. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D77111
2020-05-27 22:17:09 +00:00
Nika Layzell e6a9e27a19 Bug 1637088 - Delay creating BrowserBridgeChild until after new PBrowser has been created, r=farre,emilio
Differential Revision: https://phabricator.services.mozilla.com/D75614
2020-05-25 06:06:30 +00:00
Ting-Yu Lin 162c8d3a67 Bug 1638928 Part 2 - Rename nsIFrame's GetChildLists() to ChildLists(). r=mats
This patch is generated by using my editor's rename functionality.

In the next patch, `nsIFrame::` prefix is going to be removed manually
from all the ChildLists() calls.

Differential Revision: https://phabricator.services.mozilla.com/D75893
2020-05-19 12:37:37 +00:00
Ting-Yu Lin 07b47bf217 Bug 1635319 Part 1 - Add nsIFrame::GetChildLists(), and use range-based for loops instead of ChildListIterator in layout/generic/. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D75652
2020-05-18 01:09:34 +00:00
Kartikaya Gupta 2b2b6e0def Bug 1622360 - Remove render root parameter to CreateOrRecycleWebRenderUserData. r=jrmuizel
Depends on D74948

Differential Revision: https://phabricator.services.mozilla.com/D74949
2020-05-15 00:04:08 +00:00
Miko Mynttinen 1131025246 Bug 1554499 - Part 12: Remove index from nsDisplayOwnLayer r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D74091
2020-05-11 16:58:26 +00:00
Botond Ballo 7cf10dca6d Bug 1556556 - Remove many uses of IgnoreRootScrollFrame. r=mstange,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D68913
2020-05-05 19:23:35 +00:00
Daniel Varga d0212aae27 Backed out changeset a8ca75f3002d (bug 1633985) on request by dev 2020-04-30 01:58:25 +03:00
Glenn Watson ab3883a1e7 Bug 1633985 - Remove unused clip parent and backface flag from push_iframe r=kats,nical
Differential Revision: https://phabricator.services.mozilla.com/D73006
2020-04-29 21:54:14 +00:00
Dorel Luca f906702a66 Backed out changeset 0a9371673354 (bug 1633985) for Webrender bustages. CLOSED TREE 2020-04-30 00:03:23 +03:00
Glenn Watson c222acf8ae Bug 1633985 - Remove unused clip parent and backface flag from push_iframe r=kats,nical
Differential Revision: https://phabricator.services.mozilla.com/D73006
2020-04-29 17:14:50 +00:00
Csoregi Natalia b073baab86 Backed out 30 changesets (bug 1556556, bug 1631568) for multiple mochitest failures. CLOSED TREE
Backed out changeset edd529f7a9c5 (bug 1631568)
Backed out changeset 1cc0881e244b (bug 1631568)
Backed out changeset ed3c1e85d5e3 (bug 1556556)
Backed out changeset 38ffc6215bbf (bug 1556556)
Backed out changeset 03c2c25d8023 (bug 1556556)
Backed out changeset 9c717eb067b8 (bug 1556556)
Backed out changeset 98e26bc98b85 (bug 1556556)
Backed out changeset 05a6a581e755 (bug 1556556)
Backed out changeset 867946cf05bb (bug 1556556)
Backed out changeset 20d72a334530 (bug 1556556)
Backed out changeset 2c62e61d9054 (bug 1556556)
Backed out changeset 62a223d057d2 (bug 1556556)
Backed out changeset 2c5d55a1f0b1 (bug 1556556)
Backed out changeset 700447945b4e (bug 1556556)
Backed out changeset 93190ae4f5ff (bug 1556556)
Backed out changeset a7bd34d961bb (bug 1556556)
Backed out changeset fccd1d3c7189 (bug 1556556)
Backed out changeset 24056e47183d (bug 1556556)
Backed out changeset 204881474cc1 (bug 1556556)
Backed out changeset 387320881876 (bug 1556556)
Backed out changeset be8f5eb58460 (bug 1556556)
Backed out changeset 629c58a9166b (bug 1556556)
Backed out changeset 4312b2b5dda8 (bug 1556556)
Backed out changeset d11dbf6403a5 (bug 1556556)
Backed out changeset 95c54c023779 (bug 1556556)
Backed out changeset 80fcb7e71188 (bug 1556556)
Backed out changeset d75a4ecb0d47 (bug 1556556)
Backed out changeset 903c4de34e7a (bug 1556556)
Backed out changeset f15334a3e803 (bug 1556556)
Backed out changeset 9553e99137ea (bug 1556556)
2020-04-28 12:43:11 +03:00
Botond Ballo b11a399d42 Bug 1556556 - Remove many uses of IgnoreRootScrollFrame. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D68913
2020-04-28 02:25:51 +00:00
Ting-Yu Lin 5610a9711b Bug 1627398 Part 1 - Convert nsIFrame::List flags to EnumSet. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D69914

--HG--
extra : moz-landing-system : lando
2020-04-08 00:22:19 +00:00
Emilio Cobos Álvarez fcff6b1a69 Bug 1624829 - Use FunctionRef for various Enumerate* callbacks. r=edgar
This avoids a bunch of ugly casts and void pointers, without much overhead
(unlike std::function or such).

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

--HG--
extra : moz-landing-system : lando
2020-03-26 12:44:47 +00:00
Timothy Nikkel fbbb775ffc Bug 1582653. Need to clear any associated display items of a nsSubDocumentFrame when the frame loader changes. r=mattwoodrow
parser/htmlparser/tests/crashtests/515533-1.html most cleanly creates this crash if you repeat it many times.

It contains an iframe to a local file (so it's a same process iframe). The document in the iframe has an inline script that does

  window.location.replace("data:text/plain,");

since crashtests have the pref browser.tabs.remote.dataUriInDefaultWebProcess set (to get more testing of fission) this makes the iframe now in a different process from it's parent.

When the bug happens we create the retained nsDisplaySubDocument before the process change, the document inside the iframe has a presshell, and importantly, it does not yet have a root frame. Then the remoteness change happens on the iframe, ResetFrameLoader is called on the nsSubDocumentFrame to remove the old frame loader. So now the nsSubDocumentFrame can't find a presshell (either via views or the frameloader).

The reason that the document in the iframe not having a root frame when the nsDisplaySubDocument is created is important is because if we had a root frame then the root frame would be the mFrame of the nsDisplaySubDocument and when the root frame got destroyed for the remoteness change that frame destruction would make sure that the nsDisplaySubDocument cannot be re-used. The nsSubDocumentFrame sticks around though, so the nsDisplaySubDocument doesn't think anything changed.

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

--HG--
extra : moz-landing-system : lando
2020-03-08 22:17:27 +00:00
Timothy Nikkel f9339c12e6 Bug 1614233. Properly clip nsDisplayRemote. r=mattwoodrow
The existing code just clipped to a rect. We need to do the same clipping that the non-remote code path does which also handles border radius.

The existing code is the from initial implementation of nsDisplayRemote in https://hg.mozilla.org/mozilla-central/rev/85d06279c8358a8e1c883aa670a20212b1039a90 so I suspect that clipping to the inner view bounds instead of the frame content box is not an important difference.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 07:17:43 +00:00
Csoregi Natalia 45b586ece5 Backed out changeset 4cfe2ced3cce (bug 1614233) for reftest failures on border-radius/iframe-1-ref.html. CLOSED TREE 2020-02-13 09:05:53 +02:00
Timothy Nikkel 635368bad8 Bug 1614233. Properly clip nsDisplayRemote. r=mattwoodrow
The existing code just clipped to a rect. We need to do the same clipping that the non-remote code path does which also handles border radius.

The existing code is the from initial implementation of nsDisplayRemote in https://hg.mozilla.org/mozilla-central/rev/85d06279c8358a8e1c883aa670a20212b1039a90 so I suspect that clipping to the inner view bounds instead of the frame content box is not an important difference.

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

--HG--
extra : moz-landing-system : lando
2020-02-11 19:00:59 +00:00
Hiroyuki Ikezoe d4fa8f4fad Bug 1599795 - Change the remote document rect to size in gfx. r=emilio
What we really needed in the first place was the size not the rect.

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

--HG--
extra : moz-landing-system : lando
2020-02-11 03:57:14 +00:00
Timothy Nikkel 4469780b7b Bug 1609837. Fix content rect offsets in nsDisplayRemote. r=mattwoodrow
There are two distinct fixes in this patch.

1) Fix the rect we pass to EffectsInfo for both webrender and non-webrender case. The rect needs to be in coordinates of the subdocument but it was including the border/padding of the containing iframe. I also intersected it with the content rect so it doesn't extend outside of the subdocument, this doesn't fix anything AFAIK. I didn't track what caused this, it was likely in the first iteration of this code.

2) For webrender we double included the content rect offset in the rect we passed to PushIFrame because GetContentRectLayerOffset already includes that offset. This part is a regression from bug 1406715.

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

--HG--
extra : moz-landing-system : lando
2020-01-17 07:53:52 +00:00
Emilio Cobos Álvarez 5e95f50f4f Bug 1606659 - Don't pass margin and scrollbar preferences to nsFrameLoader::Show. r=mattwoodrow
Instead, get them on the relevant code paths.

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

--HG--
extra : moz-landing-system : lando
2020-01-05 22:48:40 +00:00
Hiroyuki Ikezoe 04b4206ae2 Bug 1596317 - Use CallState for SubDocEnumFunc. r=smaug
`true` -> `CallState::Continue`
`false` -> `CallState::Stop`

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

--HG--
extra : moz-landing-system : lando
2019-12-19 07:58:45 +00:00
Bogdan Tara a96ffb25c5 Backed out 7 changesets (bug 1596317) for causing build bustages CLOSED TREE
Backed out changeset 0d3208fcb948 (bug 1596317)
Backed out changeset fe5554dc4115 (bug 1596317)
Backed out changeset 019de59cbc93 (bug 1596317)
Backed out changeset f4851472b087 (bug 1596317)
Backed out changeset a984cf515db8 (bug 1596317)
Backed out changeset d0da5bf9b4d4 (bug 1596317)
Backed out changeset abe5f2030dd9 (bug 1596317)
2019-12-19 06:49:39 +02:00
Hiroyuki Ikezoe 9e4bf031ae Bug 1596317 - Use CallState for SubDocEnumFunc. r=smaug
`true` -> `CallState::Continue`
`false` -> `CallState::Stop`

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

--HG--
extra : moz-landing-system : lando
2019-12-19 04:16:10 +00:00
Emilio Cobos Álvarez ac506d6f4b Bug 1603889 - Simplify the scrollbar preference setup. r=smaug
So much plumbing to pass an enum down.

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

--HG--
extra : moz-landing-system : lando
2019-12-15 22:56:23 +00:00
Emilio Cobos Álvarez 3ccc6c30ab Bug 1603313 - Subdocument enum callbacks should take a reference. r=bzbarsky
As they can never take null.

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

--HG--
extra : moz-landing-system : lando
2019-12-14 05:08:39 +00:00
jeffin143 4298d3f098 Bug 1601990 : convert NS_STYLE_POINTER_EVENTS_* to an enum class in nsStyleConsts.h r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D56203

--HG--
extra : moz-landing-system : lando
2019-12-12 10:24:16 +00:00
Gabriele Svelto 69790bc62e Bug 1600545 - Remove useless inclusions of header files generated from IDL files in accessible/, browser/, caps/, chrome/, devtools/, docshell/, editor/, extensions/, gfx/, hal/, image/, intl/, ipc/, js/, layout/, and media/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

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

--HG--
extra : moz-landing-system : lando
2019-12-06 09:16:44 +00:00
Kirk Steuber 9b781e6983 Bug 1448807 - Remove showWindowResizer from browser Custom Element r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D50274

--HG--
extra : moz-landing-system : lando
2019-10-30 13:46:55 +00:00
Daniel Holbert 547238dc03 Bug 1590639 part 1: Fix non-unified build issues in layout/generic. r=TYLin
The issues fall into these categories:
 - Files that used StaticPrefs::layout_XYZ() API or gfxVars::XYZ that needed an
   include. (Addressed by adding the missing include.)
 - Files that use mozilla::dom::XYZ or mozilla::gfx::XYZ without qualifying the
   namespace & without a 'using' decl. (Addressed by adding "using".)
 - A few other includes for types/inlines that were used without their header.

Depends on D50162

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

--HG--
extra : moz-landing-system : lando
2019-10-23 22:05:22 +00:00
Emilio Cobos Álvarez 59196e7850 No bug - remove silly assertion as OwnerDoc() never returns null.
Differential Revision: https://phabricator.services.mozilla.com/D47994

--HG--
extra : moz-landing-system : lando
2019-10-02 23:29:51 +00:00
Matt Woodrow 4ad92502db Bug 1580738 - Generate unique per-frame-keys for all nsDisplayOwnLayer call sites. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D47673

--HG--
extra : moz-landing-system : lando
2019-09-30 21:01:20 +00:00