In order to move Chrome Apps code out of the extensions system, we'll need to support adding apis and features from outside the extensions client.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f41f215c837b6b9f4f7db402a78638bf7a0b2676 commit f41f215c837b6b9f4f7db402a78638bf7a0b2676 Author: Devlin Cronin <rdevlin.cronin@chromium.org> Date: Wed Aug 15 11:53:05 2018 [Extensions] Introduce common client initialization In order to extract apps-specific code from extensions, we'll need to be able to add extra information to the extensions client from outside extensions code. This will require having a centralized initialization for the extensions client. Introduce a single method, EnsureExtensionsClientInitialized(), which constructs and sets the ChromeExtensionsClient. Remove the old way of constructing the client, ChromeExtensionsClient::GetInstance(). Update all callers to construct the client via the new method. While we're at it, update the client to use base::NoDestructor instead of LazyInstance. Bug: 873937 Change-Id: I47147cd5f33ea44079c0a319626c57f3c5813af8 Reviewed-on: https://chromium-review.googlesource.com/1175459 Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/master@{#583217} [modify] https://crrev.com/f41f215c837b6b9f4f7db402a78638bf7a0b2676/chrome/browser/browser_process_impl.cc [modify] https://crrev.com/f41f215c837b6b9f4f7db402a78638bf7a0b2676/chrome/browser/extensions/startup_helper.cc [modify] https://crrev.com/f41f215c837b6b9f4f7db402a78638bf7a0b2676/chrome/common/BUILD.gn [modify] https://crrev.com/f41f215c837b6b9f4f7db402a78638bf7a0b2676/chrome/common/extensions/chrome_extensions_client.cc [modify] https://crrev.com/f41f215c837b6b9f4f7db402a78638bf7a0b2676/chrome/common/extensions/chrome_extensions_client.h [add] https://crrev.com/f41f215c837b6b9f4f7db402a78638bf7a0b2676/chrome/common/initialize_extensions_client.cc [add] https://crrev.com/f41f215c837b6b9f4f7db402a78638bf7a0b2676/chrome/common/initialize_extensions_client.h [modify] https://crrev.com/f41f215c837b6b9f4f7db402a78638bf7a0b2676/chrome/renderer/chrome_content_renderer_client.cc [modify] https://crrev.com/f41f215c837b6b9f4f7db402a78638bf7a0b2676/chrome/test/base/chrome_unit_test_suite.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fe0452987ff78e71018b00783dae0547623ffa87 commit fe0452987ff78e71018b00783dae0547623ffa87 Author: Devlin <rdevlin.cronin@chromium.org> Date: Fri Aug 17 22:31:14 2018 Revert "[Extensions] Introduce common client initialization" This reverts commit f41f215c837b6b9f4f7db402a78638bf7a0b2676. Reason for revert: Checking to see if this was the cause of flakiness in a test. Original change's description: > [Extensions] Introduce common client initialization > > In order to extract apps-specific code from extensions, we'll need to > be able to add extra information to the extensions client from outside > extensions code. This will require having a centralized initialization > for the extensions client. > > Introduce a single method, EnsureExtensionsClientInitialized(), which > constructs and sets the ChromeExtensionsClient. Remove the old way of > constructing the client, ChromeExtensionsClient::GetInstance(). Update > all callers to construct the client via the new method. > > While we're at it, update the client to use base::NoDestructor instead > of LazyInstance. > > Bug: 873937 > Change-Id: I47147cd5f33ea44079c0a319626c57f3c5813af8 > Reviewed-on: https://chromium-review.googlesource.com/1175459 > Commit-Queue: Devlin <rdevlin.cronin@chromium.org> > Reviewed-by: Lei Zhang <thestig@chromium.org> > Cr-Commit-Position: refs/heads/master@{#583217} TBR=thestig@chromium.org,rdevlin.cronin@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 873937 Change-Id: I750a4cde4d76054fc82f91bac8e63413f9599b9e Reviewed-on: https://chromium-review.googlesource.com/1179347 Reviewed-by: Devlin <rdevlin.cronin@chromium.org> Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Cr-Commit-Position: refs/heads/master@{#584221} [modify] https://crrev.com/fe0452987ff78e71018b00783dae0547623ffa87/chrome/browser/browser_process_impl.cc [modify] https://crrev.com/fe0452987ff78e71018b00783dae0547623ffa87/chrome/browser/extensions/startup_helper.cc [modify] https://crrev.com/fe0452987ff78e71018b00783dae0547623ffa87/chrome/common/BUILD.gn [modify] https://crrev.com/fe0452987ff78e71018b00783dae0547623ffa87/chrome/common/extensions/chrome_extensions_client.cc [modify] https://crrev.com/fe0452987ff78e71018b00783dae0547623ffa87/chrome/common/extensions/chrome_extensions_client.h [delete] https://crrev.com/6ff108b6d8cdd8b8d5940846871f87c6a8982a1f/chrome/common/initialize_extensions_client.cc [delete] https://crrev.com/6ff108b6d8cdd8b8d5940846871f87c6a8982a1f/chrome/common/initialize_extensions_client.h [modify] https://crrev.com/fe0452987ff78e71018b00783dae0547623ffa87/chrome/renderer/chrome_content_renderer_client.cc [modify] https://crrev.com/fe0452987ff78e71018b00783dae0547623ffa87/chrome/test/base/chrome_unit_test_suite.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/10d5669e88b00169339ed4426557c619190089c0 commit 10d5669e88b00169339ed4426557c619190089c0 Author: Devlin Cronin <rdevlin.cronin@chromium.org> Date: Mon Aug 20 15:59:06 2018 Reland "[Extensions] Introduce common client initialization" Relanding since the CL wasn't the cause of test flakiness. Original change's description: > [Extensions] Introduce common client initialization > > In order to extract apps-specific code from extensions, we'll need to > be able to add extra information to the extensions client from outside > extensions code. This will require having a centralized initialization > for the extensions client. > > Introduce a single method, EnsureExtensionsClientInitialized(), which > constructs and sets the ChromeExtensionsClient. Remove the old way of > constructing the client, ChromeExtensionsClient::GetInstance(). Update > all callers to construct the client via the new method. > > While we're at it, update the client to use base::NoDestructor instead > of LazyInstance. > > Bug: 873937 > Change-Id: I47147cd5f33ea44079c0a319626c57f3c5813af8 > Reviewed-on: https://chromium-review.googlesource.com/1175459 > Commit-Queue: Devlin <rdevlin.cronin@chromium.org> > Reviewed-by: Lei Zhang <thestig@chromium.org> > Cr-Commit-Position: refs/heads/master@{#583217} TBR=thestig@chromium.org,rdevlin.cronin@chromium.org Bug: 873937 Change-Id: Idf8fdc2ca89e3f0e481fbfd310c5ebc6067311f1 Reviewed-on: https://chromium-review.googlesource.com/1181162 Reviewed-by: Devlin <rdevlin.cronin@chromium.org> Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Cr-Commit-Position: refs/heads/master@{#584461} [modify] https://crrev.com/10d5669e88b00169339ed4426557c619190089c0/chrome/browser/browser_process_impl.cc [modify] https://crrev.com/10d5669e88b00169339ed4426557c619190089c0/chrome/browser/extensions/startup_helper.cc [modify] https://crrev.com/10d5669e88b00169339ed4426557c619190089c0/chrome/common/BUILD.gn [modify] https://crrev.com/10d5669e88b00169339ed4426557c619190089c0/chrome/common/extensions/chrome_extensions_client.cc [modify] https://crrev.com/10d5669e88b00169339ed4426557c619190089c0/chrome/common/extensions/chrome_extensions_client.h [add] https://crrev.com/10d5669e88b00169339ed4426557c619190089c0/chrome/common/initialize_extensions_client.cc [add] https://crrev.com/10d5669e88b00169339ed4426557c619190089c0/chrome/common/initialize_extensions_client.h [modify] https://crrev.com/10d5669e88b00169339ed4426557c619190089c0/chrome/renderer/chrome_content_renderer_client.cc [modify] https://crrev.com/10d5669e88b00169339ed4426557c619190089c0/chrome/test/base/chrome_unit_test_suite.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/df96db5777e7b2d4f14cc10673dcdb0f7a432374 commit df96db5777e7b2d4f14cc10673dcdb0f7a432374 Author: Devlin Cronin <rdevlin.cronin@chromium.org> Date: Mon Aug 20 21:41:15 2018 [Extensions] Introduce an ExtensionsAPIProvider Introduce an ExtensionsAPIProvider that contains knowledge of generated APIs and extension features. The ExtensionsClient contains multiple ExtensionsAPIProviders, and queries these providers for features and generated API schemas. This allows the registration of APIs from outside the extensions system, which will be necessary for moving Chrome Apps API registration outside of extensions code. This also more effectively wraps the logic relating to the generated features within a single location, minimizing the burden for consumers to add/check multiple generated sets. Create an API Provider for each set of code that generates unique features and APIs: - Core Extension APIs (defined in //extensions) - Chrome Extension APIs (defined in //chrome) - Shell Extension APIs (defined in //extensions/shell) - Cast Extension APIs (defined in //chromecast) When the corresponding ExtensionsClient type is constructed, it registers the appropriate providers. Bug: 873937 Change-Id: I198e5e5cbd6ab53bff9e335ea1551bdcfe59f521 Reviewed-on: https://chromium-review.googlesource.com/1172000 Reviewed-by: Dominick Ng <dominickn@chromium.org> Reviewed-by: Luke Halliwell <halliwell@chromium.org> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org> Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Cr-Commit-Position: refs/heads/master@{#584571} [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/chrome/common/BUILD.gn [add] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/chrome/common/extensions/chrome_extensions_api_provider.cc [add] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/chrome/common/extensions/chrome_extensions_api_provider.h [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/chrome/common/extensions/chrome_extensions_client.cc [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/chrome/common/extensions/chrome_extensions_client.h [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/chromecast/common/BUILD.gn [add] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/chromecast/common/cast_extensions_api_provider.cc [add] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/chromecast/common/cast_extensions_api_provider.h [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/chromecast/common/cast_extensions_client.cc [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/chromecast/common/cast_extensions_client.h [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/BUILD.gn [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/common/BUILD.gn [add] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/common/core_extensions_api_provider.cc [add] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/common/core_extensions_api_provider.h [add] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/common/extensions_api_provider.h [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/common/extensions_client.cc [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/common/extensions_client.h [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/shell/BUILD.gn [add] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/shell/common/shell_extensions_api_provider.cc [add] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/shell/common/shell_extensions_api_provider.h [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/shell/common/shell_extensions_client.cc [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/shell/common/shell_extensions_client.h [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/test/test_extensions_client.cc [modify] https://crrev.com/df96db5777e7b2d4f14cc10673dcdb0f7a432374/extensions/test/test_extensions_client.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e commit e3e9da53e8b90f82b39872b02fd0dc3e8315c09e Author: Devlin Cronin <rdevlin.cronin@chromium.org> Date: Tue Aug 21 16:53:00 2018 [Extensions] Move Permissions registration to the ExtensionsAPIProvider Move Permissions registration out of the body of ExtensionsClient::Initialize() and into the ExtensionsAPIProviders by introducing ExtensionsAPIProvider::AddPermissionsProviders(). Have each provider register their associated permissions, and have a common ExtensionsClient initialization step call into them in order to trigger the registration. Bug: 873937 Change-Id: Idfc55d0690dd8cf77f62b63650deec2ae42623a2 Reviewed-on: https://chromium-review.googlesource.com/1177181 Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org> Reviewed-by: Luke Halliwell <halliwell@chromium.org> Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Cr-Commit-Position: refs/heads/master@{#584788} [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/chrome/common/extensions/chrome_extensions_api_provider.cc [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/chrome/common/extensions/chrome_extensions_api_provider.h [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/chrome/common/extensions/chrome_extensions_client.cc [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/chrome/common/extensions/chrome_extensions_client.h [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/chromecast/common/cast_extensions_api_provider.cc [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/chromecast/common/cast_extensions_api_provider.h [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/chromecast/common/cast_extensions_client.cc [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/chromecast/common/cast_extensions_client.h [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/extensions/common/core_extensions_api_provider.cc [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/extensions/common/core_extensions_api_provider.h [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/extensions/common/extensions_api_provider.h [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/extensions/common/extensions_client.cc [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/extensions/common/extensions_client.h [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/extensions/shell/common/shell_extensions_api_provider.cc [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/extensions/shell/common/shell_extensions_api_provider.h [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/extensions/shell/common/shell_extensions_client.cc [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/extensions/shell/common/shell_extensions_client.h [modify] https://crrev.com/e3e9da53e8b90f82b39872b02fd0dc3e8315c09e/extensions/test/test_extensions_client.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/489ad84c3741e27371c4509c49a94061e8ae83cf commit 489ad84c3741e27371c4509c49a94061e8ae83cf Author: Devlin Cronin <rdevlin.cronin@chromium.org> Date: Thu Aug 23 03:49:59 2018 [Extensions] Move ManifestHandler registration into ExtensionsAPIProvider Move ManifestHandler registration out of the body of ExtensionsClient::Initialize() and into the ExtensionsAPIProviders by introducing ExtensionsAPIProvider::RegisterManifestHandlers(). Have each provider register their associated ManifestHandlers, and have a common ExtensionsClient initialization step call into them in order to trigger the registration. Bug: 873937 Change-Id: I8c400efd9d91968a8dd28b249483ded31bbc79e0 Reviewed-on: https://chromium-review.googlesource.com/1177190 Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org> Reviewed-by: Luke Halliwell <halliwell@chromium.org> Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Cr-Commit-Position: refs/heads/master@{#585386} [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/chrome/common/extensions/chrome_extensions_api_provider.cc [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/chrome/common/extensions/chrome_extensions_api_provider.h [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/chrome/common/extensions/chrome_extensions_client.cc [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/chromecast/common/cast_extensions_api_provider.cc [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/chromecast/common/cast_extensions_api_provider.h [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/chromecast/common/cast_extensions_client.cc [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/extensions/common/core_extensions_api_provider.cc [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/extensions/common/core_extensions_api_provider.h [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/extensions/common/extensions_api_provider.h [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/extensions/common/extensions_client.cc [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/extensions/shell/common/shell_extensions_api_provider.cc [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/extensions/shell/common/shell_extensions_api_provider.h [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/extensions/shell/common/shell_extensions_client.cc [modify] https://crrev.com/489ad84c3741e27371c4509c49a94061e8ae83cf/extensions/test/test_extensions_client.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bc8177d23cd04c0edaea9e0622e55d7155b7355f commit bc8177d23cd04c0edaea9e0622e55d7155b7355f Author: Devlin Cronin <rdevlin.cronin@chromium.org> Date: Thu Aug 23 03:51:09 2018 [Extensions] Introduce an ExtensionsBrowserAPIProvider Introduce an ExtensionsBrowserAPIProvider, owned by the ExtensionsBrowserClient, to serve as a browser-side counterpart to ExtensionsAPIProvider. The ExtensionsBrowserAPIProvider is responsible for performing browser-side tasks related to APIs; namely, registering API functions with the ExtensionFunctionRegistry. This will allow us to register different APIs separately, without the client needing to know of (and depend upon) each API. Similar to ExtensionsAPIProvider, create an API Provider for each set of code that generates unique features and APIs: - Core Extension APIs (defined in //extensions) - Chrome Extension APIs (defined in //chrome) - Shell Extension APIs (defined in //extensions/shell) - Cast Extension APIs (defined in //chromecast) When the corresponding ExtensionsBrowserClient type is constructed, it registers the appropriate providers. Bug: 873937 Change-Id: Id29c9e7c2b4b9bd64099e6d244bb0b4338d1d0ea Reviewed-on: https://chromium-review.googlesource.com/1175484 Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org> Reviewed-by: Luke Halliwell <halliwell@chromium.org> Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Cr-Commit-Position: refs/heads/master@{#585389} [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chrome/browser/extensions/BUILD.gn [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chrome/browser/extensions/api/content_settings/content_settings_service.cc [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chrome/browser/extensions/api/content_settings/content_settings_service.h [add] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chrome/browser/extensions/chrome_extensions_browser_api_provider.cc [add] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chrome/browser/extensions/chrome_extensions_browser_api_provider.h [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chrome/browser/extensions/chrome_extensions_browser_client.cc [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chrome/browser/extensions/chrome_extensions_browser_client.h [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chromecast/browser/BUILD.gn [add] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chromecast/browser/extensions/cast_extensions_browser_api_provider.cc [add] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chromecast/browser/extensions/cast_extensions_browser_api_provider.h [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chromecast/browser/extensions/cast_extensions_browser_client.cc [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/chromecast/browser/extensions/cast_extensions_browser_client.h [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/BUILD.gn [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/browser/BUILD.gn [add] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/browser/core_extensions_browser_api_provider.cc [add] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/browser/core_extensions_browser_api_provider.h [add] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/browser/extensions_browser_api_provider.h [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/browser/extensions_browser_client.cc [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/browser/extensions_browser_client.h [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/browser/test_extensions_browser_client.cc [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/browser/test_extensions_browser_client.h [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/shell/BUILD.gn [add] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/shell/browser/shell_extensions_browser_api_provider.cc [add] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/shell/browser/shell_extensions_browser_api_provider.h [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/shell/browser/shell_extensions_browser_client.cc [modify] https://crrev.com/bc8177d23cd04c0edaea9e0622e55d7155b7355f/extensions/shell/browser/shell_extensions_browser_client.h
It can be done!
Comment 1 by bugdroid1@chromium.org
, Aug 15