You can instruct the compiler to be clever, see
http://www.bit-101.com/blog/?p=941
-----Message d'origine-----
From: Harbs
Sent: Sunday, February 10, 2013 5:46 PM
To: dev@flex.apache.org
Subject: Re: RSLs and signing
Hmm.
While thinking though the implications of using modules, I realized a
potential issue:
Without RSLs, multiple modules means all that Flex code being compiled into
every one of the modules. Right? That could result in a total load size
that's many times the size of a single app.
On Feb 10, 2013, at 6:30 PM, Alex Harui wrote:
On 2/10/13 8:18 AM, "Harbs" <gavha...@gmail.com> wrote:
On Feb 10, 2013, at 6:08 PM, Alex Harui wrote:
On 2/10/13 7:41 AM, "Harbs" <harbs.li...@gmail.com> wrote:
The numbers were for release.
The debug size using RSLs is about 1 MB.
I'm not really sure if modules can help. There are not many modular
components
in the app. Maybe I can load the image browser as a module, but I don't
know
how much of a difference that will make. There are a number of palettes
that
might be candidates. I'll see what I can do on that front, but I don't
have
high hopes. My bigger concern is really the Flex libs which have more
bulk
than the whole app... Is there a good way of figuring out where the
bulk is
coming from?
Link-reports might help.
Not sure what you mean here.
If you run a compile with the -link-report option, you can see what
classes
are being pulled in by other classes. That can help you think about how
to
refactor.
I went to your demo page at:
https://printui.com/web-to-print-demo-step-1.php
The first screen just looks like buttons and an image loader to me.
That
shouldn't be that big. As soon as the image loads, I would request load
of
a module of other UI widgets and associated logic while the user is
pondering what to do next.
Like I said, there are palettes that can be loaded as modules. It might
or
might not help. The "image" is actually multiple objects rendered as Flex
components. Text is a customized RichEditableText component. (That's
being
changed soon to a completely custom component due to limitations in
RichEditableText and our rendering requirements.) Images are compound
components with sub-elements, same goes for native objects.
The "image" took several seconds to show up for me, so I think you could
stick its widgets in a module, then it wouldn't delay the initial frame
and
you could post a progress bar. Or you could post a bitmap of the "image"
and bring in the live version later.
I don't know about the ethics of it, but since your landing pages are
php,
I'm not sure why you couldn't start pre-loading other SWFs after the
page is
displayed so more stuff is there if the user continues on.
Interesting idea. The primary use of the app is integration into third
party
websites, but I guess we can recommend that to our clients as well...
If I'm reading you right, the caching of swfs is actually more
persistent
than
the caching of unsigned RSLs. Right?
RSLs and SWFs have the same caching rules in the browser. The issue is
the
probability of a cache-miss. The signed RSL cache in the player
prevented
cache-misses if the user had no browser cache or emptied the cache or
had
limits on cache size.
On Feb 10, 2013, at 5:19 PM, Alex Harui wrote:
The only advantage to un-signed RSLs is if you serve more than one SWF
that
uses them from your domain. SWFs end up on disk in a browser cache
(if
there is one and within the limitations of that cache) so then there
is a
probability you won't have to download some code.
Apache Flex will hopefully release often. The Framework RSLs were
version-specific, so releasing often further lowers your chances of
any
benefit even if we did have a way to serve cross-domain RSLs.
I suppose we could try to host RSLs at some known place, but browser
cache
limitations would still apply, and you'd want a custom domain name
otherwise
you'd expose yourself to cross-domain scripting.
Are your SWF size numbers for release mode or debug mode? Using
modules
carefully can lower the size of the initial load.
On 2/10/13 6:54 AM, "Harbs" <harbs.li...@gmail.com> wrote:
Okay. Like you said this sucks.
I'm looking to moving from Flex 4.5 to 4.9 in the next few weeks. I
just
changed my compile settings to merge instead of using RSLs and the
app
went
from a little over 600 KB to 1.4 MB. :-(
I clearly have a lot of work to do removing dependency on a lot of
classes
and
getting rid of dependency on mx components (I have a very few in use,
but
the
ones that I'm using will be hard to replace with Spark.)
I'm still not sure why Flash can't cache third party signed RSLs,
but
there's
not much to be gained by kvetching about it. I doubt they'll add that
as a
feature to FlashŠ
Harbs
On Feb 10, 2013, at 4:37 PM, Nicholas Kwiatkowski wrote:
When I say signed, I'm meaning signed by Adobe. There really is
little benefit to sign an RSL with our certificates, as they are in
the
web
of trust of the Flash Player.
From what I've been told, unless it is signed by Adobe, it is not in
the persistent cache, so it is not cached on disk, period. This is
regardless of the domain that it is on.
This came up VERY early on (maybe even at the Tech Summit -- I don't
know,
I wasn't there), and Adobe was pretty straight forward that this was
going
to be the case. Questions came up about having them sign it, but
they
did
not want to dedicated the resources to do it. Looking back, it would
have
been a pain to have to submit our releases to Adobe for their
complete
review before we could do anything -- potentially holding back our
releases
weeks or months.
It was seen as a majority of the Flex work was moving to mobile. On
AIR
with mobile, there is no concept of RSLs (everything is embedded
within
the
final executable), so it was seen as less of an issue.
-Nick
On Sun, Feb 10, 2013 at 9:27 AM, Harbs <harbs.li...@gmail.com>
wrote:
Bah! So they're totally useless.
swfs are also cached by the browser for that session. Correct?
Is there any logic to not caching RSLs for the domain that loaded
them?
Only signed RSLs are cached on disk.
Signed meaning signed by Adobe. Right? There's no way to sign a RSL
with
an SSL or code signing certificate. Is there?
On Feb 10, 2013, at 4:19 PM, Nicholas Kwiatkowski wrote:
They are downloaded once per domain, per session. If you visit
domain
x.comtwice in a session (as defined by your browser), then it will
stay in
memory. If you close your session (typically by closing your
browser),
then it will be cleared from memory.
Only signed RSLs are cached on disk.
-Nick
On Sun, Feb 10, 2013 at 9:01 AM, Harbs <harbs.li...@gmail.com>
wrote:
I apparently missed this. Yes. It does suck. Are RSLs reloaded
every
time
for a specific domain, or is it just a cross-domain issue?
If I use RSLs for Flex 4.9 and I update my main app, do the RSLs
get
downloaded every time, or will the RSLs from my domain be reused?
Is
there
any point in using RSLs at all?
On Feb 10, 2013, at 3:56 PM, Nicholas Kwiatkowski wrote:
Adobe has (had?) a pretty good explanation on their Flash
Whitepaper.
It
boils down to this :
- They are no longer in control of Flex
- They are no longer doing security reviews of the source code
- They have to sign the Flex package with their security
certificate
in
order for it to be stored in the Flash RSL Cache
- They won't sign it anymore because they would be responsible
for
any
security issues that may come out of it.
Yes, it sucks, but unfortunately, we have to live with it.
-Nick
On Sun, Feb 10, 2013 at 8:49 AM, christofer.d...@c-ware.de <
christofer.d...@c-ware.de> wrote:
I have to admit, that I don't quite understand what the
inability to
create signed rsls has to do with the usage of rsls themselves.
The problem is that the Flashplayer is able to install rsls
that are
signed by Adobe. Usually the Adobe FDK rsls were also available
in
signed
versions (swz files). These were dynamically loaded the first
time
they
were needed and installed by the Flashplayer. The second time
the
libs
were
needed the installed versions were used reducing the download
time
dramatically. Now the problem is that Adobe won't sign Apache
SWCs
as
they
are no longer in charge of the libs code (Understandable).
Giving
Apache a
key to be able to also create signed RSLs would eventually open
serious
security problems because a signed manipulated swz would be
used by
every
other website using the same version of a given lib.
Coming back to the RSLs ... The difference between a signed and
an
unsigned RSL is just, that the unsigned rsl is loaded on every
visit
of
a
user. As far as I know there is no other difference. So I don't
quite
understand why the lack of availability of signed rsls should
have
any
effect on built applications and the default linking type.
Chris
-----Ursprüngliche Nachricht-----
Von: Harbs [mailto:harbs.li...@gmail.com]
Gesendet: Sonntag, 10. Februar 2013 14:19
An: dev@flex.apache.org
Betreff: RSLs and signing
I did not realize that Apache Flex does not use RSLs by
default.
What's the story with signing? Is that an issue with
cross-domain
security? Is there any way to get an Apache signature approved
for
Flash?
Either way, I'd imagine I'd want RSLs for the simple reason
that
updating
apps should result in a smaller download.
Harbs
On Feb 9, 2013, at 9:00 AM, Alex Harui wrote:
The default setting for Apache Flex is to not use RSLs because
Adobe
cannot sign the Apache Flex RSLs. That's probably why your
SWF is
bigger.
On 2/8/13 10:31 PM, "grimmwerks" <gr...@grimmwerks.com> wrote:
Hey all - long time listener first time caller.
I've taken a project that was originally 4.6 and I flipped it
to
4.9;
comparing the same code on two computers - when I build with
the
4.6
sdk I get a swf of 304k (with all the other extraneous
libraries
such
as osmf, mx, sparkspins, etc) -- whereas with 4.9 the main sf
is
1.1mb -- that's a huge difference with no other changes in
code no?
Garry Schafer
grimmwerks
gr...@grimmwerks.com
portfolio: www.grimmwerks.com/
--
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui
--
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui
--
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui
--
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui