1 // Copyright 2013 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 #include "chrome/browser/ui/translate/translate_bubble_factory.h" 6 7 #include "chrome/browser/ui/browser_finder.h" 8 #include "chrome/browser/ui/browser_window.h" 9 10 namespace { 11 12 void ShowDefault(BrowserWindow* window, 13 content::WebContents* web_contents, 14 translate::TranslateStep step, 15 translate::TranslateErrors::Type error_type) { 16 // |window| might be null when testing. 17 if (!window) 18 return; 19 window->ShowTranslateBubble(web_contents, step, error_type, false); 20 } 21 22 } // namespace 23 24 TranslateBubbleFactory::~TranslateBubbleFactory() { 25 } 26 27 // static 28 void TranslateBubbleFactory::Show(BrowserWindow* window, 29 content::WebContents* web_contents, 30 translate::TranslateStep step, 31 translate::TranslateErrors::Type error_type) { 32 if (current_factory_) { 33 current_factory_->ShowImplementation( 34 window, web_contents, step, error_type); 35 return; 36 } 37 38 ShowDefault(window, web_contents, step, error_type); 39 } 40 41 // static 42 void TranslateBubbleFactory::SetFactory(TranslateBubbleFactory* factory) { 43 current_factory_ = factory; 44 } 45 46 // static 47 TranslateBubbleFactory* TranslateBubbleFactory::current_factory_ = NULL; 48