OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "chrome/browser/in_process_webkit/dom_storage_area.h" | 5 #include "chrome/browser/in_process_webkit/dom_storage_area.h" |
6 | 6 |
7 #include "base/task.h" | 7 #include "base/task.h" |
8 #include "chrome/browser/browser_thread.h" | 8 #include "chrome/browser/browser_thread.h" |
9 #include "chrome/browser/content_settings/host_content_settings_map.h" | 9 #include "chrome/browser/content_settings/host_content_settings_map.h" |
10 #include "chrome/browser/in_process_webkit/dom_storage_context.h" | 10 #include "chrome/browser/in_process_webkit/dom_storage_context.h" |
11 #include "chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h" | |
12 #include "chrome/browser/in_process_webkit/dom_storage_namespace.h" | 11 #include "chrome/browser/in_process_webkit/dom_storage_namespace.h" |
13 #include "chrome/common/render_messages.h" | 12 #include "chrome/common/render_messages.h" |
14 #include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h" | 13 #include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h" |
15 #include "third_party/WebKit/WebKit/chromium/public/WebStorageArea.h" | 14 #include "third_party/WebKit/WebKit/chromium/public/WebStorageArea.h" |
16 #include "third_party/WebKit/WebKit/chromium/public/WebString.h" | 15 #include "third_party/WebKit/WebKit/chromium/public/WebString.h" |
17 #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" | 16 #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" |
18 #include "webkit/glue/webkit_glue.h" | 17 #include "webkit/glue/webkit_glue.h" |
19 | 18 |
20 using WebKit::WebSecurityOrigin; | 19 using WebKit::WebSecurityOrigin; |
21 using WebKit::WebStorageArea; | 20 using WebKit::WebStorageArea; |
(...skipping 27 matching lines...) Loading... |
49 return storage_area_->key(index); | 48 return storage_area_->key(index); |
50 } | 49 } |
51 | 50 |
52 NullableString16 DOMStorageArea::GetItem(const string16& key) { | 51 NullableString16 DOMStorageArea::GetItem(const string16& key) { |
53 CreateWebStorageAreaIfNecessary(); | 52 CreateWebStorageAreaIfNecessary(); |
54 return storage_area_->getItem(key); | 53 return storage_area_->getItem(key); |
55 } | 54 } |
56 | 55 |
57 NullableString16 DOMStorageArea::SetItem( | 56 NullableString16 DOMStorageArea::SetItem( |
58 const string16& key, const string16& value, | 57 const string16& key, const string16& value, |
59 WebStorageArea::Result* result, DOMStorageDispatcherHost* sender) { | 58 WebStorageArea::Result* result) { |
60 if (!CheckContentSetting(key, value, sender)) { | 59 if (!CheckContentSetting(key, value)) { |
61 *result = WebStorageArea::ResultBlockedByPolicy; | 60 *result = WebStorageArea::ResultBlockedByPolicy; |
62 return NullableString16(true); // Ignored if the content was blocked. | 61 return NullableString16(true); // Ignored if the content was blocked. |
63 } | 62 } |
64 | 63 |
65 CreateWebStorageAreaIfNecessary(); | 64 CreateWebStorageAreaIfNecessary(); |
66 WebString old_value; | 65 WebString old_value; |
67 storage_area_->setItem(key, value, WebURL(), *result, old_value); | 66 storage_area_->setItem(key, value, WebURL(), *result, old_value); |
68 return old_value; | 67 return old_value; |
69 } | 68 } |
70 | 69 |
(...skipping 14 matching lines...) Loading... |
85 void DOMStorageArea::PurgeMemory() { | 84 void DOMStorageArea::PurgeMemory() { |
86 storage_area_.reset(); | 85 storage_area_.reset(); |
87 } | 86 } |
88 | 87 |
89 void DOMStorageArea::CreateWebStorageAreaIfNecessary() { | 88 void DOMStorageArea::CreateWebStorageAreaIfNecessary() { |
90 if (!storage_area_.get()) | 89 if (!storage_area_.get()) |
91 storage_area_.reset(owner_->CreateWebStorageArea(origin_)); | 90 storage_area_.reset(owner_->CreateWebStorageArea(origin_)); |
92 } | 91 } |
93 | 92 |
94 bool DOMStorageArea::CheckContentSetting( | 93 bool DOMStorageArea::CheckContentSetting( |
95 const string16& key, const string16& value, | 94 const string16& key, const string16& value) { |
96 DOMStorageDispatcherHost* sender) { | |
97 ContentSetting content_setting = | 95 ContentSetting content_setting = |
98 host_content_settings_map_->GetContentSetting( | 96 host_content_settings_map_->GetContentSetting( |
99 origin_url_, CONTENT_SETTINGS_TYPE_COOKIES, ""); | 97 origin_url_, CONTENT_SETTINGS_TYPE_COOKIES, ""); |
100 return (content_setting != CONTENT_SETTING_BLOCK); | 98 return (content_setting != CONTENT_SETTING_BLOCK); |
101 } | 99 } |
OLD | NEW |