Bug 217423 - Make it possible to send an arbitrary IPC message from JavaScript
Summary: Make it possible to send an arbitrary IPC message from JavaScript
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Ryosuke Niwa
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-10-07 01:44 PDT by Ryosuke Niwa
Modified: 2020-10-08 17:48 PDT (History)
13 users (show)

See Also:


Attachments
WIP (40.25 KB, patch)
2020-10-07 01:48 PDT, Ryosuke Niwa
no flags Details | Formatted Diff | Diff
Patch (51.27 KB, patch)
2020-10-08 03:06 PDT, Ryosuke Niwa
ews-feeder: commit-queue-
Details | Formatted Diff | Diff
Fixed release builds (50.85 KB, patch)
2020-10-08 03:49 PDT, Ryosuke Niwa
no flags Details | Formatted Diff | Diff
Fixed debug builds (51.16 KB, patch)
2020-10-08 10:07 PDT, Ryosuke Niwa
ggaren: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ryosuke Niwa 2020-10-07 01:44:47 PDT
Add a mechanism to send IPC directly from JavaScript for testing purposes.
Comment 1 Ryosuke Niwa 2020-10-07 01:47:16 PDT
<rdar://problem/65692515>
Comment 2 Ryosuke Niwa 2020-10-07 01:48:46 PDT
Created attachment 410737 [details]
WIP
Comment 3 Sam Weinig 2020-10-07 10:51:18 PDT
I realize this is not up for review yet, but would you mind going into a bit more detail about what problem this is solving?
Comment 4 Ryosuke Niwa 2020-10-07 11:29:21 PDT
(In reply to Sam Weinig from comment #3)
> I realize this is not up for review yet, but would you mind going into a bit
> more detail about what problem this is solving?

I'd rather not go into details in bugzilla too much but you can see the associated radar.
Comment 5 Ryosuke Niwa 2020-10-07 18:11:58 PDT
<rdar://problem/69969351>
Comment 6 Ryosuke Niwa 2020-10-08 03:06:31 PDT
Created attachment 410825 [details]
Patch
Comment 7 Ryosuke Niwa 2020-10-08 03:49:04 PDT
Created attachment 410826 [details]
Fixed release builds
Comment 8 Geoffrey Garen 2020-10-08 09:58:15 PDT
CompileC /Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/Objects-normal/x86_64/WebPage.o WebProcess/WebPage/WebPage.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/Source/WebKit
    export LANG=en_US.US-ASCII
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++1z -stdlib=libc++ -gmodules -Wno-trigraphs -fno-exceptions -fno-rtti -fno-sanitize=vptr -fpascal-strings -O0 -fno-common -Werror -Wno-missing-field-initializers -Wmissing-prototypes -Wunreachable-code -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -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-c++11-extensions -DENABLE_EXPERIMENTAL_FEATURES -DHAVE_CORE_PREDICTION -DFRAMEWORK_NAME=WebKit -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.14 -g -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/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/WebKit-generated-files.hmap -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/WebKit-own-target-headers.hmap -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/WebKit-all-target-headers.hmap -iquote /Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/WebKit-project-headers.hmap -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/Debug/include -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/Debug/usr/local/include -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/Debug/WebCore.framework/PrivateHeaders/ForwardingHeaders -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/Debug/DerivedSources/WebKit2 -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/Debug/usr/local/include/WebKitAdditions -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/local/include/WebKitAdditions -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/Debug/usr/local/include/webrtc -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/local/include/webrtc -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/Source/WebKit -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/DerivedSources-normal/x86_64 -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/DerivedSources/x86_64 -I/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/DerivedSources -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wconditional-uninitialized -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 -Wvla -Wliteral-conversion -F/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/Debug -F/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/Source/WebKit/../../WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101400 -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/PrivateFrameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/PrivateFrameworks -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/System.framework/PrivateHeaders -include /Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/PrecompiledHeaders/WebKit2Prefix-awuiitavrzgbhueqydpoigkowpiq/WebKit2Prefix.h -MMD -MT dependencies -MF /Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/Objects-normal/x86_64/WebPage.d --serialize-dia
gnostics /Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/Objects-normal/x86_64/WebPage.dia -c /Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/Source/WebKit/WebProcess/WebPage/WebPage.cpp -o /Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/WebKit.build/Debug/WebKit.build/Objects-normal/x86_64/WebPage.o
/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/Source/WebKit/WebProcess/WebPage/WebPage.cpp:3790:28: error: use of undeclared identifier 'parameters'
Comment 9 Ryosuke Niwa 2020-10-08 10:07:17 PDT
Created attachment 410857 [details]
Fixed debug builds
Comment 10 Geoffrey Garen 2020-10-08 15:43:18 PDT
Comment on attachment 410857 [details]
Fixed debug builds

View in context: https://bugs.webkit.org/attachment.cgi?id=410857&action=review

r=me

> Source/WebKit/ChangeLog:13
> +        It takes the destination process name (UI, GPU, or Networking), the destinatoin ID (e.g. WebPageProxy ID),

destination

> Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:131
> +void JSIPC::finalize(JSObjectRef object)
> +{
> +    unwrap(object)->ref();
> +}

No
Comment 11 Ryosuke Niwa 2020-10-08 17:48:37 PDT
Committed r268239: <https://trac.webkit.org/changeset/268239>