Set NTP custom background

When the user selects a background image actually update the
page background. The choice of background is stored in Preferences.
A new preference is added for this purpose: kNTPCustomBackgroundURL.
This is exposed to the NTP javascript through ThemeBackgroundInfo.
Add a NewTabPageBinding to update these preferences when an
image is selected by propagating the change to the InstantService
where the browser profile is available. The InstantService then
notifies all New Tab Pages of the change.

Bug: 839152
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: Ib6f74f1f3e9dda6a3352833662db373ec1358769
Reviewed-on: https://chromium-review.googlesource.com/1081651
Commit-Queue: Kyle Milka <[email protected]>
Reviewed-by: Emily Stark <[email protected]>
Reviewed-by: Bernhard Bauer <[email protected]>
Reviewed-by: Marc Treib <[email protected]>
Cr-Commit-Position: refs/heads/master@{#565320}
diff --git a/chrome/browser/search/local_ntp_source.h b/chrome/browser/search/local_ntp_source.h
index 746d6f11..d2868de 100644
--- a/chrome/browser/search/local_ntp_source.h
+++ b/chrome/browser/search/local_ntp_source.h
@@ -17,6 +17,7 @@
 #include "build/build_config.h"
 #include "chrome/browser/search/background/ntp_background_service_observer.h"
 #include "chrome/browser/search/one_google_bar/one_google_bar_service_observer.h"
+#include "components/prefs/pref_registry_simple.h"
 #include "content/public/browser/url_data_source.h"
 
 #if defined(OS_ANDROID)