unable to use google streetview

Bug #673385 reported by Anand Kumria
36
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Lightspark
Confirmed
Medium
Unassigned

Bug Description

Whilst using Google maps to see streeview, I was unable to run the flash file.

Example, look for the Hilton Hotel.

http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&q=Hilton+Hotel&sll=51.535939,-0.104799&sspn=0.00626,0.016158&ie=UTF8&rq=1&ev=zi&radius=0.42&split=1&hq=Hilton+Hotel&hnear=&ll=51.535939,-0.104799&spn=0.00626,0.016158&z=16&iwloc=E

Drag the yellow map to the map marker.

The SWF URL is:

http://maps.gstatic.com/intl/en_uk/mapfiles/cb/googlepano.146.swf

I have received a number of errors messages:

Cause: constructGenericType not implement

Cause: Duplicated body for function

It would be great if Lightspark allowed this to work.

Revision history for this message
Anand Kumria (wildfire) wrote :
Revision history for this message
InfraBit (infrabit) wrote :

Google street view would be a great addition, I vote for it (running Gentoo here).

tags: added: websitesupport
Changed in lightspark:
status: New → Confirmed
Revision history for this message
Matthias Gehre (m-gehre) wrote :

I got it fully working with the patch below.

Please note the commented lines inside the 'if'. I expected that
the newClass instruction should push something back on the stack, but running it with those lines uncommented
gives an assert failture sometimes later in incRef. Someone with more knowledge of the codebase may probably easy spot the issue.

The rational behind the change is the following. With Loader.load() an swf is allowed to load another swf as child. Its clearly stated in the documentation that the child's classes will not override the parents classes. This seems to imply that
attempts by the child to register an already known class is not an error condition (it was handled that way before), but should
be ignored.
(Please forgive the uncleanness of the patch)

=== modified file 'scripting/abc_opcodes.cpp'
--- scripting/abc_opcodes.cpp 2011-04-29 20:23:44 +0000
+++ scripting/abc_opcodes.cpp 2011-05-05 23:41:34 +0000
@@ -2361,14 +2361,26 @@

 void ABCVm::newClass(call_context* th, int n)
 {
- LOG(LOG_CALLS, _("newClass ") << n );
+ LOG(LOG_ERROR, _("newClass ") << n );
  method_info* constructor=&th->context->methods[th->context->instances[n].init];
  int name_index=th->context->instances[n].name;
  assert_and_throw(name_index);
  const multiname* mname=th->context->getMultiname(name_index,NULL);

  assert_and_throw(mname->ns.size()==1);
- Class_inherit* ret=new Class_inherit(QName(mname->name_s,mname->ns[0].name));
+ QName qname = QName(mname->name_s,mname->ns[0].name);
+ std::map<QName, Class_base*>::iterator i = sys->classes.find(qname);
+ if(i != sys->classes.end())
+ {
+ LOG(LOG_ERROR,"ABCVm::newClass: Class does already exist");
+ /*th->runtime_stack_pop();
+ Class_base* ret = i->second;
+ ret->incRef();
+ th->runtime_stack_push(ret);*/
+ return;
+ }
+ LOG(LOG_ERROR,"Class_inherit from abc_opcodes");
+ Class_inherit* ret=new Class_inherit(qname);
 #ifdef PROFILING_SUPPORT
  if(!constructor->validProfName)
  {

Revision history for this message
Matthias Gehre (m-gehre) wrote :

I'm sorry, I was mistaken. This does make google street view work. Together with two other changes, this stops google street view from crashing, but it just shows an black box.

Changed in lightspark:
importance: Undecided → Medium
Revision history for this message
RussianNeuroMancer (russianneuromancer) wrote :

Now Google Street View available via WebGL. Open maps.google.com, click to "Experience WebGL".

Revision history for this message
Antti Ajanki (aajanki) wrote :

With the current git the scene is shown and it is possible to navigate around.

Known problems include:
- rendering errors, for example the tile boundaries are visible
- sometimes I encounter OpenGL errors and the screen stops updating
- zooming with +/- buttons doesn't work
- advanced features, like the picture browsing are not yet supported
- quite slow, especially when compiled with -O0

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.