• Alexey Kozyatinskiy's avatar
    [inspector] added Runtime.installBinding method · 49c4ac77
    Alexey Kozyatinskiy authored
    A lot of different clients use console.debug as a message channel from
    page to protocol client. console.debug is a little slow and not
    designed for this use case.
    
    This CL introduces new method: Runtime.installBinding. This method
    installs binding function by given name on global object on each
    inspected context including any context created later.
    Binding function takes exactly one string argument. Each time when
    binding function is called, Runtime.bindingCalled notification is
    triggered and includes passed payload.
    
    Binding function survives page reload and reinstalled right after
    console object is setup. So installed binding can be used inside
    script added by Page.addScriptToEvaluateOnNewDocument so client may do
    something like:
    Runtime.installBinding({name: 'send'});
    Page.addScriptToEvaluateOnNewDocument({source: 'console.debug = send'});
    .. navigate page ..
    
    In microbenchmark this function is ~4.6 times faster then
    console.debug.
    
    R=lushnikov@chromium.org,pfeldman@chromium.org
    
    Bug: none
    Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
    Change-Id: I3e0e231dde9d45116709d248f6e9e7ec7037e8e3
    Reviewed-on: https://chromium-review.googlesource.com/1077662
    Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
    Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#53462}
    49c4ac77
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...