Let each page take a UserActivity rather than having to coalesce this state, and take different activity tokens for normal visibility and suppression disabled, so we can see why the process is not suppressed.
Created attachment 220362 [details] WIP patch
Created attachment 220367 [details] Fix
Comment on attachment 220367 [details] Fix View in context: https://bugs.webkit.org/attachment.cgi?id=220367&action=review > ../OpenSource/Source/WebKit2/WebProcess/WebPage/WebPage.h:1050 > + UserActivity m_suppressionDisabled; This could use a more descriptive name.
Created attachment 220382 [details] new patch for EWS
Committed revision 161319.
Comment on attachment 220367 [details] Fix View in context: https://bugs.webkit.org/attachment.cgi?id=220367&action=review Additionally it broke the Apple Windows build too: 1>WebCore.lib(PageThrottler.obj) : error LNK2019: unresolved external symbol "public: __thiscall WebCore::UserActivity::UserActivity(char const *)" (??0UserActivity@WebCore@@QAE@PBD@Z) referenced in function "public: __thiscall WebCore::PageThrottler::PageThrottler(class WebCore::Page &)" (??0PageThrottler@WebCore@@QAE@AAVPage@1@@Z) 1>WebCore.lib(PageThrottler.obj) : error LNK2019: unresolved external symbol "public: void __thiscall WebCore::UserActivity::beginActivity(void)" (?beginActivity@UserActivity@WebCore@@QAEXXZ) referenced in function "public: __thiscall WebCore::PageThrottler::~PageThrottler(void)" (??1PageThrottler@WebCore@@QAE@XZ) 1>WebCore.lib(PageThrottler.obj) : error LNK2019: unresolved external symbol "public: void __thiscall WebCore::UserActivity::endActivity(void)" (?endActivity@UserActivity@WebCore@@QAEXXZ) referenced in function "public: void __thiscall WebCore::PageThrottler::setIsVisuallyIdle(bool)" (?setIsVisuallyIdle@PageThrottler@WebCore@@QAEX_N@Z) (Unfortunately you didn't have chance to catch it early, because Win EWS bots are out of order long time ago.) > ../OpenSource/Source/WebCore/page/PageThrottler.h:31 > +#include <WebCore/UserActivity.h> It broke the non Mac builds, because only Apple supports this kind of forwarding headers. Fix landed in http://trac.webkit.org/changeset/161320 nad http://trac.webkit.org/changeset/161321 .
Looks like Windows build is still broken.
This broke windows: 1>WebCore.lib(PageThrottler.obj) : error LNK2019: unresolved external symbol "public: __thiscall WebCore::UserActivity::UserActivity(char const *)" (??0UserActivity@WebCore@@QAE@PBD@Z) referenced in function "public: __thiscall WebCore::PageThrottler::PageThrottler(class WebCore::Page &)" (??0PageThrottler@WebCore@@QAE@AAVPage@1@@Z) 1>WebCore.lib(PageThrottler.obj) : error LNK2019: unresolved external symbol "public: void __thiscall WebCore::UserActivity::beginActivity(void)" (?beginActivity@UserActivity@WebCore@@QAEXXZ) referenced in function "public: void __thiscall WebCore::PageThrottler::setIsVisuallyIdle(bool)" (?setIsVisuallyIdle@PageThrottler@WebCore@@QAEX_N@Z) 1>WebCore.lib(PageThrottler.obj) : error LNK2019: unresolved external symbol "public: void __thiscall WebCore::UserActivity::endActivity(void)" (?endActivity@UserActivity@WebCore@@QAEXXZ) referenced in function "public: void __thiscall WebCore::PageThrottler::setIsVisuallyIdle(bool)" (?setIsVisuallyIdle@PageThrottler@WebCore@@QAEX_N@Z)
This change broke the Windows build. See Bug 126526 for the fix.