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 3// found in the LICENSE file. 4 5#ifndef CONTENT_BROWSER_MEDIA_MEDIA_INTERNALS_HANDLER_H_ 6#define CONTENT_BROWSER_MEDIA_MEDIA_INTERNALS_HANDLER_H_ 7 8#include "base/compiler_specific.h" 9#include "base/memory/ref_counted.h" 10#include "content/public/browser/web_ui_message_handler.h" 11 12namespace base { 13class ListValue; 14} 15 16namespace content { 17class MediaInternalsProxy; 18 19// This class handles messages to and from MediaInternalsUI. 20// It does all its work on the IO thread through the proxy below. 21class MediaInternalsMessageHandler : public WebUIMessageHandler { 22 public: 23 MediaInternalsMessageHandler(); 24 virtual ~MediaInternalsMessageHandler(); 25 26 // WebUIMessageHandler implementation. 27 virtual void RegisterMessages() OVERRIDE; 28 29 // Javascript message handlers. 30 void OnGetEverything(const base::ListValue* list); 31 32 // MediaInternals message handlers. 33 void OnUpdate(const base::string16& update); 34 35 private: 36 scoped_refptr<MediaInternalsProxy> proxy_; 37 38 // Reflects whether the chrome://media-internals HTML+JS has finished loading. 39 // If not, it's not safe to send JavaScript calls targeting the page yet. 40 bool page_load_complete_; 41 42 DISALLOW_COPY_AND_ASSIGN(MediaInternalsMessageHandler); 43}; 44 45} // namespace content 46 47#endif // CONTENT_BROWSER_MEDIA_MEDIA_INTERNALS_HANDLER_H_ 48