That's my concrete proposal, looking at:

https://dxr.mozilla.org/mozilla-central/source/mobile/android/base/java/org/mozilla/gecko/db/LocalBrowserDB.java#1679

— push getTopSites and getPinnedSites down into BrowserProvider, so we're
only dealing with a single SQLite cursor.

If we can figure out a way to generate a suggested sites cursor without
first reading the resulting top sites cursor (all that excludedUrls
nonsense), great, then use Android's own MergeCursor to concatenate the two.

If we can't do so, then push the list of suggested sites into
BrowserProvider as a URI argument, and have it include them in the returned
cursor.

Currently we do this:

* Query for pinned sites.
* Query for top sites.
* Walk both cursors to get excluded URLs.
* Get a synthetic cursor for suggested sites.
* Use our own implementation of a merging cursor.

That is: two queries, and we walk the resulting cursors more than once. We
shouldn't need to do either of those things.

On Mon, Jan 18, 2016 at 11:06 AM, Richard Newman <[email protected]>
wrote:

> Does the problem only occur in the loader that uses TopSitesCursorWrapper?
>
> If so, can you eliminate that by simply generating a single cursor inside
> BrowserProvider, containing everything it needs? We shouldn't be hitting
> three cursors to show Top Sites.
>
> On Mon, Jan 18, 2016 at 5:33 AM, Margaret Leibovic <[email protected]>
> wrote:
>
>> On Fri, Jan 15, 2016 at 1:17 PM, Michael Comella <
>> [email protected]> wrote:
>>
>>> I started to investigate and came up with some speculative fixes, seeing
>>> that the framework used `CancellationSignal`s, but I later discovered the
>>> framework has two implementations (one built-in and one in the support
>>> library), one of which does not use the `CancellationSignal`s so I think
>>> the implementation with the signals is an optimization and I lost
>>> confidence in my solution.
>>>
>>
>> This crash is still happening on Nightly with this speculative fix, so I
>> agree that this doesn't look like the source of the crash.
>>
>> This bug is now the #1 top crasher on beta, so any help investigating
>> would be much appreciated:
>>
>> https://crash-stats.mozilla.com/topcrashers/?product=FennecAndroid&version=44.0b9&days=7
>>
>> Margaret
>>
>>
>> _______________________________________________
>> mobile-firefox-dev mailing list
>> [email protected]
>> https://mail.mozilla.org/listinfo/mobile-firefox-dev
>>
>>
>
_______________________________________________
mobile-firefox-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/mobile-firefox-dev

Reply via email to