IE Tabs nur noch horizontal verschiebbar

Ein Thema, zu dem es viele Beiträge im Web zu finden gibt, aber kaum eines mit einer brauchbaren Lösung.

Das Problem:
Plötzlich lassen sich Tabs im Internet Explorer nicht mehr lösen und als eigenes neues Fenster herausziehen.
Die Tabs können nur mehr im aktiven Fenster nach links oder rechts geschoben werden.

Das Ganze ist Benutzer-abhängig, funktioniert mit einem Neuen Benutzer mit der selben Windows-Installation auch wieder, allerdings fehlen dann die Benutzer-Einstellungen.

Oft zu lesen: Es könnte sich um Addons handeln, die das ganze auslösen, oder um Schad-Software, kann ich getrost von der Hand weisen – ein solches Verhalten hätte ich dabei noch nie beobachten könnten – wobei ein erster Versuch den IE ohne Addons zu starten natürlich sinnvoll ist!

Zu Problem-Bekämpfung:
Nachdem ein neuer Benutzer funktioniert, ist das Problem hier beim Benutzer bzw. dessen Einstellungen zu suchen – IE-Einstellungen sind in der Registry also unter HKCU interessant.

Um zu einer sauberen IE-Benutzer-Registry zu kommen, kann man einen neuen User anlegen, testen ob die Funktion wieder wie gewohnt vorhanden ist, den gesamten Schlüssel unter [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer] exportieren und am „defekten“ User nach Löschen dieses Schlüssels durch ausführen der exportiereten Reg-Datei wiederherstellen.

Browser neu öffnen und schon sollte das Drag&Drop von Registerkarten / Tabs wieder funktionieren. Das erkennt man auch schon an einer Karte, wenn das Fenster durch ziehen des Tabs den Rahmen ausblendet.

Browser neu öffnen reicht in diesem Fall, da der User-Key nicht wie der HKLM – Local Machine Key erst beim Neustart geladen wird sondern direkt verwendung findet.

Spannend wäre jetzt natürlich der Schlüssel, der dieses Verhalten tatsächlich auslöst – ich zähle bei meinen fehlerhaften IE-Settings 1808 Zeilen in der Reg-Datei im Vergleich zu 500 bei einem neuen User – also nur rund 1300 mögliche Fehlerquellen…

Also das ganze Einschränken über Mengenanalyse, was mir zeigt, dass das Verhalten sogar pro IE-Fenster übertragen wird – im Blog-Fenster (debuge hier quasi live) funktioniert noch alles, im neuen IE nach der 3. Teilübertragung des fehlerhaften Reg-Keys schon nicht mehr.

Die 3. Teilübertragung umfasst 165 Zeilen und beinhaltet folgende Registry-Bereiche:

Meinen Hauptverdacht:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

\EnterpriseMode] „Automation“=dword:00000000

\FeatureControl] inkl. Subkeys, \FormatDetection], \Touch], \WindowsSearch], IE\MAO Settings] – können schnell ausgeschlossen werden

Ein Test durch löschen aller Main-Subkeys und importieren der Standard-Werte zeigt, dass der Grund für das Verhalten hier drinn steckt – Das sind noch rund 100 Reg-Keys, wovon 36 auch im Default-User vorkommen.

Das Überschreiben mit den Default-Keys behebt den Fehler nicht, also muss es ein zusätzlicher Key sein – noch 74 Möglichkeiten.

Nach Logik bei der Auswahl komm ich nicht weiter, glücklicherweise kann ich auf 9 Werte einschränken, da beim Löschen der letzten 10 das Problem behoben wird.
Das lässt sich einzeln durchprobieren und tatsächlich ist der Auslöser nur ein kleiner Registry-Eintrag:

Lösung:
HKCU\Software\Microsoft\InternetExplorer\Main\TabProcGrowth | REG_DWORD | 0x00000000  -> 0x00000001

Das Setzen dieses Wertes auf 1 behebt das Problem sofort.

Was hat es mit diesem Schlüssel auf sich:
lt. diesem Blog-Eintrag auf MSDN definiert dieser Wert den Umgang zwischen Tab- und Prozess-Anzahl:

Tab Process Growth : Sets the rate at which IE creates New Tab processes.  There are two algorithms used by Internet Explorer.

So gibt der Wert an, wieviele Tabs einen neuen Prozess auslösen:

  • small: Maximum 5 tab processes in a logon session, requires 15 tabs to get the 3rd tab process.
  • medium: Maximum 9 tab processes in a logon session, requires 17 tabs to get the 5th tab process.
  • large: Maximum 16 tab processes in a logon session, requires 21 tabs to get the 9th tab process.

also 5 Tabs je Prozess, 3,4 Tabs je Prozess oder nur 2,3 Tabs je Prozess. Bei einem Wert von 1 wird nur ein iexplore-Prozess erzeugt, in dem alle geöffneten Tabs laufen. Bei einem Maximal-Wert von 16 würden 21 Tabs bereits 9 Prozesse ausführen.

Das lässt sich im Task-Manager leicht nachvollziehen und zeigt die Ressourcenverteilung des IE.

Ergänzung zum MSDN-Artikel: der Maximalwert ist bei IE11 höher als 16 (Dezimal), da hier auch der Wert 22 (Dezimal), welcher dem HEX-Wert 16 entspricht funktioniert und jeden Tab in einen neuen Prozess startet.
Da diese Prozesse jedoch auch nach Schließen des Tabs noch bestehen bleiben und erst das Schließen des Browserfensters hier wieder aufräumt, werde ich mit dem Wert 1 weitermachen und mich nicht mehr mit mehreren iexplore.exe-Prozessen rumschlagen.

Nachtrag (01/2016):
Mit dem aktuellen Patch-Stand von Windows 7 sieht es so aus, als ob es ein Problem mit dem IE11 gibt, wenn der Prozess über 1GB Arbeitsspeicher einnimmt.
Hier macht es dann eventuell sinn, den Wert wie oben erwähnt zu erhöhen und so die Last auf mehrere Prozesse zu verteilen, anstatt nur 1 riesigen zu produzieren.

Unter Windows 10 ist mir dieses Problem bisher nicht untergekommen, also kann auch ein Upgrade hier abhilfe schaffen…

8 Kommentare

  1. Klasse, dass du dir die Zeit genommen hast, um das Problem zu analysieren. Ich dachte mir auch, dass es an einem Registrierungseintrag liegen muss, aber warum lässt sich diese Einstellung nicht über die Optionen steuern? Und woher kommt die plötzliche Änderung des Registrierungseintrags? Die Lösung hat mir jedenfalls viel Zeit erspart. Vielen herzlichen Dank dafür.

    1. Danke für deinen Kommentar! Der Grund für die Änderung ist mir auch völlig unklar. Vermutlich ein Plugin oder eine Deinstallation einer Software, konnte ich aber nicht zurückverfolgen. Die Internet-Optionen sucht man danach leider vergeblich ab – die Tab-Einstellungen sind nur sehr simple einstellbar im Vergleich zu diesem Wert. Aber hauptsache es hilft 😉

  2. Hallo, danke für die ausführliche Analyse!
    Als Ergänzung: Ich konnte das Problem leider nicht vom Nutzer abhängig nachvollziehen, heißt alle Benutzer am PC hatten das Problem.
    Die Lösung liegt aber dann doch sehr nahe: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main

    Grüße
    Lars

    1. Danke für die Info Lars – dass diese Problem auch in der HKLM-Struktur für alle auftreten kann wusste ich noch nicht – daher aber meine ausführliche Analyse, damit versierte Kollegen schneller dahinter kommen 😉

  3. Vielen Dank!!! Ich habe mehrere Tage mit Suche im Netz und auch Antimalware-Programme verbracht um das Problem zu lösen – ohne Erfolg. Mit dem geänderten Reg-Wert auf 1 ist das Problem behoben. Bleibt nur die Frage wie / wann / warum dieser Wert von welchem Programm geändert wurde.

  4. Interessantes dazu:
    Hab mittlerweile festgestellt, dass es auch bei geändertem Wert (aktuell 3) das Problem nicht mehr auftritt und bei vielen Tabs immerhin eine Aufteilung der Prozesse stattfindet. Kann hilfreich sein, wenn man sehr viele Tabs braucht.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.