TL;DR
chrome.tabs.query({ active: true, currentWindow: true }, (e) => {
const url = e[0].url;
console.log(url);
});
location.hrefじゃだめなのか
background pageやpopup viewは通常のタブとは違うコンテキストで動作しているので、location.hrefでは取得できません。location.hrefで取得できるのは、chrome-extension://から始まるURLのみです。
また、chrome.tabs.getCurrent(function callback)で取得できそうな気もしますが、無理です。なぜなら対象とするtabが特定できないからです。
なので、chrome.tabs.query(object queryInfo, function callback)の第一引数でタブを特定し、コールバック関数でtabの情報を取得します。なお、この関数では第一引数に当てはまった全てのタブをコールバック関数に渡してくれるので、e[0]としています。
他にも多くのオプションがあるので、詳しくは公式のレファレンスを参照してください。
https://developer.chrome.com/extensions/tabs#method-query