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

Side by Side Diff: content/renderer/pepper/message_channel.cc

Issue 346263006: Pepper: Narrow dev channel whitelisting behavior. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/renderer/pepper/message_channel.h" 5 #include "content/renderer/pepper/message_channel.h"
6 6
7 #include <cstdlib> 7 #include <cstdlib>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
13 #include "content/public/common/content_client.h"
14 #include "content/public/renderer/content_renderer_client.h"
13 #include "content/renderer/pepper/host_array_buffer_var.h" 15 #include "content/renderer/pepper/host_array_buffer_var.h"
14 #include "content/renderer/pepper/npapi_glue.h" 16 #include "content/renderer/pepper/npapi_glue.h"
15 #include "content/renderer/pepper/pepper_plugin_instance_impl.h" 17 #include "content/renderer/pepper/pepper_plugin_instance_impl.h"
16 #include "content/renderer/pepper/plugin_module.h" 18 #include "content/renderer/pepper/plugin_module.h"
17 #include "content/renderer/pepper/v8_var_converter.h" 19 #include "content/renderer/pepper/v8_var_converter.h"
18 #include "ppapi/shared_impl/ppapi_globals.h" 20 #include "ppapi/shared_impl/ppapi_globals.h"
19 #include "ppapi/shared_impl/scoped_pp_var.h" 21 #include "ppapi/shared_impl/scoped_pp_var.h"
20 #include "ppapi/shared_impl/var.h" 22 #include "ppapi/shared_impl/var.h"
21 #include "ppapi/shared_impl/var_tracker.h" 23 #include "ppapi/shared_impl/var_tracker.h"
22 #include "third_party/WebKit/public/web/WebBindings.h" 24 #include "third_party/WebKit/public/web/WebBindings.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 71
70 // Return true iff |identifier| is equal to |string|. 72 // Return true iff |identifier| is equal to |string|.
71 bool IdentifierIs(NPIdentifier identifier, const char string[]) { 73 bool IdentifierIs(NPIdentifier identifier, const char string[]) {
72 return WebBindings::getStringIdentifier(string) == identifier; 74 return WebBindings::getStringIdentifier(string) == identifier;
73 } 75 }
74 76
75 bool HasDevChannelPermission(NPObject* channel_object) { 77 bool HasDevChannelPermission(NPObject* channel_object) {
76 MessageChannel* channel = ToMessageChannel(channel_object); 78 MessageChannel* channel = ToMessageChannel(channel_object);
77 if (!channel) 79 if (!channel)
78 return false; 80 return false;
79 return channel->instance()->module()->permissions().HasPermission( 81 return GetContentClient()->renderer()->IsPluginAllowedToUseDevChannelAPIs();
80 ppapi::PERMISSION_DEV_CHANNEL);
81 } 82 }
82 83
83 //------------------------------------------------------------------------------ 84 //------------------------------------------------------------------------------
84 // Implementations of NPClass functions. These are here to: 85 // Implementations of NPClass functions. These are here to:
85 // - Implement postMessage behavior. 86 // - Implement postMessage behavior.
86 // - Forward calls to the 'passthrough' object to allow backwards-compatibility 87 // - Forward calls to the 'passthrough' object to allow backwards-compatibility
87 // with GetInstanceObject() objects. 88 // with GetInstanceObject() objects.
88 //------------------------------------------------------------------------------ 89 //------------------------------------------------------------------------------
89 NPObject* MessageChannelAllocate(NPP npp, NPClass* the_class) { 90 NPObject* MessageChannelAllocate(NPP npp, NPClass* the_class) {
90 return new MessageChannel::MessageChannelNPObject; 91 return new MessageChannel::MessageChannelNPObject;
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 return true; 577 return true;
577 } 578 }
578 return false; 579 return false;
579 } 580 }
580 581
581 void MessageChannel::SetReadOnlyProperty(PP_Var key, PP_Var value) { 582 void MessageChannel::SetReadOnlyProperty(PP_Var key, PP_Var value) {
582 internal_properties_[PPVarToNPIdentifier(key)] = ScopedPPVar(value); 583 internal_properties_[PPVarToNPIdentifier(key)] = ScopedPPVar(value);
583 } 584 }
584 585
585 } // namespace content 586 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698