• Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

Verständnisfrage: Safari, Videos und Sandbox

echo.park

deaktivierter Benutzer
Registriert
08.06.11
Beiträge
11.076
Hi,

Zum System: Mountain Lion 10.8.1, Safari 6.0, alle Plug-Ins deaktiviert.


Ich weiß, dass Safari prinzipiell in einer Sandbox läuft, mit dem Prozess: Safari-Webinhalt.

Frage:
Warum kann es vorkommen, dass dieser Prozess nicht nur einfach, sondern manchmal auch doppelt oder dreifach läuft? Mit geöffneten Tabs hat es nichts zu tun, das habe ich bereits beobachtet.

Wenn ich nun zum Beispiel auf apple.com/de das Video zum neuen MBP starte, dann öffnet sich ein Prozess namens VTDecoderXPCService. Laut Google ist das irgendeine Art Sandbox-Layer für QT-Inhalte. Komisch nur, dass der Prozess zwar "oft" startet, aber eben nicht immer. Teilweise spielt also das Video, aber der Prozess taucht nicht auf. Auch wird er nicht beendet, sogar dann nicht, wenn ich Safari schließe.

Frage:
Was ist das für ein Prozess? Warum wird dieser Prozess zwar zu Beginn des Videos gestartet, aber nicht mit dessen Ende wieder beendet? Warum läuft dieser Prozess sogar dann noch maximal eine Minute, nachdem ich Safari komplett beendet habe? Und das Wichtigste: Warum startet dieser Prozess nicht ausnahmslos immer, wenn ich das gleiche Video oder ein anderes Video auf apple.com/de starte?

Ein ähnlicher Sachverhalt ergibt sich auf Youtube. Auch dort startet ein zusätzlicher Prozess in einer Sandbox, QTKitServer. Auch dieser läuft weiter, obwohl das Video beendet ist, schließt sich aber sofort mit Beenden von Safari. Und auch hier wieder: Dieser Prozess startet nicht immer, selbst beim gleichen Video.

Frage:
Was ist das für ein Prozess? Wieso startet der, obwohl ich alle Plug-Ins in Safari deaktiviert habe, somit auch das QT-Plug-In? Und warum startet dieser Prozess nicht immer, sondern lediglich manchmal?

Dadurch, dass die Prozesse nicht immer starten, kann man dann davon sprechen, dass die Sandbox nicht ordnungsgemäß arbeitet? Werden also Videos, wenn die oben erwähnten "gesandboxten" Prozesse nicht starten, dann in diesem Fall ohne Sandbox wiedergegeben? Oder "befindet" sich der Video-Prozess dann "innerhalb" des Safari-Webinhalt, der ja immer in einer Sandbox läuft?

Ich kann zum jetzigen Zeitpunkt, ohne eure Antworten auf meine Fragen, sagen, dass diese Prozesse schon etwas mit dem abgespielten Videos zu tun haben. Weil nur dann, und zwar auch genau dann, werden diese gestartet. Was ich aber absolut nicht kapiere ist, warum diese nicht immer starten, sondern irgendwie nur "ab und zu". Das entbehrt sich mir jeder Logik.

Wie man sieht habe ich viel Zeit, mir darüber Gedanken zu machen, habe ja schließlich Urlaub und nicht viel zu tun. Aber nur wer hinterfragt, der lernt auch was. Ich bin für jeder Antwort dankbar.

;)
 
Deaktivier doch mal Java in den Einstellungen des Safari, nicht Java-Script...

Prinzipiell ist der Prozess jedoch irgendeiner Video-Decodier-Funktion zuzuordnen.

Felix
 
Zuletzt bearbeitet:
Ich habe doch nicht Java-Script deaktiviert. Nur die Plug-Ins, also auch Java.
 
Ich weiß, dass Safari prinzipiell in einer Sandbox läuft, mit dem Prozess: Safari-Webinhalt.

Das ist schon nicht so ganz richtig. Safari läuft nicht in einer Sandbox.

Safari verteilt aber jede Menge Teilaufgaben auf Hilfsprozesse, die jeweils in ihrer eigenen Sandbox laufen. So gibt es zum Beispiel Helfer, die Videodaten dekodieren, aber ansonsten keinen Zugriff auf Dateien oder das Internet haben, und es gibt "Safari-Webinhalt"-Prozesse, die den "gefährlichen" Job übernehmen, mit dem Internet zu kommunizieren und die Webseiten auf dem Bildschirm darzustellen. Welche Videohelfer gebraucht werden, hängt von Format und Kompressionstechnik des jeweiligen Videos ab. Wie viele "Webinhalt"-Prozesse gebraucht werden, hängt davon ab, wie viele Fenster (oder Tabs) geöffnet sind.

Diese Helfer sind als "On-Demand-Server" programmiert, d.h. sie starten nur dann, wenn sie gebraucht werden. Wenn sie nicht mehr gebraucht werden, warten sie noch einige Zeit, ob nicht doch noch weitere neue Aufträge eintreffen. Falls nein, beenden sie sich wieder. Das ist die übliche Architektur, um den besten Kompromiss aus Geschwindigkeit und Speicherplatzersparnis zu erreichen.

Die einzelnen Helfer in ihrer jeweiligen Sandbox können nur über geschützte Kanäle miteinander kommunizieren. Dazu wird eine spezielle, ab Lion eingeführte Technik verwendet, die Apple "XPC-Dienste" nennt (Interprocess Communication).
 
  • Like
Reaktionen: echo.park
Danke für deine gute Antwort.

Nur wundere ich mich immer noch, das teilweise beim gleichen Video auf der gleichen Webseite diese Prozesse starten, beim nächsten Versuch dann plötzlich nicht mehr.

Edit:
Vielleicht habe ich mir das auch nur eingebildet als ich die Prozesse mal genauer beobachtet habe. Für den Moment kann ich das nicht reproduzieren.

Aber so war es, meiner Meinung nach:
Erst Safari geschlossen, alle Prozesse beendet, dann Safari gestartet, dann bei Youtube ein bestimmtes Video gestartet, der Prozess QTKitServer (als Beispiel) startet mit, dann wieder alles beendet und den gleichen Vorgang erneut durchgeführt, mit dem gleichen Video und der Prozess startet nicht mehr.
Dann beim nächsten Mal tut er es wieder, das verstehe ich nicht ganz.
 
Zuletzt bearbeitet:
Überprüft habe es nicht, aber eine mögliche Erklärung dafür wäre, dass die Zwischenergebnisse der Videodekodierung für eine gewisse Zeit gecachet werden. Liegt das Ergebnis bereits vor, muss der Helfer nicht mehr aktiv werden.
 
Ah! Das könnte es tatsächlich sein! Vielen dank. Du scheinst von der Materie eine gewisse Ahnung zu haben. Ich danke dir für deine Antworten.