diff options
Diffstat (limited to 'chromium/ppapi/proxy')
23 files changed, 184 insertions, 93 deletions
diff --git a/chromium/ppapi/proxy/BUILD.gn b/chromium/ppapi/proxy/BUILD.gn index ed7280d1927..1f5e87cb4f2 100644 --- a/chromium/ppapi/proxy/BUILD.gn +++ b/chromium/ppapi/proxy/BUILD.gn @@ -277,6 +277,8 @@ component("proxy") { deps = [ ":common", "//base", + "//device/base/synchronization", + "//device/gamepad/public/cpp:shared_with_blink", "//gpu/command_buffer/client:gles2_implementation", "//gpu/command_buffer/common", "//gpu/ipc/common:command_buffer_traits", diff --git a/chromium/ppapi/proxy/DEPS b/chromium/ppapi/proxy/DEPS index 4cf7a832494..1d3692ea94f 100644 --- a/chromium/ppapi/proxy/DEPS +++ b/chromium/ppapi/proxy/DEPS @@ -1,5 +1,6 @@ include_rules = [ "+base", + "+device", "+gin", "+gpu", "+ipc", diff --git a/chromium/ppapi/proxy/file_chooser_resource_unittest.cc b/chromium/ppapi/proxy/file_chooser_resource_unittest.cc index e6ad3ed27b2..5d471f6751e 100644 --- a/chromium/ppapi/proxy/file_chooser_resource_unittest.cc +++ b/chromium/ppapi/proxy/file_chooser_resource_unittest.cc @@ -5,7 +5,6 @@ #include <stddef.h> #include <stdint.h> -#include "base/message_loop/message_loop.h" #include "ppapi/c/dev/ppb_file_chooser_dev.h" #include "ppapi/c/pp_errors.h" #include "ppapi/c/ppb_file_ref.h" diff --git a/chromium/ppapi/proxy/file_system_resource_unittest.cc b/chromium/ppapi/proxy/file_system_resource_unittest.cc index d8917ceb4bc..84a7e3f773a 100644 --- a/chromium/ppapi/proxy/file_system_resource_unittest.cc +++ b/chromium/ppapi/proxy/file_system_resource_unittest.cc @@ -4,7 +4,6 @@ #include <stdint.h> -#include "base/message_loop/message_loop.h" #include "ppapi/c/pp_errors.h" #include "ppapi/c/ppb_file_io.h" #include "ppapi/c/ppb_file_ref.h" diff --git a/chromium/ppapi/proxy/gamepad_resource.cc b/chromium/ppapi/proxy/gamepad_resource.cc index 67253034c0d..2ae1c934d56 100644 --- a/chromium/ppapi/proxy/gamepad_resource.cc +++ b/chromium/ppapi/proxy/gamepad_resource.cc @@ -7,7 +7,9 @@ #include <string.h> #include "base/bind.h" +#include "base/memory/shared_memory.h" #include "base/threading/platform_thread.h" +#include "device/gamepad/public/cpp/gamepads.h" #include "ppapi/proxy/dispatch_reply_message.h" #include "ppapi/proxy/ppapi_messages.h" #include "ppapi/shared_impl/ppb_gamepad_shared.h" @@ -15,34 +17,6 @@ namespace ppapi { namespace proxy { -namespace { - -// This is the read logic from content/common/gamepad_seqlock.h -base::subtle::Atomic32 ReadBegin(const base::subtle::Atomic32* sequence) { - base::subtle::Atomic32 version; - for (;;) { - version = base::subtle::NoBarrier_Load(sequence); - - // If the counter is even, then the associated data might be in a - // consistent state, so we can try to read. - if ((version & 1) == 0) - break; - - // Otherwise, the writer is in the middle of an update. Retry the read. - base::PlatformThread::YieldCurrentThread(); - } - return version; -} - -bool ReadRetry(const base::subtle::Atomic32* sequence, - base::subtle::Atomic32 version) { - // If the sequence number was updated then a read should be re-attempted. - // -- Load fence, read membarrier - return base::subtle::Release_Load(sequence) != version; -} - -} // namespace - GamepadResource::GamepadResource(Connection connection, PP_Instance instance) : PluginResource(connection, instance), buffer_(NULL) { @@ -83,19 +57,19 @@ void GamepadResource::Sample(PP_Instance /* instance */, const int kMaximumContentionCount = 10; int contention_count = -1; base::subtle::Atomic32 version; - WebKitGamepads read_into; + device::Gamepads read_into; do { - version = ReadBegin(&buffer_->sequence); - memcpy(&read_into, &buffer_->buffer, sizeof(read_into)); + version = buffer_->seqlock.ReadBegin(); + memcpy(&read_into, &buffer_->data, sizeof(read_into)); ++contention_count; if (contention_count == kMaximumContentionCount) break; - } while (ReadRetry(&buffer_->sequence, version)); + } while (buffer_->seqlock.ReadRetry(version)); // In the event of a read failure, just leave the last read data as-is (the // hardware thread is taking unusally long). if (contention_count < kMaximumContentionCount) - ConvertWebKitGamepadData(read_into, &last_read_); + ConvertDeviceGamepadData(read_into, &last_read_); memcpy(data, &last_read_, sizeof(PP_GamepadsSampleData)); } @@ -107,8 +81,8 @@ void GamepadResource::OnPluginMsgSendMemory( params.TakeSharedMemoryHandleAtIndex(0, &handle); shared_memory_.reset(new base::SharedMemory(handle, true)); - CHECK(shared_memory_->Map(sizeof(ContentGamepadHardwareBuffer))); - buffer_ = static_cast<const ContentGamepadHardwareBuffer*>( + CHECK(shared_memory_->Map(sizeof(device::GamepadHardwareBuffer))); + buffer_ = static_cast<const device::GamepadHardwareBuffer*>( shared_memory_->memory()); } diff --git a/chromium/ppapi/proxy/gamepad_resource.h b/chromium/ppapi/proxy/gamepad_resource.h index b17501fb29b..eceb908cbb2 100644 --- a/chromium/ppapi/proxy/gamepad_resource.h +++ b/chromium/ppapi/proxy/gamepad_resource.h @@ -9,11 +9,10 @@ #include "base/compiler_specific.h" #include "base/macros.h" -#include "base/memory/shared_memory.h" +#include "device/gamepad/gamepad_shared_buffer.h" #include "ppapi/c/ppb_gamepad.h" #include "ppapi/proxy/plugin_resource.h" #include "ppapi/proxy/ppapi_proxy_export.h" -#include "ppapi/shared_impl/ppb_gamepad_shared.h" #include "ppapi/thunk/ppb_gamepad_api.h" struct PP_GamepadsSampleData; @@ -46,7 +45,7 @@ class PPAPI_PROXY_EXPORT GamepadResource void OnPluginMsgSendMemory(const ResourceMessageReplyParams& params); std::unique_ptr<base::SharedMemory> shared_memory_; - const ContentGamepadHardwareBuffer* buffer_; + const device::GamepadHardwareBuffer* buffer_; // Last data returned so we can use this in the event of a read failure. PP_GamepadsSampleData last_read_; diff --git a/chromium/ppapi/proxy/plugin_dispatcher.cc b/chromium/ppapi/proxy/plugin_dispatcher.cc index 9772a7c1e5e..6bc240d2f43 100644 --- a/chromium/ppapi/proxy/plugin_dispatcher.cc +++ b/chromium/ppapi/proxy/plugin_dispatcher.cc @@ -9,7 +9,6 @@ #include "base/compiler_specific.h" #include "base/logging.h" -#include "base/message_loop/message_loop.h" #include "base/metrics/histogram_macros.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" diff --git a/chromium/ppapi/proxy/ppapi_messages.h b/chromium/ppapi/proxy/ppapi_messages.h index 986f39e8772..1ab15365734 100644 --- a/chromium/ppapi/proxy/ppapi_messages.h +++ b/chromium/ppapi/proxy/ppapi_messages.h @@ -230,6 +230,11 @@ IPC_STRUCT_TRAITS_BEGIN(PP_PdfPrintPresetOptions_Dev) IPC_STRUCT_TRAITS_MEMBER(uniform_page_size) IPC_STRUCT_TRAITS_END() +IPC_STRUCT_TRAITS_BEGIN(PP_PdfPrintSettings_Dev) + IPC_STRUCT_TRAITS_MEMBER(num_pages_per_sheet) + IPC_STRUCT_TRAITS_MEMBER(scale_factor) +IPC_STRUCT_TRAITS_END() + IPC_STRUCT_TRAITS_BEGIN(PP_PrivateAccessibilityViewportInfo) IPC_STRUCT_TRAITS_MEMBER(zoom) IPC_STRUCT_TRAITS_MEMBER(scroll) @@ -817,9 +822,25 @@ IPC_MESSAGE_ROUTED3(PpapiMsg_PPPPdf_SetSelectionBounds, IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPdf_CanEditText, PP_Instance /* instance */, PP_Bool /* result */) +IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPdf_HasEditableText, + PP_Instance /* instance */, + PP_Bool /* result */) IPC_MESSAGE_ROUTED2(PpapiMsg_PPPPdf_ReplaceSelection, PP_Instance /* instance */, std::string /* text */) +IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPdf_CanUndo, + PP_Instance /* instance */, + PP_Bool /* result */) +IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPdf_CanRedo, + PP_Instance /* instance */, + PP_Bool /* result */) +IPC_MESSAGE_ROUTED1(PpapiMsg_PPPPdf_Undo, PP_Instance /* instance */) +IPC_MESSAGE_ROUTED1(PpapiMsg_PPPPdf_Redo, PP_Instance /* instance */) +IPC_SYNC_MESSAGE_ROUTED3_1(PpapiMsg_PPPPdf_PrintBegin, + PP_Instance /* instance */, + PP_PrintSettings_Dev /* print_settings */, + PP_PdfPrintSettings_Dev /* pdf_print_settings */, + int32_t /* result */) // Find IPC_MESSAGE_ROUTED2(PpapiPluginMsg_PPPFind_StartFind, @@ -850,7 +871,7 @@ IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPrinting_QuerySupportedFormats, uint32_t /* result */) IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPPrinting_Begin, PP_Instance /* instance */, - std::string /* settings_string */, + PP_PrintSettings_Dev /* settings */, int32_t /* result */) IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPPrinting_PrintPages, PP_Instance /* instance */, diff --git a/chromium/ppapi/proxy/ppb_graphics_3d_proxy.cc b/chromium/ppapi/proxy/ppb_graphics_3d_proxy.cc index 07b19748fe2..37627d573f7 100644 --- a/chromium/ppapi/proxy/ppb_graphics_3d_proxy.cc +++ b/chromium/ppapi/proxy/ppb_graphics_3d_proxy.cc @@ -124,7 +124,7 @@ int32_t Graphics3D::DoSwapBuffers(const gpu::SyncToken& sync_token, DCHECK(!sync_token.HasData()); gpu::gles2::GLES2Implementation* gl = gles2_impl(); - gl->SwapBuffers(); + gl->SwapBuffers(swap_id_++); PluginDispatcher::GetForResource(this)->Send( new PpapiHostMsg_PPBGraphics3D_TakeFrontBuffer(API_ID_PPB_GRAPHICS_3D, diff --git a/chromium/ppapi/proxy/ppb_graphics_3d_proxy.h b/chromium/ppapi/proxy/ppb_graphics_3d_proxy.h index d686f0ceb06..09d7f63a2ee 100644 --- a/chromium/ppapi/proxy/ppb_graphics_3d_proxy.h +++ b/chromium/ppapi/proxy/ppb_graphics_3d_proxy.h @@ -69,6 +69,8 @@ class PPAPI_PROXY_EXPORT Graphics3D : public PPB_Graphics3D_Shared { std::unique_ptr<PpapiCommandBufferProxy> command_buffer_; + uint64_t swap_id_ = 0; + DISALLOW_COPY_AND_ASSIGN(Graphics3D); }; diff --git a/chromium/ppapi/proxy/ppb_testing_proxy.cc b/chromium/ppapi/proxy/ppb_testing_proxy.cc index f354776a01f..e70761ef4c2 100644 --- a/chromium/ppapi/proxy/ppb_testing_proxy.cc +++ b/chromium/ppapi/proxy/ppb_testing_proxy.cc @@ -6,7 +6,6 @@ #include <stddef.h> -#include "base/message_loop/message_loop.h" #include "base/run_loop.h" #include "ppapi/c/private/ppb_testing_private.h" #include "ppapi/proxy/enter_proxy.h" diff --git a/chromium/ppapi/proxy/ppb_var_deprecated_proxy.cc b/chromium/ppapi/proxy/ppb_var_deprecated_proxy.cc index 40d313e90e0..e388b535eea 100644 --- a/chromium/ppapi/proxy/ppb_var_deprecated_proxy.cc +++ b/chromium/ppapi/proxy/ppb_var_deprecated_proxy.cc @@ -8,7 +8,6 @@ #include "base/bind.h" #include "base/logging.h" -#include "base/message_loop/message_loop.h" #include "ppapi/c/dev/ppb_var_deprecated.h" #include "ppapi/c/pp_var.h" #include "ppapi/c/ppb_core.h" diff --git a/chromium/ppapi/proxy/ppp_instance_private_proxy_unittest.cc b/chromium/ppapi/proxy/ppp_instance_private_proxy_unittest.cc index cbf9f9cc328..db491cb1b02 100644 --- a/chromium/ppapi/proxy/ppp_instance_private_proxy_unittest.cc +++ b/chromium/ppapi/proxy/ppp_instance_private_proxy_unittest.cc @@ -5,7 +5,6 @@ #include <stdint.h> #include "base/bind.h" -#include "base/message_loop/message_loop.h" #include "base/test/test_timeouts.h" #include "base/time/time.h" #include "ppapi/c/dev/ppb_var_deprecated.h" diff --git a/chromium/ppapi/proxy/ppp_pdf_proxy.cc b/chromium/ppapi/proxy/ppp_pdf_proxy.cc index f59060cb670..74d5c5864dc 100644 --- a/chromium/ppapi/proxy/ppp_pdf_proxy.cc +++ b/chromium/ppapi/proxy/ppp_pdf_proxy.cc @@ -69,15 +69,67 @@ PP_Bool CanEditText(PP_Instance instance) { return ret; } +PP_Bool HasEditableText(PP_Instance instance) { + PP_Bool ret = PP_FALSE; + HostDispatcher::GetForInstance(instance)->Send( + new PpapiMsg_PPPPdf_HasEditableText(API_ID_PPP_PDF, instance, &ret)); + return ret; +} + void ReplaceSelection(PP_Instance instance, const char* text) { HostDispatcher::GetForInstance(instance)->Send( new PpapiMsg_PPPPdf_ReplaceSelection(API_ID_PPP_PDF, instance, text)); } +PP_Bool CanUndo(PP_Instance instance) { + PP_Bool ret = PP_FALSE; + HostDispatcher::GetForInstance(instance)->Send( + new PpapiMsg_PPPPdf_CanUndo(API_ID_PPP_PDF, instance, &ret)); + return ret; +} + +PP_Bool CanRedo(PP_Instance instance) { + PP_Bool ret = PP_FALSE; + HostDispatcher::GetForInstance(instance)->Send( + new PpapiMsg_PPPPdf_CanRedo(API_ID_PPP_PDF, instance, &ret)); + return ret; +} + +void Undo(PP_Instance instance) { + HostDispatcher::GetForInstance(instance)->Send( + new PpapiMsg_PPPPdf_Undo(API_ID_PPP_PDF, instance)); +} + +void Redo(PP_Instance instance) { + HostDispatcher::GetForInstance(instance)->Send( + new PpapiMsg_PPPPdf_Redo(API_ID_PPP_PDF, instance)); +} + +int32_t PrintBegin(PP_Instance instance, + const PP_PrintSettings_Dev* print_settings, + const PP_PdfPrintSettings_Dev* pdf_print_settings) { + int32_t ret = 0; + HostDispatcher::GetForInstance(instance)->Send(new PpapiMsg_PPPPdf_PrintBegin( + API_ID_PPP_PDF, instance, *print_settings, *pdf_print_settings, &ret)); + return ret; +} + const PPP_Pdf ppp_pdf_interface = { - &GetLinkAtPosition, &Transform, &GetPrintPresetOptionsFromDocument, - &EnableAccessibility, &SetCaretPosition, &MoveRangeSelectionExtent, - &SetSelectionBounds, &CanEditText, &ReplaceSelection, + &GetLinkAtPosition, + &Transform, + &GetPrintPresetOptionsFromDocument, + &EnableAccessibility, + &SetCaretPosition, + &MoveRangeSelectionExtent, + &SetSelectionBounds, + &CanEditText, + &HasEditableText, + &ReplaceSelection, + &CanUndo, + &CanRedo, + &Undo, + &Redo, + &PrintBegin, }; #else // The NaCl plugin doesn't need the host side interface - stub it out. @@ -121,8 +173,15 @@ bool PPP_Pdf_Proxy::OnMessageReceived(const IPC::Message& msg) { IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_SetSelectionBounds, OnPluginMsgSetSelectionBounds) IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_CanEditText, OnPluginMsgCanEditText) + IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_HasEditableText, + OnPluginMsgHasEditableText) IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_ReplaceSelection, OnPluginMsgReplaceSelection) + IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_CanUndo, OnPluginMsgCanUndo) + IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_CanRedo, OnPluginMsgCanRedo) + IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_Undo, OnPluginMsgUndo) + IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_Redo, OnPluginMsgRedo) + IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_PrintBegin, OnPluginMsgPrintBegin) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() return handled; @@ -177,11 +236,51 @@ void PPP_Pdf_Proxy::OnPluginMsgCanEditText(PP_Instance instance, CallWhileUnlocked(ppp_pdf_->CanEditText, instance)); } +void PPP_Pdf_Proxy::OnPluginMsgHasEditableText(PP_Instance instance, + PP_Bool* result) { + *result = PP_FromBool(ppp_pdf_ && + CallWhileUnlocked(ppp_pdf_->HasEditableText, instance)); +} + void PPP_Pdf_Proxy::OnPluginMsgReplaceSelection(PP_Instance instance, const std::string& text) { if (ppp_pdf_) CallWhileUnlocked(ppp_pdf_->ReplaceSelection, instance, text.c_str()); } +void PPP_Pdf_Proxy::OnPluginMsgCanUndo(PP_Instance instance, PP_Bool* result) { + *result = + PP_FromBool(ppp_pdf_ && CallWhileUnlocked(ppp_pdf_->CanUndo, instance)); +} + +void PPP_Pdf_Proxy::OnPluginMsgCanRedo(PP_Instance instance, PP_Bool* result) { + *result = + PP_FromBool(ppp_pdf_ && CallWhileUnlocked(ppp_pdf_->CanRedo, instance)); +} + +void PPP_Pdf_Proxy::OnPluginMsgUndo(PP_Instance instance) { + if (ppp_pdf_) + CallWhileUnlocked(ppp_pdf_->Undo, instance); +} + +void PPP_Pdf_Proxy::OnPluginMsgRedo(PP_Instance instance) { + if (ppp_pdf_) + CallWhileUnlocked(ppp_pdf_->Redo, instance); +} + +void PPP_Pdf_Proxy::OnPluginMsgPrintBegin( + PP_Instance instance, + const PP_PrintSettings_Dev& print_settings, + const PP_PdfPrintSettings_Dev& pdf_print_settings, + int32_t* result) { + if (!ppp_pdf_) { + *result = 0; + return; + } + + *result = CallWhileUnlocked(ppp_pdf_->PrintBegin, instance, &print_settings, + &pdf_print_settings); +} + } // namespace proxy } // namespace ppapi diff --git a/chromium/ppapi/proxy/ppp_pdf_proxy.h b/chromium/ppapi/proxy/ppp_pdf_proxy.h index ff373fdf7f8..a2eff423eee 100644 --- a/chromium/ppapi/proxy/ppp_pdf_proxy.h +++ b/chromium/ppapi/proxy/ppp_pdf_proxy.h @@ -5,6 +5,8 @@ #ifndef PPAPI_PROXY_PPP_PDF_PROXY_H_ #define PPAPI_PROXY_PPP_PDF_PROXY_H_ +#include <string> + #include "base/macros.h" #include "ppapi/c/private/ppp_pdf.h" #include "ppapi/proxy/interface_proxy.h" @@ -38,8 +40,17 @@ class PPP_Pdf_Proxy : public InterfaceProxy { const PP_FloatPoint& base, const PP_FloatPoint& extent); void OnPluginMsgCanEditText(PP_Instance instance, PP_Bool* result); + void OnPluginMsgHasEditableText(PP_Instance instance, PP_Bool* result); + void OnPluginMsgCanUndo(PP_Instance instance, PP_Bool* result); + void OnPluginMsgCanRedo(PP_Instance instance, PP_Bool* result); + void OnPluginMsgUndo(PP_Instance instance); + void OnPluginMsgRedo(PP_Instance instance); void OnPluginMsgReplaceSelection(PP_Instance instance, const std::string& text); + void OnPluginMsgPrintBegin(PP_Instance instance, + const PP_PrintSettings_Dev& print_settings, + const PP_PdfPrintSettings_Dev& pdf_print_settings, + int32_t* result); // When this proxy is in the plugin side, this value caches the interface // pointer so we don't have to retrieve it from the dispatcher each time. diff --git a/chromium/ppapi/proxy/ppp_printing_proxy.cc b/chromium/ppapi/proxy/ppp_printing_proxy.cc index 512f0ed4bee..c5a29190f34 100644 --- a/chromium/ppapi/proxy/ppp_printing_proxy.cc +++ b/chromium/ppapi/proxy/ppp_printing_proxy.cc @@ -41,18 +41,13 @@ uint32_t QuerySupportedFormats(PP_Instance instance) { } int32_t Begin(PP_Instance instance, - const struct PP_PrintSettings_Dev* print_settings) { + const PP_PrintSettings_Dev* print_settings) { if (!HasPrintingPermission(instance)) return 0; - // Settings is just serialized as a string. - std::string settings_string; - settings_string.resize(sizeof(*print_settings)); - memcpy(&settings_string[0], print_settings, sizeof(*print_settings)); int32_t result = 0; - HostDispatcher::GetForInstance(instance)->Send( - new PpapiMsg_PPPPrinting_Begin(API_ID_PPP_PRINTING, instance, - settings_string, &result)); + HostDispatcher::GetForInstance(instance)->Send(new PpapiMsg_PPPPrinting_Begin( + API_ID_PPP_PRINTING, instance, *print_settings, &result)); return result; } @@ -157,17 +152,14 @@ void PPP_Printing_Proxy::OnPluginMsgQuerySupportedFormats(PP_Instance instance, } void PPP_Printing_Proxy::OnPluginMsgBegin(PP_Instance instance, - const std::string& settings_string, + const PP_PrintSettings_Dev& settings, int32_t* result) { - *result = 0; - - PP_PrintSettings_Dev settings; - if (settings_string.size() != sizeof(settings)) + if (!ppp_printing_impl_) { + *result = 0; return; - memcpy(&settings, &settings_string[0], sizeof(settings)); + } - if (ppp_printing_impl_) - *result = CallWhileUnlocked(ppp_printing_impl_->Begin, instance, &settings); + *result = CallWhileUnlocked(ppp_printing_impl_->Begin, instance, &settings); } void PPP_Printing_Proxy::OnPluginMsgPrintPages( diff --git a/chromium/ppapi/proxy/ppp_printing_proxy.h b/chromium/ppapi/proxy/ppp_printing_proxy.h index 6f212bbb78e..bf7c15a7f0e 100644 --- a/chromium/ppapi/proxy/ppp_printing_proxy.h +++ b/chromium/ppapi/proxy/ppp_printing_proxy.h @@ -36,7 +36,7 @@ class PPP_Printing_Proxy : public InterfaceProxy { // Message handlers. void OnPluginMsgQuerySupportedFormats(PP_Instance instance, uint32_t* result); void OnPluginMsgBegin(PP_Instance instance, - const std::string& settings_string, + const PP_PrintSettings_Dev& settings, int32_t* result); void OnPluginMsgPrintPages( PP_Instance instance, diff --git a/chromium/ppapi/proxy/printing_resource_unittest.cc b/chromium/ppapi/proxy/printing_resource_unittest.cc index 09589c34f6d..0b0d78b1d8a 100644 --- a/chromium/ppapi/proxy/printing_resource_unittest.cc +++ b/chromium/ppapi/proxy/printing_resource_unittest.cc @@ -6,7 +6,6 @@ #include <cstring> -#include "base/message_loop/message_loop.h" #include "ppapi/c/dev/ppb_printing_dev.h" #include "ppapi/c/pp_errors.h" #include "ppapi/proxy/locking_resource_releaser.h" @@ -69,16 +68,14 @@ TEST_F(PrintingResourceTest, GetDefaultPrintSettings) { params.sequence()); reply_params.set_result(PP_OK); - PP_PrintSettings_Dev reply_settings = { - { { 0, 0 }, { 500, 515 } }, - { { 25, 35 }, { 300, 720 } }, - { 600, 700 }, - 200, - PP_PRINTORIENTATION_NORMAL, - PP_PRINTSCALINGOPTION_NONE, - PP_FALSE, - PP_PRINTOUTPUTFORMAT_PDF - }; + PP_PrintSettings_Dev reply_settings = {{{0, 0}, {500, 515}}, + {{25, 35}, {300, 720}}, + {600, 700}, + 200, + PP_PRINTORIENTATION_NORMAL, + PP_PRINTSCALINGOPTION_NONE, + PP_FALSE, + PP_PRINTOUTPUTFORMAT_PDF}; PluginMessageFilter::DispatchResourceReplyForTest( reply_params, PpapiPluginMsg_Printing_GetDefaultPrintSettingsReply( diff --git a/chromium/ppapi/proxy/tracked_callback_unittest.cc b/chromium/ppapi/proxy/tracked_callback_unittest.cc index 30868013105..ce63a4cd313 100644 --- a/chromium/ppapi/proxy/tracked_callback_unittest.cc +++ b/chromium/ppapi/proxy/tracked_callback_unittest.cc @@ -39,21 +39,15 @@ class CallbackThread : public base::SimpleThread { ~CallbackThread() override {} // base::SimpleThread overrides. - void Start() override { - { - ProxyAutoLock acquire; - // Create the message loop here, after PpapiGlobals has been created. - message_loop_ = new MessageLoopResource(instance_); - } - base::SimpleThread::Start(); + void BeforeStart() override { + ProxyAutoLock acquire; + // Create the message loop here, after PpapiGlobals has been created. + message_loop_ = new MessageLoopResource(instance_); } - void Join() override { - { - ProxyAutoLock acquire; - message_loop()->PostQuit(PP_TRUE); - message_loop_ = nullptr; - } - base::SimpleThread::Join(); + void BeforeJoin() override { + ProxyAutoLock acquire; + message_loop()->PostQuit(PP_TRUE); + message_loop_ = nullptr; } void Run() override { ProxyAutoLock acquire; diff --git a/chromium/ppapi/proxy/url_loader_resource.cc b/chromium/ppapi/proxy/url_loader_resource.cc index e94901dda6c..f64a464af02 100644 --- a/chromium/ppapi/proxy/url_loader_resource.cc +++ b/chromium/ppapi/proxy/url_loader_resource.cc @@ -16,6 +16,7 @@ #include "ppapi/proxy/ppapi_messages.h" #include "ppapi/proxy/url_request_info_resource.h" #include "ppapi/proxy/url_response_info_resource.h" +#include "ppapi/shared_impl/ppapi_features.h" #include "ppapi/shared_impl/ppapi_globals.h" #include "ppapi/shared_impl/url_response_info_data.h" #include "ppapi/thunk/enter.h" @@ -186,6 +187,9 @@ int32_t URLLoaderResource::ReadResponseBody( int32_t URLLoaderResource::FinishStreamingToFile( scoped_refptr<TrackedCallback> callback) { + if (!base::FeatureList::IsEnabled(features::kStreamToFile)) + return PP_ERROR_NOTSUPPORTED; + int32_t rv = ValidateCallback(callback); if (rv != PP_OK) return rv; diff --git a/chromium/ppapi/proxy/url_request_info_resource.cc b/chromium/ppapi/proxy/url_request_info_resource.cc index a1ba17cc085..9d554f4a304 100644 --- a/chromium/ppapi/proxy/url_request_info_resource.cc +++ b/chromium/ppapi/proxy/url_request_info_resource.cc @@ -5,6 +5,7 @@ #include "ppapi/proxy/url_request_info_resource.h" #include "base/strings/string_number_conversions.h" +#include "ppapi/shared_impl/ppapi_features.h" #include "ppapi/shared_impl/var.h" #include "ppapi/thunk/enter.h" #include "ppapi/thunk/ppb_file_ref_api.h" @@ -147,6 +148,8 @@ bool URLRequestInfoResource::SetBooleanProperty( // SetProperty() above for why. switch (property) { case PP_URLREQUESTPROPERTY_STREAMTOFILE: + if (!base::FeatureList::IsEnabled(features::kStreamToFile)) + return false; data_.stream_to_file = value; return true; case PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS: diff --git a/chromium/ppapi/proxy/video_decoder_resource_unittest.cc b/chromium/ppapi/proxy/video_decoder_resource_unittest.cc index 66b554e5e7e..f67b6224fd1 100644 --- a/chromium/ppapi/proxy/video_decoder_resource_unittest.cc +++ b/chromium/ppapi/proxy/video_decoder_resource_unittest.cc @@ -7,7 +7,6 @@ #include <stdint.h> #include "base/memory/shared_memory.h" -#include "base/message_loop/message_loop.h" #include "build/build_config.h" #include "ppapi/c/pp_errors.h" #include "ppapi/c/ppb_video_decoder.h" diff --git a/chromium/ppapi/proxy/websocket_resource_unittest.cc b/chromium/ppapi/proxy/websocket_resource_unittest.cc index d6dfd823031..9214e54822c 100644 --- a/chromium/ppapi/proxy/websocket_resource_unittest.cc +++ b/chromium/ppapi/proxy/websocket_resource_unittest.cc @@ -7,7 +7,6 @@ #include <tuple> #include "base/memory/ref_counted.h" -#include "base/message_loop/message_loop.h" #include "ppapi/c/pp_errors.h" #include "ppapi/c/ppb_var.h" #include "ppapi/c/ppb_websocket.h" |