Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(334)

Side by Side Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 7901015: Revert 101269 - Store plug-in enabled/disabled state in PluginPrefs instead of WebPluginInfo, to ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | content/common/pepper_plugin_registry.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:mergeinfo
OLDNEW
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 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 PLUGIN_TYPE_MISMATCH_NUM_EVENTS); 324 PLUGIN_TYPE_MISMATCH_NUM_EVENTS);
325 // We do not permit URL-sniff based plug-in MIME type overrides aside from 325 // We do not permit URL-sniff based plug-in MIME type overrides aside from
326 // the case where the "type" was initially missing or generic 326 // the case where the "type" was initially missing or generic
327 // (application/octet-stream). 327 // (application/octet-stream).
328 // We collected stats to determine this approach isn't a major compat issue, 328 // We collected stats to determine this approach isn't a major compat issue,
329 // and we defend against content confusion attacks in various cases, such 329 // and we defend against content confusion attacks in various cases, such
330 // as when the user doesn't have the Flash plug-in enabled. 330 // as when the user doesn't have the Flash plug-in enabled.
331 return NULL; 331 return NULL;
332 } 332 }
333 333
334 scoped_ptr<webkit::npapi::PluginGroup> group( 334 const webkit::npapi::PluginGroup* group =
335 webkit::npapi::PluginList::Singleton()->GetPluginGroup(info)); 335 webkit::npapi::PluginList::Singleton()->GetPluginGroup(info);
336 DCHECK(group != NULL);
336 337
337 ContentSetting plugin_setting = CONTENT_SETTING_DEFAULT; 338 ContentSetting plugin_setting = CONTENT_SETTING_DEFAULT;
338 std::string resource; 339 std::string resource;
339 if (cmd->HasSwitch(switches::kEnableResourceContentSettings)) 340 if (cmd->HasSwitch(switches::kEnableResourceContentSettings))
340 resource = group->identifier(); 341 resource = group->identifier();
341 render_view->Send(new ChromeViewHostMsg_GetPluginContentSetting( 342 render_view->Send(new ChromeViewHostMsg_GetPluginContentSetting(
342 frame->top()->document().url(), resource, &plugin_setting)); 343 frame->top()->document().url(), resource, &plugin_setting));
343 DCHECK(plugin_setting != CONTENT_SETTING_DEFAULT); 344 DCHECK(plugin_setting != CONTENT_SETTING_DEFAULT);
344 345
345 WebPluginParams params(original_params); 346 WebPluginParams params(original_params);
346 for (size_t i = 0; i < info.mime_types.size(); ++i) { 347 for (size_t i = 0; i < info.mime_types.size(); ++i) {
347 if (info.mime_types[i].mime_type == actual_mime_type) { 348 if (info.mime_types[i].mime_type == actual_mime_type) {
348 AppendParams(info.mime_types[i].additional_param_names, 349 AppendParams(info.mime_types[i].additional_param_names,
349 info.mime_types[i].additional_param_values, 350 info.mime_types[i].additional_param_values,
350 &params.attributeNames, 351 &params.attributeNames,
351 &params.attributeValues); 352 &params.attributeValues);
352 break; 353 break;
353 } 354 }
354 } 355 }
355 356
356 ContentSetting outdated_policy = CONTENT_SETTING_ASK; 357 ContentSetting outdated_policy = CONTENT_SETTING_ASK;
357 ContentSetting authorize_policy = CONTENT_SETTING_ASK; 358 ContentSetting authorize_policy = CONTENT_SETTING_ASK;
358 if (group->IsVulnerable(info) || group->RequiresAuthorization(info)) { 359 if (group->IsVulnerable() || group->RequiresAuthorization()) {
359 // These policies are dynamic and can changed at runtime, so they aren't 360 // These policies are dynamic and can changed at runtime, so they aren't
360 // cached here. 361 // cached here.
361 render_view->Send(new ChromeViewHostMsg_GetPluginPolicies( 362 render_view->Send(new ChromeViewHostMsg_GetPluginPolicies(
362 &outdated_policy, &authorize_policy)); 363 &outdated_policy, &authorize_policy));
363 } 364 }
364 365
365 if (group->IsVulnerable(info)) { 366 if (group->IsVulnerable()) {
366 if (outdated_policy == CONTENT_SETTING_ASK || 367 if (outdated_policy == CONTENT_SETTING_ASK ||
367 outdated_policy == CONTENT_SETTING_BLOCK) { 368 outdated_policy == CONTENT_SETTING_BLOCK) {
368 if (outdated_policy == CONTENT_SETTING_ASK) { 369 if (outdated_policy == CONTENT_SETTING_ASK) {
369 render_view->Send(new ChromeViewHostMsg_BlockedOutdatedPlugin( 370 render_view->Send(new ChromeViewHostMsg_BlockedOutdatedPlugin(
370 render_view->routing_id(), group->GetGroupName(), 371 render_view->routing_id(), group->GetGroupName(),
371 GURL(group->GetUpdateURL()))); 372 GURL(group->GetUpdateURL())));
372 } 373 }
373 return CreatePluginPlaceholder( 374 return CreatePluginPlaceholder(
374 render_view, frame, params, *group, IDR_BLOCKED_PLUGIN_HTML, 375 render_view, frame, params, *group, IDR_BLOCKED_PLUGIN_HTML,
375 IDS_PLUGIN_OUTDATED, false, outdated_policy == CONTENT_SETTING_ASK); 376 IDS_PLUGIN_OUTDATED, false, outdated_policy == CONTENT_SETTING_ASK);
376 } else { 377 } else {
377 DCHECK(outdated_policy == CONTENT_SETTING_ALLOW); 378 DCHECK(outdated_policy == CONTENT_SETTING_ALLOW);
378 } 379 }
379 } 380 }
380 381
381 ContentSettingsObserver* observer = ContentSettingsObserver::Get(render_view); 382 ContentSettingsObserver* observer = ContentSettingsObserver::Get(render_view);
382 ContentSetting host_setting = 383 ContentSetting host_setting =
383 observer->GetContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS); 384 observer->GetContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS);
384 385
385 if (group->RequiresAuthorization(info) && 386 if (group->RequiresAuthorization() &&
386 authorize_policy == CONTENT_SETTING_ASK && 387 authorize_policy == CONTENT_SETTING_ASK &&
387 (plugin_setting == CONTENT_SETTING_ALLOW || 388 (plugin_setting == CONTENT_SETTING_ALLOW ||
388 plugin_setting == CONTENT_SETTING_ASK) && 389 plugin_setting == CONTENT_SETTING_ASK) &&
389 host_setting == CONTENT_SETTING_DEFAULT) { 390 host_setting == CONTENT_SETTING_DEFAULT) {
390 render_view->Send(new ChromeViewHostMsg_BlockedOutdatedPlugin( 391 render_view->Send(new ChromeViewHostMsg_BlockedOutdatedPlugin(
391 render_view->routing_id(), group->GetGroupName(), GURL())); 392 render_view->routing_id(), group->GetGroupName(), GURL()));
392 return CreatePluginPlaceholder( 393 return CreatePluginPlaceholder(
393 render_view, frame, params, *group, IDR_BLOCKED_PLUGIN_HTML, 394 render_view, frame, params, *group, IDR_BLOCKED_PLUGIN_HTML,
394 IDS_PLUGIN_NOT_AUTHORIZED, false, true); 395 IDS_PLUGIN_NOT_AUTHORIZED, false, true);
395 } 396 }
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 if (spellcheck_.get()) 770 if (spellcheck_.get())
770 thread->RemoveObserver(spellcheck_.get()); 771 thread->RemoveObserver(spellcheck_.get());
771 SpellCheck* new_spellcheck = new SpellCheck(); 772 SpellCheck* new_spellcheck = new SpellCheck();
772 if (spellcheck_provider_) 773 if (spellcheck_provider_)
773 spellcheck_provider_->SetSpellCheck(new_spellcheck); 774 spellcheck_provider_->SetSpellCheck(new_spellcheck);
774 spellcheck_.reset(new_spellcheck); 775 spellcheck_.reset(new_spellcheck);
775 thread->AddObserver(new_spellcheck); 776 thread->AddObserver(new_spellcheck);
776 } 777 }
777 778
778 } // namespace chrome 779 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | content/common/pepper_plugin_registry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698