Du bist nicht angemeldet. [Anmelden]
alle Beiträge 1 2 3 > alle
Optionen
Thema bewerten
Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) - #2904374 - 11.06.2018, 20:38:50
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Hallo allerseits. :)


Wir haben die letzten Wochen an einigen, größtenteils internen, Änderungen für den Client-seitigen Teil der UserApps gearbeitet. Diese betreffen entsprechend vor allem das Laden und Starten der Apps, aber ggf. auch das Verhalten zur Laufzeit.

Da diese Änderungen im schlimmsten Fall eventuell negativen Einfluss auf eure Apps haben könnten(!) (in Form von "das geht nicht!"-Bugs) wollten wir euch vorab die Möglichkeit geben das ganze auf dem Developer-Server ausgiebig zu testen.

Bitte schaut euch an ob eure Apps generell so funktionieren wie sie sollten, und legt besonderes Augenmerk auf:
  • Client.pageData ist korrekt befüllt
  • Events vom Server empfangen funktioniert korrekt
  • Events an den Server schicken funktioniert korrekt
  • alle APIs auf Client die ihr benutzt sind verfügbar und funktionieren korrekt (schaut dazu ggf. in die Doku)
  • alle APIs auf Client.getHostFrame funktionieren wie dokumentiert
  • Sounds funktionieren wie bisher
  • allgemein: alles hier genannte funktioniert auch im HTMLChat, StApp und Android

Feedback und Bugs bitte hier in den Thread, ich werde den Thread im Auge behalten. Dass ihr testet ist wichtig, denn nur so können wir alle Fehler im Live-Betrieb im .de und .at verhindern. Daher ist jeder einzelne von euch dazu aufgerufen seine Apps zu testen! :)

Das Ganze ist jetzt auf dem Developer-Server ausgerollt und verfügbar. :)


Happy Testing!
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2904380 - 11.06.2018, 21:03:53
Kev777
​Forumsengel

Registriert: 03.09.2010
Beiträge: 7.163
knuddels-api.js:29 ---> Uncaught SecurityError: Sandbox access violation: Blocked a frame at "https://devchat.knuddels.de". The frame requesting access is sandboxed and lacks the "allow-same-origin" flag.

min.html:21 ---> Uncaught ReferenceError: Client is not defined
_________________________
Orwell war ein Optimist
________

„Würden die Menschen das Geldsystem verstehen, hätten wir eine Revolution noch vor morgen früh.“
- Henry Ford

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2904381 - 11.06.2018, 21:04:20
IgelchenM
​Laubhaufenbewohner

Registriert: 10.02.2005
Beiträge: 1.462
Ort: Bochum
Hey Toby,

ich habe aktuell folgendes Problem durch das Update auf dem Dev.

Channel: braintainment (öffentlich)
User App: knuddelsDEV.30558212.AAA
Problem:
Es werden keinerlei Icons mehr angezeigt die von Bootstrap vorher angezeigt wurden.
Reproduktion:
-> Channel besuchen.
- - -
User App: knuddelsDEV.30558212.AAA
Problem:
Es werden nicht mehr alle Icons angezeigt, die von Bootstrap vorher noch angezeigt wurden.
Reproduktion:
-> Channel besuchen.
_________________________
Wo zum Teufel ist dieser Wayne wenn man ihn braucht?!

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2904384 - 11.06.2018, 21:21:08
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Externe Scripte können nicht mehr geladen werden. jQuery, Bootstrap, Schriftarten welche über Google APIs geladen werden und viele andere Dinge. - Einbindung von YouTube Videos ist nun auch nicht mehr möglich.

Sandbox des iFrames schön und gut, aber das schadet eher als zu helfen.

Ihr wollt, dass die Apps aufwändiger sind und weit mehr unterstützen, beschneidet die Entwickler aber wo es nur geht.

Web-Anwendungen ohne Zugriff aufs Internet. Willkommen im Jahr 1995.



In dem Sinne, maximale Erfolge.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2904455 - 12.06.2018, 08:40:24
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Guten Morgen. :)


Erst mal danke für das bisherige Feedback. Ich hab das was ich bereits daraus ziehen konnte notiert und wir werden uns das schnell anschauen.

Ich möchte noch mal darauf hinweisen, dass ich zum nachvollziehen und analysieren der Ursachen eurer Fehlermeldung mehr Infos brauche. Ich brauche:
  • Den Channel auf dem Dev-Server in dem eure App läuft (und ich muss den Channel betreten können :P)
  • Dann brauche ich eine Anleitung was ich tun muss um das Problem zu provozieren (z.B. irgend einen Slash-Command ausführen oder so)
  • Dann brauche ich am besten einen Hinweis auf die verwendete API (sei es eine von uns oder vom Browser/WebView) die Probleme macht (das ist aus den Fehlermeldungen nicht immer eindeutig ersichtlich) [nur falls ihr das zufällig leisten könnt, sonst schau ich selbst genauer nach]
  • gerne noch weitere Infos oder Hinweise, auch gerne auf jetzt eventuell nicht (mehr) korrekt funktionierende Konzepte

Das alles gilt auch für die bisher gemeldeten Probleme, da brauch ich noch mehr Infos um die Ursachen der Probleme zu analysieren.

Und ja, wir wissen, dass der Einsatz dieser Technik eure Möglichkeiten beschränkt. Dafür ist die Sandbox-Technik ja da. Erfahrungen der Vergangenheit haben leider gezeigt, dass das bisherige Konzept unsere Nutzer nicht genügend vor bösartig agierenden Apps schützen kann, weswegen wir diesen Schritt nun gehen müssen.
Allerdings ist es absolut nicht unser Ziel euch im Ausleben eurer Kreativität und dem Entwickeln toller und nützlicher Apps zu behindern. Im Gegenteil. Deshalb arbeitet bitte mit uns zusammen um alle Probleme zu identifizieren und zu finden und dann natürlich idealerweise aus der Welt zu schaffen. Wir machen diese Testphase auf dem Dev-Server jetzt ja genau deshalb, weil wir das Thema sauber hinbekommen wollen bevor es wirklich groß ausgerollt wird. Wir wollen versuchen zu erreichen, dass am Ende idealerweise niemand von euch auch nur eine einzige Zeile Code seiner Apps ändern muss, und alles weiterhin wie gewohnt funktioniert, gleichzeitig aber die Nutzer angemessen geschützt sind.

Ich bin aber optimistisch, dass das zu schaffen ist. Deswegen helft uns dabei. :)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2904458 - 12.06.2018, 10:13:08
Bizarrus
​Bizzi is activated.

Registriert: 29.07.2006
Beiträge: 2.551
Ort: Dortmund
WebSockets gehen dann auch nicht mehr? ^^
_________________________
Bot.public('I love °>features/james-exchange/ft_james-exchange_surprised.gif<>James|/w "<°');

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Bizarrus] - #2904479 - 12.06.2018, 12:04:42
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Auch wenn ich mich wiederhole: Sag mir den Channel, die App und eine Reproduktionsanleitung, dann schau ich mir das an.


Bearbeitet von TobyB (12.06.2018, 12:04:59)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2904500 - 12.06.2018, 13:22:40
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
<script src="/apps/api/knuddels-api.js"></script> kann nicht mehr implenentiert werden und ist in ettlichen Apps enthalten um Client etc. direkt zu definieren.
Code:
<script src="/apps/api/knuddels-api.js"></script>
<script>
	Client.getHostFrame().setResizable(true);
	Client.getHostFrame().setTitle('Was auch immer');

Dies löst dann Fehler aus wie
Code:
Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.
	at https://apps3.knuddels.biz/apps/...
(Wenn man die "alte API" auf andere Weise implementiert)

Und bei allen User Apps die die knuddels-api.js laden erscheinen dann Fehlermeldungen ala
Code:
knuddels-api.js:1 Uncaught SyntaxError: Unexpected token <

Wenn versucht wird die Datei zu laden: https://apps3.knuddels.biz/apps/api/knuddels-api.js.
https://tools.ietf.org/html/rfc2616#section-6.1.1 - Header Status Codes
https://tools.ietf.org/html/rfc2616#section-10.2.1 - Header Status 200
https://tools.ietf.org/html/rfc2616#section-10.4.5 - Header Status 404
Warnung! Spoiler!
HTTP Header Anfrage:
Code:
GET /apps/api/knuddels-api.js HTTP/1.1
Host: apps3.knuddels.biz
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36
DNT: 1
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,de;q=0.8

HTTP Header Antwort:
Code:
HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Type: text/html
Accept-Ranges: bytes
ETag: "1543400404"
Last-Modified: Fri, 15 Jan 2016 13:06:47 GMT
Content-Length: 466
Date: Mon, 11 Jun 2018 21:31:18 GMT
Server: lighttpd/1.4.33
Datei ist nicht existent, header status ist aber ok?! Falsche Statuscodemeldung => Fehlerhafte Verarbeitung für alles was danach folgt und darauf aufbaut wie impletierung von Scripten.

Der Browser überprüft in erster Linie den Status Code
200 Ok => Datei existiert => Versuchs als Script zu laden.
404 Nicht existient => Wieso soll ich etwas das nicht existiert laden?

Was der Webserver antworte sollte als Header:
Warnung! Spoiler!
Anfrage:
Code:
GET /nonExistent.js HTTP/1.1
Host: google.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
DNT: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,de;q=0.8
Cookie: Jede Menge kram der euch nicht zu interessieren hat :p

Antwort:
Code:
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=UTF-8
Referrer-Policy: no-referrer
Content-Length: 1575
Date: Mon, 11 Jun 2018 21:40:32 GMT
Ihr wisst auch genau, dass falsche Statuscodes zu Fehlverhalten führen, macht es dennoch. :|

Die Änderung des API Loaders ist nirgends verzeichnet, weder hier im Threat noch sonst irgendwo.

Bei solch gravierenden Änderungen ist es mehr als ratsam sowas über einen längeren Zeitraum hinweg anzukündigen, sodass jeder auch dann wirklich die Zeit findet ALLES in allen Apps auf das Verhalten anzupassen, denn so wie ihr euch das denkt, dass wir als Entwickler dann nichts ändern müssten oder ihr davon ausgeht das jede User App undokumentierten Dingen entspricht geht es nicht.

Und wie man schön an Finos App selbst sehen kann, sieht der HEAD Aufbau komplett anders aus, als in sämtlichen Beispielen die die User Apps nutzen. (sollten)
Code:
(function() {
	function getQueryVariable(variable, input) {
		var query = (input || window.location.search).substring(1);
		var vars = query.split('&');
		for (var i = 0; i < vars.length; i++) {
			var pair = vars[i].split('=');
			if (decodeURIComponent(pair[0].replace(/\+/g, ' ')) === variable) {
				return decodeURIComponent(pair[1].replace(/\+/g, ' '));
			}
		}
	}
	var cacheInvalidationParam = 'loaderHash';
	var cacheInvalidation = getQueryVariable(cacheInvalidationParam);
	document.write('<script src="https://devchat.knuddels.de/apps/apploader/knuddels-api.js?loaderHash=' + cacheInvalidation + '"></scr' + 'ipt>');
})();


Wobei ein <script src="//devchat.knuddels.de/apps/apploader/knuddels-api.js"></script> auch genügt. - nun, diese Datei sollte aber auf apps3 apps5 dann liegen um sie mittels /apps/apploader/knuddels-api.js einzubinden - bzw. /apps/api/knuddels-api.js wie vorher einzubinden.

Offtopic - Hinweis - LoaderHash und Caching
Warnung! Spoiler!

Anstatt für jede aufgerufene Script-Datei eine veränderte URL mit einem randomized Tag zu nutzen (euer loaderHash), lasst den Webserver einfach sagen, dass keine der Dateien gecacht werden soll. Das ist genauso schwer, wie einem Baby den Schnuller zu klauen. Und kann mit jedem Webserver übermittelt werden.

Diese 3 Header-Anweisungen versteht jeder Webbrowser:
Code:
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

Und ihr müsstest das lediglich für *.htm, *.html, *.js festlegen damit Änderungen immer direkt Live sind bzw. beim erneuten Aufruf direkt abgefragt werden.

Dies behebt dieses "Cachingproblem" in allen Browsern und die Scripte und die Abfragenmenge, Speicherauslastung etc. etc. wird erheblich verkürzt. (Es spart im großen und ganzen dann auch etwas an Traffic, vor allem Wichtig für reine Mobilfunknutzer mit begrenztem Datenvolumen)


Ebenso ist es sinnfrei die Tools bzw. "API" unnötig aufzublähen, setzt die Objekte so einfach wie möglich diese Verschachtelung mittels zig tausend Function aufrufen ist zwar angenehm fürs debugging, verschleiern und was euch sonst noch einfällt, aber es sind nur noch zwei Stellen die ihr wirklich prüfen müsst und zwar window.parent.postMessage() und das 'message' event welches Empfangen wird. - Alles andere kann auch vom HostFrame solang der sandbox-status aktiv ist aus nicht mehr ausgeführt werden. - Und den deaktiviert ihr ihr ja auch nur zur Prüfung ob die API geladen wurde oder nicht, falls nicht fügt ihr sie hinzu... Aber ~35kb bei jedem HTML UI aufruf laden müssen, im Vergleich zu 10-15KB ist für reine Mobilfunknutzer schon ein enormer Unterschied. - Betritt man im Monat 100x den selben Channel sind das bereits 2-2.5MB Traffic die eingespart werden. - Yay ein Lied in guter Qualität auf Spotify!

Ich meine damit definiert sie als:
Code:
isKnuddelsApiInjected = !0;
Client = {
  sendEvent: function() { ... },...
};
KnuddelsTools = {...}
ClientType = {...}
...alles andere was unter window verfügbar sein soll...
[isKnuddelsApiInjected,Client,KnuddelsTools,ClientType,...].forEach(Object.freeze);
Es ist OpenSource und ihr könnt niemanden daran hindern irgendwas selbst dort sogar einzufügen oder gar die Dateien selbst die entsprechende "Schnittstelle" vorzugaukeln - ... deshalb ist selbst das freeze überfüssig, schützt allerdings bei unerfahrenen Leuten davor, diese Dinge dann zu bearbeiten.

So viel nun dazu ~
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2904506 - 12.06.2018, 13:34:38
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Kleiner Nachtrag zu dem LoaderHash Hinweis: *.css files sollten auch diese Header Information erhalten.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2904536 - 12.06.2018, 15:15:50
Bizarrus
​Bizzi is activated.

Registriert: 29.07.2006
Beiträge: 2.551
Ort: Dortmund
Zitat:
Es ist OpenSource [...]

Wo steht das?

Nur weil du den Quelltext einsehen kannst, ist es noch lange nicht "OpenSource".

Zitat:
[...] und ihr könnt niemanden daran hindern irgendwas selbst dort sogar einzufügen oder gar die Dateien selbst die entsprechende "Schnittstelle" vorzugaukeln

Möchte ich bitte sehen! ;-) Ich habe selbst versucht diese "MITM" auszutricksen, es funktioniert aber schlichtweg nicht, da in dem Dokument zuvor durch den Server beim starten geprüft wird, ob die API "hereingeladen" wurde - Wurde diese auf "normalen Weg" hereingeladen, verbleibt es so; Es wird hier explizit geschaut ob das Script im Dokument eingebunden ist, wenn nicht macht der AppServer dies automatisch neu und setzt diese am Anfang des Dokumentes.

Ich habe da zig verschiedene Varianten probiert, es zu umgehen, es geht aber schlichtweg nicht. Selbst wenn du versuchst ein kaputtes Dokument (durch mehrfache Header/Bodys/Offene Comments,..) zu erzeugen, der das Script an der falschen Stelle einsetzt, das funktioniert schlichtweg nicht. Selbst ein nachträglicher Inject funktioniert nicht... Da war noch die Idee, alle Scripts zuvor als Child vom Parent zu entfernen und dann eine eigene API nachzuladen - Hierdurch geht die Instanz der Bridge verloren.


Bearbeitet von Bizarrus (12.06.2018, 15:18:46)
_________________________
Bot.public('I love °>features/james-exchange/ft_james-exchange_surprised.gif<>James|/w "<°');

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2904544 - 12.06.2018, 15:54:29
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Kommentar vorab: Das im Wiki verfügbare Beispiel "Beispielcode HTML UI" enthält leider fälschlicherweise noch ein Code-Snippet aus den Anfangszeiten der UserApps (nämlich das <script src="/apps/api/knuddels-api.js"></script> Tag). Dies werden wir korrigieren und ein neues Zip bereitstellen.

Antwort auf: Sephiroth ME
<script src="/apps/api/knuddels-api.js"></script> kann nicht mehr implenentiert werden und ist in ettlichen Apps enthalten um Client etc. direkt zu definieren.
[...]
(Wenn man die "alte API" auf andere Weise implementiert)

Und bei allen User Apps die die knuddels-api.js laden erscheinen dann Fehlermeldungen

Wir sorgen dafür, dass alle Apps automatisch die aktuellste Version der API zur Verfügung haben indem wir eventuell vorhandene (veraltete) script-Tags mit der knuddels-api.js entfernen und eben die korrekte Version als erstes Script einsetzen. Dies stellt sicher, dass eure Apps korrekt funktioneren. [Edit: siehe dazu auch das was Bizarrus schrieb]
Wer hier selbst durch irgendwelche selbt gebauten Mechaniken die API einfügt (bzw. es versucht) oder sonstwie den Lade-Prozess der App zu verändern versucht, umleitet oder sonst etwas damit tut handelt wider unserer API-Vorgaben und muss alle daraus resultierenden Probleme selbst verantworten und beheben. Wer sich an die Vorgaben unserer API hält hat diese Probleme nicht.

Antwort auf: Sephiroth ME
Und wie man schön an Finos App selbst sehen kann, sieht der HEAD Aufbau komplett anders aus, als in sämtlichen Beispielen die die User Apps nutzen.

Da gibt es aktuell scheinbar Probleme mit einigen UserApps, dass die API nicht korrekt eingesetzt wird. Da sind wir dran.

Zu den HTTP-Headern: Ja, ist nicht wie es sein sollte. Haben wir auf der Liste.

Zum Thema Caching: Wir verfolgen eine andere Caching-Strategy. Wir müssen sicherstellen, dass jeder Request einer App die neuste (und demnach korrekte) Version aller nötigen Dateien bekommt, wir aber dennoch cachen soweit möglich (ja, wir cachen, kanmnst schauen).


Ansonten wiederholt der Hinweis: Ich brauche Channels, Apps und eine Reproduktionsanleitung wenn ihr Probleme meldet.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2904550 - 12.06.2018, 16:34:58
0oMiro0
Forumuser

Registriert: 09.11.2015
Beiträge: 8
Ort: deutschland,schleswig-holstein...
hallo gestern abend nach der entwickler runde, durften wir ja sehen was ihr so verändert habt.
hätte man das nicht vor der runde machen können?-dann wäre so was wie, warum geht das user.sendevent nicht mehr? zb.. als frage geklärt.wenn das veraltet ist was ist neu? ich selbst kann kaum etwas....aber wenn ich die ergebnisse sehe die passieren, kann ich beruhigt sagen das meines immer fehlerfrei war und ist. dann hab ich ein freund und in seinem channel geht nicht mal mehr die ui an sie läd sich tod,die hat den selben aufbau wie meine.

ich hab halt das problem user.sendevent aber man sieht meine ui und es gehen alle sachen ohne user.sendevent,es gibt bloß keine antwort zur ui. bei ihm geht nichts mehr und es werden nicht mal fehler angezeigt, weder bei ihm noch bei mir.

warum bietet man das in der api bis gestern an?wenn es eh raus sollte seit 2016..... wenn ich es jetzt richtig gelesen habe.

es muss doch so was wie ne roadmap geben die ihr macht, die für alle gilt. warum wird jetzt nach spezifischen fehlern gesucht direkt im channel.ich hab mich immer nach wiki und api gerichtet und das geht jetzt nicht mehr?

wäre schön wenn man mir wenigstens was für das user.sendevent als beispiel geben würde, wie es jetzt gehen sollte ohne user.sendevent, so das mein hauptscript mit der ui kommuniziert. so geht das glaube ich nicht mehr,ist doch richtig?


zudem sind fehler in der api, die ich auch gemeldet habe, interessieren tut das auch keinen. für leute die neu anfangen ist das schon der grund warum die meisten aufhören, weil es nicht geht.
Warnung! Spoiler!

beispiel:
______________________________________________________________
Methoden
getStreamingVideoUsers //hier wird es so geschrieben als überschrift
Feedback
() User[]

Liefert alle User die im Channel derzeit ihr Video streamen.
Rückgabewert:
User[]:
Beispiel:

var streamingUsers = videoChannelData.getStreamingUsers(); // im beispiel so....... geht nicht.
---------------------------------------------------------------------------------------------------
var streamingUsers = videoChannelData.getStreamingVideoUsers (); //das wäre richtig.

zu sehen hier:
http://developer.knuddels.de/docs/classes/VideoChannelData.html#method_getStreamingVideoUsers
______________________________________________________________________________________________

wurde gemeldet von mir, keine reaktion drauf, da es immer noch so da drin steht. wenn ich mir die anderen sachen ansehen würde, wären wohl da auch noch die fehler drin, die ich entdeckt habe. man müsste jedesmal wenn man jemanden die seite gibt sagen, ja tut mir leid das hier ist die api die ist aber nicht fehlerfrei und feedback senden bringt nichts, guckt sich eh keiner an.
für cracks ist das natürlich eine lappalie.für die, die es grade lernen oder ein wenig können, ist das hürden laufen. gesponsert von der api.




mfg

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2904562 - 12.06.2018, 18:26:05
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: TobyB
Antwort auf: Sephiroth ME
Und wie man schön an Finos App selbst sehen kann, sieht der HEAD Aufbau komplett anders aus, als in sämtlichen Beispielen die die User Apps nutzen.

Da gibt es aktuell scheinbar Probleme mit einigen UserApps, dass die API nicht korrekt eingesetzt wird. Da sind wir dran.

Der Bug ist mittlerweile auf dem Dev-Server gefixt. Da sollten eure Apps nun korrekt (mit der neuen API) starten.

Zu 0oMiro0 :
Du musst an deiner App nichts ändern. In der StApp/PC-App ist user.sendEvent() aktuell leider tatsächlich kaputt, aber wir arbeiten schon an einem Bugfix den wir bald (ich vermute spätestens morgen) in Form eines StApp/PC-App Updates ausrollen werden. Wir melden uns wenn die neue Version verfügbar ist.
Von dem Bug ist nur die neue API auf dem Dev-Server betroffen.

Antwort auf: 0oMiro0
zudem sind fehler in der api, die ich auch gemeldet habe, interessieren tut das auch keinen. für leute die neu anfangen ist das schon der grund warum die meisten aufhören, weil es nicht geht.
Warnung! Spoiler!

beispiel:
______________________________________________________________
Methoden
getStreamingVideoUsers //hier wird es so geschrieben als überschrift
Feedback
() User[]

Liefert alle User die im Channel derzeit ihr Video streamen.
Rückgabewert:
User[]:
Beispiel:

var streamingUsers = videoChannelData.getStreamingUsers(); // im beispiel so....... geht nicht.
---------------------------------------------------------------------------------------------------
var streamingUsers = videoChannelData.getStreamingVideoUsers (); //das wäre richtig.

zu sehen hier:
http://developer.knuddels.de/docs/classes/VideoChannelData.html#method_getStreamingVideoUsers
______________________________________________________________________________________________

wurde gemeldet von mir, keine reaktion drauf, da es immer noch so da drin steht. wenn ich mir die anderen sachen ansehen würde, wären wohl da auch noch die fehler drin, die ich entdeckt habe. man müsste jedesmal wenn man jemanden die seite gibt sagen, ja tut mir leid das hier ist die api die ist aber nicht fehlerfrei und feedback senden bringt nichts, guckt sich eh keiner an.
für cracks ist das natürlich eine lappalie.für die, die es grade lernen oder ein wenig können, ist das hürden laufen. gesponsert von der api.

Ich hab das ganze unter Bug 17434 aufgenommen. Da es aktuell allerdings auch einen Bug im updaten der Doku gibt (ich muss selbst drüber lachen xD) können Doku-Bugfixes aktuell allerdings noch nicht ausgerollt werden. Aber das steht auf der Liste, da sind wir hinterher.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2904582 - 12.06.2018, 19:21:58
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: TobyB
In der StApp/PC-App ist user.sendEvent() aktuell leider tatsächlich kaputt, aber wir arbeiten schon an einem Bugfix den wir bald (ich vermute spätestens morgen) in Form eines StApp/PC-App Updates ausrollen werden. Wir melden uns wenn die neue Version verfügbar ist.

*meld*
Die Version der StApp/PC-App mit der ihr in den Genuss des Bugfixes kommt ist "V9.0bzv (b180612)", allerdings nur auf dem Beta-Channel. Wir müssen noch ein paar Tests durch laufen lassen bis wir die Version im stable-Channel ausrollen können.
Aber auf Android und besonders im HTMLChat gehts ja bereits (dort bekommt ihr auch vermutlich die besseren Fehlermeldungen die durch das Sandboxing auftreten können).

Des weiteren haben wir die Sandbox umkonfiguriert, so dass nun eigentlich alle Frameworks die intern auf "document.cookie" setzen (das sind erstaunlich viele, warum auch immer ...), wie z.B. Angular1 und Bootstrap, nun wieder funktionieren müssten.

Happy Testing. :)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2904758 - 13.06.2018, 19:44:58
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Applet (Knuddels - Java ChatApplet - Version: V9.0bzw (b180614) [beta]; Java-Version: 1.8.0_144 (32bit); OS-Version: Windows 10 (10.0); User-Agent: "standalone"):
Code:
app-loader.html:1 Loader: start init
app-loader.html:1 Uncaught No Java objects are associated with the given JavaScript property.
Beim "zweiten" öffnen ist es etwas ausführlicher.
Code:
app-loader.html?client=Applet&appId=UserApp&testSystem=true&loaderHash=1528896896710:1 Loader: start init
app-loader.html?client=Applet&appId=UserApp&testSystem=true&loaderHash=1528896896710:1 Uncaught No Java objects are associated with the given JavaScript property.
  Loader.initBridge @ app-loader.html?client=Applet&appId=UserApp&testSystem=true&loaderHash=1528896896710:1
  (anonymous function) @ VM81:1
Er kommt nicht mal zu dem Punkt, die User App zu laden.

Externe Links können nicht mehr geöffnet werden als Popup (weder im Browser, noch im Applet).
Wenn allow-popups für die sandbox aktiv ist, werden diese (zumindest im HTML Chat) ebenfalls in einer sandbox geöffnet und können dort damit auch keinen Schaden anrichten.
z. B. <a href="https://feedback/abgeben" target="feedback">...</a> - Dies muss nun umständlich gelöst werden über Events an die App und /p an den Nutzer, welcher dann nochmals auf einen Link klicken muss.

Bizarrus, es ist nicht verboten Software zu analysieren und diese nachzubauen.
https://diepresse.com/home/techscience/hightech/754305/EuGHUrteil_Software-darf-kopiert-werden
Zitat:
Jedem Lizenznehmer sei es gestattet, Software im Rahmen des üblichen Gebrauchs zu testen, zu analysieren und nach den zugrunde liegenden Ideen zu forschen, heißt es im Urteil. Vertragliche Bestimmungen, die das verbieten, seien unwirksam.
Ebenso
Zitat:
Zwischen dem Kopieren und dem Nachbauen von Software ist aber ein riesiger Unterschied ähnlich wie in der Musikindustrie. Ich kann einen Song nachsingen oder kopieren. Der Unterschied ist gewaltig.
In dem Zusammenhang kannst du dir auch mal ReactOS anschauen, welches auf einer geleakten Version vom Windows 2000 Kernel basiert und Windows Anwendungen unterstützt.

Der Quellcode im Netz ist immer öffentlich (mal abgesehen von Flash Anwendungen und ähnlichem durch Plugins geladene Dinge) und da so vieles inzwischen über JS und mehr oder weniger simple Webanwendungen läuft und das alles für eine enorme Transparenz sorgt ist das ganze so einfach geworden wie noch niemals zuvor.
So werden unter anderem auch Sicherheitslücken weitaus schneller gefunden und geschlossen oder Herausforderungen die einen Großteil der Nutzer betreffen schneller beseitigt.
Solang ich also nicht den originalen Source nutze und diesen als "meinen eigenen" ausgebe, sondern anhand von diesem lerne, kann ich dahingehend für mich machen was ich möchte. Im Endeffekt geht es ohnehin nur darum Schnittstellen anzusprechen. Demnach kannst du, wenn du Lust und Laune hast, einen komplett eigenen Client schreiben, welcher sich mit Knuddels verbindet. Musst halt nur die Versionsangaben von Knuddels nutzen damit du dich überhaupt verbinden kannst. - Aber das sollte die geringste Herausforderung sein. :p

Aber das weicht zu sehr vom Thema hier ab und würde so oder so in einer Grundsatzdiskussion enden.

MfG
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2904791 - 13.06.2018, 21:00:47
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Das letzte Update scheint den Fehler mit dem app-loader im Applet behoben zu haben.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2904845 - 14.06.2018, 08:01:57
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: Sephiroth ME
Applet (Knuddels - Java ChatApplet - Version: V9.0bzw (b180614) [beta]; Java-Version: 1.8.0_144 (32bit); OS-Version: Windows 10 (10.0); User-Agent: "standalone"):
Code:
app-loader.html:1 Loader: start init
app-loader.html:1 Uncaught No Java objects are associated with the given JavaScript property.
Beim "zweiten" öffnen ist es etwas ausführlicher.
Code:
app-loader.html?client=Applet&appId=UserApp&testSystem=true&loaderHash=1528896896710:1 Loader: start init
app-loader.html?client=Applet&appId=UserApp&testSystem=true&loaderHash=1528896896710:1 Uncaught No Java objects are associated with the given JavaScript property.
  Loader.initBridge @ app-loader.html?client=Applet&appId=UserApp&testSystem=true&loaderHash=1528896896710:1
  (anonymous function) @ VM81:1
Er kommt nicht mal zu dem Punkt, die User App zu laden.

Das ist ein von diesem Thema unabhängiger Bug den wir bereits unter 17432 führen. Nach unserem aktuellen Kenntnisstand tritt das allerdings recht selten und unvorhersehbar auf. Wenn du mehr Infos dazu hast oder gar ein Szenario in dem sich der Fehler immer reproduzieren lässt, dann meld dich bei uns!

Zur Popup-Thematik:
Szenarien wie du sie beschreibst können auch jetzt schon über die API gelöst werden. Du kannst beim User einfach ein weiteres Popup über AppContent öffnen. Da dort dann wiederrum eine vollwertige Sandbox eingerichtet ist, ist ja letztendlich eine UserApp wie jede andere auch, wird der User keinem eventuellen zusätzlichem Risiko ausgesetzt.

Und diese ganze Software Analyse und Copyright Thematik könnt ihr alle wirklich komplett lassen, das gehört hier nicht her und hat hiermit auch nichts zu tun.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2904847 - 14.06.2018, 08:12:25
Kev777
​Forumsengel

Registriert: 03.09.2010
Beiträge: 7.163
rückmeldung bezüglich funktionstüchtigkeit. alle meine apps laufen auf dem dev wieder wunderbar. konnte keine beeinträchtigungen mehr feststellen. auch meine testapp mit unity, auch wenn die echt noch nicht viel tut, läuft.
_________________________
Orwell war ein Optimist
________

„Würden die Menschen das Geldsystem verstehen, hätten wir eine Revolution noch vor morgen früh.“
- Henry Ford

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2904960 - 14.06.2018, 18:58:43
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Antwort auf: TobyB
Das ist ein von diesem Thema unabhängiger Bug den wir bereits unter 17432 führen. Nach unserem aktuellen Kenntnisstand tritt das allerdings recht selten und unvorhersehbar auf. Wenn du mehr Infos dazu hast oder gar ein Szenario in dem sich der Fehler immer reproduzieren lässt, dann meld dich bei uns!
Wie gesagt, ist nach dem Update von gestern Abend nicht mehr aufgetreten. - Habe sämtliche Apps durchprobiert und alle gingen bis auf kleine Einschränkungen die aber auf die Sandbox in anderer Weise zurückzuführen sind.

Antwort auf: TobyB
Zur Popup-Thematik:
Szenarien wie du sie beschreibst können auch jetzt schon über die API gelöst werden. Du kannst beim User einfach ein weiteres Popup über AppContent öffnen.
Nein, es ist nur ein Popup pro User App erlaubt. - Am PC selbst, ist man es aber gewohnt mit mehreren Fenstern zu arbeiten. Aktuell muss man für User Apps eine zweite App installieren um ein zweites Popup zu öffnen.
Vorher war es möglich mit window.popup() bzw. <a href target..> ein sehr angenehmes Verhalten zu produzieren um je nach Fall zu entscheiden.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2904986 - 14.06.2018, 19:53:30
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: Sephiroth ME
Habe sämtliche Apps durchprobiert und alle gingen bis auf kleine Einschränkungen die aber auf die Sandbox in anderer Weise zurückzuführen sind.

Genau diese Kleinigkeiten interessieren mich. Kannst du mir die bitte alle nennen?
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2905071 - 15.06.2018, 01:30:58
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Da ich nicht alle Methoden offenlegen will, hab ich dir eine /m mit der Erklärung geschrieben.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2905226 - 15.06.2018, 21:45:38
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Antwort auf: TobyB
Client.pageData ist korrekt befüllt
Eben nochmal getestet:
Console =>
Code:
Client.pageData
undefined
Wenn korrekt undefined ist, dann okay. =)
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2905264 - 16.06.2018, 00:13:25
djchrisnet
Verif​ied P​rotot​ype H​ater​

Registriert: 27.05.2006
Beiträge: 831
Ort: Elmshorn
Du musst die Console auch im Scope des appContent ausführen, nicht von "top", siehe dazu Skype
_________________________
» AppEntwickler-Coach
» Prototype Hater



[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: djchrisnet] - #2905266 - 16.06.2018, 00:18:42
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Nein habs auf appContent ebene ausgeführt, allerdings öffne ich die HTML File mit new HTMLFile('bla') - das Objekt wird nicht gesetzt, allerdings sollte es in "Client" dann dennoch definiert sein mit undefined oder null. Aber Client.hasOwnProperty('pageData') gibt false zurück, falls man es nur über new HTMLFile() ohne pageData Parameter geöffnet hat.

War nicht explizit genug, entschuldige. :)
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2905340 - 16.06.2018, 20:16:33
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Client.getHostFrame().setTitle() wird nicht übernommen, es fehlt der Funktionsaufruf für postMessage() (wird aktuell nur ausgeführt durch den Eventlistener)
Code:
e.addEventListener("DOMContentLoaded", function() {
	l.appTitle && (document.title = l.appTitle), document.title || (document.title = "App"), f({
		type: "setTitle",
		params: [document.title]
	})
});
Ein window.dispatchEvent(new Event('DOMContentLoaded')); löst es aktuell.
Code:
Client.getHostFrame().setTitle("Some stuff!");
window.dispatchEvent(new Event("DOMContentLoaded"));

loaderServer Wert: closeOnDisconnect = true wird nicht berücksichtigt => AppContent.Popup öffnen => Channel verlassen => bleibt geöffnet. - Overlays/Headerbars werden Notgedrungen durch die Channelschließung beendet.

Ebenso Backspace löst dies aus:
Code:
knuddels-tools.js?loaderHash=1529100600407:1
'KeyboardEvent.keyLocation' is deprecated and will be removed in M50, around April 2016.
Please use 'KeyboardEvent.location' instead. See https://www.chromestatus.com/features/4997403308457984 for more details.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2905522 - 18.06.2018, 08:33:40
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: Sephiroth ME
Client.hasOwnProperty('pageData') gibt false zurück

Stimmt, das ist ein Bug. Wird gefixt.

"closeOnDisconnect" hab ich auch auf die Bugfix Liste gesetzt.

Antwort auf: Sephiroth ME
Ebenso Backspace löst dies aus:
Code:
knuddels-tools.js?loaderHash=1529100600407:1
'KeyboardEvent.keyLocation' is deprecated and will be removed in M50, around April 2016.
Please use 'KeyboardEvent.location' instead. See https://www.chromestatus.com/features/4997403308457984 for more details.

Ich weiß nicht woher das kommen soll, ich finde kein "keyLocation" in unserem Code. [Und alles funktioniert soweit ja auch in Chrome >= 50]

"Client.getHostFrame().setTitle("Some stuff!");" hab ich auch auf der Bugfix Liste.

-----------

Antwort auf: Sephiroth ME
window.dispatchEvent(new Event('DOMContentLoaded'))

Ich rate dir und jedem anderen deutlich davon ab so etwas zu tun (das künstliche Erzeugen von existierenden nativen Events - schlimm genug, dass die Spec das erlaubt). "DOMContentLoaded" ist ein Lifecycle-Event des Browsers (siehe MDN Doc for Events (besonders: "HTML DOM Events")). Wenn du das künstlich (erneut) abfeuerst, dann kannst du damit unvorhersehbare Effekte und Probleme provozieren. In aller Regel sind Event-Handler für dieses Event auch nicht darauf vorbereitet mehrfach ausgeführt zu werden, eben da dieses Event exakt ein Mal im tatsächlichen Lifecycle der Webseite passiert.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2905833 - 19.06.2018, 16:57:46
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Hallo :-)


Wir haben eben auf dem Dev-Server ein Update der API ausgerollt. Damit haben wir folgende Punkte behoben:
  • Die Property Client.pageData ist nun (wie vorher) immer existend, hat als Wert aber undefined wenn keine pageData vorhanden ist
  • Der Titel wird nun beim Laden der App und beim setzen via Client.getHostFrame().setTitle('someTitle') korrekt aktualisiert/gesetzt
  • Echte Interaktion eines Users mit der HTML-UI zählt nun wieder als Aktivität (das hat nicht überall und immer funktioniert)
  • Diverse kleinere Bugfixes, besonders für den JavaFX Browser der z.B. noch im Applet benutzt wird

Sonstige Hinweise:
  • Das erwähnte closeOnDisconnect ist eine interne API und funktioniert wie gewünscht
  • Cache-Invalidation für z.B. CSS-Dateien (wurde hier nachgefragt) gibt es schon immer out-of-the-box via Client.includeCSS()
  • Um es Entwickler-Neulingen in der nun beschränkteren Umgebung etwas einfacher zu machen haben wir z.B. alert() durch console.log() ersetzt und geben gleichzeitig ein Warning in der Console aus das darauf hinweist

Bitte testet noch mal dass alles funktioniert wie es soll.
Wir planen aktuell das ganze in wenigen Wochen Live für alle UserApps auszurollen.


Happy Testing. :)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Kev777] - #2905901 - 20.06.2018, 08:17:30
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Ich hätte da noch eine Bitte an Kev (und gerne jeder der sich sonst noch angesprochen fühlt!)

Antwort auf: Kev777
auch meine testapp mit unity, auch wenn die echt noch nicht viel tut, läuft.

Wer sich eventuell an Nics Posting zu unserer Unity3D App aus einem unserer Hackathons erinnert, der wird vermutlich auch noch folgenden Faupax von uns (bzw. dem UserApps System) kennen:
Antwort auf: nic95
Leider hat das UserApp System ein paar gemeine Sonderheiten. Zum Beispiel überschreiben wir URL, was Unity intern zum nachladen von Spielinhalten nutzt. Glücklicherweise können wir unsere eigenen JavaScript Dateien schnell anpassen. Der Übeltäter überschreibt nun zwar immernoch URL, stellt in window._URL aber das ursprüngliche Objekt bereit. Damit kann in der von Unity generierten HTML Seite ein kleines Schnippsel eingebunden werden, das _URL wieder zurück in URL kopiert.
Es muss also die Vorlage der von Unity generierten index.html angepasst werden. Unity bietet dafür benutzerdefinierte Templates. Damit kann das folgende Schnippsel leicht eingebunden werden, welches alle von Unity benötigten Funktionen des URL Objekts wiederherstellt. Stellt sicher, dass das Schnippsel eingebunden wird, bevor “UnityLoader.instantiate” aufgerufen wird.
Code:
<script>
	URL.createObjectURL = _URL.createObjectURL;
	URL.revokeObjectURL = _URL.revokeObjectURL;
</script>

Im Zuge der Umbauten an der API der letzten Wochen haben wir dieses Problem behoben. Wir überschreiben nicht mehr das Browser-native globale URL Objekt. Wir haben allerdings das damals als Workaround eingeführte globale Objekt _URL unangetastet gelassen um mit euren bestehenden Apps kompatibel zu bleiben. Allerdings würden wir diesen Workaround gerne irgendwann entfernen. Das heißt ihr könnt und sollt gerne den von Nic beschriebenen Workaround ausbauen, es sollte jetzt out-of-the-box funktionieren.

Daher wäre es super wenn ihr das tun und testen könntet. :)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2906159 - 21.06.2018, 16:19:38
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Hallo :)


Das Test-Szenario wurde soeben ein wenig erweitert. Ihr könnt und sollt jetzt nicht nur eure UserApps testen sondern könnt und sollt auch die SystemApps testen die zum Thema UserApps/MyChannel gehören. Das ganze findet auch auf dem Dev-Server statt.

Die Apps sind:
- Entwickler-AGB
- /apps
- UserApp-Toplisten
- MyChannel-Monetarisierung
- /kcode web (KCode-Tool um zu prüfen wie das alles im HTMLChat aussieht)

HINWEIS:
Es gibt bei SystemApps in seltenen Fällen das Problem, dass der erste Versuche die App zu öffnen nicht korrekt funktioniert, dann bleibt die App im loading-Vorgang stecken. Dann einfach die App erneut öffnen, dann gehts. Diese Fehler werden wir vermutlich nächste Woche beheben.


Viel Spass! :)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2906294 - 22.06.2018, 16:31:26
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Hey :)


Heute die für etwa 10 Tage die letzte Bugfix-Liste (ich bin dann im Urlaub).
  • Client.getHostFrame().setTitle() funktioniert jetzt auch vor dem DOMContentLoaded Event und auch der Title den ihr im Server-Code setzt wird immer sauber übernommen
  • Client.getHostFrame().setResizable() wirft keine NullPointerException mehr wenn man die Methode ohne Parameter aufruft - die Methode funktioniert nur noch mit exakt einem boolean-Parameter
  • Diverse Bugs im Ladeprozess, die aber glaube ich vor allem SystemApps betreffen
  • Code cleanup

Falls ihr noch Probleme finden solltet dann meldet sie hier, wenn ich wieder da bin werd ich mir die alle anschauen.

Weiterhin Happy Testing. :)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2906349 - 23.06.2018, 03:46:09
0oMiro0
Forumuser

Registriert: 09.11.2015
Beiträge: 8
Ort: deutschland,schleswig-holstein...
hallo,

das user.sendevent läuft wieder, danke.

nun geht aber /apptop nicht mehr.

problem accessing/apps/apptop/toplists.html. with-api.html
reason:

not found


mfg


(Unter der ID: 0017472 gemeldet)


Bearbeitet von DerNeuanfang (25.06.2018, 20:55:54)
Bearbeitungsgrund: BTS ID hinzugefügt

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: 0oMiro0] - #2907774 - 03.07.2018, 15:14:58
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Entnehme ich dem Schweigen hier, dass es sonst keine offenen Probleme mehr gibt?

(/apptop haben wir auf der Liste)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2907786 - 03.07.2018, 15:52:57
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Antwort auf: Sephiroth ME
...
https://tools.ietf.org/html/rfc2616#section-6.1.1 - Header Status Codes
https://tools.ietf.org/html/rfc2616#section-10.2.1 - Header Status 200
https://tools.ietf.org/html/rfc2616#section-10.4.5 - Header Status 404
Warnung! Spoiler!
HTTP Header Anfrage:
Code:
GET /apps/api/knuddels-api.js HTTP/1.1
Host: apps3.knuddels.biz
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36
DNT: 1
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,de;q=0.8

HTTP Header Antwort:
Code:
HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Type: text/html
Accept-Ranges: bytes
ETag: "1543400404"
Last-Modified: Fri, 15 Jan 2016 13:06:47 GMT
Content-Length: 466
Date: Mon, 11 Jun 2018 21:31:18 GMT
Server: lighttpd/1.4.33
Datei ist nicht existent, header status ist aber ok?! Falsche Statuscodemeldung => Fehlerhafte Verarbeitung für alles was danach folgt und darauf aufbaut wie impletierung von Scripten.

Der Browser überprüft in erster Linie den Status Code
200 Ok => Datei existiert => Versuchs als Script zu laden.
404 Nicht existient => Wieso soll ich etwas das nicht existiert laden?

Was der Webserver antworte sollte als Header:
Warnung! Spoiler!
Anfrage:
Code:
GET /nonExistent.js HTTP/1.1
Host: google.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
DNT: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,de;q=0.8
Cookie: Jede Menge kram der euch nicht zu interessieren hat :p

Antwort:
Code:
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=UTF-8
Referrer-Policy: no-referrer
Content-Length: 1575
Date: Mon, 11 Jun 2018 21:40:32 GMT
Ihr wisst auch genau, dass falsche Statuscodes zu Fehlverhalten führen, macht es dennoch. :|

Tritt nach wie vor auf und erschwert das Debuging unnötig. Denn es wird kein Script Part ausgeführt nachdem eine "Fehlende Datei" implementiert wurde. - Und Tippfehler überliest man gerne mal, vor allem vertauschte oder vergessene Buchstaben.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2908592 - 09.07.2018, 10:36:56
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Hallo :)


Wir haben noch mal etwas umgebaut. Könnt ihr eure Apps noch mal testen, dass es damit keine Regression gegenüber dem Stand von letzter Woche gibt? Die bisher offenen Punkte sind weiterhin offen und werden wir uns dann ggf in Kürze anschauen.

Wir steuern übrigens auf den Release des ganzen zu. Da seit vielen Tagen keine neuen Meldungen mehr kommen und wir (so gut wie) alle wichtigen Punkte gelöst haben steht einem Release nicht mehr viel im Wege.


Happy Testing. :)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2908684 - 09.07.2018, 20:19:16
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Hallo noch Mal. :)

Auf Wunsch erläutere ich kurz was sich mit diesem Update geändert hat:
- Wir haben hauptsächlich interne Veränderungen an der Struktur des Code vorgenommen (Refactoring, Cleanup)
- Wir haben einige uralte und seit langer Zeit als "veraltet"/"deprecated" definierte Code-Schnippsel und APIs entfernt
- Wir haben die Einbindung und initialisierung von Polyfills, Patches und Hilfs-Libraries vor allem für den JavaFX Browser glatt gezogen
- Wir haben den Mechanismus gefixt der Usern mit veralteten Clients Update- oder Migrations-Möglichkeiten zum neuen/besseren Client anbietet

Und noch mal in expliziter Form der Hinweis: diese Version ist der Release Candidate für das Projekt! So wie es jetzt ist wollen wir das ganze nächste Woche live für alle ausrollen. Daher ist das die letzte Gelegenheit Feedback zu geben bevor wir das ganze live ausrollen.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2908737 - 10.07.2018, 00:19:07
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Ob es damit im Zusammenhang steht, kann ich nicht beurteilen, allerdings melden alle Systemapps Bad Gateway aktuell aufm Dev-Server.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2909086 - 12.07.2018, 10:15:14
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: Sephiroth ME
Ob es damit im Zusammenhang steht, kann ich nicht beurteilen, allerdings melden alle Systemapps Bad Gateway aktuell aufm Dev-Server.

Das ist ein Issue den wir bereits entdeckt haben. Das tritt lediglich beim ersten Aufruf jeder App nach einem Loader- oder AppServer-Update auf. Einfach die App erneut aufrufen, dann gehts. Diesen Issue gibt es nur auf dem Dev-Server.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2909087 - 12.07.2018, 10:26:35
0oMiro0
Forumuser

Registriert: 09.11.2015
Beiträge: 8
Ort: deutschland,schleswig-holstein...
hallo, ich war heute im app menü (ansicht)drin weil ich was neu raufladen wollte.
welche app willst du installieren, da kommt nichts außer das es dort dreht.
bei einem kollegen ist das genau so.
wenn ich unten aber den namen eingebe geht es.
mfg

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: 0oMiro0] - #2909127 - 12.07.2018, 17:10:27
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Der EventListener eventReceived wird nicht mehr ausgelöst. Ist auch nicht mehr in der api-core-js zu finden.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2909131 - 12.07.2018, 17:23:30
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: Sephiroth ME
Der EventListener eventReceived wird nicht mehr ausgelöst. Ist auch nicht mehr in der api-core-js zu finden.

siehe letzter Changelog:
Antwort auf: TobyB
- Wir haben einige uralte und seit langer Zeit als "veraltet"/"deprecated" definierte Code-Schnippsel und APIs entfernt

Diese API die du ansprichst ist am 17.03.2015 eingeführt und am 17.06.2015, also nur drei Monate später (vor ziemlich genau 3 Jahren), als "Deprecated" markiert worden.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2909134 - 12.07.2018, 17:35:41
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Antwort auf: TobyB
...
Antwort auf: TobyB
- Wir haben einige uralte und seit langer Zeit als "veraltet"/"deprecated" definierte Code-Schnippsel und APIs entfernt

Diese API die du ansprichst ist am 17.03.2015 eingeführt und am 17.06.2015, also nur drei Monate später (vor ziemlich genau 3 Jahren), als "Deprecated" markiert worden.

"Seid Transparenter"
Darunter fallen:
  • Punkt A
  • Punkt B...
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2909138 - 12.07.2018, 18:05:27
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Soeben haben wir auf dem Dev-Server einerseits den Loader aktualisiert, andererseits das auch AppServerModules.
- Dadurch funktionieren die UserApps-Toplisten jetzt wieder (bitte testen!)
- Intern haben wir ein paar Bugs behoben bei dem neue Apps-APIs und alte/andere APIs sich durch gleiche Namen gegenseitig überschrieben haben (konkret behebt das, dass /usersatisfation jetzt wieder funktioniert - das ist das Channel-Rating)


Bearbeitet von TobyB (12.07.2018, 18:11:01)
Bearbeitungsgrund: ausführlicher erklärt
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2909139 - 12.07.2018, 18:14:50
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: Sephiroth ME
Antwort auf: TobyB
...
Antwort auf: TobyB
- Wir haben einige uralte und seit langer Zeit als "veraltet"/"deprecated" definierte Code-Schnippsel und APIs entfernt

Diese API die du ansprichst ist am 17.03.2015 eingeführt und am 17.06.2015, also nur drei Monate später (vor ziemlich genau 3 Jahren), als "Deprecated" markiert worden.

"Seid Transparenter"
Darunter fallen:
  • Punkt A
  • Punkt B...

Ja, das muss ich mir ankreiden lassen. Da hätte ich vorab transparenter sein sollen. Sorry dafür!

Konkret waren es zwei APIs:
- das [von dir genannte] global "eventReceived" Event gibt es nicht mehr, es gibt jetzt nur noch "Client.addEventListener('MyAwesomeEvent', function(){...})" als möglichkeit auf Events vom Server zu hören
- wir haben eine ausschließlich für internal-use entwickelte Methode entfernt die JavaScript asynchron nachladen konnte und die jetzt nicht mehr gebraucht wird
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2909261 - 13.07.2018, 17:58:51
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Wir haben uns noch mal angeschaut wie es mit der Nutzung von zwei veralteten bzw. eigentlich internen APIs aussieht. Dabei haben wir entdeckt, dass es leider mehrere hundert Apps gibt die wir damit potentiell kaputt machen würden. Daher haben wir eben auf dem DEV-Server noch mal eine neue Version der Client-API ausgerollt die folgende Änderungen enthält:

  • document.addEventListener('eventReceived', ...) ist übergangsweise wieder möglich, produziert nun aber ein Warning (siehe "Deprecation Notice 1")
  • Client.onSendEventReceived() ist schon immer eine rein interne API gewesen. Sie produziert jetzt auch ein entsprechendes Warning (siehe "Deprecation Notice 2")
  • Der Event-Name/Typ bei Client.addEventListener(type, callback) muss jetzt ein String sein der leer ist oder mit einem Alpha-Numerischen Zeichen beginnt (Das ist ein Bugfix der verhindert, dass man das interne Array von EventListenern "kaputt" machen kann)


Deprecation Notice 1 (document event listener "eventReceived")
Warning: 'You are using a deprecated API (document event listener for "eventReceived"). Please use "Client.addEventListener()" instead. See: http://developer.knuddels.de/docs/classes/Client.html#method_addEventListener'
Es gab in den Anfangszeiten wie hier erwähnt kurzzeitig diese Variante um Events vom Server zu empfangen. In dieser Zeit ist auch die Ziegenphobie-Demo-App entstanden. Wir haben nach wenigen Monaten die alte API als "Deprecated" markiert, und sie war auch niemals offiziell dokumentiert (jedenfalls hab ich auch in unserer Versions-History keine einzige Doku gefunden). Da wir aber versäumt haben die HTML-UI-Demo-App (Ziegenphobie) an die neuen APIs anzupassen hat sich die Verwendung dieser API stark verbreitet. Wir werden sehr zeitnah die Demo-Apps mit HTML-UI auf die aktuellsten APIs aktualisieren.
Für euch heißt das: Bitte passt eure Apps an und tauscht diese veraltete API mit der entsprechenden API aus! (siehe Warning)
Wir werden diese API zu einem noch nicht definierten Zeitpunkt in der Zukunft entfernen (wir kündigen das dann an).

Deprecation Notice 2 (API "Client.onSendEventReceived()")
Warning: 'You are using "Client.onSendEventReceived()" which is an internal API. Please use "Client.dispatchEvent()" instead. See: http://developer.knuddels.de/docs/classes/Client.html#method_dispatchEvent'
Ich kann mir gerade nicht erklären wie es dazu kommen konnte, dass diese API, zu der ich ebenfalls in keiner Version-History eine Doku gefunden habe, eine derart große Verbreitung in mehreren hundert Apps erreichen konnte. Allerdings habe ich die Vermutung, dass ein sehr großer Teil davon daher rührt, dass diese API in einem (scheinbar beliebten) Framework von Bizarrus verwendet wird/wurde.
Für euch heißt das: Bitte passt eure Apps an und tauscht diese veraltete API mit der entsprechenden API aus! (siehe Warning)
Wir werden diese API zu einem noch nicht definierten Zeitpunkt in der Zukunft entfernen (wir kündigen das dann an).


Feedback zu diesen Änderungen und dem Plan für die Zukunft ist erwünscht! Immerhin war es jemand von euch der den Anstoß zu diesen Änderungen (also das Rückgängigmachen der Entfernung der API) gegeben hat.

Wobei ich bei dieser Gelegenheit noch mal darauf hinweisen möchte: Wenn ihr Feedback, Bugs gefunden oder Wünsche habt die ihr zu diesem Thema loswerden wollt, dann wendet euch bitte direkt hier im Thread und macht das nicht in irgendwelchen Messengern. Denn so bekommen wir das nicht mit und können auch nicht darauf reagieren.


Happy Testing. :)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2909282 - 13.07.2018, 20:04:21
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Anstatt einfach nur __proto__ zu schützen, wird einfach mal wieder alles verboten was genutzt werden könnte.
Zitat:
_meinListener löst jetzt einen Fehler aus. X-)


Gut, dann füttere ich den Bugfix jetzt mit:
Code:
Client.addEventListener('push', function() { console.log('Broken again'); });

Dafür gibt es for-in-Schleifen und Basisobjekte die genau auf solche Dinge nicht herein fallen.

Das wäre im übrigen ein besserer Weg:
Code:
if ((!meinTollesArray.hasOwnProperty(listenerName) && meinTollesArray[listenerName] !== undefined) || name === '__proto__') {
  throw new Error('Hör auf prototypen zu verfüttern!');
}

Ein Array zu benutzen und es als Objekt für andere Funktionen zu deklarieren aus welchen Gründen auch immer ist falsch.

Ein Objekt eignet sich viel besser (wie man an sämtlichen HTML Collections sieht).

Nächster Bug diesbezüglich:
Code:
Client.removeEventListener('__proto__');

Ein Objekt fällt darauf nicht herein, einem Objekt ist das egal. Denn das Array wird nach entfernen des __proto__ zu einem simplen Objekt. Definiert es einfach als Objekt und nutzt for-in-Schleifen.

Was die API und die Verbreitung der Frameworks angeht, ja das ist bescheiden, aber es gab lange Zeit auch kein/kaum Feedback in dem Bereich. weshalb viele Dinge dann untergehen, wie auch veraltete Dokumentation und man nutzt halt das, was seit Jahren dann bereits funktioniert.

Client.addEventListener('*', function() {}); funktioniert durch den benannten Fix nun auch nicht mehr. Soll aber laut Dokumentation.

MfG
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2909298 - 13.07.2018, 22:11:35
IgelchenM
​Laubhaufenbewohner

Registriert: 10.02.2005
Beiträge: 1.462
Ort: Bochum
Hey zusammen,
Im selben Atemzug wurden auch die Beispiele im Entwickler-Wiki überarbeitet und die genannten veralteten Methoden entfernt.
_________________________
Wo zum Teufel ist dieser Wayne wenn man ihn braucht?!

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: IgelchenM] - #2909299 - 13.07.2018, 22:19:32
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Danke Glitch, das war sehr berechtigtes und wichtiges Feedback. Ich habe eben noch mal eine neue Version der API auf dem DEV-Server ausgerollt.
Antwort auf: TobyB
Der Event-Name/Typ bei Client.addEventListener(type, callback) muss jetzt ein String sein der leer ist oder mit einem Alpha-Numerischen Zeichen beginnt (Das ist ein Bugfix der verhindert, dass man das interne Array von EventListenern "kaputt" machen kann)

Das war nicht bis zum Ende durchdacht von mir. Ich hab nun eine Lösung ausgerollt die diese Einschränkung wieder (nahezu) komplett entfernt und gleichzeitig das von Glitch zuvor gemeldete Problem mit z.B. "__proto__" komplett löst. Die Einschränkung die bestehen bleibt ist, dass der Event-Type ein String sein muss.

Danke dafür. :)


Bearbeitet von TobyB (13.07.2018, 22:22:29)
Bearbeitungsgrund: String-Anforderung ergänzt.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2909651 - 17.07.2018, 10:36:25
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: TobyB
Wir haben das ganze vor wenigen Minuten released! #party

Problemmeldungen bitte zu mir. dankeschön. :)
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2909803 - 18.07.2018, 12:24:52
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Ich habe nur recht häufig die Herausforderung, dass der allererste Aufruf eines HTML UIs (egal ob SystemApp oder UserApp) fehlschlägt und der Loader hängen bleibt, warum auch immer.

Alle folgenden werden geladen.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2909813 - 18.07.2018, 13:35:10
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Wenn du den Dev-Server meinst, dann ist es bestimmt das hier:
Antwort auf: TobyB
Antwort auf: Sephiroth ME
Ob es damit im Zusammenhang steht, kann ich nicht beurteilen, allerdings melden alle Systemapps Bad Gateway aktuell aufm Dev-Server.

Das ist ein Issue den wir bereits entdeckt haben. Das tritt lediglich beim ersten Aufruf jeder App nach einem Loader- oder AppServer-Update auf. Einfach die App erneut aufrufen, dann gehts. Diesen Issue gibt es nur auf dem Dev-Server.

Falls es live ist, dann meld dich bitte direkt bei mir.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: TobyB] - #2909895 - 19.07.2018, 11:11:06
djchrisnet
Verif​ied P​rotot​ype H​ater​

Registriert: 27.05.2006
Beiträge: 831
Ort: Elmshorn
Client.includeCSS(file) & Client.includeJS(file) führen encodeURI doppelt auf file aus, sodass

ein z.B. leerzeichen nicht mit %20 ersetzt wird sondern am Ende durch %2520

css/design/ich%2520hab%2520noch%2520nie.css?ts=1531990243652
Richtig wäre
css/design/ich+hab%2520noch%2520nie.css?ts=1531990243652


Bearbeitet von djchrisnet (19.07.2018, 11:11:21)
_________________________
» AppEntwickler-Coach
» Prototype Hater



[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: djchrisnet] - #2909896 - 19.07.2018, 11:20:11
Sephiroth ME
​gods own prototype

Registriert: 24.11.2003
Beiträge: 213
Ort: RLP, DE
Client.includeJS() führt kein encodeURI() aus, es betrifft nur Client.includeCSS().

Ebenso verursacht ein Client.includeCSS() innerhalb vom body Fehler, da es nicht automatisch in den head geschrieben wird.

Für CSS wäre document.head.insertAdjacentHTML('beforeend', '<link... />'); angebracht. Denn link darf nur im head stehen.
_________________________
one step closer to world domination

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: djchrisnet] - #2909936 - 19.07.2018, 16:39:58
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: djchrisnet
Client.includeCSS(file) & Client.includeJS(file) führen encodeURI doppelt auf file aus, sodass

ein z.B. leerzeichen nicht mit %20 ersetzt wird sondern am Ende durch %2520

css/design/ich%2520hab%2520noch%2520nie.css?ts=1531990243652
Richtig wäre
css/design/ich+hab%2520noch%2520nie.css?ts=1531990243652

Unter Bug-ID 17535 dokumentiert. Ist live mittlerweile bereits gefixt.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
Re: Developer-Server Test: Tiefgreifende Änderungen der App-API (Client) [Re: Sephiroth ME] - #2909939 - 19.07.2018, 17:19:06
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.531
Antwort auf: Sephiroth ME
Client.includeJS() führt kein encodeURI() aus, es betrifft nur Client.includeCSS().

Ebenso verursacht ein Client.includeCSS() innerhalb vom body Fehler, da es nicht automatisch in den head geschrieben wird.

Für CSS wäre document.head.insertAdjacentHTML('beforeend', '<link... />'); angebracht. Denn link darf nur im head stehen.

Das ist zwar korrekt, aber hat keine Auswirkung auf die App. Die Browser sind deart nachsichtig bei der Einhaltung von HTML-Regeln, dass sie es trotzdem behandeln als wären die CSS-Dateien korrekt eingebunden.

Das ganze hat mich allerdings auf einen Gedanken gebracht, den ich dann schnell überprüft habe. Und daraus ist ein Bug-Ticket entstanden:
17536 "[AppLoader] Client.includeCSS() und Client.includeJS() können das gesamte Dokument überschreiben"
Wenn man ab dem "DOMContentLoaded"-Event eine der beiden APIs benutzt, dann überschreibt man sich dabei das gesamte Dokument. Der Grund kann hier nachgelesen werden: https://developer.mozilla.org/en-US/docs/Web/API/Document/write#Notes

Das ganze ist vermutlich für die meisten oder gar alle Apps aktuell kein Problem, da die meisten oder eben alle wohl diese APIs nur statisch im HTML außerhalb von Event-Listenern wie "DOMContentLoaded" oder "load" verwenden. Dann ist man safe.

Bei wem da jetzt allerdings etwas klingelt und uns mehr Kontext geben kann, der darf sich gerne melden!

PS: Das ganze ist nichts neues, das war auch in der alten API bzw mit dem alten AppLoader schon so.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  
alle Beiträge 1 2 3 > alle