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 |