Skip to content
This repository has been archived by the owner on Sep 2, 2021. It is now read-only.

Commit

Permalink
Merge pull request #674 from jha-g/jha-g/merging_master_for_patch_rel…
Browse files Browse the repository at this point in the history
…ease

Cherry picking changes from master for patch release
  • Loading branch information
shubhsnov authored Nov 21, 2019
2 parents e31c5f5 + c662e97 commit 257e6bc
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 10 deletions.
4 changes: 1 addition & 3 deletions appshell/appshell_extension_handler.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ class AppShellExtensionHandler : public CefV8Handler {
CefString& exception) {

// The only messages that are handled here is getElapsedMilliseconds(),
// GetCurrentLanguage(), GetApplicationSupportDirectory(), and GetRemoteDebuggingPort().
// GetCurrentLanguage(), and GetApplicationSupportDirectory().
// All other messages are passed to the browser process.
if (name == "GetElapsedMilliseconds") {
retval = CefV8Value::CreateDouble(GetElapsedMilliseconds());
Expand All @@ -170,8 +170,6 @@ class AppShellExtensionHandler : public CefV8Handler {
retval = CefV8Value::CreateString(AppGetSupportDirectory());
} else if (name == "GetUserDocumentsDirectory") {
retval = CefV8Value::CreateString(AppGetDocumentsDirectory());
} else if (name == "GetRemoteDebuggingPort") {
retval = CefV8Value::CreateInt(REMOTE_DEBUGGING_PORT);
} else {
// Pass all messages to the browser process. Look in appshell_extensions.cpp for implementation.
CefRefPtr<CefBrowser> browser = CefV8Context::GetCurrentContext()->GetBrowser();
Expand Down
20 changes: 18 additions & 2 deletions appshell/appshell_extensions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@
#include "update.h"

extern std::vector<CefString> gDroppedFiles;
extern int g_remote_debugging_port;
extern std::string g_get_remote_debugging_port_error;

namespace appshell_extensions {

Expand All @@ -56,6 +58,7 @@ class ProcessMessageDelegate : public ClientHandler::ProcessMessageDelegate {
CefRefPtr<CefListValue> argList = message->GetArgumentList();
int32 callbackId = -1;
int32 error = NO_ERROR;
std::string errInfo;
CefRefPtr<CefProcessMessage> response =
CefProcessMessage::Create("invokeCallback");
CefRefPtr<CefListValue> responseArgs = response->GetArgumentList();
Expand Down Expand Up @@ -842,6 +845,14 @@ class ProcessMessageDelegate : public ClientHandler::ProcessMessageDelegate {
uberDict->SetList(0, dirContents);
uberDict->SetList(1, allStats);
responseArgs->SetList(2, uberDict);
} else if (message_name == "GetRemoteDebuggingPort") {
if (g_get_remote_debugging_port_error.empty() && g_remote_debugging_port > 0) {
responseArgs->SetInt(2, g_remote_debugging_port);
}
else {
responseArgs->SetNull(2);
errInfo = g_get_remote_debugging_port_error;
}
}

else {
Expand All @@ -850,8 +861,13 @@ class ProcessMessageDelegate : public ClientHandler::ProcessMessageDelegate {
}

if (callbackId != -1) {
responseArgs->SetInt(1, error);

if (errInfo.empty()) {
responseArgs->SetInt(1, error);
}
else {
responseArgs->SetString(1, errInfo);
}

// Send response
browser->SendProcessMessage(PID_RENDERER, response);
}
Expand Down
4 changes: 2 additions & 2 deletions appshell/appshell_extensions.js
Original file line number Diff line number Diff line change
Expand Up @@ -640,8 +640,8 @@ if (!brackets) {
* @return int. The remote debugging port used by the appshell.
*/
native function GetRemoteDebuggingPort();
appshell.app.getRemoteDebuggingPort = function () {
return GetRemoteDebuggingPort();
appshell.app.getRemoteDebuggingPort = function (callback) {
GetRemoteDebuggingPort(callback || _dummyCallback);
};


Expand Down
24 changes: 23 additions & 1 deletion appshell/cefclient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include <cstdlib>
#include <sstream>
#include <string>
#include <errno.h>
#include "include/cef_app.h"
#include "include/cef_browser.h"
#include "include/cef_command_line.h"
Expand All @@ -19,6 +20,8 @@
#include "config.h"

CefRefPtr<ClientHandler> g_handler;
int g_remote_debugging_port = 0;
std::string g_get_remote_debugging_port_error;

#ifdef OS_WIN
bool g_force_enable_acc = false;
Expand Down Expand Up @@ -95,7 +98,26 @@ void AppGetSettings(CefSettings& settings, CefRefPtr<CefCommandLine> command_lin
command_line->GetSwitchValue(client::switches::kJavascriptFlags);

// Enable dev tools
settings.remote_debugging_port = REMOTE_DEBUGGING_PORT;
CefString debugger_port = command_line->GetSwitchValue("remote-debugging-port");
if (!debugger_port.empty()) {
g_get_remote_debugging_port_error = debugger_port.ToString();
long port = strtol(g_get_remote_debugging_port_error.c_str(), NULL, 10);
if (errno == ERANGE) {
errno = port = 0;
}
static const long max_port_num = 65535;
static const long max_reserved_port_num = 1023;
if (port > max_reserved_port_num && port < max_port_num) {
g_remote_debugging_port = static_cast<int>(port);
settings.remote_debugging_port = g_remote_debugging_port;
g_get_remote_debugging_port_error.clear();
}
else {
// Setting debugging port to highest number will disable remote debugging
// As setting.remote_debugging_port has higher priority compared to command line option
settings.remote_debugging_port = max_port_num;
}
}

std::wstring versionStr = appshell::AppGetProductVersionString();

Expand Down
2 changes: 0 additions & 2 deletions appshell/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,6 @@

#endif

#define REMOTE_DEBUGGING_PORT 9234

// Comment out this line to enable OS themed drawing
#define DARK_UI
#define DARK_AERO_GLASS
Expand Down

0 comments on commit 257e6bc

Please sign in to comment.