NUX Google Apps - Initial WebUI
Add WebUI at chrome://welcome/apps.
WebUI is only shown when NuxGoogleApps feature is enabled.
Bug: 832938
Cq-Include-Trybots: luci.chromium.try:closure_compilation
Change-Id: I46721ac4474a4335d9c0dfdb977e09622ae0ac1c
Reviewed-on: https://chromium-review.googlesource.com/1066503
Commit-Queue: Hector Carmona <[email protected]>
Reviewed-by: Jochen Eisinger <[email protected]>
Reviewed-by: Steven Bennetts <[email protected]>
Reviewed-by: Demetrios Papadopoulos <[email protected]>
Cr-Commit-Position: refs/heads/master@{#569424}
diff --git a/components/components_strings.grd b/components/components_strings.grd
index 4ee9c7b..96710cf 100644
--- a/components/components_strings.grd
+++ b/components/components_strings.grd
@@ -197,6 +197,7 @@
<part file="history_strings.grdp" />
<part file="login_dialog_strings.grdp" />
<part file="new_or_sad_tab_strings.grdp" />
+ <part file="nux_google_apps_strings.grdp" />
<part file="ntp_snippets_strings.grdp" />
<part file="omnibox_strings.grdp" />
<part file="page_info_strings.grdp" />
diff --git a/components/nux_google_apps/BUILD.gn b/components/nux_google_apps/BUILD.gn
new file mode 100644
index 0000000..20286ee
--- /dev/null
+++ b/components/nux_google_apps/BUILD.gn
@@ -0,0 +1,39 @@
+# Copyright 2018 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.
+
+import("//build/buildflag_header.gni")
+import("//components/nux_google_apps/features.gni")
+
+# Always required.
+buildflag_header("buildflags") {
+ header = "buildflags.h"
+ flags = [ "ENABLE_NUX_GOOGLE_APPS=$enable_nux_google_apps" ]
+}
+
+if (enable_nux_google_apps) {
+ static_library("nux_google_apps_feature") {
+ sources = [
+ "constants.cc",
+ "constants.h",
+ "webui.cc",
+ "webui.h",
+ ]
+
+ public_deps = [
+ "//base",
+ "//net",
+ "//url",
+ ]
+
+ deps = [
+ "//components/pref_registry",
+ "//components/prefs",
+ "//components/resources",
+ "//components/strings",
+ "//components/variations",
+ "//content/public/browser",
+ "//ui/base",
+ ]
+ }
+}
diff --git a/components/nux_google_apps/DEPS b/components/nux_google_apps/DEPS
new file mode 100644
index 0000000..1a6893c
--- /dev/null
+++ b/components/nux_google_apps/DEPS
@@ -0,0 +1,5 @@
+include_rules = [
+ "+components/grit",
+ "+components/strings/grit/components_strings.h",
+ "+content/public/browser",
+]
diff --git a/components/nux_google_apps/OWNERS b/components/nux_google_apps/OWNERS
new file mode 100644
index 0000000..08ee1a9
--- /dev/null
+++ b/components/nux_google_apps/OWNERS
@@ -0,0 +1 @@
[email protected]
diff --git a/components/nux_google_apps/README b/components/nux_google_apps/README
new file mode 100644
index 0000000..4218a87
--- /dev/null
+++ b/components/nux_google_apps/README
@@ -0,0 +1,5 @@
+New User Experience Experiment (NUX). Code here will enable new users to
+bookmark popular Google Apps as part of the first run steps.
+
+Feature is initially Windows Only. After collecting stats, we will determine
+how useful it is for users, this data will help decide next steps for component.
diff --git a/components/nux_google_apps/constants.cc b/components/nux_google_apps/constants.cc
new file mode 100644
index 0000000..92d842b
--- /dev/null
+++ b/components/nux_google_apps/constants.cc
@@ -0,0 +1,14 @@
+// Copyright 2018 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.
+
+#include "components/nux_google_apps/constants.h"
+
+#include "base/feature_list.h"
+
+namespace nux_google_apps {
+
+extern const base::Feature kNuxGoogleAppsFeature{
+ "NuxGoogleApps", base::FEATURE_DISABLED_BY_DEFAULT};
+
+} // namespace nux_google_apps
diff --git a/components/nux_google_apps/constants.h b/components/nux_google_apps/constants.h
new file mode 100644
index 0000000..b4a683b
--- /dev/null
+++ b/components/nux_google_apps/constants.h
@@ -0,0 +1,18 @@
+// Copyright 2018 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.
+
+#ifndef COMPONENTS_NUX_GOOGLE_APPS_CONSTANTS_H_
+#define COMPONENTS_NUX_GOOGLE_APPS_CONSTANTS_H_
+
+namespace base {
+struct Feature;
+} // namespace base
+
+namespace nux_google_apps {
+
+extern const base::Feature kNuxGoogleAppsFeature;
+
+} // namespace nux_google_apps
+
+#endif // COMPONENTS_NUX_GOOGLE_APPS_CONSTANTS_H_
diff --git a/components/nux_google_apps/features.gni b/components/nux_google_apps/features.gni
new file mode 100644
index 0000000..6896e1e
--- /dev/null
+++ b/components/nux_google_apps/features.gni
@@ -0,0 +1,10 @@
+# Copyright 2018 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.
+
+import("//build/config/features.gni")
+
+declare_args() {
+ # Only supported on windows.
+ enable_nux_google_apps = is_win
+}
diff --git a/components/nux_google_apps/resources/BUILD.gn b/components/nux_google_apps/resources/BUILD.gn
new file mode 100644
index 0000000..aa232167
--- /dev/null
+++ b/components/nux_google_apps/resources/BUILD.gn
@@ -0,0 +1,22 @@
+# Copyright 2018 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.
+
+import("//third_party/closure_compiler/compile_js.gni")
+
+js_type_check("closure_compile") {
+ deps = [
+ ":apps_chooser",
+ ":nux_google_apps",
+ ]
+}
+
+js_library("apps_chooser") {
+ deps = []
+}
+
+js_library("nux_google_apps") {
+ deps = [
+ ":apps_chooser",
+ ]
+}
diff --git a/components/nux_google_apps/resources/apps_chooser.html b/components/nux_google_apps/resources/apps_chooser.html
new file mode 100644
index 0000000..437954a
--- /dev/null
+++ b/components/nux_google_apps/resources/apps_chooser.html
@@ -0,0 +1,103 @@
+<link rel="import" href="chrome://resources/html/polymer.html">
+
+<link rel="import" href="chrome://resources/cr_elements/icons.html">
+<link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+
+<dom-module id="apps-chooser">
+ <template>
+ <style>
+ :host {
+ display: flex;
+ flex-direction: column;
+ }
+
+ .app-icon {
+ -webkit-margin-end: 16px;
+ -webkit-margin-start: 4px;
+ }
+
+ iron-icon {
+ -webkit-margin-end: 48px;
+ }
+
+ [active] iron-icon[icon="cr:check"] {
+ --iron-icon-fill-color: var(--google-blue-600);
+ opacity: unset;
+ }
+
+ iron-icon[icon="cr:check"] {
+ opacity: 0;
+ }
+
+ .gmail {
+ content: -webkit-image-set(
+ url(chrome://welcome/apps/gmail_1x.png) 1x,
+ url(chrome://welcome/apps/gmail_2x.png) 2x);
+ }
+
+ .youtube {
+ content: -webkit-image-set(
+ url(chrome://welcome/apps/youtube_1x.png) 1x,
+ url(chrome://welcome/apps/youtube_2x.png) 2x);
+ }
+
+ .maps {
+ content: -webkit-image-set(
+ url(chrome://welcome/apps/maps_1x.png) 1x,
+ url(chrome://welcome/apps/maps_2x.png) 2x);
+ }
+
+ .translate {
+ content: -webkit-image-set(
+ url(chrome://welcome/apps/translate_1x.png) 1x,
+ url(chrome://welcome/apps/translate_2x.png) 2x);
+ }
+
+ .news {
+ content: -webkit-image-set(
+ url(chrome://welcome/apps/news_1x.png) 1x,
+ url(chrome://welcome/apps/news_2x.png) 2x);
+ }
+
+ .chrome_store {
+ content: -webkit-image-set(
+ url(chrome://welcome/apps/chrome_store_1x.png) 1x,
+ url(chrome://welcome/apps/chrome_store_2x.png) 2x);
+ }
+
+ paper-button:first-of-type {
+ border-top: unset;
+ }
+
+ paper-button {
+ border-radius: 0;
+ border-top: var(--cr-section_-_border-top);
+ display: flex;
+ margin: 0;
+ padding: 12px 0;
+ text-transform: unset;
+ }
+
+ paper-button:not([raised]).keyboard-focus {
+ outline-width: unset;
+ font-weight: unset;
+ }
+
+ .app-name {
+ flex: 1;
+ }
+ </style>
+
+ <template is="dom-repeat" items="[[appList]]">
+ <paper-button toggles noink
+ active$="[[item.selected]]" on-click="onAppClick_">
+ <div class$="[[item.icon]] app-icon"></div>
+ <div class="app-name">[[item.name]]</div>
+ <iron-icon icon="cr:check"></iron-icon>
+ </paper-button>
+ </template>
+ </template>
+ <script src="apps_chooser.js"></script>
+</dom-module>
diff --git a/components/nux_google_apps/resources/apps_chooser.js b/components/nux_google_apps/resources/apps_chooser.js
new file mode 100644
index 0000000..cac520c
--- /dev/null
+++ b/components/nux_google_apps/resources/apps_chooser.js
@@ -0,0 +1,73 @@
+// Copyright 2018 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.
+
+/**
+ * @const
+ */
+var nux_google_apps = nux_google_apps || {};
+
+/**
+ * @typedef {{
+ * item: !{
+ * name: string,
+ * icon: string,
+ * selected: boolean,
+ * },
+ * set: function(string, boolean):void
+ * }}
+ */
+nux_google_apps.AppsArrayModel;
+
+Polymer({
+ is: 'apps-chooser',
+ properties: {
+ // TODO(hcarmona): Get this list dynamically.
+ appList: {
+ type: Array,
+ value: function() {
+ return [
+ {
+ name: 'Gmail',
+ icon: 'gmail',
+ selected: true,
+ },
+ {
+ name: 'YouTube',
+ icon: 'youtube',
+ selected: true,
+ },
+ {
+ name: 'Maps',
+ icon: 'maps',
+ selected: true,
+ },
+ {
+ name: 'Translate',
+ icon: 'translate',
+ selected: true,
+ },
+ {
+ name: 'News',
+ icon: 'news',
+ selected: true,
+ },
+ {
+ name: 'Chrome Web Store',
+ icon: 'chrome_store',
+ selected: true,
+ },
+ ];
+ },
+ },
+ },
+
+ /**
+ * Handle toggling the apps selected.
+ * @param {!{model: !nux_google_apps.AppsArrayModel}} e
+ * @private
+ */
+ onAppClick_: function(e) {
+ e.model.set('item.selected', !e.model.item.selected);
+ },
+});
diff --git a/components/nux_google_apps/resources/chrome_store_24dp_1x.png b/components/nux_google_apps/resources/chrome_store_24dp_1x.png
new file mode 100644
index 0000000..9ffad9e
--- /dev/null
+++ b/components/nux_google_apps/resources/chrome_store_24dp_1x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/chrome_store_24dp_2x.png b/components/nux_google_apps/resources/chrome_store_24dp_2x.png
new file mode 100644
index 0000000..4307c07
--- /dev/null
+++ b/components/nux_google_apps/resources/chrome_store_24dp_2x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/gmail_24dp_1x.png b/components/nux_google_apps/resources/gmail_24dp_1x.png
new file mode 100644
index 0000000..220e974
--- /dev/null
+++ b/components/nux_google_apps/resources/gmail_24dp_1x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/gmail_24dp_2x.png b/components/nux_google_apps/resources/gmail_24dp_2x.png
new file mode 100644
index 0000000..2ab3dbd
--- /dev/null
+++ b/components/nux_google_apps/resources/gmail_24dp_2x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/maps_24dp_1x.png b/components/nux_google_apps/resources/maps_24dp_1x.png
new file mode 100644
index 0000000..110bff3
--- /dev/null
+++ b/components/nux_google_apps/resources/maps_24dp_1x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/maps_24dp_2x.png b/components/nux_google_apps/resources/maps_24dp_2x.png
new file mode 100644
index 0000000..041a617
--- /dev/null
+++ b/components/nux_google_apps/resources/maps_24dp_2x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/news_24dp_1x.png b/components/nux_google_apps/resources/news_24dp_1x.png
new file mode 100644
index 0000000..6842ad5
--- /dev/null
+++ b/components/nux_google_apps/resources/news_24dp_1x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/news_24dp_2x.png b/components/nux_google_apps/resources/news_24dp_2x.png
new file mode 100644
index 0000000..4c3598b2
--- /dev/null
+++ b/components/nux_google_apps/resources/news_24dp_2x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/nux_google_apps.html b/components/nux_google_apps/resources/nux_google_apps.html
new file mode 100644
index 0000000..74a77f0f
--- /dev/null
+++ b/components/nux_google_apps/resources/nux_google_apps.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>$i18n{headerText}</title>
+
+<link rel="import" href="chrome://resources/html/polymer.html">
+
+<link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+<link rel="import" href="chrome://welcome/apps/apps_chooser.html">
+
+<dom-module id="nux-google-apps">
+ <template>
+ <style include="paper-button-style">
+ body {
+ margin: 0;
+ }
+
+ .apps-ask {
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 116px;
+ max-width: 568px;
+ }
+
+ .chrome-logo {
+ content: -webkit-image-set(
+ url('chrome://welcome/logo.png') 1x,
+ url('chrome://welcome/logo2x.png') 2x);
+ height: 40px;
+ margin-bottom: 36px;
+ width: 40px;
+ }
+
+ h1 {
+ color: #202124;
+ font-size: 28px;
+ opacity: .8;
+ margin-bottom: 16px;
+ }
+
+ .description {
+ color: #5f6368;
+ font-size: 16px;
+ margin-bottom: 24px;
+ }
+
+ apps-chooser {
+ color: #202124;
+ font-size: 14px;
+ margin-bottom: 48px;
+ }
+
+ paper-button {
+ font-size: 14px;
+ }
+
+ .button-bar {
+ display: flex;
+ justify-content: space-between;
+ }
+ </style>
+
+ <div class="apps-ask">
+ <div class="chrome-logo"></div>
+ <h1>$i18n{headerText}</h1>
+ <div class="description">$i18n{nuxDescription}</div>
+
+ <apps-chooser></apps-chooser>
+
+ <div class="button-bar">
+ <paper-button>$i18n{noThanks}</paper-button>
+ <paper-button class="action-button">$i18n{getStarted}</paper-button>
+ </div>
+ </div>
+ </template>
+ <script src="apps/nux_google_apps.js"></script>
+</dom-module>
+
+<nux-google-apps></nux-google-apps>
+<link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
+
+</html>
diff --git a/components/nux_google_apps/resources/nux_google_apps.js b/components/nux_google_apps/resources/nux_google_apps.js
new file mode 100644
index 0000000..9f7a8ea
--- /dev/null
+++ b/components/nux_google_apps/resources/nux_google_apps.js
@@ -0,0 +1,7 @@
+// Copyright 2018 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.
+
+Polymer({
+ is: 'nux-google-apps',
+});
diff --git a/components/nux_google_apps/resources/translate_24dp_1x.png b/components/nux_google_apps/resources/translate_24dp_1x.png
new file mode 100644
index 0000000..023417f
--- /dev/null
+++ b/components/nux_google_apps/resources/translate_24dp_1x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/translate_24dp_2x.png b/components/nux_google_apps/resources/translate_24dp_2x.png
new file mode 100644
index 0000000..a03417c
--- /dev/null
+++ b/components/nux_google_apps/resources/translate_24dp_2x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/youtube_24dp_1x.png b/components/nux_google_apps/resources/youtube_24dp_1x.png
new file mode 100644
index 0000000..5a346af
--- /dev/null
+++ b/components/nux_google_apps/resources/youtube_24dp_1x.png
Binary files differ
diff --git a/components/nux_google_apps/resources/youtube_24dp_2x.png b/components/nux_google_apps/resources/youtube_24dp_2x.png
new file mode 100644
index 0000000..4d407117
--- /dev/null
+++ b/components/nux_google_apps/resources/youtube_24dp_2x.png
Binary files differ
diff --git a/components/nux_google_apps/webui.cc b/components/nux_google_apps/webui.cc
new file mode 100644
index 0000000..425c242
--- /dev/null
+++ b/components/nux_google_apps/webui.cc
@@ -0,0 +1,57 @@
+// Copyright 2018 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.
+
+#include "components/nux_google_apps/webui.h"
+
+#include "base/metrics/field_trial_params.h"
+#include "components/grit/components_resources.h"
+#include "components/grit/components_scaled_resources.h"
+#include "components/nux_google_apps/constants.h"
+#include "components/strings/grit/components_strings.h"
+#include "content/public/browser/web_ui_data_source.h"
+
+namespace nux_google_apps {
+
+void AddSources(content::WebUIDataSource* html_source) {
+ // Localized strings.
+ html_source->AddLocalizedString("noThanks", IDS_NO_THANKS);
+ html_source->AddLocalizedString("getStarted",
+ IDS_NUX_GOOGLE_APPS_GET_STARTED);
+ html_source->AddLocalizedString("nuxDescription",
+ IDS_NUX_GOOGLE_APPS_DESCRIPTION);
+
+ // Add required resources.
+ html_source->AddResourcePath("apps", IDR_NUX_GOOGLE_APPS_HTML);
+ html_source->AddResourcePath("apps/nux_google_apps.js",
+ IDR_NUX_GOOGLE_APPS_JS);
+
+ html_source->AddResourcePath("apps/apps_chooser.html",
+ IDR_NUX_GOOGLE_APPS_CHOOSER_HTML);
+ html_source->AddResourcePath("apps/apps_chooser.js",
+ IDR_NUX_GOOGLE_APPS_CHOOSER_JS);
+
+ // Add icons
+ html_source->AddResourcePath("apps/chrome_store_1x.png",
+ IDR_NUX_GOOGLE_APPS_CHROME_STORE_1X);
+ html_source->AddResourcePath("apps/chrome_store_2x.png",
+ IDR_NUX_GOOGLE_APPS_CHROME_STORE_2X);
+ html_source->AddResourcePath("apps/gmail_1x.png",
+ IDR_NUX_GOOGLE_APPS_GMAIL_1X);
+ html_source->AddResourcePath("apps/gmail_2x.png",
+ IDR_NUX_GOOGLE_APPS_GMAIL_2X);
+ html_source->AddResourcePath("apps/maps_1x.png", IDR_NUX_GOOGLE_APPS_MAPS_1X);
+ html_source->AddResourcePath("apps/maps_2x.png", IDR_NUX_GOOGLE_APPS_MAPS_2X);
+ html_source->AddResourcePath("apps/news_1x.png", IDR_NUX_GOOGLE_APPS_NEWS_1X);
+ html_source->AddResourcePath("apps/news_2x.png", IDR_NUX_GOOGLE_APPS_NEWS_2X);
+ html_source->AddResourcePath("apps/translate_1x.png",
+ IDR_NUX_GOOGLE_APPS_TRANSLATE_1X);
+ html_source->AddResourcePath("apps/translate_2x.png",
+ IDR_NUX_GOOGLE_APPS_TRANSLATE_2X);
+ html_source->AddResourcePath("apps/youtube_1x.png",
+ IDR_NUX_GOOGLE_APPS_YOUTUBE_1X);
+ html_source->AddResourcePath("apps/youtube_2x.png",
+ IDR_NUX_GOOGLE_APPS_YOUTUBE_2X);
+}
+
+} // namespace nux_google_apps
diff --git a/components/nux_google_apps/webui.h b/components/nux_google_apps/webui.h
new file mode 100644
index 0000000..e9c752a1
--- /dev/null
+++ b/components/nux_google_apps/webui.h
@@ -0,0 +1,17 @@
+// Copyright 2018 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.
+
+#ifndef COMPONENTS_NUX_GOOGLE_APPS_WEBUI_H_
+#define COMPONENTS_NUX_GOOGLE_APPS_WEBUI_H_
+
+#include "base/macros.h"
+#include "content/public/browser/web_ui_data_source.h"
+
+namespace nux_google_apps {
+
+void AddSources(content::WebUIDataSource* html_source);
+
+} // namespace nux_google_apps
+
+#endif // COMPONENTS_NUX_GOOGLE_APPS_WEBUI_H_
diff --git a/components/nux_google_apps_strings.grdp b/components/nux_google_apps_strings.grdp
new file mode 100644
index 0000000..a3610ce
--- /dev/null
+++ b/components/nux_google_apps_strings.grdp
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grit-part>
+ <message name="IDS_NUX_GOOGLE_APPS_GET_STARTED" desc="Message for a confirmation button that will add the selected apps from a list.">
+ Get started
+ </message>
+ <message name="IDS_NUX_GOOGLE_APPS_DESCRIPTION" desc="Description of what selecting apps and pressing 'Get started' will do.">
+ Get quick access to your favorite Google Apps
+ </message>
+</grit-part>
diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn
index b240ad23..55bf8ddf 100644
--- a/components/resources/BUILD.gn
+++ b/components/resources/BUILD.gn
@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//components/nux_google_apps/features.gni")
import("//printing/buildflags/buildflags.gni")
import("//tools/grit/grit_rule.gni")
import("//third_party/brotli/brotli.gni")
@@ -32,6 +33,7 @@
defines = [
"enable_basic_printing=$enable_basic_printing",
"enable_print_preview=$enable_print_preview",
+ "enable_nux_google_apps=$enable_nux_google_apps",
]
deps = [
diff --git a/components/resources/components_resources.grd b/components/resources/components_resources.grd
index 4623e36e..803a4ce 100644
--- a/components/resources/components_resources.grd
+++ b/components/resources/components_resources.grd
@@ -16,6 +16,9 @@
<part file="net_log_resources.grdp" />
<part file="neterror_resources.grdp" />
<part file="ntp_tiles_resources.grdp" />
+ <if expr="enable_nux_google_apps">
+ <part file="nux_google_apps.grdp" />
+ </if>
<part file="offline_pages_resources.grdp" />
<part file="password_manager_internals_resources.grdp" />
<part file="printing_resources.grdp" />
diff --git a/components/resources/nux_google_apps.grdp b/components/resources/nux_google_apps.grdp
new file mode 100644
index 0000000..0218fa6
--- /dev/null
+++ b/components/resources/nux_google_apps.grdp
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grit-part>
+ <include name="IDR_NUX_GOOGLE_APPS_HTML" file="../nux_google_apps/resources/nux_google_apps.html" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_JS" file="../nux_google_apps/resources/nux_google_apps.js" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_CHOOSER_HTML" file="../nux_google_apps/resources/apps_chooser.html" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_CHOOSER_JS" file="../nux_google_apps/resources/apps_chooser.js" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_CHROME_STORE_1X" file="../nux_google_apps/resources/chrome_store_24dp_1x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_CHROME_STORE_2X" file="../nux_google_apps/resources/chrome_store_24dp_2x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_GMAIL_1X" file="../nux_google_apps/resources/gmail_24dp_1x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_GMAIL_2X" file="../nux_google_apps/resources/gmail_24dp_2x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_MAPS_1X" file="../nux_google_apps/resources/maps_24dp_1x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_MAPS_2X" file="../nux_google_apps/resources/maps_24dp_2x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_NEWS_1X" file="../nux_google_apps/resources/news_24dp_1x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_NEWS_2X" file="../nux_google_apps/resources/news_24dp_2x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_TRANSLATE_1X" file="../nux_google_apps/resources/translate_24dp_1x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_TRANSLATE_2X" file="../nux_google_apps/resources/translate_24dp_2x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_YOUTUBE_1X" file="../nux_google_apps/resources/youtube_24dp_1x.png" type="BINDATA" />
+ <include name="IDR_NUX_GOOGLE_APPS_YOUTUBE_2X" file="../nux_google_apps/resources/youtube_24dp_2x.png" type="BINDATA" />
+</grit-part>