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

Side by Side Diff: Source/modules/indexeddb/InspectorIndexedDBAgent.cpp

Issue 295163005: Remove ScriptState::current() from IDBRequest (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 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 are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * 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 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 OpenDatabaseCallback(ExecutableWithDatabase* executableWithDatabase) 185 OpenDatabaseCallback(ExecutableWithDatabase* executableWithDatabase)
186 : EventListener(EventListener::CPPEventListenerType) 186 : EventListener(EventListener::CPPEventListenerType)
187 , m_executableWithDatabase(executableWithDatabase) { } 187 , m_executableWithDatabase(executableWithDatabase) { }
188 RefPtr<ExecutableWithDatabase> m_executableWithDatabase; 188 RefPtr<ExecutableWithDatabase> m_executableWithDatabase;
189 }; 189 };
190 190
191 void ExecutableWithDatabase::start(IDBFactory* idbFactory, SecurityOrigin*, cons t String& databaseName) 191 void ExecutableWithDatabase::start(IDBFactory* idbFactory, SecurityOrigin*, cons t String& databaseName)
192 { 192 {
193 RefPtr<OpenDatabaseCallback> callback = OpenDatabaseCallback::create(this); 193 RefPtr<OpenDatabaseCallback> callback = OpenDatabaseCallback::create(this);
194 TrackExceptionState exceptionState; 194 TrackExceptionState exceptionState;
195 RefPtrWillBeRawPtr<IDBOpenDBRequest> idbOpenDBRequest = idbFactory->open(con text(), databaseName, exceptionState); 195 RefPtrWillBeRawPtr<IDBOpenDBRequest> idbOpenDBRequest = idbFactory->open(scr iptState(), databaseName, exceptionState);
196 if (exceptionState.hadException()) { 196 if (exceptionState.hadException()) {
197 requestCallback()->sendFailure("Could not open database."); 197 requestCallback()->sendFailure("Could not open database.");
198 return; 198 return;
199 } 199 }
200 idbOpenDBRequest->addEventListener(EventTypeNames::success, callback, false) ; 200 idbOpenDBRequest->addEventListener(EventTypeNames::success, callback, false) ;
201 } 201 }
202 202
203 static PassRefPtrWillBeRawPtr<IDBTransaction> transactionForDatabase(ExecutionCo ntext* executionContext, IDBDatabase* idbDatabase, const String& objectStoreName , const String& mode = IDBTransaction::modeReadOnly()) 203 static PassRefPtrWillBeRawPtr<IDBTransaction> transactionForDatabase(ExecutionCo ntext* executionContext, IDBDatabase* idbDatabase, const String& objectStoreName , const String& mode = IDBTransaction::modeReadOnly())
204 { 204 {
205 TrackExceptionState exceptionState; 205 TrackExceptionState exceptionState;
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 RefPtr<OpenCursorCallback> openCursorCallback = OpenCursorCallback::crea te(scriptState(), m_requestCallback, m_skipCount, m_pageSize); 506 RefPtr<OpenCursorCallback> openCursorCallback = OpenCursorCallback::crea te(scriptState(), m_requestCallback, m_skipCount, m_pageSize);
507 507
508 RefPtrWillBeRawPtr<IDBRequest> idbRequest; 508 RefPtrWillBeRawPtr<IDBRequest> idbRequest;
509 if (!m_indexName.isEmpty()) { 509 if (!m_indexName.isEmpty()) {
510 RefPtrWillBeRawPtr<IDBIndex> idbIndex = indexForObjectStore(idbObjec tStore.get(), m_indexName); 510 RefPtrWillBeRawPtr<IDBIndex> idbIndex = indexForObjectStore(idbObjec tStore.get(), m_indexName);
511 if (!idbIndex) { 511 if (!idbIndex) {
512 m_requestCallback->sendFailure("Could not get index"); 512 m_requestCallback->sendFailure("Could not get index");
513 return; 513 return;
514 } 514 }
515 515
516 idbRequest = idbIndex->openCursor(context(), m_idbKeyRange.get(), bl ink::WebIDBCursor::Next); 516 idbRequest = idbIndex->openCursor(scriptState(), m_idbKeyRange.get() , blink::WebIDBCursor::Next);
517 } else { 517 } else {
518 idbRequest = idbObjectStore->openCursor(context(), m_idbKeyRange.get (), blink::WebIDBCursor::Next); 518 idbRequest = idbObjectStore->openCursor(scriptState(), m_idbKeyRange .get(), blink::WebIDBCursor::Next);
519 } 519 }
520 idbRequest->addEventListener(EventTypeNames::success, openCursorCallback , false); 520 idbRequest->addEventListener(EventTypeNames::success, openCursorCallback , false);
521 } 521 }
522 522
523 virtual RequestCallback* requestCallback() OVERRIDE { return m_requestCallba ck.get(); } 523 virtual RequestCallback* requestCallback() OVERRIDE { return m_requestCallba ck.get(); }
524 DataLoader(ScriptState* scriptState, PassRefPtr<RequestDataCallback> request Callback, const String& objectStoreName, const String& indexName, PassRefPtrWill BeRawPtr<IDBKeyRange> idbKeyRange, int skipCount, unsigned pageSize) 524 DataLoader(ScriptState* scriptState, PassRefPtr<RequestDataCallback> request Callback, const String& objectStoreName, const String& indexName, PassRefPtrWill BeRawPtr<IDBKeyRange> idbKeyRange, int skipCount, unsigned pageSize)
525 : ExecutableWithDatabase(scriptState) 525 : ExecutableWithDatabase(scriptState)
526 , m_requestCallback(requestCallback) 526 , m_requestCallback(requestCallback)
527 , m_objectStoreName(objectStoreName) 527 , m_objectStoreName(objectStoreName)
528 , m_indexName(indexName) 528 , m_indexName(indexName)
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
619 void InspectorIndexedDBAgent::requestDatabaseNames(ErrorString* errorString, con st String& securityOrigin, PassRefPtr<RequestDatabaseNamesCallback> requestCallb ack) 619 void InspectorIndexedDBAgent::requestDatabaseNames(ErrorString* errorString, con st String& securityOrigin, PassRefPtr<RequestDatabaseNamesCallback> requestCallb ack)
620 { 620 {
621 LocalFrame* frame = findFrameWithSecurityOrigin(m_page, securityOrigin); 621 LocalFrame* frame = findFrameWithSecurityOrigin(m_page, securityOrigin);
622 Document* document = assertDocument(errorString, frame); 622 Document* document = assertDocument(errorString, frame);
623 if (!document) 623 if (!document)
624 return; 624 return;
625 IDBFactory* idbFactory = assertIDBFactory(errorString, document); 625 IDBFactory* idbFactory = assertIDBFactory(errorString, document);
626 if (!idbFactory) 626 if (!idbFactory)
627 return; 627 return;
628 628
629 ScriptState::Scope scope(ScriptState::forMainWorld(frame)); 629 ScriptState* scriptState = ScriptState::forMainWorld(frame);
630 ScriptState::Scope scope(scriptState);
630 TrackExceptionState exceptionState; 631 TrackExceptionState exceptionState;
631 RefPtrWillBeRawPtr<IDBRequest> idbRequest = idbFactory->getDatabaseNames(doc ument, exceptionState); 632 RefPtrWillBeRawPtr<IDBRequest> idbRequest = idbFactory->getDatabaseNames(scr iptState, exceptionState);
632 if (exceptionState.hadException()) { 633 if (exceptionState.hadException()) {
633 requestCallback->sendFailure("Could not obtain database names."); 634 requestCallback->sendFailure("Could not obtain database names.");
634 return; 635 return;
635 } 636 }
636 idbRequest->addEventListener(EventTypeNames::success, GetDatabaseNamesCallba ck::create(requestCallback, document->securityOrigin()->toRawString()), false); 637 idbRequest->addEventListener(EventTypeNames::success, GetDatabaseNamesCallba ck::create(requestCallback, document->securityOrigin()->toRawString()), false);
637 } 638 }
638 639
639 void InspectorIndexedDBAgent::requestDatabase(ErrorString* errorString, const St ring& securityOrigin, const String& databaseName, PassRefPtr<RequestDatabaseCall back> requestCallback) 640 void InspectorIndexedDBAgent::requestDatabase(ErrorString* errorString, const St ring& securityOrigin, const String& databaseName, PassRefPtr<RequestDatabaseCall back> requestCallback)
640 { 641 {
641 LocalFrame* frame = findFrameWithSecurityOrigin(m_page, securityOrigin); 642 LocalFrame* frame = findFrameWithSecurityOrigin(m_page, securityOrigin);
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 return; 737 return;
737 } 738 }
738 RefPtrWillBeRawPtr<IDBObjectStore> idbObjectStore = objectStoreForTransa ction(idbTransaction.get(), m_objectStoreName); 739 RefPtrWillBeRawPtr<IDBObjectStore> idbObjectStore = objectStoreForTransa ction(idbTransaction.get(), m_objectStoreName);
739 if (!idbObjectStore) { 740 if (!idbObjectStore) {
740 m_requestCallback->sendFailure("Could not get object store"); 741 m_requestCallback->sendFailure("Could not get object store");
741 return; 742 return;
742 } 743 }
743 744
744 TrackExceptionState exceptionState; 745 TrackExceptionState exceptionState;
745 // FXIME: Can we remove the local variable idbRequest? 746 // FXIME: Can we remove the local variable idbRequest?
746 RefPtrWillBeRawPtr<IDBRequest> idbRequest = idbObjectStore->clear(contex t(), exceptionState); 747 RefPtrWillBeRawPtr<IDBRequest> idbRequest = idbObjectStore->clear(script State(), exceptionState);
747 ASSERT(!exceptionState.hadException()); 748 ASSERT(!exceptionState.hadException());
748 if (exceptionState.hadException()) { 749 if (exceptionState.hadException()) {
749 ExceptionCode ec = exceptionState.code(); 750 ExceptionCode ec = exceptionState.code();
750 m_requestCallback->sendFailure(String::format("Could not clear objec t store '%s': %d", m_objectStoreName.utf8().data(), ec)); 751 m_requestCallback->sendFailure(String::format("Could not clear objec t store '%s': %d", m_objectStoreName.utf8().data(), ec));
751 return; 752 return;
752 } 753 }
753 idbTransaction->addEventListener(EventTypeNames::complete, ClearObjectSt oreListener::create(m_requestCallback), false); 754 idbTransaction->addEventListener(EventTypeNames::complete, ClearObjectSt oreListener::create(m_requestCallback), false);
754 idbRequest.clear(); 755 idbRequest.clear();
755 } 756 }
756 757
(...skipping 13 matching lines...) Expand all
770 if (!idbFactory) 771 if (!idbFactory)
771 return; 772 return;
772 773
773 ScriptState* scriptState = ScriptState::forMainWorld(frame); 774 ScriptState* scriptState = ScriptState::forMainWorld(frame);
774 ScriptState::Scope scope(scriptState); 775 ScriptState::Scope scope(scriptState);
775 RefPtr<ClearObjectStore> clearObjectStore = ClearObjectStore::create(scriptS tate, objectStoreName, requestCallback); 776 RefPtr<ClearObjectStore> clearObjectStore = ClearObjectStore::create(scriptS tate, objectStoreName, requestCallback);
776 clearObjectStore->start(idbFactory, document->securityOrigin(), databaseName ); 777 clearObjectStore->start(idbFactory, document->securityOrigin(), databaseName );
777 } 778 }
778 779
779 } // namespace WebCore 780 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698