202 lines
8.4 KiB
Diff
202 lines
8.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: deepak1556 <hop2deep@gmail.com>
|
|
Date: Thu, 20 Sep 2018 17:44:38 -0700
|
|
Subject: dcheck.patch
|
|
|
|
This disables some debug checks which currently fail when running the Electron
|
|
test suite. In general there should be sustained effort to have all debug checks
|
|
enabled. If you want to help, choose one of the diffs below and remove it. Then
|
|
build Electron (debug configuration) and make sure all tests pass on the CI
|
|
systems. Unfortunately the tests don't always cover the check failures, so it's
|
|
good to also run some non-trivial Electron app to verify.
|
|
|
|
Apart from getting rid of a whole diff, you may also be able to replace one diff
|
|
with another which enables at least some of the previously disabled checks. For
|
|
example, the checks might be disabled for a whole build target, but actually
|
|
only one or two specific checks fail. Then it's better to simply comment out the
|
|
failing checks and allow the rest of the target to have them enabled.
|
|
|
|
Please keep the following lists updated.
|
|
|
|
The ELECTRON_NO_DCHECK build flag disables debug checks universally.
|
|
This patch applies the flag to the following GN targets:
|
|
|
|
third_party/blink/renderer/core/loader:loader
|
|
url:url
|
|
|
|
These files have debug checks explicitly commented out:
|
|
|
|
base/memory/weak_ptr.cc
|
|
base/process/kill_win.cc
|
|
components/viz/service/display/program_binding.h
|
|
components/viz/service/display_embedder/server_shared_bitmap_manager.cc
|
|
content/browser/frame_host/navigation_controller_impl.cc
|
|
content/browser/frame_host/render_frame_host_impl.cc
|
|
content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
ppapi/host/ppapi_host.cc
|
|
third_party/blink/renderer/core/dom/node.cc
|
|
third_party/blink/renderer/platform/wtf/text/string_impl.cc
|
|
ui/base/clipboard/clipboard_win.cc
|
|
|
|
diff --git a/base/logging.h b/base/logging.h
|
|
index 08c1f0fc59672b2134c634e081f0c4df4d261b75..7a758ce3ef90145d2b68e07e17f00fc30cfb30a6 100644
|
|
--- a/base/logging.h
|
|
+++ b/base/logging.h
|
|
@@ -874,7 +874,7 @@ const LogSeverity LOG_DCHECK = LOG_FATAL;
|
|
|
|
#else // !(defined(_PREFAST_) && defined(OS_WIN))
|
|
|
|
-#if DCHECK_IS_ON()
|
|
+#if DCHECK_IS_ON() && !defined(ELECTRON_NO_DCHECK)
|
|
|
|
#define DCHECK(condition) \
|
|
LAZY_STREAM(LOG_STREAM(DCHECK), !ANALYZER_ASSUME_TRUE(condition)) \
|
|
diff --git a/base/process/process_metrics_win.cc b/base/process/process_metrics_win.cc
|
|
index 18ef58a725c3a87a30413a4676044533f1751c7c..239f319c8b4cf52c115acd6173a15978f6ff3386 100644
|
|
--- a/base/process/process_metrics_win.cc
|
|
+++ b/base/process/process_metrics_win.cc
|
|
@@ -153,10 +153,9 @@ bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const {
|
|
ProcessMetrics::ProcessMetrics(ProcessHandle process) {
|
|
if (process) {
|
|
HANDLE duplicate_handle = INVALID_HANDLE_VALUE;
|
|
- BOOL result = ::DuplicateHandle(::GetCurrentProcess(), process,
|
|
- ::GetCurrentProcess(), &duplicate_handle,
|
|
- PROCESS_QUERY_INFORMATION, FALSE, 0);
|
|
- DPCHECK(result);
|
|
+ ::DuplicateHandle(::GetCurrentProcess(), process,
|
|
+ ::GetCurrentProcess(), &duplicate_handle,
|
|
+ PROCESS_QUERY_INFORMATION, FALSE, 0);
|
|
process_.Set(duplicate_handle);
|
|
}
|
|
}
|
|
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
|
|
index d8aca9e2cbffdfd0bbb0bd67e8adfb53547132bb..86224ab7a3c5637422559da25bc8c1040a03e937 100644
|
|
--- a/content/browser/frame_host/navigation_controller_impl.cc
|
|
+++ b/content/browser/frame_host/navigation_controller_impl.cc
|
|
@@ -995,8 +995,10 @@ NavigationType NavigationControllerImpl::ClassifyNavigation(
|
|
return NAVIGATION_TYPE_NEW_SUBFRAME;
|
|
}
|
|
|
|
- // We only clear the session history when navigating to a new page.
|
|
- DCHECK(!params.history_list_was_cleared);
|
|
+ // Electron does its own book keeping of navigation entries and we
|
|
+ // expect content to not track any, by clearing history list for
|
|
+ // all navigations.
|
|
+ // DCHECK(!params.history_list_was_cleared);
|
|
|
|
if (rfh->GetParent()) {
|
|
// All manual subframes would be did_create_new_entry and handled above, so
|
|
@@ -1233,7 +1235,10 @@ void NavigationControllerImpl::RendererDidNavigateToNewPage(
|
|
new_entry->GetFavicon() = GetLastCommittedEntry()->GetFavicon();
|
|
}
|
|
|
|
- DCHECK(!params.history_list_was_cleared || !replace_entry);
|
|
+ // Electron does its own book keeping of navigation entries and we
|
|
+ // expect content to not track any, by clearing history list for
|
|
+ // all navigations.
|
|
+ // DCHECK(!params.history_list_was_cleared || !replace_entry);
|
|
// The browser requested to clear the session history when it initiated the
|
|
// navigation. Now we know that the renderer has updated its state accordingly
|
|
// and it is safe to also clear the browser side history.
|
|
diff --git a/ppapi/host/ppapi_host.cc b/ppapi/host/ppapi_host.cc
|
|
index 3f80e73535c8b4a2bcff08821e3585306f691c8b..bf40b94ad24c0621cbe093002c3355693219ebc4 100644
|
|
--- a/ppapi/host/ppapi_host.cc
|
|
+++ b/ppapi/host/ppapi_host.cc
|
|
@@ -238,7 +238,7 @@ void PpapiHost::OnHostMsgResourceCreated(
|
|
CreateResourceHost(params.pp_resource(), instance, nested_msg);
|
|
|
|
if (!resource_host.get()) {
|
|
- NOTREACHED();
|
|
+ // NOTREACHED();
|
|
return;
|
|
}
|
|
|
|
diff --git a/third_party/blink/renderer/core/dom/node.cc b/third_party/blink/renderer/core/dom/node.cc
|
|
index 5629f8170851f0b58069e2cd0c14ebe093d89d00..bc773ac9b1e462385dcbb8bef2fc4c2d7e6c7b06 100644
|
|
--- a/third_party/blink/renderer/core/dom/node.cc
|
|
+++ b/third_party/blink/renderer/core/dom/node.cc
|
|
@@ -2568,7 +2568,7 @@ StaticNodeList* Node::getDestinationInsertionPoints() {
|
|
|
|
HTMLSlotElement* Node::AssignedSlot() const {
|
|
// assignedSlot doesn't need to call updateDistribution().
|
|
- DCHECK(!IsPseudoElement());
|
|
+ // DCHECK(!IsPseudoElement());
|
|
if (ShadowRoot* root = V1ShadowRootOfParent())
|
|
return root->AssignedSlotFor(*this);
|
|
return nullptr;
|
|
diff --git a/third_party/blink/renderer/core/loader/BUILD.gn b/third_party/blink/renderer/core/loader/BUILD.gn
|
|
index 49b4ead3dc521796bf3c6a207a072ff5eeff1849..0083e5c8efb71cf2cb097944174dcad8eff1cc3e 100644
|
|
--- a/third_party/blink/renderer/core/loader/BUILD.gn
|
|
+++ b/third_party/blink/renderer/core/loader/BUILD.gn
|
|
@@ -135,4 +135,11 @@ blink_core_sources("loader") {
|
|
public_deps = [
|
|
"//third_party/blink/renderer/platform",
|
|
]
|
|
+
|
|
+ if (is_electron_build) {
|
|
+ if (!defined(defines)) {
|
|
+ defines = []
|
|
+ }
|
|
+ defines += [ "ELECTRON_NO_DCHECK" ]
|
|
+ }
|
|
}
|
|
diff --git a/third_party/blink/renderer/platform/wtf/text/string_impl.h b/third_party/blink/renderer/platform/wtf/text/string_impl.h
|
|
index 0e7c40b732ec283e006b2e3517c42e699d7e3102..7c513d95a586d8ac80e691aa89abaf49793e9a18 100644
|
|
--- a/third_party/blink/renderer/platform/wtf/text/string_impl.h
|
|
+++ b/third_party/blink/renderer/platform/wtf/text/string_impl.h
|
|
@@ -258,21 +258,21 @@ class WTF_EXPORT StringImpl {
|
|
}
|
|
|
|
ALWAYS_INLINE bool HasOneRef() const {
|
|
-#if DCHECK_IS_ON()
|
|
+#if 0
|
|
DCHECK(IsStatic() || verifier_.IsSafeToUse()) << AsciiForDebugging();
|
|
#endif
|
|
return ref_count_ == 1;
|
|
}
|
|
|
|
ALWAYS_INLINE void AddRef() const {
|
|
-#if DCHECK_IS_ON()
|
|
+#if 0
|
|
DCHECK(IsStatic() || verifier_.OnRef(ref_count_)) << AsciiForDebugging();
|
|
#endif
|
|
++ref_count_;
|
|
}
|
|
|
|
ALWAYS_INLINE void Release() const {
|
|
-#if DCHECK_IS_ON()
|
|
+#if 0
|
|
DCHECK(IsStatic() || verifier_.OnDeref(ref_count_))
|
|
<< AsciiForDebugging() << " " << CurrentThread();
|
|
#endif
|
|
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc
|
|
index e49dd8c81270cdd9794ddee11bad036c2f444af5..9e61c901cd2df168520b83a8522ca8c032f4c0ae 100644
|
|
--- a/ui/base/clipboard/clipboard_win.cc
|
|
+++ b/ui/base/clipboard/clipboard_win.cc
|
|
@@ -905,9 +905,9 @@ void ClipboardWin::WriteBitmapFromHandle(HBITMAP source_hbitmap,
|
|
}
|
|
|
|
void ClipboardWin::WriteToClipboard(unsigned int format, HANDLE handle) {
|
|
- DCHECK(clipboard_owner_->hwnd() != NULL);
|
|
+ // DCHECK(clipboard_owner_->hwnd() != NULL);
|
|
if (handle && !::SetClipboardData(format, handle)) {
|
|
- DCHECK(ERROR_CLIPBOARD_NOT_OPEN != GetLastError());
|
|
+ // DCHECK(ERROR_CLIPBOARD_NOT_OPEN != GetLastError());
|
|
FreeData(format, handle);
|
|
}
|
|
}
|
|
diff --git a/url/BUILD.gn b/url/BUILD.gn
|
|
index 57bbe16c15ea442963a53f89b009e2c99c7b090a..07725187c595784d9e5f49d45a8835da78144830 100644
|
|
--- a/url/BUILD.gn
|
|
+++ b/url/BUILD.gn
|
|
@@ -98,6 +98,10 @@ component("url") {
|
|
]
|
|
deps += [ "//third_party/icu" ]
|
|
}
|
|
+
|
|
+ if (is_electron_build) {
|
|
+ defines += [ "ELECTRON_NO_DCHECK" ]
|
|
+ }
|
|
}
|
|
|
|
if (is_android) {
|