From 2b5f3e87c8b0468cdc8ef62b491f019bb2180e81 Mon Sep 17 00:00:00 2001 From: g4jc Date: Fri, 28 Jun 2019 21:35:05 -0400 Subject: [PATCH 01/12] Issue #1142 - Remove uneeded assertion (#1145) Since unboxed objects were removed, isUnboxed is undefined. This causes a build failure when debuging is enabled. This patch fixes the issue by removing the uneeeded assertion. --- js/src/jit/MIR.h | 1 - 1 file changed, 1 deletion(-) diff --git a/js/src/jit/MIR.h b/js/src/jit/MIR.h index 0992768bf4..9076339f15 100644 --- a/js/src/jit/MIR.h +++ b/js/src/jit/MIR.h @@ -3785,7 +3785,6 @@ class MObjectState MOZ_MUST_USE bool initFromTemplateObject(TempAllocator& alloc, MDefinition* undefinedVal); size_t numFixedSlots() const { - MOZ_ASSERT(!isUnboxed()); return numFixedSlots_; } size_t numSlots() const { From db85a69fdb9e4487c1c57750dd8d8c7ed8242e5e Mon Sep 17 00:00:00 2001 From: Gaming4JC Date: Fri, 28 Jun 2019 23:02:15 -0400 Subject: [PATCH 02/12] Issue #1142 - Cleanup unused debug code for unboxed objects Also fixes an assertion during compile if debug is enabled since unboxed objects have been removed. --- js/src/jit/BaselineIC.cpp | 2 +- js/src/jscompartment.cpp | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/js/src/jit/BaselineIC.cpp b/js/src/jit/BaselineIC.cpp index d95d08edcd..2f20ffa4fe 100644 --- a/js/src/jit/BaselineIC.cpp +++ b/js/src/jit/BaselineIC.cpp @@ -289,7 +289,7 @@ DoTypeUpdateFallback(JSContext* cx, BaselineFrame* frame, ICUpdatedStub* stub, H case ICStub::SetProp_Native: case ICStub::SetProp_NativeAdd: case ICStub::SetProp_Unboxed: { - MOZ_ASSERT(obj->isNative() || obj->is()); + MOZ_ASSERT(obj->isNative()); jsbytecode* pc = stub->getChainFallback()->icEntry()->pc(script); if (*pc == JSOP_SETALIASEDVAR || *pc == JSOP_INITALIASEDLEXICAL) id = NameToId(EnvironmentCoordinateName(cx->caches.envCoordinateNameCache, script, pc)); diff --git a/js/src/jscompartment.cpp b/js/src/jscompartment.cpp index a48bb0ffec..6024a1768f 100644 --- a/js/src/jscompartment.cpp +++ b/js/src/jscompartment.cpp @@ -112,13 +112,6 @@ JSCompartment::~JSCompartment() js_delete(nonSyntacticLexicalEnvironments_), js_free(enumerators); -#ifdef DEBUG - // Avoid assertion destroying the unboxed layouts list if the embedding - // leaked GC things. - if (!rt->gc.shutdownCollectedEverything()) - unboxedLayouts.clear(); -#endif - runtime_->numCompartments--; } From c135f205d9818c935a8b9887c9df49bbe2513f3c Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Sat, 29 Jun 2019 11:26:21 -0400 Subject: [PATCH 03/12] [Pale Moon] Add a configure flag to functionally disable personas at build time --- application/palemoon/base/content/browser-addons.js | 3 ++- application/palemoon/base/content/browser.js | 2 ++ application/palemoon/base/content/browser.xul | 2 ++ application/palemoon/configure.in | 13 +++++++++++++ application/palemoon/confvars.sh | 3 +++ build/moz.configure/old.configure | 1 + 6 files changed, 23 insertions(+), 1 deletion(-) diff --git a/application/palemoon/base/content/browser-addons.js b/application/palemoon/base/content/browser-addons.js index f5c398f33a..630a0cf79c 100644 --- a/application/palemoon/base/content/browser-addons.js +++ b/application/palemoon/base/content/browser-addons.js @@ -263,7 +263,7 @@ var AddonsMgrListener = { onDisabled: function(aAddon) this.onUninstalled(), }; - +#ifdef MOZ_PERSONAS var LightWeightThemeWebInstaller = { handleEvent: function (event) { switch (event.type) { @@ -534,3 +534,4 @@ var LightweightThemeListener = { this.updateStyleSheet("url(" + themeData.headerURL + ")"); }, }; +#endif diff --git a/application/palemoon/base/content/browser.js b/application/palemoon/base/content/browser.js index 16b7c00199..a5d77a90de 100644 --- a/application/palemoon/base/content/browser.js +++ b/application/palemoon/base/content/browser.js @@ -1216,9 +1216,11 @@ var gBrowserInit = { placesContext.addEventListener("popuphiding", updateEditUIVisibility, false); #endif +#ifdef MOZ_PERSONAS gBrowser.mPanelContainer.addEventListener("InstallBrowserTheme", LightWeightThemeWebInstaller, false, true); gBrowser.mPanelContainer.addEventListener("PreviewBrowserTheme", LightWeightThemeWebInstaller, false, true); gBrowser.mPanelContainer.addEventListener("ResetBrowserThemePreview", LightWeightThemeWebInstaller, false, true); +#endif // Bug 666808 - AeroPeek support for e10s if (!gMultiProcessBrowser) { diff --git a/application/palemoon/base/content/browser.xul b/application/palemoon/base/content/browser.xul index ddc305a7b8..0a249afa97 100644 --- a/application/palemoon/base/content/browser.xul +++ b/application/palemoon/base/content/browser.xul @@ -53,8 +53,10 @@ titlemodifier_privatebrowsing="&mainWindow.titlemodifier; &mainWindow.titlePrivateBrowsingSuffix;" #endif titlemenuseparator="&mainWindow.titlemodifiermenuseparator;" +#ifdef MOZ_PERSONAS lightweightthemes="true" lightweightthemesfooter="browser-bottombox" +#endif windowtype="navigator:browser" macanimationtype="document" screenX="4" screenY="4" diff --git a/application/palemoon/configure.in b/application/palemoon/configure.in index eb02af3c0d..9d820f6d4f 100644 --- a/application/palemoon/configure.in +++ b/application/palemoon/configure.in @@ -36,3 +36,16 @@ MOZ_ARG_DISABLE_BOOL(sync, MOZ_SERVICES_SYNC=, MOZ_SERVICES_SYNC=1) +dnl ======================================================== +dnl = Disable Lightweight Themes +dnl ======================================================== +MOZ_ARG_DISABLE_BOOL(personas, +[ --disable-personas Disable lightweight theme support], + MOZ_PERSONAS=, + MOZ_PERSONAS=1) + +if test -n "$MOZ_PERSONAS"; then + AC_DEFINE(MOZ_PERSONAS) +fi + +AC_SUBST(MOZ_PERSONAS) \ No newline at end of file diff --git a/application/palemoon/confvars.sh b/application/palemoon/confvars.sh index 6216cba5b3..79681f0135 100644 --- a/application/palemoon/confvars.sh +++ b/application/palemoon/confvars.sh @@ -46,6 +46,9 @@ MOZ_PHOENIX=1 # Browser Feature: Status bar Component MOZ_BROWSER_STATUSBAR=1 +# Lightweight Themes +MOZ_PERSONAS=1 + # Browser Feature: Profile Migration Component MOZ_PROFILE_MIGRATOR= diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure index 7d5bf68643..0e48b047f0 100644 --- a/build/moz.configure/old.configure +++ b/build/moz.configure/old.configure @@ -311,6 +311,7 @@ def old_configure_options(*options): # Below are configure flags used by Pale Moon '--disable-browser-statusbar', '--disable-sync', + '--disable-personas', # Below are configure flags used by Basilisk '--disable-webextensions', From c09dcbb6f2febe0510b4fdf210f137ac46d23907 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Tue, 2 Jul 2019 16:07:31 +0200 Subject: [PATCH 04/12] New cycle version bump. --- application/palemoon/config/version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/palemoon/config/version.txt b/application/palemoon/config/version.txt index bcbf0fd129..ff225a9905 100644 --- a/application/palemoon/config/version.txt +++ b/application/palemoon/config/version.txt @@ -1 +1 @@ -28.6.0a1 \ No newline at end of file +28.7.0a1 \ No newline at end of file From 04fc506fcdbe29cffff99331b73a4687cf063c7f Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Wed, 3 Jul 2019 00:05:41 +0200 Subject: [PATCH 05/12] Update SSUAO for web.whatsapp.com. This resolves #1152 --- application/palemoon/branding/shared/pref/uaoverrides.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/palemoon/branding/shared/pref/uaoverrides.inc b/application/palemoon/branding/shared/pref/uaoverrides.inc index 98367e2bb5..b95d960b41 100644 --- a/application/palemoon/branding/shared/pref/uaoverrides.inc +++ b/application/palemoon/branding/shared/pref/uaoverrides.inc @@ -76,7 +76,7 @@ pref("@GUAO_PREF@.netflix.com","Mozilla/5.0 (@OS_SLICE@ rv:45.9) @GK_SLICE@ Fire pref("@GUAO_PREF@.netflximg.net","Mozilla/5.0 (@OS_SLICE@ rv:45.9) @GK_SLICE@ Firefox/45.9"); // UA-sniffing domains that are "app/vendor-specific" and do not like Pale Moon -pref("@GUAO_PREF@.web.whatsapp.com","Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36"); +pref("@GUAO_PREF@.web.whatsapp.com","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"); // The following domains do not like the Goanna slice pref("@GUAO_PREF@.hitbox.tv","Mozilla/5.0 (@OS_SLICE@ rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@"); From c135831979dca4b24a66f6ebed3bcd490345f6a1 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Wed, 3 Jul 2019 12:01:25 +0200 Subject: [PATCH 06/12] Update 16x16 branding images/icons for improved contrast on grey backgrounds. --- .../palemoon/branding/official/default16.png | Bin 767 -> 836 bytes .../palemoon/branding/official/firefox.icns | Bin 251912 -> 251915 bytes .../palemoon/branding/official/firefox.ico | Bin 101320 -> 101320 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/application/palemoon/branding/official/default16.png b/application/palemoon/branding/official/default16.png index a2e8b1a012fb758d250ab3b0251c4fba10db55e9..d76bb6fad02392c5cd642e42176df813e54a9e6d 100644 GIT binary patch delta 813 zcmV+|1JeBe1;hrBB!4S(MObu0a%Ew3X>V>IRB3Hx0918lATl6Ib!;FqFflnGGBP?f zH99deAT2O8FfeLgGr|A>00(qQO+^Re2Ll2(9Sjtx@c;k-32;bRa{vGe@Bjb`@Bu=s zG?)MY00d`2O+f$vv5yPHa#_%(lC&s=?3oZK2C68~er@95$^Ba&F4v3mFRx?FuOIx{&NI1O zYMCAw7pO6wq<ku6dB_#^o?tqKpv4oX@e*lLGB!@{HOy7GWMdONfJ!Al>#ov+KPRL25tAKHgbAKf^pZ}A zLhPN$VLNR@JlT^KU#qFSmvdMknJJ-nk|C r*d|MtQdc_Hd#ckN44$rhyj=em)$VWyp_z(>00000NkvXXu0mjf!L(|< delta 743 zcmVV>IRB3Hx00-j*1Pv-J?CU$#00007bV*G` z2jc|=4kkE4c&dH?000SaNLh0L01EH`01EH{Laa2H0007gNkls_8WIIX2_?#((XEbi!6y0(YE}MWk?nR=&I~m8PU~t z5ZNa+8stiGG=JAIyPd+STz-i$Q2Sb$U*ULVoq?rFVP(&z^l8$<#r=?XXT7c~9Rc2l zEW#^1RSg0~{_;%4pOqFWdv?a-UDszZUQ(q$^ROcqU@ zQ27WCQ!Tw-Ib7QwyeB9A_ivm&zHZj8@w- Z{{ZBqTvC)JOL+hQ002ovPDHLkV1f}5S;znY diff --git a/application/palemoon/branding/official/firefox.icns b/application/palemoon/branding/official/firefox.icns index 64f17ff62301e830196f0982644733e7f6492aed..d63c656c7a06bd69184e5808a01d93d32845ff9b 100644 GIT binary patch delta 1034 zcmZ9L%TwD%9LE>Jgk(5y%`ww!Z|x=b-s_nRht71Smrf6vJ}&$LmZJoW4Na*{d9}5R z!5};aS=c!EA<42WKQKnJWXTVVEzb+3)xF+s9{T*NjhE@yRDI zzWr$$JSa^}8NPT50Ql;~^yi-eFnYQ8#9+KMf$<0(Pf{cmM8O0`v!`5^Nw5rwA>b2? z&KEc?5v5}ZHckOR92bRCo+g=OCYwqEhT%jc|20GUBWyMuCrOqUg?u_1Ph~RMG#RGY z9CymbNw{8=jD^BSG{Ynkkyvnl&+EYn!WT5s!4MOR1n})$%uBep_6Yy(zSpz6x#ivQ zc-@<>EyVfE;dHJ$c3hr4pYP8Lo&lhX-$IY{R*+vAMP3#yr^eP7t`4?RMMBq}{%@wz9f1B>&B7 zu~-qynDyrc+mM`Evdp40Gw96x5`}_s_b=wTIg9PDJ916ex;pGoBN)HcyS-jl(-0lp z4#_Y2m;IjJZtHrd1IZh`t9Sjr*4FfHx1#~A)4xJ`pK5Kj)w$^E9li7J>Z;#u=}=vC zwU(w|^n0CQy54SSje4`yMzn{`cK!TZRgl^@irP@rW~-srDz#dvY!swYr6S5DS>kv} z6!}v=pM#Gldz@jjTt1i0NwIJ!LQ+&T8e?Je*jE1ZU%#!`ghNV0)WSj!M{a) zJd}UGmxIAI%>OSsv=uP*AvzoxJ_^GGxb*#UV>9tjfB3&yzn=mpJ^xr6fO_9JhljfU mU|c_hr+lQmHc*J> delta 1075 zcmZ9LJ8auV7{|}D0jJ22js^-NX$o}f;C9L00^OPp9XfP!CZlK<&n+o?Xp2s@tp<|p zq^(`+kyMc)%Tn~R9;L*Ws0XEp6d!t$l1S=dFV4oE?-R_CayP!Z|LGk7z}Fj_pL`5}MgMK(KB8N}a-O6a0?#M5!A&p8a2!iBMJn$_ z!8cyA-r#r!r)Z``n*b!MlE5`cf-Y9r5(6-b6YKStG?B`es^tQSmv~XASMWl)Qen$P z4lmaDdWj)mH%`!4E=$n`hRM^}cq|%;qsjL(2$jWXDxXfAgioW%lTa*~3d6bZ^I$X- zc@YW*f~fD_KR%zwcN&Pq;)$nE-L9jfW7iX3AaHV$2G0)vd}KdxK0bDPyzU?X-oKqr z$G-jHL%YLyXrkaI^2grp-p=mM&h8^*8!SKDx9#oO94;$>+)YVFnvy8gAh;>DRiz`z zO-X=lcTHIts;bNjqTG@oc)h0&)Pc|to1IQe2D04OP-RVORQYzVBMMThuML$pFSWa! zZhL0y_SKdwNX?cYh_#m-%#s8*3$1)uE*2}58egpm4X%ci=^{hXIjT@B5;RSbSdJ!e z49jQJTgkhLXcEh0&T@sY-{?JGOnVxeXQ~N9exgu{$!y?(6!<&~y}3 z<#2)|ae|_0k`e%Qh9*|h$#^P#c9tRlF!6XK5<3k?R*zzg3Wv1eG9Gv0iWZ@$DZ1^i9JLaKY}^1s7Z}uppOLl}ltM r;aEj7olX{6oqcaSSX%?&ozH&x@{7;6*Oz`;Us`}+39m0Ldf5K}WtH<8 diff --git a/application/palemoon/branding/official/firefox.ico b/application/palemoon/branding/official/firefox.ico index 0d142c5f1571269068fad462f41c696df449ad24..43c5d9343b561a06b60ff1498356090aea558314 100644 GIT binary patch delta 2239 zcmcgt%~MlX6u)VdkF;u$F4WHS0UI*RbcU*Ad}ET5iL$J%wSR)Ra?y>rYNAw$3EEbu zQD`dz%E!wDlK=*jKtAL%fCdO8U?I;y2%r{cS~@tB>FK#IJWJ6{H@!0_zkBYv=j(UR zn+%yVhRhkZtQ|T@PR{#;5CmbPp_oH51jxzTSy1p*!Iy`M&y|;#pGK*uI8#x6ro8-o zmBCO|QE|>-1t()Nz-9m-ug83%X=05L_#rxafjvWKFN5Gh4Hc101B5yZbJ z>SP>VM+X_VL6MPh=!TB}AW!v787HET>QWgeqMqtHiHs9AZ$WA&crGCJ`JeDD@$@vn zmUADfx~&!Qc(AqN?H!4oik*v0h|IiZ%D2g!$fU@u$TYm%Lm8J7((!d}U9L_dESjCJ zw1&U$2x|6gU6O$Z`*%`{M6xpz*DgZ#zW1)M_U_%iJ2#gUGW*i&gMAG1;emquLb*J@ zurNQLVG8r}K4OXv9{Knnt0*a!Q-hp2tYBH)(W517aZyo`92cu9)oN9&f>o*%3ijY3 zwdz<|nMPfrRH@aaYQTzR}{uy)mIY zJ{R)%ns*u-b@5%qcM{)i`+K6h@ZLU(+b46&py;WcPAWzE#r48p|g_H2l57+>pydTZ;08iTuj-oTmULv zrVA-|tsyql_```ByL6wf+tHrozHu$)FkS*%)wf`&yaer+E5Ul1?l0p0B6L+(g7-#s z%!zkt_2Tl}w`Y6Iwd*#M2`t8H6cgMtU4=H|6%+$lja6VX8KLW%2|BMp#3(CAkwn|Ydr)Vw;|+eg-7@C?tKdcJKABa+a8Pb zHm9P2c9`vVpmajGmxD;)9z+9Hi1;ip?d34h9T<1tg=xPP?X3{*vB0>?3Xi*6Qn6t> z@VZea#K(OQ8*u_Z=7NRE04z@UAs+GoKiUOzgEpA;x4>LK2XlRG5cOGMCg6ZcS2HYx z9>C(H4-)9J6h@iu6J!B>6JbAKdoVwI59Wv3fgiR)Y|w&nY%n+Az_<=bhP^3WGCBaO zzmCH5ry+R8KZfO*0SxjG5)-|M0Z2ysAc<#*$sSCGXH!_*s0-p_?o@Kx8>jbQ#K&PR z5r(zJNq8Q61S?O5U~#+$k{D-sb`awa!wSmkTo6`fhhPcgBqltu0U}4M=e>Oh?YfDq`VgU=lCZ1zKOJQV& zHi2=H(SG!!MFfR{u<01}rGF~q)$bkIt5N@-wDR8;CNKbHA_U1uA0)7g1X7$tI;l>( zU7qe+cR3yZ`VwCK(V3l$_~R>22C#w0C?QN36p}BYA7wd7*$nsc8}82RbaMQyaY^^& jEl;>lQSW5*VQOWjA2WHe#oiP?(9>kddD48|B>DVrCpQ91 delta 2241 zcmcgt+f$QQ5I-RnuMw%XwYD^%ZKbwq6>k*Hr2!iS)ahT)nNHiM&a^L;7yTlADAT@) z$OuxkRER+-7$GrV2w%X2+z4`$07(d7BDqQQ1s0jdwrdmHEEmJ>l+YtEK7(RQD-JZf{rE*FTxGN zi+yq_q%x$yiKU>SB9a23LRJXc=$S^WH?BG=VI(Y|4*=o|LgW-vgk(@eS}{cpAtH)+ z8A1G;A|qkZ9RnonJVmL5#V`!~7eiEEEnx-Zs4kY!Yjw^PUxi2S)tSTQncf_gy?_VT(g-W z?{3-h9=&{FZ4$3aOB1DKE@+3>u358g^=s*CH*GqMmd`gzHmrYr{f5nNW@OMo%X<5* zt#oaB=l$(FJ|JK0+?kz|lbw?-&G~5O#~+e{y?IA=?b*M3cW&;UUAsQ{>}b9$zd$ZK zmVfZmef#$8-7AyJ6^v4OOmXzkp#ujF9xOPaEGky3lrn`tj&7niEl#}%^tW2)nYN+PYSRJ1XLzkK`JTmfbZl>Gpi9T&Z;5rd(k)BvLCUxv+OsoGS<4wUDmp)DJl=HS9QCz zwaf^s%c^V@Z)K)>&1o*(4W_fUYR-JQ67E-C0=DWRn5rtlc<~~?@2a~r=h0nbCefE> zFRYNaQ|!>))S7E*!FYvA4Y0LWp}pn`7_L-<3B`e9#-l$+?ltx z+y;BI791^&;B5I5T&*Z~8y0kZ6S&)(!DDO%kD(P~@1fo{=XY~i{vQ2>k#43HhOK%S zur$NqlH7qIy6O`!Hr}?}`js!VzY;3uZ>$5FYA=$gmA&#yt=n zbHj|U2X!k<_je%SJ$T$_fN5_#Ot?*`TfpDbHWl?f2uH`=5W|?bzZc>GFE3Gyjrl$B zWTYD&513I{hzyt@+;4>GJ~N61ZJpBzzthIVC;H&&^f08JjKXYW1d^eL5D$8h)QMys zNKAMkfwtJVgSYX-G|`cs?nJ;@PS2iU?DLo(o=3+a6-JK90f>$|AQ9-reLwOKKyqpT zagf*J$Q>KAGl`&sktTwk`P361PcVzY3-XA+JT~Tp$PkBQJs9{9W*-kBQ9mV~O9Wh5 zbPi%8mU3!;9uL5?nQ<(_2dSAcOxA^$U=i4f1Qy9BFg3^*lL&el8cY9HNHSm-CxY%K zn)$Qn7^IM3HZlt61Tm~4hArkvQ0Kc7=+!1eo~0?KG|8X?Ib7w*$-a4-z--tDPw_I^ zLE2540Pg4G;|>k_;g9Fysx*l+vg3YRHfB(snCP`7L*6iYgyVjPE$;8R5F52htIK{9 Go%sh4_bG?~ From 922e819d1cb572daf7e9c7e889c050a4b8b43787 Mon Sep 17 00:00:00 2001 From: win7-7 Date: Wed, 26 Jun 2019 01:51:45 +0300 Subject: [PATCH 07/12] Attach FrameProperties to each frame instead of using a shared hashtable Dispense the shared hashtable and instead attach the frame property list directly to nsIFrame. --- dom/base/nsDocument.cpp | 3 +- dom/base/nsWindowMemoryReporter.cpp | 9 + dom/base/nsWindowMemoryReporter.h | 1 + layout/base/ActiveLayerTracker.cpp | 15 +- layout/base/FrameLayerBuilder.cpp | 32 +- ...FramePropertyTable.h => FrameProperties.h} | 274 +++++++++--------- layout/base/FramePropertyTable.cpp | 239 --------------- layout/base/OverflowChangedTracker.h | 4 +- layout/base/RestyleManager.cpp | 10 +- layout/base/RestyleManagerBase.cpp | 88 +++--- layout/base/RestyleManagerBase.h | 13 +- layout/base/moz.build | 3 +- layout/base/nsBidiPresUtils.cpp | 5 +- layout/base/nsCSSFrameConstructor.cpp | 23 +- layout/base/nsCSSRendering.cpp | 10 +- layout/base/nsDisplayList.cpp | 8 +- layout/base/nsDisplayList.h | 2 +- layout/base/nsIPresShell.h | 11 +- layout/base/nsLayoutUtils.cpp | 16 +- layout/base/nsPresContext.cpp | 3 +- layout/base/nsPresContext.h | 11 - layout/base/nsPresShell.cpp | 35 +-- layout/base/nsPresShell.h | 11 +- layout/forms/nsTextControlFrame.cpp | 14 +- layout/forms/nsTextControlFrame.h | 2 +- layout/generic/ReflowInput.cpp | 36 +-- layout/generic/RubyUtils.cpp | 6 +- layout/generic/StickyScrollContainer.cpp | 26 +- layout/generic/nsBlockFrame.cpp | 58 ++-- layout/generic/nsBlockFrame.h | 4 +- layout/generic/nsBulletFrame.cpp | 6 +- layout/generic/nsCanvasFrame.cpp | 4 +- layout/generic/nsCanvasFrame.h | 2 +- layout/generic/nsContainerFrame.cpp | 70 ++--- layout/generic/nsContainerFrame.h | 10 +- layout/generic/nsFlexContainerFrame.cpp | 22 +- layout/generic/nsFloatManager.cpp | 9 +- layout/generic/nsFontInflationData.cpp | 12 +- layout/generic/nsFrame.cpp | 177 +++++------ layout/generic/nsGridContainerFrame.cpp | 80 ++--- layout/generic/nsGridContainerFrame.h | 12 +- layout/generic/nsIFrame.h | 75 ++++- layout/generic/nsLineLayout.cpp | 4 +- layout/generic/nsPlaceholderFrame.cpp | 2 +- layout/generic/nsTextFrame.cpp | 59 ++-- layout/mathml/nsMathMLContainerFrame.cpp | 7 +- layout/mathml/nsMathMLmtableFrame.cpp | 14 +- layout/svg/SVGTextFrame.cpp | 10 +- layout/svg/nsSVGEffects.cpp | 47 ++- layout/svg/nsSVGEffects.h | 2 +- layout/svg/nsSVGFilterFrame.cpp | 4 +- layout/svg/nsSVGGradientFrame.cpp | 4 +- layout/svg/nsSVGIntegrationUtils.cpp | 5 +- layout/svg/nsSVGPatternFrame.cpp | 4 +- layout/svg/nsSVGUtils.cpp | 5 +- layout/tables/nsTableFrame.cpp | 31 +- layout/tables/nsTableFrame.h | 3 +- layout/tables/nsTableRowFrame.cpp | 10 +- layout/tables/nsTableRowGroupFrame.cpp | 6 +- layout/tables/nsTableWrapperFrame.cpp | 4 +- layout/xul/nsBox.cpp | 7 +- layout/xul/nsMenuFrame.cpp | 6 +- 62 files changed, 739 insertions(+), 946 deletions(-) rename layout/base/{FramePropertyTable.h => FrameProperties.h} (61%) delete mode 100644 layout/base/FramePropertyTable.cpp diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp index a6ed419df1..d8abc174fc 100644 --- a/dom/base/nsDocument.cpp +++ b/dom/base/nsDocument.cpp @@ -11943,7 +11943,8 @@ nsIDocument::DocAddSizeOfExcludingThis(nsWindowSizes* aWindowSizes) const &aWindowSizes->mLayoutPresShellSize, &aWindowSizes->mLayoutStyleSetsSize, &aWindowSizes->mLayoutTextRunsSize, - &aWindowSizes->mLayoutPresContextSize); + &aWindowSizes->mLayoutPresContextSize, + &aWindowSizes->mLayoutFramePropertiesSize); } aWindowSizes->mPropertyTablesSize += diff --git a/dom/base/nsWindowMemoryReporter.cpp b/dom/base/nsWindowMemoryReporter.cpp index acec4acfbe..8f4bf6b113 100644 --- a/dom/base/nsWindowMemoryReporter.cpp +++ b/dom/base/nsWindowMemoryReporter.cpp @@ -400,6 +400,12 @@ CollectWindowReports(nsGlobalWindow *aWindow, aWindowTotalSizes->mLayoutPresContextSize += windowSizes.mLayoutPresContextSize; + REPORT_SIZE("/layout/frame-properties", windowSizes.mLayoutFramePropertiesSize, + "Memory used for frame properties attached to frames " + "within a window."); + aWindowTotalSizes->mLayoutFramePropertiesSize += + windowSizes.mLayoutFramePropertiesSize; + // There are many different kinds of frames, but it is very likely // that only a few matter. Implement a cutoff so we don't bloat // about:memory with many uninteresting entries. @@ -563,6 +569,9 @@ nsWindowMemoryReporter::CollectReports(nsIHandleReportCallback* aHandleReport, REPORT("window-objects/layout/pres-contexts", windowTotalSizes.mLayoutPresContextSize, "This is the sum of all windows' 'layout/pres-contexts' numbers."); + REPORT("window-objects/layout/frame-properties", windowTotalSizes.mLayoutFramePropertiesSize, + "This is the sum of all windows' 'layout/frame-properties' numbers."); + size_t frameTotal = 0; #define FRAME_ID(classname) \ frameTotal += windowTotalSizes.mArenaStats.FRAME_ID_STAT_FIELD(classname); diff --git a/dom/base/nsWindowMemoryReporter.h b/dom/base/nsWindowMemoryReporter.h index b9e9869590..5d40dc9f56 100644 --- a/dom/base/nsWindowMemoryReporter.h +++ b/dom/base/nsWindowMemoryReporter.h @@ -33,6 +33,7 @@ class nsWindowSizes { macro(Style, mLayoutStyleSetsSize) \ macro(Other, mLayoutTextRunsSize) \ macro(Other, mLayoutPresContextSize) \ + macro(Other, mLayoutFramePropertiesSize) \ macro(Other, mPropertyTablesSize) \ public: diff --git a/layout/base/ActiveLayerTracker.cpp b/layout/base/ActiveLayerTracker.cpp index 4f60f82d76..ecee4897ae 100644 --- a/layout/base/ActiveLayerTracker.cpp +++ b/layout/base/ActiveLayerTracker.cpp @@ -178,7 +178,7 @@ LayerActivityTracker::NotifyExpired(LayerActivity* aObject) f->SchedulePaint(); } f->RemoveStateBits(NS_FRAME_HAS_LAYER_ACTIVITY_PROPERTY); - f->Properties().Delete(LayerActivityProperty()); + f->DeleteProperty(LayerActivityProperty()); } else { c->DeleteProperty(nsGkAtoms::LayerActivity); } @@ -190,15 +190,13 @@ GetLayerActivity(nsIFrame* aFrame) if (!aFrame->HasAnyStateBits(NS_FRAME_HAS_LAYER_ACTIVITY_PROPERTY)) { return nullptr; } - FrameProperties properties = aFrame->Properties(); - return properties.Get(LayerActivityProperty()); + return aFrame->GetProperty(LayerActivityProperty()); } static LayerActivity* GetLayerActivityForUpdate(nsIFrame* aFrame) { - FrameProperties properties = aFrame->Properties(); - LayerActivity* layerActivity = properties.Get(LayerActivityProperty()); + LayerActivity* layerActivity = aFrame->GetProperty(LayerActivityProperty()); if (layerActivity) { gLayerActivityTracker->MarkUsed(layerActivity); } else { @@ -208,7 +206,7 @@ GetLayerActivityForUpdate(nsIFrame* aFrame) layerActivity = new LayerActivity(aFrame); gLayerActivityTracker->AddObject(layerActivity); aFrame->AddStateBits(NS_FRAME_HAS_LAYER_ACTIVITY_PROPERTY); - properties.Set(LayerActivityProperty(), layerActivity); + aFrame->SetProperty(LayerActivityProperty(), layerActivity); } return layerActivity; } @@ -225,8 +223,7 @@ ActiveLayerTracker::TransferActivityToContent(nsIFrame* aFrame, nsIContent* aCon if (!aFrame->HasAnyStateBits(NS_FRAME_HAS_LAYER_ACTIVITY_PROPERTY)) { return; } - FrameProperties properties = aFrame->Properties(); - LayerActivity* layerActivity = properties.Remove(LayerActivityProperty()); + LayerActivity* layerActivity = aFrame->RemoveProperty(LayerActivityProperty()); aFrame->RemoveStateBits(NS_FRAME_HAS_LAYER_ACTIVITY_PROPERTY); if (!layerActivity) { return; @@ -248,7 +245,7 @@ ActiveLayerTracker::TransferActivityToFrame(nsIContent* aContent, nsIFrame* aFra layerActivity->mContent = nullptr; layerActivity->mFrame = aFrame; aFrame->AddStateBits(NS_FRAME_HAS_LAYER_ACTIVITY_PROPERTY); - aFrame->Properties().Set(LayerActivityProperty(), layerActivity); + aFrame->SetProperty(LayerActivityProperty(), layerActivity); } static void diff --git a/layout/base/FrameLayerBuilder.cpp b/layout/base/FrameLayerBuilder.cpp index 9aaa28fb55..e87d9dc09e 100644 --- a/layout/base/FrameLayerBuilder.cpp +++ b/layout/base/FrameLayerBuilder.cpp @@ -165,10 +165,10 @@ FrameLayerBuilder::DisplayItemData::AddFrame(nsIFrame* aFrame) mFrameList.AppendElement(aFrame); nsTArray* array = - aFrame->Properties().Get(FrameLayerBuilder::LayerManagerDataProperty()); + aFrame->GetProperty(FrameLayerBuilder::LayerManagerDataProperty()); if (!array) { array = new nsTArray(); - aFrame->Properties().Set(FrameLayerBuilder::LayerManagerDataProperty(), array); + aFrame->SetProperty(FrameLayerBuilder::LayerManagerDataProperty(), array); } array->AppendElement(this); } @@ -181,7 +181,7 @@ FrameLayerBuilder::DisplayItemData::RemoveFrame(nsIFrame* aFrame) MOZ_RELEASE_ASSERT(result, "Can't remove a frame that wasn't added!"); nsTArray* array = - aFrame->Properties().Get(FrameLayerBuilder::LayerManagerDataProperty()); + aFrame->GetProperty(FrameLayerBuilder::LayerManagerDataProperty()); MOZ_RELEASE_ASSERT(array, "Must be already stored on the frame!"); array->RemoveElement(this); } @@ -268,7 +268,7 @@ FrameLayerBuilder::DisplayItemData::~DisplayItemData() continue; } nsTArray *array = - reinterpret_cast*>(frame->Properties().Get(LayerManagerDataProperty())); + reinterpret_cast*>(frame->GetProperty(LayerManagerDataProperty())); array->RemoveElement(this); } @@ -390,8 +390,7 @@ public: /* static */ void FrameLayerBuilder::DestroyDisplayItemDataFor(nsIFrame* aFrame) { - FrameProperties props = aFrame->Properties(); - props.Delete(LayerManagerDataProperty()); + aFrame->DeleteProperty(LayerManagerDataProperty()); } struct AssignedDisplayItem @@ -1823,7 +1822,7 @@ FrameLayerBuilder::DisplayItemData* FrameLayerBuilder::GetDisplayItemData(nsIFrame* aFrame, uint32_t aKey) { const nsTArray* array = - aFrame->Properties().Get(LayerManagerDataProperty()); + aFrame->GetProperty(LayerManagerDataProperty()); if (array) { for (uint32_t i = 0; i < array->Length(); i++) { DisplayItemData* item = AssertDisplayItemData(array->ElementAt(i)); @@ -2052,7 +2051,7 @@ FrameLayerBuilder::GetDisplayItemDataForManager(nsDisplayItem* aItem, LayerManager* aManager) { const nsTArray* array = - aItem->Frame()->Properties().Get(LayerManagerDataProperty()); + aItem->Frame()->GetProperty(LayerManagerDataProperty()); if (array) { for (uint32_t i = 0; i < array->Length(); i++) { DisplayItemData* item = AssertDisplayItemData(array->ElementAt(i)); @@ -2069,7 +2068,7 @@ bool FrameLayerBuilder::HasRetainedDataFor(nsIFrame* aFrame, uint32_t aDisplayItemKey) { const nsTArray* array = - aFrame->Properties().Get(LayerManagerDataProperty()); + aFrame->GetProperty(LayerManagerDataProperty()); if (array) { for (uint32_t i = 0; i < array->Length(); i++) { if (AssertDisplayItemData(array->ElementAt(i))->mDisplayItemKey == aDisplayItemKey) { @@ -2084,7 +2083,7 @@ void FrameLayerBuilder::IterateRetainedDataFor(nsIFrame* aFrame, DisplayItemDataCallback aCallback) { const nsTArray* array = - aFrame->Properties().Get(LayerManagerDataProperty()); + aFrame->GetProperty(LayerManagerDataProperty()); if (!array) { return; } @@ -2151,7 +2150,7 @@ FrameLayerBuilder::ClearCachedGeometry(nsDisplayItem* aItem) FrameLayerBuilder::GetDebugOldLayerFor(nsIFrame* aFrame, uint32_t aDisplayItemKey) { const nsTArray* array = - aFrame->Properties().Get(LayerManagerDataProperty()); + aFrame->GetProperty(LayerManagerDataProperty()); if (!array) { return nullptr; @@ -2171,7 +2170,7 @@ FrameLayerBuilder::GetDebugOldLayerFor(nsIFrame* aFrame, uint32_t aDisplayItemKe FrameLayerBuilder::GetDebugSingleOldPaintedLayerForFrame(nsIFrame* aFrame) { const nsTArray* array = - aFrame->Properties().Get(LayerManagerDataProperty()); + aFrame->GetProperty(LayerManagerDataProperty()); if (!array) { return nullptr; @@ -5656,7 +5655,7 @@ FrameLayerBuilder::InvalidateAllLayers(LayerManager* aManager) FrameLayerBuilder::InvalidateAllLayersForFrame(nsIFrame *aFrame) { const nsTArray* array = - aFrame->Properties().Get(LayerManagerDataProperty()); + aFrame->GetProperty(LayerManagerDataProperty()); if (array) { for (uint32_t i = 0; i < array->Length(); i++) { AssertDisplayItemData(array->ElementAt(i))->mParent->mInvalidateAllLayers = true; @@ -5673,7 +5672,7 @@ FrameLayerBuilder::GetDedicatedLayer(nsIFrame* aFrame, uint32_t aDisplayItemKey) // in the secondary manager const nsTArray* array = - aFrame->Properties().Get(LayerManagerDataProperty()); + aFrame->GetProperty(LayerManagerDataProperty()); if (array) { for (uint32_t i = 0; i < array->Length(); i++) { DisplayItemData *element = AssertDisplayItemData(array->ElementAt(i)); @@ -5729,7 +5728,7 @@ FrameLayerBuilder::GetPaintedLayerScaleForFrame(nsIFrame* aFrame) } const nsTArray* array = - f->Properties().Get(LayerManagerDataProperty()); + f->GetProperty(LayerManagerDataProperty()); if (!array) { continue; } @@ -6165,9 +6164,8 @@ FrameLayerBuilder::GetMostRecentGeometry(nsDisplayItem* aItem) typedef nsTArray DataArray; // Retrieve the array of DisplayItemData associated with our frame. - FrameProperties properties = aItem->Frame()->Properties(); const DataArray* dataArray = - properties.Get(LayerManagerDataProperty()); + aItem->Frame()->GetProperty(LayerManagerDataProperty()); if (!dataArray) { return nullptr; } diff --git a/layout/base/FramePropertyTable.h b/layout/base/FrameProperties.h similarity index 61% rename from layout/base/FramePropertyTable.h rename to layout/base/FrameProperties.h index e9847efbf7..bba3ee06b2 100644 --- a/layout/base/FramePropertyTable.h +++ b/layout/base/FrameProperties.h @@ -3,15 +3,15 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifndef FRAMEPROPERTYTABLE_H_ -#define FRAMEPROPERTYTABLE_H_ +#ifndef FRAMEPROPERTIES_H_ +#define FRAMEPROPERTIES_H_ +#include "mozilla/DebugOnly.h" #include "mozilla/MemoryReporting.h" #include "mozilla/TypeTraits.h" #include "mozilla/Unused.h" #include "nsTArray.h" -#include "nsTHashtable.h" -#include "nsHashKeys.h" +#include "nsThreadUtils.h" class nsIFrame; @@ -131,7 +131,7 @@ struct FramePropertyTypeHelper> } /** - * The FramePropertyTable is optimized for storing 0 or 1 properties on + * The FrameProperties class is optimized for storing 0 or 1 properties on * a given frame. Storing very large numbers of properties on a single * frame will not be efficient. * @@ -141,7 +141,8 @@ struct FramePropertyTypeHelper> * Of course, the destructor function (if any) must handle such values * correctly. */ -class FramePropertyTable { +class FrameProperties +{ public: template using Descriptor = const FramePropertyDescriptor*; @@ -150,32 +151,31 @@ public: template using PropertyType = typename detail::FramePropertyTypeHelper::Type; - FramePropertyTable() : mLastFrame(nullptr), mLastEntry(nullptr) + explicit FrameProperties() { } - ~FramePropertyTable() + + ~FrameProperties() { - DeleteAll(); + MOZ_ASSERT(mProperties.Length() == 0, "forgot to delete properties"); } /** - * Set a property value on a frame. This requires one hashtable - * lookup (using the frame as the key) and a linear search through - * the properties of that frame. Any existing value for the property + * Set a property value. This requires a linear search through + * the properties of the frame. Any existing value for the property * is destroyed. */ template - void Set(const nsIFrame* aFrame, Descriptor aProperty, - PropertyType aValue) + void Set(Descriptor aProperty, PropertyType aValue, + const nsIFrame* aFrame) { void* ptr = ReinterpretHelper::ToPointer(aValue); - SetInternal(aFrame, aProperty, ptr); + SetInternal(aProperty, ptr, aFrame); } /** - * @return true if @aProperty is set for @aFrame. This requires one hashtable - * lookup (using the frame as the key) and a linear search through the - * properties of that frame. + * @return true if @aProperty is set. This requires a linear search through the + * properties of the frame. * * In most cases, this shouldn't be used outside of assertions, because if * you're doing a lookup anyway it would be far more efficient to call Get() @@ -190,17 +190,15 @@ public: * an existing value for the frame property. */ template - bool Has(const nsIFrame* aFrame, Descriptor aProperty) + bool Has(Descriptor aProperty) const { - bool foundResult = false; - mozilla::Unused << GetInternal(aFrame, aProperty, &foundResult); - return foundResult; + return mProperties.IndexOf(aProperty, 0, PropertyComparator()) != nsTArray::NoIndex; } /** - * Get a property value for a frame. This requires one hashtable + * Get a property value. This requires a linear search through * lookup (using the frame as the key) and a linear search through - * the properties of that frame. If the frame has no such property, + * the properties of the frame. If the frame has no such property, * returns zero-filled result, which means null for pointers and * zero for integers and floating point types. * @param aFoundResult if non-null, receives a value 'true' iff @@ -209,16 +207,15 @@ public: * 'property value is null'. */ template - PropertyType Get(const nsIFrame* aFrame, Descriptor aProperty, - bool* aFoundResult = nullptr) + PropertyType Get(Descriptor aProperty, + bool* aFoundResult = nullptr) const { - void* ptr = GetInternal(aFrame, aProperty, aFoundResult); + void* ptr = GetInternal(aProperty, aFoundResult); return ReinterpretHelper::FromPointer(ptr); } /** - * Remove a property value for a frame. This requires one hashtable - * lookup (using the frame as the key) and a linear search through - * the properties of that frame. The old property value is returned + * Remove a property value. This requires a linear search through + * the properties of the frame. The old property value is returned * (and not destroyed). If the frame has no such property, * returns zero-filled result, which means null for pointers and * zero for integers and floating point types. @@ -228,46 +225,63 @@ public: * 'property value is null'. */ template - PropertyType Remove(const nsIFrame* aFrame, Descriptor aProperty, + PropertyType Remove(Descriptor aProperty, bool* aFoundResult = nullptr) { - void* ptr = RemoveInternal(aFrame, aProperty, aFoundResult); + void* ptr = RemoveInternal(aProperty, aFoundResult); return ReinterpretHelper::FromPointer(ptr); } /** - * Remove and destroy a property value for a frame. This requires one - * hashtable lookup (using the frame as the key) and a linear search - * through the properties of that frame. If the frame has no such + * Remove and destroy a property value. This requires a linear search + * through the properties of the frame. If the frame has no such * property, nothing happens. */ template - void Delete(const nsIFrame* aFrame, Descriptor aProperty) + void Delete(Descriptor aProperty, const nsIFrame* aFrame) { - DeleteInternal(aFrame, aProperty); + DeleteInternal(aProperty, aFrame); } /** - * Remove and destroy all property values for a frame. This requires one - * hashtable lookup (using the frame as the key). + * Remove and destroy all property values for the frame. */ - void DeleteAllFor(const nsIFrame* aFrame); - /** - * Remove and destroy all property values for all frames. - */ - void DeleteAll(); + void DeleteAll(const nsIFrame* aFrame) { + mozilla::DebugOnly len = mProperties.Length(); + for (auto& prop : mProperties) { + prop.DestroyValueFor(aFrame); + MOZ_ASSERT(mProperties.Length() == len); + } + mProperties.Clear(); + } - size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { + // We currently report only the shallow size of the mProperties array. + // As for the PropertyValue entries: we don't need to measure the mProperty + // field of because it always points to static memory, and we can't measure + // mValue because the type is opaque. + // XXX Can we do better, e.g. with a method on the descriptor? + return mProperties.ShallowSizeOfExcludingThis(aMallocSizeOf); + } -protected: - void SetInternal(const nsIFrame* aFrame, UntypedDescriptor aProperty, - void* aValue); +private: + friend class ::nsIFrame; - void* GetInternal(const nsIFrame* aFrame, UntypedDescriptor aProperty, - bool* aFoundResult); + // Prevent copying of FrameProperties; we should always return/pass around + // references to it, not copies! + FrameProperties(const FrameProperties&) = delete; + FrameProperties& operator=(const FrameProperties&) = delete; - void* RemoveInternal(const nsIFrame* aFrame, UntypedDescriptor aProperty, - bool* aFoundResult); + inline void + SetInternal(UntypedDescriptor aProperty, void* aValue, + const nsIFrame* aFrame); - void DeleteInternal(const nsIFrame* aFrame, UntypedDescriptor aProperty); + inline void* + GetInternal(UntypedDescriptor aProperty, bool* aFoundResult) const; + + inline void* + RemoveInternal(UntypedDescriptor aProperty, bool* aFoundResult); + + inline void + DeleteInternal(UntypedDescriptor aProperty, const nsIFrame* aFrame); template struct ReinterpretHelper @@ -305,21 +319,13 @@ protected: }; /** - * Stores a property descriptor/value pair. It can also be used to - * store an nsTArray of PropertyValues. + * Stores a property descriptor/value pair. */ struct PropertyValue { PropertyValue() : mProperty(nullptr), mValue(nullptr) {} PropertyValue(UntypedDescriptor aProperty, void* aValue) : mProperty(aProperty), mValue(aValue) {} - bool IsArray() { return !mProperty && mValue; } - nsTArray* ToArray() - { - NS_ASSERTION(IsArray(), "Must be array"); - return reinterpret_cast*>(&mValue); - } - void DestroyValueFor(const nsIFrame* aFrame) { if (mProperty->mDestructor) { mProperty->mDestructor(mValue); @@ -328,20 +334,6 @@ protected: } } - size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) { - size_t n = 0; - // We don't need to measure mProperty because it always points to static - // memory. As for mValue: if it's a single value we can't measure it, - // because the type is opaque; if it's an array, we measure the array - // storage, but we can't measure the individual values, again because - // their types are opaque. - if (IsArray()) { - nsTArray* array = ToArray(); - n += array->ShallowSizeOfExcludingThis(aMallocSizeOf); - } - return n; - } - UntypedDescriptor mProperty; void* mValue; }; @@ -363,80 +355,86 @@ protected: } }; - /** - * Our hashtable entry. The key is an nsIFrame*, the value is a - * PropertyValue representing one or more property/value pairs. - */ - class Entry : public nsPtrHashKey - { - public: - explicit Entry(KeyTypePointer aKey) : nsPtrHashKey(aKey) {} - Entry(const Entry &toCopy) : - nsPtrHashKey(toCopy), mProp(toCopy.mProp) {} - - size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) { - return mProp.SizeOfExcludingThis(aMallocSizeOf); - } - - PropertyValue mProp; - }; - - static void DeleteAllForEntry(Entry* aEntry); - - // Note that mLastEntry points into mEntries, so we need to be careful about - // not triggering a resize of mEntries, e.g. use RawRemoveEntry() instead of - // RemoveEntry() in some places. - nsTHashtable mEntries; - const nsIFrame* mLastFrame; - Entry* mLastEntry; + nsTArray mProperties; }; /** * This class encapsulates the properties of a frame. */ -class FrameProperties { -public: - template using Descriptor = FramePropertyTable::Descriptor; - template using PropertyType = FramePropertyTable::PropertyType; +inline void* +FrameProperties::GetInternal(UntypedDescriptor aProperty, + bool* aFoundResult) const +{ + MOZ_ASSERT(aProperty, "Null property?"); - FrameProperties(FramePropertyTable* aTable, const nsIFrame* aFrame) - : mTable(aTable), mFrame(aFrame) {} - - template - void Set(Descriptor aProperty, PropertyType aValue) const - { - mTable->Set(mFrame, aProperty, aValue); + auto index = mProperties.IndexOf(aProperty, 0, PropertyComparator()); + if (index == nsTArray::NoIndex) { + if (aFoundResult) { + *aFoundResult = false; + } + return nullptr; } - template - bool Has(Descriptor aProperty) const - { - return mTable->Has(mFrame, aProperty); + if (aFoundResult) { + *aFoundResult = true; } - template - PropertyType Get(Descriptor aProperty, - bool* aFoundResult = nullptr) const - { - return mTable->Get(mFrame, aProperty, aFoundResult); - } - template - PropertyType Remove(Descriptor aProperty, - bool* aFoundResult = nullptr) const - { - return mTable->Remove(mFrame, aProperty, aFoundResult); - } - template - void Delete(Descriptor aProperty) - { - mTable->Delete(mFrame, aProperty); +return mProperties.ElementAt(index).mValue; +} + +inline void +FrameProperties::SetInternal(UntypedDescriptor aProperty, void* aValue, + const nsIFrame* aFrame) +{ + MOZ_ASSERT(aProperty, "Null property?"); + + auto index = mProperties.IndexOf(aProperty, 0, PropertyComparator()); + if (index != nsTArray::NoIndex) { + PropertyValue* pv = &mProperties.ElementAt(index); + pv->DestroyValueFor(aFrame); + pv->mValue = aValue; + return; } -private: - FramePropertyTable* mTable; - const nsIFrame* mFrame; -}; + mProperties.AppendElement(PropertyValue(aProperty, aValue)); +} + +inline void* +FrameProperties::RemoveInternal(UntypedDescriptor aProperty, bool* aFoundResult) +{ + MOZ_ASSERT(aProperty, "Null property?"); + + auto index = mProperties.IndexOf(aProperty, 0, PropertyComparator()); + if (index == nsTArray::NoIndex) { + if (aFoundResult) { + *aFoundResult = false; + } + return nullptr; + } + +if (aFoundResult) { + *aFoundResult = true; +} + +void* result = mProperties.ElementAt(index).mValue; +mProperties.RemoveElementAt(index); + +return result; +} + +inline void +FrameProperties::DeleteInternal(UntypedDescriptor aProperty, + const nsIFrame* aFrame) +{ + MOZ_ASSERT(aProperty, "Null property?"); + + auto index = mProperties.IndexOf(aProperty, 0, PropertyComparator()); + if (index != nsTArray::NoIndex) { + mProperties.ElementAt(index).DestroyValueFor(aFrame); + mProperties.RemoveElementAt(index); + } +} } // namespace mozilla -#endif /* FRAMEPROPERTYTABLE_H_ */ +#endif /* FRAMEPROPERTIES_H_ */ diff --git a/layout/base/FramePropertyTable.cpp b/layout/base/FramePropertyTable.cpp deleted file mode 100644 index 0fd9b1c377..0000000000 --- a/layout/base/FramePropertyTable.cpp +++ /dev/null @@ -1,239 +0,0 @@ -/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "FramePropertyTable.h" - -#include "mozilla/MemoryReporting.h" - -namespace mozilla { - -void -FramePropertyTable::SetInternal( - const nsIFrame* aFrame, UntypedDescriptor aProperty, void* aValue) -{ - NS_ASSERTION(aFrame, "Null frame?"); - NS_ASSERTION(aProperty, "Null property?"); - - if (mLastFrame != aFrame || !mLastEntry) { - mLastFrame = aFrame; - mLastEntry = mEntries.PutEntry(aFrame); - } - Entry* entry = mLastEntry; - - if (!entry->mProp.IsArray()) { - if (!entry->mProp.mProperty) { - // Empty entry, so we can just store our property in the empty slot - entry->mProp.mProperty = aProperty; - entry->mProp.mValue = aValue; - return; - } - if (entry->mProp.mProperty == aProperty) { - // Just overwrite the current value - entry->mProp.DestroyValueFor(aFrame); - entry->mProp.mValue = aValue; - return; - } - - // We need to expand the single current entry to an array - PropertyValue current = entry->mProp; - entry->mProp.mProperty = nullptr; - static_assert(sizeof(nsTArray) <= sizeof(void *), - "Property array must fit entirely within entry->mProp.mValue"); - new (&entry->mProp.mValue) nsTArray(4); - entry->mProp.ToArray()->AppendElement(current); - } - - nsTArray* array = entry->mProp.ToArray(); - nsTArray::index_type index = - array->IndexOf(aProperty, 0, PropertyComparator()); - if (index != nsTArray::NoIndex) { - PropertyValue* pv = &array->ElementAt(index); - pv->DestroyValueFor(aFrame); - pv->mValue = aValue; - return; - } - - array->AppendElement(PropertyValue(aProperty, aValue)); -} - -void* -FramePropertyTable::GetInternal( - const nsIFrame* aFrame, UntypedDescriptor aProperty, bool* aFoundResult) -{ - NS_ASSERTION(aFrame, "Null frame?"); - NS_ASSERTION(aProperty, "Null property?"); - - if (aFoundResult) { - *aFoundResult = false; - } - - if (mLastFrame != aFrame) { - mLastFrame = aFrame; - mLastEntry = mEntries.GetEntry(mLastFrame); - } - Entry* entry = mLastEntry; - if (!entry) - return nullptr; - - if (entry->mProp.mProperty == aProperty) { - if (aFoundResult) { - *aFoundResult = true; - } - return entry->mProp.mValue; - } - if (!entry->mProp.IsArray()) { - // There's just one property and it's not the one we want, bail - return nullptr; - } - - nsTArray* array = entry->mProp.ToArray(); - nsTArray::index_type index = - array->IndexOf(aProperty, 0, PropertyComparator()); - if (index == nsTArray::NoIndex) - return nullptr; - - if (aFoundResult) { - *aFoundResult = true; - } - - return array->ElementAt(index).mValue; -} - -void* -FramePropertyTable::RemoveInternal( - const nsIFrame* aFrame, UntypedDescriptor aProperty, bool* aFoundResult) -{ - NS_ASSERTION(aFrame, "Null frame?"); - NS_ASSERTION(aProperty, "Null property?"); - - if (aFoundResult) { - *aFoundResult = false; - } - - if (mLastFrame != aFrame) { - mLastFrame = aFrame; - mLastEntry = mEntries.GetEntry(aFrame); - } - Entry* entry = mLastEntry; - if (!entry) - return nullptr; - - if (entry->mProp.mProperty == aProperty) { - // There's only one entry and it's the one we want - void* value = entry->mProp.mValue; - - // Here it's ok to use RemoveEntry() -- which may resize mEntries -- - // because we null mLastEntry at the same time. - mEntries.RemoveEntry(entry); - mLastEntry = nullptr; - if (aFoundResult) { - *aFoundResult = true; - } - return value; - } - if (!entry->mProp.IsArray()) { - // There's just one property and it's not the one we want, bail - return nullptr; - } - - nsTArray* array = entry->mProp.ToArray(); - nsTArray::index_type index = - array->IndexOf(aProperty, 0, PropertyComparator()); - if (index == nsTArray::NoIndex) { - // No such property, bail - return nullptr; - } - - if (aFoundResult) { - *aFoundResult = true; - } - - void* result = array->ElementAt(index).mValue; - - uint32_t last = array->Length() - 1; - array->ElementAt(index) = array->ElementAt(last); - array->RemoveElementAt(last); - - if (last == 1) { - PropertyValue pv = array->ElementAt(0); - array->~nsTArray(); - entry->mProp = pv; - } - - return result; -} - -void -FramePropertyTable::DeleteInternal( - const nsIFrame* aFrame, UntypedDescriptor aProperty) -{ - NS_ASSERTION(aFrame, "Null frame?"); - NS_ASSERTION(aProperty, "Null property?"); - - bool found; - void* v = RemoveInternal(aFrame, aProperty, &found); - if (found) { - PropertyValue pv(aProperty, v); - pv.DestroyValueFor(aFrame); - } -} - -/* static */ void -FramePropertyTable::DeleteAllForEntry(Entry* aEntry) -{ - if (!aEntry->mProp.IsArray()) { - aEntry->mProp.DestroyValueFor(aEntry->GetKey()); - return; - } - - nsTArray* array = aEntry->mProp.ToArray(); - for (uint32_t i = 0; i < array->Length(); ++i) { - array->ElementAt(i).DestroyValueFor(aEntry->GetKey()); - } - array->~nsTArray(); -} - -void -FramePropertyTable::DeleteAllFor(const nsIFrame* aFrame) -{ - NS_ASSERTION(aFrame, "Null frame?"); - - Entry* entry = mEntries.GetEntry(aFrame); - if (!entry) - return; - - if (mLastFrame == aFrame) { - // Flush cache. We assume DeleteAllForEntry will be called before - // a frame is destroyed. - mLastFrame = nullptr; - mLastEntry = nullptr; - } - - DeleteAllForEntry(entry); - - // mLastEntry points into mEntries, so we use RawRemoveEntry() which will not - // resize mEntries. - mEntries.RawRemoveEntry(entry); -} - -void -FramePropertyTable::DeleteAll() -{ - mLastFrame = nullptr; - mLastEntry = nullptr; - - for (auto iter = mEntries.Iter(); !iter.Done(); iter.Next()) { - DeleteAllForEntry(iter.Get()); - } - mEntries.Clear(); -} - -size_t -FramePropertyTable::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const -{ - return mEntries.SizeOfExcludingThis(aMallocSizeOf); -} - -} // namespace mozilla diff --git a/layout/base/OverflowChangedTracker.h b/layout/base/OverflowChangedTracker.h index a18d64b469..40145c65c3 100644 --- a/layout/base/OverflowChangedTracker.h +++ b/layout/base/OverflowChangedTracker.h @@ -112,12 +112,12 @@ public: // Take a faster path that doesn't require unioning the overflow areas // of our children. - NS_ASSERTION(frame->Properties().Get( + NS_ASSERTION(frame->GetProperty( nsIFrame::DebugInitialOverflowPropertyApplied()), "InitialOverflowProperty must be set first."); nsOverflowAreas* overflow = - frame->Properties().Get(nsIFrame::InitialOverflowProperty()); + frame->GetProperty(nsIFrame::InitialOverflowProperty()); if (overflow) { // FinishAndStoreOverflow will change the overflow areas passed in, // so make a copy. diff --git a/layout/base/RestyleManager.cpp b/layout/base/RestyleManager.cpp index de8f102241..124b5535e0 100644 --- a/layout/base/RestyleManager.cpp +++ b/layout/base/RestyleManager.cpp @@ -1122,10 +1122,10 @@ GetPrevContinuationWithPossiblySameStyle(nsIFrame* aFrame) // We're the first continuation, so we can just get the frame // property directly prevContinuation = - aFrame->Properties().Get(nsIFrame::IBSplitPrevSibling()); + aFrame->GetProperty(nsIFrame::IBSplitPrevSibling()); if (prevContinuation) { prevContinuation = - prevContinuation->Properties().Get(nsIFrame::IBSplitPrevSibling()); + prevContinuation->GetProperty(nsIFrame::IBSplitPrevSibling()); } } @@ -1313,8 +1313,7 @@ RestyleManager::ReparentStyleContext(nsIFrame* aFrame) // oldContext)" check will prevent us from redoing work. if ((aFrame->GetStateBits() & NS_FRAME_PART_OF_IBSPLIT) && !aFrame->GetPrevContinuation()) { - nsIFrame* sib = - aFrame->Properties().Get(nsIFrame::IBSplitSibling()); + nsIFrame* sib = aFrame->GetProperty(nsIFrame::IBSplitSibling()); if (sib) { ReparentStyleContext(sib); } @@ -3349,7 +3348,6 @@ ElementRestyler::ComputeStyleChangeFor(nsIFrame* aFrame, // line), we might restyle more than that. nsPresContext* presContext = aFrame->PresContext(); - FramePropertyTable* propTable = presContext->PropertyTable(); TreeMatchContext treeMatchContext(true, nsRuleWalker::eRelevantLinkUnvisited, @@ -3363,7 +3361,7 @@ ElementRestyler::ComputeStyleChangeFor(nsIFrame* aFrame, nsTArray visibleKidsOfHiddenElement; nsIFrame* nextIBSibling; for (nsIFrame* ibSibling = aFrame; ibSibling; ibSibling = nextIBSibling) { - nextIBSibling = RestyleManager::GetNextBlockInInlineSibling(propTable, ibSibling); + nextIBSibling = RestyleManager::GetNextBlockInInlineSibling(ibSibling); if (nextIBSibling) { // Don't allow some ib-split siblings to be processed with diff --git a/layout/base/RestyleManagerBase.cpp b/layout/base/RestyleManagerBase.cpp index d96d9dbbb0..6770f94642 100644 --- a/layout/base/RestyleManagerBase.cpp +++ b/layout/base/RestyleManagerBase.cpp @@ -385,8 +385,6 @@ RestyleManagerBase::DebugVerifyStyleTree(nsIFrame* aFrame) #endif // DEBUG -NS_DECLARE_FRAME_PROPERTY_SMALL_VALUE(ChangeListProperty, bool) - /** * Sync views on aFrame and all of aFrame's descendants (following placeholders), * if aChange has nsChangeHint_SyncFrameView. @@ -521,10 +519,9 @@ RecomputePosition(nsIFrame* aFrame) // normal position, go ahead and add the offsets directly. // First, we need to ensure that the normal position is stored though. nsPoint normalPosition = cont->GetNormalPosition(); - auto props = cont->Properties(); - const auto& prop = nsIFrame::NormalPositionProperty(); - if (!props.Get(prop)) { - props.Set(prop, new nsPoint(normalPosition)); + if (!cont->GetProperty(nsIFrame::NormalPositionProperty())) { + cont->SetProperty(nsIFrame::NormalPositionProperty(), + new nsPoint(normalPosition)); } cont->SetPosition(normalPosition + nsPoint(newOffsets.left, newOffsets.top)); @@ -739,8 +736,7 @@ RestyleManagerBase::GetNearestAncestorFrame(nsIContent* aContent) } /* static */ nsIFrame* -RestyleManagerBase::GetNextBlockInInlineSibling(FramePropertyTable* aPropTable, - nsIFrame* aFrame) +RestyleManagerBase::GetNextBlockInInlineSibling(nsIFrame* aFrame) { NS_ASSERTION(!aFrame->GetPrevContinuation(), "must start with the first continuation"); @@ -750,8 +746,7 @@ RestyleManagerBase::GetNextBlockInInlineSibling(FramePropertyTable* aPropTable, return nullptr; } - return static_cast - (aPropTable->Get(aFrame, nsIFrame::IBSplitSibling())); + return aFrame->GetProperty(nsIFrame::IBSplitSibling()); } static void @@ -1028,10 +1023,10 @@ RestyleManagerBase::GetNextContinuationWithSameStyle( // We're the last continuation, so we have to hop back to the first // before getting the frame property nextContinuation = - aFrame->FirstContinuation()->Properties().Get(nsIFrame::IBSplitSibling()); + aFrame->FirstContinuation()->GetProperty(nsIFrame::IBSplitSibling()); if (nextContinuation) { nextContinuation = - nextContinuation->Properties().Get(nsIFrame::IBSplitSibling()); + nextContinuation->GetProperty(nsIFrame::IBSplitSibling()); } } @@ -1060,14 +1055,52 @@ RestyleManagerBase::ProcessRestyledFrames(nsStyleChangeList& aChangeList) { NS_ASSERTION(!nsContentUtils::IsSafeToRunScript(), "Someone forgot a script blocker"); - if (aChangeList.IsEmpty()) - return NS_OK; + +// See bug 1378219 comment 9: +// Recursive calls here are a bit worrying, but apparently do happen in the +// wild (although not currently in any of our automated tests). Try to get a +// stack from Nightly/Dev channel to figure out what's going on and whether +// it's OK. +MOZ_DIAGNOSTIC_ASSERT(!mDestroyedFrames, "ProcessRestyledFrames recursion"); + +if (aChangeList.IsEmpty()) + return NS_OK; + +// If mDestroyedFrames is null, we want to create a new hashtable here +// and destroy it on exit; but if it is already non-null (because we're in +// a recursive call), we will continue to use the existing table to +// accumulate destroyed frames, and NOT clear mDestroyedFrames on exit. +// We use a MaybeClearDestroyedFrames helper to conditionally reset the +// mDestroyedFrames pointer when this method returns. +typedef decltype(mDestroyedFrames) DestroyedFramesT; +class MOZ_RAII MaybeClearDestroyedFrames +{ +private: + DestroyedFramesT& mDestroyedFramesRef; // ref to caller's mDestroyedFrames + const bool mResetOnDestruction; +public: + explicit MaybeClearDestroyedFrames(DestroyedFramesT& aTarget) + : mDestroyedFramesRef(aTarget) + , mResetOnDestruction(!aTarget) // reset only if target starts out null + { + } + ~MaybeClearDestroyedFrames() + { + if (mResetOnDestruction) { + mDestroyedFramesRef.reset(nullptr); + } + } +}; + +MaybeClearDestroyedFrames maybeClear(mDestroyedFrames); +if (!mDestroyedFrames) { + mDestroyedFrames = MakeUnique>>(); +} PROFILER_LABEL("RestyleManager", "ProcessRestyledFrames", js::ProfileEntry::Category::CSS); nsPresContext* presContext = PresContext(); - FramePropertyTable* propTable = presContext->PropertyTable(); nsCSSFrameConstructor* frameConstructor = presContext->FrameConstructor(); // Handle nsChangeHint_CSSOverflowChange, by either updating the @@ -1135,15 +1168,6 @@ RestyleManagerBase::ProcessRestyledFrames(nsStyleChangeList& aChangeList) // processing restyles frameConstructor->BeginUpdate(); - // Mark frames so that we skip frames that die along the way, bug 123049. - // A frame can be in the list multiple times with different hints. Further - // optmization is possible if nsStyleChangeList::AppendChange could coalesce - for (const nsStyleChangeData& data : aChangeList) { - if (data.mFrame) { - propTable->Set(data.mFrame, ChangeListProperty(), true); - } - } - bool didUpdateCursor = false; for (const nsStyleChangeData& data : aChangeList) { @@ -1157,7 +1181,7 @@ RestyleManagerBase::ProcessRestyledFrames(nsStyleChangeList& aChangeList) "Reflow hint bits set without actually asking for a reflow"); // skip any frame that has been destroyed due to a ripple effect - if (frame && !propTable->Get(frame, ChangeListProperty())) { + if (frame && mDestroyedFrames->Contains(frame)) { continue; } @@ -1409,15 +1433,11 @@ RestyleManagerBase::ProcessRestyledFrames(nsStyleChangeList& aChangeList) frameConstructor->EndUpdate(); - // cleanup references and verify the style tree. Note that the latter needs - // to happen once we've processed the whole list, since until then the tree - // is not in fact in a consistent state. - for (const nsStyleChangeData& data : aChangeList) { - if (data.mFrame) { - propTable->Delete(data.mFrame, ChangeListProperty()); - } - #ifdef DEBUG + // Verify the style tree. Note that this needs to happen once we've + // processed the whole list, since until then the tree is not in fact in a + // consistent state. + for (const nsStyleChangeData& data : aChangeList) { // reget frame from content since it may have been regenerated... if (data.mContent) { nsIFrame* frame = data.mContent->GetPrimaryFrame(); @@ -1429,8 +1449,8 @@ RestyleManagerBase::ProcessRestyledFrames(nsStyleChangeList& aChangeList) NS_WARNING("Unable to test style tree integrity -- no content node " "(and not a viewport frame)"); } -#endif } +#endif aChangeList.Clear(); return NS_OK; diff --git a/layout/base/RestyleManagerBase.h b/layout/base/RestyleManagerBase.h index f81f5e73f5..d92c3d1f73 100644 --- a/layout/base/RestyleManagerBase.h +++ b/layout/base/RestyleManagerBase.h @@ -72,6 +72,11 @@ public: // WillDestroyFrameTree hasn't been called yet. void NotifyDestroyingFrame(nsIFrame* aFrame) { mOverflowChangedTracker.RemoveFrame(aFrame); + // If ProcessRestyledFrames is tracking frames which have been + // destroyed (to avoid re-visiting them), add this one to its set. + if (mDestroyedFrames) { + mDestroyedFrames->PutEntry(aFrame); + } } // Note: It's the caller's responsibility to make sure to wrap a @@ -127,6 +132,12 @@ private: nsPresContext* mPresContext; // weak, can be null after Disconnect(). uint32_t mRestyleGeneration; uint32_t mHoverGeneration; + + // Used to keep track of frames that have been destroyed during + // ProcessRestyledFrames, so we don't try to touch them again even if + // they're referenced again later in the changelist. + mozilla::UniquePtr>> mDestroyedFrames; + // True if we're already waiting for a refresh notification. bool mObservingRefreshDriver; @@ -146,7 +157,7 @@ protected: GetNearestAncestorFrame(nsIContent* aContent); static nsIFrame* - GetNextBlockInInlineSibling(FramePropertyTable* aPropTable, nsIFrame* aFrame); + GetNextBlockInInlineSibling(nsIFrame* aFrame); /** * Get the next continuation or similar ib-split sibling (assuming diff --git a/layout/base/moz.build b/layout/base/moz.build index d3e417f16b..4308a6e4d0 100644 --- a/layout/base/moz.build +++ b/layout/base/moz.build @@ -61,7 +61,7 @@ EXPORTS += [ 'DisplayItemScrollClip.h', 'DisplayListClipState.h', 'FrameLayerBuilder.h', - 'FramePropertyTable.h', + 'FrameProperties.h', 'LayerState.h', 'LayoutLogging.h', 'nsArenaMemoryStats.h', @@ -126,7 +126,6 @@ UNIFIED_SOURCES += [ 'DisplayListClipState.cpp', 'DottedCornerFinder.cpp', 'FrameLayerBuilder.cpp', - 'FramePropertyTable.cpp', 'GeometryUtils.cpp', 'LayoutLogging.cpp', 'MaskLayerImageCache.cpp', diff --git a/layout/base/nsBidiPresUtils.cpp b/layout/base/nsBidiPresUtils.cpp index b3c20aabb6..887563504f 100644 --- a/layout/base/nsBidiPresUtils.cpp +++ b/layout/base/nsBidiPresUtils.cpp @@ -753,7 +753,6 @@ nsBidiPresUtils::ResolveParagraph(BidiParagraphData* aBpd) nsIContent* content = nullptr; int32_t contentTextLength = 0; - FramePropertyTable* propTable = aBpd->mPresContext->PropertyTable(); nsLineBox* currentLine = nullptr; #ifdef DEBUG @@ -809,7 +808,7 @@ nsBidiPresUtils::ResolveParagraph(BidiParagraphData* aBpd) } precedingControl = kBidiLevelNone; lastEmbedingLevel = embeddingLevel; - propTable->Set(frame, nsIFrame::BidiDataProperty(), bidiData); + frame->SetProperty(nsIFrame::BidiDataProperty(), bidiData); }; for (; ;) { @@ -1787,7 +1786,7 @@ nsBidiPresUtils::RemoveBidiContinuation(BidiParagraphData *aBpd, if (frame != NS_BIDI_CONTROL_FRAME) { // Make the frame and its continuation ancestors fluid, // so they can be reused or deleted by normal reflow code - frame->Properties().Set(nsIFrame::BidiDataProperty(), bidiData); + frame->SetProperty(nsIFrame::BidiDataProperty(), bidiData); frame->AddStateBits(NS_FRAME_IS_BIDI); while (frame) { nsIFrame* prev = frame->GetPrevContinuation(); diff --git a/layout/base/nsCSSFrameConstructor.cpp b/layout/base/nsCSSFrameConstructor.cpp index 07a5b80e77..ec676ca921 100644 --- a/layout/base/nsCSSFrameConstructor.cpp +++ b/layout/base/nsCSSFrameConstructor.cpp @@ -492,9 +492,8 @@ static nsContainerFrame* GetIBSplitSibling(nsIFrame* aFrame) // We only store the "ib-split sibling" annotation with the first // frame in the continuation chain. Walk back to find that frame now. - return static_cast - (aFrame->FirstContinuation()-> - Properties().Get(nsIFrame::IBSplitSibling())); + return aFrame->FirstContinuation()-> + GetProperty(nsIFrame::IBSplitSibling()); } static nsContainerFrame* GetIBSplitPrevSibling(nsIFrame* aFrame) @@ -503,9 +502,8 @@ static nsContainerFrame* GetIBSplitPrevSibling(nsIFrame* aFrame) // We only store the ib-split sibling annotation with the first // frame in the continuation chain. Walk back to find that frame now. - return static_cast - (aFrame->FirstContinuation()-> - Properties().Get(nsIFrame::IBSplitPrevSibling())); + return aFrame->FirstContinuation()-> + GetProperty(nsIFrame::IBSplitPrevSibling()); } static nsContainerFrame* @@ -526,7 +524,7 @@ GetLastIBSplitSibling(nsIFrame* aFrame, bool aReturnEmptyTrailingInline) } static void -SetFrameIsIBSplit(nsContainerFrame* aFrame, nsIFrame* aIBSplitSibling) +SetFrameIsIBSplit(nsContainerFrame* aFrame, nsContainerFrame* aIBSplitSibling) { NS_PRECONDITION(aFrame, "bad args!"); @@ -547,9 +545,8 @@ SetFrameIsIBSplit(nsContainerFrame* aFrame, nsIFrame* aIBSplitSibling) // Store the ib-split sibling (if we were given one) with the // first frame in the flow. - FramePropertyTable* props = aFrame->PresContext()->PropertyTable(); - props->Set(aFrame, nsIFrame::IBSplitSibling(), aIBSplitSibling); - props->Set(aIBSplitSibling, nsIFrame::IBSplitPrevSibling(), aFrame); + aFrame->SetProperty(nsIFrame::IBSplitSibling(), aIBSplitSibling); + aIBSplitSibling->SetProperty(nsIFrame::IBSplitPrevSibling(), aFrame); } } @@ -6075,11 +6072,11 @@ AddGenConPseudoToFrame(nsIFrame* aOwnerFrame, nsIContent* aContent) NS_ASSERTION(nsLayoutUtils::IsFirstContinuationOrIBSplitSibling(aOwnerFrame), "property should only be set on first continuation/ib-sibling"); - FrameProperties props = aOwnerFrame->Properties(); - nsIFrame::ContentArray* value = props.Get(nsIFrame::GenConProperty()); + nsIFrame::ContentArray* value = + aOwnerFrame->GetProperty(nsIFrame::GenConProperty()); if (!value) { value = new nsIFrame::ContentArray; - props.Set(nsIFrame::GenConProperty(), value); + aOwnerFrame->SetProperty(nsIFrame::GenConProperty(), value); } value->AppendElement(aContent); } diff --git a/layout/base/nsCSSRendering.cpp b/layout/base/nsCSSRendering.cpp index ff9edf7420..119c6c8a2d 100644 --- a/layout/base/nsCSSRendering.cpp +++ b/layout/base/nsCSSRendering.cpp @@ -293,13 +293,13 @@ protected: if (!prevCont && (aFrame->GetStateBits() & NS_FRAME_PART_OF_IBSPLIT)) { nsIFrame* block = - aFrame->Properties().Get(nsIFrame::IBSplitPrevSibling()); + aFrame->GetProperty(nsIFrame::IBSplitPrevSibling()); if (block) { // The {ib} properties are only stored on first continuations NS_ASSERTION(!block->GetPrevContinuation(), "Incorrect value for IBSplitPrevSibling"); prevCont = - block->Properties().Get(nsIFrame::IBSplitPrevSibling()); + block->GetProperty(nsIFrame::IBSplitPrevSibling()); NS_ASSERTION(prevCont, "How did that happen?"); } } @@ -313,9 +313,9 @@ protected: (aFrame->GetStateBits() & NS_FRAME_PART_OF_IBSPLIT)) { // The {ib} properties are only stored on first continuations aFrame = aFrame->FirstContinuation(); - nsIFrame* block = aFrame->Properties().Get(nsIFrame::IBSplitSibling()); + nsIFrame* block = aFrame->GetProperty(nsIFrame::IBSplitSibling()); if (block) { - nextCont = block->Properties().Get(nsIFrame::IBSplitSibling()); + nextCont = block->GetProperty(nsIFrame::IBSplitSibling()); NS_ASSERTION(nextCont, "How did that happen?"); } } @@ -842,7 +842,7 @@ static nsRect GetOutlineInnerRect(nsIFrame* aFrame) { nsRect* savedOutlineInnerRect = - aFrame->Properties().Get(nsIFrame::OutlineInnerRectProperty()); + aFrame->GetProperty(nsIFrame::OutlineInnerRectProperty()); if (savedOutlineInnerRect) return *savedOutlineInnerRect; NS_NOTREACHED("we should have saved a frame property"); diff --git a/layout/base/nsDisplayList.cpp b/layout/base/nsDisplayList.cpp index a55ec1e393..e35e027e30 100644 --- a/layout/base/nsDisplayList.cpp +++ b/layout/base/nsDisplayList.cpp @@ -666,7 +666,7 @@ nsDisplayListBuilder::AddAnimationsAndTransitionsToLayer(Layer* aLayer, // EffectCompositor needs to know that we refused to run this animation // asynchronously so that it will not throttle the main thread // animation. - aFrame->Properties().Set(nsIFrame::RefusedAsyncAnimationProperty(), true); + aFrame->SetProperty(nsIFrame::RefusedAsyncAnimationProperty(), true); // We need to schedule another refresh driver run so that EffectCompositor // gets a chance to unthrottle the animation. @@ -902,15 +902,13 @@ void nsDisplayListBuilder::MarkOutOfFlowFrameForDisplay(nsIFrame* aDirtyFrame, const DisplayItemClip* oldClip = mClipState.GetClipForContainingBlockDescendants(); const DisplayItemScrollClip* sc = mClipState.GetCurrentInnermostScrollClip(); OutOfFlowDisplayData* data = new OutOfFlowDisplayData(oldClip, sc, dirty); - aFrame->Properties().Set(nsDisplayListBuilder::OutOfFlowDisplayDataProperty(), data); + aFrame->SetProperty(nsDisplayListBuilder::OutOfFlowDisplayDataProperty(), data); MarkFrameForDisplay(aFrame, aDirtyFrame); } static void UnmarkFrameForDisplay(nsIFrame* aFrame) { - nsPresContext* presContext = aFrame->PresContext(); - presContext->PropertyTable()-> - Delete(aFrame, nsDisplayListBuilder::OutOfFlowDisplayDataProperty()); + aFrame->DeleteProperty(nsDisplayListBuilder::OutOfFlowDisplayDataProperty()); for (nsIFrame* f = aFrame; f; f = nsLayoutUtils::GetParentOrPlaceholderFor(f)) { diff --git a/layout/base/nsDisplayList.h b/layout/base/nsDisplayList.h index fcdc9e4fc0..c81d34fac2 100644 --- a/layout/base/nsDisplayList.h +++ b/layout/base/nsDisplayList.h @@ -1003,7 +1003,7 @@ public: static OutOfFlowDisplayData* GetOutOfFlowData(nsIFrame* aFrame) { - return aFrame->Properties().Get(OutOfFlowDisplayDataProperty()); + return aFrame->GetProperty(OutOfFlowDisplayDataProperty()); } nsPresContext* CurrentPresContext() { diff --git a/layout/base/nsIPresShell.h b/layout/base/nsIPresShell.h index 4016cc0a99..865f5534c6 100644 --- a/layout/base/nsIPresShell.h +++ b/layout/base/nsIPresShell.h @@ -1533,11 +1533,12 @@ public: bool aFlushOnHoverChange) = 0; virtual void AddSizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, - nsArenaMemoryStats *aArenaObjectsSize, - size_t *aPresShellSize, - size_t *aStyleSetsSize, - size_t *aTextRunsSize, - size_t *aPresContextSize) = 0; + nsArenaMemoryStats* aArenaObjectsSize, + size_t* aPresShellSize, + size_t* aStyleSetsSize, + size_t* aTextRunsSize, + size_t* aPresContextSize, + size_t* aFramePropertiesSize) = 0; /** * Methods that retrieve the cached font inflation preferences. diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp index 07befdc812..06690b208b 100644 --- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp @@ -2057,13 +2057,13 @@ NS_DECLARE_FRAME_PROPERTY_SMALL_VALUE(ScrollbarThumbLayerized, bool) /* static */ void nsLayoutUtils::SetScrollbarThumbLayerization(nsIFrame* aThumbFrame, bool aLayerize) { - aThumbFrame->Properties().Set(ScrollbarThumbLayerized(), aLayerize); + aThumbFrame->SetProperty(ScrollbarThumbLayerized(), aLayerize); } bool nsLayoutUtils::IsScrollbarThumbLayerized(nsIFrame* aThumbFrame) { - return aThumbFrame->Properties().Get(ScrollbarThumbLayerized()); + return aThumbFrame->GetProperty(ScrollbarThumbLayerized()); } // static @@ -4427,7 +4427,7 @@ nsLayoutUtils::GetNextContinuationOrIBSplitSibling(nsIFrame *aFrame) // frame in the continuation chain. Walk back to find that frame now. aFrame = aFrame->FirstContinuation(); - return aFrame->Properties().Get(nsIFrame::IBSplitSibling()); + return aFrame->GetProperty(nsIFrame::IBSplitSibling()); } return nullptr; @@ -4440,7 +4440,7 @@ nsLayoutUtils::FirstContinuationOrIBSplitSibling(nsIFrame *aFrame) if (result->GetStateBits() & NS_FRAME_PART_OF_IBSPLIT) { while (true) { nsIFrame* f = - result->Properties().Get(nsIFrame::IBSplitPrevSibling()); + result->GetProperty(nsIFrame::IBSplitPrevSibling()); if (!f) break; result = f; @@ -4456,10 +4456,10 @@ nsLayoutUtils::LastContinuationOrIBSplitSibling(nsIFrame *aFrame) nsIFrame *result = aFrame->FirstContinuation(); if (result->GetStateBits() & NS_FRAME_PART_OF_IBSPLIT) { while (true) { - nsIFrame* f = - result->Properties().Get(nsIFrame::IBSplitSibling()); - if (!f) + nsIFrame* f = result->GetProperty(nsIFrame::IBSplitSibling()); + if (!f) { break; + } result = f; } } @@ -4476,7 +4476,7 @@ nsLayoutUtils::IsFirstContinuationOrIBSplitSibling(nsIFrame *aFrame) return false; } if ((aFrame->GetStateBits() & NS_FRAME_PART_OF_IBSPLIT) && - aFrame->Properties().Get(nsIFrame::IBSplitPrevSibling())) { + aFrame->GetProperty(nsIFrame::IBSplitPrevSibling())) { return false; } diff --git a/layout/base/nsPresContext.cpp b/layout/base/nsPresContext.cpp index 3106ff3868..befb5deb2e 100644 --- a/layout/base/nsPresContext.cpp +++ b/layout/base/nsPresContext.cpp @@ -2741,8 +2741,7 @@ nsPresContext::GetPrimaryFrameFor(nsIContent* aContent) size_t nsPresContext::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { - return mPropertyTable.SizeOfExcludingThis(aMallocSizeOf) + - mLangGroupFontPrefs.SizeOfExcludingThis(aMallocSizeOf); + return mLangGroupFontPrefs.SizeOfExcludingThis(aMallocSizeOf); // Measurement of other members may be added later if DMD finds it is // worthwhile. diff --git a/layout/base/nsPresContext.h b/layout/base/nsPresContext.h index d8f876291c..a2b9bb5337 100644 --- a/layout/base/nsPresContext.h +++ b/layout/base/nsPresContext.h @@ -22,7 +22,6 @@ #include "nsITimer.h" #include "nsCRT.h" #include "nsIWidgetListener.h" -#include "FramePropertyTable.h" #include "nsGkAtoms.h" #include "nsCycleCollectionParticipant.h" #include "nsChangeHint.h" @@ -140,7 +139,6 @@ class nsRootPresContext; class nsPresContext : public nsIObserver, public mozilla::SupportsWeakPtr { public: - typedef mozilla::FramePropertyTable FramePropertyTable; typedef mozilla::LangGroupFontPrefs LangGroupFontPrefs; typedef mozilla::ScrollbarStyles ScrollbarStyles; typedef mozilla::StaticPresData StaticPresData; @@ -867,9 +865,6 @@ public: nsIPrintSettings* GetPrintSettings() { return mPrintSettings; } - /* Accessor for table of frame properties */ - FramePropertyTable* PropertyTable() { return &mPropertyTable; } - /* Helper function that ensures that this prescontext is shown in its docshell if it's the most recent prescontext for the docshell. Returns whether the prescontext is now being shown. @@ -1064,11 +1059,6 @@ public: */ nsIFrame* GetPrimaryFrameFor(nsIContent* aContent); - void NotifyDestroyingFrame(nsIFrame* aFrame) - { - PropertyTable()->DeleteAllFor(aFrame); - } - virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); @@ -1294,7 +1284,6 @@ protected: nsCOMPtr mPrintSettings; nsCOMPtr mPrefChangedTimer; - FramePropertyTable mPropertyTable; nsInvalidateRequestList mInvalidateRequestsSinceLastPaint; nsInvalidateRequestList mUndeliveredInvalidateRequestsBeforeLastPaint; diff --git a/layout/base/nsPresShell.cpp b/layout/base/nsPresShell.cpp index d4fbebbf2f..dacc6603b5 100644 --- a/layout/base/nsPresShell.cpp +++ b/layout/base/nsPresShell.cpp @@ -1306,19 +1306,6 @@ PresShell::Destroy() // Destroy the frame manager. This will destroy the frame hierarchy mFrameConstructor->WillDestroyFrameTree(); - // Destroy all frame properties (whose destruction was suppressed - // while destroying the frame tree, but which might contain more - // frames within the properties. - if (mPresContext) { - // Clear out the prescontext's property table -- since our frame tree is - // now dead, we shouldn't be looking up any more properties in that table. - // We want to do this before we call DetachShell() on the prescontext, so - // property destructors can usefully call GetPresShell() on the - // prescontext. - mPresContext->PropertyTable()->DeleteAll(); - } - - NS_WARNING_ASSERTION(!mWeakFrames, "Weak frames alive after destroying FrameManager"); while (mWeakFrames) { @@ -2047,7 +2034,7 @@ PresShell::NotifyDestroyingFrame(nsIFrame* aFrame) } // Remove frame properties - mPresContext->NotifyDestroyingFrame(aFrame); + aFrame->DeleteAllProperties(); if (aFrame == mCurrentEventFrame) { mCurrentEventContent = aFrame->GetContent(); @@ -2076,8 +2063,7 @@ PresShell::NotifyDestroyingFrame(nsIFrame* aFrame) // frame from FrameLayerBuilder::DisplayItemData::mFrameList -- otherwise // the DisplayItemData destructor will use the destroyed frame when it // tries to remove it from the (array) value of this property. - mPresContext->PropertyTable()-> - Delete(aFrame, FrameLayerBuilder::LayerManagerDataProperty()); + aFrame->DeleteProperty( FrameLayerBuilder::LayerManagerDataProperty()); } } @@ -10929,11 +10915,12 @@ PresShell::GetRootPresShell() void PresShell::AddSizeOfIncludingThis(MallocSizeOf aMallocSizeOf, - nsArenaMemoryStats *aArenaObjectsSize, - size_t *aPresShellSize, - size_t *aStyleSetsSize, - size_t *aTextRunsSize, - size_t *aPresContextSize) + nsArenaMemoryStats* aArenaObjectsSize, + size_t* aPresShellSize, + size_t* aStyleSetsSize, + size_t* aTextRunsSize, + size_t* aPresContextSize, + size_t* aFramePropertiesSize) { mFrameArena.AddSizeOfExcludingThis(aMallocSizeOf, aArenaObjectsSize); *aPresShellSize += aMallocSizeOf(this); @@ -10953,6 +10940,12 @@ PresShell::AddSizeOfIncludingThis(MallocSizeOf aMallocSizeOf, *aTextRunsSize += SizeOfTextRuns(aMallocSizeOf); *aPresContextSize += mPresContext->SizeOfIncludingThis(aMallocSizeOf); + + nsIFrame* rootFrame = mFrameConstructor->GetRootFrame(); + if (rootFrame) { + *aFramePropertiesSize += + rootFrame->SizeOfFramePropertiesForTree(aMallocSizeOf); + } } size_t diff --git a/layout/base/nsPresShell.h b/layout/base/nsPresShell.h index 1a8dd3fefa..10548880a9 100644 --- a/layout/base/nsPresShell.h +++ b/layout/base/nsPresShell.h @@ -384,11 +384,12 @@ public: virtual void LoadComplete() override; void AddSizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, - nsArenaMemoryStats *aArenaObjectsSize, - size_t *aPresShellSize, - size_t *aStyleSetsSize, - size_t *aTextRunsSize, - size_t *aPresContextSize) override; + nsArenaMemoryStats* aArenaObjectsSize, + size_t* aPresShellSize, + size_t* aStyleSetsSize, + size_t* aTextRunsSize, + size_t* aPresContextSize, + size_t* aFramePropertiesSize) override; size_t SizeOfTextRuns(mozilla::MallocSizeOf aMallocSizeOf) const; virtual void AddInvalidateHiddenPresShellObserver(nsRefreshDriver *aDriver) override; diff --git a/layout/forms/nsTextControlFrame.cpp b/layout/forms/nsTextControlFrame.cpp index a7f7d40a8f..f8fdf3420a 100644 --- a/layout/forms/nsTextControlFrame.cpp +++ b/layout/forms/nsTextControlFrame.cpp @@ -124,10 +124,10 @@ nsTextControlFrame::DestroyFrom(nsIFrame* aDestructRoot) { mScrollEvent.Revoke(); - EditorInitializer* initializer = Properties().Get(TextControlInitializer()); + EditorInitializer* initializer = GetProperty(TextControlInitializer()); if (initializer) { initializer->Revoke(); - Properties().Delete(TextControlInitializer()); + DeleteProperty(TextControlInitializer()); } // Unbind the text editor state object from the frame. The editor will live @@ -410,12 +410,12 @@ nsTextControlFrame::CreateAnonymousContent(nsTArray& aElements) if (initEagerly) { NS_ASSERTION(!nsContentUtils::IsSafeToRunScript(), "Someone forgot a script blocker?"); - EditorInitializer* initializer = Properties().Get(TextControlInitializer()); + EditorInitializer* initializer = GetProperty(TextControlInitializer()); if (initializer) { initializer->Revoke(); } initializer = new EditorInitializer(this); - Properties().Set(TextControlInitializer(),initializer); + SetProperty(TextControlInitializer(),initializer); nsContentUtils::AddScriptRunner(initializer); } @@ -1262,7 +1262,7 @@ nsTextControlFrame::SetInitialChildList(ChildListID aListID, NS_ASSERTION(txtCtrl, "Content not a text control element"); txtCtrl->InitializeKeyboardEventListeners(); - nsPoint* contentScrollPos = Properties().Get(ContentScrollPos()); + nsPoint* contentScrollPos = GetProperty(ContentScrollPos()); if (contentScrollPos) { // If we have a scroll pos stored to be passed to our anonymous // div, do it here! @@ -1271,7 +1271,7 @@ nsTextControlFrame::SetInitialChildList(ChildListID aListID, nsPresState fakePresState; fakePresState.SetScrollState(*contentScrollPos); statefulFrame->RestoreState(&fakePresState); - Properties().Remove(ContentScrollPos()); + RemoveProperty(ContentScrollPos()); delete contentScrollPos; } } @@ -1421,7 +1421,7 @@ nsTextControlFrame::RestoreState(nsPresState* aState) // Most likely, we don't have our anonymous content constructed yet, which // would cause us to end up here. In this case, we'll just store the scroll // pos ourselves, and forward it to the scroll frame later when it's created. - Properties().Set(ContentScrollPos(), new nsPoint(aState->GetScrollPosition())); + SetProperty(ContentScrollPos(), new nsPoint(aState->GetScrollPosition())); return NS_OK; } diff --git a/layout/forms/nsTextControlFrame.h b/layout/forms/nsTextControlFrame.h index 9d4d0b77c9..7fa39c5fb9 100644 --- a/layout/forms/nsTextControlFrame.h +++ b/layout/forms/nsTextControlFrame.h @@ -327,7 +327,7 @@ private: nsresult GetRootNodeAndInitializeEditor(nsIDOMElement **aRootElement); void FinishedInitializer() { - Properties().Delete(TextControlInitializer()); + DeleteProperty(TextControlInitializer()); } private: diff --git a/layout/generic/ReflowInput.cpp b/layout/generic/ReflowInput.cpp index bbff77ad47..78eca8c6cb 100644 --- a/layout/generic/ReflowInput.cpp +++ b/layout/generic/ReflowInput.cpp @@ -999,13 +999,13 @@ ReflowInput::ComputeRelativeOffsets(WritingMode aWM, // Convert the offsets to physical coordinates and store them on the frame aComputedOffsets = offsets.GetPhysicalMargin(aWM); - FrameProperties props = aFrame->Properties(); - nsMargin* physicalOffsets = props.Get(nsIFrame::ComputedOffsetProperty()); + nsMargin* physicalOffsets = + aFrame->GetProperty(nsIFrame::ComputedOffsetProperty()); if (physicalOffsets) { *physicalOffsets = aComputedOffsets; } else { - props.Set(nsIFrame::ComputedOffsetProperty(), - new nsMargin(aComputedOffsets)); + aFrame->SetProperty(nsIFrame::ComputedOffsetProperty(), + new nsMargin(aComputedOffsets)); } } @@ -1015,21 +1015,22 @@ ReflowInput::ApplyRelativePositioning(nsIFrame* aFrame, nsPoint* aPosition) { if (!aFrame->IsRelativelyPositioned()) { - NS_ASSERTION(!aFrame->Properties().Get(nsIFrame::NormalPositionProperty()), + NS_ASSERTION(!aFrame->GetProperty(nsIFrame::NormalPositionProperty()), "We assume that changing the 'position' property causes " "frame reconstruction. If that ever changes, this code " "should call " - "props.Delete(nsIFrame::NormalPositionProperty())"); + "aFrame->DeleteProperty(nsIFrame::NormalPositionProperty())"); return; } // Store the normal position - FrameProperties props = aFrame->Properties(); - nsPoint* normalPosition = props.Get(nsIFrame::NormalPositionProperty()); + nsPoint* normalPosition = + aFrame->GetProperty(nsIFrame::NormalPositionProperty()); if (normalPosition) { *normalPosition = *aPosition; } else { - props.Set(nsIFrame::NormalPositionProperty(), new nsPoint(*aPosition)); + aFrame->SetProperty(nsIFrame::NormalPositionProperty(), + new nsPoint(*aPosition)); } const nsStyleDisplay* display = aFrame->StyleDisplay(); @@ -2452,20 +2453,20 @@ ReflowInput::InitConstraints(nsPresContext* aPresContext, } static void -UpdateProp(FrameProperties& aProps, +UpdateProp(nsIFrame* aFrame, const FramePropertyDescriptor* aProperty, bool aNeeded, nsMargin& aNewValue) { if (aNeeded) { - nsMargin* propValue = aProps.Get(aProperty); + nsMargin* propValue = aFrame->GetProperty(aProperty); if (propValue) { *propValue = aNewValue; } else { - aProps.Set(aProperty, new nsMargin(aNewValue)); + aFrame->SetProperty(aProperty, new nsMargin(aNewValue)); } } else { - aProps.Delete(aProperty); + aFrame->DeleteProperty(aProperty); } } @@ -2482,8 +2483,7 @@ SizeComputationInput::InitOffsets(WritingMode aWM, // Since we are in reflow, we don't need to store these properties anymore // unless they are dependent on width, in which case we store the new value. nsPresContext *presContext = mFrame->PresContext(); - FrameProperties props(presContext->PropertyTable(), mFrame); - props.Delete(nsIFrame::UsedBorderProperty()); + mFrame->DeleteProperty(nsIFrame::UsedBorderProperty()); // Compute margins from the specified margin style information. These // become the default computed values, and may be adjusted below @@ -2494,7 +2494,7 @@ SizeComputationInput::InitOffsets(WritingMode aWM, // ... but if we did that, we'd need to fix nsFrame::GetUsedMargin // to use it even when the margins are all zero (since sometimes // they get treated as auto) - ::UpdateProp(props, nsIFrame::UsedMarginProperty(), needMarginProp, + ::UpdateProp(mFrame, nsIFrame::UsedMarginProperty(), needMarginProp, ComputedPhysicalMargin()); @@ -2530,7 +2530,7 @@ SizeComputationInput::InitOffsets(WritingMode aWM, auto ApplyBaselinePadding = [this, &needPaddingProp] (LogicalAxis aAxis, Prop aProp) { bool found; - nscoord val = mFrame->Properties().Get(aProp, &found); + nscoord val = mFrame->GetProperty(aProp, &found); if (found) { NS_ASSERTION(val != nscoord(0), "zero in this property is useless"); WritingMode wm = GetWritingMode(); @@ -2603,7 +2603,7 @@ SizeComputationInput::InitOffsets(WritingMode aWM, ComputedPhysicalBorderPadding().SizeTo(0,0,0,0); } } - ::UpdateProp(props, nsIFrame::UsedPaddingProperty(), needPaddingProp, + ::UpdateProp(mFrame, nsIFrame::UsedPaddingProperty(), needPaddingProp, ComputedPhysicalPadding()); } diff --git a/layout/generic/RubyUtils.cpp b/layout/generic/RubyUtils.cpp index f340663bc2..05dd254134 100644 --- a/layout/generic/RubyUtils.cpp +++ b/layout/generic/RubyUtils.cpp @@ -19,21 +19,21 @@ NS_DECLARE_FRAME_PROPERTY_SMALL_VALUE(ReservedISize, nscoord) RubyUtils::SetReservedISize(nsIFrame* aFrame, nscoord aISize) { MOZ_ASSERT(IsExpandableRubyBox(aFrame)); - aFrame->Properties().Set(ReservedISize(), aISize); + aFrame->SetProperty(ReservedISize(), aISize); } /* static */ void RubyUtils::ClearReservedISize(nsIFrame* aFrame) { MOZ_ASSERT(IsExpandableRubyBox(aFrame)); - aFrame->Properties().Remove(ReservedISize()); + aFrame->RemoveProperty(ReservedISize()); } /* static */ nscoord RubyUtils::GetReservedISize(nsIFrame* aFrame) { MOZ_ASSERT(IsExpandableRubyBox(aFrame)); - return aFrame->Properties().Get(ReservedISize()); + return aFrame->GetProperty(ReservedISize()); } AutoRubyTextContainerArray::AutoRubyTextContainerArray( diff --git a/layout/generic/StickyScrollContainer.cpp b/layout/generic/StickyScrollContainer.cpp index d61a7e042f..ca68992c36 100644 --- a/layout/generic/StickyScrollContainer.cpp +++ b/layout/generic/StickyScrollContainer.cpp @@ -45,12 +45,12 @@ StickyScrollContainer::GetStickyScrollContainerForFrame(nsIFrame* aFrame) // return nullptr; } - FrameProperties props = static_cast(do_QueryFrame(scrollFrame))-> - Properties(); - StickyScrollContainer* s = props.Get(StickyScrollContainerProperty()); + auto frame = static_cast(do_QueryFrame(scrollFrame)); + StickyScrollContainer* s = + frame->GetProperty(StickyScrollContainerProperty()); if (!s) { s = new StickyScrollContainer(scrollFrame); - props.Set(StickyScrollContainerProperty(), s); + frame->SetProperty(StickyScrollContainerProperty(), s); } return s; } @@ -69,9 +69,9 @@ StickyScrollContainer::NotifyReparentedFrameAcrossScrollFrameBoundary(nsIFrame* // we aren't going to handle that. return; } - FrameProperties props = static_cast(do_QueryFrame(oldScrollFrame))-> - Properties(); - StickyScrollContainer* oldSSC = props.Get(StickyScrollContainerProperty()); + StickyScrollContainer* oldSSC = + static_cast(do_QueryFrame(oldScrollFrame))-> + GetProperty(StickyScrollContainerProperty()); if (!oldSSC) { // aOldParent had no sticky descendants, so aFrame doesn't have any sticky // descendants, and we're done here. @@ -95,8 +95,7 @@ StickyScrollContainer::NotifyReparentedFrameAcrossScrollFrameBoundary(nsIFrame* StickyScrollContainer* StickyScrollContainer::GetStickyScrollContainerForScrollFrame(nsIFrame* aFrame) { - FrameProperties props = aFrame->Properties(); - return props.Get(StickyScrollContainerProperty()); + return aFrame->GetProperty(StickyScrollContainerProperty()); } static nscoord @@ -141,13 +140,12 @@ StickyScrollContainer::ComputeStickyOffsets(nsIFrame* aFrame) scrollContainerSize.height); // Store the offset - FrameProperties props = aFrame->Properties(); - nsMargin* offsets = props.Get(nsIFrame::ComputedOffsetProperty()); + nsMargin* offsets = aFrame->GetProperty(nsIFrame::ComputedOffsetProperty()); if (offsets) { *offsets = computedOffsets; } else { - props.Set(nsIFrame::ComputedOffsetProperty(), - new nsMargin(computedOffsets)); + aFrame->SetProperty(nsIFrame::ComputedOffsetProperty(), + new nsMargin(computedOffsets)); } } @@ -162,7 +160,7 @@ StickyScrollContainer::ComputeStickyLimits(nsIFrame* aFrame, nsRect* aStick, aContain->SetRect(nscoord_MIN/2, nscoord_MIN/2, nscoord_MAX, nscoord_MAX); const nsMargin* computedOffsets = - aFrame->Properties().Get(nsIFrame::ComputedOffsetProperty()); + aFrame->GetProperty(nsIFrame::ComputedOffsetProperty()); if (!computedOffsets) { // We haven't reflowed the scroll frame yet, so offsets haven't been // computed. Bail. diff --git a/layout/generic/nsBlockFrame.cpp b/layout/generic/nsBlockFrame.cpp index 851e3406c6..a37bfc06bd 100644 --- a/layout/generic/nsBlockFrame.cpp +++ b/layout/generic/nsBlockFrame.cpp @@ -326,10 +326,8 @@ nsBlockFrame::DestroyFrom(nsIFrame* aDestructRoot) nsLineBox::DeleteLineList(presContext, mLines, aDestructRoot, &mFrames); - FramePropertyTable* props = presContext->PropertyTable(); - if (HasPushedFloats()) { - SafelyDestroyFrameListProp(aDestructRoot, shell, props, + SafelyDestroyFrameListProp(aDestructRoot, shell, PushedFloatProperty()); RemoveStateBits(NS_BLOCK_HAS_PUSHED_FLOATS); } @@ -343,13 +341,13 @@ nsBlockFrame::DestroyFrom(nsIFrame* aDestructRoot) } if (GetStateBits() & NS_BLOCK_HAS_OVERFLOW_OUT_OF_FLOWS) { - SafelyDestroyFrameListProp(aDestructRoot, shell, props, + SafelyDestroyFrameListProp(aDestructRoot, shell, OverflowOutOfFlowsProperty()); RemoveStateBits(NS_BLOCK_HAS_OVERFLOW_OUT_OF_FLOWS); } if (HasOutsideBullet()) { - SafelyDestroyFrameListProp(aDestructRoot, shell, props, + SafelyDestroyFrameListProp(aDestructRoot, shell, OutsideBulletProperty()); RemoveStateBits(NS_BLOCK_FRAME_HAS_OUTSIDE_BULLET); } @@ -1669,7 +1667,7 @@ nsBlockFrame::ComputeFinalSize(const ReflowInput& aReflowInput, // our computed size due to overflowing their containing block. (E.g. this // ensures we fill the last row when a multi-row grid item is fragmented). bool found; - nscoord bSize = Properties().Get(FragStretchBSizeProperty(), &found); + nscoord bSize = GetProperty(FragStretchBSizeProperty(), &found); if (found) { finalSize.BSize(wm) = std::max(bSize, finalSize.BSize(wm)); } @@ -1679,7 +1677,7 @@ nsBlockFrame::ComputeFinalSize(const ReflowInput& aReflowInput, if (MOZ_UNLIKELY(aReflowInput.mFlags.mBClampMarginBoxMinSize) && NS_FRAME_IS_COMPLETE(aState.mReflowStatus)) { bool found; - nscoord cbSize = Properties().Get(BClampMarginBoxMinSizeProperty(), &found); + nscoord cbSize = GetProperty(BClampMarginBoxMinSizeProperty(), &found); if (found) { auto marginBoxBSize = finalSize.BSize(wm) + aReflowInput.ComputedLogicalMargin().BStartEnd(wm); @@ -1697,11 +1695,10 @@ nsBlockFrame::ComputeFinalSize(const ReflowInput& aReflowInput, finalSize.BSize(wm) = std::max(0, finalSize.BSize(wm)); *aBEndEdgeOfChildren = blockEndEdgeOfChildren; - FrameProperties properties = Properties(); if (blockEndEdgeOfChildren != finalSize.BSize(wm) - borderPadding.BEnd(wm)) { - properties.Set(BlockEndEdgeOfChildrenProperty(), blockEndEdgeOfChildren); + SetProperty(BlockEndEdgeOfChildrenProperty(), blockEndEdgeOfChildren); } else { - properties.Delete(BlockEndEdgeOfChildrenProperty()); + DeleteProperty(BlockEndEdgeOfChildrenProperty()); } aMetrics.SetSize(wm, finalSize); @@ -1834,7 +1831,7 @@ nsBlockFrame::ComputeCustomOverflow(nsOverflowAreas& aOverflowAreas) { bool found; nscoord blockEndEdgeOfChildren = - Properties().Get(BlockEndEdgeOfChildrenProperty(), &found); + GetProperty(BlockEndEdgeOfChildrenProperty(), &found); if (found) { ConsiderBlockEndEdgeOfChildren(GetWritingMode(), blockEndEdgeOfChildren, aOverflowAreas); @@ -4985,7 +4982,7 @@ nsBlockFrame::GetOverflowLines() const if (!HasOverflowLines()) { return nullptr; } - FrameLines* prop = Properties().Get(OverflowLinesProperty()); + FrameLines* prop = GetProperty(OverflowLinesProperty()); NS_ASSERTION(prop && !prop->mLines.empty() && prop->mLines.front()->GetChildCount() == 0 ? prop->mFrames.IsEmpty() : prop->mLines.front()->mFirstChild == prop->mFrames.FirstChild(), @@ -4999,7 +4996,7 @@ nsBlockFrame::RemoveOverflowLines() if (!HasOverflowLines()) { return nullptr; } - FrameLines* prop = Properties().Remove(OverflowLinesProperty()); + FrameLines* prop = RemoveProperty(OverflowLinesProperty()); NS_ASSERTION(prop && !prop->mLines.empty() && prop->mLines.front()->GetChildCount() == 0 ? prop->mFrames.IsEmpty() : prop->mLines.front()->mFirstChild == prop->mFrames.FirstChild(), @@ -5012,7 +5009,7 @@ void nsBlockFrame::DestroyOverflowLines() { NS_ASSERTION(HasOverflowLines(), "huh?"); - FrameLines* prop = Properties().Remove(OverflowLinesProperty()); + FrameLines* prop = RemoveProperty(OverflowLinesProperty()); NS_ASSERTION(prop && prop->mLines.empty(), "value should always be stored but empty when destroying"); RemoveStateBits(NS_BLOCK_HAS_OVERFLOW_LINES); @@ -5032,10 +5029,9 @@ nsBlockFrame::SetOverflowLines(FrameLines* aOverflowLines) NS_ASSERTION(!(GetStateBits() & NS_BLOCK_HAS_OVERFLOW_LINES), "Overwriting existing overflow lines"); - FrameProperties props = Properties(); // Verify that we won't overwrite an existing overflow list - NS_ASSERTION(!props.Get(OverflowLinesProperty()), "existing overflow list"); - props.Set(OverflowLinesProperty(), aOverflowLines); + NS_ASSERTION(!GetProperty(OverflowLinesProperty()), "existing overflow list"); + SetProperty(OverflowLinesProperty(), aOverflowLines); AddStateBits(NS_BLOCK_HAS_OVERFLOW_LINES); } @@ -5088,7 +5084,7 @@ nsBlockFrame::GetInsideBullet() const return nullptr; } NS_ASSERTION(!HasOutsideBullet(), "invalid bullet state"); - nsBulletFrame* frame = Properties().Get(InsideBulletProperty()); + nsBulletFrame* frame = GetProperty(InsideBulletProperty()); NS_ASSERTION(frame && frame->GetType() == nsGkAtoms::bulletFrame, "bogus inside bullet frame"); return frame; @@ -5109,8 +5105,7 @@ nsBlockFrame::GetOutsideBulletList() const return nullptr; } NS_ASSERTION(!HasInsideBullet(), "invalid bullet state"); - nsFrameList* list = - Properties().Get(OutsideBulletProperty()); + nsFrameList* list = GetProperty(OutsideBulletProperty()); NS_ASSERTION(list && list->GetLength() == 1 && list->FirstChild()->GetType() == nsGkAtoms::bulletFrame, "bogus outside bullet list"); @@ -5123,8 +5118,7 @@ nsBlockFrame::GetPushedFloats() const if (!HasPushedFloats()) { return nullptr; } - nsFrameList* result = - Properties().Get(PushedFloatProperty()); + nsFrameList* result = GetProperty(PushedFloatProperty()); NS_ASSERTION(result, "value should always be non-empty when state set"); return result; } @@ -5137,7 +5131,7 @@ nsBlockFrame::EnsurePushedFloats() return result; result = new (PresContext()->PresShell()) nsFrameList; - Properties().Set(PushedFloatProperty(), result); + SetProperty(PushedFloatProperty(), result); AddStateBits(NS_BLOCK_HAS_PUSHED_FLOATS); return result; @@ -5149,7 +5143,7 @@ nsBlockFrame::RemovePushedFloats() if (!HasPushedFloats()) { return nullptr; } - nsFrameList *result = Properties().Remove(PushedFloatProperty()); + nsFrameList *result = RemoveProperty(PushedFloatProperty()); RemoveStateBits(NS_BLOCK_HAS_PUSHED_FLOATS); NS_ASSERTION(result, "value should always be non-empty when state set"); return result; @@ -5619,7 +5613,7 @@ nsBlockInFlowLineIterator::nsBlockInFlowLineIterator(nsBlockFrame* aFrame, if (mLine != line_end) { *aFoundValidLine = true; if (mLine != cursor) { - aFrame->Properties().Set(nsBlockFrame::LineCursorProperty(), mLine); + aFrame->SetProperty(nsBlockFrame::LineCursorProperty(), mLine); } return; } @@ -6769,7 +6763,7 @@ void nsBlockFrame::ClearLineCursor() return; } - Properties().Delete(LineCursorProperty()); + DeleteProperty(LineCursorProperty()); RemoveStateBits(NS_BLOCK_HAS_LINE_CURSOR); } @@ -6780,7 +6774,7 @@ void nsBlockFrame::SetupLineCursor() return; } - Properties().Set(LineCursorProperty(), mLines.front()); + SetProperty(LineCursorProperty(), mLines.front()); AddStateBits(NS_BLOCK_HAS_LINE_CURSOR); } @@ -6790,9 +6784,7 @@ nsLineBox* nsBlockFrame::GetFirstLineContaining(nscoord y) return nullptr; } - FrameProperties props = Properties(); - - nsLineBox* property = props.Get(LineCursorProperty()); + nsLineBox* property = GetProperty(LineCursorProperty()); LineIterator cursor = mLines.begin(property); nsRect cursorArea = cursor->GetVisualOverflowArea(); @@ -6808,7 +6800,7 @@ nsLineBox* nsBlockFrame::GetFirstLineContaining(nscoord y) } if (cursor.get() != property) { - props.Set(LineCursorProperty(), cursor.get()); + SetProperty(LineCursorProperty(), cursor.get()); } return cursor.get(); @@ -7021,11 +7013,11 @@ nsBlockFrame::CreateBulletFrameForListItem(bool aCreateBulletList, if (aListStylePositionInside) { nsFrameList bulletList(bullet, bullet); AddFrames(bulletList, nullptr); - Properties().Set(InsideBulletProperty(), bullet); + SetProperty(InsideBulletProperty(), bullet); AddStateBits(NS_BLOCK_FRAME_HAS_INSIDE_BULLET); } else { nsFrameList* bulletList = new (shell) nsFrameList(bullet, bullet); - Properties().Set(OutsideBulletProperty(), bulletList); + SetProperty(OutsideBulletProperty(), bulletList); AddStateBits(NS_BLOCK_FRAME_HAS_OUTSIDE_BULLET); } } diff --git a/layout/generic/nsBlockFrame.h b/layout/generic/nsBlockFrame.h index bb41a6e993..f515cc26f3 100644 --- a/layout/generic/nsBlockFrame.h +++ b/layout/generic/nsBlockFrame.h @@ -215,7 +215,7 @@ public: ~AutoLineCursorSetup() { if (mOrigCursor) { - mFrame->Properties().Set(LineCursorProperty(), mOrigCursor); + mFrame->SetProperty(LineCursorProperty(), mOrigCursor); } else { mFrame->ClearLineCursor(); } @@ -416,7 +416,7 @@ protected: NS_DECLARE_FRAME_PROPERTY_WITHOUT_DTOR(LineCursorProperty, nsLineBox) bool HasLineCursor() { return GetStateBits() & NS_BLOCK_HAS_LINE_CURSOR; } nsLineBox* GetLineCursor() { - return HasLineCursor() ? Properties().Get(LineCursorProperty()) : nullptr; + return HasLineCursor() ? GetProperty(LineCursorProperty()) : nullptr; } nsLineBox* NewLineBox(nsIFrame* aFrame, bool aIsBlock) { diff --git a/layout/generic/nsBulletFrame.cpp b/layout/generic/nsBulletFrame.cpp index aa87943216..f6595e8f6d 100644 --- a/layout/generic/nsBulletFrame.cpp +++ b/layout/generic/nsBulletFrame.cpp @@ -903,7 +903,7 @@ nsBulletFrame::GetFontSizeInflation() const if (!HasFontSizeInflation()) { return 1.0f; } - return Properties().Get(FontSizeInflationProperty()); + return GetProperty(FontSizeInflationProperty()); } void @@ -912,13 +912,13 @@ nsBulletFrame::SetFontSizeInflation(float aInflation) if (aInflation == 1.0f) { if (HasFontSizeInflation()) { RemoveStateBits(BULLET_FRAME_HAS_FONT_INFLATION); - Properties().Delete(FontSizeInflationProperty()); + DeleteProperty(FontSizeInflationProperty()); } return; } AddStateBits(BULLET_FRAME_HAS_FONT_INFLATION); - Properties().Set(FontSizeInflationProperty(), aInflation); + SetProperty(FontSizeInflationProperty(), aInflation); } already_AddRefed diff --git a/layout/generic/nsCanvasFrame.cpp b/layout/generic/nsCanvasFrame.cpp index 70a2117cf7..1a8812fb75 100644 --- a/layout/generic/nsCanvasFrame.cpp +++ b/layout/generic/nsCanvasFrame.cpp @@ -300,7 +300,7 @@ nsDisplayCanvasBackgroundImage::Paint(nsDisplayListBuilder* aBuilder, // above. destRect.Round(); RefPtr dt = - Frame()->Properties().Get(nsIFrame::CachedBackgroundImageDT()); + Frame()->GetProperty(nsIFrame::CachedBackgroundImageDT()); DrawTarget* destDT = dest->GetDrawTarget(); if (dt) { BlitSurface(destDT, destRect, dt); @@ -317,7 +317,7 @@ nsDisplayCanvasBackgroundImage::Paint(nsDisplayListBuilder* aBuilder, nsRenderingContext context(ctx); PaintInternal(aBuilder, &context, bgClipRect, &bgClipRect); BlitSurface(dest->GetDrawTarget(), destRect, dt); - frame->Properties().Set(nsIFrame::CachedBackgroundImageDT(), + frame->SetProperty(nsIFrame::CachedBackgroundImageDT(), dt.forget().take()); return; } diff --git a/layout/generic/nsCanvasFrame.h b/layout/generic/nsCanvasFrame.h index 236ffb9c7a..8bd9dbf79e 100644 --- a/layout/generic/nsCanvasFrame.h +++ b/layout/generic/nsCanvasFrame.h @@ -201,7 +201,7 @@ public: virtual void NotifyRenderingChanged() override { - mFrame->Properties().Delete(nsIFrame::CachedBackgroundImageDT()); + mFrame->DeleteProperty(nsIFrame::CachedBackgroundImageDT()); } virtual bool ShouldFixToViewport(nsDisplayListBuilder* aBuilder) override diff --git a/layout/generic/nsContainerFrame.cpp b/layout/generic/nsContainerFrame.cpp index 813d19dfe2..2933ac4cf5 100644 --- a/layout/generic/nsContainerFrame.cpp +++ b/layout/generic/nsContainerFrame.cpp @@ -78,7 +78,7 @@ nsContainerFrame::SetInitialChildList(ChildListID aListID, "Only top layer frames should have backdrop"); MOZ_ASSERT(GetStateBits() & NS_FRAME_OUT_OF_FLOW, "Top layer frames should be out-of-flow"); - MOZ_ASSERT(!Properties().Get(BackdropProperty()), + MOZ_ASSERT(!GetProperty(BackdropProperty()), "We shouldn't have setup backdrop frame list before"); #ifdef DEBUG { @@ -93,7 +93,7 @@ nsContainerFrame::SetInitialChildList(ChildListID aListID, #endif nsFrameList* list = new (PresContext()->PresShell()) nsFrameList(aChildList); - Properties().Set(BackdropProperty(), list); + SetProperty(BackdropProperty(), list); } else { MOZ_ASSERT_UNREACHABLE("Unexpected child list"); } @@ -189,18 +189,17 @@ nsContainerFrame::DestroyAbsoluteFrames(nsIFrame* aDestructRoot) void nsContainerFrame::SafelyDestroyFrameListProp(nsIFrame* aDestructRoot, nsIPresShell* aPresShell, - FramePropertyTable* aPropTable, FrameListPropertyDescriptor aProp) { // Note that the last frame can be removed through another route and thus // delete the property -- that's why we fetch the property again before // removing each frame rather than fetching it once and iterating the list. - while (nsFrameList* frameList = aPropTable->Get(this, aProp)) { + while (nsFrameList* frameList = GetProperty(aProp)) { nsIFrame* frame = frameList->RemoveFirstChild(); if (MOZ_LIKELY(frame)) { frame->DestroyFrom(aDestructRoot); } else { - aPropTable->Remove(this, aProp); + RemoveProperty(aProp); frameList->Delete(aPresShell); return; } @@ -223,22 +222,21 @@ nsContainerFrame::DestroyFrom(nsIFrame* aDestructRoot) // Destroy frames on the auxiliary frame lists and delete the lists. nsPresContext* pc = PresContext(); nsIPresShell* shell = pc->PresShell(); - FramePropertyTable* props = pc->PropertyTable(); - SafelyDestroyFrameListProp(aDestructRoot, shell, props, OverflowProperty()); + SafelyDestroyFrameListProp(aDestructRoot, shell, OverflowProperty()); MOZ_ASSERT(IsFrameOfType(nsIFrame::eCanContainOverflowContainers) || - !(props->Get(this, nsContainerFrame::OverflowContainersProperty()) || - props->Get(this, nsContainerFrame::ExcessOverflowContainersProperty())), + !(GetProperty(nsContainerFrame::OverflowContainersProperty()) || + GetProperty(nsContainerFrame::ExcessOverflowContainersProperty())), "this type of frame should't have overflow containers"); - SafelyDestroyFrameListProp(aDestructRoot, shell, props, + SafelyDestroyFrameListProp(aDestructRoot, shell, OverflowContainersProperty()); - SafelyDestroyFrameListProp(aDestructRoot, shell, props, + SafelyDestroyFrameListProp(aDestructRoot, shell, ExcessOverflowContainersProperty()); - MOZ_ASSERT(!props->Get(this, BackdropProperty()) || + MOZ_ASSERT(!GetProperty(BackdropProperty()) || StyleDisplay()->mTopLayer != NS_STYLE_TOP_LAYER_NONE, "only top layer frame may have backdrop"); - SafelyDestroyFrameListProp(aDestructRoot, shell, props, BackdropProperty()); + SafelyDestroyFrameListProp(aDestructRoot, shell, BackdropProperty()); nsSplittableFrame::DestroyFrom(aDestructRoot); } @@ -278,12 +276,11 @@ nsContainerFrame::GetChildList(ChildListID aListID) const static void AppendIfNonempty(const nsIFrame* aFrame, - FramePropertyTable* aPropTable, nsContainerFrame::FrameListPropertyDescriptor aProperty, nsTArray* aLists, nsIFrame::ChildListID aListID) { - if (nsFrameList* list = aPropTable->Get(aFrame, aProperty)) { + if (nsFrameList* list = aFrame->GetProperty(aProperty)) { list->AppendIfNonempty(aLists, aListID); } } @@ -292,20 +289,19 @@ void nsContainerFrame::GetChildLists(nsTArray* aLists) const { mFrames.AppendIfNonempty(aLists, kPrincipalList); - FramePropertyTable* propTable = PresContext()->PropertyTable(); - ::AppendIfNonempty(this, propTable, OverflowProperty(), + ::AppendIfNonempty(this, OverflowProperty(), aLists, kOverflowList); if (IsFrameOfType(nsIFrame::eCanContainOverflowContainers)) { - ::AppendIfNonempty(this, propTable, OverflowContainersProperty(), + ::AppendIfNonempty(this, OverflowContainersProperty(), aLists, kOverflowContainersList); - ::AppendIfNonempty(this, propTable, ExcessOverflowContainersProperty(), + ::AppendIfNonempty(this, ExcessOverflowContainersProperty(), aLists, kExcessOverflowContainersList); } // Bypass BackdropProperty hashtable lookup for any in-flow frames // since frames in the top layer (only which can have backdrop) are // definitely out-of-flow. if (GetStateBits() & NS_FRAME_OUT_OF_FLOW) { - ::AppendIfNonempty(this, propTable, BackdropProperty(), + ::AppendIfNonempty(this, BackdropProperty(), aLists, kBackdropList); } nsSplittableFrame::GetChildLists(aLists); @@ -1335,15 +1331,15 @@ nsContainerFrame::DisplayOverflowContainers(nsDisplayListBuilder* aBuilder, } static bool -TryRemoveFrame(nsIFrame* aFrame, FramePropertyTable* aPropTable, +TryRemoveFrame(nsIFrame* aFrame, nsContainerFrame::FrameListPropertyDescriptor aProp, nsIFrame* aChildToRemove) { - nsFrameList* list = aPropTable->Get(aFrame, aProp); + nsFrameList* list = aFrame->GetProperty(aProp); if (list && list->StartRemoveFrame(aChildToRemove)) { // aChildToRemove *may* have been removed from this list. if (list->IsEmpty()) { - aPropTable->Remove(aFrame, aProp); + aFrame->RemoveProperty(aProp); list->Delete(aFrame->PresContext()->PresShell()); } return true; @@ -1356,13 +1352,12 @@ nsContainerFrame::MaybeStealOverflowContainerFrame(nsIFrame* aChild) { bool removed = false; if (MOZ_UNLIKELY(aChild->GetStateBits() & NS_FRAME_IS_OVERFLOW_CONTAINER)) { - FramePropertyTable* propTable = PresContext()->PropertyTable(); // Try removing from the overflow container list. - removed = ::TryRemoveFrame(this, propTable, OverflowContainersProperty(), + removed = ::TryRemoveFrame(this, OverflowContainersProperty(), aChild); if (!removed) { // It might be in the excess overflow container list. - removed = ::TryRemoveFrame(this, propTable, + removed = ::TryRemoveFrame(this, ExcessOverflowContainersProperty(), aChild); } @@ -1377,10 +1372,9 @@ nsContainerFrame::StealFrame(nsIFrame* aChild) if (!mFrames.ContainsFrame(aChild)) { nsFrameList* list = GetOverflowFrames(); if (!list || !list->ContainsFrame(aChild)) { - FramePropertyTable* propTable = PresContext()->PropertyTable(); - list = propTable->Get(this, OverflowContainersProperty()); + list = GetProperty(OverflowContainersProperty()); if (!list || !list->ContainsFrame(aChild)) { - list = propTable->Get(this, ExcessOverflowContainersProperty()); + list = GetProperty(ExcessOverflowContainersProperty()); MOZ_ASSERT(list && list->ContainsFrame(aChild), "aChild isn't our child" " or on a frame list not supported by StealFrame"); } @@ -1536,20 +1530,20 @@ nsContainerFrame::SetOverflowFrames(const nsFrameList& aOverflowFrames) nsPresContext* pc = PresContext(); nsFrameList* newList = new (pc->PresShell()) nsFrameList(aOverflowFrames); - pc->PropertyTable()->Set(this, OverflowProperty(), newList); + SetProperty(OverflowProperty(), newList); } nsFrameList* nsContainerFrame::GetPropTableFrames( FrameListPropertyDescriptor aProperty) const { - return PresContext()->PropertyTable()->Get(this, aProperty); + return GetProperty(aProperty); } nsFrameList* nsContainerFrame::RemovePropTableFrames(FrameListPropertyDescriptor aProperty) { - return PresContext()->PropertyTable()->Remove(this, aProperty); + return RemoveProperty(aProperty); } void @@ -1563,7 +1557,7 @@ nsContainerFrame::SetPropTableFrames(nsFrameList* aFrameList, IsFrameOfType(nsIFrame::eCanContainOverflowContainers), "this type of frame can't have overflow containers"); MOZ_ASSERT(!GetPropTableFrames(aProperty)); - PresContext()->PropertyTable()->Set(this, aProperty, aFrameList); + SetProperty(aProperty, aFrameList); } /** @@ -2253,13 +2247,11 @@ nsOverflowContinuationTracker::EndFinish(nsIFrame* aChild) return; } // Forget mOverflowContList if it was deleted. - nsPresContext* pc = aChild->PresContext(); - FramePropertyTable* propTable = pc->PropertyTable(); - nsFrameList* eoc = propTable->Get( - mParent, nsContainerFrame::ExcessOverflowContainersProperty()); + nsFrameList* eoc = mParent->GetProperty + (nsContainerFrame::ExcessOverflowContainersProperty()); if (eoc != mOverflowContList) { - nsFrameList* oc = static_cast(propTable->Get(mParent, - nsContainerFrame::OverflowContainersProperty())); + nsFrameList* oc = static_cast(mParent->GetProperty + (nsContainerFrame::OverflowContainersProperty())); if (oc != mOverflowContList) { // mOverflowContList was deleted mPrevOverflowCont = nullptr; diff --git a/layout/generic/nsContainerFrame.h b/layout/generic/nsContainerFrame.h index a9f6d52dfb..ddf993d91c 100644 --- a/layout/generic/nsContainerFrame.h +++ b/layout/generic/nsContainerFrame.h @@ -24,9 +24,6 @@ #define NS_FRAME_NO_DELETE_NEXT_IN_FLOW_CHILD 0x0010 class nsOverflowContinuationTracker; -namespace mozilla { -class FramePropertyTable; -} // namespace mozilla // Some macros for container classes to do sanity checking on // width/height/x/y values computed during reflow. @@ -548,7 +545,7 @@ public: // Use this to suppress the CRAZY_SIZE assertions. NS_DECLARE_FRAME_PROPERTY_SMALL_VALUE(DebugReflowingWithInfiniteISize, bool) bool IsCrazySizeAssertSuppressed() const { - return Properties().Get(DebugReflowingWithInfiniteISize()); + return GetProperty(DebugReflowingWithInfiniteISize()); } #endif @@ -716,7 +713,6 @@ protected: */ void SafelyDestroyFrameListProp(nsIFrame* aDestructRoot, nsIPresShell* aPresShell, - mozilla::FramePropertyTable* aPropTable, FrameListPropertyDescriptor aProp); // ========================================================================== @@ -898,7 +894,7 @@ inline nsFrameList* nsContainerFrame::GetOverflowFrames() const { - nsFrameList* list = Properties().Get(OverflowProperty()); + nsFrameList* list = GetProperty(OverflowProperty()); NS_ASSERTION(!list || !list->IsEmpty(), "Unexpected empty overflow list"); return list; } @@ -907,7 +903,7 @@ inline nsFrameList* nsContainerFrame::StealOverflowFrames() { - nsFrameList* list = Properties().Remove(OverflowProperty()); + nsFrameList* list = RemoveProperty(OverflowProperty()); NS_ASSERTION(!list || !list->IsEmpty(), "Unexpected empty overflow list"); return list; } diff --git a/layout/generic/nsFlexContainerFrame.cpp b/layout/generic/nsFlexContainerFrame.cpp index 3818d3cb77..94bce1e7ac 100644 --- a/layout/generic/nsFlexContainerFrame.cpp +++ b/layout/generic/nsFlexContainerFrame.cpp @@ -1816,8 +1816,8 @@ nsFlexContainerFrame::MeasureAscentAndHeightForFlexItem( nsPresContext* aPresContext, ReflowInput& aChildReflowInput) { - const FrameProperties props = aItem.Frame()->Properties(); - if (const auto* cachedResult = props.Get(CachedFlexMeasuringReflow())) { + if (const auto* cachedResult = + aItem.Frame()->GetProperty(CachedFlexMeasuringReflow())) { if (cachedResult->IsValidFor(aChildReflowInput)) { return *cachedResult; } @@ -1847,7 +1847,7 @@ nsFlexContainerFrame::MeasureAscentAndHeightForFlexItem( auto result = new CachedMeasuringReflowResult(aChildReflowInput, childDesiredSize); - props.Set(CachedFlexMeasuringReflow(), result); + aItem.Frame()->SetProperty(CachedFlexMeasuringReflow(), result); return *result; } @@ -1855,7 +1855,7 @@ nsFlexContainerFrame::MeasureAscentAndHeightForFlexItem( nsFlexContainerFrame::MarkIntrinsicISizesDirty() { for (nsIFrame* childFrame : mFrames) { - childFrame->Properties().Delete(CachedFlexMeasuringReflow()); + childFrame->DeleteProperty(CachedFlexMeasuringReflow()); } nsContainerFrame::MarkIntrinsicISizesDirty(); } @@ -4236,25 +4236,26 @@ class MOZ_RAII AutoFlexItemMainSizeOverride final public: explicit AutoFlexItemMainSizeOverride(FlexItem& aItem MOZ_GUARD_OBJECT_NOTIFIER_PARAM) - : mItemProps(aItem.Frame()->Properties()) + : mItemFrame(aItem.Frame()) { MOZ_GUARD_OBJECT_NOTIFIER_INIT; - MOZ_ASSERT(!mItemProps.Has(nsIFrame::FlexItemMainSizeOverride()), + MOZ_ASSERT(!mItemFrame->HasProperty(nsIFrame::FlexItemMainSizeOverride()), "FlexItemMainSizeOverride prop shouldn't be set already; " "it should only be set temporarily (& not recursively)"); NS_ASSERTION(aItem.HasIntrinsicRatio(), "This should only be needed for items with an aspect ratio"); - mItemProps.Set(nsIFrame::FlexItemMainSizeOverride(), aItem.GetMainSize()); + mItemFrame->SetProperty(nsIFrame::FlexItemMainSizeOverride(), + aItem.GetMainSize()); } ~AutoFlexItemMainSizeOverride() { - mItemProps.Remove(nsIFrame::FlexItemMainSizeOverride()); + mItemFrame->RemoveProperty(nsIFrame::FlexItemMainSizeOverride()); } private: - const FrameProperties mItemProps; + nsIFrame* mItemFrame; MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER }; @@ -4668,8 +4669,7 @@ nsFlexContainerFrame::MoveFlexItemToFinalPosition( // If item is relpos, look up its offsets (cached from prev reflow) LogicalMargin logicalOffsets(outerWM); if (NS_STYLE_POSITION_RELATIVE == aItem.Frame()->StyleDisplay()->mPosition) { - FrameProperties props = aItem.Frame()->Properties(); - nsMargin* cachedOffsets = props.Get(nsIFrame::ComputedOffsetProperty()); + nsMargin* cachedOffsets = aItem.Frame()->GetProperty(nsIFrame::ComputedOffsetProperty()); MOZ_ASSERT(cachedOffsets, "relpos previously-reflowed frame should've cached its offsets"); logicalOffsets = LogicalMargin(outerWM, *cachedOffsets); diff --git a/layout/generic/nsFloatManager.cpp b/layout/generic/nsFloatManager.cpp index 2c0ff1f38f..4e7e7ff912 100644 --- a/layout/generic/nsFloatManager.cpp +++ b/layout/generic/nsFloatManager.cpp @@ -331,7 +331,7 @@ nsFloatManager::GetRegionFor(WritingMode aWM, nsIFrame* aFloat, const nsSize& aContainerSize) { LogicalRect region = aFloat->GetLogicalRect(aWM, aContainerSize); - void* storedRegion = aFloat->Properties().Get(FloatRegionProperty()); + void* storedRegion = aFloat->GetProperty(FloatRegionProperty()); if (storedRegion) { nsMargin margin = *static_cast(storedRegion); region.Inflate(aWM, LogicalMargin(aWM, margin)); @@ -346,15 +346,14 @@ nsFloatManager::StoreRegionFor(WritingMode aWM, nsIFrame* aFloat, { nsRect region = aRegion.GetPhysicalRect(aWM, aContainerSize); nsRect rect = aFloat->GetRect(); - FrameProperties props = aFloat->Properties(); if (region.IsEqualEdges(rect)) { - props.Delete(FloatRegionProperty()); + aFloat->DeleteProperty(FloatRegionProperty()); } else { - nsMargin* storedMargin = props.Get(FloatRegionProperty()); + nsMargin* storedMargin = aFloat->GetProperty(FloatRegionProperty()); if (!storedMargin) { storedMargin = new nsMargin(); - props.Set(FloatRegionProperty(), storedMargin); + aFloat->SetProperty(FloatRegionProperty(), storedMargin); } *storedMargin = region - rect; } diff --git a/layout/generic/nsFontInflationData.cpp b/layout/generic/nsFontInflationData.cpp index 9e9a51999c..831658c9eb 100644 --- a/layout/generic/nsFontInflationData.cpp +++ b/layout/generic/nsFontInflationData.cpp @@ -6,7 +6,7 @@ /* Per-block-formatting-context manager of font size inflation for pan and zoom UI. */ #include "nsFontInflationData.h" -#include "FramePropertyTable.h" +#include "FrameProperties.h" #include "nsTextControlFrame.h" #include "nsListControlFrame.h" #include "nsComboboxControlFrame.h" @@ -27,7 +27,7 @@ nsFontInflationData::FindFontInflationDataFor(const nsIFrame *aFrame) NS_ASSERTION(bfc->GetStateBits() & NS_FRAME_FONT_INFLATION_FLOW_ROOT, "should have found a flow root"); - return bfc->Properties().Get(FontInflationDataProperty()); + return bfc->GetProperty(FontInflationDataProperty()); } /* static */ bool @@ -36,8 +36,7 @@ nsFontInflationData::UpdateFontInflationDataISizeFor(const ReflowInput& aReflowI nsIFrame *bfc = aReflowInput.mFrame; NS_ASSERTION(bfc->GetStateBits() & NS_FRAME_FONT_INFLATION_FLOW_ROOT, "should have been given a flow root"); - FrameProperties bfcProps(bfc->Properties()); - nsFontInflationData *data = bfcProps.Get(FontInflationDataProperty()); + nsFontInflationData *data = bfc->GetProperty(FontInflationDataProperty()); bool oldInflationEnabled; nscoord oldNCAISize; if (data) { @@ -45,7 +44,7 @@ nsFontInflationData::UpdateFontInflationDataISizeFor(const ReflowInput& aReflowI oldInflationEnabled = data->mInflationEnabled; } else { data = new nsFontInflationData(bfc); - bfcProps.Set(FontInflationDataProperty(), data); + bfc->SetProperty(FontInflationDataProperty(), data); oldNCAISize = -1; oldInflationEnabled = true; /* not relevant */ } @@ -65,8 +64,7 @@ nsFontInflationData::MarkFontInflationDataTextDirty(nsIFrame *aBFCFrame) NS_ASSERTION(aBFCFrame->GetStateBits() & NS_FRAME_FONT_INFLATION_FLOW_ROOT, "should have been given a flow root"); - FrameProperties bfcProps(aBFCFrame->Properties()); - nsFontInflationData *data = bfcProps.Get(FontInflationDataProperty()); + nsFontInflationData *data = aBFCFrame->GetProperty(FontInflationDataProperty()); if (data) { data->MarkTextDirty(); } diff --git a/layout/generic/nsFrame.cpp b/layout/generic/nsFrame.cpp index fa5b24d402..bd96f213b0 100644 --- a/layout/generic/nsFrame.cpp +++ b/layout/generic/nsFrame.cpp @@ -168,13 +168,12 @@ NS_DECLARE_FRAME_PROPERTY_DELETABLE(BoxMetricsProperty, nsBoxLayoutMetrics) static void InitBoxMetrics(nsIFrame* aFrame, bool aClear) { - FrameProperties props = aFrame->Properties(); if (aClear) { - props.Delete(BoxMetricsProperty()); + aFrame->DeleteProperty(BoxMetricsProperty()); } nsBoxLayoutMetrics* metrics = new nsBoxLayoutMetrics(); - props.Set(BoxMetricsProperty(), metrics); + aFrame->SetProperty(BoxMetricsProperty(), metrics); static_cast(aFrame)->nsFrame::MarkIntrinsicISizesDirty(); metrics->mBlockAscent = 0; @@ -254,7 +253,7 @@ nsIFrame::HasAbsolutelyPositionedChildren() const { nsAbsoluteContainingBlock* nsIFrame::GetAbsoluteContainingBlock() const { NS_ASSERTION(IsAbsoluteContainer(), "The frame is not marked as an abspos container correctly"); - nsAbsoluteContainingBlock* absCB = Properties().Get(AbsoluteContainingBlockProperty()); + nsAbsoluteContainingBlock* absCB = GetProperty(AbsoluteContainingBlockProperty()); NS_ASSERTION(absCB, "The frame is marked as an abspos container but doesn't have the property"); return absCB; } @@ -263,25 +262,25 @@ void nsIFrame::MarkAsAbsoluteContainingBlock() { MOZ_ASSERT(GetStateBits() & NS_FRAME_CAN_HAVE_ABSPOS_CHILDREN); - NS_ASSERTION(!Properties().Get(AbsoluteContainingBlockProperty()), + NS_ASSERTION(!GetProperty(AbsoluteContainingBlockProperty()), "Already has an abs-pos containing block property?"); NS_ASSERTION(!HasAnyStateBits(NS_FRAME_HAS_ABSPOS_CHILDREN), "Already has NS_FRAME_HAS_ABSPOS_CHILDREN state bit?"); AddStateBits(NS_FRAME_HAS_ABSPOS_CHILDREN); - Properties().Set(AbsoluteContainingBlockProperty(), new nsAbsoluteContainingBlock(GetAbsoluteListID())); + SetProperty(AbsoluteContainingBlockProperty(), new nsAbsoluteContainingBlock(GetAbsoluteListID())); } void nsIFrame::MarkAsNotAbsoluteContainingBlock() { NS_ASSERTION(!HasAbsolutelyPositionedChildren(), "Think of the children!"); - NS_ASSERTION(Properties().Get(AbsoluteContainingBlockProperty()), + NS_ASSERTION(GetProperty(AbsoluteContainingBlockProperty()), "Should have an abs-pos containing block property"); NS_ASSERTION(HasAnyStateBits(NS_FRAME_HAS_ABSPOS_CHILDREN), "Should have NS_FRAME_HAS_ABSPOS_CHILDREN state bit"); MOZ_ASSERT(HasAnyStateBits(NS_FRAME_CAN_HAVE_ABSPOS_CHILDREN)); RemoveStateBits(NS_FRAME_HAS_ABSPOS_CHILDREN); - Properties().Delete(AbsoluteContainingBlockProperty()); + DeleteProperty(AbsoluteContainingBlockProperty()); } bool @@ -652,32 +651,30 @@ nsFrame::DestroyFrom(nsIFrame* aDestructRoot) } // If we have any IB split siblings, clear their references to us. - // (Note: This has to happen before we call shell->NotifyDestroyingFrame, - // because that clears our Properties() table.) + // (Note: This has to happen before we clear our Properties() table.) if (mState & NS_FRAME_PART_OF_IBSPLIT) { // Delete previous sibling's reference to me. - nsIFrame* prevSib = Properties().Get(nsIFrame::IBSplitPrevSibling()); + nsIFrame* prevSib = GetProperty(nsIFrame::IBSplitPrevSibling()); if (prevSib) { NS_WARNING_ASSERTION( - this == prevSib->Properties().Get(nsIFrame::IBSplitSibling()), + this == prevSib->GetProperty(nsIFrame::IBSplitSibling()), "IB sibling chain is inconsistent"); - prevSib->Properties().Delete(nsIFrame::IBSplitSibling()); + prevSib->DeleteProperty(nsIFrame::IBSplitSibling()); } // Delete next sibling's reference to me. - nsIFrame* nextSib = Properties().Get(nsIFrame::IBSplitSibling()); + nsIFrame* nextSib = GetProperty(nsIFrame::IBSplitSibling()); if (nextSib) { NS_WARNING_ASSERTION( - this == nextSib->Properties().Get(nsIFrame::IBSplitPrevSibling()), + this == nextSib->GetProperty(nsIFrame::IBSplitPrevSibling()), "IB sibling chain is inconsistent"); - nextSib->Properties().Delete(nsIFrame::IBSplitPrevSibling()); + nextSib->DeleteProperty(nsIFrame::IBSplitPrevSibling()); } } bool isPrimaryFrame = (mContent && mContent->GetPrimaryFrame() == this); if (isPrimaryFrame) { - // This needs to happen before shell->NotifyDestroyingFrame because - // that clears our Properties() table. + // This needs to happen before we clear our Properties() table. ActiveLayerTracker::TransferActivityToContent(this, mContent); // Unfortunately, we need to do this for all frames being reframed @@ -712,9 +709,8 @@ nsFrame::DestroyFrom(nsIFrame* aDestructRoot) } } - // Disable visibility tracking. Note that we have to do this before calling - // NotifyDestroyingFrame(), which will clear frame properties and make us lose - // track of whether we were previously visible or not. + // Disable visibility tracking. Note that we have to do this before we clear + // frame properties and lose track of whether we were previously visible. // XXX(seth): It'd be ideal to assert that we're already marked nonvisible // here, but it's unfortunately tricky to guarantee in the face of things like // frame reconstruction induced by style changes. @@ -742,6 +738,10 @@ nsFrame::DestroyFrom(nsIFrame* aDestructRoot) mContent->SetPrimaryFrame(nullptr); } + // Delete all properties attached to the frame, to ensure any property + // destructors that need the frame pointer are handled properly. + DeleteAllProperties(); + // Must retrieve the object ID before calling destructors, so the // vtable is still valid. // @@ -860,22 +860,21 @@ nsFrame::DidSetStyleContext(nsStyleContext* aOldStyleContext) // calls GetUsed(Margin|Border|Padding)() before the next reflow, we // can give an accurate answer. // We don't want to set the property if one already exists. - FrameProperties props = Properties(); nsMargin oldValue(0, 0, 0, 0); nsMargin newValue(0, 0, 0, 0); const nsStyleMargin* oldMargin = aOldStyleContext->PeekStyleMargin(); if (oldMargin && oldMargin->GetMargin(oldValue)) { if ((!StyleMargin()->GetMargin(newValue) || oldValue != newValue) && - !props.Get(UsedMarginProperty())) { - props.Set(UsedMarginProperty(), new nsMargin(oldValue)); + !GetProperty(UsedMarginProperty())) { + SetProperty(UsedMarginProperty(), new nsMargin(oldValue)); } } const nsStylePadding* oldPadding = aOldStyleContext->PeekStylePadding(); if (oldPadding && oldPadding->GetPadding(oldValue)) { if ((!StylePadding()->GetPadding(newValue) || oldValue != newValue) && - !props.Get(UsedPaddingProperty())) { - props.Set(UsedPaddingProperty(), new nsMargin(oldValue)); + !GetProperty(UsedPaddingProperty())) { + SetProperty(UsedPaddingProperty(), new nsMargin(oldValue)); } } @@ -884,8 +883,8 @@ nsFrame::DidSetStyleContext(nsStyleContext* aOldStyleContext) oldValue = oldBorder->GetComputedBorder(); newValue = StyleBorder()->GetComputedBorder(); if (oldValue != newValue && - !props.Get(UsedBorderProperty())) { - props.Set(UsedBorderProperty(), new nsMargin(oldValue)); + !GetProperty(UsedBorderProperty())) { + SetProperty(UsedBorderProperty(), new nsMargin(oldValue)); } } } @@ -961,7 +960,7 @@ nsIFrame::GetUsedMargin() const IsSVGText()) return margin; - nsMargin *m = Properties().Get(UsedMarginProperty()); + nsMargin *m = GetProperty(UsedMarginProperty()); if (m) { margin = *m; } else { @@ -1000,7 +999,7 @@ nsIFrame::GetUsedBorder() const return border; } - nsMargin *b = Properties().Get(UsedBorderProperty()); + nsMargin *b = GetProperty(UsedBorderProperty()); if (b) { border = *b; } else { @@ -1037,7 +1036,7 @@ nsIFrame::GetUsedPadding() const } } - nsMargin *p = Properties().Get(UsedPaddingProperty()); + nsMargin *p = GetProperty(UsedPaddingProperty()); if (p) { padding = *p; } else { @@ -1478,8 +1477,7 @@ nsIFrame::GetVisibility() const } bool isSet = false; - FrameProperties props = Properties(); - uint32_t visibleCount = props.Get(VisibilityStateProperty(), &isSet); + uint32_t visibleCount = GetProperty(VisibilityStateProperty(), &isSet); MOZ_ASSERT(isSet, "Should have a VisibilityStateProperty value " "if NS_FRAME_VISIBILITY_IS_TRACKED is set"); @@ -1552,15 +1550,14 @@ nsIFrame::EnableVisibilityTracking() return; // Nothing to do. } - FrameProperties props = Properties(); - MOZ_ASSERT(!props.Has(VisibilityStateProperty()), + MOZ_ASSERT(!HasProperty(VisibilityStateProperty()), "Shouldn't have a VisibilityStateProperty value " "if NS_FRAME_VISIBILITY_IS_TRACKED is not set"); // Add the state bit so we know to track visibility for this frame, and // initialize the frame property. AddStateBits(NS_FRAME_VISIBILITY_IS_TRACKED); - props.Set(VisibilityStateProperty(), 0); + SetProperty(VisibilityStateProperty(), 0); nsIPresShell* presShell = PresContext()->PresShell(); if (!presShell) { @@ -1582,8 +1579,7 @@ nsIFrame::DisableVisibilityTracking() } bool isSet = false; - FrameProperties props = Properties(); - uint32_t visibleCount = props.Remove(VisibilityStateProperty(), &isSet); + uint32_t visibleCount = RemoveProperty(VisibilityStateProperty(), &isSet); MOZ_ASSERT(isSet, "Should have a VisibilityStateProperty value " "if NS_FRAME_VISIBILITY_IS_TRACKED is set"); @@ -1605,8 +1601,7 @@ nsIFrame::DecApproximateVisibleCount(Maybe aNonvisibleAction MOZ_ASSERT(GetStateBits() & NS_FRAME_VISIBILITY_IS_TRACKED); bool isSet = false; - FrameProperties props = Properties(); - uint32_t visibleCount = props.Get(VisibilityStateProperty(), &isSet); + uint32_t visibleCount = GetProperty(VisibilityStateProperty(), &isSet); MOZ_ASSERT(isSet, "Should have a VisibilityStateProperty value " "if NS_FRAME_VISIBILITY_IS_TRACKED is set"); @@ -1614,7 +1609,7 @@ nsIFrame::DecApproximateVisibleCount(Maybe aNonvisibleAction "decrementing its visible count?"); visibleCount--; - props.Set(VisibilityStateProperty(), visibleCount); + SetProperty(VisibilityStateProperty(), visibleCount); if (visibleCount > 0) { return; } @@ -1629,14 +1624,13 @@ nsIFrame::IncApproximateVisibleCount() MOZ_ASSERT(GetStateBits() & NS_FRAME_VISIBILITY_IS_TRACKED); bool isSet = false; - FrameProperties props = Properties(); - uint32_t visibleCount = props.Get(VisibilityStateProperty(), &isSet); + uint32_t visibleCount = GetProperty(VisibilityStateProperty(), &isSet); MOZ_ASSERT(isSet, "Should have a VisibilityStateProperty value " "if NS_FRAME_VISIBILITY_IS_TRACKED is set"); visibleCount++; - props.Set(VisibilityStateProperty(), visibleCount); + SetProperty(VisibilityStateProperty(), visibleCount); if (visibleCount > 1) { return; } @@ -4943,10 +4937,9 @@ nsFrame::ComputeSizeWithIntrinsicDimensions(nsRenderingContext* aRenderingConte // If FlexItemMainSizeOverride frame-property is set, then that means the // flex container is imposing a main-size on this flex item for it to use // as its size in the container's main axis. - FrameProperties props = Properties(); bool didImposeMainSize; nscoord imposedMainSize = - props.Get(nsIFrame::FlexItemMainSizeOverride(), &didImposeMainSize); + GetProperty(nsIFrame::FlexItemMainSizeOverride(), &didImposeMainSize); if (didImposeMainSize) { imposedMainSizeStyleCoord.emplace(imposedMainSize, nsStyleCoord::CoordConstructor); @@ -5686,7 +5679,7 @@ nsIFrame::GetView() const return nullptr; // Check for a property on the frame - nsView* value = Properties().Get(ViewProperty()); + nsView* value = GetProperty(ViewProperty()); NS_ASSERTION(value, "frame state bit was set but frame has no view"); return value; } @@ -5709,7 +5702,7 @@ nsIFrame::SetView(nsView* aView) #endif // Set a property on the frame - Properties().Set(ViewProperty(), aView); + SetProperty(ViewProperty(), aView); // Set the frame state bit that says the frame has a view AddStateBits(NS_FRAME_HAS_VIEW); @@ -6098,7 +6091,7 @@ static void InvalidateFrameInternal(nsIFrame *aFrame, bool aHasDisplayItem = tru SchedulePaintInternal(aFrame); } if (aFrame->HasAnyStateBits(NS_FRAME_HAS_INVALID_RECT)) { - aFrame->Properties().Delete(nsIFrame::InvalidationRect()); + aFrame->DeleteProperty(nsIFrame::InvalidationRect()); aFrame->RemoveStateBits(NS_FRAME_HAS_INVALID_RECT); } } @@ -6173,13 +6166,13 @@ nsIFrame::InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey) return; } - nsRect* rect = Properties().Get(InvalidationRect()); + nsRect* rect = GetProperty(InvalidationRect()); if (!rect) { if (alreadyInvalid) { return; } rect = new nsRect(); - Properties().Set(InvalidationRect(), rect); + SetProperty(InvalidationRect(), rect); AddStateBits(NS_FRAME_HAS_INVALID_RECT); } @@ -6280,7 +6273,7 @@ nsIFrame::IsInvalid(nsRect& aRect) } if (HasAnyStateBits(NS_FRAME_HAS_INVALID_RECT)) { - nsRect* rect = Properties().Get(InvalidationRect()); + nsRect* rect = GetProperty(InvalidationRect()); NS_ASSERTION(rect, "Must have an invalid rect if NS_FRAME_HAS_INVALID_RECT is set!"); aRect = *rect; } else { @@ -6368,8 +6361,8 @@ ComputeEffectsRect(nsIFrame* aFrame, const nsRect& aOverflowRect, // TODO: We could also take account of clipPath and mask to reduce the // visual overflow, but that's not essential. if (aFrame->StyleEffects()->HasFilters()) { - aFrame->Properties(). - Set(nsIFrame::PreEffectsBBoxProperty(), new nsRect(r)); + aFrame->SetProperty + (nsIFrame::PreEffectsBBoxProperty(), new nsRect(r)); r = nsSVGUtils::GetPostFilterVisualOverflowRect(aFrame, aOverflowRect); } return r; @@ -6407,8 +6400,8 @@ ComputeEffectsRect(nsIFrame* aFrame, const nsRect& aOverflowRect, // the frame dies. if (nsSVGIntegrationUtils::UsingEffectsForFrame(aFrame)) { - aFrame->Properties(). - Set(nsIFrame::PreEffectsBBoxProperty(), new nsRect(r)); + aFrame->SetProperty + (nsIFrame::PreEffectsBBoxProperty(), new nsRect(r)); r = nsSVGIntegrationUtils::ComputePostEffectsVisualOverflowRect(aFrame, r); } @@ -6422,7 +6415,7 @@ nsIFrame::MovePositionBy(const nsPoint& aTranslation) const nsMargin* computedOffsets = nullptr; if (IsRelativelyPositioned()) { - computedOffsets = Properties().Get(nsIFrame::ComputedOffsetProperty()); + computedOffsets = GetProperty(nsIFrame::ComputedOffsetProperty()); } ReflowInput::ApplyRelativePositioning(this, computedOffsets ? *computedOffsets : nsMargin(), @@ -6435,7 +6428,7 @@ nsIFrame::GetNormalRect() const { // It might be faster to first check // StyleDisplay()->IsRelativelyPositionedStyle(). - nsPoint* normalPosition = Properties().Get(NormalPositionProperty()); + nsPoint* normalPosition = GetProperty(NormalPositionProperty()); if (normalPosition) { return nsRect(*normalPosition, GetSize()); } @@ -6447,7 +6440,7 @@ nsIFrame::GetNormalPosition() const { // It might be faster to first check // StyleDisplay()->IsRelativelyPositionedStyle(). - nsPoint* normalPosition = Properties().Get(NormalPositionProperty()); + nsPoint* normalPosition = GetProperty(NormalPositionProperty()); if (normalPosition) { return *normalPosition; } @@ -6506,7 +6499,7 @@ nsIFrame::GetOverflowAreasRelativeToSelf() const { if (IsTransformed()) { nsOverflowAreas* preTransformOverflows = - Properties().Get(PreTransformOverflowAreasProperty()); + GetProperty(PreTransformOverflowAreasProperty()); if (preTransformOverflows) { return nsOverflowAreas(preTransformOverflows->VisualOverflow(), preTransformOverflows->ScrollableOverflow()); @@ -6533,7 +6526,7 @@ nsIFrame::GetScrollableOverflowRectRelativeToSelf() const { if (IsTransformed()) { nsOverflowAreas* preTransformOverflows = - Properties().Get(PreTransformOverflowAreasProperty()); + GetProperty(PreTransformOverflowAreasProperty()); if (preTransformOverflows) return preTransformOverflows->ScrollableOverflow(); } @@ -6545,7 +6538,7 @@ nsIFrame::GetVisualOverflowRectRelativeToSelf() const { if (IsTransformed()) { nsOverflowAreas* preTransformOverflows = - Properties().Get(PreTransformOverflowAreasProperty()); + GetProperty(PreTransformOverflowAreasProperty()); if (preTransformOverflows) return preTransformOverflows->VisualOverflow(); } @@ -6555,7 +6548,7 @@ nsIFrame::GetVisualOverflowRectRelativeToSelf() const nsRect nsIFrame::GetPreEffectsVisualOverflowRect() const { - nsRect* r = Properties().Get(nsIFrame::PreEffectsBBoxProperty()); + nsRect* r = GetProperty(nsIFrame::PreEffectsBBoxProperty()); return r ? *r : GetVisualOverflowRectRelativeToSelf(); } @@ -6758,11 +6751,11 @@ nsIFrame::ListGeneric(nsACString& aTo, const char* aPrefix, uint32_t aFlags) con aTo += nsPrintfCString(" next-%s=%p", fluid?"in-flow":"continuation", static_cast(GetNextContinuation())); } - void* IBsibling = Properties().Get(IBSplitSibling()); + void* IBsibling = GetProperty(IBSplitSibling()); if (IBsibling) { aTo += nsPrintfCString(" IBSplitSibling=%p", IBsibling); } - void* IBprevsibling = Properties().Get(IBSplitPrevSibling()); + void* IBprevsibling = GetProperty(IBSplitPrevSibling()); if (IBprevsibling) { aTo += nsPrintfCString(" IBSplitPrevSibling=%p", IBprevsibling); } @@ -7164,8 +7157,7 @@ nsFrame::GetPointFromOffset(int32_t inOffset, nsPoint* outPoint) // If the embedding level isn't set, just use the CSS direction // property. bool hasBidiData; - FrameBidiData bidiData = - Properties().Get(BidiDataProperty(), &hasBidiData); + FrameBidiData bidiData = GetProperty(BidiDataProperty(), &hasBidiData); bool isRTL = hasBidiData ? IS_LEVEL_RTL(bidiData.embeddingLevel) : StyleVisibility()->mDirection == NS_STYLE_DIRECTION_RTL; @@ -8315,7 +8307,7 @@ nsIFrame::ClearOverflowRects() return false; } if (mOverflow.mType == NS_FRAME_OVERFLOW_LARGE) { - Properties().Delete(OverflowAreasProperty()); + DeleteProperty(OverflowAreasProperty()); } mOverflow.mType = NS_FRAME_OVERFLOW_NONE; return true; @@ -8328,8 +8320,7 @@ nsIFrame::ClearOverflowRects() nsOverflowAreas* nsIFrame::GetOverflowAreasProperty() { - FrameProperties props = Properties(); - nsOverflowAreas* overflow = props.Get(OverflowAreasProperty()); + nsOverflowAreas* overflow = GetProperty(OverflowAreasProperty()); if (overflow) { return overflow; // the property already exists @@ -8338,7 +8329,7 @@ nsIFrame::GetOverflowAreasProperty() // The property isn't set yet, so allocate a new rect, set the property, // and return the newly allocated rect overflow = new nsOverflowAreas; - props.Set(OverflowAreasProperty(), overflow); + SetProperty(OverflowAreasProperty(), overflow); return overflow; } @@ -8349,7 +8340,7 @@ bool nsIFrame::SetOverflowAreas(const nsOverflowAreas& aOverflowAreas) { if (mOverflow.mType == NS_FRAME_OVERFLOW_LARGE) { - nsOverflowAreas* overflow = Properties().Get(OverflowAreasProperty()); + nsOverflowAreas* overflow = GetProperty(OverflowAreasProperty()); bool changed = *overflow != aOverflowAreas; *overflow = aOverflowAreas; @@ -8593,7 +8584,7 @@ ComputeAndIncludeOutlineArea(nsIFrame* aFrame, nsOverflowAreas& aOverflowAreas, } // Keep this code in sync with GetOutlineInnerRect in nsCSSRendering.cpp. - aFrame->Properties().Set(nsIFrame::OutlineInnerRectProperty(), + aFrame->SetProperty(nsIFrame::OutlineInnerRectProperty(), new nsRect(innerRect)); const nscoord offset = outline->mOutlineOffset; nsRect outerRect(innerRect); @@ -8635,22 +8626,22 @@ nsIFrame::FinishAndStoreOverflow(nsOverflowAreas& aOverflowAreas, if (!aOverflowAreas.VisualOverflow().IsEqualEdges(bounds) || !aOverflowAreas.ScrollableOverflow().IsEqualEdges(bounds)) { nsOverflowAreas* initial = - Properties().Get(nsIFrame::InitialOverflowProperty()); + GetProperty(nsIFrame::InitialOverflowProperty()); if (!initial) { - Properties().Set(nsIFrame::InitialOverflowProperty(), + SetProperty(nsIFrame::InitialOverflowProperty(), new nsOverflowAreas(aOverflowAreas)); } else if (initial != &aOverflowAreas) { *initial = aOverflowAreas; } } else { - Properties().Delete(nsIFrame::InitialOverflowProperty()); + DeleteProperty(nsIFrame::InitialOverflowProperty()); } #ifdef DEBUG - Properties().Set(nsIFrame::DebugInitialOverflowPropertyApplied(), true); + SetProperty(nsIFrame::DebugInitialOverflowPropertyApplied(), true); #endif } else { #ifdef DEBUG - Properties().Delete(nsIFrame::DebugInitialOverflowPropertyApplied()); + DeleteProperty(nsIFrame::DebugInitialOverflowPropertyApplied()); #endif } @@ -8745,8 +8736,8 @@ nsIFrame::FinishAndStoreOverflow(nsOverflowAreas& aOverflowAreas, } if (hasTransform) { - Properties().Set(nsIFrame::PreTransformOverflowAreasProperty(), - new nsOverflowAreas(aOverflowAreas)); + SetProperty(nsIFrame::PreTransformOverflowAreasProperty(), + new nsOverflowAreas(aOverflowAreas)); if (Combines3DTransformWithAncestors()) { /* If we're a preserve-3d leaf frame, then our pre-transform overflow should be correct. Our @@ -8771,7 +8762,7 @@ nsIFrame::FinishAndStoreOverflow(nsOverflowAreas& aOverflowAreas, } } } else { - Properties().Delete(nsIFrame::PreTransformOverflowAreasProperty()); + DeleteProperty(nsIFrame::PreTransformOverflowAreasProperty()); } /* Revert the size change in case some caller is depending on this. */ @@ -8803,7 +8794,7 @@ nsIFrame::RecomputePerspectiveChildrenOverflow(const nsIFrame* aStartFrame) } if (child->HasPerspective()) { nsOverflowAreas* overflow = - child->Properties().Get(nsIFrame::InitialOverflowProperty()); + child->GetProperty(nsIFrame::InitialOverflowProperty()); nsRect bounds(nsPoint(0, 0), child->GetSize()); if (overflow) { nsOverflowAreas overflowCopy = *overflow; @@ -8915,7 +8906,7 @@ GetIBSplitSiblingForAnonymousBlock(const nsIFrame* aFrame) * property. */ nsIFrame *ibSplitSibling = - aFrame->Properties().Get(nsIFrame::IBSplitPrevSibling()); + aFrame->GetProperty(nsIFrame::IBSplitPrevSibling()); NS_ASSERTION(ibSplitSibling, "Broken frame tree?"); return ibSplitSibling; } @@ -9825,7 +9816,7 @@ nsFrame::BoxReflow(nsBoxLayoutState& aState, nsBoxLayoutMetrics* nsFrame::BoxMetrics() const { - nsBoxLayoutMetrics* metrics = Properties().Get(BoxMetricsProperty()); + nsBoxLayoutMetrics* metrics = GetProperty(BoxMetricsProperty()); NS_ASSERTION(metrics, "A box layout method was called but InitBoxMetrics was never called"); return metrics; } @@ -10069,6 +10060,24 @@ nsFrame::HasCSSTransitions() return collection && collection->mAnimations.Length() > 0; } +size_t +nsIFrame::SizeOfFramePropertiesForTree(MallocSizeOf aMallocSizeOf) const +{ + size_t result = 0; + + result += mProperties.SizeOfExcludingThis(aMallocSizeOf); + + FrameChildListIterator iter(this); + while (!iter.IsDone()) { + for (const nsIFrame* f : iter.CurrentList()) { + result += f->SizeOfFramePropertiesForTree(aMallocSizeOf); + } + iter.Next(); + } + + return result; +} + // Box layout debugging #ifdef DEBUG_REFLOW int32_t gIndent2 = 0; diff --git a/layout/generic/nsGridContainerFrame.cpp b/layout/generic/nsGridContainerFrame.cpp index fbd61f783a..3a2d5ad1de 100644 --- a/layout/generic/nsGridContainerFrame.cpp +++ b/layout/generic/nsGridContainerFrame.cpp @@ -2000,7 +2000,7 @@ struct MOZ_STACK_CLASS nsGridContainerFrame::GridReflowInput ++fragment; firstInFlow = pif; } - mSharedGridData = firstInFlow->Properties().Get(SharedGridData::Prop()); + mSharedGridData = firstInFlow->GetProperty(SharedGridData::Prop()); MOZ_ASSERT(mSharedGridData, "first-in-flow must have SharedGridData"); // Find the start row for this fragment and undo breaks after that row @@ -2809,7 +2809,7 @@ nsGridContainerFrame::GridItemCB(nsIFrame* aChild) { MOZ_ASSERT((aChild->GetStateBits() & NS_FRAME_OUT_OF_FLOW) && aChild->IsAbsolutelyPositioned()); - nsRect* cb = aChild->Properties().Get(GridItemContainingBlockRect()); + nsRect* cb = aChild->GetProperty(GridItemContainingBlockRect()); MOZ_ASSERT(cb, "this method must only be called on grid items, and the grid " "container should've reflowed this item by now and set up cb"); return *cb; @@ -2836,7 +2836,7 @@ nsGridContainerFrame::AddImplicitNamedAreas( // Lazily create the ImplicitNamedAreas. if (!areas) { areas = new ImplicitNamedAreas; - Properties().Set(ImplicitNamedAreasProperty(), areas); + SetProperty(ImplicitNamedAreasProperty(), areas); } mozilla::css::GridNamedArea area; @@ -2868,7 +2868,7 @@ nsGridContainerFrame::InitImplicitNamedAreas(const nsStylePosition* aStyle) AddImplicitNamedAreas(aStyle->mGridTemplateColumns.mLineNameLists); AddImplicitNamedAreas(aStyle->mGridTemplateRows.mLineNameLists); if (areas && areas->Count() == 0) { - Properties().Delete(ImplicitNamedAreasProperty()); + DeleteProperty(ImplicitNamedAreasProperty()); } } @@ -3711,7 +3711,7 @@ MeasuringReflow(nsIFrame* aChild, } #ifdef DEBUG // This will suppress various CRAZY_SIZE warnings for this reflow. - parent->Properties().Set( + parent->SetProperty( nsContainerFrame::DebugReflowingWithInfiniteISize(), true); #endif auto wm = aChild->GetWritingMode(); @@ -3724,10 +3724,10 @@ MeasuringReflow(nsIFrame* aChild, } if (aBMinSizeClamp != NS_MAXSIZE) { riFlags |= ReflowInput::B_CLAMP_MARGIN_BOX_MIN_SIZE; - aChild->Properties().Set(nsIFrame::BClampMarginBoxMinSizeProperty(), + aChild->SetProperty(nsIFrame::BClampMarginBoxMinSizeProperty(), aBMinSizeClamp); } else { - aChild->Properties().Delete(nsIFrame::BClampMarginBoxMinSizeProperty()); + aChild->DeleteProperty(nsIFrame::BClampMarginBoxMinSizeProperty()); } ReflowInput childRI(pc, *rs, aChild, aAvailableSize, &aCBSize, riFlags); ReflowOutput childSize(childRI); @@ -3738,7 +3738,7 @@ MeasuringReflow(nsIFrame* aChild, parent->FinishReflowChild(aChild, pc, childSize, &childRI, wm, LogicalPoint(wm), nsSize(), flags); #ifdef DEBUG - parent->Properties().Delete(nsContainerFrame::DebugReflowingWithInfiniteISize()); + parent->DeleteProperty(nsContainerFrame::DebugReflowingWithInfiniteISize()); #endif return childSize.BSize(wm); } @@ -5253,9 +5253,9 @@ nsGridContainerFrame::ReflowInFlowChild(nsIFrame* aChild, baselineAdjust = -baselineAdjust; } if (baselineAdjust != nscoord(0)) { - aChild->Properties().Set(aProp, baselineAdjust); + aChild->SetProperty(aProp, baselineAdjust); } else { - aChild->Properties().Delete(aProp); + aChild->DeleteProperty(aProp); } }; SetProp(eLogicalAxisBlock, isOrthogonal ? IBaselinePadProperty() : @@ -5292,10 +5292,10 @@ nsGridContainerFrame::ReflowInFlowChild(nsIFrame* aChild, auto childBAxis = GetOrthogonalAxis(childIAxis); if (aGridItemInfo->mState[childBAxis] & ItemState::eClampMarginBoxMinSize) { flags |= ReflowInput::B_CLAMP_MARGIN_BOX_MIN_SIZE; - aChild->Properties().Set(BClampMarginBoxMinSizeProperty(), - childCBSize.BSize(childWM)); + aChild->SetProperty(BClampMarginBoxMinSizeProperty(), + childCBSize.BSize(childWM)); } else { - aChild->Properties().Delete(BClampMarginBoxMinSizeProperty()); + aChild->DeleteProperty(BClampMarginBoxMinSizeProperty()); } if ((aGridItemInfo->mState[childIAxis] & ItemState::eApplyAutoMinSize)) { flags |= ReflowInput::I_APPLY_AUTO_MIN_SIZE; @@ -5313,11 +5313,11 @@ nsGridContainerFrame::ReflowInFlowChild(nsIFrame* aChild, // A table-wrapper needs to propagate the CB size we give it to its // inner table frame later. @see nsTableWrapperFrame::InitChildReflowInput. if (childType == nsGkAtoms::tableWrapperFrame) { - const auto& props = aChild->Properties(); - LogicalSize* cb = props.Get(nsTableWrapperFrame::GridItemCBSizeProperty()); + LogicalSize* cb = + aChild->GetProperty(nsTableWrapperFrame::GridItemCBSizeProperty()); if (!cb) { cb = new LogicalSize(childWM); - props.Set(nsTableWrapperFrame::GridItemCBSizeProperty(), cb); + aChild->SetProperty(nsTableWrapperFrame::GridItemCBSizeProperty(), cb); } *cb = percentBasis; } @@ -5337,9 +5337,9 @@ nsGridContainerFrame::ReflowInFlowChild(nsIFrame* aChild, } } if (stretch) { - aChild->Properties().Set(FragStretchBSizeProperty(), *aStretchBSize); + aChild->SetProperty(FragStretchBSizeProperty(), *aStretchBSize); } else { - aChild->Properties().Delete(FragStretchBSizeProperty()); + aChild->DeleteProperty(FragStretchBSizeProperty()); } } @@ -5951,10 +5951,10 @@ nsGridContainerFrame::ReflowChildren(GridReflowInput& aState, LogicalRect itemCB = aState.ContainingBlockForAbsPos(area, gridOrigin, gridCB); // nsAbsoluteContainingBlock::Reflow uses physical coordinates. - nsRect* cb = child->Properties().Get(GridItemContainingBlockRect()); + nsRect* cb = child->GetProperty(GridItemContainingBlockRect()); if (!cb) { cb = new nsRect; - child->Properties().Set(GridItemContainingBlockRect(), cb); + child->SetProperty(GridItemContainingBlockRect(), cb); } *cb = itemCB.GetPhysicalRect(wm, gridCBPhysicalSize); } @@ -6044,7 +6044,7 @@ nsGridContainerFrame::Reflow(nsPresContext* aPresContext, f = next; } if (overflowContainers->IsEmpty()) { - Properties().Delete(OverflowContainersProperty()); + DeleteProperty(OverflowContainersProperty()); } MergeSortedExcessOverflowContainers(moveToEOC); } @@ -6355,7 +6355,7 @@ nsGridContainerFrame::Reflow(nsPresContext* aPresContext, Move(colTrackStates), Move(colRemovedRepeatTracks), gridReflowInput.mColFunctions.mRepeatAutoStart); - Properties().Set(GridColTrackInfo(), colInfo); + SetProperty(GridColTrackInfo(), colInfo); uint32_t rowTrackCount = gridReflowInput.mRows.mSizes.Length(); nsTArray rowTrackPositions(rowTrackCount); @@ -6390,7 +6390,7 @@ nsGridContainerFrame::Reflow(nsPresContext* aPresContext, Move(rowTrackStates), Move(rowRemovedRepeatTracks), gridReflowInput.mRowFunctions.mRepeatAutoStart); - Properties().Set(GridRowTrackInfo(), rowInfo); + SetProperty(GridRowTrackInfo(), rowInfo); if (prevInFlow) { // This frame is fragmenting rows from a previous frame, so patch up @@ -6399,7 +6399,7 @@ nsGridContainerFrame::Reflow(nsPresContext* aPresContext, // FIXME: This can be streamlined and/or removed when bug 1151204 lands. ComputedGridTrackInfo* priorRowInfo = - prevInFlow->Properties().Get(GridRowTrackInfo()); + prevInFlow->GetProperty(GridRowTrackInfo()); // Adjust track positions based on the first track in this fragment. if (priorRowInfo->mPositions.Length() > @@ -6421,7 +6421,7 @@ nsGridContainerFrame::Reflow(nsPresContext* aPresContext, Move(priorRowInfo->mStates), Move(priorRowInfo->mRemovedRepeatTracks), priorRowInfo->mRepeatFirstTrack); - prevInFlow->Properties().Set(GridRowTrackInfo(), revisedPriorRowInfo); + prevInFlow->SetProperty(GridRowTrackInfo(), revisedPriorRowInfo); } // Generate the line info properties. We need to provide the number of @@ -6448,7 +6448,7 @@ nsGridContainerFrame::Reflow(nsPresContext* aPresContext, Move(columnLineNames), gridColTemplate.mRepeatAutoLineNameListBefore, gridColTemplate.mRepeatAutoLineNameListAfter); - Properties().Set(GridColumnLineInfo(), columnLineInfo); + SetProperty(GridColumnLineInfo(), columnLineInfo); // Generate row lines next. capacity = gridReflowInput.mRows.mSizes.Length(); @@ -6469,25 +6469,25 @@ nsGridContainerFrame::Reflow(nsPresContext* aPresContext, Move(rowLineNames), gridRowTemplate.mRepeatAutoLineNameListBefore, gridRowTemplate.mRepeatAutoLineNameListAfter); - Properties().Set(GridRowLineInfo(), rowLineInfo); + SetProperty(GridRowLineInfo(), rowLineInfo); // Generate area info for explicit areas. Implicit areas are handled // elsewhere. if (gridReflowInput.mGridStyle->mGridTemplateAreas) { nsTArray* areas = new nsTArray( gridReflowInput.mGridStyle->mGridTemplateAreas->mNamedAreas); - Properties().Set(ExplicitNamedAreasProperty(), areas); + SetProperty(ExplicitNamedAreasProperty(), areas); } else { - Properties().Delete(ExplicitNamedAreasProperty()); + DeleteProperty(ExplicitNamedAreasProperty()); } } if (!prevInFlow) { - SharedGridData* sharedGridData = Properties().Get(SharedGridData::Prop()); + SharedGridData* sharedGridData = GetProperty(SharedGridData::Prop()); if (!NS_FRAME_IS_FULLY_COMPLETE(aStatus)) { if (!sharedGridData) { sharedGridData = new SharedGridData; - Properties().Set(SharedGridData::Prop(), sharedGridData); + SetProperty(SharedGridData::Prop(), sharedGridData); } sharedGridData->mCols.mSizes.Clear(); sharedGridData->mCols.mSizes.SwapElements(gridReflowInput.mCols.mSizes); @@ -6522,7 +6522,7 @@ nsGridContainerFrame::Reflow(nsPresContext* aPresContext, sharedGridData->mGenerateComputedGridInfo = HasAnyStateBits(NS_STATE_GRID_GENERATE_COMPUTED_VALUES); } else if (sharedGridData && !GetNextInFlow()) { - Properties().Delete(SharedGridData::Prop()); + DeleteProperty(SharedGridData::Prop()); } } @@ -7142,10 +7142,10 @@ nsGridContainerFrame::GetGridFrameWithComputedInfo(nsIFrame* aFrame) nsGridContainerFrame* gridFrame = GetGridContainerFrame(aFrame); if (gridFrame) { // if any of our properties are missing, generate them - bool reflowNeeded = (!gridFrame->Properties().Has(GridColTrackInfo()) || - !gridFrame->Properties().Has(GridRowTrackInfo()) || - !gridFrame->Properties().Has(GridColumnLineInfo()) || - !gridFrame->Properties().Has(GridRowLineInfo())); + bool reflowNeeded = (!gridFrame->HasProperty(GridColTrackInfo()) || + !gridFrame->HasProperty(GridRowTrackInfo()) || + !gridFrame->HasProperty(GridColumnLineInfo()) || + !gridFrame->HasProperty(GridRowLineInfo())); if (reflowNeeded) { // Trigger a reflow that generates additional grid property data. @@ -7161,13 +7161,13 @@ nsGridContainerFrame::GetGridFrameWithComputedInfo(nsIFrame* aFrame) // Assert the grid properties are present MOZ_ASSERT(!gridFrame || - gridFrame->Properties().Has(GridColTrackInfo())); + gridFrame->HasProperty(GridColTrackInfo())); MOZ_ASSERT(!gridFrame || - gridFrame->Properties().Has(GridRowTrackInfo())); + gridFrame->HasProperty(GridRowTrackInfo())); MOZ_ASSERT(!gridFrame || - gridFrame->Properties().Has(GridColumnLineInfo())); + gridFrame->HasProperty(GridColumnLineInfo())); MOZ_ASSERT(!gridFrame || - gridFrame->Properties().Has(GridRowLineInfo())); + gridFrame->HasProperty(GridRowLineInfo())); } } diff --git a/layout/generic/nsGridContainerFrame.h b/layout/generic/nsGridContainerFrame.h index e610dfa0b0..960558421b 100644 --- a/layout/generic/nsGridContainerFrame.h +++ b/layout/generic/nsGridContainerFrame.h @@ -164,7 +164,7 @@ public: NS_DECLARE_FRAME_PROPERTY_DELETABLE(GridColTrackInfo, ComputedGridTrackInfo) const ComputedGridTrackInfo* GetComputedTemplateColumns() { - const ComputedGridTrackInfo* info = Properties().Get(GridColTrackInfo()); + const ComputedGridTrackInfo* info = GetProperty(GridColTrackInfo()); MOZ_ASSERT(info, "Property generation wasn't requested."); return info; } @@ -172,7 +172,7 @@ public: NS_DECLARE_FRAME_PROPERTY_DELETABLE(GridRowTrackInfo, ComputedGridTrackInfo) const ComputedGridTrackInfo* GetComputedTemplateRows() { - const ComputedGridTrackInfo* info = Properties().Get(GridRowTrackInfo()); + const ComputedGridTrackInfo* info = GetProperty(GridRowTrackInfo()); MOZ_ASSERT(info, "Property generation wasn't requested."); return info; } @@ -180,7 +180,7 @@ public: NS_DECLARE_FRAME_PROPERTY_DELETABLE(GridColumnLineInfo, ComputedGridLineInfo) const ComputedGridLineInfo* GetComputedTemplateColumnLines() { - const ComputedGridLineInfo* info = Properties().Get(GridColumnLineInfo()); + const ComputedGridLineInfo* info = GetProperty(GridColumnLineInfo()); MOZ_ASSERT(info, "Property generation wasn't requested."); return info; } @@ -188,7 +188,7 @@ public: NS_DECLARE_FRAME_PROPERTY_DELETABLE(GridRowLineInfo, ComputedGridLineInfo) const ComputedGridLineInfo* GetComputedTemplateRowLines() { - const ComputedGridLineInfo* info = Properties().Get(GridRowLineInfo()); + const ComputedGridLineInfo* info = GetProperty(GridRowLineInfo()); MOZ_ASSERT(info, "Property generation wasn't requested."); return info; } @@ -199,14 +199,14 @@ public: NS_DECLARE_FRAME_PROPERTY_DELETABLE(ImplicitNamedAreasProperty, ImplicitNamedAreas) ImplicitNamedAreas* GetImplicitNamedAreas() const { - return Properties().Get(ImplicitNamedAreasProperty()); + return GetProperty(ImplicitNamedAreasProperty()); } typedef nsTArray ExplicitNamedAreas; NS_DECLARE_FRAME_PROPERTY_DELETABLE(ExplicitNamedAreasProperty, ExplicitNamedAreas) ExplicitNamedAreas* GetExplicitNamedAreas() const { - return Properties().Get(ExplicitNamedAreasProperty()); + return GetProperty(ExplicitNamedAreasProperty()); } /** diff --git a/layout/generic/nsIFrame.h b/layout/generic/nsIFrame.h index 2acafa8821..37a4e3749b 100644 --- a/layout/generic/nsIFrame.h +++ b/layout/generic/nsIFrame.h @@ -24,7 +24,7 @@ #include #include "CaretAssociationHint.h" -#include "FramePropertyTable.h" +#include "FrameProperties.h" #include "mozilla/layout/FrameChildList.h" #include "mozilla/Maybe.h" #include "mozilla/WritingModes.h" @@ -1005,8 +1005,8 @@ public: #define NS_DECLARE_FRAME_PROPERTY_SMALL_VALUE(prop, type) \ NS_DECLARE_FRAME_PROPERTY_WITHOUT_DTOR(prop, mozilla::SmallValueHolder) - NS_DECLARE_FRAME_PROPERTY_WITHOUT_DTOR(IBSplitSibling, nsIFrame) - NS_DECLARE_FRAME_PROPERTY_WITHOUT_DTOR(IBSplitPrevSibling, nsIFrame) + NS_DECLARE_FRAME_PROPERTY_WITHOUT_DTOR(IBSplitSibling, nsContainerFrame) + NS_DECLARE_FRAME_PROPERTY_WITHOUT_DTOR(IBSplitPrevSibling, nsContainerFrame) NS_DECLARE_FRAME_PROPERTY_DELETABLE(NormalPositionProperty, nsPoint) NS_DECLARE_FRAME_PROPERTY_DELETABLE(ComputedOffsetProperty, nsMargin) @@ -1059,7 +1059,7 @@ public: mozilla::FrameBidiData GetBidiData() { - return Properties().Get(BidiDataProperty()); + return GetProperty(BidiDataProperty()); } nsBidiLevel GetBaseLevel() @@ -1073,7 +1073,7 @@ public: } nsTArray* GetGenConPseudos() { - return Properties().Get(GenConProperty()); + return GetProperty(GenConProperty()); } /** @@ -1534,7 +1534,7 @@ public: bool RefusedAsyncAnimation() const { - return Properties().Get(RefusedAsyncAnimationProperty()); + return GetProperty(RefusedAsyncAnimationProperty()); } /** @@ -3061,9 +3061,53 @@ public: return mContent == aParentContent; } - FrameProperties Properties() const { - return FrameProperties(PresContext()->PropertyTable(), this); - } +/** + * Support for reading and writing properties on the frame. + * These call through to the frame's FrameProperties object, if it + * exists, but avoid creating it if no property is ever set. + */ +template +FrameProperties::PropertyType +GetProperty(FrameProperties::Descriptor aProperty, + bool* aFoundResult = nullptr) const +{ + return mProperties.Get(aProperty, aFoundResult); +} + +template +bool HasProperty(FrameProperties::Descriptor aProperty) const +{ + return mProperties.Has(aProperty); +} + +template +void SetProperty(FrameProperties::Descriptor aProperty, + FrameProperties::PropertyType aValue) +{ + mProperties.Set(aProperty, aValue, this); +} + +template +FrameProperties::PropertyType +RemoveProperty(FrameProperties::Descriptor aProperty, + bool* aFoundResult = nullptr) +{ + return mProperties.Remove(aProperty, aFoundResult); +} + +template +void DeleteProperty(FrameProperties::Descriptor aProperty) +{ + mProperties.Delete(aProperty, this); +} + +void DeleteAllProperties() +{ + mProperties.DeleteAll(this); +} + +// Reports size of the FrameProperties for this frame and its descendants +size_t SizeOfFramePropertiesForTree(mozilla::MallocSizeOf aMallocSizeOf) const; /** * Return true if and only if this frame obeys visibility:hidden. @@ -3423,7 +3467,7 @@ public: */ bool FrameIsNonFirstInIBSplit() const { return (GetStateBits() & NS_FRAME_PART_OF_IBSPLIT) && - FirstContinuation()->Properties().Get(nsIFrame::IBSplitPrevSibling()); + FirstContinuation()->GetProperty(nsIFrame::IBSplitPrevSibling()); } /** @@ -3432,7 +3476,7 @@ public: */ bool FrameIsNonLastInIBSplit() const { return (GetStateBits() & NS_FRAME_PART_OF_IBSPLIT) && - FirstContinuation()->Properties().Get(nsIFrame::IBSplitSibling()); + FirstContinuation()->GetProperty(nsIFrame::IBSplitSibling()); } /** @@ -3514,11 +3558,11 @@ private: DestroyPaintedPresShellList) nsTArray* PaintedPresShellList() { - nsTArray* list = Properties().Get(PaintedPresShellsProperty()); + nsTArray* list = GetProperty(PaintedPresShellsProperty()); if (!list) { list = new nsTArray(); - Properties().Set(PaintedPresShellsProperty(), list); + SetProperty(PaintedPresShellsProperty(), list); } return list; @@ -3535,6 +3579,11 @@ protected: nsFrameState mState; + /** + * List of properties attached to the frame. + */ + FrameProperties mProperties; + // When there is an overflow area only slightly larger than mRect, // we store a set of four 1-byte deltas from the edges of mRect // rather than allocating a whole separate rectangle property. diff --git a/layout/generic/nsLineLayout.cpp b/layout/generic/nsLineLayout.cpp index 138d0b871c..6a15a9cfa8 100644 --- a/layout/generic/nsLineLayout.cpp +++ b/layout/generic/nsLineLayout.cpp @@ -819,11 +819,11 @@ nsLineLayout::ReflowFrame(nsIFrame* aFrame, #endif if (mCurrentSpan == mRootSpan) { - pfd->mFrame->Properties().Remove(nsIFrame::LineBaselineOffset()); + pfd->mFrame->RemoveProperty(nsIFrame::LineBaselineOffset()); } else { #ifdef DEBUG bool hasLineOffset; - pfd->mFrame->Properties().Get(nsIFrame::LineBaselineOffset(), &hasLineOffset); + pfd->mFrame->GetProperty(nsIFrame::LineBaselineOffset(), &hasLineOffset); NS_ASSERTION(!hasLineOffset, "LineBaselineOffset was set but was not expected"); #endif } diff --git a/layout/generic/nsPlaceholderFrame.cpp b/layout/generic/nsPlaceholderFrame.cpp index 2b6799f485..bd380a2d98 100644 --- a/layout/generic/nsPlaceholderFrame.cpp +++ b/layout/generic/nsPlaceholderFrame.cpp @@ -128,7 +128,7 @@ nsPlaceholderFrame::Reflow(nsPresContext* aPresContext, nsIFrame* ancestor = this; while ((ancestor = ancestor->GetParent())) { if (ancestor->GetPrevContinuation() || - ancestor->Properties().Get(IBSplitPrevSibling())) { + ancestor->GetProperty(IBSplitPrevSibling())) { isInContinuationOrIBSplit = true; break; } diff --git a/layout/generic/nsTextFrame.cpp b/layout/generic/nsTextFrame.cpp index 3288d3f2e4..0641c7439a 100644 --- a/layout/generic/nsTextFrame.cpp +++ b/layout/generic/nsTextFrame.cpp @@ -2838,9 +2838,9 @@ nsTextFrame::EnsureTextRun(TextRunType aWhichTextRun, return gfxSkipCharsIterator(gfxPlatform:: GetPlatform()->EmptySkipChars(), 0); } - TabWidthStore* tabWidths = Properties().Get(TabWidthProperty()); + TabWidthStore* tabWidths = GetProperty(TabWidthProperty()); if (tabWidths && tabWidths->mValidForContentOffset != GetContentOffset()) { - Properties().Delete(TabWidthProperty()); + DeleteProperty(TabWidthProperty()); } } @@ -3478,7 +3478,7 @@ PropertyProvider::CalcTabWidths(Range aRange) return; } if (!mReflowing) { - mTabWidths = mFrame->Properties().Get(TabWidthProperty()); + mTabWidths = mFrame->GetProperty(TabWidthProperty()); #ifdef DEBUG // If we're not reflowing, we should have already computed the // tab widths; check that they're available as far as the last @@ -3524,7 +3524,7 @@ PropertyProvider::CalcTabWidths(Range aRange) } else { if (!mTabWidths) { mTabWidths = new TabWidthStore(mFrame->GetContentOffset()); - mFrame->Properties().Set(TabWidthProperty(), mTabWidths); + mFrame->SetProperty(TabWidthProperty(), mTabWidths); } double nextTab = AdvanceToNextTab(mOffsetFromBlockOriginForTabs, mFrame, mTextRun, &tabWidth); @@ -3543,7 +3543,7 @@ PropertyProvider::CalcTabWidths(Range aRange) if (!mTabWidths) { // Delete any stale property that may be left on the frame - mFrame->Properties().Delete(TabWidthProperty()); + mFrame->DeleteProperty(TabWidthProperty()); mTabWidthsAnalyzedLimit = std::max(mTabWidthsAnalyzedLimit, aRange.end - startOffset); } @@ -4249,7 +4249,7 @@ nsTextFrame::ClearFrameOffsetCache() // just destroys the frames in order, which means that the primary frame is already // dead if we're a continuing text frame, in which case, all of its properties are // gone, and we don't need to worry about deleting this property here. - primaryFrame->Properties().Delete(OffsetToFrameProperty()); + primaryFrame->DeleteProperty(OffsetToFrameProperty()); } RemoveStateBits(TEXT_IN_OFFSET_CACHE); } @@ -4358,7 +4358,7 @@ nsContinuingTextFrame::Init(nsIContent* aContent, if (aPrevInFlow->GetStateBits() & NS_FRAME_IS_BIDI) { FrameBidiData bidiData = aPrevInFlow->GetBidiData(); bidiData.precedingControl = kBidiLevelNone; - Properties().Set(BidiDataProperty(), bidiData); + SetProperty(BidiDataProperty(), bidiData); if (nextContinuation) { SetNextContinuation(nextContinuation); @@ -4622,7 +4622,7 @@ nsTextFrame::InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemK gfxTextRun* nsTextFrame::GetUninflatedTextRun() { - return Properties().Get(UninflatedTextRunProperty()); + return GetProperty(UninflatedTextRunProperty()); } void @@ -4648,7 +4648,7 @@ nsTextFrame::SetTextRun(gfxTextRun* aTextRun, TextRunType aWhichTextRun, // Setting the property will not automatically increment the textrun's // reference count, so we need to do it here. aTextRun->AddRef(); - Properties().Set(UninflatedTextRunProperty(), aTextRun); + SetProperty(UninflatedTextRunProperty(), aTextRun); return; } // fall through to setting mTextRun @@ -4668,10 +4668,9 @@ nsTextFrame::RemoveTextRun(gfxTextRun* aTextRun) mTextRun = nullptr; return true; } - FrameProperties props = Properties(); if ((GetStateBits() & TEXT_HAS_FONT_INFLATION) && - props.Get(UninflatedTextRunProperty()) == aTextRun) { - props.Delete(UninflatedTextRunProperty()); + GetProperty(UninflatedTextRunProperty()) == aTextRun) { + DeleteProperty(UninflatedTextRunProperty()); return true; } return false; @@ -4689,7 +4688,7 @@ nsTextFrame::ClearTextRun(nsTextFrame* aStartContinuation, DebugOnly checkmTextrun = textRun == mTextRun; UnhookTextRunFromFrames(textRun, aStartContinuation); MOZ_ASSERT(checkmTextrun ? !mTextRun - : !Properties().Get(UninflatedTextRunProperty())); + : !GetProperty(UninflatedTextRunProperty())); } void @@ -4699,7 +4698,7 @@ nsTextFrame::DisconnectTextRuns() "Textrun mentions this frame in its user data so we can't just disconnect"); mTextRun = nullptr; if ((GetStateBits() & TEXT_HAS_FONT_INFLATION)) { - Properties().Delete(UninflatedTextRunProperty()); + DeleteProperty(UninflatedTextRunProperty()); } } @@ -4929,7 +4928,7 @@ NS_DECLARE_FRAME_PROPERTY_SMALL_VALUE(TextCombineScaleFactorProperty, float) static float GetTextCombineScaleFactor(nsTextFrame* aFrame) { - float factor = aFrame->Properties().Get(TextCombineScaleFactorProperty()); + float factor = aFrame->GetProperty(TextCombineScaleFactorProperty()); return factor ? factor : 1.0f; } @@ -5105,7 +5104,7 @@ static nscoord LazyGetLineBaselineOffset(nsIFrame* aChildFrame, nsBlockFrame* aBlockFrame) { bool offsetFound; - nscoord offset = aChildFrame->Properties().Get( + nscoord offset = aChildFrame->GetProperty( nsIFrame::LineBaselineOffset(), &offsetFound); if (!offsetFound) { @@ -5118,11 +5117,11 @@ LazyGetLineBaselineOffset(nsIFrame* aChildFrame, nsBlockFrame* aBlockFrame) for (nsIFrame* lineFrame = line->mFirstChild; n > 0; lineFrame = lineFrame->GetNextSibling(), --n) { offset = lineBaseline - lineFrame->GetNormalPosition().y; - lineFrame->Properties().Set(nsIFrame::LineBaselineOffset(), offset); + lineFrame->SetProperty(nsIFrame::LineBaselineOffset(), offset); } } } - return aChildFrame->Properties().Get( + return aChildFrame->GetProperty( nsIFrame::LineBaselineOffset(), &offsetFound); } else { return offset; @@ -5367,7 +5366,7 @@ nsTextFrame::UpdateTextEmphasis(WritingMode aWM, PropertyProvider& aProvider) { const nsStyleText* styleText = StyleText(); if (!styleText->HasTextEmphasis()) { - Properties().Delete(EmphasisMarkProperty()); + DeleteProperty(EmphasisMarkProperty()); return nsRect(); } @@ -5419,7 +5418,7 @@ nsTextFrame::UpdateTextEmphasis(WritingMode aWM, PropertyProvider& aProvider) overflowRect.BStart(aWM) += gap * (side == eLogicalSideBStart ? -1 : 1); } - Properties().Set(EmphasisMarkProperty(), info); + SetProperty(EmphasisMarkProperty(), info); return overflowRect.GetPhysicalRect(aWM, frameSize.GetPhysicalSize(aWM)); } @@ -6432,7 +6431,7 @@ nsTextFrame::DrawEmphasisMarks(gfxContext* aContext, WritingMode aWM, const nscolor* aDecorationOverrideColor, PropertyProvider* aProvider) { - const EmphasisMarkInfo* info = Properties().Get(EmphasisMarkProperty()); + const EmphasisMarkInfo* info = GetProperty(EmphasisMarkProperty()); if (!info) { return; } @@ -7584,7 +7583,7 @@ nsTextFrame::GetChildFrameContainingOffset(int32_t aContentOffset, int32_t offset = mContentOffset; // Try to look up the offset to frame property - nsTextFrame* cachedFrame = Properties().Get(OffsetToFrameProperty()); + nsTextFrame* cachedFrame = GetProperty(OffsetToFrameProperty()); if (cachedFrame) { f = cachedFrame; @@ -7632,7 +7631,7 @@ nsTextFrame::GetChildFrameContainingOffset(int32_t aContentOffset, *aOutFrame = f; // cache the frame we found - Properties().Set(OffsetToFrameProperty(), f); + SetProperty(OffsetToFrameProperty(), f); f->AddStateBits(TEXT_IN_OFFSET_CACHE); return NS_OK; @@ -8169,7 +8168,7 @@ nsTextFrame::GetFontSizeInflation() const if (!HasFontSizeInflation()) { return 1.0f; } - return Properties().Get(FontSizeInflationProperty()); + return GetProperty(FontSizeInflationProperty()); } void @@ -8178,13 +8177,13 @@ nsTextFrame::SetFontSizeInflation(float aInflation) if (aInflation == 1.0f) { if (HasFontSizeInflation()) { RemoveStateBits(TEXT_HAS_FONT_INFLATION); - Properties().Delete(FontSizeInflationProperty()); + DeleteProperty(FontSizeInflationProperty()); } return; } AddStateBits(TEXT_HAS_FONT_INFLATION); - Properties().Set(FontSizeInflationProperty(), aInflation); + SetProperty(FontSizeInflationProperty(), aInflation); } /* virtual */ @@ -9319,9 +9318,9 @@ nsTextFrame::ReflowText(nsLineLayout& aLineLayout, nscoord aAvailableWidth, gfxFloat em = fm->EmHeight(); // Compress the characters in horizontal axis if necessary. if (width <= em) { - Properties().Remove(TextCombineScaleFactorProperty()); + RemoveProperty(TextCombineScaleFactorProperty()); } else { - Properties().Set(TextCombineScaleFactorProperty(), em / width); + SetProperty(TextCombineScaleFactorProperty(), em / width); finalSize.ISize(wm) = em; } // Make the characters be in an 1em square. @@ -10049,13 +10048,13 @@ nsTextFrame::AssignJustificationGaps( static_assert(sizeof(aAssign) == 1, "The encoding might be broken if JustificationAssignment " "is larger than 1 byte"); - Properties().Set(JustificationAssignmentProperty(), encoded); + SetProperty(JustificationAssignmentProperty(), encoded); } mozilla::JustificationAssignment nsTextFrame::GetJustificationAssignment() const { - int32_t encoded = Properties().Get(JustificationAssignmentProperty()); + int32_t encoded = GetProperty(JustificationAssignmentProperty()); mozilla::JustificationAssignment result; result.mGapsAtStart = encoded >> 8; result.mGapsAtEnd = encoded & 0xFF; diff --git a/layout/mathml/nsMathMLContainerFrame.cpp b/layout/mathml/nsMathMLContainerFrame.cpp index ad1b13efde..93b631c9d0 100644 --- a/layout/mathml/nsMathMLContainerFrame.cpp +++ b/layout/mathml/nsMathMLContainerFrame.cpp @@ -134,7 +134,7 @@ nsMathMLContainerFrame::SaveReflowAndBoundingMetricsFor(nsIFrame* { ReflowOutput* reflowOutput = new ReflowOutput(aReflowOutput); reflowOutput->mBoundingMetrics = aBoundingMetrics; - aFrame->Properties().Set(HTMLReflowOutputProperty(), reflowOutput); + aFrame->SetProperty(HTMLReflowOutputProperty(), reflowOutput); } // helper method to facilitate getting the reflow and bounding metrics @@ -147,7 +147,7 @@ nsMathMLContainerFrame::GetReflowAndBoundingMetricsFor(nsIFrame* aFra NS_PRECONDITION(aFrame, "null arg"); ReflowOutput* reflowOutput = - aFrame->Properties().Get(HTMLReflowOutputProperty()); + aFrame->GetProperty(HTMLReflowOutputProperty()); // IMPORTANT: This function is only meant to be called in Place() methods // where it is assumed that SaveReflowAndBoundingMetricsFor has recorded the @@ -175,9 +175,8 @@ void nsMathMLContainerFrame::ClearSavedChildMetrics() { nsIFrame* childFrame = mFrames.FirstChild(); - FramePropertyTable* props = PresContext()->PropertyTable(); while (childFrame) { - props->Delete(childFrame, HTMLReflowOutputProperty()); + childFrame->DeleteProperty(HTMLReflowOutputProperty()); childFrame = childFrame->GetNextSibling(); } } diff --git a/layout/mathml/nsMathMLmtableFrame.cpp b/layout/mathml/nsMathMLmtableFrame.cpp index a706fb4830..fd184e6375 100644 --- a/layout/mathml/nsMathMLmtableFrame.cpp +++ b/layout/mathml/nsMathMLmtableFrame.cpp @@ -167,8 +167,7 @@ FindCellProperty(const nsIFrame* aCellFrame, nsTArray* propertyData = nullptr; while (currentFrame) { - FrameProperties props = currentFrame->Properties(); - propertyData = props.Get(aFrameProperty); + propertyData = currentFrame->GetProperty(aFrameProperty); bool frameIsTable = (currentFrame->GetType() == nsGkAtoms::tableFrame); if (propertyData || frameIsTable) @@ -361,8 +360,7 @@ ParseFrameAttribute(nsIFrame* aFrame, if (valueList) { // The code reading the property assumes that this list is nonempty. NS_ASSERTION(valueList->Length() >= 1, "valueList should not be empty!"); - FrameProperties props = aFrame->Properties(); - props.Set(AttributeToProperty(aAttribute), valueList); + aFrame->SetProperty(AttributeToProperty(aAttribute), valueList); } else { ReportParseError(aFrame, aAttribute->GetUTF16String(), attrValue.get()); } @@ -769,8 +767,7 @@ nsMathMLmtableWrapperFrame::AttributeChanged(int32_t aNameSpaceID, aAttribute == nsGkAtoms::columnalign_ || aAttribute == nsGkAtoms::columnlines_) { // clear any cached property list for this table - presContext->PropertyTable()-> - Delete(tableFrame, AttributeToProperty(aAttribute)); + tableFrame->DeleteProperty(AttributeToProperty(aAttribute)); // Reparse the new attribute on the table. ParseFrameAttribute(tableFrame, aAttribute, true); } else { @@ -1120,7 +1117,7 @@ nsMathMLmtrFrame::AttributeChanged(int32_t aNameSpaceID, return NS_OK; } - presContext->PropertyTable()->Delete(this, AttributeToProperty(aAttribute)); + DeleteProperty(AttributeToProperty(aAttribute)); bool allowMultiValues = (aAttribute == nsGkAtoms::columnalign_); @@ -1219,8 +1216,7 @@ nsMathMLmtdFrame::AttributeChanged(int32_t aNameSpaceID, if (aAttribute == nsGkAtoms::rowalign_ || aAttribute == nsGkAtoms::columnalign_) { - nsPresContext* presContext = PresContext(); - presContext->PropertyTable()->Delete(this, AttributeToProperty(aAttribute)); + DeleteProperty(AttributeToProperty(aAttribute)); // Reparse the attribute. ParseFrameAttribute(this, aAttribute, false); diff --git a/layout/svg/SVGTextFrame.cpp b/layout/svg/SVGTextFrame.cpp index e5a03333f9..6ba267ee89 100644 --- a/layout/svg/SVGTextFrame.cpp +++ b/layout/svg/SVGTextFrame.cpp @@ -1328,7 +1328,7 @@ NS_DECLARE_FRAME_PROPERTY_DELETABLE(TextNodeCorrespondenceProperty, static uint32_t GetUndisplayedCharactersBeforeFrame(nsTextFrame* aFrame) { - void* value = aFrame->Properties().Get(TextNodeCorrespondenceProperty()); + void* value = aFrame->GetProperty(TextNodeCorrespondenceProperty()); TextNodeCorrespondence* correspondence = static_cast(value); if (!correspondence) { @@ -1517,8 +1517,8 @@ TextNodeCorrespondenceRecorder::TraverseAndRecord(nsIFrame* aFrame) } // Set the frame property. - frame->Properties().Set(TextNodeCorrespondenceProperty(), - new TextNodeCorrespondence(undisplayed)); + frame->SetProperty(TextNodeCorrespondenceProperty(), + new TextNodeCorrespondence(undisplayed)); // Remember how far into the current nsTextNode we are. mNodeCharIndex = frame->GetContentEnd(); @@ -3391,7 +3391,7 @@ SVGTextFrame::HandleAttributeChangeInDescendant(Element* aElement, // Blow away our reference, if any nsIFrame* childElementFrame = aElement->GetPrimaryFrame(); if (childElementFrame) { - childElementFrame->Properties().Delete( + childElementFrame->DeleteProperty( nsSVGEffects::HrefAsTextPathProperty()); NotifyGlyphMetricsChange(); } @@ -4817,7 +4817,7 @@ SVGPathElement* SVGTextFrame::GetTextPathPathElement(nsIFrame* aTextPathFrame) { nsSVGTextPathProperty *property = - aTextPathFrame->Properties().Get(nsSVGEffects::HrefAsTextPathProperty()); + aTextPathFrame->GetProperty(nsSVGEffects::HrefAsTextPathProperty()); if (!property) { nsIContent* content = aTextPathFrame->GetContent(); diff --git a/layout/svg/nsSVGEffects.cpp b/layout/svg/nsSVGEffects.cpp index e75c973c8f..ca4c5778ce 100644 --- a/layout/svg/nsSVGEffects.cpp +++ b/layout/svg/nsSVGEffects.cpp @@ -480,27 +480,26 @@ GetOrCreateFilterProperty(nsIFrame* aFrame) if (!effects->HasFilters()) return nullptr; - FrameProperties props = aFrame->Properties(); - nsSVGFilterProperty *prop = props.Get(nsSVGEffects::FilterProperty()); + nsSVGFilterProperty *prop = + aFrame->GetProperty(nsSVGEffects::FilterProperty()); if (prop) return prop; prop = new nsSVGFilterProperty(effects->mFilters, aFrame); NS_ADDREF(prop); - props.Set(nsSVGEffects::FilterProperty(), prop); + aFrame->SetProperty(nsSVGEffects::FilterProperty(), prop); return prop; } static nsSVGMaskProperty* GetOrCreateMaskProperty(nsIFrame* aFrame) { - FrameProperties props = aFrame->Properties(); - nsSVGMaskProperty *prop = props.Get(nsSVGEffects::MaskProperty()); + nsSVGMaskProperty *prop = aFrame->GetProperty(nsSVGEffects::MaskProperty()); if (prop) return prop; prop = new nsSVGMaskProperty(aFrame); NS_ADDREF(prop); - props.Set(nsSVGEffects::MaskProperty(), prop); + aFrame->SetProperty(nsSVGEffects::MaskProperty(), prop); return prop; } @@ -512,13 +511,12 @@ GetEffectProperty(nsIURI* aURI, nsIFrame* aFrame, if (!aURI) return nullptr; - FrameProperties props = aFrame->Properties(); - T* prop = props.Get(aProperty); + T* prop = aFrame->GetProperty(aProperty); if (prop) return prop; prop = new T(aURI, aFrame, false); NS_ADDREF(prop); - props.Set(aProperty, prop); + aFrame->SetProperty(aProperty, prop); return prop; } @@ -553,11 +551,11 @@ nsSVGEffects::GetPaintingPropertyForURI(nsIURI* aURI, nsIFrame* aFrame, if (!aURI) return nullptr; - FrameProperties props = aFrame->Properties(); - nsSVGEffects::URIObserverHashtable *hashtable = props.Get(aProperty); + nsSVGEffects::URIObserverHashtable *hashtable = + aFrame->GetProperty(aProperty); if (!hashtable) { hashtable = new nsSVGEffects::URIObserverHashtable(); - props.Set(aProperty, hashtable); + aFrame->SetProperty(aProperty, hashtable); } nsSVGPaintingProperty* prop = static_cast(hashtable->GetWeak(aURI)); @@ -689,16 +687,15 @@ nsSVGEffects::UpdateEffects(nsIFrame* aFrame) NS_ASSERTION(aFrame->GetContent()->IsElement(), "aFrame's content should be an element"); - FrameProperties props = aFrame->Properties(); - props.Delete(FilterProperty()); - props.Delete(MaskProperty()); - props.Delete(ClipPathProperty()); - props.Delete(MarkerBeginProperty()); - props.Delete(MarkerMiddleProperty()); - props.Delete(MarkerEndProperty()); - props.Delete(FillProperty()); - props.Delete(StrokeProperty()); - props.Delete(BackgroundImageProperty()); + aFrame->DeleteProperty(FilterProperty()); + aFrame->DeleteProperty(MaskProperty()); + aFrame->DeleteProperty(ClipPathProperty()); + aFrame->DeleteProperty(MarkerBeginProperty()); + aFrame->DeleteProperty(MarkerMiddleProperty()); + aFrame->DeleteProperty(MarkerEndProperty()); + aFrame->DeleteProperty(FillProperty()); + aFrame->DeleteProperty(StrokeProperty()); + aFrame->DeleteProperty(BackgroundImageProperty()); // Ensure that the filter is repainted correctly // We can't do that in DoUpdate as the referenced frame may not be valid @@ -725,7 +722,7 @@ nsSVGEffects::GetFilterProperty(nsIFrame* aFrame) if (!aFrame->StyleEffects()->HasFilters()) return nullptr; - return aFrame->Properties().Get(FilterProperty()); + return aFrame->GetProperty(FilterProperty()); } void @@ -835,7 +832,7 @@ nsSVGEffects::InvalidateRenderingObservers(nsIFrame* aFrame) return; // If the rendering has changed, the bounds may well have changed too: - aFrame->Properties().Delete(nsSVGUtils::ObjectBoundingBoxProperty()); + aFrame->DeleteProperty(nsSVGUtils::ObjectBoundingBoxProperty()); nsSVGRenderingObserverList *observerList = GetObserverList(content->AsElement()); @@ -864,7 +861,7 @@ nsSVGEffects::InvalidateDirectRenderingObservers(Element* aElement, uint32_t aFl nsIFrame* frame = aElement->GetPrimaryFrame(); if (frame) { // If the rendering has changed, the bounds may well have changed too: - frame->Properties().Delete(nsSVGUtils::ObjectBoundingBoxProperty()); + frame->DeleteProperty(nsSVGUtils::ObjectBoundingBoxProperty()); } if (aElement->HasRenderingObservers()) { diff --git a/layout/svg/nsSVGEffects.h b/layout/svg/nsSVGEffects.h index 0cf9b15000..b8b2e53c13 100644 --- a/layout/svg/nsSVGEffects.h +++ b/layout/svg/nsSVGEffects.h @@ -7,7 +7,7 @@ #define NSSVGEFFECTS_H_ #include "mozilla/Attributes.h" -#include "FramePropertyTable.h" +#include "FrameProperties.h" #include "mozilla/dom/Element.h" #include "nsHashKeys.h" #include "nsID.h" diff --git a/layout/svg/nsSVGFilterFrame.cpp b/layout/svg/nsSVGFilterFrame.cpp index 13ce16993d..3b99f413e4 100644 --- a/layout/svg/nsSVGFilterFrame.cpp +++ b/layout/svg/nsSVGFilterFrame.cpp @@ -107,7 +107,7 @@ nsSVGFilterFrame::GetReferencedFilter() return nullptr; nsSVGPaintingProperty *property = - Properties().Get(nsSVGEffects::HrefAsPaintingProperty()); + GetProperty(nsSVGEffects::HrefAsPaintingProperty()); if (!property) { // Fetch our Filter element's href or xlink:href attribute @@ -183,7 +183,7 @@ nsSVGFilterFrame::AttributeChanged(int32_t aNameSpaceID, aNameSpaceID == kNameSpaceID_None) && aAttribute == nsGkAtoms::href) { // Blow away our reference, if any - Properties().Delete(nsSVGEffects::HrefAsPaintingProperty()); + DeleteProperty(nsSVGEffects::HrefAsPaintingProperty()); mNoHRefURI = false; // And update whoever references us nsSVGEffects::InvalidateDirectRenderingObservers(this); diff --git a/layout/svg/nsSVGGradientFrame.cpp b/layout/svg/nsSVGGradientFrame.cpp index 2d7684f5a0..340cfa881d 100644 --- a/layout/svg/nsSVGGradientFrame.cpp +++ b/layout/svg/nsSVGGradientFrame.cpp @@ -72,7 +72,7 @@ nsSVGGradientFrame::AttributeChanged(int32_t aNameSpaceID, aNameSpaceID == kNameSpaceID_None) && aAttribute == nsGkAtoms::href) { // Blow away our reference, if any - Properties().Delete(nsSVGEffects::HrefAsPaintingProperty()); + DeleteProperty(nsSVGEffects::HrefAsPaintingProperty()); mNoHRefURI = false; // And update whoever references us nsSVGEffects::InvalidateDirectRenderingObservers(this); @@ -316,7 +316,7 @@ nsSVGGradientFrame::GetReferencedGradient() return nullptr; nsSVGPaintingProperty *property = - Properties().Get(nsSVGEffects::HrefAsPaintingProperty()); + GetProperty(nsSVGEffects::HrefAsPaintingProperty()); if (!property) { // Fetch our gradient element's href or xlink:href attribute diff --git a/layout/svg/nsSVGIntegrationUtils.cpp b/layout/svg/nsSVGIntegrationUtils.cpp index 0003e1a73e..4ce2941d49 100644 --- a/layout/svg/nsSVGIntegrationUtils.cpp +++ b/layout/svg/nsSVGIntegrationUtils.cpp @@ -75,7 +75,7 @@ public: private: static nsRect GetPreEffectsVisualOverflowRect(nsIFrame* aFrame) { - nsRect* r = aFrame->Properties().Get(nsIFrame::PreEffectsBBoxProperty()); + nsRect* r = aFrame->GetProperty(nsIFrame::PreEffectsBBoxProperty()); if (r) { return *r; } @@ -113,8 +113,7 @@ private: NS_ASSERTION(aFrame->GetParent()->StyleContext()->GetPseudo() == nsCSSAnonBoxes::mozAnonymousBlock, "How did we getting here, then?"); - NS_ASSERTION(!aFrame->Properties().Get( - aFrame->PreTransformOverflowAreasProperty()), + NS_ASSERTION(!aFrame->GetProperty(aFrame->PreTransformOverflowAreasProperty()), "GetVisualOverflowRect() won't return the pre-effects rect!"); return aFrame->GetVisualOverflowRect(); } diff --git a/layout/svg/nsSVGPatternFrame.cpp b/layout/svg/nsSVGPatternFrame.cpp index 198163d7f5..2cd7eeaadf 100644 --- a/layout/svg/nsSVGPatternFrame.cpp +++ b/layout/svg/nsSVGPatternFrame.cpp @@ -89,7 +89,7 @@ nsSVGPatternFrame::AttributeChanged(int32_t aNameSpaceID, aNameSpaceID == kNameSpaceID_None) && aAttribute == nsGkAtoms::href) { // Blow away our reference, if any - Properties().Delete(nsSVGEffects::HrefAsPaintingProperty()); + DeleteProperty(nsSVGEffects::HrefAsPaintingProperty()); mNoHRefURI = false; // And update whoever references us nsSVGEffects::InvalidateDirectRenderingObservers(this); @@ -548,7 +548,7 @@ nsSVGPatternFrame::GetReferencedPattern() return nullptr; nsSVGPaintingProperty *property = - Properties().Get(nsSVGEffects::HrefAsPaintingProperty()); + GetProperty(nsSVGEffects::HrefAsPaintingProperty()); if (!property) { // Fetch our pattern element's href or xlink:href attribute diff --git a/layout/svg/nsSVGUtils.cpp b/layout/svg/nsSVGUtils.cpp index 98e5f9b5fe..c3394e292a 100644 --- a/layout/svg/nsSVGUtils.cpp +++ b/layout/svg/nsSVGUtils.cpp @@ -1060,10 +1060,9 @@ nsSVGUtils::GetBBox(nsIFrame *aFrame, uint32_t aFlags) return bbox; } - FrameProperties props = aFrame->Properties(); if (aFlags == eBBoxIncludeFillGeometry) { - gfxRect* prop = props.Get(ObjectBoundingBoxProperty()); + gfxRect* prop = aFrame->GetProperty(ObjectBoundingBoxProperty()); if (prop) { return *prop; } @@ -1139,7 +1138,7 @@ nsSVGUtils::GetBBox(nsIFrame *aFrame, uint32_t aFlags) if (aFlags == eBBoxIncludeFillGeometry) { // Obtaining the bbox for objectBoundingBox calculations is common so we // cache the result for future calls, since calculation can be expensive: - props.Set(ObjectBoundingBoxProperty(), new gfxRect(bbox)); + aFrame->SetProperty(ObjectBoundingBoxProperty(), new gfxRect(bbox)); } return bbox; diff --git a/layout/tables/nsTableFrame.cpp b/layout/tables/nsTableFrame.cpp index 4c11d27046..b9b6ca5fe5 100644 --- a/layout/tables/nsTableFrame.cpp +++ b/layout/tables/nsTableFrame.cpp @@ -272,13 +272,12 @@ nsTableFrame::RegisterPositionedTablePart(nsIFrame* aFrame) tableFrame = static_cast(tableFrame->FirstContinuation()); // Retrieve the positioned parts array for this table. - FrameProperties props = tableFrame->Properties(); - FrameTArray* positionedParts = props.Get(PositionedTablePartArray()); + FrameTArray* positionedParts = tableFrame->GetProperty(PositionedTablePartArray()); // Lazily create the array if it doesn't exist yet. if (!positionedParts) { positionedParts = new FrameTArray; - props.Set(PositionedTablePartArray(), positionedParts); + tableFrame->SetProperty(PositionedTablePartArray(), positionedParts); } // Add this frame to the list. @@ -302,8 +301,7 @@ nsTableFrame::UnregisterPositionedTablePart(nsIFrame* aFrame, tableFrame = static_cast(tableFrame->FirstContinuation()); // Retrieve the positioned parts array for this table. - FrameProperties props = tableFrame->Properties(); - FrameTArray* positionedParts = props.Get(PositionedTablePartArray()); + FrameTArray* positionedParts = tableFrame->GetProperty(PositionedTablePartArray()); // Remove the frame. MOZ_ASSERT(positionedParts && positionedParts->Contains(aFrame), @@ -1992,7 +1990,7 @@ nsTableFrame::FixupPositionedTableParts(nsPresContext* aPresContext, ReflowOutput& aDesiredSize, const ReflowInput& aReflowInput) { - FrameTArray* positionedParts = Properties().Get(PositionedTablePartArray()); + FrameTArray* positionedParts = GetProperty(PositionedTablePartArray()); if (!positionedParts) { return; } @@ -2653,13 +2651,18 @@ nsTableFrame::GetUsedMargin() const NS_DECLARE_FRAME_PROPERTY_DELETABLE(TableBCProperty, BCPropertyData) BCPropertyData* -nsTableFrame::GetBCProperty(bool aCreateIfNecessary) const +nsTableFrame::GetBCProperty() const { - FrameProperties props = Properties(); - BCPropertyData* value = props.Get(TableBCProperty()); - if (!value && aCreateIfNecessary) { + return GetProperty(TableBCProperty()); +} + +BCPropertyData* +nsTableFrame::GetOrCreateBCProperty() +{ + BCPropertyData* value = GetProperty(TableBCProperty()); + if (!value) { value = new BCPropertyData(); - props.Set(TableBCProperty(), value); + SetProperty(TableBCProperty(), value); } return value; @@ -4103,7 +4106,7 @@ nsTableFrame::AddBCDamageArea(const TableArea& aValue) SetNeedToCalcBCBorders(true); // Get the property - BCPropertyData* value = GetBCProperty(true); + BCPropertyData* value = GetOrCreateBCProperty(); if (value) { #ifdef DEBUG VerifyNonNegativeDamageRect(value->mDamageArea); @@ -4143,7 +4146,7 @@ nsTableFrame::SetFullBCDamageArea() SetNeedToCalcBCBorders(true); - BCPropertyData* value = GetBCProperty(true); + BCPropertyData* value = GetOrCreateBCProperty(); if (value) { value->mDamageArea = TableArea(0, 0, GetColCount(), GetRowCount()); } @@ -4310,7 +4313,7 @@ BCMapCellInfo::BCMapCellInfo(nsTableFrame* aTableFrame) : mTableFrame(aTableFrame) , mNumTableRows(aTableFrame->GetRowCount()) , mNumTableCols(aTableFrame->GetColCount()) - , mTableBCData(mTableFrame->Properties().Get(TableBCProperty())) + , mTableBCData(mTableFrame->GetProperty(TableBCProperty())) , mTableWM(aTableFrame->StyleContext()) { ResetCellInfo(); diff --git a/layout/tables/nsTableFrame.h b/layout/tables/nsTableFrame.h index a786253395..7e56c28c17 100644 --- a/layout/tables/nsTableFrame.h +++ b/layout/tables/nsTableFrame.h @@ -809,7 +809,8 @@ protected: void SetBorderCollapse(bool aValue); - BCPropertyData* GetBCProperty(bool aCreateIfNecessary = false) const; + BCPropertyData* GetBCProperty() const; + BCPropertyData* GetOrCreateBCProperty(); void SetFullBCDamageArea(); void CalcBCBorders(); diff --git a/layout/tables/nsTableRowFrame.cpp b/layout/tables/nsTableRowFrame.cpp index 81b5d6699a..1b6051ef2a 100644 --- a/layout/tables/nsTableRowFrame.cpp +++ b/layout/tables/nsTableRowFrame.cpp @@ -978,7 +978,7 @@ nsTableRowFrame::ReflowChildren(nsPresContext* aPresContext, // MovePositionBy does internally. (This codepath should really // be merged into the else below if we can.) nsMargin* computedOffsetProp = - kidFrame->Properties().Get(nsIFrame::ComputedOffsetProperty()); + kidFrame->GetProperty(nsIFrame::ComputedOffsetProperty()); // Bug 975644: a position:sticky kid can end up with a null // property value here. LogicalMargin computedOffsets(wm, computedOffsetProp ? @@ -1417,16 +1417,14 @@ nsTableRowFrame::SetUnpaginatedBSize(nsPresContext* aPresContext, nscoord aValue) { NS_ASSERTION(!GetPrevInFlow(), "program error"); - // Get the property - aPresContext->PropertyTable()-> - Set(this, RowUnpaginatedHeightProperty(), aValue); + // Set the property + SetProperty(RowUnpaginatedHeightProperty(), aValue); } nscoord nsTableRowFrame::GetUnpaginatedBSize() { - FrameProperties props = FirstInFlow()->Properties(); - return props.Get(RowUnpaginatedHeightProperty()); + return GetProperty(RowUnpaginatedHeightProperty()); } void nsTableRowFrame::SetContinuousBCBorderWidth(LogicalSide aForSide, diff --git a/layout/tables/nsTableRowGroupFrame.cpp b/layout/tables/nsTableRowGroupFrame.cpp index 60596f12b0..8f014b2049 100644 --- a/layout/tables/nsTableRowGroupFrame.cpp +++ b/layout/tables/nsTableRowGroupFrame.cpp @@ -1910,7 +1910,7 @@ nsTableRowGroupFrame::ClearRowCursor() } RemoveStateBits(NS_ROWGROUP_HAS_ROW_CURSOR); - Properties().Delete(RowCursorProperty()); + DeleteProperty(RowCursorProperty()); } nsTableRowGroupFrame::FrameCursorData* @@ -1934,7 +1934,7 @@ nsTableRowGroupFrame::SetupRowCursor() FrameCursorData* data = new FrameCursorData(); if (!data) return nullptr; - Properties().Set(RowCursorProperty(), data); + SetProperty(RowCursorProperty(), data); AddStateBits(NS_ROWGROUP_HAS_ROW_CURSOR); return data; } @@ -1946,7 +1946,7 @@ nsTableRowGroupFrame::GetFirstRowContaining(nscoord aY, nscoord* aOverflowAbove) return nullptr; } - FrameCursorData* property = Properties().Get(RowCursorProperty()); + FrameCursorData* property = GetProperty(RowCursorProperty()); uint32_t cursorIndex = property->mCursorIndex; uint32_t frameCount = property->mFrames.Length(); if (cursorIndex >= frameCount) diff --git a/layout/tables/nsTableWrapperFrame.cpp b/layout/tables/nsTableWrapperFrame.cpp index e44652a733..f0b6d1512d 100644 --- a/layout/tables/nsTableWrapperFrame.cpp +++ b/layout/tables/nsTableWrapperFrame.cpp @@ -246,7 +246,7 @@ nsTableWrapperFrame::InitChildReflowInput(nsPresContext& aPresContext, } // Propagate our stored CB size if present, minus any margins. if (!HasAnyStateBits(NS_FRAME_OUT_OF_FLOW)) { - LogicalSize* cb = Properties().Get(GridItemCBSizeProperty()); + LogicalSize* cb = GetProperty(GridItemCBSizeProperty()); if (cb) { cbSize.emplace(*cb); *cbSize -= aReflowInput.ComputedLogicalMargin().Size(wm); @@ -953,7 +953,7 @@ nsTableWrapperFrame::Reflow(nsPresContext* aPresContext, // for the table frame if we are bsize constrained and the caption is above // or below the inner table. Also reduce the CB size that we store for // our children in case we're a grid item, by the same amount. - LogicalSize* cbSize = Properties().Get(GridItemCBSizeProperty()); + LogicalSize* cbSize = GetProperty(GridItemCBSizeProperty()); if (NS_UNCONSTRAINEDSIZE != aOuterRI.AvailableBSize() || cbSize) { nscoord captionBSize = 0; nscoord captionISize = 0; diff --git a/layout/xul/nsBox.cpp b/layout/xul/nsBox.cpp index f7ec5fead4..787758b157 100644 --- a/layout/xul/nsBox.cpp +++ b/layout/xul/nsBox.cpp @@ -144,10 +144,9 @@ nsBox::BeginXULLayout(nsBoxLayoutState& aState) // Another copy-over from ReflowInput. // Since we are in reflow, we don't need to store these properties anymore. - FrameProperties props = Properties(); - props.Delete(UsedBorderProperty()); - props.Delete(UsedPaddingProperty()); - props.Delete(UsedMarginProperty()); + DeleteProperty(UsedBorderProperty()); + DeleteProperty(UsedPaddingProperty()); + DeleteProperty(UsedMarginProperty()); #ifdef DEBUG_LAYOUT PropagateDebug(aState); diff --git a/layout/xul/nsMenuFrame.cpp b/layout/xul/nsMenuFrame.cpp index ea968fab5a..67fcdbe431 100644 --- a/layout/xul/nsMenuFrame.cpp +++ b/layout/xul/nsMenuFrame.cpp @@ -273,7 +273,7 @@ nsMenuFrame::GetPopupList() const if (!HasPopup()) { return nullptr; } - nsFrameList* prop = Properties().Get(PopupListProperty()); + nsFrameList* prop = GetProperty(PopupListProperty()); NS_ASSERTION(prop && prop->GetLength() == 1 && prop->FirstChild()->GetType() == nsGkAtoms::menuPopupFrame, "popup list should have exactly one nsMenuPopupFrame"); @@ -284,7 +284,7 @@ void nsMenuFrame::DestroyPopupList() { NS_ASSERTION(HasPopup(), "huh?"); - nsFrameList* prop = Properties().Remove(PopupListProperty()); + nsFrameList* prop = RemoveProperty(PopupListProperty()); NS_ASSERTION(prop && prop->IsEmpty(), "popup list must exist and be empty when destroying"); RemoveStateBits(NS_STATE_MENU_HAS_POPUP_LIST); @@ -300,7 +300,7 @@ nsMenuFrame::SetPopupFrame(nsFrameList& aFrameList) // Remove the frame from the list and store it in a nsFrameList* property. aFrameList.RemoveFrame(popupFrame); nsFrameList* popupList = new (PresContext()->PresShell()) nsFrameList(popupFrame, popupFrame); - Properties().Set(PopupListProperty(), popupList); + SetProperty(PopupListProperty(), popupList); AddStateBits(NS_STATE_MENU_HAS_POPUP_LIST); break; } From a74875d8bcd456a08316ac6dd177ff924483273a Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Thu, 4 Jul 2019 13:47:47 +0200 Subject: [PATCH 08/12] Remove FT's polyfill.io SSUAO now they have fixed their detection. See also: https://github.com/Financial-Times/polyfill-useragent-normaliser/pull/12 --- application/palemoon/branding/shared/pref/uaoverrides.inc | 2 -- 1 file changed, 2 deletions(-) diff --git a/application/palemoon/branding/shared/pref/uaoverrides.inc b/application/palemoon/branding/shared/pref/uaoverrides.inc index b95d960b41..0a54de5fac 100644 --- a/application/palemoon/branding/shared/pref/uaoverrides.inc +++ b/application/palemoon/branding/shared/pref/uaoverrides.inc @@ -57,8 +57,6 @@ pref("@GUAO_PREF@.www.amazon.com","Mozilla/5.0 (@OS_SLICE@ rv:45.9) @GK_SLICE@ F pref("@GUAO_PREF@.soundcloud.com","Mozilla/5.0 (@OS_SLICE@ rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @PM_SLICE@"); // Daily motion only likes strict Firefox UAs pref("@GUAO_PREF@.dailymotion.com","Mozilla/5.0 (@OS_SLICE@ rv:52.0) @GK_SLICE@ Firefox/52.0"); -// Financial Times' polyfill.io breaks horribly on a Pale Moon UA. Send a strict Firefox UA instead. -pref("@GUAO_PREF@.polyfill.io","Mozilla/5.0 (@OS_SLICE@ rv:60.9) @GK_SLICE@ Firefox/60.9"); // The following requires native mode. Or it blocks.. "too old firefox", breakage, etc. From 3c8712bcc1358572e17e9a3314f56bcc6f83242b Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Thu, 4 Jul 2019 18:50:29 +0200 Subject: [PATCH 09/12] Add adjusted icon for 2k/XP classic grey toolbar backgrounds. (because otherwise we won't hear the end of it) --- .../palemoon/branding/official/firefox.ico | Bin 101320 -> 94683 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/application/palemoon/branding/official/firefox.ico b/application/palemoon/branding/official/firefox.ico index 43c5d9343b561a06b60ff1498356090aea558314..ea25fd887b7f9f963b0fabe5e8cb2dd7fa119284 100644 GIT binary patch literal 94683 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 z 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 z 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ⅇP#U@-~9SVpMLY3 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 From cebf8fc4364a6e89433d8b4dd10db637d1a0bb7c Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Thu, 4 Jul 2019 19:38:41 +0200 Subject: [PATCH 10/12] Give Mac an Linux (small sizes) the same treatment --- .../palemoon/branding/official/default16.png | Bin 836 -> 811 bytes .../palemoon/branding/official/default22.png | Bin 1198 -> 1377 bytes .../palemoon/branding/official/default24.png | Bin 1372 -> 1534 bytes .../palemoon/branding/official/default32.png | Bin 2079 -> 2273 bytes .../palemoon/branding/official/firefox.icns | Bin 251915 -> 253858 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/application/palemoon/branding/official/default16.png b/application/palemoon/branding/official/default16.png index d76bb6fad02392c5cd642e42176df813e54a9e6d..b840a3acf16f5b7da486f19380968a5a25597eb0 100644 GIT binary patch delta 789 zcmV+w1M2+52CD{;BYy(&NklioRF+c_5$ z>%w{Wy));0=ljk%1MI(3Qc}7l+H(D*HzzOb%gGHog0bYvpMOMpWqGvYUfZjQiT7)p z<6-?J7K=gR+d^$|X=Pjf_H9L6VPLzAS@d9nLdDY0#o74uhvs5`!C*KX78?MRY%Kh` za^UdMTOM8IH#>_{ zH5;pPOjuquF@J$ERY5~a3L)UP?b!CmvDn#$ix&o=yu2d&_T#?E!h#(^UE|Eeihxl9 zpUJe%97IT)Hq#Kr=TR9)Ajfgp(&A$LM)dMN=agQyEvxOuUIe?~CECJ*5>5I#y7LE5>Cq4u8^g(HK?)rjVQbmXPeICuwA7 zeEHM?1HcCQXXDmkoyOfS|)uceie#|FEp!en5*iL`&m`_)j ziOnMkI0*@2p?>mNNQD47NkpIKI!r;3IU_y-oxMYy{@r^URXHZCXj)P?)o>Av08Pun z9w>~OY=0pG9l>qOX7k3(BY4>TG?HJuzn=>iNH-;rU>cu-w{Wo+Xc{JavUJJDD^Lug z&lyt@sH{Ag9lh2%seu->5#0qG6B;cJ=~O6LrA8`}At7@?qh0&j-hQ)8cJBUzuG+16 z!2!o|R9akYw$$q)BMwMe#rex+mfK76?B(C_`hTXT#-WW>p89M=z1~18uAxe6qyT4* zFi{f9AV#1vP&I0vom@>^t*;B;-B@KhhGD?-!I4vnR@f$7JqWf9f^%7qMh7ZK?p8vW z-<#`B*9=keKmW${6AFcVk@J^Mq%+EKP_lM0xjNRYM|VaC`nq3_kB=oc$NvQ~3UtZG T{|=o200000NkvXXu0mjfsJwk0 delta 814 zcmV+}1JV4e2E+!CBYyxZbVXQnLvm$dbZKvHAXI5>WdKxlWgs#jN_A`?GB7bYATlyK zH8nahG9WE5H83!0Uo*l0000McNliru;|Bu*HysQVsPO;*010qNS#tmY3h)2`3h)6! ztTdPa000DMK}|sb0I`n?{9y$E00NvzL_t(|+FeskPZLoTy?^gxW;!jn(TE?o!=)j_ zg)spaCa`kdB`p05^%tN&z%46R{s9vcLWF6^DnPs%&#B(+Rih% zTxyvf7#FB9o`0kyl0p!ElJ&HEd~jp6-xuZrfSc#O{{A*w$a#(C;897D#uG=a2?RDI zge0W^Bn6(+;mBdb$BpfH7qzF~I{}K(C?< zpB6H>L4SlPD+R3#7HC4?k-SCM#mH+{}`UF=;C~WynDwmd}z! z2$gou>{qQ{k)XvBr|}YLQZhD9?={R-xMX7!Jb+3iKkKg2gFh#u_YspFPlO4cQuLBe zi9+n1$YDEeLpzo0O7$~RgMm#Ud zd}m{0?Q!yaCO=+{u{>-iFbLrh6U6+?Qm7kh>y}0%yiYBSYDuSKK@*#QUteEcKmB!35VNliru;|By0AThZ3WfTAa010qNS#tmY3labT3lag+-G2N4 z00jU^L_t(|+HF-`Y*a-Qp1E`Pr`^5V-7YO=(`pbX&_Y8iwulj;i2+}XiN*)tkO*&@ z5Hvm*UrbCiCL}(PkYIg+7$aa}jEM;e5g**e*3`01Q$e7#1%GO!OPB86pZW1Sa~BeX zNhY&*=FE4#^PMwiIeW|~l}fCyuP^uEM;~vwa&@jhlgn>QrrWx;VJz?)OU;$q)cSQ# zRX_XmlbOF}XIB;$79PRi|KAuH8F62HdGGMh&fV`kQR>;_b>w^9L?Y!d&LgdvRK_S7 z1*`SDH~zV~aDV>K%C9HR{ruBJrBacP1#W9=WBd2N-TBO}J%{=Rcf6a+d0h$DabUm| zs7A`LAk@rt;#-_^qcK+R-CMeRY5dDS$`_7*JvO%7Xf!OIxDR~r;Gx2EFYP_NWoYzB zz9Uy8P`Yl6p@oH!w%{C}+5p)QHh0qLv{&pZje1^|b$=D}la+GWe*jG3zw-K9?`<9$ zInv>^XIn79P@W>;> zZCHdA#Rfn#OwwiCb@3g58Nx;BDH{Pvrpb<&hpHtF7B|)Hl6Ojo1_Sa+EPWZXhUScF zB!AWq;SxP7JY>+Z=7vgw&a|>*Lfnmz6t~%EECnHG5hX3GSE&@3N+d{FW*`b+)k-EF z3W&t@EUYZFr>Q!K6kd@GnoDl8zC6`z`TUEwlsg=t##OL`(+TLo5ML>E6wZUHsU z92keIcjv}`FHeib`5PWIB*GCqdA-Rh=%sUoQW4P1Ngk76$&(#tj>sM8X?Y(j-9{8N)@TY?zdF2~cuE zJw!%$JaA5vY(UgRQq^mNE;k zM>+;=J?$u>SI1d|zkhXfW@h}@sZ%E#5B1|}wd(iwuAOZ6(yKh-4Ja+z zwQ)FgPEG8b1QO){yw&N@nKgHyw7lgv=DxT*J8^7m?5i52eYnxnMx|2rm;b$4?(9sS z&vaywXP!f`WfXT@dW+N#w1ej;gs*w{H#4=!90mjD0& delta 1178 zcmV;L1ZDf-3a$x|B!3ljMObu0a%Ew3X>V>IRB3Hx00-j*1Pv-J?CU$#00007bV*G` z2jc|=4kj#EqJ9Ga000SaNLh0L01EH`01EH{Laa2H000CmNklZ1U5UuL& znc4N%#sl$%^DR@T?0af6e70Guq-3&Nq+HE}FssQ2unw1TJRexW7?f}|A8)c4$L6%G>lVlR< zI=j9HNU+T!pV_l^A0)L=tb~+POnrm0oV}1)=|ZPnrYSDSMYUDK{bkz)Oz0jkLjdz_ z&$4cv>=m#EIg}ViCb_ua;x~kq<>J-Vk zGwTf-PbaWnQ9uwFq6a1+s3UeOfchF2HDup_E-JfB-n0{%bjA8y!vP%yUalr19V)9i&op}rf;ZTy_VPqX_7*6 zudj};c3(63N@Y_!CTk$4Vshv{H>m#bgZihS=jqa=g|GfRIJ_@0Ya1!T=!Mw~ujhi( zB$H^p(F9JsNu^-QpS4mpSIP2gEBAnzf`9%SjuyTiE-rj@xPNd*piw{CY$KiF6lIlA zt~c9ZA{pm~MqvF+AtZ1#dUa{sj26FD%+QZA%j#RNe|&nJ9vvSX-E<||*y{8<4p`S@ z$trv!M0vAG*Y3y&ixYlAwq zs0##@aR)f6C_YF%-#os0?aJ=ecdp#^=Rhy~=AHZYg`;OLZ$IBZ+BrEs-RjzSSuIix s>!zNDXq1;+^)438|AnYEtV%Q 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 LNkvXXu0mjfLh_8J diff --git a/application/palemoon/branding/official/default32.png b/application/palemoon/branding/official/default32.png index ce963074587508d8a92bd1fe7aa4d580a2bbfa80..fde9707d847d0115e6b2eb92399306046ea02e31 100644 GIT binary patch delta 2262 zcmV;{2r2iU5aAJ!BYy~}Nkl97f%(prmROFJzy)!LCs+eyVirV^`GY)Y#&ab{aA zk_ZA3Lu5kpd*8ly@9p`{eH+@M7W*FJ>U7xcfNC1IDeOUjf{-QJ$v?)M^Sub zX+>pyx;!&q`oT0~91}<3a5z4CVq)~4#{%CUXlZE~%VaX@a`qMfYe9Q^d(hk0w_sN7 z{5xjPTXgFc)in*$^Gkdw1RjnFfuc}K8>8aF|I^l^+tW;~+S_qFB@Wi@VWBGdwanbmD0D z<7fNc_)%}~@&0}L_UX$8aNxj!;8^clpIUO`x?NSXsu!g^At+;BE$EN3bs|OF)BgfR zBQhKpc<2xJ0TOsL0T~<|cr$n8`TMS^Tlm8Jv2h82y?=Z6mgJSYrD=8ZgOwE}<({OS zh20pNVpl`}h(bX-V`1zNK1aItJ}8nB>nsQ&$SH*R(VjmZ`o_%Z6;Ev1v?>3A0Fe2~ z{&Qcv{*#~HU7k**e9xuKECB4L6n548-DIeod_i%}9`9oF$K|?$Kl?t@LYR#chEe{n zFCDz6Zh!vVUp6;47cK#Snl~<8e#?sWcl@dfrX6dnN>n~0oY zdIg?zXsM%(-6ussNsr7J0Dv&1EgfNga^&#uI_}E7-u+xr6H@?M+uG(WzWKAAb8D`w zD=YCF01%EvuawzSM``ulcii)ZL6w^z3mVxofh-roB zxPP`uO`{kZ&`!|{pof?=QeNUarD>0|g?s=8>oq@U*&G`k9X$NZzMHb!xAzJ-T>Jim z4_v!yZCgsB-6Ut^CJZQIz^8JM1KQveEJg=}$XGKdS0*od58+}Rm~j)+K*_YR3>FAL z9BGsL^Y0({ddrs|5<7S9tZZ1d?z!2u^M6(#qz_T~sG-Z*83>57FnEyON8AZewPF(r zC}0p+4QOrYSH?2K0FsM!i06nkB=FwZw~zF8AHGGj?buPj_RcT$qyxVM!U6q$A}Vep zVcQQ(svXa`B6{s`!MR_)dug)Iqy#&l2G&q;$=@e*(V(JC5y@#$YQiH9C}^ndnM z8$SOO_CSld;^IRo5)!vhq&OhEownW1PMB;@<3<1-G+Hfl>5;6(b z6{f56H@Ar&{_L@@EnU6g5g+xFMa9}+P%&76xWGKx5EP=8$PVA-p$$S56GO2wtN}2X zCw*|E^SIOmKrn!!UHOE%yX)B&@qd%Yo@~8l<(h1OI@66Hu~aT~vKYqWO2ZrEBb#^N zS*Ah?8WH8i&Va}~HZZ#D*_IWwnX4@$_}XP=l=DXS%i9@1-Ljjr#d@VYkz{SB96B#W zA``{Z*lr>~R#>4zaLWpGG8w7Fv?NbVB;iu=rHToF?JRsdnva~5M~{3jua^*#RDv$qPG0arJ!xvPgZFHK2nG{V?+g!saw z3^GZdDJA~dA4F0TiWJ8&4;?Ti+01ASn~z|2$XcAVuokX(SgFxhUwXQUji_evjh$sz zRIh{pQJ=T~^RXI0AkVYbidq|C$1NtbQ(R9#k-bUO4Yquk6J;EdXn#Fo%7<`KETuV# zp`n4U{*$>4Y{gHsKXw0A3z~KaN?n?wX&4?bEL_l;0007Qiqp~MEKz$tw4nBsIoL}1 zKHm>1V}T?vw36qbinscD?*Hc2dwwuAjOv%K>muw`Xc-im>zCLmY+3U>6nqp!hkykb zrdB*Kl9?cRTB1-04u937JOJQwX>D?mi3W2$FWi*P(l9EXgw70H_|DAgMO$?g2@_kI z6cHR5t7?@TI+2}l?Sa&8jPH_w0Fazcg*H!b@5YY#9cJpnqm6s>F8%K`D@Jgl7*p7f`8K_`@4$cuM34hfysz2ukGj4O;%o6f}GHz>R4=)rps0_roqegOt$#c(4 z3=jPFhEJ6%PQ72&9|=J5DlILQ*=)9Kax!1-r%LOjOwSe4pUyJV(U4O4Q&Bj6yd<4I k*VfiHJ~1(ISwGMJ1(uoD{fthAX8-^I07*qoM6N<$f;Ko*KL7v# delta 2067 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 diff --git a/application/palemoon/branding/official/firefox.icns b/application/palemoon/branding/official/firefox.icns index d63c656c7a06bd69184e5808a01d93d32845ff9b..87f9ac751fd345e0cc0a71d51712023368e3cbc9 100644 GIT binary patch literal 253858 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 AdH?_b literal 251915 zcmb5W2V4}((lKwPS12#S9R6Ds++2Da=hV=sEPHC?B8aJAjk

kG5N5?JE$K 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

6JEm_|F6_HlT*R9&`p`VKpE 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

U}j){inRM!Q41V?JNlx$CYjm3wuc>ZSRpg7 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