[Webkit-unassigned] [Bug 208612] Resource Load Statistics: Keep a count of resource loads per day
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Mar 4 17:56:57 PST 2020
https://bugs.webkit.org/show_bug.cgi?id=208612
--- Comment #5 from mmokary at apple.com ---
(In reply to katherine_cheney from comment #3)
> Comment on attachment 392506 [details]
> Patch
>
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=392506&action=review
>
> > Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:86
> > +constexpr auto insertResourceLoadCountRowQuery = "INSERT OR IGNORE INTO ResourceLoadCount VALUES(?, 0)"_s;
>
> INSERT OR IGNORE calls might require creating a unique index. Maybe not
> though because ResourceLoadCount has a primary key. Did you test that repeat
> attempts don't create a new row?
The primary key acts as a unique index in this (ON CONFLICT IGNORE) case, so this doesn't create new rows.
>
> > Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:356
> > + if (strncmp(table, "ResourceLoadCount", strlen(table))) {
>
> You can just use == here.
table is a char*[], it doesn't like ==
>
> > Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:359
> > + } else if (!createResourceLoadCountTable()) {
>
> Hmm, this seems strange. createResourceLoadCountTable() will be called for
> every other table iteration besides ResourceLoadCount. It should probably
> only be called once.
>
> I think this could be re-written in a way to make it easier to add new
> tables in the future. Maybe maintain a list of missing tables, and add them
> at the end?
>
Since the strncmp is effectively a != (rather than ==) this will only be reached when table is "ResourceLoadCount". I agree this doesn't lend well to adding new similar tables in the future, and reads poorly.
> > Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:602
> > +
>
> You can use resetStatement() here if you want. One less line of code.
>
> > Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:620
> > + ASSERT_UNUSED(resetResult, resetResult == SQLITE_OK);
>
> ditto
>
> > Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:645
> > +
>
> ditto
>
> > Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1346
> > + buildList(WTF::IteratorRange<Vector<unsigned>::iterator>(julianDaysInRange.begin(), julianDaysInRange.end())), ") ORDER BY day"));
>
> I think theres a static buildList function already in the class you can use.
>
This uses the static buildList function
> > Source/WebKit/Shared/WebCoreArgumentCoders.cpp:2862
> >
>
> Maybe I'm out of the loop, but what does "Transient stats" mean here?
It was just a name I came up with, since the field frequently restarts from 0 and isn't persisted. I'll rename it to something more clear.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20200305/9aac0063/attachment.htm>
More information about the webkit-unassigned
mailing list