Hmm.. document.write() seems to work just fine on Opera Mini, even when loaded from external scripts/inlined/etc. The only problem seems to be about timing, ie. if a page takes too long to load, the scripts will be left behind.
I haven't had a chance to checkout your code and run it locally, but could you confirm that Opera Mini actually gets the document.write()?
When visiting this directly, on various user-agents, I don't see a document.write
www.mediawiki.org/w/index.php?title=Special:ZeroRatedMobileAccess&zcmd=js-banner (I obviously get just this: window.mw.zeroConfig={"enabled":false,"id":null}; )
I'm waiting for a colleague to test and report from a network where Wikipedia is actually free.
For your second question: Since the webpage/session/cookies are all sitting on the server, all AJAX/inline requests will originate from the Mini Server and not the client. The IP address will belong to our servers, and the x-forwarded-for will be set as the client's ip.
Best regards, Gautam
On Tue, Jul 29, 2014 at 11:27 PM, Yuri Astrakhan yastrakhan@wikimedia.org wrote:
Gautam, another question for you - in addition to the previous - if I have a script that runs onload, which pulls some data from web servers, which origin IP will that request have? E.g., a regular request from a non-opera client either has the ip of the client, or the client's ip is somewhere in the X-Forwarded-For header. When the opera mini server executes javascript that makes an AJAX request on behalf of a client, does it set XFF header to the client ip? Or does it originate from its own IP?
Thanks!
On Tue, Jul 29, 2014 at 11:20 AM, Yuri Astrakhan <yastrakhan@wikimedia.org
wrote:
Jon, TimS suggested we use this approach, because we don't have ESI, and we need to inject a Zero banner which is client IP dependent, without varying article's HTML.
See this RFC https://www.mediawiki.org/wiki/Requests_for_comment/Unfragmented_ZERO_designfor details on why we do it and how.
Gautam, the code is, as always, fully open source :) See the this RFC https://www.mediawiki.org/wiki/Requests_for_comment/Unfragmented_ZERO_design#Banner_generation (banner generation) first and also here's the Repository http://git.wikimedia.org/summary/?r=mediawiki/extensions/ZeroBanner.git, code that generates http://git.wikimedia.org/blob/mediawiki%2Fextensions%2FZeroBanner.git/58a141c2ccd46049c8cc540c5a90f1d44c616556/includes%2FPageRendering.php#L347
<script> & <noscript>, and this code <http://git.wikimedia.org/blob/mediawiki%2Fextensions%2FZeroBanner.git/58a141c2ccd46049c8cc540c5a90f1d44c616556/includes%2FZeroSpecialPage.php#L387>outputs the actual javascript. Thanks! On Mon, Jul 28, 2014 at 11:14 PM, Jon Robson <jdlrobson@gmail.com> wrote: > Also don't use document.write :) > Out of interest what is this document.write code needed for? > > > > On Mon, Jul 28, 2014 at 12:09 PM, Gautam Chandna <gautamc@opera.com> > wrote: > > Opera mini doesn't support inlined scripts, as it needs to finish > processing > > the page as fast as possible for transcoding. > > > > The session/cookies/dom/etc all sits on the server while the client > simply > > sees the rendered page. To make this possible, we have to give up on a > lot > > of scripted functionality. > > > > It does execute the onload event for upto 5 seconds, so you could try > using > > that. If you're open to sharing your code, I could try and help. > > > > Best regards, > > Gautam Chandna > > +47 4567 1789 > > Sent from my iPhone > > > > On 28 Jul 2014, at 20:45, Yuri Astrakhan <yastrakhan@wikimedia.org> > wrote: > > > > Hi, I'm running into an opera mini strangeness. I have a <script > src="..."> > > tag inside <body>, which is suppose to return document.write("some > HTML"); > > This works fine except on opera mini, which does not seem to even call > the > > server, because I looked at server:source and saw the unsubstituted > <script> > > tag. Any suggestions? > > > > _______________________________________________ > > Mobile-l mailing list > > Mobile-l@lists.wikimedia.org > > https://lists.wikimedia.org/mailman/listinfo/mobile-l > > > > > > _______________________________________________ > > Mobile-l mailing list > > Mobile-l@lists.wikimedia.org > > https://lists.wikimedia.org/mailman/listinfo/mobile-l > > > > > > -- > Jon Robson > * http://jonrobson.me.uk > * https://www.facebook.com/jonrobson > * @rakugojon > > _______________________________________________ > Mobile-l mailing list > Mobile-l@lists.wikimedia.org > https://lists.wikimedia.org/mailman/listinfo/mobile-l >