Closed Bug 1146921 Opened 9 years ago Closed 9 years ago

Disable or hide window sharing on Windows XP and Mac OS 10.6 - webRTC doesn't support sharing on these old OS's

Categories

(Hello (Loop) :: Client, defect, P2)

All
Windows XP
defect
Points:
3

Tracking

(firefox38+ verified, firefox39+ verified, firefox40 verified)

VERIFIED FIXED
mozilla40
Iteration:
40.1 - 13 Apr
Tracking Status
firefox38 + verified
firefox39 + verified
firefox40 --- verified

People

(Reporter: bmaris, Assigned: mikedeboer)

References

Details

(Whiteboard: [error])

Attachments

(1 file)

Affected builds:
- latest Nightly
- latest Aurora

Affected OS`s:
- Windows XP 32bit/64bit

STR:
1. Start Firefox
2. Click Hello icon
3. Click 'Get Started'
4. Click 'Start a Conversation
5. Click 'Share your screen' button
6. Select 'Share your Tabs' or 'Share other Windows'

Expected results: Share tabs and windows work as expected. 

Actual results: Sharing does not work.

Notes:

1. Console Output:

"OT.Publisher.onStreamAvailableError Permission Denied" sdk.js:1409:12
generateLoggingMethod/<() sdk.js:1409
OT.Publisher/onAccessDenied<() sdk.js:22410
OT.$.getUserMedia/onError() sdk.js:13644
OT.$.getUserMedia() sdk.js:13651
OT.Publisher/this.publish/</<() sdk.js:22985
OTHelpers.iterator/makeCallback/fn() sdk.js:3942
OTHelpers.waterfall/next/</<() sdk.js:3978

1500 "Publisher Access Denied: Permission Denied: End-user denied permission to hardware devices" sdk.js:1409:12
generateLoggingMethod/<() sdk.js:1409
OT.dispatchError() sdk.js:17557
triggerCallback() sdk.js:23937
removeHandlersAndCallComplete() sdk.js:23953
OTHelpers.eventing/self.once/fun<() sdk.js:2518
executeListenersAsyncronously/</<() sdk.js:2098
handleMessage() sdk.js:1972

"OT.exception :: title: Unable to Publish (1500) msg: Publisher Access Denied: Permission Denied: End-user denied permission to hardware devices" sdk.js:1409:12
generateLoggingMethod/<() sdk.js:1409
_exceptionHandler() sdk.js:17504
OT.handleJsException() sdk.js:17552
OT.dispatchError() sdk.js:17563
triggerCallback() sdk.js:23937
removeHandlersAndCallComplete() sdk.js:23953

2. Reproduced on two different machines with this specs:

a)
System: Microsoft Windows XP Professional x64 Edition Version 2003 Service Pack 2
CPU: AMD FX(tm)-8320 Eight-Core Processor 3.52 GHz, 8 GB RAM
Graphics: AMD Radeon 7700 Series
Webcam: Trust SPOTLIGHT WEBCAM PRO
Headphones with Mic: Microsoft LifeChat LX-3000

b)
System: Microsoft Windows XP Professional Version 2002 Service Pack 3
CPU: AMD FX(tm)-8320 Eight-Core Processor 3.52 GHz, 3.25 GB RAM
Graphics: AMD Radeon 6450
Webcam: Serioux SRXC-702UM
Headphones with Mic: Microsoft LifeChat LX-3000
Maire: is this some form of limitation in WebRTC platform?
Flags: needinfo?(mreavy)
(In reply to Mark Banner (:standard8) from comment #1)
> Maire: is this some form of limitation in WebRTC platform?

Yes, screen/window/etc sharing is not currently supported on WinXP.  We could not get them to work reliably on WinXP or Mac OS 10.6  (the oldest operating systems for Windows and Mac);  so we disabled them.
Flags: needinfo?(mreavy)
Hmm, feels like we should either detect that or somehow disable screen sharing on those systems then.
Flags: firefox-backlog+
[Tracking Requested - why for this release]: I think we should disable screen sharing on WinXP / Mac 10.6 for Fx38 so that users aren't confused why it doesn't work.
Priority: -- → P1
Tracking for the reasons Mark explained.
RT and Mark:  The likelihood of occurrence is pretty low based on user population.  due to late timing in 38 release cycle and everything else going on in 38 - can we target fix to uplift to 39 (or even just ride with 40 - both OS's are long past EOL)?

XP is 14 years old and not supported by MS.  security patches was only extended until July 2015.

Only 2.6% of Hello links are being clicked on by IE users of any OS version (majority in Firefox or Chrome). XP is less than 20% of the computer market base and should drop rapidly in July (likely not many of the 2.6% of clicks coming from that OS).  http://news.softpedia.com/news/Windows-XP-Still-Has-More-Users-than-Windows-8-and-8-1-Combined-474549.shtml#sgal_0

Safari has twice as many Hello link clicks with 5.3% - but that version is less than 1% of computer users.
Rank: 20
Flags: needinfo?(standard8)
Flags: needinfo?(rtestard)
Priority: P1 → P2
Summary: Unable to use tab/window sharing on Windows XP → Disable or hide tab/window sharing on Windows XP and Mac OS 10.6 - webRTC doesn't support sharing on these old OS's
Whiteboard: [error]
(In reply to sescalante from comment #6)
> RT and Mark:  The likelihood of occurrence is pretty low based on user
> population.  due to late timing in 38 release cycle and everything else
> going on in 38 - can we target fix to uplift to 39 (or even just ride with
> 40 - both OS's are long past EOL)?
> 
> XP is 14 years old and not supported by MS.  security patches was only
> extended until July 2015.
> 
> Only 2.6% of Hello links are being clicked on by IE users of any OS version
> (majority in Firefox or Chrome). XP is less than 20% of the computer market
> base and should drop rapidly in July (likely not many of the 2.6% of clicks
> coming from that OS). 
> http://news.softpedia.com/news/Windows-XP-Still-Has-More-Users-than-Windows-
> 8-and-8-1-Combined-474549.shtml#sgal_0
> 
> Safari has twice as many Hello link clicks with 5.3% - but that version is
> less than 1% of computer users.

Per netmarketshare XP is 19% and per statcounter it is 12% of all desktop traffic so the truth is probably somewhere in-between - this is quite a high share of our users that will experience it or do I not get the problem right?

I agree we should disable the feature on these platforms and given it likely will impact 15% of people trying a feature that will get heavily promoted part of the campaign if feels like we should fix this one fairly quickly - Is a 39 uplift a possibility? (I assume 38.1 is not an option?)
Flags: needinfo?(rtestard)
Assignee: nobody → mdeboer
Status: NEW → ASSIGNED
Iteration: --- → 40.1 - 13 Apr
Points: --- → 3
Flags: needinfo?(standard8) → qe-verify+
Brad corrected me that while only 2.6% of clickers were from IE (which i equated with XP) - a large amount of XP folks actually use Firefox.  Also while Windows Sharing won't work on XP - Tab Sharing should as it was written for Android and doesn't have the platform constraints.  

From the errors Bogdan gave us - it sounds like Tab sharing was failing via the SDK.  do we know if the SDK has checks in the sharing code for OS versions?
Flags: needinfo?(mdeboer)
(In reply to sescalante from comment #8)
> Brad corrected me that while only 2.6% of clickers were from IE (which i
> equated with XP) - a large amount of XP folks actually use Firefox.  Also
> while Windows Sharing won't work on XP - Tab Sharing should as it was
> written for Android and doesn't have the platform constraints.

I think we need to clarify things here - link-clickers aren't the issue. There's no link-clicker functionality to share a screen.

This should be a pure disable this feature for link-generators if they're on an unsupported platform.
(In reply to Mark Banner (:standard8) from comment #9)
> (In reply to sescalante from comment #8)
> > Brad corrected me that while only 2.6% of clickers were from IE (which i
> > equated with XP) - a large amount of XP folks actually use Firefox.  Also
> > while Windows Sharing won't work on XP - Tab Sharing should as it was
> > written for Android and doesn't have the platform constraints.
> 
> I think we need to clarify things here - link-clickers aren't the issue.
> There's no link-clicker functionality to share a screen.
AGreed
> 
> This should be a pure disable this feature for link-generators if they're on
> an unsupported platform.
Brad's point is that tab sharing works on XP so ideally we should only disable window sharing from the menu, not the whole button.
(In reply to sescalante from comment #8)
> From the errors Bogdan gave us - it sounds like Tab sharing was failing via
> the SDK.  do we know if the SDK has checks in the sharing code for OS
> versions?

No, the SDK doesn't have checks, the error is coming from the gUM call (Firefox internal).
Flags: needinfo?(mdeboer)
Comment on attachment 8586714 [details] [diff] [review]
Patch v1: disable the window sharing dropdown item

Review of attachment 8586714 [details] [diff] [review]:
-----------------------------------------------------------------

::: browser/components/loop/content/shared/js/utils.js
@@ +135,5 @@
> +   *
> +   * @param {String} [platform] The platform this is running on, will fall back
> +   *                            to navigator.oscpu and navigator.userAgent
> +   *                            respectively if not supplied.
> +   * @return {String} The platform we're currently running on, in lower-case.

nit: add documentation for withVersion

@@ +137,5 @@
> +   *                            to navigator.oscpu and navigator.userAgent
> +   *                            respectively if not supplied.
> +   * @return {String} The platform we're currently running on, in lower-case.
> +   */
> +  var getOS = _.memoize(function(platform, withVersion) {

I'm not entirely convinced we need memoize here, as we're only using this to set the initial state on the view, however, it probably doesn't hurt so I'm not to fussed about it.

::: browser/components/loop/test/shared/views_test.js
@@ +209,5 @@
> +    });
> +
> +    it("should disable the 'window' option on Windows XP", function() {
> +      var oldOS = OS;
> +      var oldOSVersion = OSVersion;

If rather than initialising these globally, you initialise them in the global beforeEach, then you won't need to save and restore the old versions.

The other alternative would be to move these oldOS/oldOSVersion to a before/afterEach for this section, but I think that's still not quite as clean as simply initialising these fresh each time.
Attachment #8586714 - Flags: review?(standard8) → review+
Thanks!

Pushed to fx-team with comments addressed: https://hg.mozilla.org/integration/fx-team/rev/626392506fc4
https://hg.mozilla.org/mozilla-central/rev/626392506fc4
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
QA Contact: bogdan.maris
Comment on attachment 8586714 [details] [diff] [review]
Patch v1: disable the window sharing dropdown item

Approval Request Comment
[Feature/regressing bug #]: Loop/ Hello screensharing
[User impact if declined]: Since window sharing specifically is not possible on Windows XP and OSX 10.6 and lower version, we need to disable this feature in the UI as well as to circumvent possible confusion and future invalid bug reports.
[Describe test coverage new/current, TreeHerder]: This patch adds unit test coverage for the newly added code. Landed on m-c and all passing.
[Risks and why]: minor.
[String/UUID change made/needed]: n/a.
Attachment #8586714 - Flags: approval-mozilla-aurora?
Attachment #8586714 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Though actually, we need this on 38 (beta) as well, right?
Flags: needinfo?(mdeboer)
I used latest Nightly 40.0a1 on both Windows XP and Mac OS X 10.6.8 and I can confirm that only 'Share other Windows' option is disabled. 
Also I can see that 'Share your Tabs' option is not disabled and it does not work on both OS`s. Is there any plan to remove that option as well? I think the whole feature should be disabled on the above platforms.
Comment on attachment 8586714 [details] [diff] [review]
Patch v1: disable the window sharing dropdown item

Gavin, you're right.

Please see comment 16 for the approval request.
Flags: needinfo?(mdeboer)
Attachment #8586714 - Flags: approval-mozilla-beta?
Comment on attachment 8586714 [details] [diff] [review]
Patch v1: disable the window sharing dropdown item

I guess we want to document that somewhere, right?
New wording in the release notes?

This patch should be in 38 beta 3.
Attachment #8586714 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
I confirm that 'Share other windows' option is disabled on Developer Edition 39.0a2 (2015-04-23) and Nightly 40.0a1 (2015-04-23), under Windows XP 64 & 32 bit and Mac OS X 10.6.8. Although, as Bogdan mentioned in comment 18, 'Share your Tabs' is not disabled and it doesn't work on the above mentioned builds and platforms; Browser console output:
"OT.Publisher.onStreamAvailableError Permission Denied" sdk.js:1409:13
1500 "Publisher Access Denied: Permission Denied: End-user denied permission to hardware devices" sdk.js:1409:13
"OT.exception :: title: Unable to Publish (1500) msg: Publisher Access Denied: Permission Denied: End-user denied permission to hardware devices" sdk.js:1409:13 

How does tab sharing work on XP (as in comment 10)?
Flags: needinfo?(mdeboer)
To enable tab-sharing on XP (and 10.6), a change has to be made to the permission-checking code in MediaManager::GetUserMedia(); right now XP or 10.6 block all forms of sharing.  That would have to be made contingent on the type of share.
Closing this issue since window sharing is disabled and the decision was not made yet if tab sharing is to be disabled or gUM and make tab sharing work (this will need a new bug).
Status: RESOLVED → VERIFIED
Flags: needinfo?(mdeboer)
Summary: Disable or hide tab/window sharing on Windows XP and Mac OS 10.6 - webRTC doesn't support sharing on these old OS's → Disable or hide window sharing on Windows XP and Mac OS 10.6 - webRTC doesn't support sharing on these old OS's
See Also: → 1159659
(In reply to Bogdan Maris, QA [:bogdan_maris] from comment #25)
> Closing this issue since window sharing is disabled and the decision was not
> made yet if tab sharing is to be disabled or gUM and make tab sharing work
> (this will need a new bug).

I filed bug 1159659.
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: