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

Unified Diff: third_party/WebKit/Source/modules/storage/InspectorDOMStorageAgent.cpp

Issue 2463673004: [inspector_protocol] Support fall through. (Closed)
Patch Set: example domain converted Created 4 years, 2 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: third_party/WebKit/Source/modules/storage/InspectorDOMStorageAgent.cpp
diff --git a/third_party/WebKit/Source/modules/storage/InspectorDOMStorageAgent.cpp b/third_party/WebKit/Source/modules/storage/InspectorDOMStorageAgent.cpp
index b821c6dae49402765525005c5255419ef01c512d..5b9657b4d07f1453c523aba9f0560a2ea2ea0073 100644
--- a/third_party/WebKit/Source/modules/storage/InspectorDOMStorageAgent.cpp
+++ b/third_party/WebKit/Source/modules/storage/InspectorDOMStorageAgent.cpp
@@ -48,19 +48,11 @@ namespace DOMStorageAgentState {
static const char domStorageAgentEnabled[] = "domStorageAgentEnabled";
};
-static bool hadException(ExceptionState& exceptionState,
- ErrorString* errorString) {
+static Response toResponse(ExceptionState& exceptionState) {
if (!exceptionState.hadException())
- return false;
-
- switch (exceptionState.code()) {
- case SecurityError:
- *errorString = "Security error";
- return true;
- default:
- *errorString = "Unknown DOM storage error";
- return true;
- }
+ return Response::OK();
+ return Response::Error(DOMException::getErrorName(exceptionState.code()) +
+ " " + exceptionState.message());
}
InspectorDOMStorageAgent::InspectorDOMStorageAgent(Page* page)
@@ -75,39 +67,41 @@ DEFINE_TRACE(InspectorDOMStorageAgent) {
void InspectorDOMStorageAgent::restore() {
if (m_state->booleanProperty(DOMStorageAgentState::domStorageAgentEnabled,
- false))
- enable(0);
+ false)) {
+ enable();
+ }
}
-void InspectorDOMStorageAgent::enable(ErrorString*) {
+Response InspectorDOMStorageAgent::enable() {
if (m_isEnabled)
- return;
+ return Response::OK();
m_isEnabled = true;
m_state->setBoolean(DOMStorageAgentState::domStorageAgentEnabled, true);
if (StorageNamespaceController* controller =
StorageNamespaceController::from(m_page))
controller->setInspectorAgent(this);
+ return Response::OK();
}
-void InspectorDOMStorageAgent::disable(ErrorString*) {
+Response InspectorDOMStorageAgent::disable() {
if (!m_isEnabled)
- return;
+ return Response::OK();
m_isEnabled = false;
m_state->setBoolean(DOMStorageAgentState::domStorageAgentEnabled, false);
if (StorageNamespaceController* controller =
StorageNamespaceController::from(m_page))
controller->setInspectorAgent(nullptr);
+ return Response::OK();
}
-void InspectorDOMStorageAgent::getDOMStorageItems(
- ErrorString* errorString,
+Response InspectorDOMStorageAgent::getDOMStorageItems(
std::unique_ptr<protocol::DOMStorage::StorageId> storageId,
std::unique_ptr<protocol::Array<protocol::Array<String>>>* items) {
- LocalFrame* frame;
- StorageArea* storageArea =
- findStorageArea(errorString, std::move(storageId), frame);
- if (!storageArea)
- return;
+ LocalFrame* frame = nullptr;
+ StorageArea* storageArea = nullptr;
+ Response response = findStorageArea(std::move(storageId), frame, storageArea);
+ if (!response.isSuccess())
+ return response;
std::unique_ptr<protocol::Array<protocol::Array<String>>> storageItems =
protocol::Array<protocol::Array<String>>::create();
@@ -115,11 +109,13 @@ void InspectorDOMStorageAgent::getDOMStorageItems(
TrackExceptionState exceptionState;
for (unsigned i = 0; i < storageArea->length(exceptionState, frame); ++i) {
String name(storageArea->key(i, exceptionState, frame));
- if (hadException(exceptionState, errorString))
- return;
+ response = toResponse(exceptionState);
+ if (!response.isSuccess())
+ return response;
String value(storageArea->getItem(name, exceptionState, frame));
- if (hadException(exceptionState, errorString))
- return;
+ response = toResponse(exceptionState);
+ if (!response.isSuccess())
+ return response;
std::unique_ptr<protocol::Array<String>> entry =
protocol::Array<String>::create();
entry->addItem(name);
@@ -127,45 +123,36 @@ void InspectorDOMStorageAgent::getDOMStorageItems(
storageItems->addItem(std::move(entry));
}
*items = std::move(storageItems);
+ return Response::OK();
}
-static String toErrorString(ExceptionState& exceptionState) {
- if (exceptionState.hadException())
- return DOMException::getErrorName(exceptionState.code());
- return "";
-}
-
-void InspectorDOMStorageAgent::setDOMStorageItem(
- ErrorString* errorString,
+Response InspectorDOMStorageAgent::setDOMStorageItem(
std::unique_ptr<protocol::DOMStorage::StorageId> storageId,
const String& key,
const String& value) {
- LocalFrame* frame;
- StorageArea* storageArea = findStorageArea(0, std::move(storageId), frame);
- if (!storageArea) {
- *errorString = "Storage not found";
- return;
- }
+ LocalFrame* frame = nullptr;
+ StorageArea* storageArea = nullptr;
+ Response response = findStorageArea(std::move(storageId), frame, storageArea);
+ if (!response.isSuccess())
+ return response;
TrackExceptionState exceptionState;
storageArea->setItem(key, value, exceptionState, frame);
- *errorString = toErrorString(exceptionState);
+ return toResponse(exceptionState);
}
-void InspectorDOMStorageAgent::removeDOMStorageItem(
- ErrorString* errorString,
+Response InspectorDOMStorageAgent::removeDOMStorageItem(
std::unique_ptr<protocol::DOMStorage::StorageId> storageId,
const String& key) {
- LocalFrame* frame;
- StorageArea* storageArea = findStorageArea(0, std::move(storageId), frame);
- if (!storageArea) {
- *errorString = "Storage not found";
- return;
- }
+ LocalFrame* frame = nullptr;
+ StorageArea* storageArea = nullptr;
+ Response response = findStorageArea(std::move(storageId), frame, storageArea);
+ if (!response.isSuccess())
+ return response;
TrackExceptionState exceptionState;
storageArea->removeItem(key, exceptionState, frame);
- *errorString = toErrorString(exceptionState);
+ return toResponse(exceptionState);
}
std::unique_ptr<protocol::DOMStorage::StorageId>
@@ -199,37 +186,34 @@ void InspectorDOMStorageAgent::didDispatchDOMStorageEvent(
frontend()->domStorageItemUpdated(std::move(id), key, oldValue, newValue);
}
-StorageArea* InspectorDOMStorageAgent::findStorageArea(
- ErrorString* errorString,
+Response InspectorDOMStorageAgent::findStorageArea(
std::unique_ptr<protocol::DOMStorage::StorageId> storageId,
- LocalFrame*& targetFrame) {
+ LocalFrame*& frame,
+ StorageArea*& storageArea) {
String securityOrigin = storageId->getSecurityOrigin();
bool isLocalStorage = storageId->getIsLocalStorage();
if (!m_page->mainFrame()->isLocalFrame())
- return nullptr;
+ return Response::InternalError();
InspectedFrames* inspectedFrames =
InspectedFrames::create(m_page->deprecatedLocalMainFrame());
- LocalFrame* frame = inspectedFrames->frameWithSecurityOrigin(securityOrigin);
- if (!frame) {
- if (errorString)
- *errorString = "LocalFrame not found for the given security origin";
- return nullptr;
- }
- targetFrame = frame;
+ frame = inspectedFrames->frameWithSecurityOrigin(securityOrigin);
+ if (!frame)
+ return Response::Error("Frame not found for the given security origin");
- if (isLocalStorage)
- return StorageNamespace::localStorageArea(
+ if (isLocalStorage) {
+ storageArea = StorageNamespace::localStorageArea(
frame->document()->getSecurityOrigin());
+ return Response::OK();
+ }
StorageNamespace* sessionStorage =
StorageNamespaceController::from(m_page)->sessionStorage();
- if (!sessionStorage) {
- if (errorString)
- *errorString = "SessionStorage is not supported";
- return nullptr;
- }
- return sessionStorage->storageArea(frame->document()->getSecurityOrigin());
+ if (!sessionStorage)
+ return Response::Error("SessionStorage is not supported");
+ storageArea =
+ sessionStorage->storageArea(frame->document()->getSecurityOrigin());
+ return Response::OK();
}
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/modules/storage/InspectorDOMStorageAgent.h ('k') | third_party/inspector_protocol/CodeGenerator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698