Remove OffscreenTab's use of CreateOffTheRecordProfile |
||||||||||
Issue descriptionmiu@chromium.org I've assigned you as a first owner, based on blame output, hoping you would know who might be a good owner. I found you through this CL: http://crrev.com/1401473004 While reworking how incognito works (in particular how incognito prefs works) I noticed that OffscreenTab uses CreateOffTheRecordProfile. This function isn't really sensible. There should only ever be one incognito profile per real profile and it's accessed by GetOffTheRecordProfile. I see two solutions: * stop using this function or * remove this functionality altogether. I checked usage of the API this class implements (chrome.tabCapture.captureOffscreenTab) and it's very low.
,
May 30 2017
Can you elaborate on the issues here? We could fork the OffTheRecordProfile implementation and maintain it ourselves but I don't think that's good in the long term.
,
May 31 2017
Thanks for the clarifications. Unfortunately CreateOffTheRecordProfile doesn't really give you a separate incognito profile that can't influence other (on-screen) incognito profile tabs or the underlying user profile. CreateOffTheRecordProfile eventually ends up calling GetOffTheRecordPrefs on the underlying user profile, which returns a PrefService object shared by all such calls. In other words, if you were to write a pref in the profile you got from CreateOffTheRecordProfile you would affect all incognito profile tabs, including on-screen tabs (and vice versa). Furthermore, writes to prefs that aren't explicitly whitelisted to only be stored in-memory will be persisted in the underlying user's profile. What kind of separation do you need from the other incognito profiles?
,
May 31 2017
Perhaps a stupid question, but I don't see offscreen_tab.h included anywhere except in extensions. How does the W3C Presentation API use it?
,
May 31 2017
zhaobin: Could you respond to comment 4?
,
May 31 2017
For comment 4,
media_router::ReceiverPresentationServiceDelegateImpl::CreateForWebContents(
offscreen_tab_web_contents_.get(), optional_presentation_id); (https://cs.chromium.org/chromium/src/chrome/browser/extensions/api/tab_capture/offscreen_tab.cc?rcl=867e554db2e9d5b2cd58d684544b81c8d170144b&l=128)
It will associate a ReceiverPresentationServiceDelegateImpl object (Presentation API related object) with offscreen tab's web content.
,
Jul 21 2017
,
Jul 21 2017
Assigning to zhaobin, as they're currently working on related bug 664351 .
,
Jul 21 2017
tibell (re: c#3): Offscreen tabs are supposed to be completely separate from the normal user profiles. Each offscreen tab should start with its own separate "blank" Profile instance that auto-destructs when the offscreen tab shuts down. In other words, we don't want a user's cookies or localStorage or other PII to "leak" into (or outside of) an offscreen tab page. Offscreen tabs are meant to simulate a browser instance running on another device. Here, they use the local browser to render the page, and tab capture on that offscreen instance to record audio/video and feed that to a remote display device.
,
Jul 21 2017
related to: crbug.com/664351
,
Aug 17 2017
+takumif@
,
Dec 16 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7adfa2d52607a71519432fbe05bc1bdb93f7ba75 commit 7adfa2d52607a71519432fbe05bc1bdb93f7ba75 Author: btolsch <btolsch@chromium.org> Date: Sat Dec 16 23:35:44 2017 Add PresentationReceiverWindow for wired screen presentations This change adds a class which shows a Presentation API receiver page in a popup-style window that is started fullscreen on a specific wired display. It also changes the handling of one-off OTR profiles used by presentations, which affects this class and offscreen tabs. Previously, offscreen tabs assumed ownership of their OTR profiles. However, it was possible for this to be violated by opening a DevTools window and Browser would think that it could destroy the profile. Additionally, there was no handling of the original profile being destroyed, which would leave dangling references in the OTR profile. This has been addressed by adding an IndependentOTRProfileManager class, which helps both offscreen tabs and PresentationReceiverWindow manage the lifetime of these one-off OTR profiles. Bug: 777654 , 786158 , 664351 , 727487 Change-Id: I64d032419d341affbdde4ee80b57d45c99648588 Reviewed-on: https://chromium-review.googlesource.com/742122 Commit-Queue: Brandon Tolsch <btolsch@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org> Reviewed-by: Derek Cheng <imcheng@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org> Cr-Commit-Position: refs/heads/master@{#524615} [modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/chromeos/profiles/profile_helper.h [modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/extensions/api/tab_capture/offscreen_tab.cc [modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/extensions/api/tab_capture/offscreen_tab.h [modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/BUILD.gn [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/independent_otr_profile_manager.cc [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/independent_otr_profile_manager.h [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/independent_otr_profile_manager_browsertest.cc [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/presentation_navigation_policy.cc [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/presentation_navigation_policy.h [modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/media/router/receiver_presentation_service_delegate_impl.cc [modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/BUILD.gn [modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/browser.cc [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/media_router/presentation_receiver_window.h [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/media_router/presentation_receiver_window_controller.h [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/media_router/presentation_receiver_window_controller_browsertest.cc [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/media_router/presentation_receiver_window_delegate.h [modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/location_bar/location_bar_view.cc [modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/location_bar/location_bar_view.h [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/media_router/presentation_receiver_window_factory.cc [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/media_router/presentation_receiver_window_frame.cc [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/media_router/presentation_receiver_window_frame.h [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/browser/ui/views/media_router/presentation_receiver_window_view.h [modify] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/test/BUILD.gn [add] https://crrev.com/7adfa2d52607a71519432fbe05bc1bdb93f7ba75/chrome/test/data/media/router/presentation_receiver.html
,
Dec 28 2017
btolsch@ is working on this. Unassign myself.
,
Dec 28 2017
Available -> Assigned
,
Aug 2
,
Nov 7
|
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by m...@chromium.org
, May 30 2017Owner: mfo...@chromium.org