electron/patches/common/chromium/dcheck.patch
Jeremy Apthorp 76c5f5cc8a
build: move libcc patches to electron repo (#14104)
In the GN build, libchromiumcontent is no longer a distinct library, but
merely a container for a set of scripts and patches. Maintaining those
patches in a separate repository is tedious and error-prone, so merge
them into the main repo.

Once this is merged and GN is the default way to build Electron, the
libchromiumcontent repository can be archived.
2018-09-13 22:02:16 -07:00

272 lines
11 KiB
Diff

diff --git a/base/logging.h b/base/logging.h
index 582fb89868cd..24d3e82232b6 100644
--- a/base/logging.h
+++ b/base/logging.h
@@ -850,7 +850,7 @@ const LogSeverity LOG_DCHECK = LOG_INFO;
#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/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
index 8879651e6da7..33fe8948a063 100644
--- a/base/memory/weak_ptr.cc
+++ b/base/memory/weak_ptr.cc
@@ -23,8 +23,8 @@ void WeakReference::Flag::Invalidate() {
}
bool WeakReference::Flag::IsValid() const {
- DCHECK(sequence_checker_.CalledOnValidSequence())
- << "WeakPtrs must be checked on the same sequenced thread.";
+ // DCHECK(sequence_checker_.CalledOnValidSequence())
+ // << "WeakPtrs must be checked on the same sequenced thread.";
return is_valid_;
}
diff --git a/base/process/kill_win.cc b/base/process/kill_win.cc
index 6a0038e2c00d..dd00dfb3e5d0 100644
--- a/base/process/kill_win.cc
+++ b/base/process/kill_win.cc
@@ -45,7 +45,7 @@ TerminationStatus GetTerminationStatus(ProcessHandle handle, int* exit_code) {
DWORD tmp_exit_code = 0;
if (!::GetExitCodeProcess(handle, &tmp_exit_code)) {
- DPLOG(FATAL) << "GetExitCodeProcess() failed";
+ // DPLOG(FATAL) << "GetExitCodeProcess() failed";
// This really is a random number. We haven't received any
// information about the exit code, presumably because this
diff --git a/components/viz/service/display/program_binding.h b/components/viz/service/display/program_binding.h
index 70f1ff97b1ac..d1abd804e988 100644
--- a/components/viz/service/display/program_binding.h
+++ b/components/viz/service/display/program_binding.h
@@ -416,7 +416,7 @@ class VIZ_SERVICE_EXPORT Program : public ProgramBindingBase {
if (!ProgramBindingBase::Init(context_provider->ContextGL(),
vertex_shader_.GetShaderString(),
fragment_shader_.GetShaderString())) {
- DCHECK(IsContextLost(context_provider->ContextGL()));
+ // DCHECK(IsContextLost(context_provider->ContextGL()));
return;
}
@@ -428,7 +428,7 @@ class VIZ_SERVICE_EXPORT Program : public ProgramBindingBase {
// Link after binding uniforms
if (!Link(context_provider->ContextGL())) {
- DCHECK(IsContextLost(context_provider->ContextGL()));
+ // DCHECK(IsContextLost(context_provider->ContextGL()));
return;
}
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
index ff1d3fcb6eba..ad6578f645d4 100644
--- a/content/browser/frame_host/navigation_controller_impl.cc
+++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -1079,8 +1079,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
@@ -1301,7 +1303,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/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 346765edaef9..a30e87bfcda6 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -2072,8 +2073,10 @@ void RenderFrameHostImpl::AllowBindings(int bindings_flags) {
}
enabled_bindings_ |= bindings_flags;
- if (GetParent())
- DCHECK_EQ(GetParent()->GetEnabledBindings(), GetEnabledBindings());
+ // WebUI in sub frames require binding policy while the parent does not,
+ // Fix this when we use OOPIF in Electron.
+ // if (GetParent())
+ // DCHECK_EQ(GetParent()->GetEnabledBindings(), GetEnabledBindings());
if (render_frame_created_) {
if (!frame_bindings_control_)
diff --git a/content/browser/renderer_host/render_widget_host_view_cocoa.mm b/content/browser/renderer_host/render_widget_host_view_cocoa.mm
index 8ee84cdafbde..c7ad6fa8c75f 100644
--- a/content/browser/renderer_host/render_widget_host_view_cocoa.mm
+++ b/content/browser/renderer_host/render_widget_host_view_cocoa.mm
@@ -618,8 +618,8 @@ void ExtractUnderlines(NSAttributedString* string,
if (EventIsReservedBySystem(theEvent))
return;
- DCHECK(eventType != NSKeyDown ||
- !equiv == !(modifierFlags & NSCommandKeyMask));
+ // DCHECK(eventType != NSKeyDown ||
+ // !equiv == !(modifierFlags & NSCommandKeyMask));
if (eventType == NSFlagsChanged) {
// Ignore NSFlagsChanged events from the NumLock and Fn keys as
diff --git a/ppapi/host/ppapi_host.cc b/ppapi/host/ppapi_host.cc
index f3c68fab3de6..b8609daf3ef9 100644
--- a/ppapi/host/ppapi_host.cc
+++ b/ppapi/host/ppapi_host.cc
@@ -240,7 +240,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/loader/BUILD.gn b/third_party/blink/renderer/core/loader/BUILD.gn
index 82f6e8bc9d33..ccad95d61a4a 100644
--- a/third_party/blink/renderer/core/loader/BUILD.gn
+++ b/third_party/blink/renderer/core/loader/BUILD.gn
@@ -129,4 +129,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/core/dom/node.cc b/third_party/blink/renderer/core/dom/node.cc
index 922a2561bcef..e31fa34f98ea 100644
--- a/third_party/blink/renderer/core/dom/node.cc
+++ b/third_party/blink/renderer/core/dom/node.cc
@@ -2435,7 +2435,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/platform/wtf/text/string_impl.h b/third_party/blink/renderer/platform/wtf/text/string_impl.h
index 158d81ca9ba2..1b6aafecadef 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/url/BUILD.gn b/url/BUILD.gn
index 82eb115ae666..b4806804cdbf 100644
--- a/url/BUILD.gn
+++ b/url/BUILD.gn
@@ -96,6 +96,10 @@ component("url") {
]
deps += [ "//third_party/icu" ]
}
+
+ if (is_electron_build) {
+ defines += [ "ELECTRON_NO_DCHECK" ]
+ }
}
if (is_android) {
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc
index 674b0e9a909c..a1bff6e40f56 100644
--- a/ui/base/clipboard/clipboard_win.cc
+++ b/ui/base/clipboard/clipboard_win.cc
@@ -886,9 +886,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/third_party/WebKit/Source/core/animation/ElementAnimations.cpp b/third_party/WebKit/Source/core/animation/ElementAnimations.cpp
index 60b8123cd818..dc719dd31dbf 100644
--- a/third_party/WebKit/Source/core/animation/ElementAnimations.cpp
+++ b/third_party/WebKit/Source/core/animation/ElementAnimations.cpp
@@ -108,7 +108,7 @@ void ElementAnimations::UpdateBaseComputedStyle(
base_computed_style_ = nullptr;
return;
}
-#if DCHECK_IS_ON()
+#if 0
if (base_computed_style_ && computed_style)
DCHECK(*base_computed_style_ == *computed_style);
#endif
diff --git a/base/process/process_metrics_win.cc b/base/process/process_metrics_win.cc
index faabdbf63a2a..ba56e4cd994c 100644
--- a/base/process/process_metrics_win.cc
+++ b/base/process/process_metrics_win.cc
@@ -179,10 +179,9 @@ bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const {
ProcessMetrics::ProcessMetrics(ProcessHandle process) : last_system_time_(0) {
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/components/viz/service/display_embedder/server_shared_bitmap_manager.cc b/components/viz/service/display_embedder/server_shared_bitmap_manager.cc
index 9477a5aa45f9..895425c8c6cc 100644
--- a/components/viz/service/display_embedder/server_shared_bitmap_manager.cc
+++ b/components/viz/service/display_embedder/server_shared_bitmap_manager.cc
@@ -69,7 +69,9 @@ base::LazyInstance<ServerSharedBitmapManager>::DestructorAtExit
ServerSharedBitmapManager::ServerSharedBitmapManager() = default;
ServerSharedBitmapManager::~ServerSharedBitmapManager() {
- DCHECK(handle_map_.empty());
+ // FIXME(alexeykuzmin): Gets constantly triggered on Windows CI.
+ // Backporting https://chromium-review.googlesource.com/802574 should help.
+ // DCHECK(handle_map_.empty());
}
ServerSharedBitmapManager* ServerSharedBitmapManager::current() {