![electron-roller[bot]](/assets/img/avatar_default.png)
* chore: bump chromium in DEPS to 134.0.6998.1
* chore: bump chromium in DEPS to 134.0.6998.5
* chore: bump chromium in DEPS to 134.0.6998.3
* chore: bump chromium to 134.0.6988.0 (main) (#45334)
* chore: bump chromium in DEPS to 134.0.6976.0
* chore: update mas_avoid_private_macos_api_usage.patch.patch
https://chromium-review.googlesource.com/c/chromium/src/+/6171046
process_info_mac.cc -> process_info_mac.mm
* chore: update build_do_not_depend_on_packed_resource_integrity.patch
https://chromium-review.googlesource.com/c/chromium/src/+/6196857
* chore: update feat_add_support_for_missing_dialog_features_to_shell_dialogs.patch
https://chromium-review.googlesource.com/c/chromium/src/+/6182296
https://chromium-review.googlesource.com/c/chromium/src/+/6183404
https://chromium-review.googlesource.com/c/chromium/src/+/6187853
A lot changed in the upstream implementation. There's a good chance I got
this wrong as threading has changed and moved some variables into globals.
* chore: remove build_remove_vr_directx_helpers_dependency.patch
https://chromium-review.googlesource.com/c/chromium/src/+/6186102
This landed upstream
* chore: e patches all
* chore: update net::CookieInclusionStatus::ExclusionReason enum
https://chromium-review.googlesource.com/c/chromium/src/+/6183252
https://chromium-review.googlesource.com/c/chromium/src/+/6185544
* chore: update content::WebAuthenticationDelegate import
https://chromium-review.googlesource.com/c/chromium/src/+/6189769
* Revert "chore: disable focus handling test due to win32/ia32 regression"
This reverts commit 1a57ba5d59848d0c841ddda59c9299a4f957452a.
* chore: bump chromium in DEPS to 134.0.6978.0
* chore: bump chromium in DEPS to 134.0.6980.0
* chore: bump chromium in DEPS to 134.0.6982.0
* chore: bump chromium in DEPS to 134.0.6984.0
* 6196281: Allow direct embedder IsPdfInternalPluginAllowedOrigin() interaction
https://chromium-review.googlesource.com/c/chromium/src/+/6196281
* 6196283: Delete PdfInternalPluginDelegate
https://chromium-review.googlesource.com/c/chromium/src/+/6196283
* chore: update patches
* chore: bump chromium in DEPS to 134.0.6986.0
* chore: update patches
* 6205762: Support option to use window.showSaveFilePicker() in PDF attachment code
https://chromium-review.googlesource.com/c/chromium/src/+/6205762
See also:
* https://issues.chromium.org/issues/373852607
* 5939153: [PDF] Add PdfUseShowSaveFilePicker feature flag | https://chromium-review.googlesource.com/c/chromium/src/+/5939153
* 6205761: Delete spurious Ink-specific code in pdf_viewer.ts | https://chromium-review.googlesource.com/c/chromium/src/+/6205761
* 6209609: Remove WebVector: Automatic changes
https://chromium-review.googlesource.com/c/chromium/src/+/6209609
* 6205488: UI: make QT5 optional
https://chromium-review.googlesource.com/c/chromium/src/+/6205488
* 6178281: Rename pak files from branding strings
https://chromium-review.googlesource.com/c/chromium/src/+/6178281
* fixup! 6209609: Remove WebVector: Automatic changes https://chromium-review.googlesource.com/c/chromium/src/+/6209609
* 6193249: Switch from safe_browsing::EventResult to enterprise_connectors:EventResult
https://chromium-review.googlesource.com/c/chromium/src/+/6193249
* 6197457: Remove Pause/ResumeReadingBodyFromNet IPCs
https://chromium-review.googlesource.com/c/chromium/src/+/6197457
* 6191230: Record total time spent on a picture in picture window
https://chromium-review.googlesource.com/c/chromium/src/+/6191230
* chore: bump chromium in DEPS to 134.0.6988.0
* chore: update patches
* 6215440: Remove base/ranges/.
https://chromium-review.googlesource.com/c/chromium/src/+/6215440
* Disable unsafe buffers error
Not sure what changed, but we're now seeing unsafe buffer errors in Chromium code, at least when using reclient. Will update this comment if we find out the cause.
* 6187853: SelectFileDialogLinuxPortal: Use dbus_xdg::Request and DbusType
https://chromium-review.googlesource.com/c/chromium/src/+/6187853
* fix `setDisplayMediaRequestHandler` test
Given how this test is written, I would expect this assertion to be false. It seems the oppositue was true before, but that was also acknowledged to be suprising. Seems that the underlying implementation is now fixed and works as expected.
* fixup! 6187853: SelectFileDialogLinuxPortal: Use dbus_xdg::Request and DbusType https://chromium-review.googlesource.com/c/chromium/src/+/6187853
* chore: udpate patches
* Multiple PRS: https://chromium-review.googlesource.com/c/chromium/src/+/6185544 | https://chromium-review.googlesource.com/c/chromium/src/+/6183252
* fix: cast enum class to numeric type
* fix: add 1 to MAX_EXCLUSION_REASON because enum values are zero-based, and we want the total count of reasons.
* Reapply "chore: disable focus handling test due to win32/ia32 regression"
This reverts commit 760b1a519b5919b483c66bc3096eeefb4d7011f4.
* refactor: use ExclusionReasonBitset::kValueCount for size
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Samuel Maddock <smaddock@slack-corp.com>
Co-authored-by: clavin <clavin@electronjs.org>
Co-authored-by: alice <alice@makenotion.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
(cherry picked from commit 213165a467
)
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
114 lines
4.2 KiB
C++
114 lines
4.2 KiB
C++
// Copyright (c) 2014 GitHub, Inc.
|
|
// Use of this source code is governed by the MIT license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef ELECTRON_SHELL_RENDERER_API_ELECTRON_API_SPELL_CHECK_CLIENT_H_
|
|
#define ELECTRON_SHELL_RENDERER_API_ELECTRON_API_SPELL_CHECK_CLIENT_H_
|
|
|
|
#include <memory>
|
|
#include <set>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "base/memory/raw_ptr.h"
|
|
#include "base/memory/weak_ptr.h"
|
|
#include "components/spellcheck/renderer/spellcheck_worditerator.h"
|
|
#include "third_party/blink/public/platform/web_spell_check_panel_host_client.h"
|
|
#include "third_party/blink/public/web/web_text_check_client.h"
|
|
#include "v8/include/v8-context.h"
|
|
#include "v8/include/v8-forward.h"
|
|
#include "v8/include/v8-local-handle.h"
|
|
|
|
namespace blink {
|
|
struct WebTextCheckingResult;
|
|
class WebTextCheckingCompletion;
|
|
} // namespace blink
|
|
|
|
namespace electron::api {
|
|
|
|
class SpellCheckClient : public blink::WebSpellCheckPanelHostClient,
|
|
public blink::WebTextCheckClient {
|
|
public:
|
|
SpellCheckClient(const std::string& language,
|
|
v8::Isolate* isolate,
|
|
v8::Local<v8::Object> provider);
|
|
~SpellCheckClient() override;
|
|
|
|
// disable copy
|
|
SpellCheckClient(const SpellCheckClient&) = delete;
|
|
SpellCheckClient& operator=(const SpellCheckClient&) = delete;
|
|
|
|
private:
|
|
class SpellcheckRequest;
|
|
// blink::WebTextCheckClient:
|
|
void RequestCheckingOfText(const blink::WebString& textToCheck,
|
|
std::unique_ptr<blink::WebTextCheckingCompletion>
|
|
completionCallback) override;
|
|
bool IsSpellCheckingEnabled() const override;
|
|
|
|
// blink::WebSpellCheckPanelHostClient:
|
|
void ShowSpellingUI(bool show) override {}
|
|
bool IsShowingSpellingUI() override;
|
|
void UpdateSpellingUIWithMisspelledWord(
|
|
const blink::WebString& word) override {}
|
|
|
|
struct SpellCheckScope {
|
|
v8::HandleScope handle_scope_;
|
|
v8::Context::Scope context_scope_;
|
|
v8::Local<v8::Object> provider_;
|
|
v8::Local<v8::Function> spell_check_;
|
|
|
|
explicit SpellCheckScope(const SpellCheckClient& client);
|
|
~SpellCheckScope();
|
|
};
|
|
|
|
// Run through the word iterator and send out requests
|
|
// to the JS API for checking spellings of words in the current
|
|
// request.
|
|
void SpellCheckText();
|
|
|
|
// Call JavaScript to check spelling a word.
|
|
// The javascript function will callback OnSpellCheckDone
|
|
// with the results of all the misspelled words.
|
|
void SpellCheckWords(const SpellCheckScope& scope,
|
|
const std::set<std::u16string>& words);
|
|
|
|
// Returns whether or not the given word is a contraction of valid words
|
|
// (e.g. "word:word").
|
|
// Output variable contraction_words will contain individual
|
|
// words in the contraction.
|
|
bool IsContraction(const SpellCheckScope& scope,
|
|
const std::u16string& contraction,
|
|
std::vector<std::u16string>* contraction_words);
|
|
|
|
// Callback for the JS API which returns the list of misspelled words.
|
|
void OnSpellCheckDone(const std::vector<std::u16string>& misspelled_words);
|
|
|
|
// Represents character attributes used for filtering out characters which
|
|
// are not supported by this SpellCheck object.
|
|
SpellcheckCharAttribute character_attributes_;
|
|
|
|
// Represents word iterators used in this spellchecker. The |text_iterator_|
|
|
// splits text provided by Blink into words, contractions, or concatenated
|
|
// words. The |contraction_iterator_| splits a concatenated word extracted by
|
|
// |text_iterator_| into word components so we can treat a concatenated word
|
|
// consisting only of correct words as a correct word.
|
|
SpellcheckWordIterator text_iterator_;
|
|
SpellcheckWordIterator contraction_iterator_;
|
|
|
|
// The parameters of a pending background-spellchecking request.
|
|
// (When Blink sends two or more requests, we cancel the previous
|
|
// requests so we do not have to use vectors.)
|
|
std::unique_ptr<SpellcheckRequest> pending_request_param_;
|
|
|
|
raw_ptr<v8::Isolate> isolate_;
|
|
v8::Global<v8::Context> context_;
|
|
v8::Global<v8::Object> provider_;
|
|
v8::Global<v8::Function> spell_check_;
|
|
|
|
base::WeakPtrFactory<SpellCheckClient> weak_factory_{this};
|
|
};
|
|
|
|
} // namespace electron::api
|
|
|
|
#endif // ELECTRON_SHELL_RENDERER_API_ELECTRON_API_SPELL_CHECK_CLIENT_H_
|