Commit ad4063a9 authored by Daniel Classon's avatar Daniel Classon Committed by Commit Bot

[OsSettingsDeepLinking] Add deep links to the Files Page

Adds deep links to the Files Page.

Bug: 1084154
Change-Id: I29729a708f640d32bcb89e6fdd61bedfafe9d67a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2389161
Commit-Queue: Daniel Classon <dclasson@google.com>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#804033}
parent 26ee25fd
...@@ -23,6 +23,7 @@ js_library("smb_shares_page") { ...@@ -23,6 +23,7 @@ js_library("smb_shares_page") {
js_library("os_files_page") { js_library("os_files_page") {
deps = [ deps = [
"..:deep_linking_behavior",
"..:os_route", "..:os_route",
"../..:router", "../..:router",
] ]
...@@ -39,6 +40,7 @@ js_type_check("closure_compile_module") { ...@@ -39,6 +40,7 @@ js_type_check("closure_compile_module") {
js_library("os_files_page.m") { js_library("os_files_page.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_files_page/os_files_page.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_files_page/os_files_page.m.js" ]
deps = [ deps = [
"..:deep_linking_behavior.m",
"..:os_route.m", "..:os_route.m",
"../..:router.m", "../..:router.m",
] ]
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<link rel="import" href="../../settings_page/settings_animated_pages.html"> <link rel="import" href="../../settings_page/settings_animated_pages.html">
<link rel="import" href="../../settings_page/settings_subpage.html"> <link rel="import" href="../../settings_page/settings_subpage.html">
<link rel="import" href="../../controls/settings_toggle_button.html"> <link rel="import" href="../../controls/settings_toggle_button.html">
<link rel="import" href="../deep_linking_behavior.html">
<link rel="import" href="../os_route.html"> <link rel="import" href="../os_route.html">
<link rel="import" href="../../router.html"> <link rel="import" href="../../router.html">
<link rel="import" href="../../settings_shared_css.html"> <link rel="import" href="../../settings_shared_css.html">
...@@ -19,7 +20,8 @@ ...@@ -19,7 +20,8 @@
id="disconnectGoogleDriveAccount" id="disconnectGoogleDriveAccount"
class="hr" class="hr"
pref="{{prefs.gdata.disabled}}" pref="{{prefs.gdata.disabled}}"
label="$i18n{disconnectGoogleDriveAccount}"> label="$i18n{disconnectGoogleDriveAccount}"
deep-link-focus-id$="[[Setting.kGoogleDriveConnection]]">
</settings-toggle-button> </settings-toggle-button>
<cr-link-row id="smbShares" class="hr" on-click="onTapSmbShares_" <cr-link-row id="smbShares" class="hr" on-click="onTapSmbShares_"
label="$i18n{smbSharesTitle}" label="$i18n{smbSharesTitle}"
......
...@@ -10,6 +10,11 @@ ...@@ -10,6 +10,11 @@
Polymer({ Polymer({
is: 'os-settings-files-page', is: 'os-settings-files-page',
behaviors: [
DeepLinkingBehavior,
settings.RouteObserverBehavior,
],
properties: { properties: {
/** /**
* Preferences state. * Preferences state.
...@@ -31,6 +36,28 @@ Polymer({ ...@@ -31,6 +36,28 @@ Polymer({
}, },
}, },
/**
* Used by DeepLinkingBehavior to focus this page's deep links.
* @type {!Set<!chromeos.settings.mojom.Setting>}
*/
supportedSettingIds: {
type: Object,
value: () =>
new Set([chromeos.settings.mojom.Setting.kGoogleDriveConnection]),
},
},
/**
* @param {!settings.Route} route
* @param {!settings.Route} oldRoute
*/
currentRouteChanged(route, oldRoute) {
// Does not apply to this page.
if (route !== settings.routes.FILES) {
return;
}
this.attemptDeepLink();
}, },
/** @private */ /** @private */
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
// #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; // #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
// #import {assert} from 'chrome://resources/js/assert.m.js'; // #import {assert} from 'chrome://resources/js/assert.m.js';
// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
// #import {waitAfterNextRender} from 'chrome://test/test_util.m.js';
// clang-format on // clang-format on
...@@ -48,4 +50,23 @@ suite('FilesPageTests', function() { ...@@ -48,4 +50,23 @@ suite('FilesPageTests', function() {
settings.Router.getInstance().getCurrentRoute(), settings.Router.getInstance().getCurrentRoute(),
settings.routes.SMB_SHARES); settings.routes.SMB_SHARES);
}); });
test('Deep link to disconnect Google Drive', async () => {
loadTimeData.overrideValues({
isDeepLinkingEnabled: true,
});
const params = new URLSearchParams;
params.append('settingId', '1300');
settings.Router.getInstance().navigateTo(settings.routes.FILES, params);
Polymer.dom.flush();
const deepLinkElement =
filesPage.$$('#disconnectGoogleDriveAccount').$$('cr-toggle');
await test_util.waitAfterNextRender(deepLinkElement);
assertEquals(
deepLinkElement, getDeepActiveElement(),
'Disconnect Drive toggle should be focused for settingId=1300.');
});
}); });
\ No newline at end of file
...@@ -1370,7 +1370,10 @@ var OSSettingsFilesPageTest = class extends OSSettingsBrowserTest { ...@@ -1370,7 +1370,10 @@ var OSSettingsFilesPageTest = class extends OSSettingsBrowserTest {
/** @override */ /** @override */
get extraLibraries() { get extraLibraries() {
return super.extraLibraries.concat(['os_files_page_test.js']); return super.extraLibraries.concat([
BROWSER_SETTINGS_PATH + '../test_util.js',
'os_files_page_test.js',
]);
} }
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment