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

Side by Side Diff: third_party/WebKit/Source/modules/indexeddb/IDBDatabaseCallbacks.h

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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 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 16 matching lines...) Expand all
27 #define IDBDatabaseCallbacks_h 27 #define IDBDatabaseCallbacks_h
28 28
29 #include "modules/ModulesExport.h" 29 #include "modules/ModulesExport.h"
30 #include "platform/heap/Handle.h" 30 #include "platform/heap/Handle.h"
31 #include "wtf/PassRefPtr.h" 31 #include "wtf/PassRefPtr.h"
32 32
33 namespace blink { 33 namespace blink {
34 34
35 class DOMException; 35 class DOMException;
36 class IDBDatabase; 36 class IDBDatabase;
37 class WebIDBDatabaseCallbacks;
37 38
38 class MODULES_EXPORT IDBDatabaseCallbacks : public GarbageCollectedFinalized<IDB DatabaseCallbacks> { 39 class MODULES_EXPORT IDBDatabaseCallbacks : public GarbageCollectedFinalized<IDB DatabaseCallbacks> {
39 public: 40 public:
40 static IDBDatabaseCallbacks* create(); 41 static IDBDatabaseCallbacks* create();
41 virtual ~IDBDatabaseCallbacks(); 42 virtual ~IDBDatabaseCallbacks();
42 DECLARE_TRACE(); 43 DECLARE_TRACE();
43 44
44 // IDBDatabaseCallbacks 45 // IDBDatabaseCallbacks
45 virtual void onForcedClose(); 46 virtual void onForcedClose();
46 virtual void onVersionChange(int64_t oldVersion, int64_t newVersion); 47 virtual void onVersionChange(int64_t oldVersion, int64_t newVersion);
47 48
48 virtual void onAbort(int64_t transactionId, DOMException*); 49 virtual void onAbort(int64_t transactionId, DOMException*);
49 virtual void onComplete(int64_t transactionId); 50 virtual void onComplete(int64_t transactionId);
50 51
51 void connect(IDBDatabase*); 52 void connect(IDBDatabase*);
52 53
54 // Returns a new WebIDBDatabaseCallbacks for this object. Must only be
55 // called once.
56 std::unique_ptr<WebIDBDatabaseCallbacks> createWebCallbacks();
57 void detachWebCallbacks();
58 void webCallbacksDestroyed();
59
53 protected: 60 protected:
54 // Exposed to subclasses for unit tests. 61 // Exposed to subclasses for unit tests.
55 IDBDatabaseCallbacks(); 62 IDBDatabaseCallbacks();
56 63
57 private: 64 private:
58 // The initial IDBOpenDBRequest, final IDBDatabase, and/or 65 // The initial IDBOpenDBRequest, final IDBDatabase, and/or
59 // WebIDBDatabaseCallbacks have strong references to an IDBDatabaseCallbacks 66 // WebIDBDatabaseCallbacks have strong references to an IDBDatabaseCallbacks
60 // object. 67 // object.
61 // Oilpan: We'd like to delete an IDBDatabase object by a 68 // Oilpan: We'd like to delete an IDBDatabase object by a
62 // GC. WebIDBDatabaseCallbacks can survive the GC, and IDBDatabaseCallbacks 69 // GC. WebIDBDatabaseCallbacks can survive the GC, and IDBDatabaseCallbacks
63 // can survive too. m_database should be a weak reference to avoid that an 70 // can survive too. m_database should be a weak reference to avoid that an
64 // IDBDatabase survives the GC with the IDBDatabaseCallbacks. 71 // IDBDatabase survives the GC with the IDBDatabaseCallbacks.
65 WeakMember<IDBDatabase> m_database; 72 WeakMember<IDBDatabase> m_database;
73
74 // Pointer back to the WebIDBDatabaseCallbacks that holds a persistent
75 // reference to this object.
76 WebIDBDatabaseCallbacks* m_webCallbacks = nullptr;
66 }; 77 };
67 78
68 } // namespace blink 79 } // namespace blink
69 80
70 #endif // IDBDatabaseCallbacks_h 81 #endif // IDBDatabaseCallbacks_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698