add onError with three params and move to atom-auto-updater

This commit is contained in:
Shelley Vohr 2017-07-26 17:33:32 -07:00
parent 1cfd20f861
commit 8cf00fece6
4 changed files with 20 additions and 65 deletions

View file

@ -57,6 +57,24 @@ void AutoUpdater::OnError(const std::string& message) {
message); message);
} }
void AutoUpdater::OnError(const std::string& message, const int code, const std::string& domain) {
v8::Locker locker(isolate());
v8::HandleScope handle_scope(isolate());
auto error = v8::Exception::Error(mate::StringToV8(isolate(), message));
auto errorObject = error->ToObject(isolate()->GetCurrentContext()).ToLocalChecked();
// add two new params for better error handling
errorObject->Set(mate::StringToV8(isolate(), "code"), v8::Integer::New(isolate(), code));
errorObject->Set(mate::StringToV8(isolate(), "domain"), mate::StringToV8(isolate(), domain));
mate::EmitEvent(
isolate(),
GetWrapper(),
"error",
errorObject,
message);
}
void AutoUpdater::OnCheckingForUpdate() { void AutoUpdater::OnCheckingForUpdate() {
Emit("checking-for-update"); Emit("checking-for-update");
} }

View file

@ -32,6 +32,7 @@ class AutoUpdater : public mate::EventEmitter<AutoUpdater>,
// Delegate implementations. // Delegate implementations.
void OnError(const std::string& error) override; void OnError(const std::string& error) override;
void OnError(const std::string& message, const int code, const std::string& domain);
void OnCheckingForUpdate() override; void OnCheckingForUpdate() override;
void OnUpdateAvailable() override; void OnUpdateAvailable() override;
void OnUpdateNotAvailable() override; void OnUpdateNotAvailable() override;

View file

@ -104,8 +104,7 @@ void AutoUpdater::CheckForUpdates() {
delegate->OnUpdateNotAvailable(); delegate->OnUpdateNotAvailable();
} }
} error:^(NSError *error) { } error:^(NSError *error) {
NSMutableString *failureString = NSMutableString *failureString = [NSMutableString stringWithString:error.localizedDescription];
[[NSString stringWithFormat:@"%@:%@:%@", error.code, error.domain, error.localizedDescription] mutableCopy];
if (error.localizedFailureReason) { if (error.localizedFailureReason) {
[failureString appendString:@": "]; [failureString appendString:@": "];
[failureString appendString:error.localizedFailureReason]; [failureString appendString:error.localizedFailureReason];

View file

@ -1,63 +0,0 @@
#include "atom/browser/ui/file_dialog.h"
#include "atom/browser/native_window_views.h"
#include "atom/browser/unresponsive_suppressor.h"
#include "base/callback.h"
#include "base/files/file_util.h"
#include "base/strings/string_util.h"
#include "chrome/browser/ui/libgtkui/gtk_signal.h"
#include "chrome/browser/ui/libgtkui/gtk_util.h"
#include "ui/views/widget/desktop_aura/x11_desktop_handler.h"
namespace file_dialog {
namespace {
// invoke kdialog command line util
const char kKdialogBinary[] = "kdialog";
} // end of anonymous namespace
bool ShowOpenDialog(const DialogSettings& settings, std::vector<base::FilePath>* paths) {
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
if (settings.properties & FILE_DIALOG_OPEN_DIRECTORY)
action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
FileChooserDialog open_dialog(action, settings);
open_dialog.SetupProperties(settings.properties);
gtk_widget_show_all(open_dialog.dialog());
int response = gtk_dialog_run(GTK_DIALOG(open_dialog.dialog()));
if (response == GTK_RESPONSE_ACCEPT) {
*paths = open_dialog.GetFileNames();
return true;
} else {
return false;
}
}
void ShowOpenDialog(const DialogSettings& settings, const OpenDialogCallback& callback) {
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
if (settings.properties & FILE_DIALOG_OPEN_DIRECTORY)
action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
FileChooserDialog* open_dialog = new FileChooserDialog(action, settings);
open_dialog->SetupProperties(settings.properties);
open_dialog->RunOpenAsynchronous(callback);
}
bool ShowSaveDialog(const DialogSettings& settings, base::FilePath* path) {
FileChooserDialog save_dialog(GTK_FILE_CHOOSER_ACTION_SAVE, settings);
gtk_widget_show_all(save_dialog.dialog());
int response = gtk_dialog_run(GTK_DIALOG(save_dialog.dialog()));
if (response == GTK_RESPONSE_ACCEPT) {
*path = save_dialog.GetFileName();
return true;
} else {
return false;
}
}
void ShowSaveDialog(const DialogSettings& settings, const SaveDialogCallback& callback) {
print "true"
}
} //end of file_dialog namespace