[sabayon] identity crisis



I now understand the root cause of bug 305778, but I'm not entirely sure
of how to approach the fix because its a "structural" problem, in some
of the code I'm less familiar with. I could did though it but I bet Mark
has a good understanding of the issue and what is probably an
appropriate solution.

Here is what is going on:

[ pay no attention to the confused use of mozilla vs. firefox, its
unfortunate but not relevant to the issues at hand ]

The Mozilla "source" is not a ProfileSource proper, instead its a
delegate of "FilesSource". When the MozillaDelegate object initializes
it sets its name to "Firefox" in the constructor.

When the profile is saved it has only two sources: Files & GConf. Note
there is no Firefox (Mozilla) source. I believe because as a delegate of
Files its contained by Files.

But when the Mozilla delegate performs its sync_changes and adds its
files to the storage manager its name is "Firefox" (initialized in the
delegate constructor).

So I believe the storage manager thinks its storing things as "Firefox"
because its calling the method get_name().

There seems to be this confusion over what the storage manager knows
about, or in this instance the storage manager seems to only know about
"top level" objects (Files, GConf) but not their delegates. It also
seems to me delegates need to be kept separate from their "parents", in
other words Mozilla/Firefox really does not want to call itself "Files"
just because its a delegate of Files.

What is the right way for the storage manager to become aware of the
fact some of its objects have hidden delegate objects?
-- 
John Dennis <jdennis redhat com>




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]