Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Issue 2769993002: Restrict getInstalledRelatedApps() to non-incognito contexts. (Closed)

Created:
3 years, 9 months ago by Timothy Loh
Modified:
3 years, 8 months ago
Reviewers:
boliu, Matt Giuca
CC:
chromium-reviews, jam, nasko+codewatch_chromium.org, darin-cc_chromium.org, creis+watch_chromium.org, agrieve+watch_chromium.org, chrome-apps-syd-reviews_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Restrict getInstalledRelatedApps() to non-incognito contexts. The explainer doc states: "The User Agent should return no installed applications when running in a privacy preserving mode, for example Incognito in Chrome". https://github.com/WICG/get-installed-related-apps/blob/master/EXPLAINER.md BUG=703477 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2769993002 Cr-Commit-Position: refs/heads/master@{#459691} Committed: https://chromium.googlesource.com/chromium/src/+/16dbfc61f5335aef68b05282eba042632b2ea9a8

Patch Set 1 #

Total comments: 9

Patch Set 2 : address comments #

Total comments: 2

Patch Set 3 : address further comments #

Total comments: 15

Patch Set 4 : fix variable name + todo #

Messages

Total messages: 34 (19 generated)
Timothy Loh
3 years, 9 months ago (2017-03-23 06:41:10 UTC) #6
Timothy Loh
On 2017/03/23 07:24:40, commit-bot: I haz the power wrote: > Dry run: Try jobs failed ...
3 years, 9 months ago (2017-03-23 07:32:39 UTC) #9
boliu
https://codereview.chromium.org/2769993002/diff/1/content/browser/frame_host/render_frame_host_android.cc File content/browser/frame_host/render_frame_host_android.cc (right): https://codereview.chromium.org/2769993002/diff/1/content/browser/frame_host/render_frame_host_android.cc#newcode60 content/browser/frame_host/render_frame_host_android.cc:60: jboolean RenderFrameHostAndroid::IsIncognito( I feel RFH has no business exposing ...
3 years, 9 months ago (2017-03-23 18:12:52 UTC) #10
Timothy Loh
https://codereview.chromium.org/2769993002/diff/1/content/browser/frame_host/render_frame_host_android.cc File content/browser/frame_host/render_frame_host_android.cc (right): https://codereview.chromium.org/2769993002/diff/1/content/browser/frame_host/render_frame_host_android.cc#newcode60 content/browser/frame_host/render_frame_host_android.cc:60: jboolean RenderFrameHostAndroid::IsIncognito( On 2017/03/23 18:12:51, boliu wrote: > I ...
3 years, 9 months ago (2017-03-24 03:11:31 UTC) #13
boliu
https://codereview.chromium.org/2769993002/diff/1/content/browser/frame_host/render_frame_host_android.cc File content/browser/frame_host/render_frame_host_android.cc (right): https://codereview.chromium.org/2769993002/diff/1/content/browser/frame_host/render_frame_host_android.cc#newcode60 content/browser/frame_host/render_frame_host_android.cc:60: jboolean RenderFrameHostAndroid::IsIncognito( On 2017/03/24 03:11:31, Timothy Loh wrote: > ...
3 years, 9 months ago (2017-03-24 03:54:49 UTC) #16
Timothy Loh
https://codereview.chromium.org/2769993002/diff/20001/content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java File content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java (right): https://codereview.chromium.org/2769993002/diff/20001/content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java#newcode26 content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java:26: mIncognito = nativeIsIncognito(mNativeRenderFrameHostAndroid); On 2017/03/24 03:54:49, boliu wrote: > ...
3 years, 9 months ago (2017-03-24 04:50:34 UTC) #19
boliu
lgtm
3 years, 9 months ago (2017-03-24 04:54:22 UTC) #20
Matt Giuca
https://codereview.chromium.org/2769993002/diff/40001/content/browser/frame_host/render_frame_host_android.cc File content/browser/frame_host/render_frame_host_android.cc (right): https://codereview.chromium.org/2769993002/diff/40001/content/browser/frame_host/render_frame_host_android.cc#newcode44 content/browser/frame_host/render_frame_host_android.cc:44: bool isIncognito = render_frame_host_->GetSiteInstance() Naming: is_incognito https://codereview.chromium.org/2769993002/diff/40001/content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java File content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java ...
3 years, 9 months ago (2017-03-24 05:06:55 UTC) #23
Matt Giuca
Cancelling some comments... lgtm with the remaining comments sorted. After the discussion we had offline, ...
3 years, 9 months ago (2017-03-24 05:31:45 UTC) #24
boliu
https://codereview.chromium.org/2769993002/diff/40001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderFactory.java File content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderFactory.java (right): https://codereview.chromium.org/2769993002/diff/40001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderFactory.java#newcode25 content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderFactory.java:25: mRenderFrameHost = (RenderFrameHostImpl) renderFrameHost; On 2017/03/24 05:31:44, Matt Giuca ...
3 years, 9 months ago (2017-03-24 16:34:46 UTC) #25
Matt Giuca
https://codereview.chromium.org/2769993002/diff/40001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderFactory.java File content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderFactory.java (right): https://codereview.chromium.org/2769993002/diff/40001/content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderFactory.java#newcode25 content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderFactory.java:25: mRenderFrameHost = (RenderFrameHostImpl) renderFrameHost; On 2017/03/24 16:34:46, boliu wrote: ...
3 years, 8 months ago (2017-03-27 00:16:29 UTC) #26
Timothy Loh
https://codereview.chromium.org/2769993002/diff/40001/content/browser/frame_host/render_frame_host_android.cc File content/browser/frame_host/render_frame_host_android.cc (right): https://codereview.chromium.org/2769993002/diff/40001/content/browser/frame_host/render_frame_host_android.cc#newcode44 content/browser/frame_host/render_frame_host_android.cc:44: bool isIncognito = render_frame_host_->GetSiteInstance() On 2017/03/24 05:06:55, Matt Giuca ...
3 years, 8 months ago (2017-03-27 02:06:24 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2769993002/60001
3 years, 8 months ago (2017-03-27 02:06:48 UTC) #30
commit-bot: I haz the power
Committed patchset #4 (id:60001) as https://chromium.googlesource.com/chromium/src/+/16dbfc61f5335aef68b05282eba042632b2ea9a8
3 years, 8 months ago (2017-03-27 02:47:29 UTC) #33
boliu
3 years, 8 months ago (2017-03-27 16:12:27 UTC) #34
Message was sent while issue was closed.
https://codereview.chromium.org/2769993002/diff/40001/content/public/android/...
File
content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderFactory.java
(right):

https://codereview.chromium.org/2769993002/diff/40001/content/public/android/...
content/public/android/java/src/org/chromium/content/browser/installedapp/InstalledAppProviderFactory.java:25:
mRenderFrameHost = (RenderFrameHostImpl) renderFrameHost;
On 2017/03/27 00:16:29, Matt Giuca wrote:
> On 2017/03/24 16:34:46, boliu wrote:
> > On 2017/03/24 05:31:44, Matt Giuca wrote:
> > > On 2017/03/24 05:06:55, Matt Giuca wrote:
> > > > Ew, please don't do this. As I said above, add the method to the
interface
> > > then
> > > > you don't need to know anything about Impl.
> > > 
> > > Discussed offline. Apparently this ... is a thing?
> > 
> > Yeah this is one of the things called out in content API:
> > https://www.chromium.org/developers/content-module/content-api
> > """
> > content implementation code should use other implementations directly and
not
> go
> > through the interface (i.e. code in content/renderer should use
RenderViewImpl
> > instead of content::RenderView)
> > """
> > 
> > > 
> > > OK go ahead and land this. I think moving this file out of content makes
> sense
> > > actually, and then we should not be accessing the RFHI, but for now this
is
> > OK.
> > 
> 
> Right, but that advice is kind of telling you "if you have a RFHI, don't
upcast
> it to a RFH and use the interface; keep it as a RFHI". Which is fine.
> 
> The gross part is that here we have a RFH abstract reference (going way up the
> chain to InterfaceRegistrar.addRenderFrameHostRegistrar) that isn't guaranteed
> to be a RFHI, and now we're assuming it's an RFHI and downcasting. Which
> violates basically the main law of object oriented programming (if you have a
> base class, don't assume it's a subclass).
> 
> Apparently I haven't been programming enough in content/ to realise this is a
> thing that happens a lot, so I guess we just keep doing it here. But as an
> outside observer, this seems like a disaster.

The indirection is to hide implementation details and avoid exposing methods to
content embedder. There are is only single implementations the interface
(ignoring tests), so casting should always be safe.

I mean if you want to avoid casting, then can change
ContentRenderFrameHostInterfaceRegistrar to work on RFHI rather than RFH.

Powered by Google App Engine
This is Rietveld 408576698