Summary: | Spintracer treats the web process as hung when it's showing JavaScript dialogs in the UI process | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Anders Carlsson <andersca> | ||||||||
Component: | New Bugs | Assignee: | Anders Carlsson <andersca> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | ap | ||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Attachments: |
|
Description
Anders Carlsson
2015-06-18 14:42:41 PDT
Created attachment 255136 [details]
Patch
Comment on attachment 255136 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=255136&action=review > Source/WebKit2/Shared/mac/HangDetectionDisablerMac.mm:38 > + if (CGSCopyConnectionProperty(CGSMainConnectionID(), CGSMainConnectionID(), clientsMayIgnoreEventsKey, &value) != kCGErrorSuccess) Shouldn't we CFRelease value after this copy? Maybe use RetainPtr here? > Source/WebKit2/Shared/mac/WebMemorySampler.mac.mm:-32 > -#import "config.h" > -#import "WebMemorySampler.h" > - > -#if ENABLE(MEMORY_SAMPLER) > - > -#import <JavaScriptCore/MemoryStatistics.h> > -#import <mach/mach.h> Revert? Created attachment 255138 [details]
Patch
Created attachment 255139 [details]
Patch
Comment on attachment 255139 [details]
Patch
r=me
Nice! Do you plan to adopt this for sync XHR, or would you like us to keep receiving reports about those? (In reply to comment #6) > Nice! Do you plan to adopt this for sync XHR, or would you like us to keep > receiving reports about those? I talked to Gavin about doing it - it's definitely something we should do. Same thing for window.print. Committed r185749: <http://trac.webkit.org/changeset/185749> Comment on attachment 255139 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=255139&action=review > Source/WebKit2/Shared/mac/HangDetectionDisablerMac.mm:47 > + auto value = adoptCF(valuePtr); > + > + if (!value || CFGetTypeID(value.get()) != CFBooleanGetTypeID()) > + return false; > + > + return value == kCFBooleanTrue; I think this one line does the same thing as the above four lines of code. return adoptCF(valuePtr) == kCFBooleanTrue; |