Preheat the oven to 350°.
Grease a 9x13 baking dish and set aside.
In a mixing bowl, combine the flour, sugar, and salt.
Stir together and set aside.
In a saucepan, add the oil, butter, Coca-Cola, and cocoa powder.
Heat over medium heat and bring to a boil.
Once the mixture comes to a boil, carefully pour it over the flour mixture.
Mix with an electric mixer or stir with a wooden spoon until well combined.
Add the buttermilk, eggs, vanilla, and baking soda.
Mix until smooth.
Pour the batter into the prepared baking dish and spread it into an even layer.
Bake for 20-25 minutes, or until a toothpick inserted into the center comes out with just a few moist crumbs.
Allow the cake to cool for 5-10 minutes while you prepare the frosting.
For the frosting, add the butter, cocoa powder, and heavy cream (or milk) to a saucepan.
Heat over medium until the butter has completely melted.
Remove from the heat, then add the vanilla and powdered sugar.
Mix until smooth and creamy.
Pour the warm frosting over the warm cake and spread it into an even layer.
Allow the frosting to set slightly before serving.