From de7892cd6e66fcb39e41ea8ae32d9546c21cf47c Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 5 Nov 2013 10:29:53 +0800 Subject: [PATCH] Add API to get whether the devtools is opened. --- brightray/browser/inspectable_web_contents.h | 1 + brightray/browser/inspectable_web_contents_impl.cc | 4 ++++ brightray/browser/inspectable_web_contents_impl.h | 1 + brightray/browser/inspectable_web_contents_view.h | 1 + brightray/browser/inspectable_web_contents_view_mac.h | 1 + brightray/browser/inspectable_web_contents_view_mac.mm | 4 ++++ brightray/browser/mac/bry_inspectable_web_contents_view.mm | 6 +++++- .../browser/mac/bry_inspectable_web_contents_view_private.h | 3 ++- brightray/browser/win/inspectable_web_contents_view_win.cc | 4 ++++ brightray/browser/win/inspectable_web_contents_view_win.h | 1 + 10 files changed, 24 insertions(+), 2 deletions(-) diff --git a/brightray/browser/inspectable_web_contents.h b/brightray/browser/inspectable_web_contents.h index 9c381ae740..04ba87bf0d 100644 --- a/brightray/browser/inspectable_web_contents.h +++ b/brightray/browser/inspectable_web_contents.h @@ -22,6 +22,7 @@ class InspectableWebContents { virtual content::WebContents* GetWebContents() const = 0; virtual void ShowDevTools() = 0; + virtual bool IsDevToolsOpened() = 0; }; } // namespace brightray diff --git a/brightray/browser/inspectable_web_contents_impl.cc b/brightray/browser/inspectable_web_contents_impl.cc index e3cefbe180..0b194e70e6 100644 --- a/brightray/browser/inspectable_web_contents_impl.cc +++ b/brightray/browser/inspectable_web_contents_impl.cc @@ -96,6 +96,10 @@ void InspectableWebContentsImpl::ShowDevTools() { view_->ShowDevTools(); } +bool InspectableWebContentsImpl::IsDevToolsOpened() { + return devtools_web_contents_ && view_->IsDevToolsOpened(); +} + void InspectableWebContentsImpl::UpdateFrontendDockSide() { auto javascript = base::StringPrintf( "InspectorFrontendAPI.setDockSide(\"%s\")", dock_side_.c_str()); diff --git a/brightray/browser/inspectable_web_contents_impl.h b/brightray/browser/inspectable_web_contents_impl.h index 804d8dccfe..f0a55f5dac 100644 --- a/brightray/browser/inspectable_web_contents_impl.h +++ b/brightray/browser/inspectable_web_contents_impl.h @@ -41,6 +41,7 @@ class InspectableWebContentsImpl : virtual content::WebContents* GetWebContents() const OVERRIDE; virtual void ShowDevTools() OVERRIDE; + virtual bool IsDevToolsOpened() OVERRIDE; content::WebContents* devtools_web_contents() { return devtools_web_contents_.get(); diff --git a/brightray/browser/inspectable_web_contents_view.h b/brightray/browser/inspectable_web_contents_view.h index eed32f3491..ff71bac783 100644 --- a/brightray/browser/inspectable_web_contents_view.h +++ b/brightray/browser/inspectable_web_contents_view.h @@ -13,6 +13,7 @@ class InspectableWebContentsView { virtual void ShowDevTools() = 0; virtual void CloseDevTools() = 0; + virtual bool IsDevToolsOpened() = 0; virtual bool SetDockSide(const std::string& side) = 0; }; diff --git a/brightray/browser/inspectable_web_contents_view_mac.h b/brightray/browser/inspectable_web_contents_view_mac.h index f31149f570..4390db290f 100644 --- a/brightray/browser/inspectable_web_contents_view_mac.h +++ b/brightray/browser/inspectable_web_contents_view_mac.h @@ -19,6 +19,7 @@ class InspectableWebContentsViewMac : public InspectableWebContentsView { virtual gfx::NativeView GetNativeView() const OVERRIDE; virtual void ShowDevTools() OVERRIDE; virtual void CloseDevTools() OVERRIDE; + virtual bool IsDevToolsOpened() OVERRIDE; virtual bool SetDockSide(const std::string& side) OVERRIDE; InspectableWebContentsImpl* inspectable_web_contents() { diff --git a/brightray/browser/inspectable_web_contents_view_mac.mm b/brightray/browser/inspectable_web_contents_view_mac.mm index c9cc215591..adde9b0503 100644 --- a/brightray/browser/inspectable_web_contents_view_mac.mm +++ b/brightray/browser/inspectable_web_contents_view_mac.mm @@ -29,6 +29,10 @@ void InspectableWebContentsViewMac::CloseDevTools() { [view_ setDevToolsVisible:NO]; } +bool InspectableWebContentsViewMac::IsDevToolsOpened() { + return [view_ isDevToolsVisible]; +} + bool InspectableWebContentsViewMac::SetDockSide(const std::string& side) { return [view_ setDockSide:side]; } diff --git a/brightray/browser/mac/bry_inspectable_web_contents_view.mm b/brightray/browser/mac/bry_inspectable_web_contents_view.mm index 24987e5c1c..813d4fb673 100644 --- a/brightray/browser/mac/bry_inspectable_web_contents_view.mm +++ b/brightray/browser/mac/bry_inspectable_web_contents_view.mm @@ -112,6 +112,10 @@ void SetActive(content::WebContents* web_contents, bool active) { [_private->splitView adjustSubviews]; } +- (BOOL)isDevToolsVisible { + return _private->visible; +} + - (BOOL)setDockSide:(const std::string&)side { if (side == "right") { _private->splitView.vertical = YES; @@ -221,4 +225,4 @@ void SetActive(content::WebContents* web_contents, bool active) { @end @implementation BRYInspectableWebContentsViewPrivate -@end \ No newline at end of file +@end diff --git a/brightray/browser/mac/bry_inspectable_web_contents_view_private.h b/brightray/browser/mac/bry_inspectable_web_contents_view_private.h index ef8c50cc8b..943ef93e31 100644 --- a/brightray/browser/mac/bry_inspectable_web_contents_view_private.h +++ b/brightray/browser/mac/bry_inspectable_web_contents_view_private.h @@ -8,6 +8,7 @@ class InspectableWebContentsViewMac; - (instancetype)initWithInspectableWebContentsViewMac:(brightray::InspectableWebContentsViewMac *)inspectableWebContentsView; - (void)setDevToolsVisible:(BOOL)visible; +- (BOOL)isDevToolsVisible; - (BOOL)setDockSide:(const std::string&)side; -@end \ No newline at end of file +@end diff --git a/brightray/browser/win/inspectable_web_contents_view_win.cc b/brightray/browser/win/inspectable_web_contents_view_win.cc index 4913571319..d1530d1cee 100644 --- a/brightray/browser/win/inspectable_web_contents_view_win.cc +++ b/brightray/browser/win/inspectable_web_contents_view_win.cc @@ -57,6 +57,10 @@ void InspectableWebContentsViewWin::CloseDevTools() { SendMessage(devtools_window_->hwnd(), WM_CLOSE, 0, 0); } +bool InspectableWebContentsViewWin::IsDevToolsOpened() { + return devtools_window_; +} + bool InspectableWebContentsViewWin::SetDockSide(const std::string& side) { return false; } diff --git a/brightray/browser/win/inspectable_web_contents_view_win.h b/brightray/browser/win/inspectable_web_contents_view_win.h index 534f499728..f79ce30bf3 100644 --- a/brightray/browser/win/inspectable_web_contents_view_win.h +++ b/brightray/browser/win/inspectable_web_contents_view_win.h @@ -20,6 +20,7 @@ class InspectableWebContentsViewWin : public InspectableWebContentsView { virtual gfx::NativeView GetNativeView() const OVERRIDE; virtual void ShowDevTools() OVERRIDE; virtual void CloseDevTools() OVERRIDE; + virtual bool IsDevToolsOpened() OVERRIDE; virtual bool SetDockSide(const std::string& side) OVERRIDE; InspectableWebContentsImpl* inspectable_web_contents() {