summaryrefslogtreecommitdiffstats
path: root/src/core/devtools_frontend_qt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/devtools_frontend_qt.cpp')
-rw-r--r--src/core/devtools_frontend_qt.cpp50
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;
}