From d6f9e57e33c177ffc814a07fad9e8c5fe45c10f9 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Mon, 23 May 2016 16:04:10 +0900 Subject: [PATCH] Fix chrome.devtools not available in devtools extensions --- lib/renderer/inspector.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/renderer/inspector.js b/lib/renderer/inspector.js index ca60c84d4be9..12d3ae907243 100644 --- a/lib/renderer/inspector.js +++ b/lib/renderer/inspector.js @@ -1,4 +1,7 @@ window.onload = function () { + // Make sure |window.chrome| is defined for devtools extensions. + hijackSetInjectedScript(InspectorFrontendHost) + // Use menu API to show context menu. window.InspectorFrontendHost.showContextMenuAtPoint = createMenu @@ -6,6 +9,18 @@ window.onload = function () { window.WebInspector.createFileSelectorElement = createFileSelectorElement } +const hijackSetInjectedScript = function (InspectorFrontendHost) { + const {setInjectedScriptForOrigin} = InspectorFrontendHost + InspectorFrontendHost.setInjectedScriptForOrigin = function (origin, source) { + const wrapped = `(function (...args) { + window.chrome = {} + const original = ${source} + original(...args) + })` + setInjectedScriptForOrigin(origin, wrapped) + } +} + var convertToMenuTemplate = function (items) { var fn, i, item, len, template template = []