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

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

Issue 2370643004: Port messages sent by WebIDBFactoryImpl to Mojo. (Closed)
Patch Set: Allow cpp_only to be set by the invoker. 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 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 void IDBDatabase::closeConnection() 357 void IDBDatabase::closeConnection()
358 { 358 {
359 DCHECK(m_closePending); 359 DCHECK(m_closePending);
360 DCHECK(m_transactions.isEmpty()); 360 DCHECK(m_transactions.isEmpty());
361 361
362 if (m_backend) { 362 if (m_backend) {
363 m_backend->close(); 363 m_backend->close();
364 m_backend.reset(); 364 m_backend.reset();
365 } 365 }
366 366
367 if (m_databaseCallbacks)
368 m_databaseCallbacks->detachWebCallbacks();
369
367 if (m_contextStopped || !getExecutionContext()) 370 if (m_contextStopped || !getExecutionContext())
368 return; 371 return;
369 372
370 EventQueue* eventQueue = getExecutionContext()->getEventQueue(); 373 EventQueue* eventQueue = getExecutionContext()->getEventQueue();
371 // Remove any pending versionchange events scheduled to fire on this 374 // Remove any pending versionchange events scheduled to fire on this
372 // connection. They would have been scheduled by the backend when another 375 // connection. They would have been scheduled by the backend when another
373 // connection attempted an upgrade, but the frontend connection is being 376 // connection attempted an upgrade, but the frontend connection is being
374 // closed before they could fire. 377 // closed before they could fire.
375 for (size_t i = 0; i < m_enqueuedEvents.size(); ++i) { 378 for (size_t i = 0; i < m_enqueuedEvents.size(); ++i) {
376 bool removed = eventQueue->cancelEvent(m_enqueuedEvents[i].get()); 379 bool removed = eventQueue->cancelEvent(m_enqueuedEvents[i].get());
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 { 458 {
456 m_contextStopped = true; 459 m_contextStopped = true;
457 460
458 // Immediately close the connection to the back end. Don't attempt a 461 // Immediately close the connection to the back end. Don't attempt a
459 // normal close() since that may wait on transactions which require a 462 // normal close() since that may wait on transactions which require a
460 // round trip to the back-end to abort. 463 // round trip to the back-end to abort.
461 if (m_backend) { 464 if (m_backend) {
462 m_backend->close(); 465 m_backend->close();
463 m_backend.reset(); 466 m_backend.reset();
464 } 467 }
468
469 if (m_databaseCallbacks)
470 m_databaseCallbacks->detachWebCallbacks();
465 } 471 }
466 472
467 const AtomicString& IDBDatabase::interfaceName() const 473 const AtomicString& IDBDatabase::interfaceName() const
468 { 474 {
469 return EventTargetNames::IDBDatabase; 475 return EventTargetNames::IDBDatabase;
470 } 476 }
471 477
472 ExecutionContext* IDBDatabase::getExecutionContext() const 478 ExecutionContext* IDBDatabase::getExecutionContext() const
473 { 479 {
474 return ActiveDOMObject::getExecutionContext(); 480 return ActiveDOMObject::getExecutionContext();
475 } 481 }
476 482
477 void IDBDatabase::recordApiCallsHistogram(IndexedDatabaseMethods method) 483 void IDBDatabase::recordApiCallsHistogram(IndexedDatabaseMethods method)
478 { 484 {
479 DEFINE_THREAD_SAFE_STATIC_LOCAL(EnumerationHistogram, apiCallsHistogram, new EnumerationHistogram("WebCore.IndexedDB.FrontEndAPICalls", IDBMethodsMax)); 485 DEFINE_THREAD_SAFE_STATIC_LOCAL(EnumerationHistogram, apiCallsHistogram, new EnumerationHistogram("WebCore.IndexedDB.FrontEndAPICalls", IDBMethodsMax));
480 apiCallsHistogram.count(method); 486 apiCallsHistogram.count(method);
481 } 487 }
482 488
483 } // namespace blink 489 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698