• jyasskin's avatar
    Revert of Minor changes to allow Pepper InstancePrivate tests to pass with gin... · c399366b
    jyasskin authored
    Revert of Minor changes to allow Pepper InstancePrivate tests to pass with gin (patchset #3 of https://codereview.chromium.org/472693002/)
    
    Reason for revert:
    Caused failures in DrMemory:
    
    UNADDRESSABLE ACCESS of freed memory: writing 0x031c0278-0x031c0279 1 byte(s)
    # 0 ppapi_tests.dll!`anonymous namespace'::InstanceSO::~InstanceSO             [ppapi\tests\test_instance_deprecated.cc:48]
    # 1 ppapi_tests.dll!`anonymous namespace'::InstanceSO::`scalar deleting destructor'
    # 2 ppapi_tests.dll!pp::deprecated::`anonymous namespace'::Deallocate          [ppapi\cpp\dev\scriptable_object_deprecated.cc:126]
    # 3 ppapi_proxy.dll!ppapi::CallWhileUnlocked<>                                 [ppapi\shared_impl\proxy_lock.h:123]
    # 4 ppapi_proxy.dll!ppapi::proxy::PluginVarTracker::DidDeleteInstance          [ppapi\proxy\plugin_var_tracker.cc:281]
    # 5 ppapi_proxy.dll!ppapi::proxy::PPP_Instance_Proxy::OnPluginMsgDidDestroy    [ppapi\proxy\ppp_instance_proxy.cc:194]
    # 6 ppapi_proxy.dll!PpapiMsg_PPPInstance_DidDestroy::Dispatch<>                [ppapi\proxy\ppapi_messages.h:670]
    # 7 ppapi_proxy.dll!ppapi::proxy::PPP_Instance_Proxy::OnMessageReceived        [ppapi\proxy\ppp_instance_proxy.cc:143]
    # 8 ppapi_proxy.dll!ppapi::proxy::Dispatcher::OnMessageReceived                [ppapi\proxy\dispatcher.cc:69]
    # 9 ppapi_proxy.dll!ppapi::proxy::PluginDispatcher::OnMessageReceived          [ppapi\proxy\plugin_dispatcher.cc:238]
    #10 ipc.dll!IPC::ChannelProxy::Context::OnDispatchMessage                      [ipc\ipc_channel_proxy.cc:273]
    #11 ipc.dll!base::internal::Invoker<>::Run                                     [base\bind_internal.h:1253]
    #12 base.dll!base::debug::TaskAnnotator::RunTask                               [base\debug\task_annotator.cc:62]
    #13 base.dll!base::MessageLoop::RunTask                                        [base\message_loop\message_loop.cc:436]
    #14 base.dll!base::MessageLoop::DeferOrRunPendingTask                          [base\message_loop\message_loop.cc:445]
    #15 base.dll!base::MessageLoop::DoWork                                         [base\message_loop\message_loop.cc:552]
    #16 base.dll!base::MessagePumpDefault::Run                                     [base\message_loop\message_pump_default.cc:32]
    #17 base.dll!base::MessageLoop::RunHandler                                     [base\message_loop\message_loop.cc:408]
    #18 content.dll!content::PpapiPluginMain                                       [content\ppapi_plugin\ppapi_plugin_main.cc:141]
    #19 content.dll!content::RunNamedProcessTypeMain                               [content\app\content_main_runner.cc:415]
    #20 content.dll!content::ContentMainRunnerImpl::Run                            [content\app\content_main_runner.cc:764]
    #21 content.dll!content::ContentMain                                           [content\app\content_main.cc:19]
    #22 content::LaunchTests                                                       [content\public\test\test_launcher.cc:475]
    #23 main                                                                       [content\test\content_test_launcher.cc:123]
    
    First appeared in http://build.chromium.org/p/chromium.memory.fyi/builders/Windows%20Content%20Browser%20%28DrMemory%29/builds/631/steps/memory%20test%3A%20content_browsertests/logs/stdio.
    
    Original issue's description:
    > Minor changes to allow Pepper InstancePrivate tests to pass with gin
    >
    > This includes some minor changes which allow tests to when NPObject is replaced
    > by gin in pepper:
    > -Add shared library exports for use of PepperTryCatch and ScopedPPVarArray in
    > tests.
    > -Add gin as a dependency to content_unittests for use in host_var_tracker_unittest
    > -Change TestInstanceDeprecated so that it doesn't execute a script from the
    > ScriptableObject upon destruction. The reason for this is that the garbage
    > collector is manually run from the destructor of the plugin Instance object.
    > This results in destruction of the ScriptableObject and then javascript is
    > re-entered via ExecuteScript. This should never happen outside tests because
    > the garbage collector won't be run synchronously. Instead of running
    > ExecuteScript, which just set a variable in the Instance object to verify
    > that the ScriptableObject was correctly destroyed.
    >
    > BUG=351636
    >
    > Committed: https://chromium.googlesource.com/chromium/src/+/92c3074f4b4417924115f880657f1ec15da0e0ba
    
    TBR=dmichael@chromium.org,raymes@chromium.org
    NOTREECHECKS=true
    NOTRY=true
    BUG=351636,407372
    
    Review URL: https://codereview.chromium.org/502143003
    
    Cr-Commit-Position: refs/heads/master@{#291780}
    c399366b
pepper_try_catch.h 2.83 KB