summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/resources/extensions
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-11-28 16:14:41 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-12-13 15:19:41 +0000
commit61d9742824d54be5693191fe502325a909feca59 (patch)
treecbf28e779b11338fe52eb75b915684cd8955542c /chromium/chrome/browser/resources/extensions
parent45f9ded08bb7526984b24ccb5a5327aaf6821676 (diff)
BASELINE: Update Chromium to 108.0.5359.70
Change-Id: I77334ff232b819600f275bd3cfe41fbaa3619230 Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/445904 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/chrome/browser/resources/extensions')
-rw-r--r--chromium/chrome/browser/resources/extensions/BUILD.gn3
-rw-r--r--chromium/chrome/browser/resources/extensions/activity_log/activity_log.ts12
-rw-r--r--chromium/chrome/browser/resources/extensions/activity_log/activity_log_history.ts4
-rw-r--r--chromium/chrome/browser/resources/extensions/activity_log/activity_log_history_item.ts6
-rw-r--r--chromium/chrome/browser/resources/extensions/activity_log/activity_log_stream.ts2
-rw-r--r--chromium/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.ts6
-rw-r--r--chromium/chrome/browser/resources/extensions/code_section.ts9
-rw-r--r--chromium/chrome/browser/resources/extensions/detail_view.html33
-rw-r--r--chromium/chrome/browser/resources/extensions/detail_view.ts32
-rw-r--r--chromium/chrome/browser/resources/extensions/drag_and_drop_handler.ts4
-rw-r--r--chromium/chrome/browser/resources/extensions/drop_overlay.ts10
-rw-r--r--chromium/chrome/browser/resources/extensions/error_page.ts14
-rw-r--r--chromium/chrome/browser/resources/extensions/extensions.ts2
-rw-r--r--chromium/chrome/browser/resources/extensions/host_permissions_toggle_list.ts10
-rw-r--r--chromium/chrome/browser/resources/extensions/install_warnings_dialog.ts5
-rw-r--r--chromium/chrome/browser/resources/extensions/item.ts19
-rw-r--r--chromium/chrome/browser/resources/extensions/item_list.ts4
-rw-r--r--chromium/chrome/browser/resources/extensions/item_mixin.ts2
-rw-r--r--chromium/chrome/browser/resources/extensions/item_util.ts2
-rw-r--r--chromium/chrome/browser/resources/extensions/keyboard_shortcut_delegate.ts2
-rw-r--r--chromium/chrome/browser/resources/extensions/keyboard_shortcuts.ts8
-rw-r--r--chromium/chrome/browser/resources/extensions/kiosk_browser_proxy.ts2
-rw-r--r--chromium/chrome/browser/resources/extensions/kiosk_dialog.ts8
-rw-r--r--chromium/chrome/browser/resources/extensions/load_error.ts4
-rw-r--r--chromium/chrome/browser/resources/extensions/manager.html4
-rw-r--r--chromium/chrome/browser/resources/extensions/manager.ts6
-rw-r--r--chromium/chrome/browser/resources/extensions/navigation_helper.ts2
-rw-r--r--chromium/chrome/browser/resources/extensions/options_dialog.ts4
-rw-r--r--chromium/chrome/browser/resources/extensions/pack_dialog.ts7
-rw-r--r--chromium/chrome/browser/resources/extensions/pack_dialog_alert.ts5
-rw-r--r--chromium/chrome/browser/resources/extensions/restricted_sites_dialog.ts8
-rw-r--r--chromium/chrome/browser/resources/extensions/runtime_host_permissions.ts14
-rw-r--r--chromium/chrome/browser/resources/extensions/runtime_hosts_dialog.ts10
-rw-r--r--chromium/chrome/browser/resources/extensions/service.ts23
-rw-r--r--chromium/chrome/browser/resources/extensions/shared_style.css7
-rw-r--r--chromium/chrome/browser/resources/extensions/shared_vars.css4
-rw-r--r--chromium/chrome/browser/resources/extensions/shortcut_input.ts8
-rw-r--r--chromium/chrome/browser/resources/extensions/shortcut_util.ts2
-rw-r--r--chromium/chrome/browser/resources/extensions/sidebar.ts6
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions.html6
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions.ts14
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions_by_site.html1
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions_by_site.ts6
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions_edit_permissions_dialog.html101
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions_edit_permissions_dialog.ts169
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions_edit_url_dialog.ts6
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions_list.html1
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions_list.ts12
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions_site_group.html16
-rw-r--r--chromium/chrome/browser/resources/extensions/site_permissions_site_group.ts32
-rw-r--r--chromium/chrome/browser/resources/extensions/site_settings_mixin.ts10
-rw-r--r--chromium/chrome/browser/resources/extensions/toggle_row.ts4
-rw-r--r--chromium/chrome/browser/resources/extensions/toolbar.ts12
-rw-r--r--chromium/chrome/browser/resources/extensions/url_util.ts2
54 files changed, 499 insertions, 206 deletions
diff --git a/chromium/chrome/browser/resources/extensions/BUILD.gn b/chromium/chrome/browser/resources/extensions/BUILD.gn
index adb5e2d759d..1c111086ae7 100644
--- a/chromium/chrome/browser/resources/extensions/BUILD.gn
+++ b/chromium/chrome/browser/resources/extensions/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
+# Copyright 2018 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -87,6 +87,7 @@ build_webui("build") {
"//tools/typescript/definitions/metrics_private.d.ts",
"//tools/typescript/definitions/pending.d.ts",
"//tools/typescript/definitions/runtime.d.ts",
+ "//tools/typescript/definitions/tabs.d.ts",
]
if (is_chromeos_ash) {
ts_definitions += [ "//tools/typescript/definitions/chrome_send.d.ts" ]
diff --git a/chromium/chrome/browser/resources/extensions/activity_log/activity_log.ts b/chromium/chrome/browser/resources/extensions/activity_log/activity_log.ts
index 12f4954d92b..338553c208b 100644
--- a/chromium/chrome/browser/resources/extensions/activity_log/activity_log.ts
+++ b/chromium/chrome/browser/resources/extensions/activity_log/activity_log.ts
@@ -1,12 +1,12 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
+// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
-import 'chrome://resources/cr_elements/cr_icons_css.m.js';
+import 'chrome://resources/cr_elements/cr_icons.css.js';
import 'chrome://resources/cr_elements/cr_tabs/cr_tabs.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/polymer/v3_0/iron-pages/iron-pages.js';
import './activity_log_stream.js';
import './activity_log_history.js';
@@ -15,8 +15,8 @@ import '../shared_style.css.js';
import '../shared_vars.css.js';
import {CrContainerShadowMixin} from 'chrome://resources/cr_elements/cr_container_shadow_mixin.js';
-import {focusWithoutInk} from 'chrome://resources/js/cr/ui/focus_without_ink.m.js';
-import {I18nMixin} from 'chrome://resources/js/i18n_mixin.js';
+import {focusWithoutInk} from 'chrome://resources/js/focus_without_ink.js';
+import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {afterNextRender, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chromium/chrome/browser/resources/extensions/activity_log/activity_log_history.ts b/chromium/chrome/browser/resources/extensions/activity_log/activity_log_history.ts
index 1bc05c56591..7f49b3ecd5a 100644
--- a/chromium/chrome/browser/resources/extensions/activity_log/activity_log_history.ts
+++ b/chromium/chrome/browser/resources/extensions/activity_log/activity_log_history.ts
@@ -1,4 +1,4 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
+// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -10,7 +10,7 @@ import '../shared_style.css.js';
import './activity_log_history_item.js';
import {assert} from 'chrome://resources/js/assert_ts.js';
-import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
+import {PromiseResolver} from 'chrome://resources/js/promise_resolver.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {getTemplate} from './activity_log_history.html.js';
diff --git a/chromium/chrome/browser/resources/extensions/activity_log/activity_log_history_item.ts b/chromium/chrome/browser/resources/extensions/activity_log/activity_log_history_item.ts
index 8282e27523a..9118dd947b2 100644
--- a/chromium/chrome/browser/resources/extensions/activity_log/activity_log_history_item.ts
+++ b/chromium/chrome/browser/resources/extensions/activity_log/activity_log_history_item.ts
@@ -1,11 +1,11 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
+// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
-import 'chrome://resources/cr_elements/cr_icons_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_icons.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import '../shared_style.css.js';
import '../shared_vars.css.js';
diff --git a/chromium/chrome/browser/resources/extensions/activity_log/activity_log_stream.ts b/chromium/chrome/browser/resources/extensions/activity_log/activity_log_stream.ts
index 456b2f1f666..888a7785d55 100644
--- a/chromium/chrome/browser/resources/extensions/activity_log/activity_log_stream.ts
+++ b/chromium/chrome/browser/resources/extensions/activity_log/activity_log_stream.ts
@@ -1,4 +1,4 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
+// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
diff --git a/chromium/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.ts b/chromium/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.ts
index 87190383c23..742f32d3f6a 100644
--- a/chromium/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.ts
+++ b/chromium/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.ts
@@ -1,10 +1,10 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
+// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
-import 'chrome://resources/cr_elements/cr_icons_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_icons.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import '../shared_style.css.js';
import '../shared_vars.css.js';
diff --git a/chromium/chrome/browser/resources/extensions/code_section.ts b/chromium/chrome/browser/resources/extensions/code_section.ts
index 45168defa8c..c75059e8a7d 100644
--- a/chromium/chrome/browser/resources/extensions/code_section.ts
+++ b/chromium/chrome/browser/resources/extensions/code_section.ts
@@ -1,15 +1,16 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import 'chrome://resources/cr_elements/hidden_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_hidden_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/polymer/v3_0/paper-styles/color.js';
import './strings.m.js';
-import {I18nMixin} from 'chrome://resources/js/i18n_mixin.js';
+import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
import {getTemplate} from './code_section.html.js';
diff --git a/chromium/chrome/browser/resources/extensions/detail_view.html b/chromium/chrome/browser/resources/extensions/detail_view.html
index 468973971fc..3f6aa133c21 100644
--- a/chromium/chrome/browser/resources/extensions/detail_view.html
+++ b/chromium/chrome/browser/resources/extensions/detail_view.html
@@ -89,6 +89,12 @@
width: 18px;
}
+ .link-icon-button {
+ --iron-icon-height: var(--cr-icon-size);
+ --iron-icon-width: var(--cr-icon-size);
+ margin-inline-start: 6px;
+ }
+
#allowlist-warning {
flex: 1;
}
@@ -111,6 +117,17 @@
padding: var(--cr-section-vertical-padding) var(--cr-section-padding);
}
+ #show-access-requests-toggle {
+ margin-inline-start: var(--cr-section-indent-width);
+ min-height: var(--cr-section-min-height);
+ padding: 0;
+ }
+
+ #access-toggle-and-link {
+ color: var(--cr-primary-text-color);
+ display: flex;
+ }
+
#load-path {
word-break: break-all;
}
@@ -349,6 +366,22 @@
item-id="[[data.id]]">
</extensions-host-permissions-toggle-list>
</template>
+ <template is="dom-if" if="[[showEnableAccessRequestsToggle_(
+ data.*, enableEnhancedSiteControls)]]">
+ <extensions-toggle-row id="show-access-requests-toggle"
+ checked="[[data.showAccessRequestsInToolbar]]"
+ class="hr"
+ on-change="onShowAccessRequestsChange_">
+ <div id="access-toggle-and-link">
+ <span>$i18n{itemShowAccessRequestsInToolbar}</span>
+ <a class="link-icon-button" aria-label="$i18n{learnMore}"
+ href="$i18n{showAccessRequestsInToolbarLearnMoreLink}"
+ target="_blank">
+ <iron-icon icon="cr:help-outline"></iron-icon>
+ </a>
+ </div>
+ </extensions-toggle-row>
+ </template>
</div>
</div>
</template>
diff --git a/chromium/chrome/browser/resources/extensions/detail_view.ts b/chromium/chrome/browser/resources/extensions/detail_view.ts
index c9cf18ee725..d428b42f5d2 100644
--- a/chromium/chrome/browser/resources/extensions/detail_view.ts
+++ b/chromium/chrome/browser/resources/extensions/detail_view.ts
@@ -1,18 +1,18 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
-import 'chrome://resources/cr_elements/cr_icons_css.m.js';
+import 'chrome://resources/cr_elements/cr_icons.css.js';
import 'chrome://resources/cr_elements/cr_link_row/cr_link_row.js';
import 'chrome://resources/cr_elements/cr_toggle/cr_toggle.js';
-import 'chrome://resources/cr_elements/icons.m.js';
-import 'chrome://resources/cr_elements/policy/cr_tooltip_icon.m.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/icons.html.js';
+import 'chrome://resources/cr_elements/policy/cr_tooltip_icon.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/js/action_link.js';
-import 'chrome://resources/cr_elements/action_link_css.m.js';
+import 'chrome://resources/cr_elements/action_link.css.js';
import 'chrome://resources/polymer/v3_0/iron-flex-layout/iron-flex-layout-classes.js';
import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
import 'chrome://resources/polymer/v3_0/paper-spinner/paper-spinner-lite.js';
@@ -26,8 +26,9 @@ import './toggle_row.js';
import {CrLinkRowElement} from 'chrome://resources/cr_elements/cr_link_row/cr_link_row.js';
import {CrToggleElement} from 'chrome://resources/cr_elements/cr_toggle/cr_toggle.js';
-import {CrTooltipIconElement} from 'chrome://resources/cr_elements/policy/cr_tooltip_icon.m.js';
-import {focusWithoutInk} from 'chrome://resources/js/cr/ui/focus_without_ink.m.js';
+import {CrTooltipIconElement} from 'chrome://resources/cr_elements/policy/cr_tooltip_icon.js';
+import {assert} from 'chrome://resources/js/assert_ts.js';
+import {focusWithoutInk} from 'chrome://resources/js/focus_without_ink.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {afterNextRender, DomRepeatEvent, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
@@ -336,6 +337,19 @@ export class ExtensionsDetailViewElement extends
!this.data.permissions.runtimeHostPermissions!.hasAllHosts;
}
+ private showEnableAccessRequestsToggle_(): boolean {
+ return this.showSiteAccessContent_() && this.enableEnhancedSiteControls;
+ }
+
+ private onShowAccessRequestsChange_() {
+ const showAccessRequestsToggle =
+ this.shadowRoot!.querySelector<ExtensionsToggleRowElement>(
+ '#show-access-requests-toggle');
+ assert(showAccessRequestsToggle);
+ this.delegate.setShowAccessRequestsInToolbar(
+ this.data.id, showAccessRequestsToggle.checked);
+ }
+
private showReloadButton_(): boolean {
return getEnableControl(this.data) === EnableControl.RELOAD;
}
diff --git a/chromium/chrome/browser/resources/extensions/drag_and_drop_handler.ts b/chromium/chrome/browser/resources/extensions/drag_and_drop_handler.ts
index 1bc79275dae..312188cb291 100644
--- a/chromium/chrome/browser/resources/extensions/drag_and_drop_handler.ts
+++ b/chromium/chrome/browser/resources/extensions/drag_and_drop_handler.ts
@@ -1,8 +1,8 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import {DragWrapperDelegate} from 'chrome://resources/js/cr/ui/drag_wrapper.js';
+import {DragWrapperDelegate} from 'chrome://resources/js/drag_wrapper.js';
import {Service} from './service.js';
diff --git a/chromium/chrome/browser/resources/extensions/drop_overlay.ts b/chromium/chrome/browser/resources/extensions/drop_overlay.ts
index 71fbbd667b2..fc800e74b6a 100644
--- a/chromium/chrome/browser/resources/extensions/drop_overlay.ts
+++ b/chromium/chrome/browser/resources/extensions/drop_overlay.ts
@@ -1,13 +1,13 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import 'chrome://resources/cr_elements/hidden_style_css.m.js';
-import 'chrome://resources/cr_elements/icons.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_hidden_style.css.js';
+import 'chrome://resources/cr_elements/icons.html.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
-import {DragWrapper} from 'chrome://resources/js/cr/ui/drag_wrapper.js';
+import {DragWrapper} from 'chrome://resources/js/drag_wrapper.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {DragAndDropHandler} from './drag_and_drop_handler.js';
diff --git a/chromium/chrome/browser/resources/extensions/error_page.ts b/chromium/chrome/browser/resources/extensions/error_page.ts
index a4ab62e8221..b2be34765ea 100644
--- a/chromium/chrome/browser/resources/extensions/error_page.ts
+++ b/chromium/chrome/browser/resources/extensions/error_page.ts
@@ -1,13 +1,13 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
-import 'chrome://resources/cr_elements/cr_icons_css.m.js';
-import 'chrome://resources/cr_elements/icons.m.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_icons.css.js';
+import 'chrome://resources/cr_elements/icons.html.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
import 'chrome://resources/polymer/v3_0/paper-styles/color.js';
@@ -16,8 +16,8 @@ import './shared_style.css.js';
import {CrContainerShadowMixin} from 'chrome://resources/cr_elements/cr_container_shadow_mixin.js';
import {assert, assertNotReached} from 'chrome://resources/js/assert_ts.js';
-import {FocusOutlineManager} from 'chrome://resources/js/cr/ui/focus_outline_manager.m.js';
-import {focusWithoutInk} from 'chrome://resources/js/cr/ui/focus_without_ink.m.js';
+import {FocusOutlineManager} from 'chrome://resources/js/focus_outline_manager.js';
+import {focusWithoutInk} from 'chrome://resources/js/focus_without_ink.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {afterNextRender, DomRepeatEvent, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chromium/chrome/browser/resources/extensions/extensions.ts b/chromium/chrome/browser/resources/extensions/extensions.ts
index 4d1af5fe906..915b5517fa2 100644
--- a/chromium/chrome/browser/resources/extensions/extensions.ts
+++ b/chromium/chrome/browser/resources/extensions/extensions.ts
@@ -1,4 +1,4 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
+// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
diff --git a/chromium/chrome/browser/resources/extensions/host_permissions_toggle_list.ts b/chromium/chrome/browser/resources/extensions/host_permissions_toggle_list.ts
index ba48b6b7734..8a0822f1411 100644
--- a/chromium/chrome/browser/resources/extensions/host_permissions_toggle_list.ts
+++ b/chromium/chrome/browser/resources/extensions/host_permissions_toggle_list.ts
@@ -1,10 +1,10 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
+// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
-import 'chrome://resources/cr_elements/icons.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
+import 'chrome://resources/cr_elements/icons.html.js';
import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
import './restricted_sites_dialog.js';
import './toggle_row.js';
@@ -187,7 +187,7 @@ export class ExtensionsHostPermissionsToggleListElement extends
this.delegate.addRuntimeHostPermission(this.itemId, this.selectedHost_)
.then(() => {
this.delegate.removeUserSpecifiedSites(
- chrome.developerPrivate.UserSiteSet.RESTRICTED,
+ chrome.developerPrivate.SiteSet.USER_RESTRICTED,
this.matchingRestrictedSites_);
})
.finally(() => {
diff --git a/chromium/chrome/browser/resources/extensions/install_warnings_dialog.ts b/chromium/chrome/browser/resources/extensions/install_warnings_dialog.ts
index 2a43d640d9e..db047f92ea9 100644
--- a/chromium/chrome/browser/resources/extensions/install_warnings_dialog.ts
+++ b/chromium/chrome/browser/resources/extensions/install_warnings_dialog.ts
@@ -1,15 +1,16 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
import 'chrome://resources/polymer/v3_0/paper-styles/color.js';
import './code_section.js';
import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
import {getTemplate} from './install_warnings_dialog.html.js';
interface ExtensionsInstallWarningsDialogElement {
diff --git a/chromium/chrome/browser/resources/extensions/item.ts b/chromium/chrome/browser/resources/extensions/item.ts
index 42bd3ccec84..4ab6c109492 100644
--- a/chromium/chrome/browser/resources/extensions/item.ts
+++ b/chromium/chrome/browser/resources/extensions/item.ts
@@ -1,17 +1,17 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
+// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
-import 'chrome://resources/cr_elements/cr_icons_css.m.js';
+import 'chrome://resources/cr_elements/cr_icons.css.js';
import 'chrome://resources/cr_elements/cr_toggle/cr_toggle.js';
-import 'chrome://resources/cr_elements/hidden_style_css.m.js';
-import 'chrome://resources/cr_elements/icons.m.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_hidden_style.css.js';
+import 'chrome://resources/cr_elements/icons.html.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/js/action_link.js';
-import 'chrome://resources/cr_elements/action_link_css.m.js';
+import 'chrome://resources/cr_elements/action_link.css.js';
import './icons.html.js';
import './shared_style.css.js';
import './shared_vars.css.js';
@@ -24,7 +24,7 @@ import {ChromeEvent} from '/tools/typescript/definitions/chrome_event.js';
import {getToastManager} from 'chrome://resources/cr_elements/cr_toast/cr_toast_manager.js';
import {CrToggleElement} from 'chrome://resources/cr_elements/cr_toggle/cr_toggle.js';
import {assert, assertNotReached} from 'chrome://resources/js/assert_ts.js';
-import {I18nMixin} from 'chrome://resources/js/i18n_mixin.js';
+import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
import {flush, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {getTemplate} from './item.html.js';
@@ -50,6 +50,7 @@ export interface ItemDelegate {
getExtensionSize(id: string): Promise<string>;
addRuntimeHostPermission(id: string, host: string): Promise<void>;
removeRuntimeHostPermission(id: string, host: string): Promise<void>;
+ setShowAccessRequestsInToolbar(id: string, showRequests: boolean): void;
// TODO(tjudkins): This function is not specific to items, so should be pulled
// out to a more generic place when we need to access it from elsewhere.
@@ -139,7 +140,7 @@ export class ExtensionsItemElement extends ExtensionsItemElementBase {
const idElement = this.shadowRoot!.querySelector('#extension-id');
if (idElement) {
assert(this.data);
- idElement.innerHTML = this.i18n('itemId', this.data.id);
+ idElement.textContent = this.i18n('itemId', this.data.id);
}
}
diff --git a/chromium/chrome/browser/resources/extensions/item_list.ts b/chromium/chrome/browser/resources/extensions/item_list.ts
index c8943c3e392..7b813a3c34a 100644
--- a/chromium/chrome/browser/resources/extensions/item_list.ts
+++ b/chromium/chrome/browser/resources/extensions/item_list.ts
@@ -1,4 +1,4 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
+// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -7,7 +7,7 @@ import './item.js';
import './shared_style.css.js';
import {CrContainerShadowMixin} from 'chrome://resources/cr_elements/cr_container_shadow_mixin.js';
-import {I18nMixin} from 'chrome://resources/js/i18n_mixin.js';
+import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
import {IronA11yAnnouncer} from 'chrome://resources/polymer/v3_0/iron-a11y-announcer/iron-a11y-announcer.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chromium/chrome/browser/resources/extensions/item_mixin.ts b/chromium/chrome/browser/resources/extensions/item_mixin.ts
index e0a1f88d47e..15291b22258 100644
--- a/chromium/chrome/browser/resources/extensions/item_mixin.ts
+++ b/chromium/chrome/browser/resources/extensions/item_mixin.ts
@@ -1,4 +1,4 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
diff --git a/chromium/chrome/browser/resources/extensions/item_util.ts b/chromium/chrome/browser/resources/extensions/item_util.ts
index e93af1d2b45..846bff5e7b4 100644
--- a/chromium/chrome/browser/resources/extensions/item_util.ts
+++ b/chromium/chrome/browser/resources/extensions/item_util.ts
@@ -1,4 +1,4 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
diff --git a/chromium/chrome/browser/resources/extensions/keyboard_shortcut_delegate.ts b/chromium/chrome/browser/resources/extensions/keyboard_shortcut_delegate.ts
index c76bf5ffc3f..c47764efbe4 100644
--- a/chromium/chrome/browser/resources/extensions/keyboard_shortcut_delegate.ts
+++ b/chromium/chrome/browser/resources/extensions/keyboard_shortcut_delegate.ts
@@ -1,4 +1,4 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
+// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
diff --git a/chromium/chrome/browser/resources/extensions/keyboard_shortcuts.ts b/chromium/chrome/browser/resources/extensions/keyboard_shortcuts.ts
index e1a88de5092..34e54fc9184 100644
--- a/chromium/chrome/browser/resources/extensions/keyboard_shortcuts.ts
+++ b/chromium/chrome/browser/resources/extensions/keyboard_shortcuts.ts
@@ -1,10 +1,10 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
-import 'chrome://resources/cr_elements/md_select_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
+import 'chrome://resources/cr_elements/md_select.css.js';
import 'chrome://resources/polymer/v3_0/paper-styles/color.js';
import './shortcut_input.js';
diff --git a/chromium/chrome/browser/resources/extensions/kiosk_browser_proxy.ts b/chromium/chrome/browser/resources/extensions/kiosk_browser_proxy.ts
index e8cc16def9c..52223f6dcb3 100644
--- a/chromium/chrome/browser/resources/extensions/kiosk_browser_proxy.ts
+++ b/chromium/chrome/browser/resources/extensions/kiosk_browser_proxy.ts
@@ -1,4 +1,4 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
diff --git a/chromium/chrome/browser/resources/extensions/kiosk_dialog.ts b/chromium/chrome/browser/resources/extensions/kiosk_dialog.ts
index 956bd896902..0fad8aab7e1 100644
--- a/chromium/chrome/browser/resources/extensions/kiosk_dialog.ts
+++ b/chromium/chrome/browser/resources/extensions/kiosk_dialog.ts
@@ -1,4 +1,4 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -6,16 +6,16 @@ import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.js';
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
-import 'chrome://resources/cr_elements/cr_icons_css.m.js';
+import 'chrome://resources/cr_elements/cr_icons.css.js';
import 'chrome://resources/cr_elements/cr_input/cr_input.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
import {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js';
import {CrCheckboxElement} from 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.js';
import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import {CrInputElement} from 'chrome://resources/cr_elements/cr_input/cr_input.js';
import {assert} from 'chrome://resources/js/assert_ts.js';
-import {WebUIListenerMixin} from 'chrome://resources/js/web_ui_listener_mixin.js';
+import {WebUIListenerMixin} from 'chrome://resources/cr_elements/web_ui_listener_mixin.js';
import {DomRepeatEvent, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {KioskApp, KioskAppSettings, KioskBrowserProxy, KioskBrowserProxyImpl} from './kiosk_browser_proxy.js';
diff --git a/chromium/chrome/browser/resources/extensions/load_error.ts b/chromium/chrome/browser/resources/extensions/load_error.ts
index e0d17a5a27b..e02f7d9689a 100644
--- a/chromium/chrome/browser/resources/extensions/load_error.ts
+++ b/chromium/chrome/browser/resources/extensions/load_error.ts
@@ -1,10 +1,10 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
import 'chrome://resources/polymer/v3_0/paper-spinner/paper-spinner-lite.js';
import './code_section.js';
import './strings.m.js';
diff --git a/chromium/chrome/browser/resources/extensions/manager.html b/chromium/chrome/browser/resources/extensions/manager.html
index ec2594bfef4..8945c4ae90a 100644
--- a/chromium/chrome/browser/resources/extensions/manager.html
+++ b/chromium/chrome/browser/resources/extensions/manager.html
@@ -75,13 +75,15 @@
<cr-lazy-render id="site-permissions">
<template>
<extensions-site-permissions delegate="[[delegate]]" slot="view"
+ extensions="[[extensions_]]"
enable-enhanced-site-controls="[[enableEnhancedSiteControls]]">
</extensions-site-permissions>
</template>
</cr-lazy-render>
<cr-lazy-render id="site-permissions-by-site">
<template>
- <extensions-site-permissions-by-site delegate="[[delegate]]" slot="view">
+ <extensions-site-permissions-by-site delegate="[[delegate]]" slot="view"
+ extensions="[[extensions_]]">
</extensions-site-permissions-by-site>
</template>
</cr-lazy-render>
diff --git a/chromium/chrome/browser/resources/extensions/manager.ts b/chromium/chrome/browser/resources/extensions/manager.ts
index 7508b624fed..848a5b15b31 100644
--- a/chromium/chrome/browser/resources/extensions/manager.ts
+++ b/chromium/chrome/browser/resources/extensions/manager.ts
@@ -1,4 +1,4 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
+// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -7,8 +7,8 @@ import 'chrome://resources/cr_elements/cr_lazy_render/cr_lazy_render.js';
import 'chrome://resources/cr_elements/cr_toast/cr_toast_manager.js';
import 'chrome://resources/cr_elements/cr_toolbar/cr_toolbar.js';
import 'chrome://resources/cr_elements/cr_view_manager/cr_view_manager.js';
-import 'chrome://resources/cr_elements/hidden_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_hidden_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import './activity_log/activity_log.js';
import './detail_view.js';
import './drop_overlay.js';
diff --git a/chromium/chrome/browser/resources/extensions/navigation_helper.ts b/chromium/chrome/browser/resources/extensions/navigation_helper.ts
index 64d54fe8834..c6ee19e0d7c 100644
--- a/chromium/chrome/browser/resources/extensions/navigation_helper.ts
+++ b/chromium/chrome/browser/resources/extensions/navigation_helper.ts
@@ -1,4 +1,4 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
diff --git a/chromium/chrome/browser/resources/extensions/options_dialog.ts b/chromium/chrome/browser/resources/extensions/options_dialog.ts
index dcb8191185e..5ee9f754020 100644
--- a/chromium/chrome/browser/resources/extensions/options_dialog.ts
+++ b/chromium/chrome/browser/resources/extensions/options_dialog.ts
@@ -1,11 +1,11 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
-import {EventTracker} from 'chrome://resources/js/event_tracker.m.js';
+import {EventTracker} from 'chrome://resources/js/event_tracker.js';
import {Debouncer, PolymerElement, timeOut} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {navigation, Page} from './navigation_helper.js';
diff --git a/chromium/chrome/browser/resources/extensions/pack_dialog.ts b/chromium/chrome/browser/resources/extensions/pack_dialog.ts
index f7e7b99115c..fbcffdd63a1 100644
--- a/chromium/chrome/browser/resources/extensions/pack_dialog.ts
+++ b/chromium/chrome/browser/resources/extensions/pack_dialog.ts
@@ -1,18 +1,19 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import 'chrome://resources/cr_elements/cr_input/cr_input.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import './pack_dialog_alert.js';
import './strings.m.js';
import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import {CrInputElement} from 'chrome://resources/cr_elements/cr_input/cr_input.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
import {getTemplate} from './pack_dialog.html.js';
export interface PackDialogDelegate {
diff --git a/chromium/chrome/browser/resources/extensions/pack_dialog_alert.ts b/chromium/chrome/browser/resources/extensions/pack_dialog_alert.ts
index e2609cbaaa1..2945a8c886c 100644
--- a/chromium/chrome/browser/resources/extensions/pack_dialog_alert.ts
+++ b/chromium/chrome/browser/resources/extensions/pack_dialog_alert.ts
@@ -1,15 +1,16 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import {assert, assertNotReached} from 'chrome://resources/js/assert_ts.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
import {getTemplate} from './pack_dialog_alert.html.js';
export interface ExtensionsPackDialogAlertElement {
diff --git a/chromium/chrome/browser/resources/extensions/restricted_sites_dialog.ts b/chromium/chrome/browser/resources/extensions/restricted_sites_dialog.ts
index 713bff015dc..71c88cf5e22 100644
--- a/chromium/chrome/browser/resources/extensions/restricted_sites_dialog.ts
+++ b/chromium/chrome/browser/resources/extensions/restricted_sites_dialog.ts
@@ -1,17 +1,17 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
+// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
import './strings.m.js';
import './shared_style.css.js';
import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
-import {I18nMixin} from 'chrome://resources/js/i18n_mixin.js';
+import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {getTemplate} from './restricted_sites_dialog.html.js';
diff --git a/chromium/chrome/browser/resources/extensions/runtime_host_permissions.ts b/chromium/chrome/browser/resources/extensions/runtime_host_permissions.ts
index 35147c7ba55..0d0fa2d9ed2 100644
--- a/chromium/chrome/browser/resources/extensions/runtime_host_permissions.ts
+++ b/chromium/chrome/browser/resources/extensions/runtime_host_permissions.ts
@@ -1,4 +1,4 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
+// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -8,12 +8,12 @@ import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
import 'chrome://resources/cr_elements/cr_radio_group/cr_radio_group.js';
import 'chrome://resources/cr_elements/cr_radio_button/cr_radio_button.js';
-import 'chrome://resources/cr_elements/icons.m.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/icons.html.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/js/action_link.js';
-import 'chrome://resources/cr_elements/action_link_css.m.js';
-import 'chrome://resources/cr_elements/md_select_css.m.js';
+import 'chrome://resources/cr_elements/action_link.css.js';
+import 'chrome://resources/cr_elements/md_select.css.js';
import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
import './runtime_hosts_dialog.js';
import './shared_style.css.js';
@@ -22,7 +22,7 @@ import './strings.m.js';
import {CrActionMenuElement} from 'chrome://resources/cr_elements/cr_action_menu/cr_action_menu.js';
import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import {assert} from 'chrome://resources/js/assert_ts.js';
-import {focusWithoutInk} from 'chrome://resources/js/cr/ui/focus_without_ink.m.js';
+import {focusWithoutInk} from 'chrome://resources/js/focus_without_ink.js';
import {DomRepeatEvent, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {ItemDelegate} from './item.js';
diff --git a/chromium/chrome/browser/resources/extensions/runtime_hosts_dialog.ts b/chromium/chrome/browser/resources/extensions/runtime_hosts_dialog.ts
index b4ab5c417be..226aabf734a 100644
--- a/chromium/chrome/browser/resources/extensions/runtime_hosts_dialog.ts
+++ b/chromium/chrome/browser/resources/extensions/runtime_hosts_dialog.ts
@@ -1,12 +1,12 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
+// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import 'chrome://resources/cr_elements/cr_input/cr_input.js';
-import 'chrome://resources/cr_elements/icons.m.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
+import 'chrome://resources/cr_elements/icons.html.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
import './strings.m.js';
import './shared_vars.css.js';
@@ -14,7 +14,7 @@ import './shared_vars.css.js';
import {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js';
import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import {assert} from 'chrome://resources/js/assert_ts.js';
-import {I18nMixin} from 'chrome://resources/js/i18n_mixin.js';
+import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
@@ -283,7 +283,7 @@ export class ExtensionsRuntimeHostsDialogElement extends
() => {
if (restrictedSites.length) {
this.delegate.removeUserSpecifiedSites(
- chrome.developerPrivate.UserSiteSet.RESTRICTED,
+ chrome.developerPrivate.SiteSet.USER_RESTRICTED,
restrictedSites);
}
this.$.dialog.close();
diff --git a/chromium/chrome/browser/resources/extensions/service.ts b/chromium/chrome/browser/resources/extensions/service.ts
index 41c8c55690c..2b1ea327bff 100644
--- a/chromium/chrome/browser/resources/extensions/service.ts
+++ b/chromium/chrome/browser/resources/extensions/service.ts
@@ -1,4 +1,4 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
+// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -477,20 +477,19 @@ export class Service implements ServiceInterface {
}
addUserSpecifiedSites(
- siteSet: chrome.developerPrivate.UserSiteSet,
+ siteSet: chrome.developerPrivate.SiteSet,
hosts: string[]): Promise<void> {
return new Promise(function(resolve) {
- chrome.developerPrivate.addUserSpecifiedSites(
- {siteList: siteSet, hosts}, resolve);
+ chrome.developerPrivate.addUserSpecifiedSites({siteSet, hosts}, resolve);
});
}
removeUserSpecifiedSites(
- siteSet: chrome.developerPrivate.UserSiteSet,
+ siteSet: chrome.developerPrivate.SiteSet,
hosts: string[]): Promise<void> {
return new Promise(function(resolve) {
chrome.developerPrivate.removeUserSpecifiedSites(
- {siteList: siteSet, hosts}, resolve);
+ {siteSet, hosts}, resolve);
});
}
@@ -501,10 +500,22 @@ export class Service implements ServiceInterface {
});
}
+ getMatchingExtensionsForSite(site: string):
+ Promise<chrome.developerPrivate.MatchingExtensionInfo[]> {
+ return chrome.developerPrivate.getMatchingExtensionsForSite(site);
+ }
+
getUserSiteSettingsChangedTarget() {
return chrome.developerPrivate.onUserSiteSettingsChanged;
}
+ setShowAccessRequestsInToolbar(id: string, showRequests: boolean) {
+ chrome.developerPrivate.updateExtensionConfiguration({
+ extensionId: id,
+ showAccessRequestsInToolbar: showRequests,
+ });
+ }
+
static getInstance(): ServiceInterface {
return instance || (instance = new Service());
}
diff --git a/chromium/chrome/browser/resources/extensions/shared_style.css b/chromium/chrome/browser/resources/extensions/shared_style.css
index 1bbd2fcc426..1d00f9111a4 100644
--- a/chromium/chrome/browser/resources/extensions/shared_style.css
+++ b/chromium/chrome/browser/resources/extensions/shared_style.css
@@ -1,18 +1,17 @@
-/* Copyright 2022 The Chromium Authors. All rights reserved.
+/* Copyright 2022 The Chromium Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
/* #css_wrapper_metadata_start
* #type=style
- * #import=chrome://resources/cr_elements/shared_style_css.m.js
- * #import=chrome://resources/cr_elements/shared_vars_css.m.js
+ * #import=chrome://resources/cr_elements/cr_shared_style.css.js
+ * #import=chrome://resources/cr_elements/cr_shared_vars.css.js
* #import=./shared_vars.css.js
* #include=cr-shared-style
* #css_wrapper_metadata_end */
a[href] {
color: var(--cr-link-color);
- text-decoration: none;
}
.activity-message {
diff --git a/chromium/chrome/browser/resources/extensions/shared_vars.css b/chromium/chrome/browser/resources/extensions/shared_vars.css
index eaa0e1f4448..7c3c0106eef 100644
--- a/chromium/chrome/browser/resources/extensions/shared_vars.css
+++ b/chromium/chrome/browser/resources/extensions/shared_vars.css
@@ -1,10 +1,10 @@
-/* Copyright 2022 The Chromium Authors. All rights reserved.
+/* Copyright 2022 The Chromium Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
/* #css_wrapper_metadata_start
* #type=vars
- * #import=chrome://resources/cr_elements/shared_vars_css.m.js
+ * #import=chrome://resources/cr_elements/cr_shared_vars.css.js
* #import=chrome://resources/polymer/v3_0/paper-styles/color.js
* #css_wrapper_metadata_end */
diff --git a/chromium/chrome/browser/resources/extensions/shortcut_input.ts b/chromium/chrome/browser/resources/extensions/shortcut_input.ts
index 1a203e1e202..b0d169e238a 100644
--- a/chromium/chrome/browser/resources/extensions/shortcut_input.ts
+++ b/chromium/chrome/browser/resources/extensions/shortcut_input.ts
@@ -1,16 +1,16 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
-import 'chrome://resources/cr_elements/cr_icons_css.m.js';
+import 'chrome://resources/cr_elements/cr_icons.css.js';
import 'chrome://resources/cr_elements/cr_input/cr_input.js';
-import 'chrome://resources/cr_elements/hidden_style_css.m.js';
+import 'chrome://resources/cr_elements/cr_hidden_style.css.js';
import 'chrome://resources/polymer/v3_0/paper-styles/color.js';
import {CrInputElement} from 'chrome://resources/cr_elements/cr_input/cr_input.js';
import {assert} from 'chrome://resources/js/assert_ts.js';
-import {I18nMixin} from 'chrome://resources/js/i18n_mixin.js';
+import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
import {IronA11yAnnouncer} from 'chrome://resources/polymer/v3_0/iron-a11y-announcer/iron-a11y-announcer.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chromium/chrome/browser/resources/extensions/shortcut_util.ts b/chromium/chrome/browser/resources/extensions/shortcut_util.ts
index ec52f41d517..30a07081803 100644
--- a/chromium/chrome/browser/resources/extensions/shortcut_util.ts
+++ b/chromium/chrome/browser/resources/extensions/shortcut_util.ts
@@ -1,4 +1,4 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
diff --git a/chromium/chrome/browser/resources/extensions/sidebar.ts b/chromium/chrome/browser/resources/extensions/sidebar.ts
index cec19809646..84501e04a1c 100644
--- a/chromium/chrome/browser/resources/extensions/sidebar.ts
+++ b/chromium/chrome/browser/resources/extensions/sidebar.ts
@@ -1,8 +1,8 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
+// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import 'chrome://resources/cr_elements/cr_icons_css.m.js';
-import 'chrome://resources/cr_elements/hidden_style_css.m.js';
+import 'chrome://resources/cr_elements/cr_icons.css.js';
+import 'chrome://resources/cr_elements/cr_hidden_style.css.js';
import 'chrome://resources/polymer/v3_0/iron-selector/iron-selector.js';
import 'chrome://resources/polymer/v3_0/paper-ripple/paper-ripple.js';
import 'chrome://resources/polymer/v3_0/paper-styles/color.js';
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions.html b/chromium/chrome/browser/resources/extensions/site_permissions.html
index 4f77ebc2fd3..afa8d0f2472 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions.html
+++ b/chromium/chrome/browser/resources/extensions/site_permissions.html
@@ -33,13 +33,15 @@
<div id="site-lists">
<site-permissions-list
delegate="[[delegate]]"
+ extensions="[[extensions]]"
header="$i18n{permittedSites}"
- site-set="[[userSiteSetEnum_.PERMITTED]]"
+ site-set="[[siteSetEnum_.USER_PERMITTED]]"
sites="[[permittedSites]]"></site-permissions-list>
<site-permissions-list
delegate="[[delegate]]"
+ extensions="[[extensions]]"
header="$i18n{restrictedSites}"
- site-set="[[userSiteSetEnum_.RESTRICTED]]"
+ site-set="[[siteSetEnum_.USER_RESTRICTED]]"
sites="[[restrictedSites]]"></site-permissions-list>
</div>
<cr-link-row class="hr" id="allSitesLink"
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions.ts b/chromium/chrome/browser/resources/extensions/site_permissions.ts
index 4b1912e0a6e..477a6fa6231 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions.ts
+++ b/chromium/chrome/browser/resources/extensions/site_permissions.ts
@@ -1,10 +1,10 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
+// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_link_row/cr_link_row.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import './strings.m.js';
import './shared_style.css.js';
import './shared_vars.css.js';
@@ -37,13 +37,17 @@ export class ExtensionsSitePermissionsElement extends
static get properties() {
return {
- userSiteSetEnum_: {
+ extensions: Array,
+
+ siteSetEnum_: {
type: Object,
- value: chrome.developerPrivate.UserSiteSet,
+ value: chrome.developerPrivate.SiteSet,
},
};
}
+ extensions: chrome.developerPrivate.ExtensionInfo[];
+
private onAllSitesLinkClick_() {
navigation.navigateTo({page: Page.SITE_PERMISSIONS_ALL_SITES});
}
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions_by_site.html b/chromium/chrome/browser/resources/extensions/site_permissions_by_site.html
index deed7ad37ed..47a84260683 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions_by_site.html
+++ b/chromium/chrome/browser/resources/extensions/site_permissions_by_site.html
@@ -22,6 +22,7 @@
<div id="site-groups">
<template is="dom-repeat" items="[[siteGroups_]]">
<site-permissions-site-group data="[[item]]" delegate="[[delegate]]"
+ extensions="[[extensions]]"
list-index="[[index]]">
</site-permissions-site-group>
</template>
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions_by_site.ts b/chromium/chrome/browser/resources/extensions/site_permissions_by_site.ts
index 4cf152313d8..4d96a668daa 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions_by_site.ts
+++ b/chromium/chrome/browser/resources/extensions/site_permissions_by_site.ts
@@ -1,9 +1,9 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
+// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
import './shared_style.css.js';
import './shared_vars.css.js';
import './site_permissions_site_group.js';
@@ -34,6 +34,7 @@ export class ExtensionsSitePermissionsBySiteElement extends PolymerElement {
static get properties() {
return {
delegate: Object,
+ extensions: Array,
siteGroups_: {
type: Array,
@@ -43,6 +44,7 @@ export class ExtensionsSitePermissionsBySiteElement extends PolymerElement {
}
delegate: ItemDelegate&SiteSettingsDelegate;
+ extensions: chrome.developerPrivate.ExtensionInfo[];
private siteGroups_: chrome.developerPrivate.SiteGroup[];
override ready() {
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions_edit_permissions_dialog.html b/chromium/chrome/browser/resources/extensions/site_permissions_edit_permissions_dialog.html
index 7f89b94955a..4abbbb093a2 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions_edit_permissions_dialog.html
+++ b/chromium/chrome/browser/resources/extensions/site_permissions_edit_permissions_dialog.html
@@ -1,21 +1,98 @@
-<style include="cr-shared-style">
+<style include="cr-shared-style md-select">
+ :host {
+ --radio-group-height: 132px;
+ --dialog-height: 360px;
+ }
+
cr-radio-group {
- width: 100%;
+ height: var(--radio-group-height);
+ padding-inline: 8px;
+ }
+
+ .site-access-list {
+ max-height: var(--dialog-height);
+ }
+
+ .indented-site-access-list {
+ margin-inline-start: 36px;
+ max-height: calc(var(--dialog-height) - var(--radio-group-height));
+ }
+
+ .extension-row {
+ --md-select-width: 180px;
+ align-items: center;
+ border-top: var(--cr-separator-line);
+ display: flex;
+ height: 32px;
+ padding: 12px 0;
+ }
+
+ .extension-row:first-child {
+ border-top: none;
+ }
+
+ .extension-icon {
+ height: 24px;
+ margin-inline-end: 12px;
+ width: 24px;
+ }
+
+ .extension-name {
+ flex-grow: 1;
+ margin-inline-end: 12px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
</style>
<cr-dialog id="dialog" show-on-attach>
<div slot="title">[[computeDialogTitle_(site)]]</div>
+ <div slot="header">
+ <!-- The cr-radio-group is in the header instead of the body slot so it is
+ fixed in place while the list of extensions in the body slot can scroll
+ if the dialog's contents exceed the max height. -->
+ <template is="dom-if" if="[[!matchesSubdomains_(site)]]">
+ <cr-radio-group selected="{{siteSet_}}">
+ <cr-radio-button
+ name="[[siteSetEnum_.USER_PERMITTED]]"
+ label="[[getPermittedSiteLabel_(site)]]">
+ </cr-radio-button>
+ <cr-radio-button
+ name="[[siteSetEnum_.USER_RESTRICTED]]"
+ label="[[getRestrictedSiteLabel_(site)]]">
+ </cr-radio-button>
+ <cr-radio-button
+ name="[[siteSetEnum_.EXTENSION_SPECIFIED]]"
+ label="$i18n{editSitePermissionsCustomizePerExtension}">
+ </cr-radio-button>
+ </cr-radio-group>
+ </template>
+ </div>
<div slot="body">
- <cr-radio-group selected="{{siteSet_}}">
- <cr-radio-button
- name="[[userSiteSetEnum_.PERMITTED]]"
- label="[[getPermittedSiteLabel_(site)]]">
- </cr-radio-button>
- <cr-radio-button
- name="[[userSiteSetEnum_.RESTRICTED]]"
- label="[[getRestrictedSiteLabel_(site)]]">
- </cr-radio-button>
- </cr-radio-group>
+ <template is="dom-if" if="[[showExtensionSiteAccessData_(siteSet_)]]">
+ <div class$="[[getDialogBodyContainerClass_(site)]]">
+ <template is="dom-repeat" items="[[extensionSiteAccessData_]]">
+ <div class="extension-row">
+ <img class="extension-icon" src="[[item.iconUrl]]" alt="">
+ <span class="extension-name">[[item.name]]</span>
+ <!-- TODO(crbug.com/1253673): Enable these after implementing an API
+ method to edit site access for multiple extensions. -->
+ <select class="extension-host-access md-select"
+ value="[[item.siteAccess]]" disabled>
+ <option value="[[hostAccessEnum_.ON_CLICK]]">
+ $i18n{sitePermissionsOnClick}
+ </option>
+ <option value="[[hostAccessEnum_.ON_SPECIFIC_SITES]]">
+ $i18n{sitePermissionsAlwaysOnThisSite}
+ </option>
+ <option value="[[hostAccessEnum_.ON_ALL_SITES]]">
+ $i18n{sitePermissionsAlwaysOnAllSites}
+ </option>
+ </select>
+ </div>
+ </template>
+ </div>
+ </template>
</div>
<div slot="button-container">
<cr-button class="cancel-button" on-click="onCancelClick_">
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions_edit_permissions_dialog.ts b/chromium/chrome/browser/resources/extensions/site_permissions_edit_permissions_dialog.ts
index 8e14e3b101c..4975b8c1b7e 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions_edit_permissions_dialog.ts
+++ b/chromium/chrome/browser/resources/extensions/site_permissions_edit_permissions_dialog.ts
@@ -1,4 +1,4 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
+// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -6,17 +6,26 @@ import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import 'chrome://resources/cr_elements/cr_radio_button/cr_radio_button.js';
import 'chrome://resources/cr_elements/cr_radio_group/cr_radio_group.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/md_select.css.js';
import './strings.m.js';
import {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js';
import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
-import {I18nMixin} from 'chrome://resources/js/i18n_mixin.js';
+import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
+import {assert} from 'chrome://resources/js/assert_ts.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {getTemplate} from './site_permissions_edit_permissions_dialog.html.js';
import {SiteSettingsDelegate} from './site_settings_mixin.js';
+interface ExtensionSiteAccessInfo {
+ id: string;
+ name: string;
+ iconUrl: string;
+ siteAccess: string;
+}
+
export interface SitePermissionsEditPermissionsDialogElement {
$: {
dialog: CrDialogElement,
@@ -24,6 +33,26 @@ export interface SitePermissionsEditPermissionsDialogElement {
};
}
+const EXTENSION_SPECIFIED = chrome.developerPrivate.SiteSet.EXTENSION_SPECIFIED;
+
+// A list of possible schemes that can be specified by extension host
+// permissions. This is derived from URLPattern::SchemeMasks.
+const VALID_SCHEMES = [
+ '*',
+ 'http',
+ 'https',
+ 'file',
+ 'ftp',
+ 'chrome',
+ 'chrome-extension',
+ 'filesystem',
+ 'ftp',
+ 'ws',
+ 'wss',
+ 'data',
+ 'uuid-in-package',
+];
+
const SitePermissionsEditPermissionsDialogElementBase =
I18nMixin(PolymerElement);
@@ -40,10 +69,16 @@ export class SitePermissionsEditPermissionsDialogElement extends
static get properties() {
return {
delegate: Object,
+ extensions: {
+ type: Array,
+ value: () => [],
+ observer: 'onExtensionsUpdated_',
+ },
/**
* The current siteSet for `site`, as stored in the backend. Specifies
- * whether `site` is a user specified permitted or restricted site.
+ * whether `site` is a user specified permitted or restricted site, or is
+ * a pattern specified by an extension's host permissions..
*/
originalSiteSet: String,
@@ -56,23 +91,97 @@ export class SitePermissionsEditPermissionsDialogElement extends
* The temporary siteSet for `site` as displayed in the dialog. Will be
* saved to the backend when the dialog is submitted.
*/
- siteSet_: String,
+ siteSet_: {
+ type: String,
+ observer: 'onSiteSetUpdated_',
+ },
- userSiteSetEnum_: {
+ siteSetEnum_: {
type: Object,
- value: chrome.developerPrivate.UserSiteSet,
+ value: chrome.developerPrivate.SiteSet,
+ },
+
+ extensionSiteAccessData_: {
+ type: Array,
+ value: () => [],
+ },
+
+ /**
+ * Proxying the enum to be used easily by the html template.
+ */
+ hostAccessEnum_: {
+ type: Object,
+ value: chrome.developerPrivate.HostAccess,
},
};
}
delegate: SiteSettingsDelegate;
- originalSiteSet: chrome.developerPrivate.UserSiteSet;
+ extensions: chrome.developerPrivate.ExtensionInfo[];
+ originalSiteSet: chrome.developerPrivate.SiteSet;
site: string;
- private siteSet_: chrome.developerPrivate.UserSiteSet;
+ private siteSet_: chrome.developerPrivate.SiteSet;
+ private extensionsIdToInfo_:
+ Map<string, chrome.developerPrivate.ExtensionInfo>;
+ private extensionSiteAccessData_: ExtensionSiteAccessInfo[];
- override connectedCallback() {
- super.connectedCallback();
+ override ready() {
+ super.ready();
this.siteSet_ = this.originalSiteSet;
+
+ // If `this.site` matches subdomains, then it should not be a user specified
+ // site.
+ assert(
+ !this.matchesSubdomains_() ||
+ this.originalSiteSet === EXTENSION_SPECIFIED);
+
+ this.updateExtensionSiteAccessData_(this.siteSet_);
+ }
+
+ private onExtensionsUpdated_(extensions:
+ chrome.developerPrivate.ExtensionInfo[]) {
+ this.extensionsIdToInfo_ = new Map();
+ for (const extension of extensions) {
+ this.extensionsIdToInfo_.set(extension.id, extension);
+ }
+ this.updateExtensionSiteAccessData_(this.siteSet_);
+ }
+
+ private onSiteSetUpdated_(siteSet: chrome.developerPrivate.SiteSet) {
+ this.updateExtensionSiteAccessData_(siteSet);
+ }
+
+ // Returns true if this.site is a just a host by checking whether or not it
+ // starts with a valid scheme. If not, assume the site is a full URL.
+ // Different components that use this dialog may supply either a URL or just a
+ // host.
+ private isSiteHostOnly_(): boolean {
+ return !VALID_SCHEMES.some(scheme => this.site.startsWith(`${scheme}://`));
+ }
+
+ // Fetches all extensions that have requested access to `this.site` along with
+ // their access status. This information is joined with some fields in
+ // `this.extensions` to update `this.extensionSiteAccessData_`.
+ private async updateExtensionSiteAccessData_(
+ siteSet: chrome.developerPrivate.SiteSet) {
+ // Avoid fetching the list of matching extensions if they will not be
+ // displayed.
+ if (siteSet !== EXTENSION_SPECIFIED) {
+ return;
+ }
+
+ const siteToCheck =
+ this.isSiteHostOnly_() ? `*://${this.site}/` : this.site;
+ const matchingExtensionsInfo =
+ await this.delegate.getMatchingExtensionsForSite(siteToCheck);
+ const extensionSiteAccessData: ExtensionSiteAccessInfo[] = [];
+ matchingExtensionsInfo.forEach(({id, siteAccess}) => {
+ assert(this.extensionsIdToInfo_.has(id));
+ const {name, iconUrl} = this.extensionsIdToInfo_.get(id)!;
+ extensionSiteAccessData.push({id, name, iconUrl, siteAccess});
+ });
+
+ this.extensionSiteAccessData_ = extensionSiteAccessData;
}
private onCancelClick_() {
@@ -85,9 +194,24 @@ export class SitePermissionsEditPermissionsDialogElement extends
return;
}
- this.delegate.addUserSpecifiedSites(this.siteSet_, [this.site]).then(() => {
- this.$.dialog.close();
- });
+ // If `this.site` has a scheme (and can be considered a full url), use it
+ // as is. Otherwise if `this.site` is just a host, append the http and https
+ // schemes to it.
+ const sitesToChange = this.isSiteHostOnly_() ?
+ [`http://${this.site}`, `https://${this.site}`] :
+ [this.site];
+ if (this.siteSet_ === EXTENSION_SPECIFIED) {
+ this.delegate
+ .removeUserSpecifiedSites(this.originalSiteSet, sitesToChange)
+ .then(() => {
+ this.$.dialog.close();
+ });
+ } else {
+ this.delegate.addUserSpecifiedSites(this.siteSet_, sitesToChange)
+ .then(() => {
+ this.$.dialog.close();
+ });
+ }
}
private computeDialogTitle_(): string {
@@ -101,6 +225,23 @@ export class SitePermissionsEditPermissionsDialogElement extends
private getRestrictedSiteLabel_(): string {
return this.i18n('editSitePermissionsRestrictExtensions', this.site);
}
+
+ private matchesSubdomains_(): boolean {
+ // Sites that match all subdomains for a given host will specify "*.<host>".
+ // Given how sites are specified as origins for user specified sites and how
+ // extension host permissions are specified, it should be safe to assume
+ // that "*." will only be used to match subdomains.
+ return this.site.includes('*.');
+ }
+
+ private showExtensionSiteAccessData_(): boolean {
+ return this.siteSet_ === EXTENSION_SPECIFIED;
+ }
+
+ private getDialogBodyContainerClass_(): string {
+ return this.matchesSubdomains_() ? 'site-access-list' :
+ 'indented-site-access-list';
+ }
}
declare global {
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions_edit_url_dialog.ts b/chromium/chrome/browser/resources/extensions/site_permissions_edit_url_dialog.ts
index 921a5660e04..7f2aeb8be6e 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions_edit_url_dialog.ts
+++ b/chromium/chrome/browser/resources/extensions/site_permissions_edit_url_dialog.ts
@@ -1,11 +1,11 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
+// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
import 'chrome://resources/cr_elements/cr_input/cr_input.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
import './strings.m.js';
import {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js';
@@ -87,7 +87,7 @@ export class SitePermissionsEditUrlDialogElement extends PolymerElement {
}
delegate: SiteSettingsDelegate;
- siteSet: chrome.developerPrivate.UserSiteSet;
+ siteSet: chrome.developerPrivate.SiteSet;
siteToEdit: string|null;
private site_: string;
private inputValid_: boolean;
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions_list.html b/chromium/chrome/browser/resources/extensions/site_permissions_list.html
index d3eb25f6911..fafdb2e9517 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions_list.html
+++ b/chromium/chrome/browser/resources/extensions/site_permissions_list.html
@@ -77,6 +77,7 @@
<template is="dom-if" if="[[showEditSitePermissionsDialog_]]" restamp>
<site-permissions-edit-permissions-dialog
delegate="[[delegate]]"
+ extensions="[[extensions]]"
site="[[siteToEdit_]]"
original-site-set="[[siteSet]]"
on-close="onEditSitePermissionsDialogClose_">
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions_list.ts b/chromium/chrome/browser/resources/extensions/site_permissions_list.ts
index 3786f4ee360..c44c9612422 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions_list.ts
+++ b/chromium/chrome/browser/resources/extensions/site_permissions_list.ts
@@ -1,12 +1,12 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
+// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_action_menu/cr_action_menu.js';
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import './strings.m.js';
import './shared_style.css.js';
import './shared_vars.css.js';
@@ -16,7 +16,7 @@ import './site_permissions_edit_url_dialog.js';
import {CrActionMenuElement} from 'chrome://resources/cr_elements/cr_action_menu/cr_action_menu.js';
import {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js';
import {assert} from 'chrome://resources/js/assert_ts.js';
-import {focusWithoutInk} from 'chrome://resources/js/cr/ui/focus_without_ink.m.js';
+import {focusWithoutInk} from 'chrome://resources/js/focus_without_ink.js';
import {DomRepeatEvent, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {getTemplate} from './site_permissions_list.html.js';
@@ -42,6 +42,7 @@ export class ExtensionsSitePermissionsListElement extends PolymerElement {
static get properties() {
return {
delegate: Object,
+ extensions: Array,
header: String,
siteSet: String,
sites: Array,
@@ -68,8 +69,9 @@ export class ExtensionsSitePermissionsListElement extends PolymerElement {
}
delegate: SiteSettingsDelegate;
+ extensions: chrome.developerPrivate.ExtensionInfo[];
header: string;
- siteSet: chrome.developerPrivate.UserSiteSet;
+ siteSet: chrome.developerPrivate.SiteSet;
sites: string[];
private showEditSiteUrlDialog_: boolean;
private showEditSitePermissionsDialog_: boolean;
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions_site_group.html b/chromium/chrome/browser/resources/extensions/site_permissions_site_group.html
index 2bbb15ca7c6..97be162e976 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions_site_group.html
+++ b/chromium/chrome/browser/resources/extensions/site_permissions_site_group.html
@@ -60,10 +60,7 @@
expanded="{{expanded_}}">
</cr-expand-button>
</template>
- <!-- TODO(crbug.com/1253673): Always show this once the option to edit
- extension permissions for a site is added for the dialog. -->
- <template is="dom-if"
- if="[[showEditSitePermissionsDialogButton_(data)]]">
+ <template is="dom-if" if="[[!isExpandable_]]">
<cr-icon-button class="subpage-arrow" id="edit-one-site-button"
on-click="onEditSiteClick_">
</cr-icon-button>
@@ -78,12 +75,8 @@
<span class="site">[[item.site]]</span>
<span class="site-subtext">[[getSiteSubtext_(item)]]</span>
</div>
- <!-- TODO(crbug.com/1253673): Always show this once the option to edit
- extension permissions for a site is added for the dialog. -->
- <template is="dom-if" if="[[item.siteList]]">
- <cr-icon-button class="subpage-arrow" on-click="onEditSiteInListClick_">
- </cr-icon-button>
- </template>
+ <cr-icon-button class="subpage-arrow" on-click="onEditSiteInListClick_">
+ </cr-icon-button>
</div>
</template>
</div>
@@ -91,8 +84,9 @@
<template is="dom-if" if="[[showEditSitePermissionsDialog_]]" restamp>
<site-permissions-edit-permissions-dialog
delegate="[[delegate]]"
+ extensions="[[extensions]]"
site="[[siteToEdit_.site]]"
- original-site-set="[[siteToEdit_.siteList]]"
+ original-site-set="[[siteToEdit_.siteSet]]"
on-close="onEditSitePermissionsDialogClose_">
</site-permissions-edit-permissions-dialog>
</template>
diff --git a/chromium/chrome/browser/resources/extensions/site_permissions_site_group.ts b/chromium/chrome/browser/resources/extensions/site_permissions_site_group.ts
index 55a49815bfe..8b2ab8dc0b4 100644
--- a/chromium/chrome/browser/resources/extensions/site_permissions_site_group.ts
+++ b/chromium/chrome/browser/resources/extensions/site_permissions_site_group.ts
@@ -1,11 +1,11 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
+// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import './strings.m.js';
import './shared_style.css.js';
import './shared_vars.css.js';
@@ -39,6 +39,7 @@ export class SitePermissionsSiteGroupElement extends PolymerElement {
return {
data: Object,
delegate: Object,
+ extensions: Array,
listIndex: {
type: Number,
@@ -69,6 +70,7 @@ export class SitePermissionsSiteGroupElement extends PolymerElement {
data: chrome.developerPrivate.SiteGroup;
delegate: SiteSettingsDelegate;
+ extensions: chrome.developerPrivate.ExtensionInfo[];
listIndex: number;
private expanded_: boolean;
private isExpandable_: boolean;
@@ -100,18 +102,18 @@ export class SitePermissionsSiteGroupElement extends PolymerElement {
// TODO(crbug.com/1253673): Revisit what to show for this eTLD+1 group's
// subtext. For now, default to showing no text if there is any mix of sites
// under the group (i.e. user permitted/restricted/specified by extensions).
- const siteList = this.data.sites[0].siteList;
- const isSiteListConsistent =
- this.data.sites.every(site => site.siteList === siteList);
- if (!isSiteListConsistent) {
+ const siteSet = this.data.sites[0].siteSet;
+ const isSiteSetConsistent =
+ this.data.sites.every(site => site.siteSet === siteSet);
+ if (!isSiteSetConsistent) {
return '';
}
- if (siteList === chrome.developerPrivate.UserSiteSet.PERMITTED) {
+ if (siteSet === chrome.developerPrivate.SiteSet.USER_PERMITTED) {
return loadTimeData.getString('permittedSites');
}
- return siteList === chrome.developerPrivate.UserSiteSet.RESTRICTED ?
+ return siteSet === chrome.developerPrivate.SiteSet.USER_RESTRICTED ?
loadTimeData.getString('restrictedSites') :
loadTimeData.getStringF(
'sitePermissionsAllSitesExtensionCount', this.data.numExtensions);
@@ -124,15 +126,11 @@ export class SitePermissionsSiteGroupElement extends PolymerElement {
}
return loadTimeData.getString(
- siteInfo.siteList === chrome.developerPrivate.UserSiteSet.PERMITTED ?
+ siteInfo.siteSet === chrome.developerPrivate.SiteSet.USER_PERMITTED ?
'permittedSites' :
'restrictedSites');
}
- private showEditSitePermissionsDialogButton_(): boolean {
- return !this.isExpandable_ && !!this.data.sites[0].siteList;
- }
-
private onEditSiteClick_() {
this.siteToEdit_ = this.data.sites[0];
this.showEditSitePermissionsDialog_ = true;
@@ -149,6 +147,12 @@ export class SitePermissionsSiteGroupElement extends PolymerElement {
assert(this.siteToEdit_, 'Site To Edit');
this.siteToEdit_ = null;
}
+
+ private isUserSpecifiedSite_(siteSet: chrome.developerPrivate.SiteSet):
+ boolean {
+ return siteSet === chrome.developerPrivate.SiteSet.USER_PERMITTED ||
+ siteSet === chrome.developerPrivate.SiteSet.USER_RESTRICTED;
+ }
}
declare global {
diff --git a/chromium/chrome/browser/resources/extensions/site_settings_mixin.ts b/chromium/chrome/browser/resources/extensions/site_settings_mixin.ts
index 27e77d92c8c..31599420ca6 100644
--- a/chromium/chrome/browser/resources/extensions/site_settings_mixin.ts
+++ b/chromium/chrome/browser/resources/extensions/site_settings_mixin.ts
@@ -1,4 +1,4 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
+// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -18,13 +18,13 @@ type Constructor<T> = new (...args: any[]) => T;
export interface SiteSettingsDelegate {
getUserSiteSettings(): Promise<chrome.developerPrivate.UserSiteSettings>;
addUserSpecifiedSites(
- siteSet: chrome.developerPrivate.UserSiteSet,
- hosts: string[]): Promise<void>;
+ siteSet: chrome.developerPrivate.SiteSet, hosts: string[]): Promise<void>;
removeUserSpecifiedSites(
- siteSet: chrome.developerPrivate.UserSiteSet,
- hosts: string[]): Promise<void>;
+ siteSet: chrome.developerPrivate.SiteSet, hosts: string[]): Promise<void>;
getUserAndExtensionSitesByEtld():
Promise<chrome.developerPrivate.SiteGroup[]>;
+ getMatchingExtensionsForSite(site: string):
+ Promise<chrome.developerPrivate.MatchingExtensionInfo[]>;
getUserSiteSettingsChangedTarget():
ChromeEvent<(settings: chrome.developerPrivate.UserSiteSettings) => void>;
}
diff --git a/chromium/chrome/browser/resources/extensions/toggle_row.ts b/chromium/chrome/browser/resources/extensions/toggle_row.ts
index 3b50bed6e42..fb5d34ec07a 100644
--- a/chromium/chrome/browser/resources/extensions/toggle_row.ts
+++ b/chromium/chrome/browser/resources/extensions/toggle_row.ts
@@ -1,9 +1,9 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_toggle/cr_toggle.js';
-import 'chrome://resources/cr_elements/shared_style_css.m.js';
+import 'chrome://resources/cr_elements/cr_shared_style.css.js';
import {CrToggleElement} from 'chrome://resources/cr_elements/cr_toggle/cr_toggle.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chromium/chrome/browser/resources/extensions/toolbar.ts b/chromium/chrome/browser/resources/extensions/toolbar.ts
index cd17c8604f0..01d8a81fe9c 100644
--- a/chromium/chrome/browser/resources/extensions/toolbar.ts
+++ b/chromium/chrome/browser/resources/extensions/toolbar.ts
@@ -1,20 +1,20 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_elements/cr_button/cr_button.js';
import 'chrome://resources/cr_elements/cr_toggle/cr_toggle.js';
import 'chrome://resources/cr_elements/cr_toolbar/cr_toolbar.js';
-import 'chrome://resources/cr_elements/hidden_style_css.m.js';
-import 'chrome://resources/cr_elements/policy/cr_tooltip_icon.m.js';
-import 'chrome://resources/cr_elements/shared_vars_css.m.js';
+import 'chrome://resources/cr_elements/cr_hidden_style.css.js';
+import 'chrome://resources/cr_elements/policy/cr_tooltip_icon.js';
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/polymer/v3_0/paper-styles/color.js';
import './pack_dialog.js';
import {getToastManager} from 'chrome://resources/cr_elements/cr_toast/cr_toast_manager.js';
import {CrToggleElement} from 'chrome://resources/cr_elements/cr_toggle/cr_toggle.js';
-import {I18nMixin} from 'chrome://resources/js/i18n_mixin.js';
-import {listenOnce} from 'chrome://resources/js/util.m.js';
+import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
+import {listenOnce} from 'chrome://resources/js/util.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {getTemplate} from './toolbar.html.js';
diff --git a/chromium/chrome/browser/resources/extensions/url_util.ts b/chromium/chrome/browser/resources/extensions/url_util.ts
index a58ae25b824..f467d1e5663 100644
--- a/chromium/chrome/browser/resources/extensions/url_util.ts
+++ b/chromium/chrome/browser/resources/extensions/url_util.ts
@@ -1,4 +1,4 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
+// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.