11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef EXTENSIONS_BROWSER_GUEST_VIEW_MIME_HANDLER_VIEW_MIME_HANDLER_VIEW_GUEST_H_ 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define EXTENSIONS_BROWSER_GUEST_VIEW_MIME_HANDLER_VIEW_MIME_HANDLER_VIEW_GUEST_H_ 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/browser/extension_function_dispatcher.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/browser/guest_view/guest_view.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace extensions { 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass MimeHandlerViewGuestDelegate; 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass MimeHandlerViewGuest : public GuestView<MimeHandlerViewGuest>, 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public ExtensionFunctionDispatcher::Delegate { 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static GuestViewBase* Create(content::BrowserContext* browser_context, 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int guest_instance_id); 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static const char Type[]; 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // ExtensionFunctionDispatcher::Delegate implementation. 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual WindowController* GetExtensionWindowController() const OVERRIDE; 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual content::WebContents* GetAssociatedWebContents() const OVERRIDE; 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // GuestViewBase implementation. 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual const char* GetAPINamespace() const OVERRIDE; 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual int GetTaskPrefix() const OVERRIDE; 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void CreateWebContents( 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const std::string& embedder_extension_id, 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int embedder_render_process_id, 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const GURL& embedder_site_url, 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const base::DictionaryValue& create_params, 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const WebContentsCreatedCallback& callback) OVERRIDE; 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void DidAttachToEmbedder() OVERRIDE; 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void DidInitialize() OVERRIDE; 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // WebContentsDelegate implementation. 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void ContentsZoomChange(bool zoom_in) OVERRIDE; 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void HandleKeyboardEvent( 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci content::WebContents* source, 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const content::NativeWebKeyboardEvent& event) OVERRIDE; 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // content::WebContentsObserver implementation. 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private: 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci MimeHandlerViewGuest(content::BrowserContext* browser_context, 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int guest_instance_id); 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~MimeHandlerViewGuest(); 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci void OnRequest(const ExtensionHostMsg_Request_Params& params); 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<MimeHandlerViewGuestDelegate> delegate_; 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<ExtensionFunctionDispatcher> extension_function_dispatcher_; 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DISALLOW_COPY_AND_ASSIGN(MimeHandlerViewGuest); 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace extensions 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // EXTENSIONS_BROWSER_GUEST_VIEW_MIME_HANDLER_VIEW_MIME_HANDLER_VIEW_GUEST_H_ 64