summaryrefslogtreecommitdiff
path: root/chromium/ppapi/proxy
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ppapi/proxy')
-rw-r--r--chromium/ppapi/proxy/BUILD.gn2
-rw-r--r--chromium/ppapi/proxy/DEPS1
-rw-r--r--chromium/ppapi/proxy/file_chooser_resource_unittest.cc1
-rw-r--r--chromium/ppapi/proxy/file_system_resource_unittest.cc1
-rw-r--r--chromium/ppapi/proxy/gamepad_resource.cc44
-rw-r--r--chromium/ppapi/proxy/gamepad_resource.h5
-rw-r--r--chromium/ppapi/proxy/plugin_dispatcher.cc1
-rw-r--r--chromium/ppapi/proxy/ppapi_messages.h23
-rw-r--r--chromium/ppapi/proxy/ppb_graphics_3d_proxy.cc2
-rw-r--r--chromium/ppapi/proxy/ppb_graphics_3d_proxy.h2
-rw-r--r--chromium/ppapi/proxy/ppb_testing_proxy.cc1
-rw-r--r--chromium/ppapi/proxy/ppb_var_deprecated_proxy.cc1
-rw-r--r--chromium/ppapi/proxy/ppp_instance_private_proxy_unittest.cc1
-rw-r--r--chromium/ppapi/proxy/ppp_pdf_proxy.cc105
-rw-r--r--chromium/ppapi/proxy/ppp_pdf_proxy.h11
-rw-r--r--chromium/ppapi/proxy/ppp_printing_proxy.cc24
-rw-r--r--chromium/ppapi/proxy/ppp_printing_proxy.h2
-rw-r--r--chromium/ppapi/proxy/printing_resource_unittest.cc19
-rw-r--r--chromium/ppapi/proxy/tracked_callback_unittest.cc22
-rw-r--r--chromium/ppapi/proxy/url_loader_resource.cc4
-rw-r--r--chromium/ppapi/proxy/url_request_info_resource.cc3
-rw-r--r--chromium/ppapi/proxy/video_decoder_resource_unittest.cc1
-rw-r--r--chromium/ppapi/proxy/websocket_resource_unittest.cc1
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"