Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/renderer/chrome_content_renderer_client.h" | 5 #include "chrome/renderer/chrome_content_renderer_client.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 384 (plugin_setting == CONTENT_SETTING_ALLOW || | 384 (plugin_setting == CONTENT_SETTING_ALLOW || |
| 385 plugin_setting == CONTENT_SETTING_ASK) && | 385 plugin_setting == CONTENT_SETTING_ASK) && |
| 386 host_setting == CONTENT_SETTING_DEFAULT) { | 386 host_setting == CONTENT_SETTING_DEFAULT) { |
| 387 render_view->Send(new ChromeViewHostMsg_BlockedOutdatedPlugin( | 387 render_view->Send(new ChromeViewHostMsg_BlockedOutdatedPlugin( |
| 388 render_view->routing_id(), group->GetGroupName(), GURL())); | 388 render_view->routing_id(), group->GetGroupName(), GURL())); |
| 389 return CreatePluginPlaceholder( | 389 return CreatePluginPlaceholder( |
| 390 render_view, frame, params, *group, IDR_BLOCKED_PLUGIN_HTML, | 390 render_view, frame, params, *group, IDR_BLOCKED_PLUGIN_HTML, |
| 391 IDS_PLUGIN_NOT_AUTHORIZED, false, true); | 391 IDS_PLUGIN_NOT_AUTHORIZED, false, true); |
| 392 } | 392 } |
| 393 | 393 |
| 394 if (info.path.value() == webkit::npapi::kDefaultPluginLibraryName || | 394 // Treat Native Client invocations like Javascript. |
| 395 plugin_setting == CONTENT_SETTING_ALLOW || | 395 bool is_nacl_plugin = |
| 396 host_setting == CONTENT_SETTING_ALLOW) { | 396 info.name == ASCIIToUTF16(ChromeContentClient::kNaClPluginName); |
| 397 if (is_nacl_plugin) { | |
| 398 plugin_setting = | |
| 399 observer->GetContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); | |
| 400 } | |
| 401 | |
| 402 if (plugin_setting == CONTENT_SETTING_ALLOW || | |
| 403 host_setting == CONTENT_SETTING_ALLOW || | |
| 404 info.path.value() == webkit::npapi::kDefaultPluginLibraryName) { | |
|
Bernhard Bauer
2011/09/23 08:26:08
Uh, if NaCl is blocked here, we will show the bloc
| |
| 397 // Delay loading plugins if prerendering. | 405 // Delay loading plugins if prerendering. |
| 398 if (prerender::PrerenderHelper::IsPrerendering(render_view)) { | 406 if (prerender::PrerenderHelper::IsPrerendering(render_view)) { |
| 399 return CreatePluginPlaceholder( | 407 return CreatePluginPlaceholder( |
| 400 render_view, frame, params, *group, IDR_CLICK_TO_PLAY_PLUGIN_HTML, | 408 render_view, frame, params, *group, IDR_CLICK_TO_PLAY_PLUGIN_HTML, |
| 401 IDS_PLUGIN_LOAD, true, true); | 409 IDS_PLUGIN_LOAD, true, true); |
| 402 } | 410 } |
| 403 | 411 |
| 404 // Enforce Chrome WebStore restriction on the Native Client plugin. | 412 // Enforce the Chrome WebStore restriction on the Native Client plugin. |
| 405 if (info.name == ASCIIToUTF16(ChromeContentClient::kNaClPluginName)) { | 413 if (is_nacl_plugin) { |
| 406 bool allow_nacl = cmd->HasSwitch(switches::kEnableNaCl); | 414 bool allow_nacl = cmd->HasSwitch(switches::kEnableNaCl); |
| 407 if (!allow_nacl) { | 415 if (!allow_nacl) { |
| 408 const char* kNaClPluginMimeType = "application/x-nacl"; | 416 const char* kNaClPluginMimeType = "application/x-nacl"; |
| 409 const char* kNaClPluginManifestAttribute = "nacl"; | 417 const char* kNaClPluginManifestAttribute = "nacl"; |
| 410 | 418 |
| 411 GURL nexe_url; | 419 GURL nexe_url; |
| 412 if (actual_mime_type == kNaClPluginMimeType) { | 420 if (actual_mime_type == kNaClPluginMimeType) { |
| 413 nexe_url = url; // Normal embedded NaCl plugin. | 421 nexe_url = url; // Normal embedded NaCl plugin. |
| 414 } else { | 422 } else { |
| 415 // Content type handling NaCl plugin; the "nacl" param on the | 423 // Content type handling NaCl plugin; the "nacl" param on the |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 764 if (spellcheck_.get()) | 772 if (spellcheck_.get()) |
| 765 thread->RemoveObserver(spellcheck_.get()); | 773 thread->RemoveObserver(spellcheck_.get()); |
| 766 SpellCheck* new_spellcheck = new SpellCheck(); | 774 SpellCheck* new_spellcheck = new SpellCheck(); |
| 767 if (spellcheck_provider_) | 775 if (spellcheck_provider_) |
| 768 spellcheck_provider_->SetSpellCheck(new_spellcheck); | 776 spellcheck_provider_->SetSpellCheck(new_spellcheck); |
| 769 spellcheck_.reset(new_spellcheck); | 777 spellcheck_.reset(new_spellcheck); |
| 770 thread->AddObserver(new_spellcheck); | 778 thread->AddObserver(new_spellcheck); |
| 771 } | 779 } |
| 772 | 780 |
| 773 } // namespace chrome | 781 } // namespace chrome |
| OLD | NEW |