Closed Bug 1630704 Opened 5 years ago Closed 4 years ago

Merge nsFrame into nsIFrame

Categories

(Core :: Layout, task, P3)

task

Tracking

()

RESOLVED FIXED
mozilla80
Tracking Status
firefox80 --- fixed

People

(Reporter: saschanaz, Assigned: saschanaz)

References

Details

Attachments

(28 files, 1 obsolete file)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review

nsFrame and nsIFrame are effectively same, so we want to merge them.

What are the set of methods that would become public methods on nsIFrame if we do this? Should they be marked as layout-internal in some way? (Whether they should be probably depends on what they are...)

We want to merge nsFrame into nsIFrame, so this patch merges nsBox first which is the superclass of nsFrame.

Assignee: nobody → krosylight
Status: NEW → ASSIGNED

NS_FRAME_TRACE_MSG is identical to NS_FRAME_TRACE, no need to keep it.

nsBidi.h currently includes nsIFrame.h only to import nsBidi* types. This patch moves those types to nsBidi.h.

Priority: -- → P3

It doesn't seem to be relevant here, EventDispatcher.cpp doesn't include nsBidi nor nsIFrame.

Flags: needinfo?(krosylight)

This patch merges nsFrame methods to nsIFrame, where merging only requires simple signature changes.

Attachment #9143192 - Attachment is obsolete: true
Pushed by krosylight@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/39acb94eae20 Merge standalone overrriding methods to nsIFrame r=emilio

This follows D73070. Remainings are Init(), DestroyFrom(), and several functions that are not used by nsIFrame methods, which will be also merged in separate patch(s).

Pushed by krosylight@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/599181b1842e Merge overridding nsFrame methods to nsIFrame r=emilio

Those methods are only used in subclasses of nsContainerFrame.

Pushed by krosylight@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e32b21634a0c Part 6: Move helper methods to nsContainerFrame r=emilio
Pushed by krosylight@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b46694bafa8a Part 7: Move layout debugging methods to nsIFrame r=emilio

Is there anything left to do in this bug? Should we close this?

Some functions, mainly debugging only ones are remaining. Those should be moved before closing this.

Pushed by krosylight@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1caef46ab4cc Part 8: Move FireDOMEvent() r=emilio https://hg.mozilla.org/integration/autoland/rev/2366fa8dc5fd Part 9: Move GetFrameName() r=emilio https://hg.mozilla.org/integration/autoland/rev/3c593e12fbd2 Part 10: Move ShowFrameBorders() and friends r=emilio https://hg.mozilla.org/integration/autoland/rev/c03feb270548 Part 11: Move ShouldApplyOverflowClipping() r=emilio https://hg.mozilla.org/integration/autoland/rev/f4f14bc9ba47 Part 12: Move GetLineNumber() r=emilio
Pushed by krosylight@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/eb454367513b Part 13: Move GetFrameId() and macros r=emilio https://hg.mozilla.org/integration/autoland/rev/7716518d4f61 Part 14: Move GetFirst/LastLeaf() r=emilio https://hg.mozilla.org/integration/autoland/rev/dfcc82f0f389 Part 15: Move GetNextPrevLineFromeBlockFrame() r=emilio https://hg.mozilla.org/integration/autoland/rev/07666f80b7f9 Part 16: Move CalcContentOffsetsFromFramePoint() r=emilio https://hg.mozilla.org/integration/autoland/rev/968ebb05635e Part 17: Move PeekBackwardAndForward() r=emilio https://hg.mozilla.org/integration/autoland/rev/b9685b190cef Part 18: Move FinishReflowWithAbsoluteFrames() r=emilio https://hg.mozilla.org/integration/autoland/rev/a26000df3ded Part 19: Move CreateView() r=emilio https://hg.mozilla.org/integration/autoland/rev/99bdf3e3e02a Part 20: Move CorrectStyleParentFrame() r=emilio https://hg.mozilla.org/integration/autoland/rev/96f162d88448 Part 21: Move debugging trace/display methods r=emilio https://hg.mozilla.org/integration/autoland/rev/0251d93c3af1 Part 22: Move DidReflow() r=emilio https://hg.mozilla.org/integration/autoland/rev/5d78b02cb493 Part 23: Move Display methods r=emilio
Pushed by krosylight@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/631e19f986e4 Move Init/DestroyFrom to nsIFrame r=emilio
Attachment #9160634 - Attachment description: Bug 1630704 - Construct nsIFrame from NS_NewEmptyFrame r=emilio → Bug 1630704 - Part 24: Construct nsIFrame from NS_NewEmptyFrame r=emilio
Attachment #9160635 - Attachment description: Bug 1630704 - Move ReflowInput import to nsIFrame.h r=emilio → Bug 1630704 - Part 25: Move ReflowInput import to nsIFrame.h r=emilio
Attachment #9160670 - Attachment description: Bug 1630704 - Remove nsFrame from inheritance chain r=emilio → Bug 1630704 - Part 26: Remove nsFrame from inheritance chain r=emilio
Attachment #9160671 - Attachment description: Bug 1630704 - Remove nsFrame r=emilio → Bug 1630704 - Part 27: Remove nsFrame r=emilio
Attachment #9160634 - Attachment description: Bug 1630704 - Part 24: Construct nsIFrame from NS_NewEmptyFrame r=emilio → Bug 1630704 - Part 25: Construct nsIFrame from NS_NewEmptyFrame r=emilio
Attachment #9160635 - Attachment description: Bug 1630704 - Part 25: Move ReflowInput import to nsIFrame.h r=emilio → Bug 1630704 - Part 26: Move ReflowInput import to nsIFrame.h r=emilio
Attachment #9160670 - Attachment description: Bug 1630704 - Part 26: Remove nsFrame from inheritance chain r=emilio → Bug 1630704 - Part 27: Remove nsFrame from inheritance chain r=emilio
Attachment #9160671 - Attachment description: Bug 1630704 - Part 27: Remove nsFrame r=emilio → Bug 1630704 - Part 28: Remove nsFrame r=emilio
Pushed by krosylight@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9497f465b69b Part 25: Construct nsIFrame from NS_NewEmptyFrame r=emilio https://hg.mozilla.org/integration/autoland/rev/d30b9ebb50b3 Part 26: Move ReflowInput import to nsIFrame.h r=emilio https://hg.mozilla.org/integration/autoland/rev/529c7022e64b Part 27: Remove nsFrame from inheritance chain r=emilio https://hg.mozilla.org/integration/autoland/rev/73880713f199 Part 28: Remove nsFrame r=emilio
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: