Heat the oil with the butter in a large non-stick or heavy frying pan. Stir in the onions and cook over low heat until they are soft and golden. Don't rush this step as the onions will only release their sugars when cooked very gently; it may take 10-15 minutes. Season with salt and pepper. Add the herbs.
Break the eggs into a bowl, beating them lightly with a fork. Raise the heat under the onions a little to moderate and, when they are sizzling, pour in the eggs. Stir them quickly to distribute the onions evenly and then stop stirring. Cook for about 5 minutes on the first side or until the frittata is puffing up at the edges and is golden brown underneath. If the frittata seems to be sticking to the pan, shake the pan back and forth to release it.
To turn the frittata: Remove the pan from the heat. Take a large plate, place it upside down over the pan and, holding it firmly with oven gloves, turn the pan and the frittata over onto it. Slide the frittata back into the pan and continue cooking until it's golden brown on the second side, 4 or 5 minutes more. Remove from the heat. The frittata can be served hot, at room temperature, or cold. Cut it into wedges to serve.