blog.andreas-klingler.de

Notizen und Gedanken von Andreas Marc Klingler

Schlagwort: Browser

Neue Möglichkeiten mit WebRTC

Ich habe mir schon vor längerem vorgenommen, mich mal ausgiebig mit WebRTC zu beschäftigen. Mit dieser noch in der Entwicklung befindlichen Web-Technik wird es möglich, beliebige Daten in Echtzeit direkt zwischen Browsern zu übertragen. Zum Beispiel ist damit eine Anwendung wie Skype nativ im Browser möglich – ohne den Umweg über US-Server, die alles unbegrenzt speichern.

Sehr spannend. Letzten Montag fand im Betahaus das erste WebRTC-Treffen statt; mit tollen Leuten und Vorträgen. Einige Notizen:

  • In Mac OS ist seit einiger Zeit der Dienst AirDrop eingebaut. Damit kann man im lokalen Netz zwischen zwei Macs Dateien austauschen. Und zwar idiotensicher. Genau diesen Dienst gibt es jetzt auch als Web-Plattform unter sharedrop.io. Im lokalen Netz kann man zwischen zwei Rechnern damit auch plattformunabhängig Dateien austauschen, ohne irgendwelche Server-/Client-Geschichten aufsetzen zu müssen.
  • Browser-zu-Browser-Telefonie wird möglich. Zwischen zwei Browsern klappt das direkt, und mit einem Proxy-Dienst auch mit dem Festnetz. Die Live-Demo eines Testprojekts lief einwandfrei.
  • Falls aufgrund von NAT oder anderen Netzwerkeinschränkungen keine direkte Verbindung zwischen zwei Browsern möglich ist, kann man einen Dienst auf einem gemeinsamen Server aufsetzen, der beide „verbindet“. Wenn die Daten über diesen Server laufen, ist das natürlich sicherheitstechnisch erstmal nicht so schön, aber das garantiert wenigstens die Verfügbarkeit. Und da die Technik dezentral ist, lassen sich hunderttausende WebRTC-Server natürlich auch nicht so einfach überwachen wie z.B. nur Skype-Server.
  • Ich dachte bisher bei dem Begriff WebRTC bisher primär an „Skype ohne Überwachungsinfrastruktur direkt im Browser“. Aber abstrakt gesehen geht es um direkten Austausch beliebiger Daten zwischen Browsern. Das eröffnet ein gewaltiges Feld an neuen Möglichkeiten.

Ich glaube, wir werden in Zukunft viele Dienste mit dieser Technik sehen, welche die Grenze zwischen Desktop- und Browser-Anwendung weiter verwischen werden.

CSS-Fehler veursacht Fehler in Select-Box in Safari

Kurz nach Beginn der Testphase von Tandem Rhein-Main ist mir von einem kuriosen Fehler berichtet worden: In Safari unter Mac OS hat das Klicken auf eine Select-Box ein sofortiges Neuladen ausgelöst. Eine Auswahl in einer Select-Box ist so nicht möglich gewesen. Safari unter Windows hat das Verhalten merkwürdigerweise nicht gezeigt. Dieses Verhalten fiel mir vorher nie auf; dabei habe ich ja selbst einen Großteil der Zeit in der Entwicklung der Plattform mit Safari gearbeitet.

Erst dachte ich an Probleme mit JavaScript-Code, aber daran lag es nicht. Im erzeugten HTML-Code konnte ich auch nichts finden, das dieses Verhalten erklärt hätte. Nachdem ich keine Ideen mehr hatte und begann, den Code schrittweise auf eine Minimalversion zu kürzen, bin ich auf den Fehler gestoßen.

Folgender Code funktioniert mit auskommentiertem Select, mit einkommentiertem Select tritt der Fehler wie beschrieben auf.

input[type=text],
input[type=password],
textarea,
/* select, */
div.jhtmlarea {
background-image: url(images/inputbg.gif);
   border: 1px solid #bbb;
color: #333;
   font-family: "Ubuntu", "Lucida Grande", "Verdana", "Tahoma";
font-size: 1em;
padding: 4px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}

Bei der Reduktion dieser Anweisung habe ich festgestellt, dass der Fehler von den beiden Zeilen mit border und font-family abhängt. Und zwar von beiden zusammen. Bei nur einer der beiden Zeilen funktioniert alles. Beide Zeilen zusammen, auf eine Select-Box angewandt, verursachen offenbar das merkwürdige Verhalten von Safari.

Warum?

Ich habe keine Ahnung…

Aktualisierung, 14. Oktober 2011: Durch @thegcat (1, 2) habe ich erfahren, dass dies ein bekannter Bug in Safari ist (siehe u.a. hier, hier und hier). Das Problem lässt sich also durch Warten beheben…