Skip to content

Commit 8620407

Browse files
committed
Merge pull request #499 from amaitland/feature/showdevtools
First 1750 feature - ShowDevTools/CloseDevTools
2 parents 21e9dfa + a58b608 commit 8620407

File tree

8 files changed

+65
-14
lines changed

8 files changed

+65
-14
lines changed

CefSharp.Core/Internals/RenderClientAdapter.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,31 @@ namespace CefSharp
128128
return cefBrowser->GetMainFrame();
129129
};
130130

131+
void ShowDevTools()
132+
{
133+
auto cefHost = TryGetCefHost();
134+
135+
if (cefHost != nullptr)
136+
{
137+
CefWindowInfo windowInfo;
138+
CefBrowserSettings settings;
139+
140+
windowInfo.SetAsPopup(cefHost->GetWindowHandle(), "DevTools");
141+
142+
cefHost->ShowDevTools(windowInfo, this, settings);
143+
}
144+
}
145+
146+
void CloseDevTools()
147+
{
148+
auto cefHost = TryGetCefHost();
149+
150+
if (cefHost != nullptr)
151+
{
152+
cefHost->CloseDevTools();
153+
}
154+
}
155+
131156
private:
132157

133158
void SetBuffer(BitmapInfo^ bitmapInfo, int newWidth, int newHeight, const void* buffer)

CefSharp.Core/ManagedCefBrowserAdapter.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,16 @@ namespace CefSharp
441441
}
442442
}
443443

444+
void ShowDevTools()
445+
{
446+
_renderClientAdapter->ShowDevTools();
447+
}
448+
449+
void CloseDevTools()
450+
{
451+
_renderClientAdapter->CloseDevTools();
452+
}
453+
444454
virtual void Error(Exception^ ex)
445455
{
446456

CefSharp.WinForms.Example/BrowserForm.Designer.cs

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CefSharp.WinForms.Example/BrowserForm.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,5 +240,15 @@ private void CopySourceToClipBoardAsyncClick(object sender, EventArgs e)
240240
},
241241
TaskScheduler.FromCurrentSynchronizationContext());
242242
}
243+
244+
private void ShowDevToolsMenuItemClick(object sender, EventArgs e)
245+
{
246+
browser.ShowDevTools();
247+
}
248+
249+
private void CloseDevToolsMenuItemClick(object sender, EventArgs e)
250+
{
251+
browser.CloseDevTools();
252+
}
243253
}
244254
}

CefSharp.WinForms/ChromiumWebBrowser.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -255,15 +255,14 @@ public void StopFinding(bool clearSelection)
255255
managedCefBrowserAdapter.StopFinding(clearSelection);
256256
}
257257

258-
void IWebBrowserInternal.ShowDevTools()
258+
public void ShowDevTools()
259259
{
260-
// TODO: Do something about this one.
261-
throw new NotImplementedException("Implement when Cef upgraded to 1750.");
260+
managedCefBrowserAdapter.ShowDevTools();
262261
}
263262

264-
void IWebBrowserInternal.CloseDevTools()
263+
public void CloseDevTools()
265264
{
266-
throw new NotImplementedException("Implement when Cef upgraded to 1750.");
265+
managedCefBrowserAdapter.CloseDevTools();
267266
}
268267

269268
public void Stop()

CefSharp.Wpf/ChromiumWebBrowser.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,15 +1051,14 @@ private void ZoomReset()
10511051
});
10521052
}
10531053

1054-
void IWebBrowserInternal.ShowDevTools()
1054+
public void ShowDevTools()
10551055
{
1056-
// TODO: Do something about this one.
1057-
throw new NotImplementedException("Implement when Cef upgraded to 1750.");
1056+
managedCefBrowserAdapter.ShowDevTools();
10581057
}
10591058

1060-
void IWebBrowserInternal.CloseDevTools()
1059+
public void CloseDevTools()
10611060
{
1062-
throw new NotImplementedException("Implement when Cef upgraded to 1750.");
1061+
managedCefBrowserAdapter.CloseDevTools();
10631062
}
10641063

10651064
void IWebBrowserInternal.OnFrameLoadStart(string url, bool isMainFrame)

CefSharp/IWebBrowser.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,5 +240,15 @@ public interface IWebBrowser : IDisposable
240240
/// Opens a Print Dialog which if used (can be user cancelled) will print the browser contents.
241241
/// </summary>
242242
void Print();
243+
244+
/// <summary>
245+
/// Open developer tools in its own window.
246+
/// </summary>
247+
void ShowDevTools();
248+
249+
/// <summary>
250+
/// Explicitly close the developer tools window if one exists for this browser instance.
251+
/// </summary>
252+
void CloseDevTools();
243253
}
244254
}

CefSharp/Internals/IWebBrowserInternal.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ public interface IWebBrowserInternal : IWebBrowser
1717
void SetNavState(bool canGoBack, bool canGoForward, bool canReload);
1818
void SetTitle(string title);
1919
void SetTooltipText(string tooltipText);
20-
void ShowDevTools();
21-
void CloseDevTools();
2220

2321
void OnFrameLoadStart(string url, bool isMainFrame);
2422
void OnFrameLoadEnd(string url, bool isMainFrame, int httpStatusCode);

0 commit comments

Comments
 (0)