In CrossSiteIframeTemplate.js this is handled by assigning
__MODULE_FUNC__.__softPermutationId to 0 to begin with, and then only
change that value if : was present in the permutation string. I'm not
seeing any other js files that init __softPermutationId to 0, and only
permutations.js assigns it to another value (but does so conditionally, so
it never *assigns* undefined to __softPermutationId, it just leaves it not
defined).
var idx = strongName.indexOf(':');
if (idx != -1) {
softPermutationId = parseInt(strongName.substring(idx + 1), 10);
strongName = strongName.substring(0, idx);
}
In researching
https://code.google.com/p/google-web-toolkit/issues/detail?id=8539
recently, this seemed to make sense (except in the context of the bug,
where the permutationId in CollapsedPropertyHolder where it gets
overwritten when it loads in a split point...). Looking at permutations.js,
it defines a method getCompiledCodeFilename(), but from a grep of the
codebase, this is only ever called from CrossSiteIframeTemplate.js, which
as mentioned above, sets a default value of zero.
The key direct_install maps to
com.google.gwt.core.linker.DirectInstallLinker, which extends
CrossSiteIframeLinker, and overrides getJsInstallScript to use
com/.../installScriptDirect.js instead of
com/.../installScriptEarlyDownload.js and change another boolean, but
neither of those appear to block getSelectionScriptTemplate from being used
to determine the actual selection script. Which should then mean that
softPermutationId gets init'd to zero.
That's just at a quick glance - aside from that I only have an absence of
evidence of the bug but no evidence of absence. We use a lot of soft
permutations, and 8539 is the only time we've seen an issue (where the
first time the value gets used is in a split point) - any chance that is
what is biting you instead?
On Thursday, February 13, 2014 11:41:50 AM UTC-8, Stephen Haberman wrote:
Hey,
We upgraded to GWT 2.6 last week, and our seeing weirdness with
StyleInjector. Firefox ends up using the StyleInjectImplIE and errors
out because $doc.createStyleSheet is IE only.
FF gets the wrong deferred binding because its permutationId is
undefined, when it should be 0. (We use collapse-all-properties and
direct_install linker.)
Looking at permutations.js, it does var softPermutationId, then later
when parsing the strongName, our FF strongName doesn't have : in it
(see below), so it ends effectively up doing:
module.__softPermutationId = undefined;
In our module.nocache.js file, here's the gecko1_8 entry:
unflattenKeylistIntoAnswers(['gecko1_8'],
'9181777BF8BB65802D36B21DCBB83FE1');
No :0 at the end.
So, surely __softPermutationId being undefined is a bug?
Should I try fixing this by changing getCompiledCodeFilename's
softPermutationId to default to 0? Or is the problem with the strong
name itself, in that it should always have a :digit suffix?
Hm. PermutationsUtil:131 insinuates :0 is left off on purpose.
Looking at git log/git blame, doesn't seem like any of this has changed
recently? We had been running some post-2.5 GWT trunk.
- Stephen
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
---
You received this message because you are subscribed to the Google Groups GWT
Contributors group.
To unsubscribe from this group and stop receiving emails from it, send an email
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.