Preheat the oven to 350 degrees. Butter and flour two (9-inch) round cake pans and line the bottoms with parchment paper. Whisk together the flour, baking powder, baking soda, and salt in medium bowl.
In medium saucepan, combine the sugar and the water. Bring to a boil over high heat, stirring until the sugar dissolves, and then pour into a large bowl for a stand mixer. Add the cocoa powder, canola oil, and butter and let sit, stirring occasionally, until melted and slightly cooled. Stir in the vanilla.
Attach the mixer bowl to a stand mixer. Add the eggs, and beat into the chocolate mixture at medium speed until combined. Add the dry ingredients all at one time and beat at medium speed until smooth. Divide the batter evenly between the pans and bake for 25 minutes, or until a toothpick inserted into the cake comes out clean. Cool the cakes in the pans for about 25 minutes, and then invert onto a rack to finish cooling.
While cakes are cooling, bring the cream and sugar to a boil in a medium saucepan over moderately high heat. Reduce the heat to low and simmer, stirring occasionally, until the liquid reduces slightly (approximately 6 minutes). Pour the mixture into a medium bowl or mixer bowl (if it can accommodate a bowl of ice water under the mixer bowl, for later in the recipe). Add the cocoa powder, canola oil, butter, vanilla, and salt. Let stand, stirring occasionally, until the butter is melted.
Fill a large bowl with ice water. Set the bowl with the cocoa powder mixture bowl into the ice water to chill. Using a handheld electric mixer, beat the frosting at medium speed, scraping the sides occasionally with a rubber spatula, until frosting is thick and glossy (approximately 5 minutes). Use immediately to frost the cooled cakes.