Bug #53818

Internet Explorer 11 BE Cookies problem

Added by Vladimir Kubak over 1 year ago. Updated over 1 year ago.

Status:Resolved Start date:2013-11-20
Priority:Must have Due date:
Assigned To:- % Done:

100%

Category:Backend User Interface Spent time: -
Target version:next-patchlevel
TYPO3 Version:4.5 Is Regression:No
PHP Version: Sprint Focus:
Complexity:medium

Description

Accessing backend with Internet Explorer 11 causes "Activate Cookies, please" message, instead of login form. Cleaning cookies causes login page appears for the first time. Then again...

IE 11 on Windows 7 - tested on 3 different computers - 32 and 64bit, different locations.
Tested on our 4.5 and 4.7 instalations and also on introduction.typo3cms.demo.typo3.org.
Tried different settings of IE with no luck.

Cookies_activate.png (87.6 kB) Wouter Wolters, 2013-11-21 10:44


Related issues

related to Core - Bug #54124: Extend useragent-checks to include IE11 Resolved 2013-12-01

Associated revisions

Revision ae944d90
Added by Stefan Neufeind over 1 year ago

[BUGFIX] Cleanly unset cookies on login in cookie-check

Needed to workaround a login-problem with IE11.

ExtJS tries to clear a cookie with different settings than when
setting the cookie. In IE11 this leads to problems with the cookie
being set twice on the next call to set(). The get() however
would return the first (empty) cookie.

Using set() with a date in the past also clears the cookie but
will correctly use the same path-settings.

Change-Id: Ieff22129895cd89ca2e1429703daf1636596ecb6
Resolves: #53818
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Reviewed-on: https://review.typo3.org/25852
Reviewed-by: Henrik Ziegenhain
Tested-by: Henrik Ziegenhain
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Steffen Ritter
Reviewed-by: Markus Klein
Tested-by: Markus Klein

Revision 41fe22d3
Added by Stefan Neufeind over 1 year ago

[BUGFIX] Cleanly unset cookies on login in cookie-check

Needed to workaround a login-problem with IE11.

ExtJS tries to clear a cookie with different settings than when
setting the cookie. In IE11 this leads to problems with the cookie
being set twice on the next call to set(). The get() however
would return the first (empty) cookie.

Using set() with a date in the past also clears the cookie but
will correctly use the same path-settings.

Change-Id: Ieff22129895cd89ca2e1429703daf1636596ecb6
Resolves: #53818
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Reviewed-on: https://review.typo3.org/25868
Reviewed-by: Markus Klein
Tested-by: Markus Klein

Revision 28ca149e
Added by Stefan Neufeind over 1 year ago

[BUGFIX] Cleanly unset cookies on login in cookie-check

Needed to workaround a login-problem with IE11.

ExtJS tries to clear a cookie with different settings than when
setting the cookie. In IE11 this leads to problems with the cookie
being set twice on the next call to set(). The get() however
would return the first (empty) cookie.

Using set() with a date in the past also clears the cookie but
will correctly use the same path-settings.

Change-Id: Ieff22129895cd89ca2e1429703daf1636596ecb6
Resolves: #53818
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Reviewed-on: https://review.typo3.org/25869
Reviewed-by: Markus Klein
Tested-by: Markus Klein

Revision 019d6b7e
Added by Stefan Neufeind over 1 year ago

[BUGFIX] Cleanly unset cookies on login in cookie-check

Needed to workaround a login-problem with IE11.

ExtJS tries to clear a cookie with different settings than when
setting the cookie. In IE11 this leads to problems with the cookie
being set twice on the next call to set(). The get() however
would return the first (empty) cookie.

Using set() with a date in the past also clears the cookie but
will correctly use the same path-settings.

Change-Id: Ieff22129895cd89ca2e1429703daf1636596ecb6
Resolves: #53818
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Reviewed-on: https://review.typo3.org/25870
Reviewed-by: Steffen Ritter
Reviewed-by: Markus Klein
Tested-by: Markus Klein

Revision d3e94945
Added by Stefan Neufeind over 1 year ago

[BUGFIX] Cleanly unset cookies on login in cookie-check

Needed to workaround a login-problem with IE11.

ExtJS tries to clear a cookie with different settings than when
setting the cookie. In IE11 this leads to problems with the cookie
being set twice on the next call to set(). The get() however
would return the first (empty) cookie.

Using set() with a date in the past also clears the cookie but
will correctly use the same path-settings.

Change-Id: Ieff22129895cd89ca2e1429703daf1636596ecb6
Resolves: #53818
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Reviewed-on: https://review.typo3.org/25871
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Steffen Ritter
Reviewed-by: Markus Klein
Tested-by: Markus Klein

History

#1 Updated by Markus Klein over 1 year ago

  • Category set to Backend User Interface
  • Status changed from New to Accepted
  • Target version set to next-patchlevel
  • Complexity set to medium

So the login basically works right?

I tested this on 4.5, 4.7 and 6.1 now and everywhere the same behaviour.
But there's a link below saying "Ignore ...".

This allows to login as normal.

#2 Updated by Wouter Wolters over 1 year ago

  • File Cookies_activate.png added

I can also reproduce this. Attached screenshot will be shown.
The first login to the site works. After you visit the site again and try to login the screen pops up.

#3 Updated by Wouter Wolters over 1 year ago

  • File deleted (Cookies_activate.png)

#5 Updated by Ernesto Baschny over 1 year ago

Does that also happen on current "master" (6.2 development)? I ask because we added the "X-UA compatibility" flag there to make IE know that the backend is "IE10 compatible" (used to be IE9). Maybe this affects this particular scenario?

#6 Updated by Vladimir Kubak over 1 year ago

Markus Klein wrote:

So the login basically works right?

I tested this on 4.5, 4.7 and 6.1 now and everywhere the same behaviour.
But there's a link below saying "Ignore ...".

This allows to login as normal.

Right, but some of our editors are confused. They still call...

#7 Updated by Wouter Wolters over 1 year ago

Ernesto Baschny wrote:

Does that also happen on current "master" (6.2 development)? I ask because we added the "X-UA compatibility" flag there to make IE know that the backend is "IE10 compatible" (used to be IE9). Maybe this affects this particular scenario?

Ernesto that was also what I thought so I directly tried my dev-system at work. But this also happens on 6.2:(

#8 Updated by Stefan Neufeind over 1 year ago

relevant part is in typo3/sysext/t3skin/Resources/Public/JavaScript/login.js:

checkCookieSupport: function() {
Ext.util.Cookies.set('typo3-login-cookiecheck', true);
cookieEnabled = Ext.util.Cookies.get('typo3-login-cookiecheck');
if (!cookieEnabled) {
TYPO3BackendLogin.showCookieWarning()
}
Ext.util.Cookies.clear('typo3-login-cookiecheck');
},

Could there be a reason why IE11 does not accept this cookie? Wrong cookie-path or so?

#9 Updated by Stefan Neufeind over 1 year ago

I just found out that with a "normal" browser the user/password-fields would show again. But with IE11 on the error-page they are gone for me. So maybe there is some HTML-error preventing the cookie-check from running at all and/or the boxes from being hidden using CSS.

#10 Updated by Stefan Neufeind over 1 year ago

ah no, the fields are hidden by showCookieWarning() - hmm ...

#11 Updated by Gerrit Code Review over 1 year ago

  • Status changed from Accepted to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/25852

#12 Updated by Stefan Neufeind over 1 year ago

  • Status changed from Under Review to Accepted

The debugger-console of IE11 showed that on a call to clear() and another set() when running the next cookie-check actually two cookies were set. The get() from ExtJS however would return the first one (being empty) instead of the most current one that holds "true" from the cookie-check.

This forum-post also suggests that clear() from ExtJS for cookies does not work correctly:
http://www.sencha.com/forum/showthread.php?98070-Ext.util.Cookies.clear%28%29-not-working&p=462560#post462560

The problem might be that clear() tries to "set" a cookie but with different values.

Workaround: Instead of calling clear() use set() and specify a date in the past (actually the same way as clear() would do it). This way the same settings for the cookie will be used.

Using the debugger in IE11 you can see that the cookie is immediately gone after this pseudo-clear was executed.

#13 Updated by Gerrit Code Review over 1 year ago

  • Status changed from Accepted to Under Review

Patch set 1 for branch TYPO3_6-1 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/25868

#14 Updated by Gerrit Code Review over 1 year ago

Patch set 1 for branch TYPO3_6-0 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/25869

#15 Updated by Gerrit Code Review over 1 year ago

Patch set 1 for branch TYPO3_4-7 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/25870

#16 Updated by Gerrit Code Review over 1 year ago

Patch set 1 for branch TYPO3_4-5 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/25871

#17 Updated by Stefan Neufeind over 1 year ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100

#18 Updated by Gerrit Code Review over 1 year ago

  • Status changed from Resolved to Under Review

Patch set 2 for branch TYPO3_6-1 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/25868

#19 Updated by Gerrit Code Review over 1 year ago

Patch set 2 for branch TYPO3_6-0 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/25869

#20 Updated by Stefan Neufeind over 1 year ago

  • Status changed from Under Review to Resolved

#21 Updated by Miroslaw Kmiec over 1 year ago

in typo3/sysext/t3skin/Resources/Public/JavaScript/login.js in line 166 schould be, for ex.:

Ext.util.Cookies.set('typo3-login-cookiecheck', true, time () + 60000);

set() should be with 3 parameters to fix IE problem

#22 Updated by Jorgo S. over 1 year ago

Not resolved, I still have this problem in TYPO3 6.1.7 and IE11.

#23 Updated by Stefan Neufeind over 1 year ago

Was merged to 6.1 right after release of current 6.1.7 :-(

Review for 6.1-tree: https://review.typo3.org/25868
Please grab the fix from there and try it out.

#24 Updated by Jorgo S. over 1 year ago

I checked, I had already patched it, so unfortunately something's still wrong.

#25 Updated by Stefan Neufeind over 1 year ago

Did you clear cookies and/or maybe completely closed IE11 after patching? Using the F12-developertool from IE I was able during debugging to see that two cookies actually existed. With the patch the same one is set and unset in both cases. But once something went wrong (without the patch) the problematic cookie is there and won't go away itself unfortunately.

#26 Updated by Jorgo S. over 1 year ago

Yes, silly me. Cleared Cookies again and no more problems so far.

Also available in: Atom PDF