Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1237)

Unified Diff: Source/core/storage/StorageArea.cpp

Issue 517043003: Move Frame to the Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Back out non-Oilpan experiment + tidy up by adding frame() ref accessors Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/storage/StorageArea.cpp
diff --git a/Source/core/storage/StorageArea.cpp b/Source/core/storage/StorageArea.cpp
index 10d670281b61fe6ec6210741395d4c24464bf22a..ee5dfc3aa9e6ea77a8ddc814d5a34d6364a08c4a 100644
--- a/Source/core/storage/StorageArea.cpp
+++ b/Source/core/storage/StorageArea.cpp
@@ -45,11 +45,16 @@
namespace blink {
-StorageArea::StorageArea(PassOwnPtr<blink::WebStorageArea> storageArea, StorageType storageType)
+PassOwnPtrWillBeRawPtr<StorageArea> StorageArea::create(PassOwnPtr<WebStorageArea> storageArea, StorageType storageType)
+{
+ return adoptPtrWillBeNoop(new StorageArea(storageArea, storageType));
+}
+
+StorageArea::StorageArea(PassOwnPtr<WebStorageArea> storageArea, StorageType storageType)
: m_storageArea(storageArea)
, m_storageType(storageType)
+ , m_canAccessStorageCachedFrame(nullptr)
, m_canAccessStorageCachedResult(false)
- , m_canAccessStorageCachedFrame(0)
{
}
@@ -57,6 +62,11 @@ StorageArea::~StorageArea()
{
}
+void StorageArea::trace(Visitor* visitor)
+{
+ visitor->trace(m_canAccessStorageCachedFrame);
+}
+
unsigned StorageArea::length(ExceptionState& exceptionState, LocalFrame* frame)
{
if (!canAccessStorage(frame)) {
@@ -90,9 +100,9 @@ void StorageArea::setItem(const String& key, const String& value, ExceptionState
exceptionState.throwSecurityError("access is denied for this document.");
return;
}
- blink::WebStorageArea::Result result = blink::WebStorageArea::ResultOK;
+ WebStorageArea::Result result = WebStorageArea::ResultOK;
m_storageArea->setItem(key, value, frame->document()->url(), result);
- if (result != blink::WebStorageArea::ResultOK)
+ if (result != WebStorageArea::ResultOK)
exceptionState.throwDOMException(QuotaExceededError, "Setting the value of '" + key + "' exceeded the quota.");
}
@@ -140,7 +150,7 @@ size_t StorageArea::memoryBytesUsedByCache()
return m_storageArea->memoryBytesUsedByCache();
}
-void StorageArea::dispatchLocalStorageEvent(const String& key, const String& oldValue, const String& newValue, SecurityOrigin* securityOrigin, const KURL& pageURL, blink::WebStorageArea* sourceAreaInstance, bool originatedInProcess)
+void StorageArea::dispatchLocalStorageEvent(const String& key, const String& oldValue, const String& newValue, SecurityOrigin* securityOrigin, const KURL& pageURL, WebStorageArea* sourceAreaInstance, bool originatedInProcess)
{
// FIXME: This looks suspicious. Why doesn't this use allPages instead?
const HashSet<Page*>& pages = Page::ordinaryPages();
@@ -157,7 +167,7 @@ void StorageArea::dispatchLocalStorageEvent(const String& key, const String& old
}
}
-static Page* findPageWithSessionStorageNamespace(const blink::WebStorageNamespace& sessionNamespace)
+static Page* findPageWithSessionStorageNamespace(const WebStorageNamespace& sessionNamespace)
{
// FIXME: This looks suspicious. Why doesn't this use allPages instead?
const HashSet<Page*>& pages = Page::ordinaryPages();
@@ -170,7 +180,7 @@ static Page* findPageWithSessionStorageNamespace(const blink::WebStorageNamespac
return 0;
}
-void StorageArea::dispatchSessionStorageEvent(const String& key, const String& oldValue, const String& newValue, SecurityOrigin* securityOrigin, const KURL& pageURL, const blink::WebStorageNamespace& sessionNamespace, blink::WebStorageArea* sourceAreaInstance, bool originatedInProcess)
+void StorageArea::dispatchSessionStorageEvent(const String& key, const String& oldValue, const String& newValue, SecurityOrigin* securityOrigin, const KURL& pageURL, const WebStorageNamespace& sessionNamespace, WebStorageArea* sourceAreaInstance, bool originatedInProcess)
{
Page* page = findPageWithSessionStorageNamespace(sessionNamespace);
if (!page)
@@ -187,7 +197,7 @@ void StorageArea::dispatchSessionStorageEvent(const String& key, const String& o
InspectorInstrumentation::didDispatchDOMStorageEvent(page, key, oldValue, newValue, SessionStorage, securityOrigin);
}
-bool StorageArea::isEventSource(Storage* storage, blink::WebStorageArea* sourceAreaInstance)
+bool StorageArea::isEventSource(Storage* storage, WebStorageArea* sourceAreaInstance)
{
ASSERT(storage);
StorageArea* area = storage->area();

Powered by Google App Engine
This is Rietveld 408576698