Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(820)

Side by Side Diff: third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp

Issue 2370643004: Port messages sent by WebIDBFactoryImpl to Mojo. (Closed)
Patch Set: Address last nits and fix leaks in unit tests. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 387
388 void IDBDatabase::closeConnection() { 388 void IDBDatabase::closeConnection() {
389 DCHECK(m_closePending); 389 DCHECK(m_closePending);
390 DCHECK(m_transactions.isEmpty()); 390 DCHECK(m_transactions.isEmpty());
391 391
392 if (m_backend) { 392 if (m_backend) {
393 m_backend->close(); 393 m_backend->close();
394 m_backend.reset(); 394 m_backend.reset();
395 } 395 }
396 396
397 if (m_databaseCallbacks)
398 m_databaseCallbacks->detachWebCallbacks();
399
397 if (m_contextStopped || !getExecutionContext()) 400 if (m_contextStopped || !getExecutionContext())
398 return; 401 return;
399 402
400 EventQueue* eventQueue = getExecutionContext()->getEventQueue(); 403 EventQueue* eventQueue = getExecutionContext()->getEventQueue();
401 // Remove any pending versionchange events scheduled to fire on this 404 // Remove any pending versionchange events scheduled to fire on this
402 // connection. They would have been scheduled by the backend when another 405 // connection. They would have been scheduled by the backend when another
403 // connection attempted an upgrade, but the frontend connection is being 406 // connection attempted an upgrade, but the frontend connection is being
404 // closed before they could fire. 407 // closed before they could fire.
405 for (size_t i = 0; i < m_enqueuedEvents.size(); ++i) { 408 for (size_t i = 0; i < m_enqueuedEvents.size(); ++i) {
406 bool removed = eventQueue->cancelEvent(m_enqueuedEvents[i].get()); 409 bool removed = eventQueue->cancelEvent(m_enqueuedEvents[i].get());
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 void IDBDatabase::contextDestroyed() { 522 void IDBDatabase::contextDestroyed() {
520 m_contextStopped = true; 523 m_contextStopped = true;
521 524
522 // Immediately close the connection to the back end. Don't attempt a 525 // Immediately close the connection to the back end. Don't attempt a
523 // normal close() since that may wait on transactions which require a 526 // normal close() since that may wait on transactions which require a
524 // round trip to the back-end to abort. 527 // round trip to the back-end to abort.
525 if (m_backend) { 528 if (m_backend) {
526 m_backend->close(); 529 m_backend->close();
527 m_backend.reset(); 530 m_backend.reset();
528 } 531 }
532
533 if (m_databaseCallbacks)
534 m_databaseCallbacks->detachWebCallbacks();
529 } 535 }
530 536
531 const AtomicString& IDBDatabase::interfaceName() const { 537 const AtomicString& IDBDatabase::interfaceName() const {
532 return EventTargetNames::IDBDatabase; 538 return EventTargetNames::IDBDatabase;
533 } 539 }
534 540
535 ExecutionContext* IDBDatabase::getExecutionContext() const { 541 ExecutionContext* IDBDatabase::getExecutionContext() const {
536 return ActiveDOMObject::getExecutionContext(); 542 return ActiveDOMObject::getExecutionContext();
537 } 543 }
538 544
539 void IDBDatabase::recordApiCallsHistogram(IndexedDatabaseMethods method) { 545 void IDBDatabase::recordApiCallsHistogram(IndexedDatabaseMethods method) {
540 DEFINE_THREAD_SAFE_STATIC_LOCAL( 546 DEFINE_THREAD_SAFE_STATIC_LOCAL(
541 EnumerationHistogram, apiCallsHistogram, 547 EnumerationHistogram, apiCallsHistogram,
542 new EnumerationHistogram("WebCore.IndexedDB.FrontEndAPICalls", 548 new EnumerationHistogram("WebCore.IndexedDB.FrontEndAPICalls",
543 IDBMethodsMax)); 549 IDBMethodsMax));
544 apiCallsHistogram.count(method); 550 apiCallsHistogram.count(method);
545 } 551 }
546 552
547 } // namespace blink 553 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698