diff options
Diffstat (limited to 'src/core/devtools_frontend_qt.cpp')
-rw-r--r-- | src/core/devtools_frontend_qt.cpp | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/src/core/devtools_frontend_qt.cpp b/src/core/devtools_frontend_qt.cpp index 1f741f526..bd9e0ebe7 100644 --- a/src/core/devtools_frontend_qt.cpp +++ b/src/core/devtools_frontend_qt.cpp @@ -44,8 +44,8 @@ #include "devtools_frontend_qt.h" -#include "browser_context_adapter.h" -#include "browser_context_qt.h" +#include "profile_adapter.h" +#include "profile_qt.h" #include "web_contents_adapter.h" #include "base/json/json_reader.h" @@ -83,6 +83,24 @@ using namespace QtWebEngineCore; namespace { +std::unique_ptr<base::DictionaryValue> BuildObjectForResponse(const net::HttpResponseHeaders *rh) +{ + auto response = std::make_unique<base::DictionaryValue>(); + response->SetInteger("statusCode", rh ? rh->response_code() : 200); + + auto headers = std::make_unique<base::DictionaryValue>(); + size_t iterator = 0; + std::string name; + std::string value; + // TODO(caseq): this probably needs to handle duplicate header names + // correctly by folding them. + while (rh && rh->EnumerateHeaderLines(&iterator, &name, &value)) + headers->SetString(name, value); + + response->Set("headers", std::move(headers)); + return response; +} + // ResponseWriter ------------------------------------------------------------- class ResponseWriter : public net::URLFetcherResponseWriter { @@ -137,7 +155,7 @@ int ResponseWriter::Finish(int net_error, const net::CompletionCallback &callbac static std::string GetFrontendURL() { - return chrome::kChromeUIDevToolsURL; + return "chrome-devtools://devtools/bundled/devtools_app.html"; } } // namespace @@ -156,7 +174,7 @@ DevToolsFrontendQt *DevToolsFrontendQt::Show(QSharedPointer<WebContentsAdapter> if (!frontendAdapter->isInitialized()) { scoped_refptr<content::SiteInstance> site = - content::SiteInstance::CreateForURL(frontendAdapter->browserContext(), GURL(GetFrontendURL())); + content::SiteInstance::CreateForURL(frontendAdapter->profile(), GURL(GetFrontendURL())); frontendAdapter->initialize(site.get()); } @@ -171,7 +189,7 @@ DevToolsFrontendQt *DevToolsFrontendQt::Show(QSharedPointer<WebContentsAdapter> if (contents->GetURL() == GURL(GetFrontendURL())) { contents->GetController().Reload(content::ReloadType::ORIGINAL_REQUEST_URL, false); } else { - content::NavigationController::LoadURLParams loadParams = content::NavigationController::LoadURLParams(GURL(GetFrontendURL())); + content::NavigationController::LoadURLParams loadParams((GURL(GetFrontendURL()))); loadParams.transition_type = ui::PageTransitionFromInt(ui::PAGE_TRANSITION_AUTO_TOPLEVEL | ui::PAGE_TRANSITION_FROM_API); contents->GetController().LoadURLWithParams(loadParams); } @@ -189,9 +207,9 @@ DevToolsFrontendQt::DevToolsFrontendQt(QSharedPointer<WebContentsAdapter> webCon , m_prefStore(nullptr) , m_weakFactory(this) { - // We use a separate prefstore than BrowserContextQt, because that one is in-memory only, and this + // We use a separate prefstore than one in ProfileQt, because that one is in-memory only, and this // needs to be stored or it will show introduction text on every load. - if (webContentsAdapter->browserContextAdapter()->isOffTheRecord()) + if (webContentsAdapter->profileAdapter()->isOffTheRecord()) m_prefStore = std::move(scoped_refptr<PersistentPrefStore>(new InMemoryPrefStore())); else CreateJsonPreferences(false); @@ -219,7 +237,7 @@ void DevToolsFrontendQt::Focus() void DevToolsFrontendQt::InspectElementAt(int x, int y) { if (m_agentHost) - m_agentHost->InspectElement(this, x, y); + m_agentHost->InspectElement(m_inspectedContents->GetFocusedFrame(), x, y); else { m_inspect_element_at_x = x; m_inspect_element_at_y = y; @@ -271,7 +289,7 @@ void DevToolsFrontendQt::DocumentAvailableInMainFrame() m_agentHost = agent_host; m_agentHost->AttachClient(this); if (m_inspect_element_at_x != -1) { - m_agentHost->InspectElement(this, m_inspect_element_at_x, m_inspect_element_at_y); + m_agentHost->InspectElement(m_inspectedContents->GetFocusedFrame(), m_inspect_element_at_x, m_inspect_element_at_y); m_inspect_element_at_x = -1; m_inspect_element_at_y = -1; } @@ -480,19 +498,9 @@ void DevToolsFrontendQt::OnURLFetchComplete(const net::URLFetcher *source) PendingRequestsMap::iterator it = m_pendingRequests.find(source); DCHECK(it != m_pendingRequests.end()); - base::DictionaryValue response; - auto headers = base::MakeUnique<base::DictionaryValue>(); - net::HttpResponseHeaders* rh = source->GetResponseHeaders(); - response.SetInteger("statusCode", rh ? rh->response_code() : 200); - - size_t iterator = 0; - std::string name; - std::string value; - while (rh && rh->EnumerateHeaderLines(&iterator, &name, &value)) - headers->SetString(name, value); - response.Set("headers", std::move(headers)); + auto response = BuildObjectForResponse(source->GetResponseHeaders()); - SendMessageAck(it->second, &response); + SendMessageAck(it->second, response.get()); m_pendingRequests.erase(it); delete source; } |