With the release of Chrome 69, Google has decided to strip the "www" and "m" subdomains from the URL displayed in Chrome's address bar. For example, when a user visits www.bleepingcomputer.com, the www would be stripped and displayed as bleepingcomputer.com in the address bar.

www subdomain stripped from www.bleepingcomputer.com
www subdomain stripped from www.bleepingcomputer.com

When this was discovered, users and security experts expressed concerns that this new behavior will cause confusion for users who may think that they are going to a particular site, but may actually be going to a completely different one. Furthermore, due to bugs in this implementation, the "www" string could be stripped incorrectly and thus display an incorrect URL in the address bar.

As stated by a Chromium developer in the behavior's bug report, the www and m (for mobile) subdomains are being classified by Google as "trivial" subdomains because they feel most people do not need to be concerned with the information they represent.

"The subdomains reappear when editing the URL so people type the correct one.  They disappear in the steady-state display case because this isn't information that most users need to concern themselves with in most cases.  I think this is an OK tradeoff even in the rare case when www.foo.com is not actually the same as foo.com.  (Side note: like it or not, almost no real-world users will use such a thing correctly; configuring your server like this seems like a Bad Move even if it's technically legal, because people are going to access the wrong thing, and that has been true for some time and irrespective of Chrome's UI changes.)

There are multiple real bugs here though:

www.www.2ld.tld should become www.2ld.tld, not 2ld.tld (we should strip at most one m. and www.)
subdomain.www.domain.com should be left as-is, not subdomain.domain.com (should only strip prefixes)"

To many users, though, this logic doesn't make sense as domain.com does not always go to the same site as www.domain.com and will just confuse users.

"This is a dumb change. No part of a domain should be considered "trivial". As an ISP, we often have to go to great lengths to teach users that "www.domain.com" and "domain.com" are two different domains, and that they may not necessarily go to the same destination. The marketing world has done a lot of damage convincing people that "www" is both ubiquitous and non-essential, when in fact, for some domains, the use or lack of it can be quite important to getting to the correct location."

Another example given in the bug report was that the address www.pool.ntp.org is a website, while the stripped url would appear in Chrome as pool.ntp.org, which is a random NTP server.

"How will you distinguish http://www.pool.ntp.org vs http://pool.ntp.org ?

One takes you to the website about the project, the other goes to a random ntp server."

Finally, another commenter shows how the "www" string may be stripped incorrectly and thus show an incorrect url due to bugs in the implementation.

"Enter into the address bar:


It shortens it:


WTF? How does www.example.www.example.com === example.example.com?"

How Chrome 69 decides to strip a subdomain

From the Chromium source code, Chrome 69 has a function called IsTrivialSubdomain() that checks whether a subdomain is "www" or "m". If the subdomain is "www" then the function returns true, and if Chrome is being used on Android or iOS, will return true for the "m" subdomain. 

If the function returns true, Chrome will strip the subdomain from the URL when it is displayed in the address bar..

  static bool IsTrivialSubdomain(base::StringPiece subdomain) {
    if (subdomain == "www")
      return true;

#if defined(OS_ANDROID) || defined(OS_IOS)
    // Eliding the "m" subdomain on Desktop can be confusing, since users would
    // generally want to know if they are unintentionally on the mobile site.
    if (subdomain == "m")
      return true;

    return false;

How to stop the stripping of trivial subdomains

Due to the confusion and possible security risks of this new feature, it is suggested that users disable the stripping of trivial subdomains. To disable the removal of trivial subdomains you can follow these steps:

  1. Open the Chrome browser and enter chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains into the address bar. Then press Enter.
  2. Chrome will open a page that shows the "Omnibox UI Hide Steay-State URL Scheme and Trivial Subdomains" setting. Change this settings to Disabled.

  3. The browser will then display a prompt that you need to relaunch the browser for the setting to take effect. Click on the "Relaunch Now" button and the browser will restart.

  4. Now that the setting is disabled, you will see the full addresses for the site you are visiting in the address bar as shown below.
    Full addresses showing again in the Chrome 69 address bar
    Full addresses showing again in the Chrome 69 address bar

Related Articles:

Chrome 71 Released With Abusive Ad Filtering and Audio Blocking

Chrome and Firefox Developers Aim to Remove Support for FTP

Google is Adding Force-Installed Extension Removal to the Chrome Cleanup Tool

Speech Synthesis API Being Restricted in Chrome 71 Due to Abuse

Internal Chrome Page Shows All Google Interstitial Warnings