AgregoreWeb / agregore-mobile

Mobile version of the Agregore browser for Android, based on Chromium and Bromite
MIT License
31 stars 6 forks source link

Get WebExtensions running #9

Open RangerMauve opened 2 years ago

RangerMauve commented 2 years ago

Since we are no longer using Kiwi as a basis for the browser, but instead are using Bromite, we'll need to figure out how to get we extensions working again.

We can try to figure out how Kiwi does extensions by reading their source code changes and try to apply a subset of them ourselves.

This is important to enable us to reuse extensions between mobile and desktop

RangerMauve commented 2 years ago

Found this repo which has some web extension stuff taken out of Kiwi: https://github.com/dvalter/chromium_extension_patches

Looks like the extension C++ code is wired up to the app menu here: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L2683

Sme stuff in the background service factory got commented out? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L3108

There's an Android-specific "background mode manager" implementation which no-ops some stuff that presumably only makes sense on Desktop. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L3139

Looks like some static resources get added in? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L3242

Some more DependsOn calls get removed here: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L3590

There's some stuff that adds a permission prompt for RegisterProtocolHandler here: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L3621

Some devtools build flags here: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L3671 Might not be relevant to extensions though? Seems to just explicitly remove extension support.

Seems like plugins are getting removed here? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L4093

Looks like some sort of no-op constructor was added for extensions::NetworkingPrivateDelegateFactory? No clue why. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L4357

A bunch of PDF viewer related things are commented out: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L4371

Some sort of Browser instance is getting set up here in the extensions windows APIs: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L4445

Also does some funky stuff for getting the Browser instance from a widnow id: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L4513

The window list gets generated from the tab list: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L4538

A bunch of tab bar specific stuff gets commented out: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L4550

New implementation for getting the tab list: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L4616

New implementation for getting tabs in a window: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L4681

There's a bunch of other API related things we should be aware of in there, I'll skip pointing them out.

There's a bunch of added code for wiring up extension events for when tabs close https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L5133

Looks like there's a thing for installing boormarklets by the looks of it? Not sure if we even need this. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L5466

There's a prompt to install extensions added: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L6174

Some stuff specific to desktops is removed from the install prompt code: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L6304

A shortcut listener got added, not sure if it's related to extensions or accelerators in general: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L6336

No clue what the media router has to do with extensions, but something was added there. Might be related to chrome cast stuff? Might be related to getting/setting whether a tab is muted? : https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L6655

A method stub for GetViewForWindow got added, probably for the tabs API. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L7353

There's a plugins_linux.json file that got registered. Might be part of removing plugins? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L7369

There's a bunch of stuff to do with "policy" and some sort of machine tracking token. Not sure if we should bother with this if we can avoid it.

Some additional browser preferences got added for Android: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L7757

Some chrome apps and extension stuff got changed to not bother initializing when setting up a profile. We probably don't need that since the bromie patches remove this stuff. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L7974

A bunch of zoom related stuff got added to the "profile". No clue what a profile is, but this might be needed for getting a tab's zoom level. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L8435

Some stuff gets commented out to enable profile_window on Android. Might be related to "profiles" in the "logged in with google" sense which we don't need to care about: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L8697

Some stuff that tracks tab lifecycles got added to Android: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L8789 and https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L8817 and https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L8851

Looks like some "resources" got added to the BUILD.gn, should check if all of them apply to extensions or if we can add another if. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L8909

A bunch of UI stuff got added to render chrome://extensions": https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L8935

Something got added which pulls out #define calls from some sort of pack? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L8992

A bunch of "Features" got added/removed: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L9096

There's a bunch of stuff realated to spell checking, but I think we can ignore it: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L9182

Some feature that blocks sites git uncommented, probably not relevant: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L9643

Some extension related DependsOn calls got disabled again: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L9716

No clue what "touch_to_fill" is, but it got am import for thid_party/protobuf: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L9738

Some browser UI imports got added to the BUILD.gn THere's also a bunch of stuff rrelated to "profiles" which we might be able to ignore: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L9752

A bunch of appmenu stuff got added: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10004

Also some appmenu stuff got added to get JNI headers: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10030

The AppMenu class got some stuff added to it to track the list of extension popups. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10130

Some of the arguments passed to AppMenu inside AppMenuCoordinator got changed: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10315

Likewise with AppMenuHandler: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10344

Not sure why, but there's a thing for GetLastNonExtensionActiveIndex: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10398

Looks like some settings and profile related thigns got disabled inside ui/browser.cc: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10475

For some reason devtools keyboard shortcuts got removed? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10537

browser.h was getting imported inside browser_navigator_params, might be for navigating with the tabs API? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10622

Some browser UI prefs got added, soemthing to do with notifications, not sure if relevant. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10689

A bunch of UI things got imported for signing, I don't think we need it. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10717

Some stuff for removing the flash player got set: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10759

No clue what this is, but this content setting bubble model got re-enabled (maybe also signign related?) https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10780

Disables the extension installed bubble: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10813

Some extension badge APIs got marked as public: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10828

FastUnLoadController got added, I think for unloading tabs? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L10844

NativeWindowTrackerAndroid was added to track "windows" whatever those are. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11337

page_info_ui had some stuff enabled for Android Not sure if it's relevant since it relates to SERIAL_GUARD and NATIVE_FILESYSTEM_WRITE_GUARD: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11415

Some extension related password manager APIs got imported: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11518

A bunch of imports we might not care about got enabled search_tab_helper seems relevant though, maybe the other imports are related to it?: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11570

Some stuff was commented out for Android for dropping tabs: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11646

Not sure what this web_app chck is in tab_helpers, but it got commented out: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11664

TabStripModel had a bunch of its methods turned to no-ops, probably since it's being imported but not used: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11679

component_toolbar_actions_factory got added. Might be related to browser actions? Might be a kiwi-specific thing. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11751

unload_controller removed some devtools-specific code, and some beforeunload code: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11820

An assert for toolkit_views got removed from ui/views/BUILD.gn: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11915

accelerator_utils_android.cc got added which no-ops some Chrome specific accelerator commands. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11924

Some autofill stuff got disabled. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L11924

Some bookmark drag and drop stuff got disabled: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12010

A login prompt thing was commented out: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12032

chrome_views_delegate_android got added to no-op ChromeViewsDelegate::CreateNativeWidget(), not sure what widgets are in this context. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12047

For desktop capture, setting the icon got no-opped: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12073

Removed native window stuff from the media picker: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12086

Safe browsing scanning got disabled for download views: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12110

Dropdown_bar_host_android got added to no-op SetHostViewNative: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12129

find_bar_host had some widget stuff removed: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12139

frame/browser_frame got am import of native_theme_android and had some incognito theming removed. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12163

browser_non_client_frame_view_factory_views got changed to get rid of an init. No clue what the hell this is and why it's in there. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12180

Some mime type checks got removed from browser_root_view, probably to disable the flash stuff. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12194

Removed some checks for the active tab from browser_view.cc: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12214

Remove some native window stuff from browser_window_factory.cc https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12330

desktop_browser_frame_android.cc was added to stub out a bunch of APIs. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12345

Similarly for native_browser_frame_factory_android.cc https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12495

JavaScriptDialogViewws had some stuff disabled probably due to different implementations on Android. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12519

Omnibar stuff got removed from location_bar_view, and general stubbing of various methods: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12539

Removed some icon-related APIs from omnibox_popup_contents_view: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12664

Removed some icon-related APIs from permission_prompt_bubble_view: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12676

Also in permission_prompt_impl.cc: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12697

An avatar_button.cc file got added for profiles. We don't need it. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L12712

Not sure what the relaunch_notification is, but they removed some stuff from it: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L13297

Removed a safe browsing password reuse modal thing. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L13309

tab_strip.cc had a bunch of stuff removed: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L13362

window_finder_android.cc got added with stubs: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L13384

chrome_web_ui_controller_factory.cc got a thing for supporting chrome://extensions: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L13409

Devtools removed a thing for getting datasource bytes. Might be a performance or IPC thing?: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L13423

No clue what discards are, but they got added. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L13444

media_router_ui got added, probably for selecting inputs and outputs. We probably don't need this and it's probably why there's so much media stuff in the patches: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L13451

AboutHandler got some stuff to do with JavaScript being allowed removed: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14178

change_password_handler got commented out, might just be related to signin. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14192

There was a printing setting thing that's getting added. Not sure why? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14227

A safety check UI had some version/update stuff removed. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14240

setings_localized_strings_provider.cc set the enableInsecureContentContentSetting to false. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14256

settings/system_handler.cc disabled the network proxy settings UI: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14272

Some more signin stuff got removed. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14286

A window_sizer_android stub was created, probably for the native browser window imports. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14315

Zoom level prefs got disabled or commented out: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14343

A bunch of unit tests got removed from browser/web_applications. Do we even need this imported? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14399

Also there's some components included for web_applications. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14420

web_app_shortcut_android got added which might be related to installing chrome apps? Seems useful, but not extension related. Some comments seem to imply it allows extensions to add shortcuts to the AppMenu? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14452

The web_applications folder has some extensions related code which might be getting used, and some stuff got commented out: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14647

web_app_android got added and is just a stub, so we probably don't need these imports after all. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14703

A bunch of resource paks got added, could be related to the earlier #define stuff. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14758 Instead of having all these things imported, we should just import stuff for android in an else.

The chrome/common/BUILD.gn got some public_deps added in: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14816

App Service stuff got put behind a flag in chrome_features: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14828 Also some tracking stuff got flags added? onConnectNative might be relevant? Seems to be related to native plugins we we don't need to think about.

In the extensions API dir processes.idl gets added to the schema_sources for Android. Not sure why there'd even be an is_android check in that file. 🤷 https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14967

anable_background_mode and enable_background_contents got enabled for Android: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14980

An android implementation of firefox_importer got added, probably don't need it. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L14993

A bunch of media router stuff got added which we probably don't need: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L15037 There's a perf for the plugin_whitelist that got added as well as zoom level. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L15051

Added a flag for media_autoplay_allowed, might be useful outside of the extensions context. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L15149

Some url constants got added like chrome://discards https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L15324

A bunch of "pepper" stuff got removed. That's the PDF thing? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L15367

The object and embed tags get explicitly ignored, but we probably don't care. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L15415

Looks like the ENABLE_WIDEVINE build flag got added in chrome_key_systems. We don't need it. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L15442

There's a bunch more chrome cast stuff we don't need to care about.

Some event constants got enabled to do with tabs: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L15667

Not sure what Guest Views are, but they got enabled for Android: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L15735

Some stuff got removed from storage_monitor, not sure what it's actually used for. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16013

Some extra sources got added to the devtools: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16043

dom_agent_android has some stubs for methods. Not sure why they're necessary. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16057 Same with overlay_angent_android

overlay_agent_views got some stuff removed that was calculating the root layer. Probably to attach to it which we can't do on Android. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16241

Some URL formatter stuff got added in, not sure why. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16258 Apparently the stuff it depends on isn't even supported on Android.

WebModal got added to Android: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16294

Also Zoom https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16299

Stubs for truetype_font got added to Android as part of the PDF renderer plugin support: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16490

Some devtools stuff got added to Android, but not the frontend_host_impl: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16511

Some use_aura stuff got added, with some excpetions for Android: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16522 Might be related to the icons being generated for bookmark apps?

Some widget stuff got removed from gpu_process_transport_factory: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16816

Devtools resources got enabled: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16836

For some reason frame_host/navigation_controller_impl removes checks to see if the renderer was initiated and that there's an origin. Maybe for background pages? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16850

Also removed from navigation_request: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16874

More zoom related defines: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L16998

"polymer/v1_0got added to thewebui/shared_resources`. Probably for devtools? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17162

Devtools resource pack got included: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17343

Tests got removed from extensions for some reason. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17388

Check for native messaging got added: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17481 Probably only relevant to native plugins

A bunch of the TCP API in extensions got removed? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17493

A stub for cpu_info_provider_android got added: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17745 Probably due to an extension API?

A new check for termination got added for web_view_guest. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17852

important! enable_extensions build flag got enabled for Android: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17865

Some mojo binding thing got added for Android, probably related to other things. https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17891

There's a chrome web store extensions UserAgent thing? Might be needed if we want to support the chrome store (not necessarily) https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17904

There's a thing for the USB Device Service, we might not need it: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L17919

Also related to USB: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L18157

A bunch of third party modules got updated: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L18166

Some sort of drag and drop stuff got added, probably related to bookmarks: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L18237 Might also be related to the clipboard API in extensions.

Some animations got added for Android, not sure for what: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L18737

message_center got added, probably for prompting to install extensions: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L18752

A bunch of ui resources got added to Android: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L18806

MenuController got added, I think related to plugins again? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L18969

Add an ignore for native keyboard events, not sure if it needs to be ignored: https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L19393

A bunch of resources got added for Android, probably devtools related? https://github.com/dvalter/chromium_extension_patches/blob/master/0001-Kiwi-Introduce-extensions-support-R80.patch#L20601

RangerMauve commented 2 years ago

It seems like a bunch of stuff got imported by accident due to how the build.gn flags got configured, and we can probably ignore most of it / add #if !defined(OS_ANDROID) checks.

RangerMauve commented 2 years ago

Looks like a bunch of stuff is related to signin being included on Android, maybe we can ignore a lot of it if we just need extensions.

RangerMauve commented 2 years ago

In particular the media router stuff seems to be taking up a huge amount of resources. Maybe we can omit it somehow and reduce the patch drastically. This may also be related to WideVine DRM stuff?

RangerMauve commented 2 years ago

Maybe we can omit some of this zoom level stuff too and just make the API a no-op on Android / skip all the imports.

RangerMauve commented 2 years ago

There's also a bunch of stuff related to payments in the patch which I think we can ignore.

RangerMauve commented 2 years ago

A bunch of stuff is related to Kiwi's Devtools support. We should probably make a separate issue to document it.

RangerMauve commented 2 years ago

Went through the entire patch, next I'll look at just the bits that I think are relevant.