Closed
Bug 643122
Opened 15 years ago
Closed 7 years ago
Provide Splashscreen for MeeGo Fennec
Categories
(Firefox for Android Graveyard :: General, defect)
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: jbos, Assigned: jbos)
References
Details
Attachments
(4 obsolete files)
Starting Fennec on MeeGo takes between 3 and 25 seconds, depending on hardware, memory useage and CPU useage during starting. Also if its the first start or not makes a huge difference.
MeeGo does not provide by default a loading screen / splashscreen for application. - Of course there might be MeeGo implementations which do such but its not part of any core compliance spec to do so.
A User expect reaction on starting a software in less than 1 second in order to have the best experience.
Do achieve this reaction-time anyhow in fennec, it is absolutely necessary to implement an MeeGo Splashscreen.
| Assignee | ||
Comment 1•15 years ago
|
||
-> I already have a patch opening a basic Dialog with type Qt::Splashscreen.
I needed to move creation of QApplication in AppRunner Main a bit (since i need a qapplication to open a qdialog)
I was not able to load the branding logo.png. Also we would need to decide how the logo should be rotated since this info is not available at this time and it depends on the specific MeeGo Implementation how startup rotation is handled.
(i.e. Intel Handset is always portrait while tablet is always landscape.)
| Assignee | ||
Comment 2•15 years ago
|
||
When copy logo.png beside of fennec binary you see the fennec logo, too. (Like for Windows)
* I wasn't sure where to add rules to get branding logo correctly
* Default rotation is portrait.
Attachment #520614 -
Flags: review?(romaxa)
| Assignee | ||
Comment 3•15 years ago
|
||
Fixed contributor.
Attachment #520614 -
Attachment is obsolete: true
Attachment #520614 -
Flags: review?(romaxa)
Attachment #520615 -
Flags: review?(romaxa)
| Assignee | ||
Updated•15 years ago
|
Attachment #520615 -
Flags: review?(mark.finkle)
Comment 4•15 years ago
|
||
Comment on attachment 520615 [details] [diff] [review]
Splashscreen fix for meego
I didn't see anything jump out at me, but I want Doug to have final say on the patch.
Attachment #520615 -
Flags: review?(mark.finkle) → review?(doug.turner)
| Assignee | ||
Comment 5•15 years ago
|
||
Indeed you would need to build for meego and have ac option --enabled-splashscreen in our mozconfig.
I wondered what the best way would be to handle orientation (which we at least currently can not get initialy) Any thoughts about how to make the splashscreen independent to orientation changes?
Comment 6•15 years ago
|
||
Comment on attachment 520615 [details] [diff] [review]
Splashscreen fix for meego
>+ //setup dialog
>+ mSplashDialog = new QDialog(0, Qt::SplashScreen);
>+ mSplashDialog->resize(r.width(),r.height());
>+
>+ QPalette dialogPalette;
>+ QBrush dialogBrush(QColor(0, 0, 0, 255));
>+ dialogBrush.setStyle(Qt::SolidPattern);
>+ dialogPalette.setBrush(QPalette::Active, QPalette::Window, dialogBrush);
>+ dialogPalette.setBrush(QPalette::Inactive, QPalette::Window, dialogBrush);
>+ dialogPalette.setBrush(QPalette::Disabled, QPalette::Base, dialogBrush);
>+ dialogPalette.setBrush(QPalette::Disabled, QPalette::Window, dialogBrush);
>+
>+ mSplashDialog->setPalette(dialogPalette);
i'd create the palette before touching the mSplashDialog.
>+
>+ //setup lable
>+ label = new QLabel(mSplashDialog);
Spelling.
>+ QPixmap pm(QString::fromUtf8("logo.png"));
Where does this logo come from?
>+ //rotate logo
>+ matrix.rotate(270);
>+ QPixmap pm1=pm.transformed(matrix);
why rotate? Shouldn't the image just be displayed? (you can just add a comment, i think)
>+
>+ progressBar->setGeometry(QRect(r.width()*0.75, r.height()/4, 30, r.height()/2));
where did these numbers come from? 3/4 of width? why?
>+void
>+nsSplashScreenMeeGo::Close()
>+{
>+ //wait 300 ms for close in order to let the use take a glimpse on the 100%
>+ //also usualy Close() is called on show of the firefox window, what means the
>+ //ui is still building up. In order to be sure ui is there lets wait shortly
>+ Update(100);
I do not know if this is a good idea. Waiting to show a bit more splashscreen seems wrong.
>+}
>\ No newline at end of file
New line please.
Attachment #520615 -
Flags: review?(doug.turner) → review-
| Assignee | ||
Comment 7•15 years ago
|
||
> Where does this logo come from?
This is the biggest question, this is basically taken from windows splashscreen. I still wonder if we can make this more "generic". right know i think that packaging should take care about taking it(or splash.png) from branding directory.
>
> >+ //rotate logo
> >+ matrix.rotate(270);
> >+ QPixmap pm1=pm.transformed(matrix);
>
> why rotate? Shouldn't the image just be displayed? (you can just add a
> comment, i think)
I just adding code so it is (should be) correctly orientated at startup -> if user rotate device, logo will rotate too.
>
> >+
> >+ progressBar->setGeometry(QRect(r.width()*0.75, r.height()/4, 30, r.height()/2));
>
>
> where did these numbers come from? 3/4 of width? why?
>
widget layout in this case is landscape but displayed layout is portrait. (widget do not rotate -> only the layout changes)
3/4 looked quite better than 100% :)
> >+void
> >+nsSplashScreenMeeGo::Close()
> >+{
> >+ //wait 300 ms for close in order to let the use take a glimpse on the 100%
> >+ //also usualy Close() is called on show of the firefox window, what means the
> >+ //ui is still building up. In order to be sure ui is there lets wait shortly
> >+ Update(100);
>
> I do not know if this is a good idea. Waiting to show a bit more splashscreen
> seems wrong.
>
when "show" is called on fennec -> (place where windows calles splashscreen close) fennec window is still building up and the user sees graphical glitches. The 300 ms just cover this. -> it lookes way better and give a more stable impression to the user.
>
> >+}
> >\ No newline at end of file
>
> New line please.
| Assignee | ||
Comment 8•15 years ago
|
||
Packaging would need to push correct branding splash.png beside of fennec binary.
The 400ms proofed them self as very nice since at the time when fennec window appears first the ui is still build up (the user sees fragments of the ui jumping around)
these 400 ms hide this and give fennec time to adjust. Ideally would be that we have another place than show to close the splashscreen but i'd like to keep it in sync / similar with other ports. (windows)
Also the 100% is set nowhere in the system. So setting it at close is just correct.
Attachment #520615 -
Attachment is obsolete: true
Attachment #520615 -
Flags: review?(romaxa)
Attachment #522683 -
Flags: review?(doug.turner)
Comment 9•15 years ago
|
||
> Packaging would need to push correct branding splash.png beside of fennec
> binary.
this is wrong, you should use chrome://xxx/xx.png URI open image create gfxXlib/ImageSurface and wrap as QImage/QPixmap
| Assignee | ||
Comment 10•15 years ago
|
||
can we land this?
Oleg, its not chrome://... is not yet there - see android java splashscreen or windows. Its all done this way.
| Assignee | ||
Updated•15 years ago
|
Attachment #522683 -
Flags: review?(romaxa)
Comment 11•15 years ago
|
||
Comment on attachment 522683 [details] [diff] [review]
Fixed Comments, added Rotation Support
style is a bit broken..
/splash.png is not in patch
>+ //wait 300 ms for
>+ QTimer::singleShot(400, mSplashDialog, SLOT(close()));
something conflicting here.
+class OrientationInfo : public QOrientationFilter
I think we should have somehow shared class between mozqorientationsensorfilter.cpp and this one.
>+ mProgressBar->setGeometry(QRect(r.width()*0.25, r.height()*0.75, r.width()*0.5, 30));
>+ mProgressBar->setGeometry(QRect(r.width()*0.75, r.height()*0.25, 30, r.height()*0.5));
any explanation about these values? should not we use some magic transform for r here which does right modification?
the rest seems to be fine for me.
Attachment #522683 -
Flags: review?(romaxa) → review-
Comment 12•15 years ago
|
||
Also make splash.png
mobile/branding/nightly/content/splash.png
be packed into bin directory, so then we can use the same resources, but packed in a bit different way.
| Assignee | ||
Comment 13•15 years ago
|
||
(In reply to comment #12)
> Also make splash.png
> mobile/branding/nightly/content/splash.png
> be packed into bin directory, so then we can use the same resources, but packed
> in a bit different way.
I have no idea how i can do that.
| Assignee | ||
Comment 14•15 years ago
|
||
> +class OrientationInfo : public QOrientationFilter
> I think we should have somehow shared class between
> mozqorientationsensorfilter.cpp and this one.
Duno, i dont like to have a include here from widget code...
| Assignee | ||
Comment 15•15 years ago
|
||
Added some Art to explain the values for layouting
Attachment #522683 -
Attachment is obsolete: true
Attachment #522683 -
Flags: review?(doug.turner)
Attachment #526946 -
Flags: review?(romaxa)
Comment 16•15 years ago
|
||
(In reply to comment #13)
> (In reply to comment #12)
> > Also make splash.png
> > mobile/branding/nightly/content/splash.png
> > be packed into bin directory, so then we can use the same resources, but packed
> > in a bit different way.
>
> I have no idea how i can do that.
The old WinCE code only had one splash.bmp, instead of one for nightly and one for official. This made it a bit easier to handle. We just copied the file to the bin folder:
http://mxr.mozilla.org/mobile-browser/source/app/Makefile.in#215
You could do something similar for MeeGo, except instead of copying from:
cp $(srcdir)/$(APP_SPLASH).bmp $(DIST)/bin/$(APP_SPLASH).bmp
you would copy from the branding folder:
cp $(DIST)/branding/$(APP_SPLASH).png $(DIST)/bin/$(APP_SPLASH).png
although I am not sure the branding folder has been processed when app/Makefile.in is processed.
You can also see how we use the branding folder when we create the deb packaging:
http://mxr.mozilla.org/mobile-browser/source/installer/Makefile.in#222
That might be a better time for you to copy the splash.png file too. I assume we have some sort of packaging step for MeeGo.
In order to get an image in the branding folder check out the makefile:
http://mxr.mozilla.org/mozilla-central/source/mobile/branding/official/content/Makefile.in
http://mxr.mozilla.org/mozilla-central/source/mobile/branding/nightly/content/Makefile.in
| Assignee | ||
Comment 17•15 years ago
|
||
thanks :)
Comment 18•15 years ago
|
||
Note: Bug 653333 is looking to remove splash screen support from Mozilla, since it is currently unused. If we do not think this patch is going to land, we should let bug 653333 know so we can remove the unused code.
Blocks: 653333
| Assignee | ||
Comment 19•15 years ago
|
||
Mhm,
I was quite busy last weeks, so wasn't really able to follow up here. Actually this patch is quite important for User experience on MeeGo. Since Splashscreen is also used in Android (well not this code - indeed) we should keep / ifdef it to be used on MeeGo.
Otherwise user will wait (on n900 meego) ~15-20 seconds until he sees fennec. with this splashscreen its only about 4-5 seconds until first reaction on screen.
| Assignee | ||
Comment 20•15 years ago
|
||
I forgot: MeeGo in general (MeeGo is always without Ux, there might be MeeGo Releases with a UX which provide such a support) but currently no Ux which I know of does provide such a default splashscreen support / preload like Android does.
Comment 21•15 years ago
|
||
IIUC splash screen for android implemented in android specific code, can we just do the same for Maemo/Meego?
Comment 22•14 years ago
|
||
Updated•14 years ago
|
Assignee: nobody → jeremias.bosch
Comment 23•14 years ago
|
||
Jeremias / Oleg / Mark : Any news on which approach is going to be taken? (ie comments 18-21)
Even if this bug isn't being worked on, knowing which approach is likely means I can try to resolve bug 653333 before then.
Status: NEW → ASSIGNED
Comment 24•14 years ago
|
||
I think we should land bug 653333, and re-do this with some other way...
Comment 25•14 years ago
|
||
(In reply to comment #24)
> I think we should land bug 653333, and re-do this with some other way...
Sounds like a plan. I'll continue with bug 653333. Thanks :-)
Updated•14 years ago
|
Comment 26•14 years ago
|
||
Just for reference:
(In reply to Oleg Romashin (:romaxa) from comment #21)
> IIUC splash screen for android implemented in android specific code, can we
> just do the same for Maemo/Meego?
This will need to be the desired approach, since the legacy WinCE splashscreen code has now been removed in bug 653333.
Comment 27•14 years ago
|
||
Comment on attachment 526946 [details] [diff] [review]
Added some nice comment art
nsSplashScreen no longer exists, marking obsolete.
Attachment #526946 -
Attachment is obsolete: true
Attachment #526946 -
Flags: review?(romaxa)
Comment 28•14 years ago
|
||
Btw, I've seen another way (more local) to implement splash screen https://www.fractalbrew.com/hg/projects/prefox-trunk/file/9732b33b4e0f/widget#l1479
Comment 29•7 years ago
|
||
Closing all opened bug in a graveyard component
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•