Split the CBD dialog into a basic and advanced tab

To simplify the Clear Browsing Data ui on desktop, we introduce a basic
section with the most frequently used options and an advanced section
showing the existing options as well as an additional "Site settings"
checkbox.

The footers are removed and their information is integrated into the
checkbox descriptions in the basic tab.

This change requires a few additions to cr_dialog to inject a tab bar
and restrict the dialog to a fixed height.
SettingsCheckbox requires an additional attribute to add html with links
to the summary.

https://screenshot.googleplex.com/TvDGxE77XUC.png
https://screenshot.googleplex.com/CvF0kx7UwSY.png

Bug: 725401
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: Ic2a84d468d9e4fd74c225d8a3668d8d1663f8da6
Reviewed-on: https://chromium-review.googlesource.com/580987
Commit-Queue: Christian Dullweber <[email protected]>
Reviewed-by: Martin Šrámek <[email protected]>
Reviewed-by: Michael Giuffrida <[email protected]>
Reviewed-by: Dave Schuyler <[email protected]>
Cr-Commit-Position: refs/heads/master@{#501574}
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index ce13c168..4dc2e22c 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -914,9 +914,24 @@
   <message name="IDS_SETTINGS_CLEAR_FOLLOWING_ITEMS_FROM" desc="Label at the top of the client area of the dialog, preceding the period combo box">
     Clear the following items from
   </message>
+  <message name="IDS_SETTINGS_CLEAR_PERIOD_TITLE" desc="Label of the dropdown that selects the time range for which browsing data will be deleted.">
+    Time range
+  </message>
   <message name="IDS_SETTINGS_CLEAR_BROWSING_HISTORY" desc="Checkbox for deleting Browsing History">
     Browsing history
   </message>
+  <message name="IDS_SETTINGS_CLEAR_COOKIES_AND_SITE_DATA_SUMMARY_BASIC" desc="A summary for the 'Cookies and site data' option in the 'Clear Browsing Data' screen, explaining that deleting cookies and site data will sign the user out of most websites.">
+    Signs you out of most sites.
+  </message>
+  <message name="IDS_SETTINGS_CLEAR_BROWSING_HISTORY_SUMMARY" desc="A subtext for the basic tab explaining browsing history.">
+    Clears history and autocompletions in the address bar.
+  </message>
+  <message name="IDS_SETTINGS_CLEAR_BROWSING_HISTORY_SUMMARY_SIGNED_IN" desc="A description explaining other forms of activity for signed in users.">
+    Clears history and autocompletions in the address bar. Your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK">&lt;a target='_blank' href='$1'&gt;</ph>myactivity.google.com<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
+  </message>
+  <message name="IDS_SETTINGS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED" desc="A description for the basic tab explaining browsing history for users with history sync.">
+    Clears history from all signed-in devices. Your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK">&lt;a target='_blank' href='$1'&gt;</ph>myactivity.google.com<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
+  </message>
   <message name="IDS_SETTINGS_CLEAR_DOWNLOAD_HISTORY" desc="Checkbox for deleting Download History">
     Download history
   </message>
@@ -935,6 +950,9 @@
   <message name="IDS_SETTINGS_CLEAR_FORM_DATA" desc="Checkbox for deleting form data saved for Autofill">
     Autofill form data
   </message>
+  <message name="IDS_SETTINGS_CLEAR_SITE_SETTINGS" desc="Checkbox for deleting site settings">
+    Site settings
+  </message>
   <message name="IDS_SETTINGS_CLEAR_HOSTED_APP_DATA" desc="Checkbox for deleting data of hosted apps">
     Hosted app data
   </message>
@@ -956,6 +974,21 @@
   <message name="IDS_SETTINGS_CLEAR_DATA_EVERYTHING" desc="deletion period combo box: everything. In English this finishes the sentence that starts with 'Delete the following items from'.">
     the beginning of time
   </message>
+  <message name="IDS_SETTINGS_CLEAR_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
+    Last hour
+  </message>
+  <message name="IDS_SETTINGS_CLEAR_PERIOD_24_HOURS" desc="The option to delete browsing data from the last 24 hours.">
+    Last 24 hours
+  </message>
+  <message name="IDS_SETTINGS_CLEAR_PERIOD_7_DAYS" desc="The option to delete browsing data from the last seven days.">
+    Last 7 days
+  </message>
+  <message name="IDS_SETTINGS_CLEAR_PERIOD_FOUR_WEEKS" desc="The option to delete browsing data from the last 4 weeks.">
+    Last 4 weeks
+  </message>
+  <message name="IDS_SETTINGS_CLEAR_PERIOD_EVERYTHING" desc="The option to delete browsing data from the beginning of time.">
+    All time
+  </message>
   <message name="IDS_SETTINGS_CLEAR_DATA_SOME_STUFF_REMAINS" desc="A text shown at the bottom of the Clear Browsing Data dialog, informing the user that some data types will not be cleared.">
     Some settings that may reflect browsing habits will not be cleared.
   </message>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 154b7c22..4d81caa 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2676,11 +2676,9 @@
     {"important-sites-in-cbd", flag_descriptions::kImportantSitesInCbdName,
      flag_descriptions::kImportantSitesInCbdDescription, kOsAll,
      FEATURE_VALUE_TYPE(features::kImportantSitesInCbd)},
-#if defined(OS_ANDROID)
     {"tabs-in-cbd", flag_descriptions::kTabsInCbdName,
-     flag_descriptions::kTabsInCbdDescription, kOsAndroid,
+     flag_descriptions::kTabsInCbdDescription, kOsAll,
      FEATURE_VALUE_TYPE(features::kTabsInCbd)},
-#endif  // OS_ANDROID
     {"passive-listener-default",
      flag_descriptions::kPassiveEventListenerDefaultName,
      flag_descriptions::kPassiveEventListenerDefaultDescription, kOsAll,
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
index 13a5135..433f61b 100644
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -206,22 +206,34 @@
   // Clear browsing data settings.
   (*s_whitelist)[browsing_data::prefs::kDeleteBrowsingHistory] =
       settings_private::PrefType::PREF_TYPE_BOOLEAN;
+  (*s_whitelist)[browsing_data::prefs::kDeleteBrowsingHistoryBasic] =
+      settings_private::PrefType::PREF_TYPE_BOOLEAN;
   (*s_whitelist)[browsing_data::prefs::kDeleteDownloadHistory] =
       settings_private::PrefType::PREF_TYPE_BOOLEAN;
   (*s_whitelist)[browsing_data::prefs::kDeleteCache] =
       settings_private::PrefType::PREF_TYPE_BOOLEAN;
+  (*s_whitelist)[browsing_data::prefs::kDeleteCacheBasic] =
+      settings_private::PrefType::PREF_TYPE_BOOLEAN;
   (*s_whitelist)[browsing_data::prefs::kDeleteCookies] =
       settings_private::PrefType::PREF_TYPE_BOOLEAN;
+  (*s_whitelist)[browsing_data::prefs::kDeleteCookiesBasic] =
+      settings_private::PrefType::PREF_TYPE_BOOLEAN;
   (*s_whitelist)[browsing_data::prefs::kDeletePasswords] =
       settings_private::PrefType::PREF_TYPE_BOOLEAN;
   (*s_whitelist)[browsing_data::prefs::kDeleteFormData] =
       settings_private::PrefType::PREF_TYPE_BOOLEAN;
+  (*s_whitelist)[browsing_data::prefs::kDeleteSiteSettings] =
+      settings_private::PrefType::PREF_TYPE_BOOLEAN;
   (*s_whitelist)[browsing_data::prefs::kDeleteHostedAppsData] =
       settings_private::PrefType::PREF_TYPE_BOOLEAN;
   (*s_whitelist)[browsing_data::prefs::kDeleteMediaLicenses] =
       settings_private::PrefType::PREF_TYPE_BOOLEAN;
   (*s_whitelist)[browsing_data::prefs::kDeleteTimePeriod] =
       settings_private::PrefType::PREF_TYPE_NUMBER;
+  (*s_whitelist)[browsing_data::prefs::kDeleteTimePeriodBasic] =
+      settings_private::PrefType::PREF_TYPE_NUMBER;
+  (*s_whitelist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
+      settings_private::PrefType::PREF_TYPE_NUMBER;
 
 #if defined(OS_CHROMEOS)
   // Accounts / Users / People.
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index e38d32d..8559a63 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -1273,6 +1273,10 @@
     "mute controls. This also adds commands in the tab context menu for "
     "quickly muting multiple selected tabs.";
 
+const char kTabsInCbdName[] = "Enable tabs for the Clear Browsing Data dialog.";
+const char kTabsInCbdDescription[] =
+    "Enables a basic and an advanced tab for the Clear Browsing Data dialog.";
+
 const char kTcpFastOpenName[] = "TCP Fast Open";
 const char kTcpFastOpenDescription[] =
     "Enable the option to send extra authentication information in the initial "
@@ -1960,10 +1964,6 @@
     "A new type of inline autocomplete for the omnibox that works with "
     "keyboards that compose text.";
 
-const char kTabsInCbdName[] = "Enable tabs for the Clear Browsing Data dialog.";
-const char kTabsInCbdDescription[] =
-    "Enables a basic and an advanced tab for the Clear Browsing Data dialog.";
-
 const char kTranslateCompactUIName[] = "New Translate Infobar";
 const char kTranslateCompactUIDescription[] =
     "Enable the new Translate compact infobar UI.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index a005ac1..8a1e956 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -792,6 +792,9 @@
 extern const char kTabAudioMutingName[];
 extern const char kTabAudioMutingDescription[];
 
+extern const char kTabsInCbdName[];
+extern const char kTabsInCbdDescription[];
+
 extern const char kTcpFastOpenName[];
 extern const char kTcpFastOpenDescription[];
 
@@ -1198,9 +1201,6 @@
 extern const char kSpannableInlineAutocompleteName[];
 extern const char kSpannableInlineAutocompleteDescription[];
 
-extern const char kTabsInCbdName[];
-extern const char kTabsInCbdDescription[];
-
 extern const char kTranslateCompactUIName[];
 extern const char kTranslateCompactUIDescription[];
 
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.js b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.js
index c78b9dd..6bf142a 100644
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.js
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.js
@@ -99,7 +99,8 @@
   /** @override */
   ready: function() {
     this.$.clearFrom.menuOptions = this.clearFromOptions_;
-    this.addWebUIListener('update-footer', this.updateFooter_.bind(this));
+    this.addWebUIListener(
+        'update-sync-state', this.updateSyncState_.bind(this));
     this.addWebUIListener(
         'update-counter-text', this.updateCounterText_.bind(this));
   },
@@ -122,12 +123,13 @@
   /**
    * Updates the footer to show only those sentences that are relevant to this
    * user.
+   * @param {boolean} signedIn Whether the user is signed in.
    * @param {boolean} syncing Whether the user is syncing data.
    * @param {boolean} otherFormsOfBrowsingHistory Whether the user has other
    *     forms of browsing history in their account.
    * @private
    */
-  updateFooter_: function(syncing, otherFormsOfBrowsingHistory) {
+  updateSyncState_: function(signedIn, syncing, otherFormsOfBrowsingHistory) {
     this.$.googleFooter.hidden = !otherFormsOfBrowsingHistory;
     this.$.syncedDataSentence.hidden = !syncing;
     this.$.clearBrowsingDataDialog.classList.add('fully-rendered');
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.html
index b991c99..3f2bf7cce 100644
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.html
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.html
@@ -2,8 +2,10 @@
 
 <link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
 <link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-pages/iron-pages.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/paper-spinner/paper-spinner.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-tabs/paper-tabs.html">
 <link rel="import" href="../i18n_setup.html">
 <link rel="import" href="clear_browsing_data_browser_proxy.html">
 <link rel="import" href="history_deletion_dialog.html">
@@ -12,12 +14,23 @@
 <link rel="import" href="../controls/settings_dropdown_menu.html">
 <link rel="import" href="../icons.html">
 <link rel="import" href="../settings_shared_css.html">
+<link rel="import" href="../settings_vars_css.html">
 
 <!-- This file is a fork of clear_browsing_data_dialog.html until the new CBD
      UI is launched. -->
 <dom-module id="settings-clear-browsing-data-dialog-tabs">
   <template>
     <style include="settings-shared">
+      #clearBrowsingDataDialog {
+        --cr-dialog-top-container-min-height: 42px;
+        --cr-dialog-title: {
+          padding-bottom: 8px;
+        }
+        --cr-dialog-body-container: {
+         flex-grow: 1;
+        }
+      }
+
       #clearBrowsingDataDialog:not(.fully-rendered) {
         visibility: hidden;
       }
@@ -26,6 +39,16 @@
         color: var(--paper-grey-600);
       }
 
+      #clearBrowsingDataDialog,
+      #importantSitesDialog {
+        /* Fixed height to allow multiple tabs with different height.
+         * The last entry in the advanced tab should show half an entry.
+         * crbug.com/652027 */
+        --cr-dialog-body-container: {
+          height: 322px;
+        };
+      }
+
       .row {
         align-items: center;
         display: flex;
@@ -43,55 +66,21 @@
         --settings-row-two-line-min-height: 48px;
         --settings-checkbox-label: {
           line-height: 1.25rem;
-        };
+        }
       }
 
-      #generalFooter {
-        margin: 0;
-        min-height: 18px;
+      paper-tabs {
+        --paper-tabs: {
+          font-size: 100%;
+          height: 40px;
+        }
       }
 
-      #generalFooter iron-icon {
-        height: 18px;
-        padding: 1px;
-        width: 18px;
+      .time-range-row {
+        margin-bottom: 4px;
       }
 
-      #googleFooter {
-        margin: 0 0 0.8em 0;
-        min-height: 16px;
-      }
-
-      #googleFooter iron-icon {
-        height: 16px;
-        padding: 2px;
-        width: 16px;
-      }
-
-      [slot=footer] iron-icon {
-        margin: auto;
-      }
-
-      .clear-browsing-data-footer {
-        -webkit-padding-start: 4px;
-        align-items: flex-start;
-        display: flex;
-        line-height: 1.538em; /* 20px/13px */
-      }
-
-      .clear-browsing-data-footer .footer-text {
-        -webkit-margin-start: 16px;
-      }
-
-      .clear-browsing-data-footer iron-icon {
-        flex-shrink: 0;
-      }
-
-      .clear-browsing-data-footer a {
-        text-decoration: none;
-      }
-
-      #clearFrom {
+      .time-range-select {
         -webkit-margin-start: 0.5em;
         /* Adjust for md-select-underline and 1px additional bottom padding
          * to keep md-select's text (without the underline) aligned with
@@ -103,87 +92,139 @@
         font-size: calc(13 / 15 * 100%);
         padding-top: 8px;
       }
-
-      /* Cap the height on smaller screens to avoid unfavorable clipping.
-       * Replace the bottom margin with padding to avoid the gap between
-       * the scrollbar and the bottom separator. */
-      @media all and (max-height: 724px) {
-        #clearBrowsingDataDialog {
-          /* crbug.com/652027: Show four and a *half* items in the list. */
-          --cr-dialog-body-container: {
-            max-height: 280px;
-          };
-        }
-      }
     </style>
 
     <dialog is="cr-dialog" id="clearBrowsingDataDialog"
         on-close="onClearBrowsingDataDialogClose_"
-        close-text="$i18n{close}" ignore-popstate>
-      <div slot="title">$i18n{clearBrowsingData} - NEW UI</div>
+        close-text="$i18n{close}" ignore-popstate has-tabs>
+      <div slot="title">
+        <div>$i18n{clearBrowsingData}</div>
+      </div>
+      <div slot="header">
+        <paper-tabs noink
+            selected="{{prefs.browser.last_clear_browsing_data_tab.value}}">
+          <paper-tab>$i18n{basicPageTitle}</paper-tab>
+          <paper-tab>$i18n{advancedPageTitle}</paper-tab>
+        </paper-tabs>
+      </div>
       <div slot="body">
-        <div class="row">
-          $i18n{clearFollowingItemsFrom}
-          <settings-dropdown-menu id="clearFrom"
-              label="$i18n{clearFollowingItemsFrom}"
-              pref="{{prefs.browser.clear_data.time_period}}"
-              menu-options="[[clearFromOptions_]]">
-          </settings-dropdown-menu>
-        </div>
-        <!-- Note: whether these checkboxes are checked are ignored if deleting
-             history is disabled (i.e. supervised users, policy), so it's OK to
-             have a hidden checkbox that's also checked (as the C++ accounts for
-             whether a user is allowed to delete history independently). -->
-        <settings-checkbox id="browsingCheckbox" class="browsing-data-checkbox"
-            pref="{{prefs.browser.clear_data.browsing_history}}"
-            label="$i18n{clearBrowsingHistory}"
-            sub-label="[[counters_.browsing_history]]"
-            disabled="[[clearingInProgress_]]"
-            hidden="[[isSupervised_]]">
-        </settings-checkbox>
-        <settings-checkbox id="downloadCheckbox" class="browsing-data-checkbox"
-            pref="{{prefs.browser.clear_data.download_history}}"
-            label="$i18n{clearDownloadHistory}"
-            sub-label="[[counters_.download_history]]"
-            disabled="[[clearingInProgress_]]"
-            hidden="[[isSupervised_]]">
-        </settings-checkbox>
-        <settings-checkbox id="cacheCheckbox" class="browsing-data-checkbox"
-            pref="{{prefs.browser.clear_data.cache}}"
-            label="$i18n{clearCache}"
-            sub-label="[[counters_.cache]]"
-            disabled="[[clearingInProgress_]]">
-        </settings-checkbox>
-        <settings-checkbox id="cookiesCheckbox" class="browsing-data-checkbox"
-            pref="{{prefs.browser.clear_data.cookies}}"
-            label="$i18n{clearCookies}"
-            sub-label="$i18n{clearCookiesCounter}"
-            disabled="[[clearingInProgress_]]">
-        </settings-checkbox>
-        <settings-checkbox class="browsing-data-checkbox"
-            pref="{{prefs.browser.clear_data.passwords}}"
-            label="$i18n{clearPasswords}"
-            sub-label="[[counters_.passwords]]"
-            disabled="[[clearingInProgress_]]">
-        </settings-checkbox>
-        <settings-checkbox class="browsing-data-checkbox"
-            pref="{{prefs.browser.clear_data.form_data}}"
-            label="$i18n{clearFormData}"
-            sub-label="[[counters_.form_data]]"
-            disabled="[[clearingInProgress_]]">
-        </settings-checkbox>
-        <settings-checkbox class="browsing-data-checkbox"
-            pref="{{prefs.browser.clear_data.hosted_apps_data}}"
-            label="$i18n{clearHostedAppData}"
-            sub-label="[[counters_.hosted_apps_data]]"
-            disabled="[[clearingInProgress_]]">
-        </settings-checkbox>
-        <settings-checkbox class="browsing-data-checkbox"
-            pref="{{prefs.browser.clear_data.media_licenses}}"
-            label="$i18n{clearMediaLicenses}"
-            sub-label="[[counters_.media_licenses]]"
-            disabled="[[clearingInProgress_]]">
-        </settings-checkbox>
+        <iron-pages id="tabs"
+            selected="[[prefs.browser.last_clear_browsing_data_tab.value]]">
+          <div id="basic-tab">
+            <div class="row time-range-row">
+              <span class="time-range-label">
+                $i18n{clearTimeRange}
+              </span>
+              <settings-dropdown-menu id="clearFromBasic"
+                  class="time-range-select"
+                  label="$i18n{clearTimeRange}"
+                  pref="{{prefs.browser.clear_data.time_period_basic}}"
+                  menu-options="[[clearFromOptions_]]">
+              </settings-dropdown-menu>
+            </div>
+            <!-- Note: whether these checkboxes are checked are ignored if
+                 deleting history is disabled (i.e. supervised users, policy),
+                 so it's OK to have a hidden checkbox that's also checked (as
+                 the C++ accounts for whether a user is allowed to delete
+                 history independently). -->
+            <settings-checkbox id="browsingCheckboxBasic"
+                pref="{{prefs.browser.clear_data.browsing_history_basic}}"
+                label="$i18n{clearBrowsingHistory}"
+                sub-label-html="[[browsingCheckboxLabel_(
+                    isSignedIn_, isSyncingHistory_,
+                    '$i18nPolymer{clearBrowsingHistorySummary}',
+                    '$i18nPolymer{clearBrowsingHistorySummarySignedIn}',
+                    '$i18nPolymer{clearBrowsingHistorySummarySynced}')]]"
+                disabled="[[clearingInProgress_]]"
+                hidden="[[isSupervised_]]">
+            </settings-checkbox>
+            <settings-checkbox id="cookiesCheckboxBasic"
+                class="cookies-checkbox"
+                pref="{{prefs.browser.clear_data.cookies_basic}}"
+                label="$i18n{clearCookies}"
+                sub-label="$i18n{clearCookiesSummary}"
+                disabled="[[clearingInProgress_]]">
+            </settings-checkbox>
+            <settings-checkbox id="cacheCheckboxBasic"
+                class="cache-checkbox"
+                pref="{{prefs.browser.clear_data.cache_basic}}"
+                label="$i18n{clearCache}"
+                sub-label="[[counters_.cache_basic]]"
+                disabled="[[clearingInProgress_]]">
+            </settings-checkbox>
+          </div>
+          <div id="advanced-tab">
+            <div class="row time-range-row">
+              <span class="time-range-label">
+                $i18n{clearTimeRange}
+              </span>
+              <settings-dropdown-menu id="clearFrom"
+                  class="time-range-select"
+                  label="$i18n{clearTimeRange}"
+                  pref="{{prefs.browser.clear_data.time_period}}"
+                  menu-options="[[clearFromOptions_]]">
+              </settings-dropdown-menu>
+            </div>
+            <settings-checkbox id="browsingCheckbox"
+                pref="{{prefs.browser.clear_data.browsing_history}}"
+                label="$i18n{clearBrowsingHistory}"
+                sub-label="[[counters_.browsing_history]]"
+                disabled="[[clearingInProgress_]]"
+                hidden="[[isSupervised_]]">
+            </settings-checkbox>
+            <settings-checkbox id="downloadCheckbox"
+                pref="{{prefs.browser.clear_data.download_history}}"
+                label="$i18n{clearDownloadHistory}"
+                sub-label="[[counters_.download_history]]"
+                disabled="[[clearingInProgress_]]"
+                hidden="[[isSupervised_]]">
+            </settings-checkbox>
+            <settings-checkbox id="cookiesCheckbox"
+                class="cookies-checkbox"
+                pref="{{prefs.browser.clear_data.cookies}}"
+                label="$i18n{clearCookies}"
+                sub-label="[[counters_.cookies]]"
+                disabled="[[clearingInProgress_]]">
+            </settings-checkbox>
+            <settings-checkbox id="cacheCheckbox"
+                class="cache-checkbox"
+                pref="{{prefs.browser.clear_data.cache}}"
+                label="$i18n{clearCache}"
+                sub-label="[[counters_.cache]]"
+                disabled="[[clearingInProgress_]]">
+            </settings-checkbox>
+            <settings-checkbox
+                pref="{{prefs.browser.clear_data.passwords}}"
+                label="$i18n{clearPasswords}"
+                sub-label="[[counters_.passwords]]"
+                disabled="[[clearingInProgress_]]">
+            </settings-checkbox>
+            <settings-checkbox
+                pref="{{prefs.browser.clear_data.form_data}}"
+                label="$i18n{clearFormData}"
+                sub-label="[[counters_.form_data]]"
+                disabled="[[clearingInProgress_]]">
+            </settings-checkbox>
+            <settings-checkbox
+                pref="{{prefs.browser.clear_data.site_settings}}"
+                label="$i18n{clearSiteSettings}"
+                sub-label="[[counters_.site_settings]]"
+                disabled="[[clearingInProgress_]]">
+            </settings-checkbox>
+            <settings-checkbox
+                pref="{{prefs.browser.clear_data.hosted_apps_data}}"
+                label="$i18n{clearHostedAppData}"
+                sub-label="[[counters_.hosted_apps_data]]"
+                disabled="[[clearingInProgress_]]">
+            </settings-checkbox>
+            <settings-checkbox
+                pref="{{prefs.browser.clear_data.media_licenses}}"
+                label="$i18n{clearMediaLicenses}"
+                sub-label="[[counters_.media_licenses]]"
+                disabled="[[clearingInProgress_]]">
+            </settings-checkbox>
+          </div>
+        </iron-pages>
       </div>
       <div slot="button-container">
         <paper-spinner active="[[clearingInProgress_]]"></paper-spinner>
@@ -195,22 +236,6 @@
             $i18n{clearBrowsingData}
         </paper-button>
       </div>
-      <div slot="footer">
-        <div id="googleFooter" class="clear-browsing-data-footer">
-          <iron-icon icon="settings:googleg"></iron-icon>
-          <div class="footer-text">$i18nRaw{otherFormsOfBrowsingHistory}</div>
-        </div>
-        <div id="generalFooter" class="clear-browsing-data-footer">
-          <iron-icon icon="settings:info"></iron-icon>
-          <div class="footer-text">
-            <span id="syncedDataSentence">$i18n{clearsSyncedData}</span>
-            <span>$i18n{warnAboutNonClearedData}</span>
-            <a id="clear-browser-data-old-learn-more-link"
-                href="$i18n{clearBrowsingDataLearnMoreUrl}"
-                target="_blank">$i18n{learnMore}</a>
-          </div>
-        </div>
-      </div>
     </dialog>
 
     <template is="dom-if" if="[[showImportantSitesDialog_]]">
@@ -219,13 +244,12 @@
         <div slot="title">
           $i18n{clearBrowsingData}
           <div class="secondary">
-            <template is="dom-if"
-                if="[[!prefs.browser.clear_data.cache.value]]">
+            <span hidden$="[[showImportantSitesCacheSubtitle_]]">
               $i18n{importantSitesSubtitleCookies}
-            </template>
-            <template is="dom-if" if="[[prefs.browser.clear_data.cache.value]]">
+            </span>
+            <span hidden$="[[!showImportantSitesCacheSubtitle_]]">
               $i18n{importantSitesSubtitleCookiesAndCache}
-            </template>
+            </span>
           </div>
         </div>
         <div slot="body">
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.js b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.js
index b0c9479a..d953e8a 100644
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.js
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.js
@@ -45,11 +45,11 @@
       readOnly: true,
       type: Array,
       value: [
-        {value: 0, name: loadTimeData.getString('clearDataHour')},
-        {value: 1, name: loadTimeData.getString('clearDataDay')},
-        {value: 2, name: loadTimeData.getString('clearDataWeek')},
-        {value: 3, name: loadTimeData.getString('clearData4Weeks')},
-        {value: 4, name: loadTimeData.getString('clearDataEverything')},
+        {value: 0, name: loadTimeData.getString('clearPeriodHour')},
+        {value: 1, name: loadTimeData.getString('clearPeriod24Hours')},
+        {value: 2, name: loadTimeData.getString('clearPeriod7Days')},
+        {value: 3, name: loadTimeData.getString('clearPeriod4Weeks')},
+        {value: 4, name: loadTimeData.getString('clearPeriodEverything')},
       ],
     },
 
@@ -73,6 +73,18 @@
       value: false,
     },
 
+    /** @private */
+    isSignedIn_: {
+      type: Boolean,
+      value: false,
+    },
+
+    /** @private */
+    isSyncingHistory_: {
+      type: Boolean,
+      value: false,
+    },
+
     /** @private {!Array<ImportantSite>} */
     importantSites_: {
       type: Array,
@@ -90,7 +102,16 @@
     },
 
     /** @private */
-    showImportantSitesDialog_: {type: Boolean, value: false},
+    showImportantSitesDialog_: {
+      type: Boolean,
+      value: false,
+    },
+
+    /** @private */
+    showImportantSitesCacheSubtitle_: {
+      type: Boolean,
+      value: false,
+    },
   },
 
   /** @private {settings.ClearBrowsingDataBrowserProxy} */
@@ -98,8 +119,8 @@
 
   /** @override */
   ready: function() {
-    this.$.clearFrom.menuOptions = this.clearFromOptions_;
-    this.addWebUIListener('update-footer', this.updateFooter_.bind(this));
+    this.addWebUIListener(
+        'update-sync-state', this.updateSyncState_.bind(this));
     this.addWebUIListener(
         'update-counter-text', this.updateCounterText_.bind(this));
   },
@@ -120,19 +141,32 @@
   },
 
   /**
-   * Updates the footer to show only those sentences that are relevant to this
-   * user.
-   * @param {boolean} syncing Whether the user is syncing data.
+   * Updates the history description to show the relevant information
+   * depending on sync and signin state.
+   *
+   * @param {boolean} signedIn Whether the user is signed in.
+   * @param {boolean} syncing Whether the user is syncing history.
    * @param {boolean} otherFormsOfBrowsingHistory Whether the user has other
    *     forms of browsing history in their account.
    * @private
    */
-  updateFooter_: function(syncing, otherFormsOfBrowsingHistory) {
-    this.$.googleFooter.hidden = !otherFormsOfBrowsingHistory;
-    this.$.syncedDataSentence.hidden = !syncing;
+  updateSyncState_: function(signedIn, syncing, otherFormsOfBrowsingHistory) {
+    this.isSignedIn_ = signedIn;
+    this.isSyncingHistory_ = syncing;
     this.$.clearBrowsingDataDialog.classList.add('fully-rendered');
   },
 
+  browsingCheckboxLabel_: function(
+      isSignedIn, isSyncingHistory, historySummary, historySummarySigned,
+      historySummarySynced) {
+    if (isSyncingHistory) {
+      return historySummarySynced;
+    } else if (isSignedIn) {
+      return historySummarySigned;
+    }
+    return historySummary;
+  },
+
   /**
    * Updates the text of a browsing data counter corresponding to the given
    * preference.
@@ -154,8 +188,10 @@
   shouldShowImportantSites_: function() {
     if (!this.importantSitesFlagEnabled_)
       return false;
-    if (!this.$.cookiesCheckbox.checked)
+    var tab = this.$.tabs.selectedItem;
+    if (!tab.querySelector('.cookies-checkbox').checked) {
       return false;
+    }
 
     var haveImportantSites = this.importantSites_.length > 0;
     chrome.send(
@@ -170,7 +206,10 @@
    */
   onClearBrowsingDataTap_: function() {
     if (this.shouldShowImportantSites_()) {
+      var tab = this.$.tabs.selectedItem;
       this.showImportantSitesDialog_ = true;
+      this.showImportantSitesCacheSubtitle_ =
+          tab.querySelector('.cache-checkbox').checked;
       this.$.clearBrowsingDataDialog.close();
       // Show important sites dialog after dom-if is applied.
       this.async(function() {
@@ -198,15 +237,16 @@
    */
   clearBrowsingData_: function() {
     this.clearingInProgress_ = true;
+    var tab = this.$.tabs.selectedItem;
 
-    var checkboxes = this.root.querySelectorAll('.browsing-data-checkbox');
+    checkboxes = tab.querySelectorAll('settings-checkbox');
     var dataTypes = [];
     checkboxes.forEach((checkbox) => {
       if (checkbox.checked)
         dataTypes.push(checkbox.pref.key);
     });
 
-    var timePeriod = this.$.clearFrom.pref.value;
+    var timePeriod = tab.querySelector('.time-range-select').pref.value;
 
     this.browserProxy_
         .clearBrowsingData(dataTypes, timePeriod, this.importantSites_)
diff --git a/chrome/browser/resources/settings/device_page/display.html b/chrome/browser/resources/settings/device_page/display.html
index 03b9666..fcfd583 100644
--- a/chrome/browser/resources/settings/device_page/display.html
+++ b/chrome/browser/resources/settings/device_page/display.html
@@ -28,10 +28,6 @@
         padding: 0;
       }
 
-      :host {
-        --paper-tabs-selection-bar-color: var(--paper-blue-500);
-      }
-
       .display-tabs {
         width: 100%;
       }
diff --git a/chrome/browser/resources/settings/settings_vars_css.html b/chrome/browser/resources/settings/settings_vars_css.html
index 9efc68e9..2f5e47c 100644
--- a/chrome/browser/resources/settings/settings_vars_css.html
+++ b/chrome/browser/resources/settings/settings_vars_css.html
@@ -92,5 +92,7 @@
     };
 
     --paper-input-container-underline: var(--settings-input-underline);
+
+    --paper-tabs-selection-bar-color: var(--paper-blue-500);
   }
 </style>
diff --git a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
index 43c11e1a..a05ca74 100644
--- a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
@@ -417,14 +417,20 @@
 void AddClearBrowsingDataStrings(content::WebUIDataSource* html_source) {
   LocalizedString localized_strings[] = {
       {"clearFollowingItemsFrom", IDS_SETTINGS_CLEAR_FOLLOWING_ITEMS_FROM},
+      {"clearTimeRange", IDS_SETTINGS_CLEAR_PERIOD_TITLE},
       {"clearBrowsingHistory", IDS_SETTINGS_CLEAR_BROWSING_HISTORY},
+      {"clearBrowsingHistorySummary",
+       IDS_SETTINGS_CLEAR_BROWSING_HISTORY_SUMMARY},
       {"clearDownloadHistory", IDS_SETTINGS_CLEAR_DOWNLOAD_HISTORY},
       {"clearCache", IDS_SETTINGS_CLEAR_CACHE},
       {"clearCookies", IDS_SETTINGS_CLEAR_COOKIES},
+      {"clearCookiesSummary",
+       IDS_SETTINGS_CLEAR_COOKIES_AND_SITE_DATA_SUMMARY_BASIC},
       {"clearCookiesCounter", IDS_DEL_COOKIES_COUNTER},
       {"clearCookiesFlash", IDS_SETTINGS_CLEAR_COOKIES_FLASH},
       {"clearPasswords", IDS_SETTINGS_CLEAR_PASSWORDS},
       {"clearFormData", IDS_SETTINGS_CLEAR_FORM_DATA},
+      {"clearSiteSettings", IDS_SETTINGS_CLEAR_SITE_SETTINGS},
       {"clearHostedAppData", IDS_SETTINGS_CLEAR_HOSTED_APP_DATA},
       {"clearMediaLicenses", IDS_SETTINGS_CLEAR_MEDIA_LICENSES},
       {"clearDataHour", IDS_SETTINGS_CLEAR_DATA_HOUR},
@@ -432,6 +438,11 @@
       {"clearDataWeek", IDS_SETTINGS_CLEAR_DATA_WEEK},
       {"clearData4Weeks", IDS_SETTINGS_CLEAR_DATA_4WEEKS},
       {"clearDataEverything", IDS_SETTINGS_CLEAR_DATA_EVERYTHING},
+      {"clearPeriodHour", IDS_SETTINGS_CLEAR_PERIOD_HOUR},
+      {"clearPeriod24Hours", IDS_SETTINGS_CLEAR_PERIOD_24_HOURS},
+      {"clearPeriod7Days", IDS_SETTINGS_CLEAR_PERIOD_7_DAYS},
+      {"clearPeriod4Weeks", IDS_SETTINGS_CLEAR_PERIOD_FOUR_WEEKS},
+      {"clearPeriodEverything", IDS_SETTINGS_CLEAR_PERIOD_EVERYTHING},
       {"warnAboutNonClearedData", IDS_SETTINGS_CLEAR_DATA_SOME_STUFF_REMAINS},
       {"clearsSyncedData", IDS_SETTINGS_CLEAR_DATA_CLEARS_SYNCED_DATA},
       {"clearBrowsingDataLearnMoreUrl", IDS_SETTINGS_CLEAR_DATA_LEARN_MORE_URL},
@@ -447,6 +458,15 @@
   };
 
   html_source->AddString(
+      "clearBrowsingHistorySummarySignedIn",
+      l10n_util::GetStringFUTF16(
+          IDS_SETTINGS_CLEAR_BROWSING_HISTORY_SUMMARY_SIGNED_IN,
+          base::ASCIIToUTF16(chrome::kMyActivityUrl)));
+  html_source->AddString("clearBrowsingHistorySummarySynced",
+                         l10n_util::GetStringFUTF16(
+                             IDS_SETTINGS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED,
+                             base::ASCIIToUTF16(chrome::kMyActivityUrl)));
+  html_source->AddString(
       "otherFormsOfBrowsingHistory",
       l10n_util::GetStringFUTF16(
           IDS_CLEAR_BROWSING_DATA_HISTORY_FOOTER,
diff --git a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
index 598f324..5ee1717 100644
--- a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
+++ b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
@@ -21,6 +21,7 @@
 #include "chrome/browser/engagement/important_sites_usage_counter.h"
 #include "chrome/browser/engagement/important_sites_util.h"
 #include "chrome/browser/history/web_history_service_factory.h"
+#include "chrome/browser/signin/signin_manager_factory.h"
 #include "chrome/browser/sync/profile_sync_service_factory.h"
 #include "chrome/common/channel_info.h"
 #include "chrome/common/chrome_features.h"
@@ -28,6 +29,7 @@
 #include "components/browsing_data/core/history_notice_utils.h"
 #include "components/browsing_data/core/pref_names.h"
 #include "components/prefs/pref_service.h"
+#include "components/signin/core/browser/signin_manager.h"
 #include "content/public/browser/browsing_data_filter_builder.h"
 #include "content/public/browser/storage_partition.h"
 #include "content/public/browser/web_ui.h"
@@ -42,13 +44,23 @@
 
 // TODO(msramek): Get the list of deletion preferences from the JS side.
 const char* kCounterPrefs[] = {
-  browsing_data::prefs::kDeleteBrowsingHistory,
-  browsing_data::prefs::kDeleteCache,
-  browsing_data::prefs::kDeleteDownloadHistory,
-  browsing_data::prefs::kDeleteFormData,
-  browsing_data::prefs::kDeleteHostedAppsData,
-  browsing_data::prefs::kDeleteMediaLicenses,
-  browsing_data::prefs::kDeletePasswords,
+    browsing_data::prefs::kDeleteBrowsingHistory,
+    browsing_data::prefs::kDeleteCache,
+    browsing_data::prefs::kDeleteDownloadHistory,
+    browsing_data::prefs::kDeleteFormData,
+    browsing_data::prefs::kDeleteHostedAppsData,
+    browsing_data::prefs::kDeleteMediaLicenses,
+    browsing_data::prefs::kDeletePasswords,
+};
+
+// Additional counters for the tabbed ui.
+const char* kCounterPrefsBasic[] = {
+    browsing_data::prefs::kDeleteCacheBasic,
+};
+
+const char* kCounterPrefsAdvanced[] = {
+    browsing_data::prefs::kDeleteCookies,
+    browsing_data::prefs::kDeleteSiteSettings,
 };
 
 const char kRegisterableDomainField[] = "registerableDomain";
@@ -70,7 +82,11 @@
       sync_service_observer_(this),
       show_history_footer_(false),
       show_history_deletion_dialog_(false),
-      weak_ptr_factory_(this) {}
+      weak_ptr_factory_(this) {
+  if (base::FeatureList::IsEnabled(features::kTabsInCbd)) {
+    browsing_data::MigratePreferencesToBasic(profile_->GetPrefs());
+  }
+}
 
 ClearBrowsingDataHandler::~ClearBrowsingDataHandler() {
 }
@@ -98,8 +114,20 @@
 
   DCHECK(counters_.empty());
   for (const std::string& pref : kCounterPrefs) {
-    AddCounter(
-        BrowsingDataCounterFactory::GetForProfileAndPref(profile_, pref));
+    AddCounter(BrowsingDataCounterFactory::GetForProfileAndPref(profile_, pref),
+               browsing_data::ClearBrowsingDataTab::ADVANCED);
+  }
+  if (base::FeatureList::IsEnabled(features::kTabsInCbd)) {
+    for (const std::string& pref : kCounterPrefsBasic) {
+      AddCounter(
+          BrowsingDataCounterFactory::GetForProfileAndPref(profile_, pref),
+          browsing_data::ClearBrowsingDataTab::BASIC);
+    }
+    for (const std::string& pref : kCounterPrefsAdvanced) {
+      AddCounter(
+          BrowsingDataCounterFactory::GetForProfileAndPref(profile_, pref),
+          browsing_data::ClearBrowsingDataTab::ADVANCED);
+    }
   }
 }
 
@@ -127,7 +155,7 @@
   std::vector<BrowsingDataType> data_type_vector;
   const base::ListValue* data_type_list = nullptr;
   CHECK(args->GetList(1, &data_type_list));
-  for (const auto& type : *data_type_list) {
+  for (const base::Value& type : *data_type_list) {
     std::string pref_name;
     CHECK(type.GetAsString(&pref_name));
     BrowsingDataType data_type =
@@ -157,6 +185,10 @@
       case BrowsingDataType::FORM_DATA:
         remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA;
         break;
+      case BrowsingDataType::SITE_SETTINGS:
+        remove_mask |=
+            ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CONTENT_SETTINGS;
+        break;
       case BrowsingDataType::MEDIA_LICENSES:
         remove_mask |= content::BrowsingDataRemover::DATA_TYPE_MEDIA_LICENSES;
         break;
@@ -165,7 +197,6 @@
         origin_mask |= content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB;
         break;
       case BrowsingDataType::BOOKMARKS:
-      case BrowsingDataType::SITE_SETTINGS:
         // Only implemented on Android.
         NOTREACHED();
       case BrowsingDataType::NUM_TYPES:
@@ -378,9 +409,16 @@
 }
 
 void ClearBrowsingDataHandler::UpdateSyncState() {
+  auto* signin_manager = SigninManagerFactory::GetForProfile(profile_);
+  // TODO(dullweber): Remove "show_history_footer" attribute when the new UI
+  // is launched as it doesn't have this footer anymore. Instead the
+  // myactivity.google.com link is shown when a user is signed in or syncing.
   CallJavascriptFunction(
-      "cr.webUIListenerCallback", base::Value("update-footer"),
-      base::Value(sync_service_ && sync_service_->IsSyncActive()),
+      "cr.webUIListenerCallback", base::Value("update-sync-state"),
+      base::Value(signin_manager && signin_manager->IsAuthenticated()),
+      base::Value(sync_service_ && sync_service_->IsSyncActive() &&
+                  sync_service_->GetActiveDataTypes().Has(
+                      syncer::HISTORY_DELETE_DIRECTIVES)),
       base::Value(show_history_footer_));
 }
 
@@ -422,9 +460,10 @@
 }
 
 void ClearBrowsingDataHandler::AddCounter(
-    std::unique_ptr<browsing_data::BrowsingDataCounter> counter) {
-  counter->Init(profile_->GetPrefs(),
-                browsing_data::ClearBrowsingDataTab::ADVANCED,
+    std::unique_ptr<browsing_data::BrowsingDataCounter> counter,
+    browsing_data::ClearBrowsingDataTab tab) {
+  DCHECK(counter);
+  counter->Init(profile_->GetPrefs(), tab,
                 base::Bind(&ClearBrowsingDataHandler::UpdateCounterText,
                            base::Unretained(this)));
   counters_.push_back(std::move(counter));
diff --git a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h
index 7e833071..641143c 100644
--- a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h
+++ b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h
@@ -87,7 +87,8 @@
   void UpdateHistoryDeletionDialog(bool show);
 
   // Adds a browsing data |counter|.
-  void AddCounter(std::unique_ptr<browsing_data::BrowsingDataCounter> counter);
+  void AddCounter(std::unique_ptr<browsing_data::BrowsingDataCounter> counter,
+                  browsing_data::ClearBrowsingDataTab tab);
 
   // Updates a counter text according to the |result|.
   void UpdateCounterText(
diff --git a/chrome/common/url_constants.cc b/chrome/common/url_constants.cc
index 54a4df2..ee7ec947 100644
--- a/chrome/common/url_constants.cc
+++ b/chrome/common/url_constants.cc
@@ -528,6 +528,8 @@
     "https://support.google.com/chrome/?p=settings_privacy";
 #endif
 
+extern const char kMyActivityUrl[] = "https://myactivity.google.com";
+
 const char kDoNotTrackLearnMoreURL[] =
 #if defined(OS_CHROMEOS)
     "https://support.google.com/chromebook/?p=settings_do_not_track";
diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
index 1481f1e9..3404a231 100644
--- a/chrome/common/url_constants.h
+++ b/chrome/common/url_constants.h
@@ -444,6 +444,9 @@
 // "Learn more" URL for the Privacy section under Options.
 extern const char kPrivacyLearnMoreURL[];
 
+// "myactivity.google.com" URL for the history checkbox in ClearBrowsingData.
+extern const char kMyActivityUrl[];
+
 // "Learn more" URL for the "Do not track" setting in the privacy section.
 extern const char kDoNotTrackLearnMoreURL[];