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

Side by Side Diff: chrome/browser/custom_handlers/protocol_handler_registry.h

Issue 293983004: Modify ProtocolHandlerRegistry to make room for policy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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
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 #ifndef CHROME_BROWSER_CUSTOM_HANDLERS_PROTOCOL_HANDLER_REGISTRY_H_ 5 #ifndef CHROME_BROWSER_CUSTOM_HANDLERS_PROTOCOL_HANDLER_REGISTRY_H_
6 #define CHROME_BROWSER_CUSTOM_HANDLERS_PROTOCOL_HANDLER_REGISTRY_H_ 6 #define CHROME_BROWSER_CUSTOM_HANDLERS_PROTOCOL_HANDLER_REGISTRY_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 base::Value* EncodeRegisteredHandlers(); 280 base::Value* EncodeRegisteredHandlers();
281 281
282 // Returns a JSON list of ignored protocol handlers. The caller is 282 // Returns a JSON list of ignored protocol handlers. The caller is
283 // responsible for deleting this Value. 283 // responsible for deleting this Value.
284 base::Value* EncodeIgnoredHandlers(); 284 base::Value* EncodeIgnoredHandlers();
285 285
286 // Sends a notification of the given type to the NotificationService. 286 // Sends a notification of the given type to the NotificationService.
287 void NotifyChanged(); 287 void NotifyChanged();
288 288
289 // Registers a new protocol handler. 289 // Registers a new protocol handler.
290 void RegisterProtocolHandler(const ProtocolHandler& handler); 290 void RegisterProtocolHandler(const ProtocolHandler& handler,
291 const bool policy_managed);
koz (OOO until 15th September) 2014/05/22 00:51:31 Can you replace the bool here with an enum, e.g.
kaliamoorthi 2014/05/30 10:01:09 Done.
291 292
292 // Get the DictionaryValues stored under the given pref name that are valid 293 // Get the DictionaryValues stored under the given pref name that are valid
293 // ProtocolHandler values. 294 // ProtocolHandler values.
294 std::vector<const base::DictionaryValue*> GetHandlersFromPref( 295 std::vector<const base::DictionaryValue*> GetHandlersFromPref(
295 const char* pref_name) const; 296 const char* pref_name) const;
296 297
297 // Ignores future requests to register the given protocol handler. 298 // Ignores future requests to register the given protocol handler.
298 void IgnoreProtocolHandler(const ProtocolHandler& handler); 299 void IgnoreProtocolHandler(const ProtocolHandler& handler,
300 const bool policy_managed);
301
302 bool HandlerExists(const ProtocolHandler& handler,
303 ProtocolHandlerMultiMap* map);
304
305 bool HandlerExists(const ProtocolHandler& handler,
306 const ProtocolHandlerList& list);
307
308 void EraseHandler(const ProtocolHandler& handler,
309 ProtocolHandlerMultiMap* map);
310
311 void EraseHandler(const ProtocolHandler& handler, ProtocolHandlerList* list);
299 312
300 // Map from protocols (strings) to protocol handlers. 313 // Map from protocols (strings) to protocol handlers.
301 ProtocolHandlerMultiMap protocol_handlers_; 314 ProtocolHandlerMultiMap protocol_handlers_;
302 315
303 // Protocol handlers that the user has told us to ignore. 316 // Protocol handlers that the user has told us to ignore.
304 ProtocolHandlerList ignored_protocol_handlers_; 317 ProtocolHandlerList ignored_protocol_handlers_;
305 318
319 // User/policy specific Map from protocols (strings) to protocol handlers.
320 ProtocolHandlerMultiMap user_protocol_handlers_;
koz (OOO until 15th September) 2014/05/22 00:51:31 I think this comment could be a bit clearer, e.g.
kaliamoorthi 2014/05/30 10:01:09 Done.
321 ProtocolHandlerMultiMap policy_protocol_handlers_;
322
323 // Protocol handlers that the user/policy has told us to ignore.
324 ProtocolHandlerList user_ignored_protocol_handlers_;
325 ProtocolHandlerList policy_ignored_protocol_handlers_;
326
306 // Protocol handlers that are the defaults for a given protocol. 327 // Protocol handlers that are the defaults for a given protocol.
307 ProtocolHandlerMap default_handlers_; 328 ProtocolHandlerMap default_handlers_;
308 329
309 // The Profile that owns this ProtocolHandlerRegistry. 330 // The Profile that owns this ProtocolHandlerRegistry.
310 Profile* profile_; 331 Profile* profile_;
311 332
312 // The Delegate that registers / deregisters external handlers on our behalf. 333 // The Delegate that registers / deregisters external handlers on our behalf.
313 scoped_ptr<Delegate> delegate_; 334 scoped_ptr<Delegate> delegate_;
314 335
315 // If false then registered protocol handlers will not be used to handle 336 // If false then registered protocol handlers will not be used to handle
316 // requests. 337 // requests.
317 bool enabled_; 338 bool enabled_;
318 339
319 // Whether or not we are loading. 340 // Whether or not we are loading.
320 bool is_loading_; 341 bool is_loading_;
321 342
322 // When the table gets loaded this flag will be set and any further calls to 343 // When the table gets loaded this flag will be set and any further calls to
323 // AddPredefinedHandler will be rejected. 344 // AddPredefinedHandler will be rejected.
324 bool is_loaded_; 345 bool is_loaded_;
325 346
326 // Copy of registry data for use on the IO thread. Changes to the registry 347 // Copy of registry data for use on the IO thread. Changes to the registry
327 // are posted to the IO thread where updates are applied to this object. 348 // are posted to the IO thread where updates are applied to this object.
328 scoped_refptr<IOThreadDelegate> io_thread_delegate_; 349 scoped_refptr<IOThreadDelegate> io_thread_delegate_;
329 350
330 DefaultClientObserverList default_client_observers_; 351 DefaultClientObserverList default_client_observers_;
331 352
332 DISALLOW_COPY_AND_ASSIGN(ProtocolHandlerRegistry); 353 DISALLOW_COPY_AND_ASSIGN(ProtocolHandlerRegistry);
333 }; 354 };
334 #endif // CHROME_BROWSER_CUSTOM_HANDLERS_PROTOCOL_HANDLER_REGISTRY_H_ 355 #endif // CHROME_BROWSER_CUSTOM_HANDLERS_PROTOCOL_HANDLER_REGISTRY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698