New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 681772 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Task

Blocking:
issue 593835



Sign in to add a comment

Make sure FullscreenControllerTest.FullscreenOnFileURL doesn't become flaky when profile picker change is relanded

Project Member Reported by pkalinnikov@chromium.org, Jan 17 2017

Issue description

FullscreenControllerTest.FullscreenOnFileURL from browser_tests failing on chromium.mac/Mac10.10 Tests

Type: build-failure

Builders failed on: 
- Mac10.10 Tests: 
  https://build.chromium.org/p/chromium.mac/builders/Mac10.10%20Tests

 
Log of the failing test (segmentation fault):

FullscreenControllerTest.FullscreenOnFileURL (run #1):
[ RUN      ] FullscreenControllerTest.FullscreenOnFileURL
2017-01-17 00:34:17.922 browser_tests[39108:561098] NSWindow warning: adding an unknown subview: <FullSizeContentView: 0x7ffe60f7f730>
2017-01-17 00:34:17.922 browser_tests[39108:561098] Call stack:
(
    "+callStackSymbols disabled for performance reasons"
)
[00:34:18.109] vtDecompressionDuctCreate signalled err=-8973 (err) (Could not select and open decoder instance) at /SourceCache/CoreMedia_frameworks/CoreMedia-1562.240/Sources/VideoToolbox/VTDecompressionSession.c line 1181
<<<< VTVideoEncoderSelection >>>> VTSelectAndCreateVideoEncoderInstanceInternal: no video encoder found for 'avc1'

[00:34:18.183] VTSelectAndCreateVideoEncoderInstanceInternal signalled err=-12908 (err) (Video encoder not available) at /SourceCache/CoreMedia_frameworks/CoreMedia-1562.240/Sources/VideoToolbox/VTVideoEncoderSelection.c line 1245
[00:34:18.183] VTCompressionSessionCreate signalled err=-12908 (err) (Could not select and open encoder instance) at /SourceCache/CoreMedia_frameworks/CoreMedia-1562.240/Sources/VideoToolbox/VTCompressionSession.c line 946
BrowserTestBase received signal: Segmentation fault: 11. Backtrace:
0   browser_tests                       0x000000010e6bab83 _ZN4base5debug10StackTraceC1Ev + 19
1   browser_tests                       0x000000010edca3aa _ZN7content12_GLOBAL__N_1L27DumpStackTraceSignalHandlerEi + 202
2   libsystem_platform.dylib            0x00007fff996d8f1a _sigtramp + 26
3   ???                                 0x00007ffe60cec5a0 0x0 + 140730522584480
4   Foundation                          0x00007fff907141c3 NSKeyValueNotifyObserver + 382
5   Foundation                          0x00007fff90720e38 NSKeyValueDidChange + 463
6   Foundation                          0x00007fff906d9a4d -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] + 118
7   browser_tests                       0x0000000111445567 -[BrowserWindowFullscreenTransition animationDidStop:finished:] + 359
8   QuartzCore                          0x00007fff9970629b _ZN2CA5Layer23run_animation_callbacksEPv + 309
9   libdispatch.dylib                   0x00007fff97748e73 _dispatch_client_callout + 8
10  libdispatch.dylib                   0x00007fff97759767 _dispatch_main_queue_callback_4CF + 861
11  CoreFoundation                      0x00007fff8effe3f9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
12  CoreFoundation                      0x00007fff8efb968f __CFRunLoopRun + 2159
13  CoreFoundation                      0x00007fff8efb8bd8 CFRunLoopRunSpecific + 296
14  HIToolbox                           0x00007fff9a6f756f RunCurrentEventLoopInMode + 235
15  HIToolbox                           0x00007fff9a6f72ea ReceiveNextEventCommon + 431
16  HIToolbox                           0x00007fff9a6f712b _BlockUntilNextEventMatchingListInModeWithFilter + 71
17  AppKit                              0x00007fff958cf8ab _DPSNextEvent + 978
18  AppKit                              0x00007fff958cee58 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 346
19  browser_tests                       0x000000010e7d9480 __71-[BrowserCrApplication nextEventMatchingMask:untilDate:inMode:dequeue:]_block_invoke + 64
20  browser_tests                       0x000000010e6d4b0a _ZN4base3mac15CallWithEHFrameEU13block_pointerFvvE + 10
21  browser_tests                       0x000000010e7d93b9 -[BrowserCrApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 169
22  AppKit                              0x00007fff958c4af3 -[NSApplication run] + 594
23  browser_tests                       0x000000010e6e49ae _ZN4base24MessagePumpNSApplication5DoRunEPNS_11MessagePump8DelegateE + 334
24  browser_tests                       0x000000010e6e3ffc _ZN4base24MessagePumpCFRunLoopBase3RunEPNS_11MessagePump8DelegateE + 92
25  browser_tests                       0x000000010e6e044e _ZN4base11MessageLoop10RunHandlerEv + 94
26  browser_tests                       0x000000010e704ad3 _ZN4base7RunLoop3RunEv + 115
27  browser_tests                       0x000000010ee06fd1 _ZN7content14RunMessageLoopEv + 65
28  browser_tests                       0x000000010e775003 _ZN20InProcessBrowserTest12QuitBrowsersEv + 211
29  browser_tests                       0x000000010e774ee2 _ZN20InProcessBrowserTest23RunTestOnMainThreadLoopEv + 1410
30  browser_tests                       0x000000010edca116 _ZN7content15BrowserTestBase28ProxyRunTestOnMainThreadLoopEv + 278
31  browser_tests                       0x000000010e7de30d _ZN22ChromeBrowserMainParts25PreMainMessageLoopRunImplEv + 4253
32  browser_tests                       0x000000010e7dd16e _ZN22ChromeBrowserMainParts21PreMainMessageLoopRunEv + 62
33  browser_tests                       0x000000010deb5063 _ZN7content15BrowserMainLoop21PreMainMessageLoopRunEv + 67
34  browser_tests                       0x000000010e1cfbb6 _ZN7content17StartupTaskRunner14RunAllTasksNowEv + 38
35  browser_tests                       0x000000010deb3352 _ZN7content15BrowserMainLoop18CreateStartupTasksEv + 658
36  browser_tests                       0x000000010deb7d3b _ZN7content21BrowserMainRunnerImpl10InitializeERKNS_18MainFunctionParamsE + 683
37  browser_tests                       0x000000010deb0ce4 _ZN7content11BrowserMainERKNS_18MainFunctionParamsE + 100
38  browser_tests                       0x000000010e6a1230 _ZN7content21ContentMainRunnerImpl3RunEv + 368
39  browser_tests                       0x000000010e6a0436 _ZN7content11ContentMainERKNS_17ContentMainParamsE + 54
40  browser_tests                       0x000000010edc9e22 _ZN7content15BrowserTestBase5SetUpEv + 1906
41  browser_tests                       0x000000010e773d24 _ZN20InProcessBrowserTest5SetUpEv + 340
42  browser_tests                       0x000000010f4e30fb _ZN7testing4Test3RunEv + 299
43  browser_tests                       0x000000010f4e3fa0 _ZN7testing8TestInfo3RunEv + 576
44  browser_tests                       0x000000010f4e4657 _ZN7testing8TestCase3RunEv + 455
45  browser_tests                       0x000000010f4ea857 _ZN7testing8internal12UnitTestImpl11RunAllTestsEv + 967
46  browser_tests                       0x000000010f4ea459 _ZN7testing8UnitTest3RunEv + 265
47  browser_tests                       0x000000010e7893d5 _ZN4base9TestSuite3RunEv + 133
48  browser_tests                       0x000000010e6ada8f _ZN21ChromeTestSuiteRunner12RunTestSuiteEiPPc + 31
49  browser_tests                       0x000000010ee03eee _ZN7content11LaunchTestsEPNS_20TestLauncherDelegateEiiPPc + 302
50  browser_tests                       0x000000010e6ada1a main + 90
51  libdyld.dylib                       0x00007fff96af25c9 start + 1
52  ???                                 0x0000000000000009 0x0 + 9
Cc: tapted@chromium.org est...@chromium.org
Owner: sdy@chromium.org
Status: Assigned (was: Available)
Summary: FullscreenControllerTest.FullscreenOnFileURL from browser_tests failing on chromium.mac/Mac10.10 Tests (was: browser_tests failing on chromium.mac/Mac10.10 Tests)
The test is flaky, it either passes or fails with segmentation fault (only on Mac10.10).

As far as I could find out, the first failure was in the following build: https://uberchromegw.corp.google.com/i/chromium.mac/builders/Mac10.10%20Tests/builds/12016

I skimmed through the CLs included to the build, and I suspect that the one causing flakiness is: https://chromium.googlesource.com/chromium/src/+/a5fd3c415f3cc4f8813ba9772d838bee41040ae8. Sidney (sdy@), could you please take a look?

Adding Emily (estark@), as she is an author of the failing test.

I am also adding Trent (tapted@), because his changes (https://chromium.googlesource.com/chromium/src/+/caeaf7c8f5c0daf2db7fd1a0dad1828dac26d62c, https://chromium.googlesource.com/chromium/src/+/67b5583718d2ed35011af6d7468068e3c0237166) were in this build as well touching some UI on Mac. Trent, please also take a look, maybe you can spot a problem right away.

Thank you.
Summary: FullscreenControllerTest.FullscreenOnFileURL from browser_tests is flaky on chromium.mac/Mac10.10 Tests (was: FullscreenControllerTest.FullscreenOnFileURL from browser_tests failing on chromium.mac/Mac10.10 Tests)
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/23d8cf2f9da96b2e9e3496738688b6e9615ea094

commit 23d8cf2f9da96b2e9e3496738688b6e9615ea094
Author: pkalinnikov <pkalinnikov@chromium.org>
Date: Tue Jan 17 11:38:38 2017

Revert of [Mac] Fix rough-looking profile picker text, especially with a dark theme. (patchset #9 id:180001 of https://codereview.chromium.org/2430493002/ )

Reason for revert:
FullscreenControllerTest.FullscreenOnFileURL from browser_tests flakes chromium.mac/Mac10.10 Tests builder.

Original issue's description:
> [Mac] Fix rough-looking profile picker text, especially with a dark theme.
>
>  Issue 593835  shows the AvatarButton's text having jagged, rainbow tinted
> edges. It turns out that the text cell gets a hint about anti-aliasing
> from the NSVisualEffect view below it, but the hint is wrong because the
> NSVisualEffectView is itself below the theme background.
>
> This only happens when the NSVisualEffectView's blendingMode is set to
> NSVisualEffectBlendingModeBehindWindow (which makes the content behind
> the window show through with a blur effect). To create the effect, the
> view cuts a hole in the window and generates a mask which the window
> server uses to render a translucent material behind the window.
>
> Because the translucent parts of the window are invisible to the app,
> the text can't render itself with correct subpixel anti-aliasing, which
> needs information about the background. To help, NSVisualEffectView
> implements two undocumented methods:
> `-shouldSetFontSmoothingBackgroundColor` and
> `-_backgroundColorForFontSmoothing`. It provides the base color of the
> translucent material, and for the purpose of antialiasing the text cell
> pretends that it's over an opaque background of that color. Because the
> translucency effect is subtle, it's not obvious that the antialiasing is
> done with a fixed color.
>
> NSView implements these methods to first search its immediate subviews
> and return the first YES/non-nil answer, or return NO/nil if
> `self.opaque == YES`, then tail call the same method on its superview.
>
> A quirk of this strategy is that, to provide a background color to a
> text view, an NSVisualEffectView must be either a superview or an
> immediate subview of a superview. So, the AvatarButton's text does get a
> background color hint with the current hierarchy:
>
>     - NSThemeFrame
>        |- NSVisualEffectView
>        |  |- TabStripBackgroundView
>        |- FullSizeContentView
>           |- AvatarButton
>
> …but, if the NSVisualEffectView were wrapped in another view, it doesn't
> (because each step of the search just looks at immediate subviews):
>
>     - NSThemeFrame
>        |- NSView
>        | |- NSVisualEffectView
>        | |  |- TabStripBackgroundView
>        |- FullSizeContentView
>           |- AvatarButton
>
> Anyway, back on topic, our issue is that the text cell accepts the
> hinted background color, which is never right since Chrome always
> draws a tint over the visual effect view, and in some cases the hint is
> drastically wrong.
>
> Ideally, we'd provide a fake background for the text to perform subpixel
> anti-aliasing against, but it's unclear how to do that. For now, the
> simplest solution is to wrap it in another view.
>
> This CL sucks all of the tab strip background drawing into
> TabStripBackgroundView, and makes it so that other views don't need to
> know about the NSVisualEffectView at all.
>
> It also only creates the NSVisualEffectView when it's used, and gets rid
> of it when it's not used (like in full screen, or when a theme is
> installed).
>
> BUG= 593835 
>
> Review-Url: https://codereview.chromium.org/2430493002
> Cr-Commit-Position: refs/heads/master@{#443707}
> Committed: https://chromium.googlesource.com/chromium/src/+/a5fd3c415f3cc4f8813ba9772d838bee41040ae8

TBR=spqchan@chromium.org,avi@chromium.org,rsesek@chromium.org,sdy@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 593835 , 681772 

Review-Url: https://codereview.chromium.org/2638873002
Cr-Commit-Position: refs/heads/master@{#444028}

[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/base/mac/sdk_forward_declarations.h
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/browser_window_controller_private.mm
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/browser_window_fullscreen_transition.mm
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/floating_bar_backing_view.h
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/floating_bar_backing_view.mm
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/tabs/tab_strip_background_view.h
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/tabs/tab_strip_background_view.mm
[delete] https://crrev.com/f518baaa99a18fb01196946dafe59218ffbf4285/chrome/browser/ui/cocoa/tabs/tab_strip_background_view_unittest.mm
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/tabs/tab_strip_controller.h
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/tabs/tab_strip_view.h
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/tabs/tab_strip_view.mm
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/tabs/tab_window_controller.h
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/browser/ui/cocoa/tabs/tab_window_controller.mm
[modify] https://crrev.com/23d8cf2f9da96b2e9e3496738688b6e9615ea094/chrome/test/BUILD.gn

Reverted the culprit patch, let's see how it goes.

Comment 6 by tapted@chromium.org, Jan 17 2017

There's a crasher in Canary with a very similar stack -- Issue 681455 "Chrome_Mac: Crash Report - -[TabStripBackgroundView updateVisualEffectView] Fracas". It's possible these are related.

Comment 7 by tapted@chromium.org, Jan 17 2017

Cc: spqc...@chromium.org
Labels: OS-Mac Pri-2 Type-Bug
Also filed Issue 681930 for a collection of crashes in stable channel with a similar stack. Also 10.10 only.

Comment 8 by meade@chromium.org, Jan 17 2017

Labels: -Sheriff-Chromium
No flakes since revert landed, so removing sheriff label.

Comment 9 by sdy@chromium.org, Feb 23 2017

Blocking: 593835
Labels: -Type-Bug Type-Task
Summary: Make sure FullscreenControllerTest.FullscreenOnFileURL doesn't become flaky when profile picker change is relanded (was: FullscreenControllerTest.FullscreenOnFileURL from browser_tests is flaky on chromium.mac/Mac10.10 Tests)

Comment 10 by sdy@chromium.org, Mar 19 2018

Status: Archived (was: Assigned)

Sign in to add a comment