| Left: | ||
| Right: |
| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-present eyeo GmbH | 3 * Copyright (C) 2006-present eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 43 | 43 |
| 44 StringBuffer Utils::StringBufferFromV8String(v8::Isolate* isolate, const v8::Loc al<v8::Value>& value) | 44 StringBuffer Utils::StringBufferFromV8String(v8::Isolate* isolate, const v8::Loc al<v8::Value>& value) |
| 45 { | 45 { |
| 46 v8::String::Utf8Value stringValue(isolate, value); | 46 v8::String::Utf8Value stringValue(isolate, value); |
| 47 if (stringValue.length()) | 47 if (stringValue.length()) |
| 48 return IFileSystem::IOBuffer(*stringValue, *stringValue + stringValue.length ()); | 48 return IFileSystem::IOBuffer(*stringValue, *stringValue + stringValue.length ()); |
| 49 else | 49 else |
| 50 return IFileSystem::IOBuffer(); | 50 return IFileSystem::IOBuffer(); |
| 51 } | 51 } |
| 52 | 52 |
| 53 v8::Local<v8::String> Utils::ToV8String(v8::Isolate* isolate, const std::string& str) | 53 v8::MaybeLocal<v8::String> Utils::ToV8String(v8::Isolate* isolate, const std::st ring& str) |
| 54 { | 54 { |
| 55 return v8::String::NewFromUtf8(isolate, str.c_str(), | 55 return v8::String::NewFromUtf8(isolate, str.c_str(), |
| 56 v8::String::NewStringType::kNormalString, str.length()); | 56 v8::NewStringType::kNormal, str.length()); |
| 57 } | 57 } |
| 58 | 58 |
| 59 v8::Local<v8::String> Utils::StringBufferToV8String(v8::Isolate* isolate, const StringBuffer& str) | 59 v8::MaybeLocal<v8::String> Utils::StringBufferToV8String(v8::Isolate* isolate, c onst StringBuffer& str) |
| 60 { | 60 { |
| 61 return v8::String::NewFromUtf8(isolate, | 61 return v8::String::NewFromUtf8(isolate, |
| 62 reinterpret_cast<const char*>(str.data()), | 62 reinterpret_cast<const char*>(str.data()), |
| 63 v8::String::NewStringType::kNormalString, str.size()); | 63 v8::NewStringType::kNormal, str.size()); |
| 64 } | 64 } |
| 65 | 65 |
| 66 void Utils::ThrowExceptionInJS(v8::Isolate* isolate, const std::string& str) | 66 void Utils::ThrowExceptionInJS(v8::Isolate* isolate, const std::string& str) |
| 67 { | 67 { |
| 68 isolate->ThrowException(Utils::ToV8String(isolate, str)); | 68 auto maybe = Utils::ToV8String(isolate, str); |
| 69 if (maybe.IsEmpty()) | |
| 70 { | |
| 71 isolate->ThrowException( | |
| 72 Utils::ToV8String(isolate, "Unknown Exception").ToLocalChecked()); | |
|
hub
2018/06/22 00:34:31
Failure throwing an exception. Not good. So at lea
sergei
2018/06/22 06:57:46
I'm not sure how it works. Can we create a couple
hub
2018/06/22 15:50:56
Right now, the gist is that if we can't obtain the
sergei
2018/07/05 08:39:00
But it can be changed later and it can start to re
| |
| 73 } | |
| 74 else | |
| 75 isolate->ThrowException(maybe.ToLocalChecked()); | |
| 69 } | 76 } |
| 70 | 77 |
| 71 #ifdef _WIN32 | 78 #ifdef _WIN32 |
| 72 std::wstring Utils::ToUtf16String(const std::string& str) | 79 std::wstring Utils::ToUtf16String(const std::string& str) |
| 73 { | 80 { |
| 74 size_t length = str.size(); | 81 size_t length = str.size(); |
| 75 if (length == 0) | 82 if (length == 0) |
| 76 return std::wstring(); | 83 return std::wstring(); |
| 77 | 84 |
| 78 DWORD utf16StringLength = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), length, NULL, 0); | 85 DWORD utf16StringLength = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), length, NULL, 0); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 115 if (FAILED(hr)) | 122 if (FAILED(hr)) |
| 116 { | 123 { |
| 117 throw std::runtime_error("CanonizeUrl failed\n"); | 124 throw std::runtime_error("CanonizeUrl failed\n"); |
| 118 } | 125 } |
| 119 } | 126 } |
| 120 return canonizedUrl; | 127 return canonizedUrl; |
| 121 | 128 |
| 122 } | 129 } |
| 123 #endif | 130 #endif |
| 124 | 131 |
| OLD | NEW |