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 |