Preheat oven to 325°F. Set oven rack at lower middle level.
Spray an 8-inch square baking pan, or a 9-inch round pan (this will give you trim/leftovers for munching 😀 ). Line with parchment or foil with ends overhanging (this will facilitate pulling them out of the pan later). If using a round pan cut “rays” coming out of the bottom circle — these will be the “handles”. Spray again.
Whisk flour, salt, and baking powder in a bowl.
In a saucepan over low heat, melt chocolates and butter. (This can also be done in a glass measuring cup/bowl in the microwave if you like, just do it gently, and test every 20 seconds or so.) Let cool for a few minutes, then add sugar and vanilla extract. Whisk in eggs one at a time, fully incorporating each before adding the next. Add flour mixture and mix well.
In another bowl, beat all ingredients for cream cheese batter until smooth and even.
Pour half the brownie batter into the pan. Drop spoonfuls of half of the cream cheese batter on top. Pour remaining brownie batter on top. Add the remaining cream cheese batter, again by spoonfuls on top. Take a knife and swirl it through the batters to create the marbled effect.
Bake for 50 to 60 minutes, or until a tester or toothpick inserted near the center comes out mostly dry (moist crumbs are okay). Cool in pan for 5-10 minutes. If necessary, run a knife along the sides of the pan to detach. Using the foil/parchment handles, lift out of the pan and onto a cooling rack. Cool to room temperature. You can cut the brownies, but it will be easier to cut them and the results will be cleaner if you refrigerate until chilled, about 3 hours (or 90 minutes in the freezer). Cut into squares.