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

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

Issue 236783002: Pass NewScriptState to idbAnyToScriptValue() and idbKeyToScriptValue() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 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
« no previous file with comments | « Source/modules/indexeddb/IDBRequest.idl ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 GetDatabaseNamesCallback(PassRefPtr<RequestDatabaseNamesCallback> requestCal lback, const String& securityOrigin) 128 GetDatabaseNamesCallback(PassRefPtr<RequestDatabaseNamesCallback> requestCal lback, const String& securityOrigin)
129 : EventListener(EventListener::CPPEventListenerType) 129 : EventListener(EventListener::CPPEventListenerType)
130 , m_requestCallback(requestCallback) 130 , m_requestCallback(requestCallback)
131 , m_securityOrigin(securityOrigin) { } 131 , m_securityOrigin(securityOrigin) { }
132 RefPtr<RequestDatabaseNamesCallback> m_requestCallback; 132 RefPtr<RequestDatabaseNamesCallback> m_requestCallback;
133 String m_securityOrigin; 133 String m_securityOrigin;
134 }; 134 };
135 135
136 class ExecutableWithDatabase : public RefCounted<ExecutableWithDatabase> { 136 class ExecutableWithDatabase : public RefCounted<ExecutableWithDatabase> {
137 public: 137 public:
138 ExecutableWithDatabase(ExecutionContext* context) 138 ExecutableWithDatabase(NewScriptState* scriptState)
139 : m_context(context) { } 139 : m_scriptState(scriptState) { }
140 virtual ~ExecutableWithDatabase() { }; 140 virtual ~ExecutableWithDatabase() { };
141 void start(IDBFactory*, SecurityOrigin*, const String& databaseName); 141 void start(IDBFactory*, SecurityOrigin*, const String& databaseName);
142 virtual void execute(PassRefPtr<IDBDatabase>) = 0; 142 virtual void execute(PassRefPtr<IDBDatabase>) = 0;
143 virtual RequestCallback* requestCallback() = 0; 143 virtual RequestCallback* requestCallback() = 0;
144 ExecutionContext* context() { return m_context; }; 144 ExecutionContext* context() const { return m_scriptState->executionContext() ; }
145 NewScriptState* scriptState() const { return m_scriptState.get(); }
145 private: 146 private:
146 ExecutionContext* m_context; 147 RefPtr<NewScriptState> m_scriptState;
147 }; 148 };
148 149
149 class OpenDatabaseCallback FINAL : public EventListener { 150 class OpenDatabaseCallback FINAL : public EventListener {
150 public: 151 public:
151 static PassRefPtr<OpenDatabaseCallback> create(ExecutableWithDatabase* execu tableWithDatabase) 152 static PassRefPtr<OpenDatabaseCallback> create(ExecutableWithDatabase* execu tableWithDatabase)
152 { 153 {
153 return adoptRef(new OpenDatabaseCallback(executableWithDatabase)); 154 return adoptRef(new OpenDatabaseCallback(executableWithDatabase));
154 } 155 }
155 156
156 virtual ~OpenDatabaseCallback() { } 157 virtual ~OpenDatabaseCallback() { }
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 } 249 }
249 default: 250 default:
250 ASSERT_NOT_REACHED(); 251 ASSERT_NOT_REACHED();
251 } 252 }
252 253
253 return keyPath.release(); 254 return keyPath.release();
254 } 255 }
255 256
256 class DatabaseLoader FINAL : public ExecutableWithDatabase { 257 class DatabaseLoader FINAL : public ExecutableWithDatabase {
257 public: 258 public:
258 static PassRefPtr<DatabaseLoader> create(ExecutionContext* context, PassRefP tr<RequestDatabaseCallback> requestCallback) 259 static PassRefPtr<DatabaseLoader> create(NewScriptState* scriptState, PassRe fPtr<RequestDatabaseCallback> requestCallback)
259 { 260 {
260 return adoptRef(new DatabaseLoader(context, requestCallback)); 261 return adoptRef(new DatabaseLoader(scriptState, requestCallback));
261 } 262 }
262 263
263 virtual ~DatabaseLoader() { } 264 virtual ~DatabaseLoader() { }
264 265
265 virtual void execute(PassRefPtr<IDBDatabase> prpDatabase) OVERRIDE 266 virtual void execute(PassRefPtr<IDBDatabase> prpDatabase) OVERRIDE
266 { 267 {
267 RefPtr<IDBDatabase> idbDatabase = prpDatabase; 268 RefPtr<IDBDatabase> idbDatabase = prpDatabase;
268 if (!requestCallback()->isActive()) 269 if (!requestCallback()->isActive())
269 return; 270 return;
270 271
(...skipping 28 matching lines...) Expand all
299 .setName(databaseMetadata.name) 300 .setName(databaseMetadata.name)
300 .setIntVersion(databaseMetadata.intVersion) 301 .setIntVersion(databaseMetadata.intVersion)
301 .setVersion(databaseMetadata.version) 302 .setVersion(databaseMetadata.version)
302 .setObjectStores(objectStores); 303 .setObjectStores(objectStores);
303 304
304 m_requestCallback->sendSuccess(result); 305 m_requestCallback->sendSuccess(result);
305 } 306 }
306 307
307 virtual RequestCallback* requestCallback() OVERRIDE { return m_requestCallba ck.get(); } 308 virtual RequestCallback* requestCallback() OVERRIDE { return m_requestCallba ck.get(); }
308 private: 309 private:
309 DatabaseLoader(ExecutionContext* context, PassRefPtr<RequestDatabaseCallback > requestCallback) 310 DatabaseLoader(NewScriptState* scriptState, PassRefPtr<RequestDatabaseCallba ck> requestCallback)
310 : ExecutableWithDatabase(context) 311 : ExecutableWithDatabase(scriptState)
311 , m_requestCallback(requestCallback) { } 312 , m_requestCallback(requestCallback) { }
312 RefPtr<RequestDatabaseCallback> m_requestCallback; 313 RefPtr<RequestDatabaseCallback> m_requestCallback;
313 }; 314 };
314 315
315 static PassRefPtr<IDBKey> idbKeyFromInspectorObject(JSONObject* key) 316 static PassRefPtr<IDBKey> idbKeyFromInspectorObject(JSONObject* key)
316 { 317 {
317 RefPtr<IDBKey> idbKey; 318 RefPtr<IDBKey> idbKey;
318 319
319 String type; 320 String type;
320 if (!key->getString("type", &type)) 321 if (!key->getString("type", &type))
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 IDBKeyRange::UpperBoundType upperBoundType = upperOpen ? IDBKeyRange::UpperB oundOpen : IDBKeyRange::UpperBoundClosed; 382 IDBKeyRange::UpperBoundType upperBoundType = upperOpen ? IDBKeyRange::UpperB oundOpen : IDBKeyRange::UpperBoundClosed;
382 383
383 RefPtr<IDBKeyRange> idbKeyRange = IDBKeyRange::create(idbLower, idbUpper, lo werBoundType, upperBoundType); 384 RefPtr<IDBKeyRange> idbKeyRange = IDBKeyRange::create(idbLower, idbUpper, lo werBoundType, upperBoundType);
384 return idbKeyRange.release(); 385 return idbKeyRange.release();
385 } 386 }
386 387
387 class DataLoader; 388 class DataLoader;
388 389
389 class OpenCursorCallback FINAL : public EventListener { 390 class OpenCursorCallback FINAL : public EventListener {
390 public: 391 public:
391 static PassRefPtr<OpenCursorCallback> create(PassRefPtr<RequestDataCallback> requestCallback, int skipCount, unsigned pageSize) 392 static PassRefPtr<OpenCursorCallback> create(NewScriptState* scriptState, Pa ssRefPtr<RequestDataCallback> requestCallback, int skipCount, unsigned pageSize)
392 { 393 {
393 return adoptRef(new OpenCursorCallback(requestCallback, skipCount, pageS ize)); 394 return adoptRef(new OpenCursorCallback(scriptState, requestCallback, ski pCount, pageSize));
394 } 395 }
395 396
396 virtual ~OpenCursorCallback() { } 397 virtual ~OpenCursorCallback() { }
397 398
398 virtual bool operator==(const EventListener& other) OVERRIDE 399 virtual bool operator==(const EventListener& other) OVERRIDE
399 { 400 {
400 return this == &other; 401 return this == &other;
401 } 402 }
402 403
403 virtual void handleEvent(ExecutionContext* context, Event* event) OVERRIDE 404 virtual void handleEvent(ExecutionContext*, Event* event) OVERRIDE
404 { 405 {
405 if (event->type() != EventTypeNames::success) { 406 if (event->type() != EventTypeNames::success) {
406 m_requestCallback->sendFailure("Unexpected event type."); 407 m_requestCallback->sendFailure("Unexpected event type.");
407 return; 408 return;
408 } 409 }
409 410
410 IDBRequest* idbRequest = static_cast<IDBRequest*>(event->target()); 411 IDBRequest* idbRequest = static_cast<IDBRequest*>(event->target());
411 RefPtr<IDBAny> requestResult = idbRequest->resultAsAny(); 412 RefPtr<IDBAny> requestResult = idbRequest->resultAsAny();
412 if (requestResult->type() == IDBAny::BufferType) { 413 if (requestResult->type() == IDBAny::BufferType) {
413 end(false); 414 end(false);
(...skipping 21 matching lines...) Expand all
435 } 436 }
436 437
437 // Continue cursor before making injected script calls, otherwise transa ction might be finished. 438 // Continue cursor before making injected script calls, otherwise transa ction might be finished.
438 TrackExceptionState exceptionState; 439 TrackExceptionState exceptionState;
439 idbCursor->continueFunction(nullptr, nullptr, exceptionState); 440 idbCursor->continueFunction(nullptr, nullptr, exceptionState);
440 if (exceptionState.hadException()) { 441 if (exceptionState.hadException()) {
441 m_requestCallback->sendFailure("Could not continue cursor."); 442 m_requestCallback->sendFailure("Could not continue cursor.");
442 return; 443 return;
443 } 444 }
444 445
445 Document* document = toDocument(context); 446 Document* document = toDocument(m_scriptState->executionContext());
446 if (!document) 447 if (!document)
447 return; 448 return;
448 ScriptState* scriptState = mainWorldScriptState(document->frame()); 449 ScriptState* scriptState = mainWorldScriptState(document->frame());
449 450
450 RefPtr<DataEntry> dataEntry = DataEntry::create() 451 RefPtr<DataEntry> dataEntry = DataEntry::create()
451 .setKey(idbCursor->key(context).toJSONValue(scriptState)->toJSONStri ng()) 452 .setKey(idbCursor->key(m_scriptState.get()).toJSONValue(scriptState) ->toJSONString())
452 .setPrimaryKey(idbCursor->primaryKey(context).toJSONValue(scriptStat e)->toJSONString()) 453 .setPrimaryKey(idbCursor->primaryKey(m_scriptState.get()).toJSONValu e(scriptState)->toJSONString())
453 .setValue(idbCursor->value(context).toJSONValue(scriptState)->toJSON String()); 454 .setValue(idbCursor->value(m_scriptState.get()).toJSONValue(scriptSt ate)->toJSONString());
454 m_result->addItem(dataEntry); 455 m_result->addItem(dataEntry);
455 456
456 } 457 }
457 458
458 void end(bool hasMore) 459 void end(bool hasMore)
459 { 460 {
460 if (!m_requestCallback->isActive()) 461 if (!m_requestCallback->isActive())
461 return; 462 return;
462 m_requestCallback->sendSuccess(m_result.release(), hasMore); 463 m_requestCallback->sendSuccess(m_result.release(), hasMore);
463 } 464 }
464 465
465 private: 466 private:
466 OpenCursorCallback(PassRefPtr<RequestDataCallback> requestCallback, int skip Count, unsigned pageSize) 467 OpenCursorCallback(NewScriptState* scriptState, PassRefPtr<RequestDataCallba ck> requestCallback, int skipCount, unsigned pageSize)
467 : EventListener(EventListener::CPPEventListenerType) 468 : EventListener(EventListener::CPPEventListenerType)
469 , m_scriptState(scriptState)
468 , m_requestCallback(requestCallback) 470 , m_requestCallback(requestCallback)
469 , m_skipCount(skipCount) 471 , m_skipCount(skipCount)
470 , m_pageSize(pageSize) 472 , m_pageSize(pageSize)
471 { 473 {
472 m_result = Array<DataEntry>::create(); 474 m_result = Array<DataEntry>::create();
473 } 475 }
476
477 RefPtr<NewScriptState> m_scriptState;
474 RefPtr<RequestDataCallback> m_requestCallback; 478 RefPtr<RequestDataCallback> m_requestCallback;
475 int m_skipCount; 479 int m_skipCount;
476 unsigned m_pageSize; 480 unsigned m_pageSize;
477 RefPtr<Array<DataEntry> > m_result; 481 RefPtr<Array<DataEntry> > m_result;
478 }; 482 };
479 483
480 class DataLoader FINAL : public ExecutableWithDatabase { 484 class DataLoader FINAL : public ExecutableWithDatabase {
481 public: 485 public:
482 static PassRefPtr<DataLoader> create(ExecutionContext* context, PassRefPtr<R equestDataCallback> requestCallback, const String& objectStoreName, const String & indexName, PassRefPtr<IDBKeyRange> idbKeyRange, int skipCount, unsigned pageSi ze) 486 static PassRefPtr<DataLoader> create(NewScriptState* scriptState, PassRefPtr <RequestDataCallback> requestCallback, const String& objectStoreName, const Stri ng& indexName, PassRefPtr<IDBKeyRange> idbKeyRange, int skipCount, unsigned page Size)
483 { 487 {
484 return adoptRef(new DataLoader(context, requestCallback, objectStoreName , indexName, idbKeyRange, skipCount, pageSize)); 488 return adoptRef(new DataLoader(scriptState, requestCallback, objectStore Name, indexName, idbKeyRange, skipCount, pageSize));
485 } 489 }
486 490
487 virtual ~DataLoader() { } 491 virtual ~DataLoader() { }
488 492
489 virtual void execute(PassRefPtr<IDBDatabase> prpDatabase) OVERRIDE 493 virtual void execute(PassRefPtr<IDBDatabase> prpDatabase) OVERRIDE
490 { 494 {
491 RefPtr<IDBDatabase> idbDatabase = prpDatabase; 495 RefPtr<IDBDatabase> idbDatabase = prpDatabase;
492 if (!requestCallback()->isActive()) 496 if (!requestCallback()->isActive())
493 return; 497 return;
494 RefPtr<IDBTransaction> idbTransaction = transactionForDatabase(context() , idbDatabase.get(), m_objectStoreName); 498 RefPtr<IDBTransaction> idbTransaction = transactionForDatabase(context() , idbDatabase.get(), m_objectStoreName);
495 if (!idbTransaction) { 499 if (!idbTransaction) {
496 m_requestCallback->sendFailure("Could not get transaction"); 500 m_requestCallback->sendFailure("Could not get transaction");
497 return; 501 return;
498 } 502 }
499 RefPtr<IDBObjectStore> idbObjectStore = objectStoreForTransaction(idbTra nsaction.get(), m_objectStoreName); 503 RefPtr<IDBObjectStore> idbObjectStore = objectStoreForTransaction(idbTra nsaction.get(), m_objectStoreName);
500 if (!idbObjectStore) { 504 if (!idbObjectStore) {
501 m_requestCallback->sendFailure("Could not get object store"); 505 m_requestCallback->sendFailure("Could not get object store");
502 return; 506 return;
503 } 507 }
504 508
505 RefPtr<OpenCursorCallback> openCursorCallback = OpenCursorCallback::crea te(m_requestCallback, m_skipCount, m_pageSize); 509 RefPtr<OpenCursorCallback> openCursorCallback = OpenCursorCallback::crea te(scriptState(), m_requestCallback, m_skipCount, m_pageSize);
506 510
507 RefPtr<IDBRequest> idbRequest; 511 RefPtr<IDBRequest> idbRequest;
508 if (!m_indexName.isEmpty()) { 512 if (!m_indexName.isEmpty()) {
509 RefPtr<IDBIndex> idbIndex = indexForObjectStore(idbObjectStore.get() , m_indexName); 513 RefPtr<IDBIndex> idbIndex = indexForObjectStore(idbObjectStore.get() , m_indexName);
510 if (!idbIndex) { 514 if (!idbIndex) {
511 m_requestCallback->sendFailure("Could not get index"); 515 m_requestCallback->sendFailure("Could not get index");
512 return; 516 return;
513 } 517 }
514 518
515 idbRequest = idbIndex->openCursor(context(), PassRefPtr<IDBKeyRange> (m_idbKeyRange), blink::WebIDBCursor::Next); 519 idbRequest = idbIndex->openCursor(context(), PassRefPtr<IDBKeyRange> (m_idbKeyRange), blink::WebIDBCursor::Next);
516 } else { 520 } else {
517 idbRequest = idbObjectStore->openCursor(context(), PassRefPtr<IDBKey Range>(m_idbKeyRange), blink::WebIDBCursor::Next); 521 idbRequest = idbObjectStore->openCursor(context(), PassRefPtr<IDBKey Range>(m_idbKeyRange), blink::WebIDBCursor::Next);
518 } 522 }
519 idbRequest->addEventListener(EventTypeNames::success, openCursorCallback , false); 523 idbRequest->addEventListener(EventTypeNames::success, openCursorCallback , false);
520 } 524 }
521 525
522 virtual RequestCallback* requestCallback() OVERRIDE { return m_requestCallba ck.get(); } 526 virtual RequestCallback* requestCallback() OVERRIDE { return m_requestCallba ck.get(); }
523 DataLoader(ExecutionContext* executionContext, PassRefPtr<RequestDataCallbac k> requestCallback, const String& objectStoreName, const String& indexName, Pass RefPtr<IDBKeyRange> idbKeyRange, int skipCount, unsigned pageSize) 527 DataLoader(NewScriptState* scriptState, PassRefPtr<RequestDataCallback> requ estCallback, const String& objectStoreName, const String& indexName, PassRefPtr< IDBKeyRange> idbKeyRange, int skipCount, unsigned pageSize)
524 : ExecutableWithDatabase(executionContext) 528 : ExecutableWithDatabase(scriptState)
525 , m_requestCallback(requestCallback) 529 , m_requestCallback(requestCallback)
526 , m_objectStoreName(objectStoreName) 530 , m_objectStoreName(objectStoreName)
527 , m_indexName(indexName) 531 , m_indexName(indexName)
528 , m_idbKeyRange(idbKeyRange) 532 , m_idbKeyRange(idbKeyRange)
529 , m_skipCount(skipCount) 533 , m_skipCount(skipCount)
530 , m_pageSize(pageSize) { } 534 , m_pageSize(pageSize)
535 {
536 }
537
531 RefPtr<RequestDataCallback> m_requestCallback; 538 RefPtr<RequestDataCallback> m_requestCallback;
532 String m_objectStoreName; 539 String m_objectStoreName;
533 String m_indexName; 540 String m_indexName;
534 RefPtr<IDBKeyRange> m_idbKeyRange; 541 RefPtr<IDBKeyRange> m_idbKeyRange;
535 int m_skipCount; 542 int m_skipCount;
536 unsigned m_pageSize; 543 unsigned m_pageSize;
537 }; 544 };
538 545
539 LocalFrame* findFrameWithSecurityOrigin(Page* page, const String& securityOrigin ) 546 LocalFrame* findFrameWithSecurityOrigin(Page* page, const String& securityOrigin )
540 { 547 {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 if (!idbFactory) 655 if (!idbFactory)
649 return; 656 return;
650 657
651 // FIXME: This should probably use ScriptState/ScriptScope instead of V8 API 658 // FIXME: This should probably use ScriptState/ScriptScope instead of V8 API
652 v8::Isolate* isolate = toIsolate(frame); 659 v8::Isolate* isolate = toIsolate(frame);
653 v8::HandleScope handleScope(isolate); 660 v8::HandleScope handleScope(isolate);
654 v8::Handle<v8::Context> context = toV8Context(isolate, document->frame(), DO MWrapperWorld::mainWorld()); 661 v8::Handle<v8::Context> context = toV8Context(isolate, document->frame(), DO MWrapperWorld::mainWorld());
655 ASSERT(!context.IsEmpty()); 662 ASSERT(!context.IsEmpty());
656 v8::Context::Scope contextScope(context); 663 v8::Context::Scope contextScope(context);
657 664
658 RefPtr<DatabaseLoader> databaseLoader = DatabaseLoader::create(document, req uestCallback); 665 RefPtr<DatabaseLoader> databaseLoader = DatabaseLoader::create(NewScriptStat e::current(isolate), requestCallback);
659 databaseLoader->start(idbFactory, document->securityOrigin(), databaseName); 666 databaseLoader->start(idbFactory, document->securityOrigin(), databaseName);
660 } 667 }
661 668
662 void InspectorIndexedDBAgent::requestData(ErrorString* errorString, const String & securityOrigin, const String& databaseName, const String& objectStoreName, con st String& indexName, int skipCount, int pageSize, const RefPtr<JSONObject>* key Range, PassRefPtr<RequestDataCallback> requestCallback) 669 void InspectorIndexedDBAgent::requestData(ErrorString* errorString, const String & securityOrigin, const String& databaseName, const String& objectStoreName, con st String& indexName, int skipCount, int pageSize, const RefPtr<JSONObject>* key Range, PassRefPtr<RequestDataCallback> requestCallback)
663 { 670 {
664 LocalFrame* frame = findFrameWithSecurityOrigin(m_page, securityOrigin); 671 LocalFrame* frame = findFrameWithSecurityOrigin(m_page, securityOrigin);
665 Document* document = assertDocument(errorString, frame); 672 Document* document = assertDocument(errorString, frame);
666 if (!document) 673 if (!document)
667 return; 674 return;
668 IDBFactory* idbFactory = assertIDBFactory(errorString, document); 675 IDBFactory* idbFactory = assertIDBFactory(errorString, document);
669 if (!idbFactory) 676 if (!idbFactory)
670 return; 677 return;
671 678
672 RefPtr<IDBKeyRange> idbKeyRange = keyRange ? idbKeyRangeFromKeyRange(keyRang e->get()) : nullptr; 679 RefPtr<IDBKeyRange> idbKeyRange = keyRange ? idbKeyRangeFromKeyRange(keyRang e->get()) : nullptr;
673 if (keyRange && !idbKeyRange) { 680 if (keyRange && !idbKeyRange) {
674 *errorString = "Can not parse key range."; 681 *errorString = "Can not parse key range.";
675 return; 682 return;
676 } 683 }
677 684
678 // FIXME: This should probably use ScriptState/ScriptScope instead of V8 API 685 // FIXME: This should probably use ScriptState/ScriptScope instead of V8 API
679 v8::Isolate* isolate = toIsolate(frame); 686 v8::Isolate* isolate = toIsolate(frame);
680 v8::HandleScope handleScope(isolate); 687 v8::HandleScope handleScope(isolate);
681 v8::Handle<v8::Context> context = toV8Context(isolate, document->frame(), DO MWrapperWorld::mainWorld()); 688 v8::Handle<v8::Context> context = toV8Context(isolate, document->frame(), DO MWrapperWorld::mainWorld());
682 ASSERT(!context.IsEmpty()); 689 ASSERT(!context.IsEmpty());
683 v8::Context::Scope contextScope(context); 690 v8::Context::Scope contextScope(context);
684 691
685 RefPtr<DataLoader> dataLoader = DataLoader::create(document, requestCallback , objectStoreName, indexName, idbKeyRange, skipCount, pageSize); 692 RefPtr<DataLoader> dataLoader = DataLoader::create(NewScriptState::current(i solate), requestCallback, objectStoreName, indexName, idbKeyRange, skipCount, pa geSize);
686 dataLoader->start(idbFactory, document->securityOrigin(), databaseName); 693 dataLoader->start(idbFactory, document->securityOrigin(), databaseName);
687 } 694 }
688 695
689 class ClearObjectStoreListener FINAL : public EventListener { 696 class ClearObjectStoreListener FINAL : public EventListener {
690 WTF_MAKE_NONCOPYABLE(ClearObjectStoreListener); 697 WTF_MAKE_NONCOPYABLE(ClearObjectStoreListener);
691 public: 698 public:
692 static PassRefPtr<ClearObjectStoreListener> create(PassRefPtr<ClearObjectSto reCallback> requestCallback) 699 static PassRefPtr<ClearObjectStoreListener> create(PassRefPtr<ClearObjectSto reCallback> requestCallback)
693 { 700 {
694 return adoptRef(new ClearObjectStoreListener(requestCallback)); 701 return adoptRef(new ClearObjectStoreListener(requestCallback));
695 } 702 }
(...skipping 22 matching lines...) Expand all
718 , m_requestCallback(requestCallback) 725 , m_requestCallback(requestCallback)
719 { 726 {
720 } 727 }
721 728
722 RefPtr<ClearObjectStoreCallback> m_requestCallback; 729 RefPtr<ClearObjectStoreCallback> m_requestCallback;
723 }; 730 };
724 731
725 732
726 class ClearObjectStore FINAL : public ExecutableWithDatabase { 733 class ClearObjectStore FINAL : public ExecutableWithDatabase {
727 public: 734 public:
728 static PassRefPtr<ClearObjectStore> create(ExecutionContext* context, const String& objectStoreName, PassRefPtr<ClearObjectStoreCallback> requestCallback) 735 static PassRefPtr<ClearObjectStore> create(NewScriptState* scriptState, cons t String& objectStoreName, PassRefPtr<ClearObjectStoreCallback> requestCallback)
729 { 736 {
730 return adoptRef(new ClearObjectStore(context, objectStoreName, requestCa llback)); 737 return adoptRef(new ClearObjectStore(scriptState, objectStoreName, reque stCallback));
731 } 738 }
732 739
733 ClearObjectStore(ExecutionContext* context, const String& objectStoreName, P assRefPtr<ClearObjectStoreCallback> requestCallback) 740 ClearObjectStore(NewScriptState* scriptState, const String& objectStoreName, PassRefPtr<ClearObjectStoreCallback> requestCallback)
734 : ExecutableWithDatabase(context) 741 : ExecutableWithDatabase(scriptState)
735 , m_objectStoreName(objectStoreName) 742 , m_objectStoreName(objectStoreName)
736 , m_requestCallback(requestCallback) 743 , m_requestCallback(requestCallback)
737 { 744 {
738 } 745 }
739 746
740 virtual void execute(PassRefPtr<IDBDatabase> prpDatabase) OVERRIDE 747 virtual void execute(PassRefPtr<IDBDatabase> prpDatabase) OVERRIDE
741 { 748 {
742 RefPtr<IDBDatabase> idbDatabase = prpDatabase; 749 RefPtr<IDBDatabase> idbDatabase = prpDatabase;
743 if (!requestCallback()->isActive()) 750 if (!requestCallback()->isActive())
744 return; 751 return;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 if (!idbFactory) 787 if (!idbFactory)
781 return; 788 return;
782 789
783 // FIXME: This should probably use ScriptState/ScriptScope instead of V8 API 790 // FIXME: This should probably use ScriptState/ScriptScope instead of V8 API
784 v8::Isolate* isolate = toIsolate(frame); 791 v8::Isolate* isolate = toIsolate(frame);
785 v8::HandleScope handleScope(isolate); 792 v8::HandleScope handleScope(isolate);
786 v8::Handle<v8::Context> context = toV8Context(isolate, document->frame(), DO MWrapperWorld::mainWorld()); 793 v8::Handle<v8::Context> context = toV8Context(isolate, document->frame(), DO MWrapperWorld::mainWorld());
787 ASSERT(!context.IsEmpty()); 794 ASSERT(!context.IsEmpty());
788 v8::Context::Scope contextScope(context); 795 v8::Context::Scope contextScope(context);
789 796
790 RefPtr<ClearObjectStore> clearObjectStore = ClearObjectStore::create(documen t, objectStoreName, requestCallback); 797 RefPtr<ClearObjectStore> clearObjectStore = ClearObjectStore::create(NewScri ptState::current(isolate), objectStoreName, requestCallback);
791 clearObjectStore->start(idbFactory, document->securityOrigin(), databaseName ); 798 clearObjectStore->start(idbFactory, document->securityOrigin(), databaseName );
792 } 799 }
793 800
794 } // namespace WebCore 801 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/modules/indexeddb/IDBRequest.idl ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698