WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
191477
WebPageMessages.h is not always regenerated
https://bugs.webkit.org/show_bug.cgi?id=191477
Summary
WebPageMessages.h is not always regenerated
Daniel Bates
Reported
2018-11-09 11:35:19 PST
The change <
https://trac.webkit.org/changeset/238047
> (
bug #190565
) added a new message, HardwareKeyboardAvailabilityChanged, to WebPage.messages.in and the iOS bots failed to build because WebPageMessages.h is not being regenerated: [[ CompileC /Volumes/Data/slave/ios-12-release/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/Objects-normal/arm64/UnifiedSource33-mm.o /Volumes/Data/slave/ios-12-release/build/WebKitBuild/Release-iphoneos/DerivedSources/WebKit2/unified-sources/UnifiedSource33-mm.mm normal arm64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler cd /Volumes/Data/slave/ios-12-release/build/Source/WebKit export LANG=en_US.US-ASCII export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c++ -arch arm64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++14 -stdlib=libc++ -fobjc-weak -gmodules -Wno-trigraphs -fno-exceptions -fno-rtti -fno-sanitize=vptr -fpascal-strings -Os -fno-common -Werror -Wno-missing-field-initializers -Wmissing-prototypes -Wunreachable-code -Wno-implicit-atomic-properties -Wno-objc-interface-ivars -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wsign-compare -Wno-shorten-64-to-32 -Wnewline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -Wno-c++11-extensions -DNDEBUG -DENABLE_3D_TRANSFORMS -DENABLE_ACCELERATED_OVERFLOW_SCROLLING -DENABLE_APPLE_PAY -DENABLE_APPLE_PAY_SESSION_V3 -DENABLE_APPLE_PAY_SESSION_V4 -DENABLE_APPLICATION_MANIFEST -DENABLE_ATTACHMENT_ELEMENT -DENABLE_AVF_CAPTIONS -DENABLE_CACHE_PARTITIONING -DENABLE_CHANNEL_MESSAGING -DENABLE_CONTENT_FILTERING -DENABLE_CSS_BOX_DECORATION_BREAK -DENABLE_CSS_COMPOSITING -DENABLE_CSS_PAINTING_API -DENABLE_CSS_SCROLL_SNAP -DENABLE_CSS_SELECTORS_LEVEL4 -DENABLE_CSS_TRAILING_WORD -DENABLE_CURSOR_VISIBILITY -DENABLE_CSS_CONIC_GRADIENTS -DENABLE_DATA_INTERACTION -DENABLE_DATACUE_VALUE -DENABLE_DATALIST_ELEMENT -DENABLE_DEVICE_ORIENTATION -DENABLE_DRAG_SUPPORT -DENABLE_ENCRYPTED_MEDIA -DENABLE_EXPERIMENTAL_FEATURES -DENABLE_FILTERS_LEVEL_2 -DENABLE_FTL_JIT -DENABLE_FULLSCREEN_API -DENABLE_GAMEPAD -DENABLE_GEOLOCATION -DENABLE_INDEXED_DATABASE -DENABLE_INDEXED_DATABASE_IN_WORKERS -DENABLE_INPUT_TYPE_COLOR -DENABLE_INPUT_TYPE_DATE -DENABLE_INPUT_TYPE_DATETIMELOCAL -DENABLE_INPUT_TYPE_MONTH -DENABLE_INPUT_TYPE_TIME -DENABLE_INPUT_TYPE_WEEK -DENABLE_INTERSECTION_OBSERVER -DENABLE_INTL -DENABLE_KEYBOARD_CODE_ATTRIBUTE -DENABLE_KEYBOARD_KEY_ATTRIBUTE -DENABLE_LEGACY_CSS_VENDOR_PREFIXES -DENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER -DENABLE_LEGACY_ENCRYPTED_MEDIA -DENABLE_LETTERPRESS -DENABLE_MATHML -DENABLE_MEDIA_CAPTURE -DENABLE_MEDIA_CONTROLS_SCRIPT -DENABLE_MEDIA_STREAM -DENABLE_METER_ELEMENT -DENABLE_NAVIGATOR_STANDALONE -DENABLE_PAYMENT_REQUEST -DENABLE_PUBLIC_SUFFIX_LIST -DENABLE_REMOTE_INSPECTOR -DENABLE_RESOURCE_USAGE -DENABLE_SERVICE_WORKER -DENABLE_SPEECH_SYNTHESIS -DENABLE_STREAMS_API -DENABLE_SUBTLE_CRYPTO -DENABLE_SVG_FONTS -DENABLE_TELEPHONE_NUMBER_DETECTION -DENABLE_TEXT_AUTOSIZING -DENABLE_USER_MESSAGE_HANDLERS -DENABLE_USERSELECT_ALL -DENABLE_VARIATION_FONTS -DENABLE_VIDEO -DENABLE_VIDEO_PRESENTATION_MODE -DENABLE_VIDEO_TRACK -DENABLE_WEB_AUDIO -DENABLE_WEB_AUTHN -DENABLE_WEB_RTC -DENABLE_WEBGL -DENABLE_WEBGL2 -DENABLE_WEBGPU -DENABLE_WEBMETAL -DENABLE_WIRELESS_PLAYBACK_TARGET -DENABLE_XSLT -DHAVE_CORE_PREDICTION -DU_HIDE_DEPRECATED_API -DU_DISABLE_RENAMING=1 -DU_SHOW_CPLUSPLUS_API=0 -DFRAMEWORK_NAME=WebKit -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -miphoneos-version-min=12.0 -g -gline-tables-only -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -iquote /Volumes/Data/slave/ios-12-release/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/WebKit-generated-files.hmap -I/Volumes/Data/slave/ios-12-release/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/WebKit-own-target-headers.hmap -I/Volumes/Data/slave/ios-12-release/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/WebKit-all-target-headers.hmap -iquote /Volumes/Data/slave/ios-12-release/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/WebKit-project-headers.hmap -I/Volumes/Data/slave/ios-12-release/build/WebKitBuild/Release-iphoneos/include -I/Volumes/Data/slave/ios-12-release/build/WebKitBuild/Release-iphoneos/usr/local/include -I/Volumes/Data/slave/ios-12-release/build/WebKitBuild/Release-iphoneos/WebCore.framework/PrivateHeaders/ForwardingHeaders -I/Volumes/Data/slave/ios-12-release/build/WebKitBuild/Release-iphoneos/DerivedSources/WebKit2 -I/Volumes/Data/slave/ios-12-release/build/WebKitBuild/Release-iphoneos/usr/local/include/WebKitAdditions -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/usr/local/include/WebKitAdditions -I/Volumes/Data/slave/ios-12-release/build/WebKitBuild/Release-iphoneos/usr/local/include/webrtc -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/usr/local/include/webrtc -I/Volumes/Data/slave/ios-12-release/build/Source/WebKit -I/Volumes/Data/slave/ios-12-release/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/DerivedSources/arm64 -I/Volumes/Data/slave/ios-12-release/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/DerivedSources -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat-security -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wno-unused-parameter -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough -F/Volumes/Data/slave/ios-12-release/build/WebKitBuild/Release-iphoneos -F/Volumes/Data/slave/ios-12-release/build/Source/WebKit/../../WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/12 -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/PrivateFrameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/ApplicationServices.framework/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Carbon.framework/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Quartz.framework/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/PrivateFrameworks -isystem /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/System.framework/PrivateHeaders -include /Volumes/Data/slave/ios-12-release/build/WebKitBuild/PrecompiledHeaders/WebKit2Prefix-fddeowvwnbarwhdpyltrvkwishzv/WebKit2Prefix.h -MMD -MT dependencies -MF /Volumes/Data/slave/ios-12-release/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/Objects-normal/arm64/UnifiedSource33-mm.d --serialize-diagnostics /Volumes/Data/slave/ios-12-release/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/Objects-normal/arm64/UnifiedSource33-mm.dia -c /Volumes/Data/slave/ios-12-release/build/WebKitBuild/Release-iphoneos/DerivedSources/WebKit2/unified-sources/UnifiedSource33-mm.mm -o /Volumes/Data/slave/ios-12-release/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/Objects-normal/arm64/UnifiedSource33-mm.o In file included from /Volumes/Data/slave/ios-12-release/build/WebKitBuild/Release-iphoneos/DerivedSources/WebKit2/unified-sources/UnifiedSource33-mm.mm:3: /Volumes/Data/slave/ios-12-release/build/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:1095:40: error: no member named 'HardwareKeyboardAvailabilityChanged' in namespace 'Messages::WebPage' m_process->send(Messages::WebPage::HardwareKeyboardAvailabilityChanged(), m_pageID); ~~~~~~~~~~~~~~~~~~~^ 1 error generated. ]] <
https://build.webkit.org/builders/Apple%20iOS%2012%20Release%20%28Build%29/builds/1177/steps/compile-webkit/logs/stdio
>
Attachments
Add attachment
proposed patch, testcase, etc.
Daniel Bates
Comment 1
2018-11-09 11:39:26 PST
Could this be caused by
bug #191324
.
Keith Rollin
Comment 2
2018-11-09 12:20:01 PST
I performed a clean build, changed WebPage.messages.in by removing SetControlledByAutomation, and performed an incremental build of WebKit with just: $ cd .../Sources/WebKit $ make The output included: PhaseScriptExecution Generate\ Derived\ Sources /Volumes/Data/dev/webkit/branches/test-derived-sources-incremental-change/OpenSource/WebKitBuild/WebKit.build/Release/Derived\ Sources.build/Script-C0CE72841247E66800BC0EC4.sh cd /Volumes/Data/dev/webkit/branches/test-derived-sources-incremental-change/OpenSource/Source/WebKit /bin/sh -c \"/Volumes/Data/dev/webkit/branches/test-derived-sources-incremental-change/OpenSource/WebKitBuild/WebKit.build/Release/Derived\ Sources.build/Script-C0CE72841247E66800BC0EC4.sh\" Generating message receiver for WebPage... Generating messages header for WebPage... Oddly, the build succeeded. So either that function isn't actually used, or this demonstrates that an old WebPageMessages.h file is hanging around.
Keith Rollin
Comment 3
2018-11-09 12:22:06 PST
The only WebPageMessages.h file in WebKitBuild is: ./WebKitBuild/Release/DerivedSources/WebKit2/WebPageMessages.h This has a modification date from the original build and includes references to the function I'd commented out. So DerivedSources.make *says* it's regenerating the expected files, but it doesn't seem to actually be doing that.
Keith Rollin
Comment 4
2018-11-09 12:23:20 PST
Nope, I was wrong about part of that. The modification date is consistent with the incremental build. So the file was re-generated, but seemingly from an old version of WebPage.messages.in.
Keith Rollin
Comment 5
2018-11-09 12:28:04 PST
Making subsequent changes to WebPage.messages.in does not cause it to be regenerated.
Keith Rollin
Comment 6
2018-11-09 13:12:46 PST
It seems that if you specify a non-empty set of output files, the interpretation of an empty set of input files changes. Without an output file specification, the empty set of input files means "make no assumptions about the inputs so always run the build script phase". With an output file specification, the empty set of input files means "there are no input files, so only run the build script phase if the output files don't exist". This interpretation seems to make sense, but it doesn't quite account for the next-build-after-a-clean-build where WebPage.messages.in was re-processed to no effect.
Keith Rollin
Comment 7
2018-11-09 13:13:43 PST
I'm going to see if simply removing the .xcfilelists from the projects -- thereby resetting the set of output files to empty -- will revert to previous behavior and at least let the builds start working again.
Keith Rollin
Comment 8
2018-11-09 14:19:50 PST
I wanted to track down why commenting out a message in a *message.in file and reprising resulted in the commented-out message still showing up in the generated files. Turns out that I was commenting out the message by moving to the first character in the line and inserting '# '. This doesn't work. In order to comment out a line, the '#' needs to be the very first character, not the first non-space character.
Keith Rollin
Comment 9
2018-11-09 14:33:08 PST
Removed use of .xcfilelists. Landed in
https://trac.webkit.org/r238055
.
Radar WebKit Bug Importer
Comment 10
2018-11-09 14:34:59 PST
<
rdar://problem/45956265
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug