Chromium Code Reviews| Index: third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp |
| diff --git a/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp |
| index cb543536d3791397a3f500ed7cd1b9804695abba..3ae00399736214431cf82655a5f26d07d64dc97c 100644 |
| --- a/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp |
| +++ b/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp |
| @@ -73,6 +73,8 @@ |
| namespace blink { |
| +using namespace protocol; |
| + |
| namespace PageAgentState { |
| static const char pageAgentEnabled[] = "pageAgentEnabled"; |
| static const char pageAgentScriptsToEvaluateOnLoad[] = "pageAgentScriptsToEvaluateOnLoad"; |
| @@ -94,19 +96,19 @@ String frameId(LocalFrame* frame) |
| return frame ? IdentifiersFactory::frameId(frame) : ""; |
| } |
| -protocol::TypeBuilder::Page::DialogType::Enum dialogTypeToProtocol(ChromeClient::DialogType dialogType) |
| +String dialogTypeToProtocol(ChromeClient::DialogType dialogType) |
| { |
| switch (dialogType) { |
| case ChromeClient::AlertDialog: |
| - return protocol::TypeBuilder::Page::DialogType::Alert; |
| + return TypeBuilder::Page::DialogTypeEnum::Alert; |
| case ChromeClient::ConfirmDialog: |
| - return protocol::TypeBuilder::Page::DialogType::Confirm; |
| + return TypeBuilder::Page::DialogTypeEnum::Confirm; |
| case ChromeClient::PromptDialog: |
| - return protocol::TypeBuilder::Page::DialogType::Prompt; |
| + return TypeBuilder::Page::DialogTypeEnum::Prompt; |
| case ChromeClient::HTMLDialog: |
| - return protocol::TypeBuilder::Page::DialogType::Beforeunload; |
| + return TypeBuilder::Page::DialogTypeEnum::Beforeunload; |
| } |
| - return protocol::TypeBuilder::Page::DialogType::Alert; |
| + return TypeBuilder::Page::DialogTypeEnum::Alert; |
| } |
| } // namespace |
| @@ -278,37 +280,37 @@ Resource* InspectorPageAgent::cachedResource(LocalFrame* frame, const KURL& url) |
| return cachedResource; |
| } |
| -protocol::TypeBuilder::Page::ResourceType::Enum InspectorPageAgent::resourceTypeJson(InspectorPageAgent::ResourceType resourceType) |
| +String InspectorPageAgent::resourceTypeJson(InspectorPageAgent::ResourceType resourceType) |
| { |
| switch (resourceType) { |
| case DocumentResource: |
| - return protocol::TypeBuilder::Page::ResourceType::Document; |
| + return TypeBuilder::Page::ResourceTypeEnum::Document; |
| case FontResource: |
| - return protocol::TypeBuilder::Page::ResourceType::Font; |
| + return TypeBuilder::Page::ResourceTypeEnum::Font; |
| case ImageResource: |
| - return protocol::TypeBuilder::Page::ResourceType::Image; |
| + return TypeBuilder::Page::ResourceTypeEnum::Image; |
| case MediaResource: |
| - return protocol::TypeBuilder::Page::ResourceType::Media; |
| + return TypeBuilder::Page::ResourceTypeEnum::Media; |
| case ScriptResource: |
| - return protocol::TypeBuilder::Page::ResourceType::Script; |
| + return TypeBuilder::Page::ResourceTypeEnum::Script; |
| case StylesheetResource: |
| - return protocol::TypeBuilder::Page::ResourceType::Stylesheet; |
| + return TypeBuilder::Page::ResourceTypeEnum::Stylesheet; |
| case TextTrackResource: |
| - return protocol::TypeBuilder::Page::ResourceType::TextTrack; |
| + return TypeBuilder::Page::ResourceTypeEnum::TextTrack; |
| case XHRResource: |
| - return protocol::TypeBuilder::Page::ResourceType::XHR; |
| + return TypeBuilder::Page::ResourceTypeEnum::XHR; |
| case FetchResource: |
| - return protocol::TypeBuilder::Page::ResourceType::Fetch; |
| + return TypeBuilder::Page::ResourceTypeEnum::Fetch; |
| case EventSourceResource: |
| - return protocol::TypeBuilder::Page::ResourceType::EventSource; |
| + return TypeBuilder::Page::ResourceTypeEnum::EventSource; |
| case WebSocketResource: |
| - return protocol::TypeBuilder::Page::ResourceType::WebSocket; |
| + return TypeBuilder::Page::ResourceTypeEnum::WebSocket; |
| case ManifestResource: |
| - return protocol::TypeBuilder::Page::ResourceType::Manifest; |
| + return TypeBuilder::Page::ResourceTypeEnum::Manifest; |
| case OtherResource: |
| - return protocol::TypeBuilder::Page::ResourceType::Other; |
| + return TypeBuilder::Page::ResourceTypeEnum::Other; |
| } |
| - return protocol::TypeBuilder::Page::ResourceType::Other; |
| + return TypeBuilder::Page::ResourceTypeEnum::Other; |
| } |
| InspectorPageAgent::ResourceType InspectorPageAgent::cachedResourceType(const Resource& cachedResource) |
| @@ -340,7 +342,7 @@ InspectorPageAgent::ResourceType InspectorPageAgent::cachedResourceType(const Re |
| return InspectorPageAgent::OtherResource; |
| } |
| -protocol::TypeBuilder::Page::ResourceType::Enum InspectorPageAgent::cachedResourceTypeJson(const Resource& cachedResource) |
| +String InspectorPageAgent::cachedResourceTypeJson(const Resource& cachedResource) |
| { |
| return resourceTypeJson(cachedResourceType(cachedResource)); |
| } |
| @@ -416,13 +418,13 @@ void InspectorPageAgent::setAutoAttachToCreatedPages(ErrorString*, bool autoAtta |
| m_state->setBoolean(PageAgentState::autoAttachToCreatedPages, autoAttach); |
| } |
| -void InspectorPageAgent::reload(ErrorString*, const bool* const optionalIgnoreCache, const String* optionalScriptToEvaluateOnLoad) |
| +void InspectorPageAgent::reload(ErrorString*, const OptionalValue<bool>& optionalIgnoreCache, const OptionalValue<String>& optionalScriptToEvaluateOnLoad) |
| { |
| - m_pendingScriptToEvaluateOnLoadOnce = optionalScriptToEvaluateOnLoad ? *optionalScriptToEvaluateOnLoad : ""; |
| + m_pendingScriptToEvaluateOnLoadOnce = optionalScriptToEvaluateOnLoad.get(""); |
| ErrorString unused; |
| m_debuggerAgent->setSkipAllPauses(&unused, true); |
| m_reloading = true; |
| - m_inspectedFrames->root()->reload(asBool(optionalIgnoreCache) ? FrameLoadTypeReloadFromOrigin : FrameLoadTypeReload, NotClientRedirect); |
| + m_inspectedFrames->root()->reload(optionalIgnoreCache.get(false) ? FrameLoadTypeReloadFromOrigin : FrameLoadTypeReload, NotClientRedirect); |
| } |
| void InspectorPageAgent::navigate(ErrorString*, const String& url, String* outFrameId) |
| @@ -491,9 +493,9 @@ static WillBeHeapVector<RawPtrWillBeMember<Resource>> cachedResourcesForFrame(Lo |
| return result; |
| } |
| -void InspectorPageAgent::getResourceTree(ErrorString*, RefPtr<protocol::TypeBuilder::Page::FrameResourceTree>& object) |
| +void InspectorPageAgent::getResourceTree(ErrorString*, OwnPtr<TypeBuilder::Page::FrameResourceTree>* object) |
| { |
| - object = buildObjectForFrameTree(m_inspectedFrames->root()); |
| + *object = buildObjectForFrameTree(m_inspectedFrames->root()); |
| } |
| void InspectorPageAgent::finishReload() |
| @@ -554,18 +556,18 @@ void InspectorPageAgent::searchContentAfterResourcesContentLoaded(const String& |
| return; |
| } |
| - RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::Debugger::SearchMatch>> results; |
| + OwnPtr<TypeBuilder::Array<TypeBuilder::Debugger::SearchMatch>> results; |
| results = V8ContentSearchUtil::searchInTextByLines(m_debuggerAgent->debugger(), content, query, caseSensitive, isRegex); |
| - callback->sendSuccess(results); |
| + callback->sendSuccess(results.release()); |
| } |
| -void InspectorPageAgent::searchInResource(ErrorString*, const String& frameId, const String& url, const String& query, const bool* optionalCaseSensitive, const bool* optionalIsRegex, PassRefPtr<SearchInResourceCallback> callback) |
| +void InspectorPageAgent::searchInResource(ErrorString*, const String& frameId, const String& url, const String& query, const OptionalValue<bool>& optionalCaseSensitive, const OptionalValue<bool>& optionalIsRegex, PassRefPtr<SearchInResourceCallback> callback) |
| { |
| if (!m_enabled) { |
| callback->sendFailure("Agent is not enabled."); |
| return; |
| } |
| - m_inspectorResourceContentLoader->ensureResourcesContentLoaded(bind(&InspectorPageAgent::searchContentAfterResourcesContentLoaded, this, frameId, url, query, asBool(optionalCaseSensitive), asBool(optionalIsRegex), callback)); |
| + m_inspectorResourceContentLoader->ensureResourcesContentLoaded(bind(&InspectorPageAgent::searchContentAfterResourcesContentLoaded, this, frameId, url, query, optionalCaseSensitive.get(false), optionalIsRegex.get(false), callback)); |
| } |
| void InspectorPageAgent::setDocumentContent(ErrorString* errorString, const String& frameId, const String& html) |
| @@ -702,14 +704,14 @@ void InspectorPageAgent::windowCreated(LocalFrame* created) |
| m_client->waitForCreateWindow(created); |
| } |
| -PassRefPtr<protocol::TypeBuilder::Page::Frame> InspectorPageAgent::buildObjectForFrame(LocalFrame* frame) |
| +PassOwnPtr<TypeBuilder::Page::Frame> InspectorPageAgent::buildObjectForFrame(LocalFrame* frame) |
| { |
| - RefPtr<protocol::TypeBuilder::Page::Frame> frameObject = protocol::TypeBuilder::Page::Frame::create() |
| + OwnPtr<TypeBuilder::Page::Frame> frameObject = TypeBuilder::Page::Frame::create() |
| .setId(frameId(frame)) |
| .setLoaderId(IdentifiersFactory::loaderId(frame->loader().documentLoader())) |
| .setUrl(urlWithoutFragment(frame->document()->url()).string()) |
| .setMimeType(frame->loader().documentLoader()->responseMIMEType()) |
| - .setSecurityOrigin(frame->document()->securityOrigin()->toRawString()); |
| + .setSecurityOrigin(frame->document()->securityOrigin()->toRawString()).build(); |
| // FIXME: This doesn't work for OOPI. |
| Frame* parentFrame = frame->tree().parent(); |
| if (parentFrame && parentFrame->isLocalFrame()) |
| @@ -721,53 +723,54 @@ PassRefPtr<protocol::TypeBuilder::Page::Frame> InspectorPageAgent::buildObjectFo |
| frameObject->setName(name); |
| } |
| - return frameObject; |
| + return frameObject.release(); |
| } |
| -PassRefPtr<protocol::TypeBuilder::Page::FrameResourceTree> InspectorPageAgent::buildObjectForFrameTree(LocalFrame* frame) |
| +PassOwnPtr<TypeBuilder::Page::FrameResourceTree> InspectorPageAgent::buildObjectForFrameTree(LocalFrame* frame) |
| { |
| - RefPtr<protocol::TypeBuilder::Page::Frame> frameObject = buildObjectForFrame(frame); |
| - RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::Page::FrameResource>> subresources = protocol::TypeBuilder::Array<protocol::TypeBuilder::Page::FrameResource>::create(); |
| - RefPtr<protocol::TypeBuilder::Page::FrameResourceTree> result = protocol::TypeBuilder::Page::FrameResourceTree::create() |
| - .setFrame(frameObject) |
| - .setResources(subresources); |
| + OwnPtr<TypeBuilder::Page::Frame> frameObject = buildObjectForFrame(frame); |
| + OwnPtr<TypeBuilder::Array<TypeBuilder::Page::FrameResource>> subresources = TypeBuilder::Array<TypeBuilder::Page::FrameResource>::create(); |
| WillBeHeapVector<RawPtrWillBeMember<Resource>> allResources = cachedResourcesForFrame(frame, true); |
| for (Resource* cachedResource : allResources) { |
| - RefPtr<protocol::TypeBuilder::Page::FrameResource> resourceObject = protocol::TypeBuilder::Page::FrameResource::create() |
| + OwnPtr<TypeBuilder::Page::FrameResource> resourceObject = TypeBuilder::Page::FrameResource::create() |
| .setUrl(urlWithoutFragment(cachedResource->url()).string()) |
| .setType(cachedResourceTypeJson(*cachedResource)) |
| - .setMimeType(cachedResource->response().mimeType()); |
| + .setMimeType(cachedResource->response().mimeType()).build(); |
| if (cachedResource->wasCanceled()) |
| resourceObject->setCanceled(true); |
| else if (cachedResource->status() == Resource::LoadError) |
| resourceObject->setFailed(true); |
| - subresources->addItem(resourceObject); |
| + subresources->addItem(resourceObject.release()); |
| } |
| WillBeHeapVector<RawPtrWillBeMember<Document>> allImports = InspectorPageAgent::importsForFrame(frame); |
| for (Document* import : allImports) { |
| - RefPtr<protocol::TypeBuilder::Page::FrameResource> resourceObject = protocol::TypeBuilder::Page::FrameResource::create() |
| + OwnPtr<TypeBuilder::Page::FrameResource> resourceObject = TypeBuilder::Page::FrameResource::create() |
| .setUrl(urlWithoutFragment(import->url()).string()) |
| .setType(resourceTypeJson(InspectorPageAgent::DocumentResource)) |
| - .setMimeType(import->suggestedMIMEType()); |
| - subresources->addItem(resourceObject); |
| + .setMimeType(import->suggestedMIMEType()).build(); |
| + subresources->addItem(resourceObject.release()); |
| } |
| - RefPtr<protocol::TypeBuilder::Array<protocol::TypeBuilder::Page::FrameResourceTree>> childrenArray; |
| + OwnPtr<TypeBuilder::Page::FrameResourceTree> result = TypeBuilder::Page::FrameResourceTree::create() |
| + .setFrame(frameObject.release()) |
| + .setResources(subresources.release()).build(); |
| + |
| + OwnPtr<TypeBuilder::Array<TypeBuilder::Page::FrameResourceTree>> childrenArray; |
| for (Frame* child = frame->tree().firstChild(); child; child = child->tree().nextSibling()) { |
| if (!child->isLocalFrame()) |
| continue; |
| - if (!childrenArray) { |
| - childrenArray = protocol::TypeBuilder::Array<protocol::TypeBuilder::Page::FrameResourceTree>::create(); |
| - result->setChildFrames(childrenArray); |
| - } |
| + if (!childrenArray) |
| + childrenArray = TypeBuilder::Array<TypeBuilder::Page::FrameResourceTree>::create(); |
|
dgozman
2016/02/22 23:57:36
This could be done unconditionally, and |if (child
|
| childrenArray->addItem(buildObjectForFrameTree(toLocalFrame(child))); |
| } |
| - return result; |
| + if (childrenArray) |
| + result->setChildFrames(childrenArray.release()); |
| + return result.release(); |
| } |
| -void InspectorPageAgent::startScreencast(ErrorString*, const String* format, const int* quality, const int* maxWidth, const int* maxHeight, const int* everyNthFrame) |
| +void InspectorPageAgent::startScreencast(ErrorString*, const OptionalValue<String>& format, const OptionalValue<int>& quality, const OptionalValue<int>& maxWidth, const OptionalValue<int>& maxHeight, const OptionalValue<int>& everyNthFrame) |
| { |
| m_state->setBoolean(PageAgentState::screencastEnabled, true); |
| } |
| @@ -777,10 +780,10 @@ void InspectorPageAgent::stopScreencast(ErrorString*) |
| m_state->setBoolean(PageAgentState::screencastEnabled, false); |
| } |
| -void InspectorPageAgent::setOverlayMessage(ErrorString*, const String* message) |
| +void InspectorPageAgent::setOverlayMessage(ErrorString*, const OptionalValue<String>& message) |
| { |
| if (m_client) |
| - m_client->setPausedInDebuggerMessage(message); |
| + m_client->setPausedInDebuggerMessage(message.get(String())); |
| } |
| DEFINE_TRACE(InspectorPageAgent) |