| OLD | NEW | 
|---|
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef WEBKIT_SUPPORT_TEST_WEBIDBFACTORY_H_ | 5 #ifndef WEBKIT_SUPPORT_TEST_WEBIDBFACTORY_H_ | 
| 6 #define WEBKIT_SUPPORT_TEST_WEBIDBFACTORY_H_ | 6 #define WEBKIT_SUPPORT_TEST_WEBIDBFACTORY_H_ | 
| 7 | 7 | 
| 8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" | 
| 9 #include "base/threading/thread_local.h" | 9 #include "base/threading/thread_local.h" | 
| 10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBFactory.h" | 10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBFactory.h" | 
| 11 | 11 | 
| 12 // Wrap a WebKit::WebIDBFactory to rewrite the data directory to | 12 // Wrap a WebKit::WebIDBFactory to rewrite the data directory to | 
| 13 // a scoped temp directory. In multiprocess Chromium this is rewritten | 13 // a scoped temp directory. In multiprocess Chromium this is rewritten | 
| 14 // to a real profile directory during IPC. | 14 // to a real profile directory during IPC. | 
| 15 class TestWebIDBFactory : public WebKit::WebIDBFactory { | 15 class TestWebIDBFactory : public WebKit::WebIDBFactory { | 
| 16  public: | 16  public: | 
| 17   TestWebIDBFactory(); | 17   TestWebIDBFactory(); | 
| 18   virtual ~TestWebIDBFactory(); | 18   virtual ~TestWebIDBFactory(); | 
| 19 | 19 | 
| 20   // WebIDBFactory methods: | 20   // WebIDBFactory methods: | 
| 21   virtual void getDatabaseNames(WebKit::WebIDBCallbacks* callbacks, | 21   virtual void getDatabaseNames(WebKit::WebIDBCallbacks*, | 
| 22                                 const WebKit::WebSecurityOrigin& origin, | 22                                 const WebKit::WebString& database_identifier, | 
| 23                                 WebKit::WebFrame* frame, |  | 
| 24                                 const WebKit::WebString& data_dir); | 23                                 const WebKit::WebString& data_dir); | 
| 25   virtual void open(const WebKit::WebString& name, | 24   virtual void open(const WebKit::WebString& name, | 
| 26                     long long version, | 25                     long long version, | 
| 27                     long long transaction_id, | 26                     long long transaction_id, | 
| 28                     WebKit::WebIDBCallbacks* callbacks, | 27                     WebKit::WebIDBCallbacks*, | 
| 29                     WebKit::WebIDBDatabaseCallbacks* database_callbacks, | 28                     WebKit::WebIDBDatabaseCallbacks*, | 
| 30                     const WebKit::WebSecurityOrigin& origin, | 29                     const WebKit::WebString& database_identifier, | 
| 31                     WebKit::WebFrame* frame, |  | 
| 32                     const WebKit::WebString& data_dir); | 30                     const WebKit::WebString& data_dir); | 
| 33   virtual void deleteDatabase(const WebKit::WebString& name, | 31   virtual void deleteDatabase(const WebKit::WebString& name, | 
| 34                               WebKit::WebIDBCallbacks* callbacks, | 32                               WebKit::WebIDBCallbacks*, | 
| 35                               const WebKit::WebSecurityOrigin& origin, | 33                               const WebKit::WebString& database_identifier, | 
| 36                               WebKit::WebFrame* frame, |  | 
| 37                               const WebKit::WebString& data_dir); | 34                               const WebKit::WebString& data_dir); | 
| 38 | 35 | 
| 39  private: | 36  private: | 
| 40   // Returns the WebIDBFactory implementation to use for the current thread. | 37   // Returns the WebIDBFactory implementation to use for the current thread. | 
| 41   WebKit::WebIDBFactory* GetFactory(); | 38   WebKit::WebIDBFactory* GetFactory(); | 
| 42 | 39 | 
| 43   // Returns the data directory to use. | 40   // Returns the data directory to use. | 
| 44   WebKit::WebString GetDataDir() const; | 41   WebKit::WebString GetDataDir() const; | 
| 45 | 42 | 
| 46   // We allocate a separate WebIDBFactory instance per thread since the | 43   // We allocate a separate WebIDBFactory instance per thread since the | 
| 47   // implementation is not thread-safe.  We also intentionally leak the | 44   // implementation is not thread-safe.  We also intentionally leak the | 
| 48   // factory instances to avoid shutdown races.  TODO(darin): Can we | 45   // factory instances to avoid shutdown races.  TODO(darin): Can we | 
| 49   // avoid leaking these? | 46   // avoid leaking these? | 
| 50   base::ThreadLocalPointer<WebKit::WebIDBFactory> factories_; | 47   base::ThreadLocalPointer<WebKit::WebIDBFactory> factories_; | 
| 51 | 48 | 
| 52   base::ScopedTempDir indexed_db_dir_; | 49   base::ScopedTempDir indexed_db_dir_; | 
| 53 }; | 50 }; | 
| 54 | 51 | 
| 55 #endif  // WEBKIT_SUPPORT_TEST_WEBIDBFACTORY_H_ | 52 #endif  // WEBKIT_SUPPORT_TEST_WEBIDBFACTORY_H_ | 
| OLD | NEW | 
|---|