Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "content/renderer/indexed_db/indexed_db_dispatcher.h" | 5 #include "content/renderer/indexed_db/indexed_db_dispatcher.h" |
| 6 | 6 |
| 7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
| 8 #include "base/threading/thread_local.h" | 8 #include "base/threading/thread_local.h" |
| 9 #include "content/common/indexed_db/indexed_db_messages.h" | 9 #include "content/common/indexed_db/indexed_db_messages.h" |
| 10 #include "content/renderer/indexed_db/renderer_webidbcursor_impl.h" | 10 #include "content/renderer/indexed_db/renderer_webidbcursor_impl.h" |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 174 void IndexedDBDispatcher::RequestIDBFactoryOpen( | 174 void IndexedDBDispatcher::RequestIDBFactoryOpen( |
| 175 const string16& name, | 175 const string16& name, |
| 176 WebIDBCallbacks* callbacks_ptr, | 176 WebIDBCallbacks* callbacks_ptr, |
| 177 const string16& origin, | 177 const string16& origin, |
| 178 WebFrame* web_frame) { | 178 WebFrame* web_frame) { |
| 179 ResetCursorPrefetchCaches(); | 179 ResetCursorPrefetchCaches(); |
| 180 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); | 180 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); |
| 181 | 181 |
| 182 if (!web_frame) | 182 if (!web_frame) |
| 183 return; // We must be shutting down. | 183 return; // We must be shutting down. |
| 184 RenderViewImpl* render_view = RenderViewImpl::FromWebView(web_frame->view()); | |
|
dgrogan
2012/02/09 22:46:06
This always fails in the shared worker. I would h
jsbell
2012/02/09 23:23:56
Being paranoid, I see this pattern used in a few o
michaeln
2012/02/09 23:59:40
These render_view checks are probably here for goo
| |
| 185 if (!render_view) | |
| 186 return; // We must be shutting down. | |
| 187 | 184 |
| 188 IndexedDBHostMsg_FactoryOpen_Params params; | 185 IndexedDBHostMsg_FactoryOpen_Params params; |
| 189 params.thread_id = CurrentWorkerId(); | 186 params.thread_id = CurrentWorkerId(); |
| 190 params.response_id = pending_callbacks_.Add(callbacks.release()); | 187 params.response_id = pending_callbacks_.Add(callbacks.release()); |
| 191 params.origin = origin; | 188 params.origin = origin; |
| 192 params.name = name; | 189 params.name = name; |
| 193 Send(new IndexedDBHostMsg_FactoryOpen(params)); | 190 Send(new IndexedDBHostMsg_FactoryOpen(params)); |
| 194 } | 191 } |
| 195 | 192 |
| 196 void IndexedDBDispatcher::RequestIDBFactoryGetDatabaseNames( | 193 void IndexedDBDispatcher::RequestIDBFactoryGetDatabaseNames( |
| 197 WebIDBCallbacks* callbacks_ptr, | 194 WebIDBCallbacks* callbacks_ptr, |
| 198 const string16& origin, | 195 const string16& origin, |
| 199 WebFrame* web_frame) { | 196 WebFrame* web_frame) { |
| 200 ResetCursorPrefetchCaches(); | 197 ResetCursorPrefetchCaches(); |
| 201 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); | 198 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); |
| 202 | 199 |
| 203 if (!web_frame) | 200 if (!web_frame) |
| 204 return; // We must be shutting down. | 201 return; // We must be shutting down. |
| 205 RenderViewImpl* render_view = RenderViewImpl::FromWebView(web_frame->view()); | 202 RenderViewImpl* render_view = RenderViewImpl::FromWebView(web_frame->view()); |
|
jsbell
2012/02/09 23:23:56
Remove here too, even though this isn't supported
| |
| 206 if (!render_view) | 203 if (!render_view) |
| 207 return; // We must be shutting down. | 204 return; // We must be shutting down. |
| 208 | 205 |
| 209 IndexedDBHostMsg_FactoryGetDatabaseNames_Params params; | 206 IndexedDBHostMsg_FactoryGetDatabaseNames_Params params; |
| 210 params.thread_id = CurrentWorkerId(); | 207 params.thread_id = CurrentWorkerId(); |
| 211 params.response_id = pending_callbacks_.Add(callbacks.release()); | 208 params.response_id = pending_callbacks_.Add(callbacks.release()); |
| 212 params.origin = origin; | 209 params.origin = origin; |
| 213 Send(new IndexedDBHostMsg_FactoryGetDatabaseNames(params)); | 210 Send(new IndexedDBHostMsg_FactoryGetDatabaseNames(params)); |
| 214 } | 211 } |
| 215 | 212 |
| 216 void IndexedDBDispatcher::RequestIDBFactoryDeleteDatabase( | 213 void IndexedDBDispatcher::RequestIDBFactoryDeleteDatabase( |
| 217 const string16& name, | 214 const string16& name, |
| 218 WebIDBCallbacks* callbacks_ptr, | 215 WebIDBCallbacks* callbacks_ptr, |
| 219 const string16& origin, | 216 const string16& origin, |
| 220 WebFrame* web_frame) { | 217 WebFrame* web_frame) { |
| 221 ResetCursorPrefetchCaches(); | 218 ResetCursorPrefetchCaches(); |
| 222 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); | 219 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); |
| 223 | 220 |
| 224 if (!web_frame) | 221 if (!web_frame) |
| 225 return; // We must be shutting down. | 222 return; // We must be shutting down. |
| 226 RenderViewImpl* render_view = RenderViewImpl::FromWebView(web_frame->view()); | 223 RenderViewImpl* render_view = RenderViewImpl::FromWebView(web_frame->view()); |
|
jsbell
2012/02/09 23:23:56
And here? If not useful, should get rid of it ever
| |
| 227 if (!render_view) | 224 if (!render_view) |
| 228 return; // We must be shutting down. | 225 return; // We must be shutting down. |
| 229 | 226 |
| 230 IndexedDBHostMsg_FactoryDeleteDatabase_Params params; | 227 IndexedDBHostMsg_FactoryDeleteDatabase_Params params; |
| 231 params.thread_id = CurrentWorkerId(); | 228 params.thread_id = CurrentWorkerId(); |
| 232 params.response_id = pending_callbacks_.Add(callbacks.release()); | 229 params.response_id = pending_callbacks_.Add(callbacks.release()); |
| 233 params.origin = origin; | 230 params.origin = origin; |
| 234 params.name = name; | 231 params.name = name; |
| 235 Send(new IndexedDBHostMsg_FactoryDeleteDatabase(params)); | 232 Send(new IndexedDBHostMsg_FactoryDeleteDatabase(params)); |
| 236 } | 233 } |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 679 } | 676 } |
| 680 | 677 |
| 681 void IndexedDBDispatcher::ResetCursorPrefetchCaches(int32 exception_cursor_id) { | 678 void IndexedDBDispatcher::ResetCursorPrefetchCaches(int32 exception_cursor_id) { |
| 682 typedef std::map<int32, RendererWebIDBCursorImpl*>::iterator Iterator; | 679 typedef std::map<int32, RendererWebIDBCursorImpl*>::iterator Iterator; |
| 683 for (Iterator i = cursors_.begin(); i != cursors_.end(); ++i) { | 680 for (Iterator i = cursors_.begin(); i != cursors_.end(); ++i) { |
| 684 if (i->first == exception_cursor_id) | 681 if (i->first == exception_cursor_id) |
| 685 continue; | 682 continue; |
| 686 i->second->ResetPrefetchCache(); | 683 i->second->ResetPrefetchCache(); |
| 687 } | 684 } |
| 688 } | 685 } |
| OLD | NEW |