Bug 151714 - When Debug UI is enabled, Inspecting the Inspector should always be available
Summary: When Debug UI is enabled, Inspecting the Inspector should always be available
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Web Inspector (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks: InspectorDebug
  Show dependency treegraph
 
Reported: 2015-12-01 12:28 PST by BJ Burg
Modified: 2016-12-13 15:33 PST (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description BJ Burg 2015-12-01 12:28:39 PST
NOTES:

We currently require some extra steps to enable 2nd-level inspector. It's currently guarded by two different NSUserDefaults (http://trac.webkit.org/wiki/WebInspectorDebugging#InspectingtheInspector).

It has been proposed elsewhere that we add a separate DebugUI button for inspecting the inspector. I would like a shortcut too, Cmd-Shift-Opt-I (Cmd-Shift-Opt matches other DebugUI shortcuts).
Comment 1 BJ Burg 2015-12-01 12:28:56 PST
Internally filed at <rdar://problem/12628083>
Comment 2 BJ Burg 2015-12-13 12:38:48 PST
the "Inspect Element" context menu item is added inside WebCore code. It checks InspectorController::enabled(), which calls to developerExtrasEnabled(), which in the Web case, is tied to PageSettings::developerExtrasEnabled(). The second-level inspector has a separate page group.

To make 2nd-level inspector always available, we can always add the context menu in engineering builds only if the inspection level is >0.
Comment 3 BJ Burg 2015-12-13 13:02:03 PST
(In reply to comment #2)
>
> To make 2nd-level inspector always available, we can always add the context
> menu in engineering builds only if the inspection level is >0.

It would be even better if we can execute some injected script if inspectionLevel() > 0 to see if debug UI is enabled. 

We'd need to evaluate the following from InspectorController (in the context of the main frame's document).

!!(WebInspector && WebInspector.debugUIEnabled())

How can we evaluate something like this in the main frame's ExecState?