In DatabaseTracker.cpp, there's a FIXME that says that "We should really just pass the details into this call, rather than using m_proposedDatabases." This change achieves that. Here's how things used to work: 1. DatabaseTracker::canEstablishDatabase() adds a DatabaseDetail to its m_proposedDatabase list. 2. It then calls DatabaseContext::databaseExceededQuota() to give the chrome client a chance to increase the quota. 3. Next, it removes the DatabaseDetails from m_proposedDatabase to revert step 1's action. DatabaseContext::databaseExceededQuota() eventually calls the ChromeClient. The ChromeClient in turn calls DatabaseTracker::detailsForNameAndOrigin() to get the detail for the database we're trying to open. Because the database may not have been added to the tracker database, detailsForNameAndOrigin() would also check the m_proposedDatabase list for the details of the database that we're trying to add, and retrieve the needed details from there. Here's how things work with this change: 1. The ProposedDatabase mechanism has been removed completely. Instead, DatabaseTracker::canEstablishDatabase() will call DatabaseContext::databaseExceededQuota() with the needed DatabaseDetails as an additional argument. 2. This details argument will be passed all the way to the ChromeClient where it can be accessed if needed.
Created attachment 181629 [details] Fix.
Comment on attachment 181629 [details] Fix. Attachment 181629 [details] did not pass cr-android-ews (chromium-android): Output: http://queues.webkit.org/results/15756014
Comment on attachment 181629 [details] Fix. Attachment 181629 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/15738981
Created attachment 181630 [details] Fix. Resolves chromium and windows build breakage.
The bots are happy. Time to get a review.
Comment on attachment 181630 [details] Fix. Resolves chromium and windows build breakage. I meant r? not r+. Need a review.
Landed in r139078: <http://trac.webkit.org/changeset/139078>.