Add validation for homepage URL from partners

The homepage URL from partners must be HTTP or HTTPS, and not too long
(max 1000 chars).

This CL also fixes an issue that notifyHomepageUpdated() is called
unnecessarily when homepage is null or an empty string. That should
be extremely rate, given the customization ContentProvider package
is well tested by partners.

A Robolectric test is added for UrlUtilities for the non-native part.

Bug: 778805
Change-Id: I4dbe9323d24328f2a41ff1b3cd01b2b7fa33ad50
Reviewed-on: https://chromium-review.googlesource.com/750364
Commit-Queue: Wei-Yin Chen (陳威尹) <[email protected]>
Reviewed-by: Ted Choc <[email protected]>
Reviewed-by: Bernhard Bauer <[email protected]>
Cr-Commit-Position: refs/heads/master@{#513719}
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
index ce71947f827..4dcd6e8 100644
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -1923,6 +1923,7 @@
   "junit/src/org/chromium/chrome/browser/survey/ChromeHomeSurveyControllerTest.java",
   "junit/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreUnitTest.java",
   "junit/src/org/chromium/chrome/browser/tabstate/TabStateUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java",
   "junit/src/org/chromium/chrome/browser/webapps/MockWebappDataStorageClockRule.java",
   "junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java",
   "junit/src/org/chromium/chrome/browser/webapps/WebappDirectoryManagerTest.java",