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 3 // found in the LICENSE file. 4 5 #include "content/shell/common/shell_content_client.h" 6 7 #include "base/command_line.h" 8 #include "base/strings/string_piece.h" 9 #include "base/strings/utf_string_conversions.h" 10 #include "content/app/resources/grit/content_resources.h" 11 #include "content/app/strings/grit/content_strings.h" 12 #include "content/public/common/content_switches.h" 13 #include "content/public/common/user_agent.h" 14 #include "content/shell/common/shell_switches.h" 15 #include "grit/shell_resources.h" 16 #include "ui/base/l10n/l10n_util.h" 17 #include "ui/base/resource/resource_bundle.h" 18 19 namespace content { 20 21 std::string GetShellUserAgent() { 22 std::string product = "Chrome/" CONTENT_SHELL_VERSION; 23 CommandLine* command_line = CommandLine::ForCurrentProcess(); 24 if (command_line->HasSwitch(switches::kUseMobileUserAgent)) 25 product += " Mobile"; 26 return BuildUserAgentFromProduct(product); 27 } 28 29 ShellContentClient::~ShellContentClient() { 30 } 31 32 std::string ShellContentClient::GetUserAgent() const { 33 return GetShellUserAgent(); 34 } 35 36 base::string16 ShellContentClient::GetLocalizedString(int message_id) const { 37 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) { 38 switch (message_id) { 39 case IDS_FORM_OTHER_DATE_LABEL: 40 return base::ASCIIToUTF16("<<OtherDateLabel>>"); 41 case IDS_FORM_OTHER_MONTH_LABEL: 42 return base::ASCIIToUTF16("<<OtherMonthLabel>>"); 43 case IDS_FORM_OTHER_TIME_LABEL: 44 return base::ASCIIToUTF16("<<OtherTimeLabel>>"); 45 case IDS_FORM_OTHER_WEEK_LABEL: 46 return base::ASCIIToUTF16("<<OtherWeekLabel>>"); 47 case IDS_FORM_CALENDAR_CLEAR: 48 return base::ASCIIToUTF16("<<CalendarClear>>"); 49 case IDS_FORM_CALENDAR_TODAY: 50 return base::ASCIIToUTF16("<<CalendarToday>>"); 51 case IDS_FORM_THIS_MONTH_LABEL: 52 return base::ASCIIToUTF16("<<ThisMonthLabel>>"); 53 case IDS_FORM_THIS_WEEK_LABEL: 54 return base::ASCIIToUTF16("<<ThisWeekLabel>>"); 55 } 56 } 57 return l10n_util::GetStringUTF16(message_id); 58 } 59 60 base::StringPiece ShellContentClient::GetDataResource( 61 int resource_id, 62 ui::ScaleFactor scale_factor) const { 63 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) { 64 switch (resource_id) { 65 case IDR_BROKENIMAGE: 66 #if defined(OS_MACOSX) 67 resource_id = IDR_CONTENT_SHELL_MISSING_IMAGE_PNG; 68 #else 69 resource_id = IDR_CONTENT_SHELL_MISSING_IMAGE_GIF; 70 #endif 71 break; 72 73 case IDR_TEXTAREA_RESIZER: 74 resource_id = IDR_CONTENT_SHELL_TEXT_AREA_RESIZE_CORNER_PNG; 75 break; 76 } 77 } 78 return ResourceBundle::GetSharedInstance().GetRawDataResourceForScale( 79 resource_id, scale_factor); 80 } 81 82 base::RefCountedStaticMemory* ShellContentClient::GetDataResourceBytes( 83 int resource_id) const { 84 return ResourceBundle::GetSharedInstance().LoadDataResourceBytes(resource_id); 85 } 86 87 gfx::Image& ShellContentClient::GetNativeImageNamed(int resource_id) const { 88 return ResourceBundle::GetSharedInstance().GetNativeImageNamed(resource_id); 89 } 90 91 } // namespace content 92