Injecting web3 into the dapp is done automatically,when using MetaMask. Web pages get access to the Blockchain when using metamask in their browser, to read addresses for tranactions, and other functionality. If the injection is not automatic(this makes for a more secure, private entry point) would one have to use an API to inject Web3 in the dapp- what would be the entry point to web3 in that case for dapps?
Metamask just recently decided to stop injecting the web3 automatically (https://medium.com/metamask/https-medium-com-metamask-breaking-change-injecting-web3-7722797916a8) . The change will happen at the beginning of November to allow transition period for developers.
More detailed information about how to request the web3 after the change has happened can be found through the article.