Closed Bug 944805 Opened 6 years ago Closed 6 years ago

battlelog web plugin not working in latest nightlys

Categories

(Core :: Plug-ins, defect)

28 Branch
x86_64
Windows 8
defect
Not set

Tracking

()

VERIFIED FIXED
mozilla29
Tracking Status
firefox26 --- unaffected
firefox27 --- unaffected
firefox28 --- verified
firefox29 --- verified

People

(Reporter: rackord, Assigned: cpeterson)

References

()

Details

Attachments

(2 files, 1 obsolete file)

User Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 (Beta/Release)
Build ID: 20131129053350

Steps to reproduce:

Installed battlelog-web-plugins_2.3.2_130.exe to play Battlefield 3/4 and then activating the plugin (for battlelog site and for every site)


Actual results:

The web (http://battlelog.battlefield.com/) prompt you to install the browser plugin again.

It works fine with Aurora and stable release.


Expected results:

The plugin should work.
Attached image screenshot.png
I can reproduce this issue with latest Nightly (build ID: 20131201030203) on Win 8 64-bit.

In the attached screenshot, you can still see the notification to get the plugin, even after installing it in the first place.
Status: UNCONFIRMED → NEW
Component: Untriaged → Plug-ins
Ever confirmed: true
Product: Firefox → Core
Almost certainly fallout from bug 757726.
Blocks: 757726
Sergio: can you please copy and paste the Battlelog plugin information from your about:plugins page? I don't have Windows, so I can't install the Battlelog plugin myself.
Flags: needinfo?(rackord)
Assignee: nobody → cpeterson
Status: NEW → ASSIGNED
Battlelog Game Launcher

    Archivo: npbattlelog.dll
    Ruta: C:\Program Files (x86)\Battlelog Web Plugins\2.3.2\npbattlelog.dll
    Versión: 2.3.2.0
    Estado: Habilitado
    Battlelog Game Launcher (2.3.2)

Tipo MIME	Descripción	Sufijos
application/x-battlelog-game-launcher-2.3.2	npbattlelog

And it ESN Sonar too but i'm pretty sure that ESN Sonar is for the Voip service and i thought that is not causing the problem.

ESN Sonar API

    Archivo: npesnsonar.dll
    Ruta: C:\Program Files (x86)\Battlelog Web Plugins\Sonar\0.70.4\npesnsonar.dll
    Versión: 0.70.4.0
    Estado: Habilitado
    0.70.4

Tipo MIME	Descripción	Sufijos
application/mozilla-plugin-esn-sonar-0.70.4	esnsonar
Flags: needinfo?(rackord)
And it INSTALL ESN sonar too... sorry for the typo.
That's it i added Battlelog and ESN to plugins.enumerable_names and now it works
Sergio: thanks for your help. I forgot that end users could change the plugins.enumerable_names pref. <:) Did you need to add both "Battlelog" and "ESN" to plugins.enumerable_names for the site to work correctly?
(In reply to Chris Peterson (:cpeterson) from comment #7)
> Sergio: thanks for your help. I forgot that end users could change the
> plugins.enumerable_names pref. <:) Did you need to add both "Battlelog" and
> "ESN" to plugins.enumerable_names for the site to work correctly?

well i'm not sure if ESN is needed but it's part of the battlelog for the Voip system so probably they are using enumeration with esn too...

Too smooth things a little the browser could "Un-cloack" the plugins in the webs that are manually allowed to use the plugin.

(right-click -> view page -> and permissions tab) then all the allowed plugins in this site could be uncloaked for the site... 

It's the only way i see for removing plugin enumeration without breaking things too much...

The other option is convince everybody to stop using enumeration... but that could be hard.
... that will solve the Plugin Check issue too... giving "https://www.mozilla.org/es-ES/plugincheck/" permission for use all the plugins could un-cloak all the plugins for the web if the enumeration work together with the plugin permissions.

And flash that is allowed by default in all webs will be visible too... but i hope that there's no such web doing enumeration only for flash.
Sergio: when you have time, do you mind testing whether adding "ESN" to plugins.enumerable_names is necessary for Battefield VoIP to work? The website might assume that the ESN plugin is installed if the primary Battlelog plugin is installed. I would like to keep the plugins.enumerable_names list as short as possible to avoid exposing plugin names that we don't need to.

Ironically, the Battlefield home page includes obfuscated JS code from https://t.qservz.com/js/pi.js that creates a supercookie hashing navigator.plugins, system fonts, screen properties, and time zone. :)
yes "Battlelog" and "ESN" both are necessary. without ESN you can see the notification of the plugin installation again and you can't access to the game itself.
(In reply to Sergio from comment #11)
> yes "Battlelog" and "ESN" both are necessary. without ESN you can see the
> notification of the plugin installation again and you can't access to the
> game itself.

Actually i lied... you don't need both, only ESN, there's no need for battlelog in the enumerable names.

So if someone ends here searching for a fix just type "about:config" in the url bar (without the quotes) then type plugins.enumerable_names on the search bar and set the value like this:

Java,Nexus Personal,QuickTime,Shockwave,ESN

Everything should work now...

Anyway it could be better to make the allowed by site plugins visible on the sites that are actually allowed.
Add the "Battlelog Game Launcher" and "ESN Sonar API" plugin names to the navigator.plugins[] whitelist.
Attachment #8341375 - Flags: review?(benjamin)
(In reply to Chris Peterson (:cpeterson) from comment #13)
> Created attachment 8341375 [details] [diff] [review]
> whitelist-battlefield-plugins.patch
> 
> Add the "Battlelog Game Launcher" and "ESN Sonar API" plugin names to the
> navigator.plugins[] whitelist.

As i said above you don't need Battlelog, only ESN.

Sorry for that i checked without ESN and it didn't work so i posted that you need both, but actually until i posted that i don't even think that battlelog could not be necessary.

With:

pref("plugins.enumerable_names", "ESN Sonar API,Java,Nexus Personal,QuickTime,Shockwave");

should be enough.
Patch v2: Only whitelist the "ESN Sonar API" plugin.
Attachment #8341375 - Attachment is obsolete: true
Attachment #8341375 - Flags: review?(benjamin)
Attachment #8341397 - Flags: review?(benjamin)
Is battlefield.com the only site that uses this plugin, or are there others? Can we just ask them to fix their script?
ESN Sonar (http://sonar-api.com/) it's not battlelog exclusive, but i don't know more webs that uses this plugin...also it could be that the problem was in the battlelog web only... 

I don't know if EA / Dice would likely work in solving this.

big companies sometimes just refuse to change things that "works".
I think we can safely assume that battlefield.com is the only site using the Battlelog and ESN plugins. ESN's only "showcase" product is Battlefield and EA apparently acquired ESN last year.

http://www.esn.me/showcase/

http://www.esn.me/news/read/20/ea-acquires-esn/
btw, here is ESN's navigator.plugin check:

> for (var i in navigator.plugins) {
>     var plugin = navigator.plugins[i];
>     if (!plugin) {
>         continue;
>     }
>     if (plugin.filename && (plugin.filename.indexOf("npesnsonar") != -1 && plugin.description == self.expectedVersion)) {
>         return true;
>     }
> }

https://eaassets-a.akamaihd.net/bl-cdn/cdnprefix/caf0f8bb74e9cc49b7c7d51d64ecb53647a433bc20131203/public/generated/en_US/bundle_base_bottombundles_2770699820.js
Here is the fixed (and shorter and more efficient) plugin check. No loop or filename checks are necessary. :)

    var plugin = navigator.plugins["ESN Sonar API"];
    return plugin && (plugin.description == self.expectedVersion);
We should track this plugin bug for Firefox 28. I am trying to contact someone at EA to fix their website code instead. If I can't get them to fix their website, I have an r+'d patch I can land as a backup plan.
Comment on attachment 8341397 [details] [diff] [review]
whitelist-battlefield-plugins-v2.patch

heh, let me actually mark the r+ with the understanding that I'd prefer not to do this if we can get a server-side fix.
Attachment #8341397 - Flags: review?(benjamin) → review+
bsmedberg: oops! I forgot that the patch had not actually been r+'d yet. Sorry I was a little too eager and did not mean to overstep your review as module owner. <:)
Battlelog dev here,

We're fixing this on our end, so a Firefox patch won't be necessary :)

Also, we're actually retiring the Sonar plugin by the end of February, so this shouldn't be an issue for much longer
Thanks, Dominik! If you have any questions or concerns, you can comment here or just email directly me at cpeterson at mozilla dot com. :)

Do you have a estimate of when your fix will be live? If it is more than 4-6 weeks, we will need to temporarily patch Firefox so our beta users won't miss their Battlefield in the meantime. :)
I believe the Battlelog website is now fixed. :D

I don't have a Windows machine to test the Battlelog plugins, but viewing their website source shows that they are now checking directly for navigator.plugins["ESN Sonar API"] and navigator.plugins["Shockwave Flash"] instead of enumerating navigator.plugins[]:

https://eaassets-a.akamaihd.net/bl-cdn/cdnprefix/caf0f8bb74e9cc49b7c7d51d64ecb53647a433bc20131203/public/generated/en_US/bundle_base_bottombundles_2770699820.js
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla29
Sergio, can you please verify this is fixed for you now in Firefox 28 (http://aurora.mozilla.org) and Firefox 29 (http://nightly.mozilla.org)?
Flags: needinfo?(rackord)
Yes, it's working fine without adding ESN to plugins.enumerable_names
Flags: needinfo?(rackord)
Status: RESOLVED → VERIFIED
Blocks: 934107
No longer blocks: 757726
You need to log in before you can comment on or make changes to this bug.