New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 738880 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
Last visit 15 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 2
Type: Bug



Sign in to add a comment

Showcase should not be an embedder of //ios/web

Project Member Reported by blundell@chromium.org, Jul 3 2017

Issue description

Showcase creates an instance of IOSChromeMain, which implicitly makes it an //ios/web embedder. Because of this, it needs to satisfy all the requirements of being an embedder of //ios/web (e.g., https://chromium-review.googlesource.com/c/558063/). However, as Showcase is intended to be UI-only, ideally it should not involve //ios/web at all.
 
Components: Internals
To be explicit: The question at hand is why Showcase needs to create an instance of IOSChromeMain. It is expected that IOSChromeMain brings in an implicit embedding of //ios/web.
Cc: edchin@chromium.org
Labels: -Pri-3 Pri-2
Owner: sczs@chromium.org
Status: Assigned (was: Available)
Dependency on IOSChromeMain was introduced in https://codereview.chromium.org/2651833002 as it was needed to access the shared ResourceBundle. Should we spin off the part in IOSChromeMain that is really necessary?

For the code (https://cs.chromium.org/chromium/src/ios/chrome/app/startup/ios_chrome_main.mm?sq=package:chromium&dr=CSs), I only see things related to web. Any idea which part exactly we need?

Sergio, could you take a look? I'd rather remove the changes introduced asap.
If it's ultimately just for the base::CommandLine to be initialized, you could presumably just inline the logic from here:

https://cs.chromium.org/chromium/src/ios/web/app/web_main_runner.mm?q=web_main_runne&sq=package:chromium&l=50

Comment 5 by sczs@chromium.org, Jul 7 2017

Status: Started (was: Assigned)

Comment 6 by sczs@chromium.org, Jul 8 2017

Will send a CL on Monday, I think I know what we need in order to make this work.
Project Member

Comment 7 by bugdroid1@chromium.org, Jul 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/54275e80f1cfb709ded49bc0e1c1726368c566e3

commit 54275e80f1cfb709ded49bc0e1c1726368c566e3
Author: sczs <sczs@chromium.org>
Date: Wed Jul 12 02:41:08 2017

[ios showcase] Removes ios/web dependency.

Showcase is intended to be a standalone UI app and as such should not reference 
//ios/web or //ios/chrome. This CL eliminates the Showcase app creating an IOSChromeMain 
instance and thus implicitly being an //ios/web embedder, instead directly inlining the 
minimal parts of that startup that are needed (initializing base::CommandLine and loading resources).
 
As part of that change, this CL eliminates Showcase bundling //ios/web resources.

Bug: 738880
Change-Id: I0a3d3494838cc588034feb48443d24ddf1bec03a
Reviewed-on: https://chromium-review.googlesource.com/565453
Commit-Queue: Sergio Collazos <sczs@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: Louis Romero <lpromero@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485815}
[modify] https://crrev.com/54275e80f1cfb709ded49bc0e1c1726368c566e3/ios/showcase/BUILD.gn
[modify] https://crrev.com/54275e80f1cfb709ded49bc0e1c1726368c566e3/ios/showcase/DEPS
[modify] https://crrev.com/54275e80f1cfb709ded49bc0e1c1726368c566e3/ios/showcase/core/BUILD.gn
[modify] https://crrev.com/54275e80f1cfb709ded49bc0e1c1726368c566e3/ios/showcase/core/app_delegate.mm

Project Member

Comment 8 by bugdroid1@chromium.org, Jul 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d831ac043209edc610ec90e845a65cf03ecc8e47

commit d831ac043209edc610ec90e845a65cf03ecc8e47
Author: Stepan Khapugin <stkhapugin@chromium.org>
Date: Wed Jul 12 11:37:35 2017

Revert "[ios showcase] Removes ios/web dependency."

This reverts commit 54275e80f1cfb709ded49bc0e1c1726368c566e3.

Reason for revert: breaks ios_showcase_egtests downstream. Failure details: https://paste.googleplex.com/6470224534568960 - fails on all simulator bots.

Original change's description:
> [ios showcase] Removes ios/web dependency.
> 
> Showcase is intended to be a standalone UI app and as such should not reference 
> //ios/web or //ios/chrome. This CL eliminates the Showcase app creating an IOSChromeMain 
> instance and thus implicitly being an //ios/web embedder, instead directly inlining the 
> minimal parts of that startup that are needed (initializing base::CommandLine and loading resources).
>  
> As part of that change, this CL eliminates Showcase bundling //ios/web resources.
> 
> Bug: 738880
> Change-Id: I0a3d3494838cc588034feb48443d24ddf1bec03a
> Reviewed-on: https://chromium-review.googlesource.com/565453
> Commit-Queue: Sergio Collazos <sczs@chromium.org>
> Reviewed-by: Colin Blundell <blundell@chromium.org>
> Reviewed-by: Louis Romero <lpromero@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#485815}

TBR=blundell@chromium.org,lpromero@chromium.org,sczs@chromium.org

Change-Id: I8f2daeb1adeabe4622e312b5bc1d70a5591bd68e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 738880
Reviewed-on: https://chromium-review.googlesource.com/566864
Reviewed-by: Stepan Khapugin <stkhapugin@chromium.org>
Commit-Queue: Stepan Khapugin <stkhapugin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485928}
[modify] https://crrev.com/d831ac043209edc610ec90e845a65cf03ecc8e47/ios/showcase/BUILD.gn
[modify] https://crrev.com/d831ac043209edc610ec90e845a65cf03ecc8e47/ios/showcase/DEPS
[modify] https://crrev.com/d831ac043209edc610ec90e845a65cf03ecc8e47/ios/showcase/core/BUILD.gn
[modify] https://crrev.com/d831ac043209edc610ec90e845a65cf03ecc8e47/ios/showcase/core/app_delegate.mm

Project Member

Comment 9 by bugdroid1@chromium.org, Jul 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eff595d31a1d716dcb72770e26e680749ed3fe7c

commit eff595d31a1d716dcb72770e26e680749ed3fe7c
Author: sczs <sczs@chromium.org>
Date: Thu Jul 13 03:24:28 2017

[ios showcase] Removes ios/web dependency re-land.

Showcase is intended to be a standalone UI app and as such should not reference 
//ios/web or //ios/chrome. This CL eliminates the Showcase app creating an IOSChromeMain 
instance and thus implicitly being an //ios/web embedder, instead directly inlining the 
minimal parts of that startup that are needed (initializing base::CommandLine and loading resources).
 
As part of that change, this CL eliminates Showcase bundling //ios/web resources.

Bug: 738880
Change-Id: Idcd7849927e1d56fa1958de34e145beb362f4c3a
Reviewed-on: https://chromium-review.googlesource.com/568243
Commit-Queue: Sergio Collazos <sczs@chromium.org>
Reviewed-by: Louis Romero <lpromero@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486253}
[modify] https://crrev.com/eff595d31a1d716dcb72770e26e680749ed3fe7c/ios/showcase/BUILD.gn
[modify] https://crrev.com/eff595d31a1d716dcb72770e26e680749ed3fe7c/ios/showcase/DEPS
[modify] https://crrev.com/eff595d31a1d716dcb72770e26e680749ed3fe7c/ios/showcase/core/BUILD.gn
[modify] https://crrev.com/eff595d31a1d716dcb72770e26e680749ed3fe7c/ios/showcase/core/app_delegate.mm

Sign in to add a comment