I also tried to extract an absolute PlotRange spec from g:
SeedRandom[1]
dd = RandomVariate[NormalDistribution[0, 1], 200];
g = Histogram[dd]

1. Use Charting`CommonDump`getplotrange with Options[g, AxesOrigin]:
prF1 = Charting`CommonDump`getplotrange[#, AxesOrigin /. Options[#, AxesOrigin]] &;
prF1 @g
{{-2.5, 3.}, {0, 45.}}
2. Post-process the box expressions of g to extract the bounding boxes:
ClearAll[prF2]
prF2 = Through[{Min, Max}@#] & /@ Transpose[
Join @@ Cases[# // ToBoxes, RectangleBox[x_, y_, ___] :> {x, y}, ∞]] &;
prF2 @ g
{{-2.5, 3.}, {0, 45}}
Legended[Show[g, GridLines -> prF1[g], GridLinesStyle -> Red,
Axes -> False, Method -> {"GridLinesInFront" -> True},
PlotRangePadding -> {{3, 3}, {5, 10}}, ImagePadding -> 20,
Frame -> True, FrameTicks -> Thread[{Reverse@prF1[g], None}]],
Panel[TableForm[prF1[g], TableHeadings -> {{"x", "y"}, {"min", "max"}}],
"plot range", Top]]

3. Inject Charting`ChartStyleInformation["BoundingBox"] into ChartElementFunction option setting:
ClearAll[prF3]
prF3 = Module[{boundingbox}, Histogram[#, ChartElementFunction ->
((boundingbox = Charting`ChartStyleInformation["BoundingBox"];
ChartElementData["Rectangle"][##]) &)]; boundingbox] &;
prF3[dd]
{{-2.5, 3.}, {0, 45}}
4. Use Charting`get2DPlotRange[g] and Options[g, PlotRangePadding] to compute the plot range:
The function Charting`get2DPlotRange gives padded plot range (including PlotRangePadding values):
Charting`get2DPlotRange[g]
{{-2.61, 3.11}, {-0.9, 49.5}}
The value of the option PlotRangePadding is easily obtained:
Options[g, PlotRangePadding]
{PlotRangePadding -> {{Scaled[0.02], Scaled[0.02]},{Scaled[0.02], Scaled[0.1]}}}
Given padded plot range and padding information we can solve for the value of plot range:
paddingsF = Module[{i = 1}, (-1)^(i++) # & @@@ #] & /@
(PlotRangePadding /. Options[#, PlotRangePadding]) &;
prF4 = Module[{aa = Array[a, {2, 2}]},
Chop[aa /. First@Solve[aa + (First /@ Differences /@ aa) paddingsF[#] ==
Charting`get2DPlotRange[#], Flatten[aa], Reals]]] &;
prF4 @ g
{{-2.5, 3.}, {0, 45}}
Note: The last method works in version 9, but not in version 11.
FullForm[g]: thePlotRangecan be extracted withCases[g, x : Rule[PlotRange, ___] :> x, Infinity]. TheRules forTicksandFrameTicksare, however, expressed in terms ofAutomatic. Interestingly,AbsoluteOptions[g, PlotRange]gives thePlotRangein the error message, but not as output, though. $\endgroup$