diff --git a/import.sh b/import.sh
index 5b2f397..618f181 100644
--- a/import.sh
+++ b/import.sh
@@ -4,7 +4,7 @@
 top=/tmp/chromium
 mkdir $top
 prefix=https://chromium.googlesource.com/chromium/src.git/+archive
-for version in 58.0.3029.110 59.0.3071.115
+for version in 59.0.3071.115 60.0.3112.101
 do
   mkdir $top/$version
   cd $top/$version
diff --git a/src/base/strings/string16.cc b/src/base/strings/string16.cc
index 2e749a3..2139034 100644
--- a/src/base/strings/string16.cc
+++ b/src/base/strings/string16.cc
@@ -4,7 +4,7 @@
 
 #include "base/strings/string16.h"
 
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_UTF16) && !defined(_AIX)
 
 #error This file should not be used on 2-byte wchar_t systems
 // If this winds up being needed on 2-byte wchar_t systems, either the
diff --git a/src/base/strings/string_piece.h b/src/base/strings/string_piece.h
index 340a341..6f45f71 100644
--- a/src/base/strings/string_piece.h
+++ b/src/base/strings/string_piece.h
@@ -29,16 +29,13 @@
 
 #include "base/logging.h"
 #include "base/strings/string16.h"
+#include "base/strings/string_piece_forward.h"
 
 #define BASE_EXPORT
 
 namespace url {
 namespace base {
 
-template <typename STRING_TYPE> class BasicStringPiece;
-typedef BasicStringPiece<std::string> StringPiece;
-typedef BasicStringPiece<string16> StringPiece16;
-
 // internal --------------------------------------------------------------------
 
 // Many of the StringPiece functions use different implementations for the
diff --git a/src/base/strings/string_piece_forward.h b/src/base/strings/string_piece_forward.h
new file mode 100644
index 0000000..8a0ebc9
--- /dev/null
+++ b/src/base/strings/string_piece_forward.h
@@ -0,0 +1,25 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Forward declaration of StringPiece types from base/strings/string_piece.h
+
+#ifndef BASE_STRINGS_STRING_PIECE_FORWARD_H_
+#define BASE_STRINGS_STRING_PIECE_FORWARD_H_
+
+#include <string>
+
+#include "base/strings/string16.h"
+
+namespace url {
+namespace base {
+
+template <typename STRING_TYPE>
+class BasicStringPiece;
+typedef BasicStringPiece<std::string> StringPiece;
+typedef BasicStringPiece<string16> StringPiece16;
+
+}  // namespace base
+}  // namespace url
+
+#endif  // BASE_STRINGS_STRING_PIECE_FORWARD_H_
diff --git a/src/build/build_config.h b/src/build/build_config.h
index b84a9d3..1f38fcc 100644
--- a/src/build/build_config.h
+++ b/src/build/build_config.h
@@ -49,6 +49,8 @@
 #endif
 #elif defined(_WIN32)
 #define OS_WIN 1
+#elif defined(__Fuchsia__)
+#define OS_FUCHSIA 1
 #elif defined(__FreeBSD__)
 #define OS_FREEBSD 1
 #elif defined(__NetBSD__)
@@ -59,6 +61,8 @@
 #define OS_SOLARIS 1
 #elif defined(__QNXNTO__)
 #define OS_QNX 1
+#elif defined(_AIX)
+#define OS_AIX 1
 #else
 #error Please add support for your platform in build/build_config.h
 #endif
@@ -75,10 +79,10 @@
 
 // For access to standard POSIXish features, use OS_POSIX instead of a
 // more specific macro.
-#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_FREEBSD) ||     \
-    defined(OS_NETBSD) || defined(OS_OPENBSD) || defined(OS_SOLARIS) ||   \
-    defined(OS_ANDROID) || defined(OS_OPENBSD) || defined(OS_SOLARIS) ||  \
-    defined(OS_ANDROID) || defined(OS_NACL) || defined(OS_QNX)
+#if defined(OS_AIX) || defined(OS_ANDROID) || defined(OS_FREEBSD) ||  \
+    defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_MACOSX) || \
+    defined(OS_NACL) || defined(OS_NETBSD) || defined(OS_OPENBSD) ||  \
+    defined(OS_QNX) || defined(OS_SOLARIS)
 #define OS_POSIX 1
 #endif
 
@@ -121,21 +125,16 @@
 #define ARCH_CPU_S390 1
 #define ARCH_CPU_31_BITS 1
 #define ARCH_CPU_BIG_ENDIAN 1
-#elif defined(__PPC64__) && defined(__BIG_ENDIAN__)
+#elif (defined(__PPC64__) || defined(__PPC__)) && defined(__BIG_ENDIAN__)
 #define ARCH_CPU_PPC64_FAMILY 1
 #define ARCH_CPU_PPC64 1
 #define ARCH_CPU_64_BITS 1
 #define ARCH_CPU_BIG_ENDIAN 1
-#elif defined(__PPC64__) && defined(__LITTLE_ENDIAN__)
+#elif defined(__PPC64__)
 #define ARCH_CPU_PPC64_FAMILY 1
 #define ARCH_CPU_PPC64 1
 #define ARCH_CPU_64_BITS 1
 #define ARCH_CPU_LITTLE_ENDIAN 1
-#elif defined(__PPC__)
-#define ARCH_CPU_PPC_FAMILY 1
-#define ARCH_CPU_PPC 1
-#define ARCH_CPU_32_BITS 1
-#define ARCH_CPU_BIG_ENDIAN 1
 #elif defined(__ARMEL__)
 #define ARCH_CPU_ARM_FAMILY 1
 #define ARCH_CPU_ARMEL 1
@@ -180,12 +179,10 @@
 // Type detection for wchar_t.
 #if defined(OS_WIN)
 #define WCHAR_T_IS_UTF16
-#elif defined(OS_POSIX) && defined(COMPILER_GCC) && \
-    defined(__WCHAR_MAX__) && \
+#elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
     (__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff)
 #define WCHAR_T_IS_UTF32
-#elif defined(OS_POSIX) && defined(COMPILER_GCC) && \
-    defined(__WCHAR_MAX__) && \
+#elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
     (__WCHAR_MAX__ == 0x7fff || __WCHAR_MAX__ == 0xffff)
 // On Posix, we'll detect short wchar_t, but projects aren't guaranteed to
 // compile in this mode (in particular, Chrome doesn't). This is intended for
diff --git a/src/net/base/registry_controlled_domains/effective_tld_names.dat b/src/net/base/registry_controlled_domains/effective_tld_names.dat
index 7598355..1157a7f 100644
--- a/src/net/base/registry_controlled_domains/effective_tld_names.dat
+++ b/src/net/base/registry_controlled_domains/effective_tld_names.dat
@@ -171,7 +171,7 @@
 // aq : https://en.wikipedia.org/wiki/.aq
 aq
 
-// ar : https://nic.ar/normativa-vigente.xhtml
+// ar : https://nic.ar/nic-argentina/normativa-vigente
 ar
 com.ar
 edu.ar
@@ -179,6 +179,7 @@
 gov.ar
 int.ar
 mil.ar
+musica.ar
 net.ar
 org.ar
 tur.ar
@@ -406,6 +407,7 @@
 art.br
 ato.br
 b.br
+belem.br
 bio.br
 blog.br
 bmd.br
@@ -414,6 +416,8 @@
 cnt.br
 com.br
 coop.br
+cri.br
+def.br
 ecn.br
 eco.br
 edu.br
@@ -424,6 +428,7 @@
 eti.br
 far.br
 flog.br
+floripa.br
 fm.br
 fnd.br
 fot.br
@@ -431,9 +436,38 @@
 g12.br
 ggf.br
 gov.br
+// gov.br 26 states + df https://en.wikipedia.org/wiki/States_of_Brazil
+ac.gov.br
+al.gov.br
+am.gov.br
+ap.gov.br
+ba.gov.br
+ce.gov.br
+df.gov.br
+es.gov.br
+go.gov.br
+ma.gov.br
+mg.gov.br
+ms.gov.br
+mt.gov.br
+pa.gov.br
+pb.gov.br
+pe.gov.br
+pi.gov.br
+pr.gov.br
+rj.gov.br
+rn.gov.br
+ro.gov.br
+rr.gov.br
+rs.gov.br
+sc.gov.br
+se.gov.br
+sp.gov.br
+to.gov.br
 imb.br
 ind.br
 inf.br
+jampa.br
 jor.br
 jus.br
 leg.br
@@ -449,6 +483,7 @@
 ntr.br
 odo.br
 org.br
+poa.br
 ppg.br
 pro.br
 psc.br
@@ -456,6 +491,7 @@
 qsl.br
 radio.br
 rec.br
+recife.br
 slg.br
 srv.br
 taxi.br
@@ -465,6 +501,7 @@
 tur.br
 tv.br
 vet.br
+vix.br
 vlog.br
 wiki.br
 zlg.br
@@ -4406,6 +4443,7 @@
 // nc : http://www.cctld.nc/
 nc
 asso.nc
+nom.nc
 
 // ne : https://en.wikipedia.org/wiki/.ne
 ne
@@ -6555,6 +6593,9 @@
 // xn--54b7fta0cc ("Bangla", Bangla) : BD
 বাংলা
 
+// xn--90ae ("bg", Bulgarian) : BG
+бг
+
 // xn--90ais ("bel", Belarusian/Russian Cyrillic) : BY
 // Operated by .by registry
 бел
@@ -6590,6 +6631,34 @@
 // https://www2.hkirc.hk/register/rules.jsp
 香港
 
+// xn--2scrj9c ("Bharat", Kannada) : IN
+// India
+ಭಾರತ
+
+// xn--3hcrj9c ("Bharat", Oriya) : IN
+// India
+ଭାରତ
+
+// xn--45br5cyl ("Bharatam", Assamese) : IN
+// India
+ভাৰত
+
+// xn--h2breg3eve ("Bharatam", Sanskrit) : IN
+// India
+भारतम्
+
+// xn--h2brj9c8c ("Bharot", Santali) : IN
+// India
+भारोत
+
+// xn--mgbgu82a ("Bharat", Sindhi) : IN
+// India
+ڀارت
+
+// xn--rvc1e0am3e ("Bharatam", Malayalam) : IN
+// India
+ഭാരതം
+
 // xn--h2brj9c ("Bharat", Devanagari) : IN
 // India
 भारत
@@ -6731,6 +6800,12 @@
 // xn--o3cw4h ("Thai", Thai) : TH
 // http://www.thnic.co.th
 ไทย
+ศึกษา.ไทย
+ธุรกิจ.ไทย
+รัฐบาล.ไทย
+ทหาร.ไทย
+เน็ต.ไทย
+องค์กร.ไทย
 
 // xn--pgbs0dh ("Tunisia", Arabic) : TN
 // http://nic.tn
@@ -9039,9 +9114,6 @@
 // organic : 2014-03-27 Afilias Limited
 organic
 
-// orientexpress : 2015-02-05
-orientexpress
-
 // origins : 2015-10-01 The Estée Lauder Companies Inc.
 origins
 
@@ -10478,6 +10550,12 @@
 // ===BEGIN PRIVATE DOMAINS===
 // (Note: these are in alphabetical order by company name)
 
+// 1GB LLC : https://www.1gb.ua/
+// Submitted by 1GB LLC <noc@1gb.com.ua>
+cc.ua
+inf.ua
+ltd.ua
+
 // Agnat sp. z o.o. : https://domena.pl
 // Submitted by Przemyslaw Plewa <it-admin@domena.pl>
 beep.pl
@@ -10495,7 +10573,7 @@
 // Submitted by Donavan Miller <donavanm@amazon.com>
 cloudfront.net
 
-// Amazon Elastic Compute Cloud: https://aws.amazon.com/ec2/
+// Amazon Elastic Compute Cloud : https://aws.amazon.com/ec2/
 // Submitted by Luke Wells <psl-maintainers@amazon.com>
 *.compute.amazonaws.com
 *.compute-1.amazonaws.com
@@ -10610,15 +10688,28 @@
 // Submitted by Nathan O'Sullivan <nathan@mammoth.com.au>
 bnr.la
 
+// Boomla : https://boomla.com
+// Submitted by Tibor Halter <thalter@boomla.com>
+boomla.net
+
 // Boxfuse : https://boxfuse.com
 // Submitted by Axel Fontaine <axel@boxfuse.com>
 boxfuse.io
 
+// bplaced : https://www.bplaced.net/
+// Submitted by Miroslav Bozic <security@bplaced.net>
+square7.ch
+bplaced.com
+bplaced.de
+square7.de
+bplaced.net
+square7.net
+
 // BrowserSafetyMark
 // Submitted by Dave Tharp <browsersafetymark.io@quicinc.com>
 browsersafetymark.io
 
-// callidomus: https://www.callidomus.com/
+// callidomus : https://www.callidomus.com/
 // Submitted by Marcus Popp <admin@callidomus.com>
 mycd.eu
 
@@ -10692,6 +10783,14 @@
 // Submitted by Khash Sajadi <khash@cloud66.com>
 c66.me
 
+// CloudAccess.net : https://www.cloudaccess.net/
+// Submitted by Pawel Panek <noc@cloudaccess.net>
+jdevcloud.com
+wpdevcloud.com
+cloudaccess.host
+freesite.host
+cloudaccess.net
+
 // cloudControl : https://www.cloudcontrol.com/
 // Submitted by Tobias Wilken <tw@cloudcontrol.com>
 cloudcontrolled.com
@@ -10730,12 +10829,7 @@
 co.nl
 co.no
 
-// Commerce Guys, SAS
-// Submitted by Damien Tournoud <damien@commerceguys.com>
-// CHROMIUM - Disabled as per https://code.google.com/p/chromium/issues/detail?id=459802
-// *.platform.sh
-
-// COSIMO GmbH http://www.cosimo.de
+// COSIMO GmbH : http://www.cosimo.de
 // Submitted by Rene Marticke <rmarticke@cosimo.de>
 dyn.cosidns.de
 dynamisches-dns.de
@@ -10785,6 +10879,10 @@
 // Submitted by Norbert Auler <mail@dnshome.de>
 dnshome.de
 
+// DrayTek Corp. : https://www.draytek.com/
+// Submitted by Paul Fang <mis@draytek.com>
+drayddns.com
+
 // DreamHost : http://www.dreamhost.com/
 // Submitted by Andrew Farmer <andrew.farmer@dreamhost.com>
 dreamhosters.com
@@ -11100,14 +11198,43 @@
 myhome-server.de
 ddnss.org
 
+// Definima : http://www.definima.com/
+// Submitted by Maxence Bitterli <maxence@definima.com>
+definima.net
+definima.io
+
+// Dynu.com : https://www.dynu.com/
+// Submitted by Sue Ye <sue@dynu.com>
+ddnsfree.com
+ddnsgeek.com
+giize.com
+gleeze.com
+kozow.com
+loseyourip.com
+ooguy.com
+theworkpc.com
+casacam.net
+dynu.net
+accesscam.org
+camdvr.org
+freeddns.org
+mywire.org
+webredirect.org
+myddns.rocks
+blogsite.xyz
+
 // dynv6 : https://dynv6.com
-// Submitted by Dominik Menke <dom@digineo.de> 2016-01-18
+// Submitted by Dominik Menke <dom@digineo.de>
 dynv6.net
 
 // E4YOU spol. s.r.o. : https://e4you.cz/
 // Submitted by Vladimir Dudr <info@e4you.cz>
 e4.cz
 
+// Enalean SAS: https://www.enalean.com
+// Submitted by Thomas Cottier <thomas.cottier@enalean.com>
+mytuleap.com
+
 // Enonic : http://enonic.com/
 // Submitted by Erik Kaareng-Sunde <esu@enonic.com>
 enonic.io
@@ -11177,9 +11304,19 @@
 eu-1.evennode.com
 eu-2.evennode.com
 eu-3.evennode.com
+eu-4.evennode.com
 us-1.evennode.com
 us-2.evennode.com
 us-3.evennode.com
+us-4.evennode.com
+
+// eDirect Corp. : https://hosting.url.com.tw/
+// Submitted by C.S. chang <cschang@corp.url.com.tw>
+twmail.cc
+twmail.net
+twmail.org
+mymailer.com.tw
+url.tw
 
 // Facebook, Inc.
 // Submitted by Peter Ruibal <public-suffix@fb.com>
@@ -11283,6 +11420,10 @@
 fedorapeople.org
 cloud.fedoraproject.org
 
+// Filegear Inc. : https://www.filegear.com
+// Submitted by Jason Zhu <jason@owtware.com>
+filegear.me
+
 // Firebase, Inc.
 // Submitted by Chris Raynor <chris@firebase.com>
 firebaseapp.com
@@ -11290,6 +11431,7 @@
 // Flynn : https://flynn.io
 // Submitted by Jonathan Rudenberg <jonathan@flynn.io>
 flynnhub.com
+flynnhosting.net
 
 // Freebox : http://www.freebox.fr
 // Submitted by Romain Fliedel <rfliedel@freebox.fr>
@@ -11320,11 +11462,6 @@
 // Submitted by Patrick Toomey <security@github.com>
 github.io
 githubusercontent.com
-githubcloud.com
-*.api.githubcloud.com
-*.ext.githubcloud.com
-gist.githubcloud.com
-*.githubcloudusercontent.com
 
 // GitLab, Inc.
 // Submitted by Alex Hanselka <alex@gitlab.com>
@@ -11422,6 +11559,7 @@
 blogspot.ug
 blogspot.vn
 cloudfunctions.net
+cloud.goog
 codespot.com
 googleapis.com
 googlecode.com
@@ -11458,6 +11596,10 @@
 biz.at
 info.at
 
+// info.cx : http://info.cx
+// Submitted by Jacob Slater <whois@igloo.to>
+info.cx
+
 // Interlegis : http://www.interlegis.leg.br
 // Submitted by Gabriel Ferreira <registrobr@interlegis.leg.br>
 ac.leg.br
@@ -11513,10 +11655,40 @@
 co.krd
 edu.krd
 
+// LCube - Professional hosting e.K. : https://www.lcube-webhosting.de
+// Submitted by Lars Laehn <info@lcube.de>
+git-repos.de
+lcube-server.de
+svn-repos.de
+
+// LiquidNet Ltd : http://www.liquidnetlimited.com/
+// Submitted by Victor Velchev <admin@liquidnetlimited.com>
+we.bs
+
+// Lukanet Ltd : https://lukanet.com
+// Submitted by Anton Avramov <register@lukanet.com>
+barsy.bg
+barsyonline.com
+barsy.de
+barsy.eu
+barsy.in
+barsy.net
+barsy.online
+barsy.support
+
 // Magento Commerce
 // Submitted by Damien Tournoud <dtournoud@magento.cloud>
 *.magentosite.cloud
 
+// Mail.Ru Group : https://hb.cldmail.ru
+// Submitted by Ilya Zaretskiy <zaretskiy@corp.mail.ru>
+hb.cldmail.ru
+
+// MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/
+// Submitted by Zdeněk Šustr <zdenek.sustr@cesnet.cz>
+cloud.metacentrum.cz
+custom.metacentrum.cz
+
 // Meteor Development Group : https://www.meteor.com/hosting
 // Submitted by Pierre Carrier <pierre@meteor.com>
 meteorapp.com
@@ -11535,6 +11707,11 @@
 // Submitted by glob <glob@mozilla.com>
 bmoattachments.org
 
+// Netlify : https://www.netlify.com
+// Submitted by Jessica Parsons <jessica@netlify.com>
+bitballoon.com
+netlify.com
+
 // Neustar Inc.
 // Submitted by Trung Tran <Trung.Tran@neustar.biz>
 4u.com
@@ -11640,10 +11817,59 @@
 webhop.me
 zapto.org
 
+// NodeArt : https://nodeart.io
+// Submitted by Konstantin Nosov <Nosov@nodeart.io>
+stage.nodeart.io
+
+// Nodum B.V. : https://nodum.io/
+// Submitted by Wietse Wind <hello+publicsuffixlist@nodum.io>
+nodum.co
+nodum.io
+
 // NYC.mn : http://www.information.nyc.mn
 // Submitted by Matthew Brown <mattbrown@nyc.mn>
 nyc.mn
 
+// NymNom : https://nymnom.com/
+// Submitted by Dave McCormack <dave.mccormack@nymnom.com>
+nom.ae
+nom.ai
+nom.al
+nym.by
+nym.bz
+nom.cl
+nom.gd
+nom.gl
+nym.gr
+nom.gt
+nom.hn
+nom.im
+nym.kz
+nym.la
+nom.li
+nym.li
+nym.lt
+nym.lu
+nym.me
+nom.mk
+nym.mx
+nom.nu
+nym.nz
+nym.pe
+nym.pt
+nom.pw
+nom.qa
+nom.rs
+nom.si
+nym.sk
+nym.su
+nym.sx
+nym.tw
+nom.ug
+nom.uy
+nom.vc
+nom.vg
+
 // Octopodal Solutions, LLC. : https://ulterius.io/
 // Submitted by Andrew Sampson <andrew@ulterius.io>
 cya.gg
@@ -11701,6 +11927,12 @@
 // Submitted by Frédéric VANNIÈRE <f.vanniere@planet-work.com>
 on-web.fr
 
+// Platform.sh : https://platform.sh
+// Submitted by Nikola Kotur <nikola@platform.sh>
+// CHROMIUM - Disabled as per https://code.google.com/p/chromium/issues/detail?id=459802
+// *.platform.sh
+*.platformsh.site
+
 // prgmr.com : https://prgmr.com/
 // Submitted by Sarah Newman <owner@prgmr.com>
 xen.prgmr.com
@@ -11727,6 +11959,15 @@
 alpha-myqnapcloud.com
 myqnapcloud.com
 
+// Quip : https://quip.com
+// Submitted by Patrick Linehan <plinehan@quip.com>
+*.quipelements.com
+
+// Qutheory LLC : http://qutheory.io
+// Submitted by Jonas Schwartz <jonas@qutheory.io>
+vapor.cloud
+vaporcloud.io
+
 // Rackmaze LLC : https://www.rackmaze.com
 // Submitted by Kirill Pertsev <kika@rackmaze.com>
 rackmaze.com
@@ -11768,6 +12009,10 @@
 myfirewall.org
 spdns.org
 
+// SensioLabs, SAS : https://sensiolabs.com/
+// Submitted by Fabien Potencier <fabien.potencier@sensiolabs.com>
+*.sensiosite.cloud
+
 // Service Online LLC : http://drs.ua/
 // Submitted by Serhii Bulakh <support@drs.ua>
 biz.ua
@@ -11819,6 +12064,10 @@
 // Submitted by Philip Hutchins <hostmaster@storj.io>
 storj.farm
 
+// Sub 6 Limited: http://www.sub6.com
+// Submitted by Dan Miller <dm@sub6.com>
+temp-dns.com
+
 // Synology, Inc. : https://www.synology.com/
 // Submitted by Rony Weng <ronyweng@synology.com>
 diskstation.me
@@ -11847,11 +12096,40 @@
 med.pl
 sopot.pl
 
+// Thingdust AG : https://thingdust.com/
+// Submitted by Adrian Imboden <adi@thingdust.com>
+cust.dev.thingdust.io
+cust.disrec.thingdust.io
+cust.prod.thingdust.io
+cust.testing.thingdust.io
+
 // TownNews.com : http://www.townnews.com
 // Submitted by Dustin Ward <dward@townnews.com>
 bloxcms.com
 townnews-staging.com
 
+// TrafficPlex GmbH : https://www.trafficplex.de/
+// Submitted by Phillipp Röll <phillipp.roell@trafficplex.de>
+12hp.at
+2ix.at
+4lima.at
+lima-city.at
+12hp.ch
+2ix.ch
+4lima.ch
+lima-city.ch
+trafficplex.cloud
+de.cool
+12hp.de
+2ix.de
+4lima.de
+lima-city.de
+1337.pictures
+clan.rip
+lima-city.rocks
+webspace.rocks
+lima.zone
+
 // TransIP : htts://www.transip.nl
 // Submitted by Rory Breuk <rbreuk@transip.nl>
 *.transurl.be
@@ -11897,6 +12175,11 @@
 // Submitted by Simon Kissel <hostmaster@viprinet.com>
 router.management
 
+// WeDeploy by Liferay, Inc. : https://www.wedeploy.com
+// Submitted by Henrique Vicente <security@wedeploy.com>
+wedeploy.io
+wedeploy.me
+
 // Western Digital Technologies, Inc : https://www.wdc.com
 // Submitted by Jung Jin <jungseok.jin@wdc.com>
 remotewd.com
@@ -11905,8 +12188,10 @@
 // Submitted by Yuvi Panda <yuvipanda@wikimedia.org>
 wmflabs.org
 
-// XS4ALL Internet bv: https://www.xs4all.nl/
+// XS4ALL Internet bv : https://www.xs4all.nl/
 // Submitted by Daniel Mostertman <unixbeheer+publicsuffix@xs4all.net>
+cistron.nl
+demon.nl
 xs4all.space
 
 // Yola : https://www.yola.com/
@@ -11932,10 +12217,4 @@
 // Submitted by Olli Vanhoja <olli@zeit.co>
 now.sh
 
-// 1GB LLC : https://www.1gb.ua/
-// Submitted by 1GB LLC <noc@1gb.com.ua>
-cc.ua
-inf.ua
-ltd.ua
-
 // ===END PRIVATE DOMAINS===
diff --git a/src/net/base/registry_controlled_domains/effective_tld_names.gperf b/src/net/base/registry_controlled_domains/effective_tld_names.gperf
index ba49a41..549579b 100644
--- a/src/net/base/registry_controlled_domains/effective_tld_names.gperf
+++ b/src/net/base/registry_controlled_domains/effective_tld_names.gperf
@@ -14,12 +14,22 @@
 0.bg, 0
 0emm.com, 6
 1.bg, 0
+12hp.at, 4
+12hp.ch, 4
+12hp.de, 4
+1337.pictures, 4
 1kapp.com, 4
 2.bg, 0
 2000.hu, 0
+2ix.at, 4
+2ix.ch, 4
+2ix.de, 4
 3.bg, 0
 3utilities.com, 4
 4.bg, 0
+4lima.at, 4
+4lima.ch, 4
+4lima.de, 4
 4u.com, 4
 5.bg, 0
 6.bg, 0
@@ -62,6 +72,7 @@
 ac.cr, 0
 ac.cy, 0
 ac.gn, 0
+ac.gov.br, 0
 ac.id, 0
 ac.il, 0
 ac.im, 0
@@ -98,6 +109,7 @@
 academy, 0
 academy.museum, 0
 accenture, 0
+accesscam.org, 4
 accident-investigation.aero, 0
 accident-prevention.aero, 0
 accountant, 0
@@ -205,6 +217,7 @@
 akune.kagoshima.jp, 0
 al, 0
 al.eu.org, 4
+al.gov.br, 0
 al.it, 0
 al.leg.br, 4
 al.no, 0
@@ -236,6 +249,7 @@
 alwaysdata.net, 6
 am, 0
 am.br, 0
+am.gov.br, 0
 am.leg.br, 4
 ama.aichi.jp, 0
 ama.shimane.jp, 0
@@ -297,11 +311,11 @@
 aosta.it, 0
 aostavalley.it, 0
 aoste.it, 0
+ap.gov.br, 0
 ap.gov.pl, 0
 ap.it, 0
 ap.leg.br, 4
 apartments, 0
-api.githubcloud.com, 6
 app, 0
 appchizi.com, 4
 apple, 0
@@ -488,6 +502,7 @@
 b.se, 0
 b.ssl.fastly.net, 4
 ba, 0
+ba.gov.br, 0
 ba.it, 0
 ba.leg.br, 4
 babia-gora.pl, 0
@@ -533,6 +548,14 @@
 barreau.bj, 0
 barrel-of-knowledge.info, 4
 barrell-of-knowledge.info, 4
+barsy.bg, 4
+barsy.de, 4
+barsy.eu, 4
+barsy.in, 4
+barsy.net, 4
+barsy.online, 4
+barsy.support, 4
+barsyonline.com, 4
 barum.no, 0
 bas.it, 0
 baseball, 0
@@ -572,6 +595,7 @@
 beiarn.no, 0
 bel.tr, 0
 belau.pw, 0
+belem.br, 0
 bellevue.museum, 0
 belluno.it, 0
 benevento.it, 0
@@ -627,6 +651,7 @@
 birdart.museum, 0
 birkenes.no, 0
 birthplace.museum, 0
+bitballoon.com, 4
 biz, 0
 biz.at, 4
 biz.az, 0
@@ -666,6 +691,7 @@
 blogdns.net, 4
 blogdns.org, 4
 blogsite.org, 4
+blogsite.xyz, 4
 blogspot.ae, 4
 blogspot.al, 4
 blogspot.am, 4
@@ -775,6 +801,7 @@
 boo, 0
 book, 0
 booking, 0
+boomla.net, 4
 boots, 0
 bosch, 0
 bostik, 0
@@ -791,6 +818,9 @@
 box, 0
 boxfuse.io, 4
 bozen.it, 0
+bplaced.com, 4
+bplaced.de, 4
+bplaced.net, 4
 br, 0
 br.com, 4
 br.it, 0
@@ -885,6 +915,7 @@
 cam, 0
 cam.it, 0
 cambridge.museum, 0
+camdvr.org, 4
 camera, 0
 camp, 0
 campania.it, 0
@@ -915,6 +946,7 @@
 cartier, 0
 cartoonart.museum, 0
 casa, 0
+casacam.net, 4
 casadelamoneda.museum, 0
 case, 0
 caseih, 0
@@ -998,6 +1030,7 @@
 cd, 0
 cd.eu.org, 4
 cdn77-ssl.net, 4
+ce.gov.br, 0
 ce.it, 0
 ce.leg.br, 4
 ceb, 0
@@ -1097,6 +1130,7 @@
 circus.museum, 0
 cisco, 0
 ciscofreak.com, 4
+cistron.nl, 4
 citadel, 0
 citi, 0
 citic, 0
@@ -1119,6 +1153,7 @@
 cl, 0
 cl.it, 0
 claims, 0
+clan.rip, 4
 cleaning, 0
 click, 0
 clinic, 0
@@ -1128,6 +1163,10 @@
 clothing, 0
 cloud, 0
 cloud.fedoraproject.org, 4
+cloud.goog, 4
+cloud.metacentrum.cz, 4
+cloudaccess.host, 4
+cloudaccess.net, 4
 cloudapp.net, 4
 cloudcontrolapp.com, 4
 cloudcontrolled.com, 4
@@ -1441,6 +1480,7 @@
 creditunion, 0
 cremona.it, 0
 crew.aero, 0
+cri.br, 0
 cri.nz, 0
 cricket, 0
 crimea.ua, 0
@@ -1461,6 +1501,11 @@
 culture.museum, 0
 cuneo.it, 0
 cupcake.is, 4
+cust.dev.thingdust.io, 4
+cust.disrec.thingdust.io, 4
+cust.prod.thingdust.io, 4
+cust.testing.thingdust.io, 4
+custom.metacentrum.cz, 4
 customer.enonic.io, 4
 cv, 0
 cv.ua, 0
@@ -1513,6 +1558,8 @@
 dd-dns.de, 4
 ddns.me, 4
 ddns.net, 4
+ddnsfree.com, 4
+ddnsgeek.com, 4
 ddnsking.com, 4
 ddnss.de, 4
 ddnss.org, 4
@@ -1520,6 +1567,7 @@
 dds, 0
 de, 0
 de.com, 4
+de.cool, 4
 de.eu.org, 4
 de.us, 0
 deal, 0
@@ -1528,7 +1576,10 @@
 deatnu.no, 0
 decorativearts.museum, 0
 dedyn.io, 4
+def.br, 0
 defense.tn, 0
+definima.io, 4
+definima.net, 4
 degree, 0
 delaware.museum, 0
 delivery, 0
@@ -1539,6 +1590,7 @@
 deloitte, 0
 delta, 0
 democrat, 0
+demon.nl, 4
 denmark.museum, 0
 dental, 0
 dentist, 0
@@ -1553,6 +1605,7 @@
 dev, 0
 dev-myqnapcloud.com, 4
 dev.static.land, 4
+df.gov.br, 0
 df.leg.br, 4
 dgca.aero, 0
 dhl, 0
@@ -1624,6 +1677,7 @@
 drammen.no, 0
 drangedal.no, 0
 dray-dns.de, 4
+drayddns.com, 4
 draydns.de, 4
 dreamhosters.com, 4
 drive, 0
@@ -1684,6 +1738,7 @@
 dyndns.ws, 4
 dyndns1.de, 4
 dynns.com, 4
+dynu.net, 4
 dynv6.net, 4
 dynvpn.de, 4
 dyroy.no, 0
@@ -1912,6 +1967,7 @@
 erotika.hu, 0
 es, 0
 es.eu.org, 4
+es.gov.br, 0
 es.kr, 0
 es.leg.br, 4
 esan.hokkaido.jp, 0
@@ -1939,6 +1995,7 @@
 eu-1.evennode.com, 4
 eu-2.evennode.com, 4
 eu-3.evennode.com, 4
+eu-4.evennode.com, 4
 eu.com, 4
 eu.int, 0
 eu.meteorapp.com, 4
@@ -1962,7 +2019,6 @@
 exposed, 0
 express, 0
 express.aero, 0
-ext.githubcloud.com, 6
 extraspace, 0
 f.bg, 0
 f.se, 0
@@ -2026,6 +2082,7 @@
 field.museum, 0
 figueres.museum, 0
 filatelia.museum, 0
+filegear.me, 4
 film, 0
 film.hu, 0
 film.museum, 0
@@ -2078,10 +2135,12 @@
 flora.no, 0
 florence.it, 0
 florida.museum, 0
+floripa.br, 0
 florist, 0
 floro.no, 0
 flowers, 0
 fly, 0
+flynnhosting.net, 4
 flynnhub.com, 4
 fm, 0
 fm.br, 0
@@ -2133,7 +2192,9 @@
 freebox-os.fr, 4
 freeboxos.com, 4
 freeboxos.fr, 4
+freeddns.org, 4
 freemasonry.museum, 0
+freesite.host, 4
 freetls.fastly.net, 4
 frei.no, 0
 freiburg.museum, 0
@@ -2360,15 +2421,14 @@
 gifts, 0
 gifu.gifu.jp, 0
 gifu.jp, 0
+giize.com, 4
 gildeskal.no, 0
 ginan.gifu.jp, 0
 ginowan.okinawa.jp, 0
 ginoza.okinawa.jp, 0
 giske.no, 0
-gist.githubcloud.com, 4
+git-repos.de, 4
 github.io, 4
-githubcloud.com, 4
-githubcloudusercontent.com, 6
 githubusercontent.com, 4
 gitlab.io, 4
 gives, 0
@@ -2384,6 +2444,7 @@
 glass, 0
 glass.museum, 0
 gle, 0
+gleeze.com, 4
 gliding.aero, 0
 gliwice.pl, 4
 global, 0
@@ -2403,6 +2464,7 @@
 go.ci, 0
 go.cr, 0
 go.dyndns.org, 4
+go.gov.br, 0
 go.id, 0
 go.it, 0
 go.jp, 0
@@ -2761,6 +2823,7 @@
 hayakawa.yamanashi.jp, 0
 hayashima.okayama.jp, 0
 hazu.aichi.jp, 0
+hb.cldmail.ru, 4
 hb.cn, 0
 hbo, 0
 hdfc, 0
@@ -3115,6 +3178,7 @@
 info.az, 0
 info.bb, 0
 info.co, 0
+info.cx, 4
 info.ec, 0
 info.et, 0
 info.ht, 0
@@ -3348,11 +3412,13 @@
 jaguar, 0
 jambyl.su, 4
 jamison.museum, 0
+jampa.br, 0
 jan-mayen.no, 0
 java, 0
 jaworzno.pl, 0
 jcb, 0
 jcp, 0
+jdevcloud.com, 4
 je, 0
 jeep, 0
 jefferson.museum, 0
@@ -3784,6 +3850,7 @@
 koza.wakayama.jp, 0
 kozagawa.wakayama.jp, 0
 kozaki.chiba.jp, 0
+kozow.com, 4
 kp, 0
 kpmg, 0
 kpn, 0
@@ -3935,6 +4002,7 @@
 lb, 0
 lc, 0
 lc.it, 0
+lcube-server.de, 4
 lds, 0
 le.it, 0
 leangaviika.no, 0
@@ -4042,6 +4110,11 @@
 lillehammer.no, 0
 lillesand.no, 0
 lilly, 0
+lima-city.at, 4
+lima-city.ch, 4
+lima-city.de, 4
+lima-city.rocks, 4
+lima.zone, 4
 limanowa.pl, 0
 limited, 0
 limo, 0
@@ -4087,6 +4160,7 @@
 loppa.no, 0
 lorenskog.no, 0
 losangeles.museum, 0
+loseyourip.com, 4
 loten.no, 0
 lotte, 0
 lotto, 0
@@ -4141,6 +4215,7 @@
 m.bg, 0
 m.se, 0
 ma, 0
+ma.gov.br, 0
 ma.leg.br, 4
 ma.us, 0
 macerata.it, 0
@@ -4300,6 +4375,7 @@
 metlife, 0
 mex.com, 4
 mg, 0
+mg.gov.br, 0
 mg.leg.br, 4
 mh, 0
 mi.it, 0
@@ -4581,6 +4657,7 @@
 mr.no, 0
 mragowo.pl, 0
 ms, 0
+ms.gov.br, 0
 ms.it, 0
 ms.kr, 0
 ms.leg.br, 4
@@ -4590,6 +4667,7 @@
 msk.su, 4
 mt, 0
 mt.eu.org, 4
+mt.gov.br, 0
 mt.it, 0
 mt.leg.br, 4
 mt.us, 0
@@ -4628,6 +4706,7 @@
 museumcenter.museum, 0
 museumvereniging.museum, 0
 music.museum, 0
+musica.ar, 0
 mutsu.aomori.jp, 0
 mutsuzawa.chiba.jp, 0
 mutual, 0
@@ -4647,6 +4726,7 @@
 myactivedirectory.com, 4
 myasustor.com, 4
 mycd.eu, 4
+myddns.rocks, 4
 mydissent.net, 4
 mydrobo.com, 4
 myds.me, 4
@@ -4658,6 +4738,7 @@
 myfusion.cloud, 4
 myhome-server.de, 4
 mykolaiv.ua, 0
+mymailer.com.tw, 4
 mymediapc.net, 4
 myoko.niigata.jp, 0
 mypep.link, 4
@@ -4670,7 +4751,9 @@
 mysecuritycamera.org, 4
 myshopblocks.com, 4
 mytis.ru, 4
+mytuleap.com, 4
 myvnc.com, 4
+mywire.org, 4
 mz, 0
 n.bg, 0
 n.se, 0
@@ -4963,6 +5046,7 @@
 net.zm, 0
 netbank, 0
 netflix, 0
+netlify.com, 4
 network, 0
 neues.museum, 0
 neustar, 0
@@ -5070,6 +5154,8 @@
 noboribetsu.hokkaido.jp, 0
 noda.chiba.jp, 0
 noda.iwate.jp, 0
+nodum.co, 4
+nodum.io, 4
 nogata.fukuoka.jp, 0
 nogi.tochigi.jp, 0
 noheji.aomori.jp, 0
@@ -5077,20 +5163,41 @@
 noip.us, 4
 nokia, 0
 nom.ad, 0
+nom.ae, 4
 nom.ag, 0
+nom.ai, 4
+nom.al, 4
 nom.br, 2
+nom.cl, 4
 nom.co, 0
 nom.es, 0
 nom.fr, 0
+nom.gd, 4
+nom.gl, 4
+nom.gt, 4
+nom.hn, 4
+nom.im, 4
 nom.km, 0
+nom.li, 4
 nom.mg, 0
+nom.mk, 4
+nom.nc, 0
 nom.ni, 0
+nom.nu, 4
 nom.pa, 0
 nom.pe, 0
 nom.pl, 0
+nom.pw, 4
+nom.qa, 4
 nom.re, 0
 nom.ro, 0
+nom.rs, 4
+nom.si, 4
 nom.tm, 0
+nom.ug, 4
+nom.uy, 4
+nom.vc, 4
+nom.vg, 4
 nom.za, 0
 nome.pt, 0
 nomi.ishikawa.jp, 0
@@ -5159,6 +5266,23 @@
 nyc, 0
 nyc.mn, 4
 nyc.museum, 0
+nym.by, 4
+nym.bz, 4
+nym.gr, 4
+nym.kz, 4
+nym.la, 4
+nym.li, 4
+nym.lt, 4
+nym.lu, 4
+nym.me, 4
+nym.mx, 4
+nym.nz, 4
+nym.pe, 4
+nym.pt, 4
+nym.sk, 4
+nym.su, 4
+nym.sx, 4
+nym.tw, 4
 nyny.museum, 0
 nysa.pl, 0
 nyuzen.toyama.jp, 0
@@ -5303,6 +5427,7 @@
 ontario.museum, 0
 onthewifi.com, 4
 onyourside, 0
+ooguy.com, 4
 ookuwa.nagano.jp, 0
 ooo, 0
 ooshika.nagano.jp, 0
@@ -5477,7 +5602,6 @@
 org.zm, 0
 org.zw, 0
 organic, 0
-orientexpress, 0
 origins, 0
 oristano.it, 0
 orkanger.no, 0
@@ -5556,6 +5680,7 @@
 p.bg, 0
 p.se, 0
 pa, 0
+pa.gov.br, 0
 pa.gov.pl, 0
 pa.it, 0
 pa.leg.br, 4
@@ -5596,6 +5721,7 @@
 pavia.it, 0
 pay, 0
 pb.ao, 0
+pb.gov.br, 0
 pb.leg.br, 4
 pc.it, 0
 pc.pl, 0
@@ -5603,6 +5729,7 @@
 pd.it, 0
 pe, 0
 pe.ca, 0
+pe.gov.br, 0
 pe.it, 0
 pe.kr, 0
 pe.leg.br, 4
@@ -5641,6 +5768,7 @@
 photography.museum, 0
 photos, 0
 physio, 0
+pi.gov.br, 0
 pi.it, 0
 pi.leg.br, 4
 piacenza.it, 0
@@ -5675,6 +5803,7 @@
 planetarium.museum, 0
 plantation.museum, 0
 plants.museum, 0
+platformsh.site, 6
 play, 0
 playstation, 0
 plaza.museum, 0
@@ -5691,6 +5820,7 @@
 pnc, 0
 po.gov.pl, 0
 po.it, 0
+poa.br, 0
 podhale.pl, 0
 podlasie.pl, 0
 podzone.net, 4
@@ -5730,6 +5860,7 @@
 pp.ua, 4
 ppg.br, 0
 pr, 0
+pr.gov.br, 0
 pr.it, 0
 pr.leg.br, 4
 pr.us, 0
@@ -5833,6 +5964,7 @@
 quebec.museum, 0
 quest, 0
 quicksytes.com, 4
+quipelements.com, 6
 qvc, 0
 r.bg, 0
 r.cdn77.net, 4
@@ -5881,6 +6013,7 @@
 rec.ro, 0
 rec.ve, 0
 recht.pro, 0
+recife.br, 0
 recipes, 0
 recreation.aero, 0
 red, 0
@@ -5951,10 +6084,12 @@
 rissa.no, 0
 ritto.shiga.jp, 0
 rivne.ua, 0
+rj.gov.br, 0
 rj.leg.br, 4
 rl.no, 0
 rm.it, 0
 rmit, 0
+rn.gov.br, 0
 rn.it, 0
 rn.leg.br, 4
 rnrt.tn, 0
@@ -5962,6 +6097,7 @@
 rnu.tn, 0
 ro, 0
 ro.eu.org, 4
+ro.gov.br, 0
 ro.im, 4
 ro.it, 0
 ro.leg.br, 4
@@ -5989,8 +6125,10 @@
 rovno.ua, 0
 royken.no, 0
 royrvik.no, 0
+rr.gov.br, 0
 rr.leg.br, 4
 rs, 0
+rs.gov.br, 0
 rs.leg.br, 4
 rsc.cdn77.org, 4
 rsvp, 0
@@ -6189,6 +6327,7 @@
 sbs, 0
 sc, 0
 sc.cn, 0
+sc.gov.br, 0
 sc.kr, 0
 sc.leg.br, 4
 sc.tz, 0
@@ -6246,6 +6385,7 @@
 se, 0
 se.com, 4
 se.eu.org, 4
+se.gov.br, 0
 se.leg.br, 4
 se.net, 4
 seaport.museum, 0
@@ -6285,6 +6425,7 @@
 sendai.jp, 2
 sener, 0
 sennan.osaka.jp, 0
+sensiosite.cloud, 6
 seoul.kr, 0
 sera.hiroshima.jp, 0
 seranishi.hiroshima.jp, 0
@@ -6565,6 +6706,7 @@
 southwest.museum, 0
 sowa.ibaraki.jp, 0
 soy, 0
+sp.gov.br, 0
 sp.it, 0
 sp.leg.br, 4
 space, 0
@@ -6584,6 +6726,9 @@
 spy.museum, 0
 spydeberg.no, 0
 square.museum, 0
+square7.ch, 4
+square7.de, 4
+square7.net, 4
 sr, 0
 sr.gov.pl, 0
 sr.it, 0
@@ -6597,6 +6742,7 @@
 stackspace.space, 4
 stada, 0
 stadt.museum, 0
+stage.nodeart.io, 4
 stalbans.museum, 0
 stalowa-wola.pl, 0
 stange.no, 0
@@ -6703,6 +6849,7 @@
 sveio.no, 0
 svelvik.no, 0
 svizzera.museum, 0
+svn-repos.de, 4
 swatch, 0
 sweden.museum, 0
 sweetpepper.org, 4
@@ -6861,6 +7008,7 @@
 telekommunikation.museum, 0
 television.museum, 0
 temasek, 0
+temp-dns.com, 4
 tempio-olbia.it, 0
 tempioolbia.it, 0
 tendo.yamagata.jp, 0
@@ -6887,6 +7035,7 @@
 theater, 0
 theater.museum, 0
 theatre, 0
+theworkpc.com, 4
 thruhere.net, 4
 tiaa, 0
 tickets, 0
@@ -6927,6 +7076,7 @@
 tn.it, 0
 tn.us, 0
 to, 0
+to.gov.br, 0
 to.it, 0
 to.leg.br, 4
 toba.mie.jp, 0
@@ -7042,6 +7192,7 @@
 trading, 0
 trading.aero, 0
 traeumtgerade.de, 4
+trafficplex.cloud, 4
 trainer.aero, 0
 training, 0
 trana.no, 0
@@ -7161,6 +7312,9 @@
 tvs, 0
 tw, 0
 tw.cn, 0
+twmail.cc, 4
+twmail.net, 4
+twmail.org, 4
 tx.us, 0
 tychy.pl, 0
 tydal.no, 0
@@ -7240,6 +7394,7 @@
 urbinopesaro.it, 0
 ureshino.mie.jp, 0
 uri.arpa, 0
+url.tw, 4
 urn.arpa, 0
 uruma.okinawa.jp, 0
 uryu.hokkaido.jp, 0
@@ -7247,6 +7402,7 @@
 us-1.evennode.com, 4
 us-2.evennode.com, 4
 us-3.evennode.com, 4
+us-4.evennode.com, 4
 us-east-1.amazonaws.com, 4
 us.com, 4
 us.eu.org, 4
@@ -7320,6 +7476,8 @@
 vantaa.museum, 0
 vanylven.no, 0
 vao.it, 0
+vapor.cloud, 4
+vaporcloud.io, 4
 vardo.no, 0
 varese.it, 0
 varggat.no, 0
@@ -7398,6 +7556,7 @@
 viterbo.it, 0
 viva, 0
 vivo, 0
+vix.br, 0
 vlaanderen, 0
 vlaanderen.museum, 0
 vladikavkaz.ru, 4
@@ -7469,6 +7628,7 @@
 watches, 0
 waw.pl, 0
 wazuka.kyoto.jp, 0
+we.bs, 4
 weather, 0
 weatherchannel, 0
 web.co, 0
@@ -7489,9 +7649,13 @@
 webhop.me, 4
 webhop.net, 4
 webhop.org, 4
+webredirect.org, 4
 website, 0
+webspace.rocks, 4
 wed, 0
 wedding, 0
+wedeploy.io, 4
+wedeploy.me, 4
 wegrow.pl, 0
 weibo, 0
 weir, 0
@@ -7540,6 +7704,7 @@
 world, 0
 worse-than.tv, 4
 wow, 0
+wpdevcloud.com, 4
 writesthisblog.com, 4
 wroc.pl, 4
 wroclaw.pl, 0
@@ -7567,20 +7732,26 @@
 xj.cn, 0
 xn--0trq7p7nn.jp, 0
 xn--11b4c3d, 0
+xn--12c1fe0br.xn--o3cw4h, 0
+xn--12cfi8ixb8l.xn--o3cw4h, 0
+xn--12co0c3b4eva.xn--o3cw4h, 0
 xn--1ck2e1b, 0
 xn--1ctwo.jp, 0
 xn--1lqs03n.jp, 0
 xn--1lqs71d.jp, 0
 xn--1qqw23a, 0
 xn--2m4a15e.jp, 0
+xn--2scrj9c, 0
 xn--30rr7y, 0
 xn--32vp30h.jp, 0
 xn--3bst00m, 0
 xn--3ds443g, 0
 xn--3e0b707e, 0
+xn--3hcrj9c, 0
 xn--3oq18vl8pn36a, 0
 xn--3pxu8k, 0
 xn--42c2d9a, 0
+xn--45br5cyl, 0
 xn--45brj9c, 0
 xn--45q11c, 0
 xn--4gbrim, 0
@@ -7612,6 +7783,7 @@
 xn--8pvr4u.jp, 0
 xn--8y0a063a, 0
 xn--90a3ac, 0
+xn--90ae, 0
 xn--90ais, 0
 xn--90azh.xn--90a3ac, 0
 xn--9dbhblg6di.museum, 0
@@ -7707,7 +7879,10 @@
 xn--gmqw5a.hk, 0
 xn--h-2fa.no, 0
 xn--h1aegh.museum, 0
+xn--h2breg3eve, 0
 xn--h2brj9c, 0
+xn--h2brj9c8c, 0
+xn--h3cuzk1di.xn--o3cw4h, 0
 xn--hbmer-xqa.no, 0
 xn--hcesuolo-7ya35b.no, 0
 xn--hery-ira.nordland.no, 0
@@ -7777,6 +7952,7 @@
 xn--lt-liac.no, 0
 xn--lten-gra.no, 0
 xn--lury-ira.no, 0
+xn--m3ch0j3a.xn--o3cw4h, 0
 xn--mely-ira.no, 0
 xn--merker-kua.no, 0
 xn--mgb2ddes, 0
@@ -7799,6 +7975,7 @@
 xn--mgbca7dzdo, 0
 xn--mgberp4a5d4a87g, 0
 xn--mgberp4a5d4ar, 0
+xn--mgbgu82a, 0
 xn--mgbi4ecexp, 0
 xn--mgbpl2fh, 0
 xn--mgbqly7c0a67fbc, 0
@@ -7843,6 +8020,7 @@
 xn--o1ac.xn--90a3ac, 0
 xn--o1ach.xn--90a3ac, 0
 xn--o3cw4h, 0
+xn--o3cyx2a.xn--o3cw4h, 0
 xn--od0alg.cn, 0
 xn--od0alg.hk, 0
 xn--od0aq3b.hk, 0
@@ -7883,6 +8061,7 @@
 xn--rskog-uua.no, 0
 xn--rst-0na.no, 0
 xn--rsta-fra.no, 0
+xn--rvc1e0am3e, 0
 xn--ryken-vua.no, 0
 xn--ryrvik-bya.no, 0
 xn--s-1fa.no, 0
diff --git a/src/url/gurl_unittest.cc b/src/url/gurl_unittest.cc
index a3b43d6..bf5a004 100644
--- a/src/url/gurl_unittest.cc
+++ b/src/url/gurl_unittest.cc
@@ -645,12 +645,26 @@
   // Constructor.
   GURL url_1(" \t ht\ntp://\twww.goo\rgle.com/as\ndf \n ");
   EXPECT_EQ("http://www.google.com/asdf", url_1.spec());
-  EXPECT_TRUE(url_1.parsed_for_possibly_invalid_spec().whitespace_removed);
+  EXPECT_FALSE(
+      url_1.parsed_for_possibly_invalid_spec().potentially_dangling_markup);
 
   // Relative path resolver.
   GURL url_2 = url_1.Resolve(" \n /fo\to\r ");
   EXPECT_EQ("http://www.google.com/foo", url_2.spec());
-  EXPECT_TRUE(url_2.parsed_for_possibly_invalid_spec().whitespace_removed);
+  EXPECT_FALSE(
+      url_2.parsed_for_possibly_invalid_spec().potentially_dangling_markup);
+
+  // Constructor.
+  GURL url_3(" \t ht\ntp://\twww.goo\rgle.com/as\ndf< \n ");
+  EXPECT_EQ("http://www.google.com/asdf%3C", url_3.spec());
+  EXPECT_TRUE(
+      url_3.parsed_for_possibly_invalid_spec().potentially_dangling_markup);
+
+  // Relative path resolver.
+  GURL url_4 = url_1.Resolve(" \n /fo\to<\r ");
+  EXPECT_EQ("http://www.google.com/foo%3C", url_4.spec());
+  EXPECT_TRUE(
+      url_4.parsed_for_possibly_invalid_spec().potentially_dangling_markup);
 
   // Note that newlines are NOT stripped from ReplaceComponents.
 }
diff --git a/src/url/origin.cc b/src/url/origin.cc
index 1b0a9a6..2bf959c 100644
--- a/src/url/origin.cc
+++ b/src/url/origin.cc
@@ -106,8 +106,10 @@
 Origin Origin::UnsafelyCreateOriginWithoutNormalization(
     base::StringPiece scheme,
     base::StringPiece host,
-    uint16_t port) {
-  return Origin(scheme, host, port, "", SchemeHostPort::CHECK_CANONICALIZATION);
+    uint16_t port,
+    base::StringPiece suborigin) {
+  return Origin(scheme, host, port, suborigin,
+                SchemeHostPort::CHECK_CANONICALIZATION);
 }
 
 Origin Origin::CreateFromNormalizedTupleWithSuborigin(
@@ -172,7 +174,8 @@
 }
 
 bool Origin::operator<(const Origin& other) const {
-  return tuple_ < other.tuple_;
+  return tuple_ < other.tuple_ ||
+         (tuple_.Equals(other.tuple_) && suborigin_ < other.suborigin_);
 }
 
 std::ostream& operator<<(std::ostream& out, const url::Origin& origin) {
diff --git a/src/url/origin.h b/src/url/origin.h
index 4b838e4..9e6b492 100644
--- a/src/url/origin.h
+++ b/src/url/origin.h
@@ -89,9 +89,9 @@
   // 3. 'file' URLs all parse as ("file", "", 0).
   explicit Origin(const GURL& url);
 
-  // Creates an Origin from a |scheme|, |host|, and |port|. All the parameters
-  // must be valid and canonicalized. Do not use this method to create unique
-  // origins. Use Origin() for that.
+  // Creates an Origin from a |scheme|, |host|, |port| and |suborigin|. All the
+  // parameters must be valid and canonicalized. Do not use this method to
+  // create unique origins. Use Origin() for that.
   //
   // This constructor should be used in order to pass 'Origin' objects back and
   // forth over IPC (as transitioning through GURL would risk potentially
@@ -100,7 +100,8 @@
   static Origin UnsafelyCreateOriginWithoutNormalization(
       base::StringPiece scheme,
       base::StringPiece host,
-      uint16_t port);
+      uint16_t port,
+      base::StringPiece suborigin);
 
   // Creates an origin without sanity checking that the host is canonicalized.
   // This should only be used when converting between already normalized types,
diff --git a/src/url/origin_unittest.cc b/src/url/origin_unittest.cc
index d09030a..502ef98 100644
--- a/src/url/origin_unittest.cc
+++ b/src/url/origin_unittest.cc
@@ -363,7 +363,7 @@
     SCOPED_TRACE(testing::Message() << test.scheme << "://" << test.host << ":"
                                     << test.port);
     url::Origin origin = url::Origin::UnsafelyCreateOriginWithoutNormalization(
-        test.scheme, test.host, test.port);
+        test.scheme, test.host, test.port, "");
     EXPECT_EQ(test.scheme, origin.scheme());
     EXPECT_EQ(test.host, origin.host());
     EXPECT_EQ(test.port, origin.port());
@@ -400,7 +400,7 @@
     SCOPED_TRACE(testing::Message() << test.scheme << "://" << test.host << ":"
                                     << test.port);
     url::Origin origin = url::Origin::UnsafelyCreateOriginWithoutNormalization(
-        test.scheme, test.host, test.port);
+        test.scheme, test.host, test.port, "");
     EXPECT_EQ("", origin.scheme());
     EXPECT_EQ("", origin.host());
     EXPECT_EQ(0, origin.port());
@@ -430,7 +430,7 @@
                                     << test.port);
     url::Origin origin = url::Origin::UnsafelyCreateOriginWithoutNormalization(
         std::string(test.scheme, test.scheme_length),
-        std::string(test.host, test.host_length), test.port);
+        std::string(test.host, test.host_length), test.port, "");
     EXPECT_EQ("", origin.scheme());
     EXPECT_EQ("", origin.host());
     EXPECT_EQ(0, origin.port());
diff --git a/src/url/third_party/mozilla/url_parse.cc b/src/url/third_party/mozilla/url_parse.cc
index 4cba88c..d77fb5f 100644
--- a/src/url/third_party/mozilla/url_parse.cc
+++ b/src/url/third_party/mozilla/url_parse.cc
@@ -692,7 +692,7 @@
 
 }  // namespace
 
-Parsed::Parsed() : whitespace_removed(false), inner_parsed_(NULL) {}
+Parsed::Parsed() : potentially_dangling_markup(false), inner_parsed_(NULL) {}
 
 Parsed::Parsed(const Parsed& other)
     : scheme(other.scheme),
@@ -703,7 +703,7 @@
       path(other.path),
       query(other.query),
       ref(other.ref),
-      whitespace_removed(other.whitespace_removed),
+      potentially_dangling_markup(other.potentially_dangling_markup),
       inner_parsed_(NULL) {
   if (other.inner_parsed_)
     set_inner_parsed(*other.inner_parsed_);
@@ -719,7 +719,7 @@
     path = other.path;
     query = other.query;
     ref = other.ref;
-    whitespace_removed = other.whitespace_removed;
+    potentially_dangling_markup = other.potentially_dangling_markup;
     if (other.inner_parsed_)
       set_inner_parsed(*other.inner_parsed_);
     else
diff --git a/src/url/third_party/mozilla/url_parse.h b/src/url/third_party/mozilla/url_parse.h
index 968578b..6d40d3f 100644
--- a/src/url/third_party/mozilla/url_parse.h
+++ b/src/url/third_party/mozilla/url_parse.h
@@ -177,8 +177,12 @@
   // the string with the scheme stripped off.
   Component GetContent() const;
 
-  // True if whitespace was removed from the URL during parsing.
-  bool whitespace_removed;
+  // True if the URL's source contained a raw `<` character, and whitespace was
+  // removed from the URL during parsing
+  //
+  // TODO(mkwst): Link this to something in a spec if
+  // https://github.com/whatwg/url/pull/284 lands.
+  bool potentially_dangling_markup;
 
   // This is used for nested URL types, currently only filesystem.  If you
   // parse a filesystem URL, the resulting Parsed will have a nested
diff --git a/src/url/url_canon.h b/src/url/url_canon.h
index d093f35..887150b 100644
--- a/src/url/url_canon.h
+++ b/src/url/url_canon.h
@@ -231,14 +231,21 @@
 //
 // Therefore, callers should not use the buffer, since it may actually be empty,
 // use the computed pointer and |*output_len| instead.
-URL_EXPORT const char* RemoveURLWhitespace(const char* input, int input_len,
+//
+// If |input| contained both removable whitespace and a raw `<` character,
+// |potentially_dangling_markup| will be set to `true`. Otherwise, it will be
+// left untouched.
+URL_EXPORT const char* RemoveURLWhitespace(const char* input,
+                                           int input_len,
                                            CanonOutputT<char>* buffer,
-                                           int* output_len);
+                                           int* output_len,
+                                           bool* potentially_dangling_markup);
 URL_EXPORT const base::char16* RemoveURLWhitespace(
     const base::char16* input,
     int input_len,
     CanonOutputT<base::char16>* buffer,
-    int* output_len);
+    int* output_len,
+    bool* potentially_dangling_markup);
 
 // IDN ------------------------------------------------------------------------
 
diff --git a/src/url/url_canon_etc.cc b/src/url/url_canon_etc.cc
index 9dd40da..31e9fb5 100644
--- a/src/url/url_canon_etc.cc
+++ b/src/url/url_canon_etc.cc
@@ -22,10 +22,12 @@
 // Backend for RemoveURLWhitespace (see declaration in url_canon.h).
 // It sucks that we have to do this, since this takes about 13% of the total URL
 // canonicalization time.
-template<typename CHAR>
-const CHAR* DoRemoveURLWhitespace(const CHAR* input, int input_len,
+template <typename CHAR>
+const CHAR* DoRemoveURLWhitespace(const CHAR* input,
+                                  int input_len,
                                   CanonOutputT<CHAR>* buffer,
-                                  int* output_len) {
+                                  int* output_len,
+                                  bool* potentially_dangling_markup) {
   // Fast verification that there's nothing that needs removal. This is the 99%
   // case, so we want it to be fast and don't care about impacting the speed
   // when we do find whitespace.
@@ -46,8 +48,11 @@
 
   // Remove the whitespace into the new buffer and return it.
   for (int i = 0; i < input_len; i++) {
-    if (!IsRemovableURLWhitespace(input[i]))
+    if (!IsRemovableURLWhitespace(input[i])) {
+      if (potentially_dangling_markup && input[i] == 0x3C)
+        *potentially_dangling_markup = true;
       buffer->push_back(input[i]);
+    }
   }
   *output_len = buffer->length();
   return buffer->data();
@@ -274,17 +279,22 @@
 
 }  // namespace
 
-const char* RemoveURLWhitespace(const char* input, int input_len,
+const char* RemoveURLWhitespace(const char* input,
+                                int input_len,
                                 CanonOutputT<char>* buffer,
-                                int* output_len) {
-  return DoRemoveURLWhitespace(input, input_len, buffer, output_len);
+                                int* output_len,
+                                bool* potentially_dangling_markup) {
+  return DoRemoveURLWhitespace(input, input_len, buffer, output_len,
+                               potentially_dangling_markup);
 }
 
 const base::char16* RemoveURLWhitespace(const base::char16* input,
                                         int input_len,
                                         CanonOutputT<base::char16>* buffer,
-                                        int* output_len) {
-  return DoRemoveURLWhitespace(input, input_len, buffer, output_len);
+                                        int* output_len,
+                                        bool* potentially_dangling_markup) {
+  return DoRemoveURLWhitespace(input, input_len, buffer, output_len,
+                               potentially_dangling_markup);
 }
 
 char CanonicalSchemeChar(base::char16 ch) {
diff --git a/src/url/url_canon_relative.cc b/src/url/url_canon_relative.cc
index 851368d..659aca7 100644
--- a/src/url/url_canon_relative.cc
+++ b/src/url/url_canon_relative.cc
@@ -441,8 +441,13 @@
                           CharsetConverter* query_converter,
                           CanonOutput* output,
                           Parsed* out_parsed) {
-  // Starting point for our output parsed. We'll fix what we change.
+  // |base_parsed| is the starting point for our output. Since we may have
+  // removed whitespace from |relative_url| before entering this method, we'll
+  // carry over the |potentially_dangling_markup| flag.
+  bool potentially_dangling_markup = out_parsed->potentially_dangling_markup;
   *out_parsed = base_parsed;
+  if (potentially_dangling_markup)
+    out_parsed->potentially_dangling_markup = true;
 
   // Sanity check: the input should have a host or we'll break badly below.
   // We can only resolve relative URLs with base URLs that have hosts and
diff --git a/src/url/url_util.cc b/src/url/url_util.cc
index 0fe9983..a390a9d 100644
--- a/src/url/url_util.cc
+++ b/src/url/url_util.cc
@@ -187,8 +187,8 @@
   // This matches the canonicalization done in DoCanonicalize function.
   RawCanonOutputT<CHAR> whitespace_buffer;
   int spec_len;
-  const CHAR* spec = RemoveURLWhitespace(str, str_len,
-                                         &whitespace_buffer, &spec_len);
+  const CHAR* spec =
+      RemoveURLWhitespace(str, str_len, &whitespace_buffer, &spec_len, nullptr);
 
   Component our_scheme;
   if (!ExtractScheme(spec, spec_len, &our_scheme)) {
@@ -216,11 +216,8 @@
   // Possibly this will result in copying to the new buffer.
   RawCanonOutputT<CHAR> whitespace_buffer;
   if (whitespace_policy == REMOVE_WHITESPACE) {
-    int original_len = spec_len;
-    spec =
-        RemoveURLWhitespace(spec, original_len, &whitespace_buffer, &spec_len);
-    if (spec_len != original_len)
-      output_parsed->whitespace_removed = true;
+    spec = RemoveURLWhitespace(spec, spec_len, &whitespace_buffer, &spec_len,
+                               &output_parsed->potentially_dangling_markup);
   }
 
   Parsed parsed_input;
@@ -298,11 +295,9 @@
   // copying to the new buffer.
   RawCanonOutputT<CHAR> whitespace_buffer;
   int relative_length;
-  const CHAR* relative = RemoveURLWhitespace(in_relative, in_relative_length,
-                                             &whitespace_buffer,
-                                             &relative_length);
-  if (in_relative_length != relative_length)
-    output_parsed->whitespace_removed = true;
+  const CHAR* relative = RemoveURLWhitespace(
+      in_relative, in_relative_length, &whitespace_buffer, &relative_length,
+      &output_parsed->potentially_dangling_markup);
 
   bool base_is_authority_based = false;
   bool base_is_hierarchical = false;
diff --git a/src/url/url_util_unittest.cc b/src/url/url_util_unittest.cc
index 6d7c8f7..40e4c9f 100644
--- a/src/url/url_util_unittest.cc
+++ b/src/url/url_util_unittest.cc
@@ -374,6 +374,54 @@
   EXPECT_FALSE(resolved_parsed.ref.is_valid());
 }
 
+TEST(URLUtilTest, PotentiallyDanglingMarkup) {
+  struct ResolveRelativeCase {
+    const char* base;
+    const char* rel;
+    bool potentially_dangling_markup;
+    const char* out;
+  } cases[] = {
+      {"https://example.com/", "/path<", false, "https://example.com/path%3C"},
+      {"https://example.com/", "\n/path<", true, "https://example.com/path%3C"},
+      {"https://example.com/", "\r/path<", true, "https://example.com/path%3C"},
+      {"https://example.com/", "\t/path<", true, "https://example.com/path%3C"},
+      {"https://example.com/", "/pa\nth<", true, "https://example.com/path%3C"},
+      {"https://example.com/", "/pa\rth<", true, "https://example.com/path%3C"},
+      {"https://example.com/", "/pa\tth<", true, "https://example.com/path%3C"},
+      {"https://example.com/", "/path\n<", true, "https://example.com/path%3C"},
+      {"https://example.com/", "/path\r<", true, "https://example.com/path%3C"},
+      {"https://example.com/", "/path\r<", true, "https://example.com/path%3C"},
+      {"https://example.com/", "\n/<path", true, "https://example.com/%3Cpath"},
+      {"https://example.com/", "\r/<path", true, "https://example.com/%3Cpath"},
+      {"https://example.com/", "\t/<path", true, "https://example.com/%3Cpath"},
+      {"https://example.com/", "/<pa\nth", true, "https://example.com/%3Cpath"},
+      {"https://example.com/", "/<pa\rth", true, "https://example.com/%3Cpath"},
+      {"https://example.com/", "/<pa\tth", true, "https://example.com/%3Cpath"},
+      {"https://example.com/", "/<path\n", true, "https://example.com/%3Cpath"},
+      {"https://example.com/", "/<path\r", true, "https://example.com/%3Cpath"},
+      {"https://example.com/", "/<path\r", true, "https://example.com/%3Cpath"},
+  };
+
+  for (const auto& test : cases) {
+    SCOPED_TRACE(::testing::Message() << test.base << ", " << test.rel);
+    Parsed base_parsed;
+    ParseStandardURL(test.base, strlen(test.base), &base_parsed);
+
+    std::string resolved;
+    StdStringCanonOutput output(&resolved);
+    Parsed resolved_parsed;
+    bool valid =
+        ResolveRelative(test.base, strlen(test.base), base_parsed, test.rel,
+                        strlen(test.rel), NULL, &output, &resolved_parsed);
+    ASSERT_TRUE(valid);
+    output.Complete();
+
+    EXPECT_EQ(test.potentially_dangling_markup,
+              resolved_parsed.potentially_dangling_markup);
+    EXPECT_EQ(test.out, resolved);
+  }
+}
+
 TEST(URLUtilTest, TestDomainIs) {
   const struct {
     const char* canonicalized_host;
