OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/pdf/renderer/pepper_pdf_host.h" | 5 #include "components/pdf/renderer/pepper_pdf_host.h" |
6 | 6 |
7 #include "components/pdf/common/pdf_messages.h" | 7 #include "components/pdf/common/pdf_messages.h" |
8 #include "components/pdf/renderer/pdf_accessibility_tree.h" | 8 #include "components/pdf/renderer/pdf_accessibility_tree.h" |
9 #include "content/public/common/referrer.h" | 9 #include "content/public/common/referrer.h" |
10 #include "content/public/renderer/pepper_plugin_instance.h" | 10 #include "content/public/renderer/pepper_plugin_instance.h" |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 host_->GetPluginInstance(pp_instance()); | 190 host_->GetPluginInstance(pp_instance()); |
191 if (!instance) | 191 if (!instance) |
192 return PP_ERROR_FAILED; | 192 return PP_ERROR_FAILED; |
193 instance->SetLinkUnderCursor(url); | 193 instance->SetLinkUnderCursor(url); |
194 return PP_OK; | 194 return PP_OK; |
195 } | 195 } |
196 | 196 |
197 int32_t PepperPDFHost::OnHostMsgSetAccessibilityViewportInfo( | 197 int32_t PepperPDFHost::OnHostMsgSetAccessibilityViewportInfo( |
198 ppapi::host::HostMessageContext* context, | 198 ppapi::host::HostMessageContext* context, |
199 const PP_PrivateAccessibilityViewportInfo& viewport_info) { | 199 const PP_PrivateAccessibilityViewportInfo& viewport_info) { |
200 content::PepperPluginInstance* instance = | 200 if (!host_->GetPluginInstance(pp_instance())) |
201 host_->GetPluginInstance(pp_instance()); | |
202 if (!instance) | |
203 return PP_ERROR_FAILED; | 201 return PP_ERROR_FAILED; |
204 CreatePdfAccessibilityTreeIfNeeded(instance); | 202 CreatePdfAccessibilityTreeIfNeeded(); |
205 pdf_accessibility_tree_->SetAccessibilityViewportInfo(viewport_info); | 203 pdf_accessibility_tree_->SetAccessibilityViewportInfo(viewport_info); |
206 return PP_OK; | 204 return PP_OK; |
207 } | 205 } |
208 | 206 |
209 int32_t PepperPDFHost::OnHostMsgSetAccessibilityDocInfo( | 207 int32_t PepperPDFHost::OnHostMsgSetAccessibilityDocInfo( |
210 ppapi::host::HostMessageContext* context, | 208 ppapi::host::HostMessageContext* context, |
211 const PP_PrivateAccessibilityDocInfo& doc_info) { | 209 const PP_PrivateAccessibilityDocInfo& doc_info) { |
212 content::PepperPluginInstance* instance = | 210 if (!host_->GetPluginInstance(pp_instance())) |
213 host_->GetPluginInstance(pp_instance()); | |
214 if (!instance) | |
215 return PP_ERROR_FAILED; | 211 return PP_ERROR_FAILED; |
216 CreatePdfAccessibilityTreeIfNeeded(instance); | 212 CreatePdfAccessibilityTreeIfNeeded(); |
217 pdf_accessibility_tree_->SetAccessibilityDocInfo(doc_info); | 213 pdf_accessibility_tree_->SetAccessibilityDocInfo(doc_info); |
218 return PP_OK; | 214 return PP_OK; |
219 } | 215 } |
220 | 216 |
221 int32_t PepperPDFHost::OnHostMsgSetAccessibilityPageInfo( | 217 int32_t PepperPDFHost::OnHostMsgSetAccessibilityPageInfo( |
222 ppapi::host::HostMessageContext* context, | 218 ppapi::host::HostMessageContext* context, |
223 const PP_PrivateAccessibilityPageInfo& page_info, | 219 const PP_PrivateAccessibilityPageInfo& page_info, |
224 const std::vector<PP_PrivateAccessibilityTextRunInfo>& text_run_info, | 220 const std::vector<PP_PrivateAccessibilityTextRunInfo>& text_run_info, |
225 const std::vector<PP_PrivateAccessibilityCharInfo>& chars) { | 221 const std::vector<PP_PrivateAccessibilityCharInfo>& chars) { |
226 content::PepperPluginInstance* instance = | 222 if (!host_->GetPluginInstance(pp_instance())) |
227 host_->GetPluginInstance(pp_instance()); | |
228 if (!instance) | |
229 return PP_ERROR_FAILED; | 223 return PP_ERROR_FAILED; |
230 CreatePdfAccessibilityTreeIfNeeded(instance); | 224 CreatePdfAccessibilityTreeIfNeeded(); |
231 pdf_accessibility_tree_->SetAccessibilityPageInfo( | 225 pdf_accessibility_tree_->SetAccessibilityPageInfo( |
232 page_info, text_run_info, chars); | 226 page_info, text_run_info, chars); |
233 return PP_OK; | 227 return PP_OK; |
234 } | 228 } |
235 | 229 |
236 void PepperPDFHost::CreatePdfAccessibilityTreeIfNeeded( | 230 void PepperPDFHost::CreatePdfAccessibilityTreeIfNeeded() { |
237 content::PepperPluginInstance* instance) { | |
238 if (!pdf_accessibility_tree_) { | 231 if (!pdf_accessibility_tree_) { |
239 pdf_accessibility_tree_.reset( | 232 pdf_accessibility_tree_.reset(new PdfAccessibilityTree( |
240 new PdfAccessibilityTree(instance->GetRenderView())); | 233 host_, pp_instance())); |
241 } | 234 } |
242 } | 235 } |
243 | 236 |
244 } // namespace pdf | 237 } // namespace pdf |
OLD | NEW |