| Index: skia/ext/platform_canvas.cc
 | 
| diff --git a/skia/ext/platform_canvas.cc b/skia/ext/platform_canvas.cc
 | 
| index cf362b3ce3a3f95fad61c51db39d9b355db93514..0df64962bbcc7938e6bf04e67b0b6982418479f9 100644
 | 
| --- a/skia/ext/platform_canvas.cc
 | 
| +++ b/skia/ext/platform_canvas.cc
 | 
| @@ -4,9 +4,33 @@
 | 
|  
 | 
|  #include "skia/ext/platform_canvas.h"
 | 
|  
 | 
| +#include "base/logging.h"
 | 
|  #include "skia/ext/bitmap_platform_device.h"
 | 
| +#include "skia/ext/platform_device.h"
 | 
| +#include "third_party/skia/include/core/SkMetaData.h"
 | 
|  #include "third_party/skia/include/core/SkTypes.h"
 | 
|  
 | 
| +namespace {
 | 
| +
 | 
| +#if defined(OS_MACOSX)
 | 
| +const char kIsPreviewMetafileKey[] = "CrIsPreviewMetafile";
 | 
| +#endif
 | 
| +
 | 
| +void SetBoolMetaData(const SkCanvas& canvas, const char* key,  bool value) {
 | 
| +  SkMetaData& meta = skia::GetMetaData(canvas);
 | 
| +  meta.setBool(key, value);
 | 
| +}
 | 
| +
 | 
| +bool GetBoolMetaData(const SkCanvas& canvas, const char* key) {
 | 
| +  bool value;
 | 
| +  SkMetaData& meta = skia::GetMetaData(canvas);
 | 
| +  if (!meta.findBool(key, &value))
 | 
| +    value = false;
 | 
| +  return value;
 | 
| +}
 | 
| +
 | 
| +}  // namespace
 | 
| +
 | 
|  namespace skia {
 | 
|  
 | 
|  SkBaseDevice* GetTopDevice(const SkCanvas& canvas) {
 | 
| @@ -77,9 +101,34 @@ SkCanvas* CreateCanvas(const skia::RefPtr<SkBaseDevice>& device, OnFailureType f
 | 
|    if (!device) {
 | 
|      if (CRASH_ON_FAILURE == failureType)
 | 
|        SK_CRASH();
 | 
| -    return NULL;
 | 
| +    return nullptr;
 | 
|    }
 | 
|    return new SkCanvas(device.get());
 | 
|  }
 | 
|  
 | 
| +SkMetaData& GetMetaData(const SkCanvas& canvas) {
 | 
| +  SkBaseDevice* device = canvas.getDevice();
 | 
| +  DCHECK(device != nullptr);
 | 
| +  return device->getMetaData();
 | 
| +}
 | 
| +
 | 
| +#if defined(OS_MACOSX)
 | 
| +void SetIsPreviewMetafile(const SkCanvas& canvas, bool is_preview) {
 | 
| +  SetBoolMetaData(canvas, kIsPreviewMetafileKey, is_preview);
 | 
| +}
 | 
| +
 | 
| +bool IsPreviewMetafile(const SkCanvas& canvas) {
 | 
| +  return GetBoolMetaData(canvas, kIsPreviewMetafileKey);
 | 
| +}
 | 
| +
 | 
| +CGContextRef GetBitmapContext(const SkCanvas& canvas) {
 | 
| +  SkBaseDevice* device = GetTopDevice(canvas);
 | 
| +  PlatformDevice* platform_device = GetPlatformDevice(device);
 | 
| +  return platform_device ?  platform_device->GetBitmapContext() :
 | 
| +      nullptr;
 | 
| +}
 | 
| +
 | 
| +#endif
 | 
| +
 | 
| +
 | 
|  }  // namespace skia
 | 
| 
 |