Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2008 The Native Client Authors. All rights reserved. | 2 * Copyright 2008 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can | 3 * Use of this source code is governed by a BSD-style license that can |
| 4 * be found in the LICENSE file. | 4 * be found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 | 7 |
| 8 #include "native_client/src/trusted/plugin/npapi/plugin_npapi.h" | 8 #include "native_client/src/trusted/plugin/npapi/plugin_npapi.h" |
| 9 | 9 |
| 10 #include <stdio.h> | 10 #include <stdio.h> |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 163 } | 163 } |
| 164 | 164 |
| 165 // SetWindow is called by the browser as part of the NPAPI interface for | 165 // SetWindow is called by the browser as part of the NPAPI interface for |
| 166 // setting up a plugin that has the ability to draw into a window. It is | 166 // setting up a plugin that has the ability to draw into a window. It is |
| 167 // passed a semi-custom window descriptor (some is platform-neutral, some not) | 167 // passed a semi-custom window descriptor (some is platform-neutral, some not) |
| 168 // as documented in the NPAPI documentation. | 168 // as documented in the NPAPI documentation. |
| 169 NPError PluginNpapi::SetWindow(NPWindow* window) { | 169 NPError PluginNpapi::SetWindow(NPWindow* window) { |
| 170 NPError ret = NPERR_GENERIC_ERROR; | 170 NPError ret = NPERR_GENERIC_ERROR; |
| 171 PLUGIN_PRINTF(("PluginNpapi::SetWindow(%p, %p)\n", static_cast<void* >(this), | 171 PLUGIN_PRINTF(("PluginNpapi::SetWindow(%p, %p)\n", static_cast<void* >(this), |
| 172 static_cast<void*>(window))); | 172 static_cast<void*>(window))); |
| 173 | |
| 174 // NOTE(gregoryd): Chrome does not allow us to call NPN_GetUrl during | |
| 175 // initialization, but does call SetWindows afterwards, so we use this call | |
| 176 // to trigger the download if the src property hasn't been specified. | |
|
Mark Seaborn
2010/08/16 15:13:59
Can you link to the Chromium bug here?
gregoryd
2010/08/16 18:41:09
There is no Chromium bug. I spoke to Brett Wilson
| |
| 177 #if !defined(NACL_STANDALONE) | |
| 178 // If the <embed src='...'> attr was defined, the browser would have | |
| 179 // implicitly called GET on it, which calls Load() and set_logical_url(). | |
| 180 // In the absence of this attr, we use the "nexes" attribute if present. | |
| 181 if (logical_url() == NULL) { | |
| 182 const char* nexes_attr = LookupArgument("nexes"); | |
| 183 if (nexes_attr != NULL) { | |
| 184 SetNexesPropertyImpl(nexes_attr); | |
| 185 } | |
| 186 } | |
| 187 #endif | |
| 173 if (NULL == module_) { | 188 if (NULL == module_) { |
| 174 if (video() && video()->SetWindow(window)) { | 189 if (video() && video()->SetWindow(window)) { |
| 175 ret = NPERR_NO_ERROR; | 190 ret = NPERR_NO_ERROR; |
| 176 } | 191 } |
| 177 return ret; | 192 return ret; |
| 178 } else { | 193 } else { |
| 179 // Send NPP_SetWindow to NPModule. | 194 // Send NPP_SetWindow to NPModule. |
| 180 NPP npp = InstanceIdentifierToNPP(instance_id()); | 195 NPP npp = InstanceIdentifierToNPP(instance_id()); |
| 181 return module_->SetWindow(npp, window); | 196 return module_->SetWindow(npp, window); |
| 182 } | 197 } |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 538 // It would be nice if the thread interface did not require us to | 553 // It would be nice if the thread interface did not require us to |
| 539 // specify a stack size. This is fairly arbitrary. | 554 // specify a stack size. This is fairly arbitrary. |
| 540 size_t stack_size = 128 << 10; | 555 size_t stack_size = 128 << 10; |
| 541 NaClThreadCreateJoinable(&plugin->receive_thread_, AsyncReceiveThread, args, | 556 NaClThreadCreateJoinable(&plugin->receive_thread_, AsyncReceiveThread, args, |
| 542 stack_size); | 557 stack_size); |
| 543 plugin->receive_thread_running_ = true; | 558 plugin->receive_thread_running_ = true; |
| 544 return true; | 559 return true; |
| 545 } | 560 } |
| 546 | 561 |
| 547 } // namespace plugin | 562 } // namespace plugin |
| OLD | NEW |