Experimental support for extensions on Android: fix dangling raw_ptr android code
This commit is contained in:
@@ -65,7 +65,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../extensions/api/identity/web_auth_flow.h | 4 +-
|
||||
.../browser/extensions/api/tabs/tabs_api.cc | 3 +
|
||||
.../extensions/api/tabs/tabs_event_router.cc | 22 ++++++-
|
||||
.../browser_extension_window_controller.cc | 10 ++-
|
||||
.../browser_extension_window_controller.cc | 14 +++-
|
||||
.../browser_extension_window_controller.h | 6 +-
|
||||
.../extensions/extension_management.cc | 8 ++-
|
||||
.../browser/extensions/extension_management.h | 2 +-
|
||||
@@ -202,7 +202,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
ui/webui/resources/cr_elements/BUILD.gn | 2 +-
|
||||
.../cr_elements/cr_toolbar/cr_toolbar.css | 3 +
|
||||
ui/webui/resources/css/BUILD.gn | 2 +-
|
||||
190 files changed, 631 insertions(+), 308 deletions(-)
|
||||
190 files changed, 635 insertions(+), 308 deletions(-)
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Enable-extensions-Android.grdp
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Extensions-Android.grdp
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Extensions-Android.inc
|
||||
@@ -1306,7 +1306,7 @@ diff --git a/chrome/browser/extensions/api/tabs/tabs_event_router.cc b/chrome/br
|
||||
diff --git a/chrome/browser/extensions/browser_extension_window_controller.cc b/chrome/browser/extensions/browser_extension_window_controller.cc
|
||||
--- a/chrome/browser/extensions/browser_extension_window_controller.cc
|
||||
+++ b/chrome/browser/extensions/browser_extension_window_controller.cc
|
||||
@@ -105,11 +105,12 @@ BrowserExtensionWindowController::BrowserExtensionWindowController(
|
||||
@@ -105,11 +105,14 @@ BrowserExtensionWindowController::BrowserExtensionWindowController(
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
window_(CHECK_DEREF(browser->GetBrowserForMigrationOnly()->window())),
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
@@ -1316,23 +1316,27 @@ diff --git a/chrome/browser/extensions/browser_extension_window_controller.cc b/
|
||||
window_type_(GetTabsWindowType(browser)),
|
||||
scoped_data_holder_(browser->GetUnownedUserDataHost(), *this) {
|
||||
WindowControllerList::GetInstance()->AddExtensionWindow(this);
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+ tab_list_->AddTabListInterfaceObserver(this);
|
||||
+#endif
|
||||
}
|
||||
|
||||
BrowserExtensionWindowController::~BrowserExtensionWindowController() {
|
||||
@@ -122,6 +123,11 @@ BrowserExtensionWindowController* BrowserExtensionWindowController::From(
|
||||
@@ -122,6 +125,13 @@ BrowserExtensionWindowController* BrowserExtensionWindowController::From(
|
||||
browser_window_interface->GetUnownedUserDataHost());
|
||||
}
|
||||
|
||||
+void BrowserExtensionWindowController::OnTabListDestroyed(TabListInterface& tab_list) {
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+ tab_list_->RemoveTabListInterfaceObserver(this);
|
||||
+#endif
|
||||
+ tab_list_ = nullptr;
|
||||
+}
|
||||
+
|
||||
int BrowserExtensionWindowController::GetWindowId() const {
|
||||
return static_cast<int>(session_id_.id());
|
||||
}
|
||||
@@ -268,7 +274,7 @@ base::ListValue BrowserExtensionWindowController::CreateTabList(
|
||||
@@ -268,7 +278,7 @@ base::ListValue BrowserExtensionWindowController::CreateTabList(
|
||||
ExtensionTabUtil::GetScrubTabBehavior(extension, context, web_contents);
|
||||
tab_list.Append(
|
||||
ExtensionTabUtil::CreateTabObject(web_contents, scrub_tab_behavior,
|
||||
|
||||
Reference in New Issue
Block a user