New issue
Advanced search Search tips

Issue 873937 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 23
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug


Show other hotlists

Hotlists containing this issue:
Hotlist-1
Hotlist-2


Sign in to add a comment

Extensions + Apps: Add ability to register APIs outside of extensions client

Project Member Reported by rdevlin....@chromium.org, Aug 14

Issue description

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.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 15

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

Project Member

Comment 2 by bugdroid1@chromium.org, Aug 17

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

Project Member

Comment 3 by bugdroid1@chromium.org, Aug 20

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

Project Member

Comment 4 by bugdroid1@chromium.org, Aug 20

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

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 21

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

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 23

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

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 23

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

Status: Fixed (was: Started)
It can be done!

Sign in to add a comment