17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Copyright (c) 2012 The Chromium Authors. All rights reserved. 27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file. 47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/nacl_host/nacl_infobar_delegate.h" 67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 7a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "chrome/browser/infobars/infobar.h" 87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/infobars/infobar_service.h" 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "content/public/browser/render_view_host.h" 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "content/public/browser/web_contents.h" 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "grit/generated_resources.h" 127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ui/base/l10n/l10n_util.h" 137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "url/gurl.h" 147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// static 177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid NaClInfoBarDelegate::Create(int render_process_id, int render_view_id) { 187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch content::RenderViewHost* rvh = 197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch content::RenderViewHost::FromID(render_process_id, render_view_id); 207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (!rvh) 217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return; 227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch content::WebContents* web_contents = 237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch content::WebContents::FromRenderViewHost(rvh); 247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (!web_contents) 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return; 267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch InfoBarService* infobar_service = 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch InfoBarService::FromWebContents(web_contents); 28ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch if (infobar_service) { 29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar( 30a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<ConfirmInfoBarDelegate>(new NaClInfoBarDelegate()))); 31ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch } 327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 34a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)NaClInfoBarDelegate::NaClInfoBarDelegate() : ConfirmInfoBarDelegate() { 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochNaClInfoBarDelegate::~NaClInfoBarDelegate() { 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 40d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)base::string16 NaClInfoBarDelegate::GetMessageText() const { 417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return l10n_util::GetStringUTF16(IDS_NACL_APP_MISSING_ARCH_MESSAGE); 427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochint NaClInfoBarDelegate::GetButtons() const { 457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return BUTTON_NONE; 467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 48d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)base::string16 NaClInfoBarDelegate::GetLinkText() const { 497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return l10n_util::GetStringUTF16(IDS_LEARN_MORE); 507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool NaClInfoBarDelegate::LinkClicked(WindowOpenDisposition disposition) { 537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch web_contents()->OpenURL(content::OpenURLParams( 547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch GURL("https://support.google.com/chrome/?p=ib_nacl"), content::Referrer(), 557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition, 567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch content::PAGE_TRANSITION_LINK, false)); 577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return false; 587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 59