Add getter for devToolsWebContents.

This commit is contained in:
Cheng Zhao 2014-04-25 10:48:11 +08:00
parent 00ed814962
commit c5f8fbf471
5 changed files with 14 additions and 26 deletions

View file

@ -336,18 +336,6 @@ mate::Handle<WebContents> Window::GetDevToolsWebContents(
return WebContents::Create(isolate, window_->GetDevToolsWebContents()); return WebContents::Create(isolate, window_->GetDevToolsWebContents());
} }
mate::Dictionary Window::GetDevTools(v8::Isolate* isolate) {
mate::Dictionary dict(mate::Dictionary::CreateEmpty(isolate));
content::WebContents* web_contents = window_->GetDevToolsWebContents();
dict.Set("processId", web_contents->GetRenderProcessHost()->GetID());
dict.Set("routingId", web_contents->GetRoutingID());
return dict;
}
void Window::ExecuteJavaScriptInDevTools(const std::string& code) {
window_->ExecuteJavaScriptInDevTools(code);
}
void Window::LoadURL(const GURL& url) { void Window::LoadURL(const GURL& url) {
NavigationController& controller = window_->GetWebContents()->GetController(); NavigationController& controller = window_->GetWebContents()->GetController();
@ -439,9 +427,6 @@ void Window::BuildPrototype(v8::Isolate* isolate,
.SetMethod("capturePage", &Window::CapturePage) .SetMethod("capturePage", &Window::CapturePage)
.SetMethod("getWebContents", &Window::GetWebContents) .SetMethod("getWebContents", &Window::GetWebContents)
.SetMethod("getDevToolsWebContents", &Window::GetDevToolsWebContents) .SetMethod("getDevToolsWebContents", &Window::GetDevToolsWebContents)
.SetMethod("getDevTools", &Window::GetDevTools)
.SetMethod("executeJavaScriptInDevTools",
&Window::ExecuteJavaScriptInDevTools)
.SetMethod("loadUrl", &Window::LoadURL) .SetMethod("loadUrl", &Window::LoadURL)
.SetMethod("canGoBack", &Window::CanGoBack) .SetMethod("canGoBack", &Window::CanGoBack)
.SetMethod("canGoForward", &Window::CanGoForward) .SetMethod("canGoForward", &Window::CanGoForward)

View file

@ -106,10 +106,6 @@ class Window : public mate::EventEmitter,
mate::Handle<WebContents> GetWebContents(v8::Isolate* isolate) const; mate::Handle<WebContents> GetWebContents(v8::Isolate* isolate) const;
mate::Handle<WebContents> GetDevToolsWebContents(v8::Isolate* isolate) const; mate::Handle<WebContents> GetDevToolsWebContents(v8::Isolate* isolate) const;
// APIs for devtools.
mate::Dictionary GetDevTools(v8::Isolate* isolate);
void ExecuteJavaScriptInDevTools(const std::string& code);
// APIs for NavigationController. // APIs for NavigationController.
void LoadURL(const GURL& url); void LoadURL(const GURL& url);
bool CanGoBack(); bool CanGoBack();

View file

@ -14,7 +14,14 @@ BrowserWindow::_init = ->
menu = app.getApplicationMenu() menu = app.getApplicationMenu()
@setMenu menu if menu? @setMenu menu if menu?
# Define getter for webContents.
@webContents = @getWebContents() @webContents = @getWebContents()
@__devToolsWebContents = null
@__defineGetter__ 'devToolsWebContents', ->
if @isDevToolsOpened()
@__devToolsWebContents ?= @getDevToolsWebContents()
else
@__devToolsWebContents = null
# Remember the window. # Remember the window.
id = BrowserWindow.windows.add this id = BrowserWindow.windows.add this
@ -73,5 +80,10 @@ BrowserWindow::stop = -> @webContents.stop()
BrowserWindow::getRoutingId = -> @webContents.getRoutingId() BrowserWindow::getRoutingId = -> @webContents.getRoutingId()
BrowserWindow::getProcessId = -> @webContents.getProcessId() BrowserWindow::getProcessId = -> @webContents.getProcessId()
BrowserWindow::isCrashed = -> @webContents.isCrashed() BrowserWindow::isCrashed = -> @webContents.isCrashed()
BrowserWindow::getDevTools = ->
processId: @devToolsWebContents.getProcessId()
routingId: @devToolsWebContents.getRoutingId()
BrowserWindow::executeJavaScriptInDevTools = (code) ->
@devToolsWebContents.executeJavaScript code
module.exports = BrowserWindow module.exports = BrowserWindow

View file

@ -229,11 +229,6 @@ void NativeWindow::InspectElement(int x, int y) {
agent->InspectElement(x, y); agent->InspectElement(x, y);
} }
void NativeWindow::ExecuteJavaScriptInDevTools(const std::string& script) {
GetDevToolsWebContents()->GetRenderViewHost()->ExecuteJavascriptInWebFrame(
string16(), base::UTF8ToUTF16(script));
}
void NativeWindow::FocusOnWebView() { void NativeWindow::FocusOnWebView() {
GetWebContents()->GetRenderViewHost()->Focus(); GetWebContents()->GetRenderViewHost()->Focus();
} }
@ -628,7 +623,8 @@ void NativeWindow::CallDevToolsFunction(const std::string& function_name,
} }
} }
} }
ExecuteJavaScriptInDevTools(function_name + "(" + params + ");"); GetDevToolsWebContents()->GetRenderViewHost()->ExecuteJavascriptInWebFrame(
string16(), base::UTF8ToUTF16(function_name + "(" + params + ");"));
} }
void NativeWindow::OnRendererMessage(const string16& channel, void NativeWindow::OnRendererMessage(const string16& channel,

View file

@ -136,7 +136,6 @@ class NativeWindow : public brightray::DefaultWebContentsDelegate,
virtual void CloseDevTools(); virtual void CloseDevTools();
virtual bool IsDevToolsOpened(); virtual bool IsDevToolsOpened();
virtual void InspectElement(int x, int y); virtual void InspectElement(int x, int y);
virtual void ExecuteJavaScriptInDevTools(const std::string& script);
virtual void FocusOnWebView(); virtual void FocusOnWebView();
virtual void BlurWebView(); virtual void BlurWebView();