Issue metadata
Sign in to add a comment
|
My manually-built Chromium crashes when I click on "View site information"
Reported by
xftroxgpx@gmail.com,
Apr 6 2017
|
||||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3064.0 Safari/537.36 Steps to reproduce the problem: (this only happens with my manually built chromium, so you cannot reproduce this with chromium binaries from [1], but I did want to be able to track this issue, in case I find a fix, hence why creating issue here; might find something helpful) Steps: 1. chro --user-data-dir=/tmp/$RANDOM (this means no browser extensions loaded) 2. load a website: youtube.com 3. click on the green Secure lock icon which has the tooltip of "View site information" [1] https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F$REVISION%2Fchrome-linux.zip?alt=media What is the expected behavior? Browser shows the "View site information" popup and does not crash. What went wrong? Entire browser closed/crashed. [11880:11880:0406/193415.460253:ERROR:permission_context_base.cc(285)] !! perm=Geolocation! [11880:11880:0406/193415.460350:ERROR:permission_context_base.cc(285)] !! perm=VideoCapture! [11880:11880:0406/193415.460421:ERROR:permission_context_base.cc(285)] !! perm=AudioCapture! [11880:11880:0406/193415.460483:ERROR:permission_context_base.cc(285)] !! perm=Notifications! Received signal 11 SEGV_MAPERR 000000000010 #0 0x557892d5d23c base::debug::StackTrace::StackTrace() #1 0x557892d5cda1 base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x7fba7120ffe0 <unknown> #3 0x557892a58f3d PermissionContextBase::IsPermissionKillSwitchOn() #4 0x557892a58d25 PermissionContextBase::GetPermissionStatus() #5 0x557892a5c1dd PermissionManager::GetPermissionStatusHelper() #6 0x557892a5c0d7 PermissionManager::GetPermissionStatus() #7 0x5578949b4acb PageInfo::PresentSitePermissions() #8 0x5578949b2be1 PageInfo::PageInfo() #9 0x5578949389a2 PageInfoPopupView::PageInfoPopupView() #10 0x557894938506 PageInfoPopupView::ShowPopup() #11 0x557894826c26 BrowserView::ShowPageInfo() #12 0x557894788f2d chrome::ShowPageInfo() #13 0x557894838e25 LocationIconView::OnActivate() #14 0x557894838c0e LocationIconView::OnMouseReleased() #15 0x55789400bd31 views::InkDropHostView::OnMouseEvent() #16 0x5578937125c2 ui::EventDispatcher::ProcessEvent() #17 0x5578937123e9 ui::EventDispatcherDelegate::DispatchEvent() #18 0x557893ff8969 views::internal::RootView::OnMouseReleased() #19 0x557893fc8177 views::Widget::OnMouseEvent() #20 0x5578937125c2 ui::EventDispatcher::ProcessEvent() #21 0x5578937123e9 ui::EventDispatcherDelegate::DispatchEvent() #22 0x557895e034ae ui::EventProcessor::OnEventFromSource() #23 0x557895e0374b ui::EventSource::SendEventToSink() #24 0x557893fd9e88 views::DesktopWindowTreeHostX11::DispatchMouseEvent() #25 0x557893fdb05d views::DesktopWindowTreeHostX11::DispatchEvent() #26 0x557893fdb420 views::DesktopWindowTreeHostX11::DispatchEvent() #27 0x557893707f33 ui::PlatformEventSource::DispatchEvent() #28 0x557893747c80 ui::X11EventSource::DispatchXEvents() #29 0x557895e0c30c ui::(anonymous namespace)::XSourceDispatch() #30 0x7fba7068b45a g_main_context_dispatch #31 0x7fba7068b810 <unknown> #32 0x7fba7068b8bc g_main_context_iteration #33 0x557892d7df85 base::MessagePumpGlib::Run() #34 0x557892d7b8de base::MessageLoop::RunHandler() #35 0x557892d9f5d8 base::RunLoop::Run() #36 0x557892c6b005 ChromeBrowserMainParts::MainMessageLoopRun() #37 0x557891a48244 content::BrowserMainLoop::RunMainMessageLoopParts() #38 0x557891a4ad02 content::BrowserMainRunnerImpl::Run() #39 0x557891a4403c content::BrowserMain() #40 0x557892a2c255 content::ContentMainRunnerImpl::Run() #41 0x557893bac197 service_manager::Main() #42 0x557892a2b234 content::ContentMain() #43 0x55789160af81 ChromeMain #44 0x7fba68dcb511 __libc_start_main #45 0x55789160adfa _start r8: 0000000000000000 r9: 00007ffdfb630320 r10: 00002ab22d87c700 r11: 0000000000000000 r12: 00007ffdfb630a20 r13: 0000000000000000 r14: 00007ffdfb630768 r15: 00007ffdfb630aa0 di: 00002ab22b49d027 si: 0000000000000000 bp: 00007ffdfb630950 bx: 0000000000000000 dx: 00007fba696e5ca0 ax: 00007ffdfb630768 cx: 3d6d726570202121 sp: 00007ffdfb630760 ip: 0000557892a58f3d efl: 0000000000010206 cgf: 002b000000000033 erf: 0000000000000004 trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000010 [end of stack trace] Calling _exit(1). Core file will not be generated. Crashed report ID: no How much crashed? Whole browser Is it a problem with a plugin? N/A Did this work before? Yes no idea Chrome version: 59.0.3064.0 Channel: n/a OS Version: Flash Version: applied small patch to LOG which perm is accessed in IsPermissionKillSwitchOn, so I can see it before the crash if necessary to know, "chro" eventually calls this chromium-launcher: https://github.com/xftroxgpx/chromium-launcher
,
Apr 6 2017
,
Apr 6 2017
The actual way that I'm building chromium on ArchLinux may seem a little off, but here it is: https://github.com/xftroxgpx/a3/tree/02d3ea99963338546376cfd28ac077cc170a3aa9/system/Z575/OSes/3archlinux/on_baremetal/filesystem_now/archlinux/home/xftroxgpx/build/1packages/chro/4_chromium-dev-git I don't expect anyone to help me, because of the amount of patches that I'm applying on top of it - which in all honesty may be causing this very issue and I just don't know it, yet. So, feel free to ignore this. Meanwhile I'll try to figure it out.
,
Apr 6 2017
,
Apr 7 2017
,
Apr 7 2017
I'm currently recompiling, I had to export a new function that would flush the LOG(ERROR) << calls, because I think I'm not seeing all the log lines due to the crash, unless flushing after each line. Compiling takes like 7 hours, for me, see you soon :D
,
Apr 7 2017
The output with the above patch changes is: [5126:5126:0407/185453.000743:ERROR:variations_associated_data.cc(171)] !! in GetVariationParamValue, trial_name=PermissionsKillSwitch param_name=VideoCapture! [5126:5126:0407/185453.000757:ERROR:field_trial_params.cc(24)] in GetFieldTrialParams before [5126:5126:0407/185453.000771:ERROR:field_trial_params.cc(28)] in GetFieldTrialParams after 0 [5126:5126:0407/185453.000783:ERROR:field_trial_params.cc(65)] in GetFieldTrialParamValue's BEFORE RETURN [5126:5126:0407/185453.000795:ERROR:permission_context_base.cc(294)] !! in PermissionContextBase::IsPermissionKillSwitchOn() befRETURN [5126:5126:0407/185453.000844:ERROR:permission_context_base.cc(285)] !! in PermissionContextBase::IsPermissionKillSwitchOn() BEFORE 9 [5126:5126:0407/185453.000863:ERROR:permission_util.cc(23)] !! in GetPermissionString BEFORE [5126:5126:0407/185453.000875:ERROR:permission_util.cc(25)] !! in GetPermissionString stillBEFORE 9 [5126:5126:0407/185453.000857:ERROR:permission_context_base.cc(287)] !! in PermissionContextBase::IsPermissionKillSwitchOn() perm=AudioCapture! [5126:5126:0407/185453.000890:ERROR:permission_context_base.cc(289)] !! in PermissionContextBase::IsPermissionKillSwitchOn() AFTER [5126:5126:0407/185453.000902:ERROR:permission_util.cc(23)] !! in GetPermissionString BEFORE [5126:5126:0407/185453.000912:ERROR:permission_util.cc(25)] !! in GetPermissionString stillBEFORE 9 [5126:5126:0407/185453.000924:ERROR:variations_associated_data.cc(171)] !! in GetVariationParamValue, trial_name=PermissionsKillSwitch param_name=AudioCapture! [5126:5126:0407/185453.000936:ERROR:field_trial_params.cc(24)] in GetFieldTrialParams before [5126:5126:0407/185453.000948:ERROR:field_trial_params.cc(28)] in GetFieldTrialParams after 0 [5126:5126:0407/185453.000959:ERROR:field_trial_params.cc(65)] in GetFieldTrialParamValue's BEFORE RETURN [5126:5126:0407/185453.000971:ERROR:permission_context_base.cc(294)] !! in PermissionContextBase::IsPermissionKillSwitchOn() befRETURN [5126:5126:0407/185453.001020:ERROR:permission_context_base.cc(285)] !! in PermissionContextBase::IsPermissionKillSwitchOn() BEFORE 6 [5126:5126:0407/185453.001039:ERROR:permission_util.cc(23)] !! in GetPermissionString BEFORE [5126:5126:0407/185453.001055:ERROR:permission_util.cc(25)] !! in GetPermissionString stillBEFORE 6 [5126:5126:0407/185453.001033:ERROR:permission_context_base.cc(287)] !! in PermissionContextBase::IsPermissionKillSwitchOn() perm=Notifications! [5126:5126:0407/185453.001067:ERROR:permission_context_base.cc(289)] !! in PermissionContextBase::IsPermissionKillSwitchOn() AFTER [5126:5126:0407/185453.001080:ERROR:permission_util.cc(23)] !! in GetPermissionString BEFORE [5126:5126:0407/185453.001092:ERROR:permission_util.cc(25)] !! in GetPermissionString stillBEFORE 6 [5126:5126:0407/185453.001102:ERROR:variations_associated_data.cc(171)] !! in GetVariationParamValue, trial_name=PermissionsKillSwitch param_name=Notifications! [5126:5126:0407/185453.001116:ERROR:field_trial_params.cc(24)] in GetFieldTrialParams before [5126:5126:0407/185453.001126:ERROR:field_trial_params.cc(28)] in GetFieldTrialParams after 0 [5126:5126:0407/185453.001137:ERROR:field_trial_params.cc(65)] in GetFieldTrialParamValue's BEFORE RETURN [5126:5126:0407/185453.001150:ERROR:permission_context_base.cc(294)] !! in PermissionContextBase::IsPermissionKillSwitchOn() befRETURN [5126:5126:0407/185453.001196:ERROR:permission_util.cc(23)] !! in GetPermissionString BEFORE [5126:5126:0407/185453.001210:ERROR:permission_util.cc(25)] !! in GetPermissionString stillBEFORE 6 Received signal 11 SEGV_MAPERR 000000000010 #0 0x5562302a1cd7 base::debug::StackTrace::StackTrace() #1 0x5562302a184f base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x7f43bb414fe0 <unknown> #3 0x55622ffa7ef6 PermissionContextBase::IsPermissionKillSwitchOn() #4 0x55622ffa7cd0 PermissionContextBase::GetPermissionStatus() #5 0x55622ffab35d PermissionManager::GetPermissionStatusHelper() #6 0x55622ffab262 PermissionManager::GetPermissionStatus() #7 0x556231ea5fe8 PageInfo::PresentSitePermissions() #8 0x556231ea410a PageInfo::PageInfo() #9 0x556231e2d73b PageInfoPopupView::PageInfoPopupView() #10 0x556231e2d296 PageInfoPopupView::ShowPopup() #11 0x556231d21891 BrowserView::ShowPageInfo() #12 0x556231c88760 chrome::ShowPageInfo() #13 0x556231d33380 LocationIconView::OnActivate() #14 0x556231d33186 LocationIconView::OnMouseReleased() #15 0x55623152528c views::InkDropHostView::OnMouseEvent() #16 0x556230c4382b ui::EventDispatcher::ProcessEvent() #17 0x556230c43671 ui::EventDispatcherDelegate::DispatchEvent() #18 0x5562315129a9 views::internal::RootView::OnMouseReleased() #19 0x5562314e3f43 views::Widget::OnMouseEvent() #20 0x556230c4382b ui::EventDispatcher::ProcessEvent() #21 0x556230c43671 ui::EventDispatcherDelegate::DispatchEvent() #22 0x5562332a15ce ui::EventProcessor::OnEventFromSource() #23 0x5562332a1866 ui::EventSource::SendEventToSink() #24 0x5562314f52f7 views::DesktopWindowTreeHostX11::DispatchMouseEvent() #25 0x5562314f6487 views::DesktopWindowTreeHostX11::DispatchEvent() #26 0x5562314f683d views::DesktopWindowTreeHostX11::DispatchEvent() #27 0x556230c39545 ui::PlatformEventSource::DispatchEvent() #28 0x556230c7823a ui::X11EventSource::DispatchXEvents() #29 0x5562332aa2e9 ui::(anonymous namespace)::XSourceDispatch() #30 0x7f43ba89045a g_main_context_dispatch #31 0x7f43ba890810 <unknown> #32 0x7f43ba8908bc g_main_context_iteration #33 0x5562302c1e26 base::MessagePumpGlib::Run() #34 0x5562302bf886 base::MessageLoop::RunHandler() #35 0x5562302e2f15 base::RunLoop::Run() #36 0x5562301b2dd8 ChromeBrowserMainParts::MainMessageLoopRun() #37 0x55622efd2963 content::BrowserMainLoop::RunMainMessageLoopParts() #38 0x55622efd543d content::BrowserMainRunnerImpl::Run() #39 0x55622efce748 content::BrowserMain() #40 0x55622ff7bdbf content::ContentMainRunnerImpl::Run() #41 0x5562310d0f44 service_manager::Main() #42 0x55622ff7adf2 content::ContentMain() #43 0x55622eba0d00 ChromeMain #44 0x7f43b2fd0511 __libc_start_main #45 0x55622eba0b7a _start r8: 0000000000000000 r9: 00007ffdb152c3e0 r10: 0000000000000010 r11: 0000000000000010 r12: 00007ffdb152cae0 r13: 0000000000000000 r14: 00007ffdb152c8e0 r15: 0000000000000000 di: 000011e69728e265 si: 0000000000000000 bp: 0ccccccccccccccc bx: 00007ffdb152c8e8 dx: 00007f43b38eaca0 ax: 00007ffdb152c8e8 cx: 0000000000000000 sp: 00007ffdb152c8a0 ip: 000055622ffa7ef6 efl: 0000000000010202 cgf: 002b000000000033 erf: 0000000000000004 trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000010 [end of stack trace] Calling _exit(1). Core file will not be generated. And I still can't understand why it would segfault, assuming all logs are indeed flushed and none missing from output, this time. Hmm...Maybe I should gdb it...
,
Apr 7 2017
It crashes when accessing: content_settings_type_ and I'm not sure what to make of it. [2108:2108:0407/195443.935004:ERROR:variations_associated_data.cc(171)] !! in GetVariationParamValue, trial_name=PermissionsKillSwitch param_name=Notifications! [2108:2108:0407/195443.935013:ERROR:field_trial_params.cc(24)] in GetFieldTrialParams before [2108:2108:0407/195443.935022:ERROR:field_trial_params.cc(28)] in GetFieldTrialParams after 0 [2108:2108:0407/195443.935030:ERROR:field_trial_params.cc(65)] in GetFieldTrialParamValue's BEFORE RETURN [2108:2108:0407/195443.935038:ERROR:permission_context_base.cc(296)] !! in PermissionContextBase::IsPermissionKillSwitchOn() befRETURN [2108:2108:0407/195443.935136:ERROR:permission_util.cc(23)] !! in GetPermissionString BEFORE [2108:2108:0407/195443.935146:ERROR:permission_util.cc(25)] !! in GetPermissionString stillBEFORE 6 [2108:2108:0407/195443.935155:ERROR:permission_util.cc(31)] !! in GetPermissionString before returning Notifications 6 [2108:2108:0407/195443.935266:ERROR:permission_context_base.cc(285)] !! in PermissionContextBase::IsPermissionKillSwitchOn() BEFORE1 Ran as: gdb -tui -directory=/tmp/out/Default/ -directory=/home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/out/Default/ -directory=/home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/ -x /home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/gdb_cmds --args /usr/lib/chromium/chromium --ssl-version-min=tls1 --disk-cache-dir=/tmp/chromiumcache --disable-sync-preferences --disable-plugins --cipher-suite-blacklist=0x0001,0x0002,0x0004,0x0005,0x0017,0x0018,0xc002,0xc007,0xc00c,0xc011,0xc016,0xff80,0xff81,0xff82,0xff83 --disable-sync-preferences --disable-plugins --cipher-suite-blacklist=0x0001,0x0002,0x0004,0x0005,0x0017,0x0018,0xc002,0xc007,0xc00c,0xc011,0xc016,0xff80,0xff81,0xff82,0xff83 --disable-component-extensions-with-background-pages --disable-background-networking --disable-internal-flash --disable-bundled-ppapi-flash --disable-default-apps --ssl-version-min=tls1 --disallow-autofill-sync-credential --disable-device-discovery-notifications --no-pings --disable-media-source --disable-ntp-other-sessions-menu --disable-prefixed-encrypted-media --disable-touch-adjustment --disable-views-rect-based-targeting --disable-webgl --disable-account-consistency --enable-async-dns --enable-deferred-image-decoding --enable-download-resumption --enable-drop-sync-credential --disable-material-design-ntp --disable-new-avatar-menu --disable-new-profile-management --enable-offline-auto-reload-visible-only --disable-offline-auto-reload --enable-offline-load-stale-cache --enable-one-copy --enable-panels --disable-password-generation --enable-permissions-bubbles --disable-extensions-on-chrome-urls --disable-pinch-virtual-viewport --disable-pinch --enable-quic --disable-save-password-bubble --enable-session-crashed-bubble --disable-settings-window --use-simple-cache-backend=off --disable-smooth-scrolling --disable-sync-app-list --disable-sync-synced-notifications --enable-tcp-fastopen --disable-touch-editing --enable-web-based-signin --disable-zero-copy --enable-harfbuzz-rendertext --enable-impl-side-painting --enable-lcd-text --num-raster-threads=4 --disable-origin-chip --disable-overlay-scrollbar --remember-cert-error-decisions=-1 --enable-search-button-in-omnibox-always --disable-spelling-auto-correct --tab-capture-downscale-quality=fast --tab-capture-upscale-quality=fast --touch-events=disabled --wallet-service-use-sandbox=0 --enable-gpu-vsync --show-component-extension-options --disable-gpu-rasterization --disable-hyperlink-auditing --enable-vertical-tabs --disable-audio-support-for-desktop-share --disable-gpu --disable-features=NoStatePrefetch --ssl-version-min=tls1 --disable-sync-preferences --disable-plugins --cipher-suite-blacklist=0x0001,0x0002,0x0004,0x0005,0x0017,0x0018,0xc002,0xc007,0xc00c,0xc011,0xc016,0xff80,0xff81,0xff82,0xff83 --disk-cache-dir=/tmp/chromiumcache-DEBUG --user-data-dir=/tmp/chromium-DATA-DEBUG --disable-seccomp-sandbox --no-sandbox --disable-hang-monitor --allow-sandbox-debugging
,
Apr 7 2017
,
Apr 7 2017
the ptr value of content_settings_type_ aka &content_settings_type_
usually it is like: ptr=0x347e6a3498f0
but before crash is: ptr=0x10
If I assume that something set the pointer instead of the value, then 0x10 = 16 = CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER
but that seems very unlikely.
enum ContentSettingsType {
// "DEFAULT" is only used as an argument to the Content Settings Window
// opener; there it means "whatever was last shown".
CONTENT_SETTINGS_TYPE_DEFAULT = -1,
CONTENT_SETTINGS_TYPE_COOKIES = 0,
CONTENT_SETTINGS_TYPE_IMAGES,
CONTENT_SETTINGS_TYPE_JAVASCRIPT,
CONTENT_SETTINGS_TYPE_PLUGINS,
CONTENT_SETTINGS_TYPE_POPUPS,
CONTENT_SETTINGS_TYPE_GEOLOCATION,
CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE,
CONTENT_SETTINGS_TYPE_MIXEDSCRIPT,
CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC,
CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA,
CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS,
CONTENT_SETTINGS_TYPE_PPAPI_BROKER,
CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS,
CONTENT_SETTINGS_TYPE_MIDI_SYSEX,
CONTENT_SETTINGS_TYPE_SSL_CERT_DECISIONS,
CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER,
CONTENT_SETTINGS_TYPE_APP_BANNER,
CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT,
CONTENT_SETTINGS_TYPE_DURABLE_STORAGE,
CONTENT_SETTINGS_TYPE_USB_CHOOSER_DATA,
CONTENT_SETTINGS_TYPE_BLUETOOTH_GUARD,
CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC,
CONTENT_SETTINGS_TYPE_AUTOPLAY,
// TODO(raymes): Deprecated. See crbug.com/681709 . Remove after M60.
CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT,
CONTENT_SETTINGS_TYPE_IMPORTANT_SITE_INFO,
CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA,
CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER,
,
Apr 7 2017
ok, it's CONTENT_SETTINGS_TYPE_PLUGINS (aka 3) and well, I've plugins disabled at build time enable_plugins = false #Default = true [8505:8505:0407/230637.838336:ERROR:permission_manager.cc(549)] !! GetPermissionStatusHelper perm=3 [8505:8505:0407/230637.838350:ERROR:permission_context_base.cc(291)] !! in PermissionContextBase::IsPermissionKillSwitchOn() BEFORE1 [8505:8505:0407/230637.838359:ERROR:permission_context_base.cc(293)] !! in PermissionContextBase::IsPermissionKillSwitchOn() BEFORE2 ptr=0x10 [8505:8505:0407/230637.838367:ERROR:permission_context_base.cc(295)] !! in PermissionContextBase::IsPermissionKillSwitchOn() BEFORE2 this=0 I'm still on it...
,
Apr 7 2017
Hmm, as suspected: context is NULL (unless I'm missing something!!) at this point:
[4131:4131:0407/232353.106538:ERROR:permission_manager.cc(549)] !! GetPermissionStatusHelper perm=3
[4131:4131:0407/232353.106552:ERROR:permission_manager.cc(552)] !! GetPermissionStatusHelper (ptr) context=0
in: chrome/browser/permissions/permission_manager.cc
function: PermissionManager::GetPermissionStatusHelper(
if (IsConstantPermission(permission)) {
return PermissionResult(GetContentSettingForConstantPermission(permission),
PermissionStatusSource::UNSPECIFIED);
}
LOG(ERROR) << "!! GetPermissionStatusHelper perm="<< permission <<"\n";
::logging::FlushLogFile();
PermissionContextBase* context = GetPermissionContext(permission);
LOG(ERROR) << "!! GetPermissionStatusHelper (ptr) context="<< context <<"\n";
::logging::FlushLogFile();
PermissionResult result = context->GetPermissionStatus(
nullptr /* render_frame_host */, requesting_origin.GetOrigin(),
embedding_origin.GetOrigin());
So, at this point, perhaps someone could reproduce this by building with
enable_plugins = false
and then clicking on View Site Information
see if this crashes.
Meanwhile I'll try to figure out a workaround (but do know that I'm mostly stumbling around in the dark not knowing what I'm doing here hehe)
,
Apr 7 2017
,
Apr 7 2017
Ok, I'm starting to understand it:
in ./chrome/browser/permissions/permission_manager.cc
This part in:
PermissionManager::PermissionManager(Profile* profile)
which is this:
#if BUILDFLAG(ENABLE_PLUGINS)
permission_contexts_[CONTENT_SETTINGS_TYPE_PLUGINS] =
base::MakeUnique<FlashPermissionContext>(profile);
#endif
is not created, when built with:
enable_plugins = false
therefore, function:
PermissionManager::GetPermissionContext(
will return NULL
as per its line: return it == permission_contexts_.end() ? nullptr : it->second.get();
which in turn hits this function:
PermissionManager::GetPermissionStatusHelper(
which does:
PermissionContextBase* context = GetPermissionContext(permission);
PermissionResult result = context->GetPermissionStatus(
nullptr /* render_frame_host */, requesting_origin.GetOrigin(),
embedding_origin.GetOrigin());
BUT, context is already NULL there, but the sigsegv happens a bit later, within.
No matter, this is why the issue happens!
And there's one more which doesn't get created:
#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
permission_contexts_[CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER] =
base::MakeUnique<ProtectedMediaIdentifierPermissionContext>(profile);
#endif
So that would mean that, at some point anyone calling GetPermissionContext(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER) will get a NULL, and if it doesn't check for it, like GetPermissionStatusHelper does(n't), then segfault ...
,
Apr 7 2017
workaround1
,
Apr 7 2017
fix1
,
Apr 7 2017
tested on: Chromium 59.0.3066.0 (Developer Build) (64-bit) Revision 9ae4bac8c7152820dede06e35c5099cb1ae43662-refs/heads/master@{#462799} OS Linux JavaScript V8 5.9.187 Flash User Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3066.0 Safari/537.36
,
Apr 23 2017
Someone must've fixed this, if even accidentally, because I'm running: Chromium 59.0.3068.0 (Developer Build) (64-bit) Revision 56f79410ed4c847b056e853b5d0bae0b5e34aac1-refs/heads/master@{#463383} OS Linux JavaScript V8 5.9.202 Flash User Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3068.0 Safari/537.36 with my fix from Comment 16, and I cannot find any log messages on console with 'NULL' or 'NEW context' after 'View site information' a few times; which tells me this doesn't trigger anymore. So this may issue be closed, imo.
,
Apr 23 2017
oh wait, nevermind, I was wrong, I was using both the workaround and the fix, and I forgot that the fix(comment 16) prevents the workaround NULL/NEW logs from showing up! (and in Comment 18 I was referring to the workaround from Comment 15 not the fix from 16) So, this wasn't fixed in 59.0.3068, it was just my fix, that's why I wasn't seeing the workaround's logs. I should delete Comment 18, but then those who got the notification, wouldn't know why I deleted it. So here:)
,
Jun 20 2017
,
Jun 21 2017
I have a feeling that it's not; I'll update and let you know...
,
Jun 21 2017
Sorry, currently stuck figuring out how to workaround this compilation error, so it may take a while, since I've no current ideas:
ccache ../../../usr/bin/clang++ -MMD -MF obj/chrome/browser/ui/libgtkui/libgtk2ui/gtk_ui.o.d -DLIBGTKUI_IMPLEMENTATION -DV8_DEPRECATION_WARNINGS -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DDISABLE_NACL -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=\"305735-1\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DUSE_GCONF -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -DGL_GLEXT_PROTOTYPES -DUSE_GLX -DUSE_EGL -DTOOLKIT_VIEWS=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_HAS_PNG_LIBRARY -DSK_HAS_WEBP_LIBRARY -DSK_HAS_JPEG_LIBRARY -DSK_SUPPORT_GPU=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DENABLE_IPC_FUZZER -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src -Igen -I/usr/include/gconf/2 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/khronos -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/gpu -Igen/shim_headers/ffmpeg_shim -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/ced/src -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/icu/source/common -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/icu/source/i18n -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/skia/config -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/skia/ext -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/c -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/config -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/core -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/effects -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/encode -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/images -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/lazy -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/pathops -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/pdf -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/pipe -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/ports -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/utils -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/third_party/vulkan -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/include/gpu -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/src/gpu -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/skia/src/sksl -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/libwebm/source -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/protobuf/src -Igen/protoc_out -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/protobuf/src -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/boringssl/src/include -I/usr/include/nss -I/usr/include/nspr -Igen -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/WebKit -Igen/third_party/WebKit -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/v8/include -Igen/v8/include -I../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/third_party/harfbuzz-ng/src -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fno-strict-aliasing -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -D_FORTIFY_SOURCE=2 -fomit-frame-pointer -fno-omit-frame-pointer -pthread -fcolor-diagnostics -m64 -march=x86-64 -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -Wno-user-defined-warnings -Ofast -fno-fast-math -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -g1 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-unused-function -Wno-unused-local-typedef -Wno-header-guard -std=gnu++11 -fno-rtti -fno-exceptions -fvisibility-inlines-hidden -c ../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/chrome/browser/ui/libgtkui/gtk_ui.cc -o obj/chrome/browser/ui/libgtkui/libgtk2ui/gtk_ui.o
../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/chrome/browser/ui/libgtkui/gtk_ui.cc:320:16: error: use of undeclared identifier 'gdk_screen_get_monitor_scale_factor'; did you mean 'gdk_screen_get_monitor_at_window'?
gint scale = gdk_screen_get_monitor_scale_factor(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdk_screen_get_monitor_at_window
/usr/include/gtk-2.0/gdk/gdkscreen.h:101:15: note: 'gdk_screen_get_monitor_at_window' declared here
gint gdk_screen_get_monitor_at_window (GdkScreen *screen,
^
../../../home/xftroxgpx/build/1packages/chro/4_chromium-dev-git/fetch_gclient_base/checkout_root/src/chrome/browser/ui/libgtkui/gtk_ui.cc:321:15: error: cannot initialize a parameter of type 'GdkWindow *' (aka '_GdkDrawable *') with an rvalue of type 'gint' (aka 'int')
screen, gdk_screen_get_primary_monitor(screen));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gtk-2.0/gdk/gdkscreen.h:102:18: note: passing argument to parameter 'window' here
GdkWindow *window);
^
2 errors generated.
,
Jun 22 2017
ok that compile error happens only when use_gtk3 = false #Default = false but not when true basically, chromium is expecting gtk3 even when false! else, wouldn't get the above error. gdk_screen_get_monitor_scale_factor Since: 3.10 tested with commit 1e5352e7505feac546757f8bcdd7217b09a136a0 (HEAD, origin/master, origin/HEAD) Compilation in progress... [22765/26060]
,
Jun 22 2017
Finally, just finished compiling. The current issue still exists and is not fixed by Issue 711004 ! Would've crashed if I hadn't used the workaround: [6480:6480:0622/173131.788389:ERROR:permission_manager.cc(379)] !! GetPermissionContext is NULL(0) for ContentSettingsType=3 (see: vim ./components/content_settings/core/common/content_settings_types.h +19) [6480:6480:0622/173131.788427:ERROR:permission_manager.cc(551)] !! GetPermissionStatusHelper (ptr) NEW context=0x3659c56b2a0 Anyway, the fix is in Comment 16 However I opt to use both workaround and fix. Attaching the current ones. This probably won't be fixed because it only happens when compiling chromium without plugins support which nobody official does:) But hey I'm not complaining, though I wouldn't want to ever be on the chromium team(not that I will ever even qualify) because of things like this, which to be honest I think that are unavoidable esp. on such big projects: can't expect devs to test for all possible variants/cases, even though one might argue that then why provide the flag(BUILDFLAG(ENABLE_PLUGINS)) and give a false sense of choice - well, I guess with time it becomes harder to maintain and way less fun to handle all the cases... and this is how bugs creep in. /rant Now then, where was I... ah, back to wasting that sweet sweet time!
,
Jul 31 2017
I'm going to close this as WontFix; we don't usually use this tracker to track issues in custom Chromium builds. If you can reproduce a bug or crash in Chrome itself, we'd definitely be interested in tracking that. Thanks! |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by xftroxgpx@gmail.com
, Apr 6 201793.3 KB
93.3 KB Download