| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this |
| 2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
| 3 // LICENSE file. | 3 // LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h" | 5 #include "chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h" |
| 6 | 6 |
| 7 #include "base/nullable_string16.h" |
| 7 #include "base/stl_util-inl.h" | 8 #include "base/stl_util-inl.h" |
| 8 #include "base/string16.h" | |
| 9 #include "chrome/browser/chrome_thread.h" | 9 #include "chrome/browser/chrome_thread.h" |
| 10 #include "chrome/browser/in_process_webkit/webkit_context.h" | 10 #include "chrome/browser/in_process_webkit/webkit_context.h" |
| 11 #include "chrome/browser/in_process_webkit/webkit_thread.h" | 11 #include "chrome/browser/in_process_webkit/webkit_thread.h" |
| 12 #include "chrome/common/render_messages.h" | 12 #include "chrome/common/render_messages.h" |
| 13 #include "webkit/api/public/WebKit.h" | 13 #include "webkit/api/public/WebKit.h" |
| 14 #include "webkit/api/public/WebStorageArea.h" | 14 #include "webkit/api/public/WebStorageArea.h" |
| 15 #include "webkit/api/public/WebStorageNamespace.h" | 15 #include "webkit/api/public/WebStorageNamespace.h" |
| 16 #include "webkit/api/public/WebString.h" | 16 #include "webkit/api/public/WebString.h" |
| 17 #include "webkit/glue/webkit_glue.h" | 17 #include "webkit/glue/webkit_glue.h" |
| 18 | 18 |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { | 256 if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { |
| 257 MessageLoop* webkit_loop = webkit_thread_->GetMessageLoop(); | 257 MessageLoop* webkit_loop = webkit_thread_->GetMessageLoop(); |
| 258 webkit_loop->PostTask(FROM_HERE, NewRunnableMethod(this, | 258 webkit_loop->PostTask(FROM_HERE, NewRunnableMethod(this, |
| 259 &DOMStorageDispatcherHost::OnKey, storage_area_id, index, reply_msg)); | 259 &DOMStorageDispatcherHost::OnKey, storage_area_id, index, reply_msg)); |
| 260 return; | 260 return; |
| 261 } | 261 } |
| 262 | 262 |
| 263 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); | 263 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); |
| 264 WebStorageArea* storage_area = GetStorageArea(storage_area_id); | 264 WebStorageArea* storage_area = GetStorageArea(storage_area_id); |
| 265 CHECK(storage_area); // TODO(jorlow): Do better than this. | 265 CHECK(storage_area); // TODO(jorlow): Do better than this. |
| 266 WebString key = storage_area->key(index); | 266 const NullableString16& key = storage_area->key(index); |
| 267 ViewHostMsg_DOMStorageKey::WriteReplyParams(reply_msg, (string16)key, | 267 ViewHostMsg_DOMStorageKey::WriteReplyParams(reply_msg, key); |
| 268 key.isNull()); | |
| 269 Send(reply_msg); | 268 Send(reply_msg); |
| 270 } | 269 } |
| 271 | 270 |
| 272 void DOMStorageDispatcherHost::OnGetItem(int64 storage_area_id, | 271 void DOMStorageDispatcherHost::OnGetItem(int64 storage_area_id, |
| 273 const string16& key, | 272 const string16& key, |
| 274 IPC::Message* reply_msg) { | 273 IPC::Message* reply_msg) { |
| 275 DCHECK(!shutdown_); | 274 DCHECK(!shutdown_); |
| 276 if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { | 275 if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { |
| 277 MessageLoop* webkit_loop = webkit_thread_->GetMessageLoop(); | 276 MessageLoop* webkit_loop = webkit_thread_->GetMessageLoop(); |
| 278 webkit_loop->PostTask(FROM_HERE, NewRunnableMethod(this, | 277 webkit_loop->PostTask(FROM_HERE, NewRunnableMethod(this, |
| 279 &DOMStorageDispatcherHost::OnGetItem, | 278 &DOMStorageDispatcherHost::OnGetItem, |
| 280 storage_area_id, key, reply_msg)); | 279 storage_area_id, key, reply_msg)); |
| 281 return; | 280 return; |
| 282 } | 281 } |
| 283 | 282 |
| 284 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); | 283 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); |
| 285 WebStorageArea* storage_area = GetStorageArea(storage_area_id); | 284 WebStorageArea* storage_area = GetStorageArea(storage_area_id); |
| 286 CHECK(storage_area); // TODO(jorlow): Do better than this. | 285 CHECK(storage_area); // TODO(jorlow): Do better than this. |
| 287 WebString value = storage_area->getItem(key); | 286 const NullableString16& value = storage_area->getItem(key); |
| 288 ViewHostMsg_DOMStorageGetItem::WriteReplyParams(reply_msg, (string16)value, | 287 ViewHostMsg_DOMStorageGetItem::WriteReplyParams(reply_msg, value); |
| 289 value.isNull()); | |
| 290 Send(reply_msg); | 288 Send(reply_msg); |
| 291 } | 289 } |
| 292 | 290 |
| 293 void DOMStorageDispatcherHost::OnSetItem(int64 storage_area_id, | 291 void DOMStorageDispatcherHost::OnSetItem(int64 storage_area_id, |
| 294 const string16& key, | 292 const string16& key, |
| 295 const string16& value) { | 293 const string16& value) { |
| 296 DCHECK(!shutdown_); | 294 DCHECK(!shutdown_); |
| 297 if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { | 295 if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { |
| 298 MessageLoop* webkit_loop = webkit_thread_->GetMessageLoop(); | 296 MessageLoop* webkit_loop = webkit_thread_->GetMessageLoop(); |
| 299 webkit_loop->PostTask(FROM_HERE, NewRunnableMethod(this, | 297 webkit_loop->PostTask(FROM_HERE, NewRunnableMethod(this, |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 return new_namespace_id; | 376 return new_namespace_id; |
| 379 } | 377 } |
| 380 | 378 |
| 381 WebString DOMStorageDispatcherHost::GetLocalStoragePath() { | 379 WebString DOMStorageDispatcherHost::GetLocalStoragePath() { |
| 382 const FilePath& path = webkit_context_->data_path(); | 380 const FilePath& path = webkit_context_->data_path(); |
| 383 if (path.empty()) | 381 if (path.empty()) |
| 384 return WebString(); | 382 return WebString(); |
| 385 FilePath::StringType path_string = path.AppendASCII("localStorage").value(); | 383 FilePath::StringType path_string = path.AppendASCII("localStorage").value(); |
| 386 return webkit_glue::FilePathStringToWebString(path_string); | 384 return webkit_glue::FilePathStringToWebString(path_string); |
| 387 } | 385 } |
| OLD | NEW |